ไม่จำเป็นต้องเปิดไปด้วยครับ แต่แค่ใน folder indicator ให้มี indi ตัวนั้นอยู่ก็พอ
ส่วนที่ต้องการให้จำนวน order เท่ากับที่ต้องการของฝั่ง Buy หรือ sell ก้ให้สร้าง function ที่ใช้ในการนับ order เพิ่มเข้าไปครับ
ตัวอย่างครับ
//+------------------------------------------------------------------+
//| Count Sell Order |
//+------------------------------------------------------------------+
int CountSell()
{
int sells=0;
//----
if(OrdersTotal()==0) sells=0;
else {
for(int i=0;i<OrdersTotal();i++){
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA)
{
if(OrderType()==OP_SELL) sells++;
}
}
}
//----
if(sells>0) return(sells);
}
//+------------------------------------------------------------------+
//| Count Buy Order |
//+------------------------------------------------------------------+
int CountBuy()
{
int buys=0;
//----
if(OrdersTotal()==0) buys=0;
else {
for(int i=0;i<OrdersTotal();i++){
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA)
{
if(OrderType()==OP_BUY) buys++;
}
}
}
//----
if(buys>0) return(buys);
}
Function ข้างบน จะเป็นการนับ Order ที่ถูกเปิดขึ้นมาแล้วครับ โดยจะนับ Order ที่ใส่ค่ าmagic ให้ด้วย พร้มกับนับ Order ที่เปิดในแต่ละคู่เงินครับ
เวลาที่จะใช้งานก็ให้เรียกขึ้นมา และสร้างเงื่อไขให้มันครับ เช่น
if(CountBuy()<2){
res=OrderSend(Symbol(),OP_BUY,0.01,Ask,3,0,0,"",MAGICMA,0,Lime);
return;
}
//----------------------
if(CountSell()<2){
res=OrderSend(Symbol(),OP_SELL,0.01,Bid,3,0,0,"",MAGICMA,0,Red);
return;
}
ตัวอย่างข้างต้นคือ เมื่อมี OrderBuy ต่ำกว่า 2 ให้เปิด open Buy และเมื่อ OrderSell ต่ำกว่า 2 ให้เปิด open Sell ประมาณนี้ครับ