การปิด Order ใน MT4
คำสั่งที่เราใช้ในการปิด Order ก็คือ OrderCloseโดยมีค่าพารามิเตอร์ตามตัวอย่างด้านล่านนี้
OrderClose( int ticket, double lots, double price, int slippage, color Color=CLR_NONE)
ตัวอย่าง เช่น
OrderClose(order_id,1,Ask,3,Red);
จากคำสั่งด้านบน เราต้องทราบ order_id ถึงทำการปิด Order ได้แต่ในความเป็นจริงเราใช้ EA สั่งการเพื่อปิด order เราต้องใช้ คำสั่ง OrderSelect
ช่วย ผมจะนำข้อมูลจากหัวข้อ OrderSelect บางส่วนบางใช้นะครับใครงงให้กลับไปดูที่ Orderselect ประกอบนะครับ
จากหัวข้อ orderselect เรามี order อยู่ 3 order ถ้าต้องการปิด order ทั้งหมดเราต้องใช้ orderselect ช่วย
1 BUY 0.1 lot
2 SELL 0.1 lot
3 BUY 0.1 lot
for(int i=0;i<OrderTotal();i++)
{
OrderSelect( i,SELECT_BY_POS,MODE_TRADE) ;
if(OrderType()==OP_BUY) // ใช้ตรวจสอบ Order หากพบว่าเป็น BUY order ก็ใช้คำสั่งด้านล่างนี้
{
OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),3,Pink);
}
if(OrderType()==OP_SELL)// ใช้ตรวจสอบ Order หากพบว่าเป็น SELL order ก็ใช้คำสั่งด้านล่างนี้
{
OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),3,Pink);
}
}
ของแถมครับผมเขียน EA ที่เกี่ยวกับการ close เอาไวแล้วครับโดยความสามารถมันสามารถปิดทุก order ที่เปิดอยู่ได้โดยไม่สนใจว่าเป็นคู่เงินเดียวกันหรือไม่ ผมเขียนในรูปแบบของ EA ครับหากบางท่าน
ต้องการทำเป็น script ก็แต่สร้าง script ขึ้นมาใหม่แล้วก็นำ code ที่ผมเขียนไป paste ได้เลยครับ