Скачать MetaTrader 5

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

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

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

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