Open Forex4you Account

Server รัน EA 1000 / ปี

สั่งชื้อคู่มือการโปรแรกม MQL4

Author Topic: อยากได้โค๊ดที่ปิดออเดอร์หลายๆออร์เดอ  (Read 11258 times)

maticont

  • Newbie
  • *
  • Posts: 16
อยากได้โค๊ดที่ปิดออเดอร์หลายๆออร์เดอร์ แบบลัดที่สุดและเร็วที่สุด จะมีทางไหนมั๊ย แบบที่วนลูป for ก็ปิดๆหยุดๆ ค้างบ้าง หรือ บางที เปิด 6 ออเดอกว่าจะปิดหมดปาเข้าไป เกือบนาที แค่ทำให้ปิดเร็วเท่ากับปิดมือก็พอใจละครับเวลาปิดมือตอนกดกากบาทแบบรัวๆ มันแทบจะปิดพร้อมกันหมดเลย หลงเหลืออยู่นิดหน่อย กดปิดซ้ำอีกทีก็หมดละ ไม่เกิน 4 วินาที 6 ออเดอร์ แล้วมีวิธีที่ปิดแบบระบุเลขที่ออเดอร์มั๊ย จะระบุปิดเป็นรายตัว ของใครของมันเลย คิดว่าอาจจะเร็วกว่า เห็นผ่านๆเกี่ยวกับ Order_id หรือ magic หรือ Orderticket อะไรทำนองนี้ ไม่เอาวนปิดทีละออเดอ แต่เอาวนรอบเดียวสั่งปิดทุกออเดอเลย ถ้ารอบแรกไม่หมดก็วนอีก เอาจนหมด แบบนี้น่าจะปิดได้พร้อมกันมากขึ้นมั๊ยครับ แต่ใช้ไม่เป็น ผู้รู้ช่ายแนะนำ หน่อยครับ
« Last Edit: กุมภาพันธ์ 11, 2016, 12:59:15 pm by maticont »

admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
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);
 }