EA Programing => ปัญหาที่พบในการเขียน EA => Topic started by: taezar on มีนาคม 30, 2017, 07:38:46 pm

Title: นับจำนวน order ที่เปิดอยู่ไม่ตรง
Post by: taezar on มีนาคม 30, 2017, 07:38:46 pm
ผมพยายามเขียนให้นับเฉพาะจำนวน 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);

}
Title: Re: นับจำนวน order ที่เปิดอยู่ไม่ตรง
Post by: tanakrit99 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);
Title: Re: นับจำนวน order ที่เปิดอยู่ไม่ตรง
Post by: railgun on เมษายน 04, 2017, 04:43:55 am
code อาจจะนับ order ที่เปิดค้างจากคู่อื่น หรือเปิดด้วยมืออยู่ได้ครับ ลองเพิ่มเงื่อนไข Symbol() ตาม คห.ข้างบน เพื่อนับเฉพาะคู่นี้ หรือเพิ่ม OrderMagicNumber() เพื่อเอาเฉพาะ order ที่เปิดด้วย EA ที่ตั้ง magic number ไว้ก็ดีครับเผื่อเทรดมือไปด้วย