Нужна помощь новичку

 

Пожалуйста, подскажите

Как определить что отложенный ордер открыт?

 
Если открыт, то он уже "рыночный" :)
 
syncomp:

Пожалуйста, подскажите

Как определить что отложенный ордер открыт?

Отличить открытую позицию от отложенного ордера можно по типу ордера.( https://docs.mql4.com/ru/trading/OrderSelect)
 

Все равно никак не пойму.

Есть несколько ордеров, одни из них открытые, другие отложенные. Как определить событие, что один из отложенных ордеров открылся?

 
syncomp:

Все равно никак не пойму.

Есть несколько ордеров, одни из них открытые, другие отложенные. Как определить событие, что один из отложенных ордеров открылся?

Можно по изменению количества позиций или по изменению количества отложек.
 
syncomp:

Все равно никак не пойму.

Есть несколько ордеров, одни из них открытые, другие отложенные. Как определить событие, что один из отложенных ордеров открылся?

в функции start() строите такую конструкцию:

   for(i=OrdersTotal()-1;i>=0;i--)//цикл перебора всех ордеров
      if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))//выбираем ордер
         if(OrderSymbol()==symbol)//если ордер открыт в текущей валютной паре
            if(OrderMagicNumber()==magic)//если это ордер, установленный текущей версией программы
               switch(OrderType())
               {
               case OP_BUY:
                  // обработка открытого ордера
                  break;
               case OP_SELL:
                  // обработка открытого ордера
                  break;
               case OP_BUYLIMIT:
                  // обработка отложенного ордера
                  break;
               case OP_SELLLIMIT:
                  // обработка отложенного ордера
                  break;
               case OP_BUYSTOP:
                  // обработка отложенного ордера
                  break;
               case OP_SELLSTOP:
                  // обработка отложенного ордера
                  break;
               }

 как только ордер откроется он попадет в нужную секцию

ps разумеется набор условий по отбору нужных ордеров и набор типов отложек подбираете под себя 

 
Спасибо midorum. Рациональное зерно вижу. Нашел еще один вариант в учебнике - пользовательская функция Terminal. Но код длинный получится. Всем спасибо.  всем торговли по T/P
 
спасибо. взаимно)
 

В процессе написания советника возник еще один вопрос.

Выбор ордеров функцией OrderSelect по номеру позиции. Я так понимваю, что когда отложенный ордер открывается, то изменяется его номер позиции. И не только его. Какой же смысл использовать функцию по pos?

Я к тому, что анализируя код Terminal из учебника подумал о том, что там идет простой перебор ордеров. Но если ордер изменился то порядок Mas_Ord_New и Mas_Ord_Old будет отличаться и тогда весь учет ордеров рухнет.

Ведь в самом терминале МТ4 отложенные ордера стоят ниже строки профита. а потом, когда открываются - перемещаются выше.

 
syncomp:

В процессе написания советника возник еще один вопрос.

Выбор ордеров функцией OrderSelect по номеру позиции. Я так понимваю, что когда отложенный ордер открывается, то изменяется его номер позиции. И не только его. Какой же смысл использовать функцию по pos?

Я к тому, что анализируя код Terminal из учебника подумал о том, что там идет простой перебор ордеров. Но если ордер изменился то порядок Mas_Ord_New и Mas_Ord_Old будет отличаться и тогда весь учет ордеров рухнет.

Ведь в самом терминале МТ4 отложенные ордера стоят ниже строки профита. а потом, когда открываются - перемещаются выше.


у каждого ордера есть номер тикета ... может это вам поможет ... помоемому он не изменяеться ... 

а так же существуют глобальные переменные котрорые хранят данные в течении месяца не зависимо включен терминал или нет ...  

 
Поэтому я и решил регистрировать в советнике ордера по тикетам. По позициям, считаю, будет не корректно работать. просто я хотел выяснить этот вопрос для себя...
Причина обращения: