EA Programing => ปัญหาที่พบในการเขียน EA => Topic started by: maticont on กุมภาพันธ์ 11, 2016, 12:21:30 pm
-
อยากได้โค๊ดที่ปิดออเดอร์หลายๆออร์เดอร์ แบบลัดที่สุดและเร็วที่สุด จะมีทางไหนมั๊ย แบบที่วนลูป for ก็ปิดๆหยุดๆ ค้างบ้าง หรือ บางที เปิด 6 ออเดอกว่าจะปิดหมดปาเข้าไป เกือบนาที แค่ทำให้ปิดเร็วเท่ากับปิดมือก็พอใจละครับเวลาปิดมือตอนกดกากบาทแบบรัวๆ มันแทบจะปิดพร้อมกันหมดเลย หลงเหลืออยู่นิดหน่อย กดปิดซ้ำอีกทีก็หมดละ ไม่เกิน 4 วินาที 6 ออเดอร์ แล้วมีวิธีที่ปิดแบบระบุเลขที่ออเดอร์มั๊ย จะระบุปิดเป็นรายตัว ของใครของมันเลย คิดว่าอาจจะเร็วกว่า เห็นผ่านๆเกี่ยวกับ Order_id หรือ magic หรือ Orderticket อะไรทำนองนี้ ไม่เอาวนปิดทีละออเดอ แต่เอาวนรอบเดียวสั่งปิดทุกออเดอเลย ถ้ารอบแรกไม่หมดก็วนอีก เอาจนหมด แบบนี้น่าจะปิดได้พร้อมกันมากขึ้นมั๊ยครับ แต่ใช้ไม่เป็น ผู้รู้ช่ายแนะนำ หน่อยครับ
-
int start()
{
int total =OrdersTotal();
int x=0;
while (x<1) //Point 1
{
for(int i=0;i<total;i++)
{
int a= OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
int type = OrderType();
bool result = false;
switch(type)
{
case OP_BUY : result = OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),3,Pink);
break;
case OP_SELL : result = OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),3,Pink);
break;
case OP_BUYLIMIT : result = OrderDelete(OrderTicket());
break;
case OP_SELLLIMIT : result = OrderDelete(OrderTicket());
break;
case OP_BUYSTOP : result = OrderDelete(OrderTicket());
break;
case OP_SELLSTOP : result = OrderDelete(OrderTicket());
break;
}
}
if(OrdersTotal()==0) //Point 2
x=1;
}
return(0);
}