Блокировка других открытых ордеров до следующего сигнала

 
Здравствуйте. Ордер открылся на пересечении двух МА. А с помощью какой функции заблокировать остальное открытие ордеров, пока не закроется первый ордер? Закрытие происходит на другом пересечении МА.
 
Anna_89:
Здравствуйте. Ордер открылся на пересечении двух МА. А с помощью какой функции заблокировать остальное открытие ордеров, пока не закроется первый ордер? Закрытие происходит на другом пересечении МА.Вставь

вставьте перед функцией открытия ордеров проверку на уже открытые ордера

например такой дубовый способ (если принять что у вас нет отложников и ордеров других советников):

 

if (OrdersTotal() == 0) {

ваш код открытия ордеров

}

 или сделать подсчет ордеров заданного типа вашего советника (который использует меджик MAGIC_NUMBER)

int total = OrdersTotal();
int open_total = 0;
for(int i = total-1; i>=0; i--)
{
   if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
   {
      if (OrderMagicNumber() != MAGIC_NUMBER) continue; 
      {
         if(order_type == OP_BUY || order_type == OP_SELL)
         {
             open_total++;
         }
      }
   }
}

if (open_total == 0) {

ваш код открытия ордера

}
Причина обращения: