Как на пересечении скользящих МА закрыть ордер?

дима1234

Интересующийся
как на пересечении скользящих закрыть ордер?
т.е. есть открытый ордер на пересечении скользящих и по условию только один рыночный ордер может быть открытым и нужно чтоб ранее открытый рыночный ордер закрыть и открыть новый ордер на пересечении скользящих
int start()
{
if (CountTrades() <= 0)
{
double ima1 = iMA(Symbol(), 0, period1, ma_shift1, MODE_SMA, PRICE_CLOSE, 0);
double ima2 = iMA(Symbol(), 0, period2, ma_shift2, MODE_SMA, PRICE_CLOSE, 0);

if (ima2 > ima1)
{
OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, NULL, Magic, 0, CLR_NONE);
}
else if (ima2 < ima1)
{
OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, NULL, Magic, 0, CLR_NONE);
}
}
return(0);
}
//+------------------------------------------------------------------+
int CountTrades()
{
int count = 0;
for (int i=OrdersTotal()-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS, MODE_TRADES))
{
if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
count++;
}
}

return(count);
}
Редактировать сообщение
 
Последнее редактирование модератором:

Ugar

Гуру форума
В этом коде закрытия ордеров вообще нет.
Для начала нужно перенести расчёты МА до счётчика ордеров.
Ну и нужно добавить закрытие ордеров которого нет. Его можно совместить с счётчиком ордеров.
 

дима1234

Интересующийся
В этом коде закрытия ордеров вообще нет.
Для начала нужно перенести расчёты МА до счётчика ордеров.
Ну и нужно добавить закрытие ордеров которого нет. Его можно совместить с счётчиком ордеров.
В этом и проблема я не знаю как это сделать((( Помогите пожалуйста.
 
Верх