Open Forex4you Account

Server รัน EA 1000 / ปี

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

Author Topic: นับจำนวน order ที่เปิดอยู่ไม่ตรง  (Read 12346 times)

taezar

  • Newbie
  • *
  • Posts: 3
ผมพยายามเขียนให้นับเฉพาะจำนวน order ที่เปิดอยู่คล้ายตัวอย่าง 12
order ที่มีอยู่จริงคือ sell 1 และ buystop 1
แต่ใช้ code ดังนี้ ให้นับและแสดง พบว่า sellorder=1 และ buyorder=1

ขอคำแนะนำด้วยครับ

void countorder()
{
int buyorder=0;
int sellorder=0;
int allorder=0;

   for(int i=0;i<=OrdersTotal();i++)
   {
      OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if(OrderType()==OP_BUY)
        {
        buyorder++;
        }

      if(OrderType()==OP_SELL)
        {
        sellorder++;
        }
       
   }
    allorder=buyorder+sellorder;

    Print("sellorder");Print(sellorder);
    Print("buyorder");Print(buyorder);
    Print("allorder");Print(allorder);

}

tanakrit99

  • Newbie
  • *
  • Posts: 23
Re: นับจำนวน order ที่เปิดอยู่ไม่ตรง
« Reply #1 on: มีนาคม 30, 2017, 07:59:36 pm »
   int buyorder=0;
   int sellorder=0;
   int allorder=0;
   for(int i=0;i<=OrdersTotal();i++)
     {
      OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if(OrderSymbol()==Symbol() && OrderType()==OP_BUY)
        {
         buyorder++;
        }
      if(OrderSymbol()==Symbol() && OrderType()==OP_SELL)
        {
         sellorder++;
        }
     }
   allorder=buyorder+sellorder;
   Print("Sellorder=",sellorder);
   Print("Buyorder=",buyorder);
   Print("Allorder=",allorder);

railgun

  • Newbie
  • *
  • Posts: 2
Re: นับจำนวน order ที่เปิดอยู่ไม่ตรง
« Reply #2 on: เมษายน 04, 2017, 04:43:55 am »
code อาจจะนับ order ที่เปิดค้างจากคู่อื่น หรือเปิดด้วยมืออยู่ได้ครับ ลองเพิ่มเงื่อนไข Symbol() ตาม คห.ข้างบน เพื่อนับเฉพาะคู่นี้ หรือเพิ่ม OrderMagicNumber() เพื่อเอาเฉพาะ order ที่เปิดด้วย EA ที่ตั้ง magic number ไว้ก็ดีครับเผื่อเทรดมือไปด้วย