EA Programing => ปัญหาที่พบในการเขียน EA => Topic started 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);
}
-
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);
-
code อาจจะนับ order ที่เปิดค้างจากคู่อื่น หรือเปิดด้วยมืออยู่ได้ครับ ลองเพิ่มเงื่อนไข Symbol() ตาม คห.ข้างบน เพื่อนับเฉพาะคู่นี้ หรือเพิ่ม OrderMagicNumber() เพื่อเอาเฉพาะ order ที่เปิดด้วย EA ที่ตั้ง magic number ไว้ก็ดีครับเผื่อเทรดมือไปด้วย