الإكسبرت يفتح صفقات بيع فقط بسبب الشرط الذي وضعته
كود PHP:
&&OrdersTotal()==0
وبالتالي في حال فتح أول صفقه بيع فلن يفتح صفقات شراء لإن هذا الشرط لن يتحقق إلا إذا أغلقت صفقة البيع
بالنسبه لإغلاق الصفقات عند ظهور إشاره عكسيه فالكود الذي كتبته صحيح
أو بطريقه أخرى التي أستخدمها يمكنك تعريف داله لإغلاق الصفقات بيع وشراء
كود PHP:
void CloseBuyOrders()
{
for (int cnt = 0 ; cnt < OrdersTotal() ; cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol())
{
if (OrderType()==OP_BUY)
{
OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,digits),3);
}
}
}
}
void CloseSellOrders()
{
for (int cnt = 0 ; cnt < OrdersTotal() ; cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol())
{
if (OrderType()==OP_SELL)
{
OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,digits),3);
}
}
}
}
ثم تستخدم المقارنه لإغلاق صفقة الشراء
كود PHP:
if(iMA(0,0,5,0,3,PRICE_CLOSE,1)>iMA(0,0,5,0,3,PRICE_CLOSE,0)&&iMA(0,0,5,0,3,PRICE_CLOSE,2)<iMA(0,0,5,0,3,PRICE_CLOSE,1)&&OrdersTotal()==0)
{
CloseBuyOrders();
}
if(iMA(0,0,5,0,3,PRICE_CLOSE,1)<iMA(0,0,5,0,3,PRICE_CLOSE,0)&&iMA(0,0,5,0,3,PRICE_CLOSE,2)>iMA(0,0,5,0,3,PRICE_CLOSE,1)&&OrdersTotal()==0)
{
CloseSellOrders();
}