Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Anna_89
551
Anna_89  
Здравствуйте. Ордер открылся на пересечении двух МА. А с помощью какой функции заблокировать остальное открытие ордеров, пока не закроется первый ордер? Закрытие происходит на другом пересечении МА.
Igor Volodin
4042
Igor Volodin  
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) {

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

}
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий