Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Пополняй счет удобным способом. Здесь их 4!
syncomp
33
syncomp 2012.10.29 19:23 

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

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

DmitriyN
2316
DmitriyN 2012.10.29 19:27  
Если открыт, то он уже "рыночный" :)
Михаил
68
Михаил 2012.10.29 19:35  
syncomp:

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

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

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

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

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

khorosh
8195
khorosh 2012.10.30 15:46  
syncomp:

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

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

Можно по изменению количества позиций или по изменению количества отложек.
Михаил
68
Михаил 2012.10.30 16:11  
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 разумеется набор условий по отбору нужных ордеров и набор типов отложек подбираете под себя 

syncomp
33
syncomp 2012.10.30 19:47  
Спасибо midorum. Рациональное зерно вижу. Нашел еще один вариант в учебнике - пользовательская функция Terminal. Но код длинный получится. Всем спасибо.  всем торговли по T/P
Михаил
68
Михаил 2012.10.30 19:58  
спасибо. взаимно)
syncomp
33
syncomp 2012.10.31 16:50  

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

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

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

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

elmucon
637
elmucon 2012.10.31 18:25  
syncomp:

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

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

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

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


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

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

syncomp
33
syncomp 2012.10.31 18:44  
Поэтому я и решил регистрировать в советнике ордера по тикетам. По позициям, считаю, будет не корректно работать. просто я хотел выяснить этот вопрос для себя...
12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий