Opening and Placing Orders
การส่งคำสั่งเพื่อ Open Order หรือ Placing Order สามารถใช้ฟังก์ชั่น OrderSend() เพื่อใช้ในการส่งคำสั่ง
Function OrderSend()
int OrderSend(string symbol, int cmd, double volume , double price , int slippage , double stoploss , double takeprofit , string comment=NULL, int magic=0, datetime expiration=0,color arrow_color=CLR_NONE)
อย่าเพิ่งตกใจกับฟังก์ชั่นทำไมมันเขียนยาวขนาดนี้ มาดูความหมายของมันก่อน
OrderSend คือ ชื่อฟังก์ชั่นจะ return ค่ากลับมาเป็นเลข ticket ของ order หากส่ง Order ไม่ผ่าน มันจะ return ค่าเป็น -1 (ซึ่งเราสามารถใช้้ฟังก์ชั่น getLastError() ไว้เพื่อเช็คดุสาเหตุอีกที ไว้ตอนต่อไปเราจะอธิบายเพิ่มเติม)
symbol คือ ชื่อสกุลเงินที่เราต้องการจะส่งไป ปกติเราจะใช่ฟังก์ชั่น Symbol() มากกว่าที่จะระบุสกุลเงินไปตรงๆ เพื่อให้ง่ายต่อการปรับเปลี่ยนนั่นเอง
volume คือ ขนาดของ lot ที่เราต้องการจะส่ง Order ไป
Price คือ ราคาที่เราต้่องการจะส่ง Order ไป อาจจะระบุเป็นตัวเลขตรงๆไปเลย หรือเลือกที่ Bid , Ask เป็นต้น
Slippage คือ ค่าเบี่ยงเบนจากราคา open price สามารถยอมรับได้เท่าไหร่ เพื่อให้ได้ order
stoploss คือ ราคาที่เราต้องการ stoploss
takeprofit คือ ราคาที่เราต้องการ take profit
comment คือ เราอยากหมายเหตุอะไรก็ใส่ไป
magic คือ หมายเหตุที่เป็นเฉพาะตัวเลข
expiration คือ ช่วงเวลาสิ้นสุดของการส่ง Order จะใช้กับ pending order
arrow _ color คือ สีของลูกศร เมื่อมีการเปิด Order
เมื่อเรารู้ว่าฟังก์ชั่นนี้ต้องการค่าอะไรแล้ว ทีนี้เรามาลองเขียน code ส่งคำสั่งกันครับ
int start()
{
OrderSend(Symbol(),OP_BUY,0.1,Ask,10,Bid-150*Point,Bid+150*Point,NULL,1234,0,"Green");
Alert(GetLastError());
return;
}
หากต้องการเลือกส่งรายการ GBPUSD
int start()
{
OrderSend(GBPUSD,OP_BUY,0.1,Ask,10,Bid-150*Point,Bid+150*Point,NULL,1234,0,"Green");
Alert(GetLastError());
return;
}
แล้วถ้าจะให้มันออกออเดอร์ทุก 50 จุดต้องเขียนยังไงครับ
ตอบลบ