Пару вопросов к опытным кодерам.

MrSerj

Элитный участник


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

1) Какие есть пути решения такой задачи. К примеру: Как указать условия, при которых будет выполняться заранее определенный блок кода. В условиях должно быть true, при закрытии ордеров с определенных магическими номерами.

2) Или же условия true, если в текущих открытых позициях присутствуют одна из 2 позиций с определенными магическими номерами, но не обе позиции одновременно.

Заранее благодарю за ваши варианты решения данных задач! :)
 

cmillion

Гуру форума


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

1) Какие есть пути решения такой задачи. К примеру: Как указать условия, при которых будет выполняться заранее определенный блок кода. В условиях должно быть true, при закрытии ордеров с определенных магическими номерами.

2) Или же условия true, если в текущих открытых позициях присутствуют одна из 2 позиций с определенными магическими номерами, но не обе позиции одновременно.

Заранее благодарю за ваши варианты решения данных задач! :)

Сразу после закрытия ордера проверьте:
PHP:
   if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==true)
   {
      if (OrderTicket()==Ticket) - то выполняется .......


Определить закрытую позицию можно так: Сигнал при закрытии ордера - MQL4 Code Base :?:


Удачи!
 

MrSerj

Элитный участник
Сразу после закрытия ордера проверьте:
PHP:
   if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==true)
   {
      if (OrderTicket()==Ticket) - то выполняется .......


Определить закрытую позицию можно так: Сигнал при закрытии ордера - MQL4 Code Base :?:


Удачи!

Благодарю за совет!
Благодарю за совет! Вот еще один из вариантов. Открытие ордера только, при условии отсутствии текущей открытой позиции с определенным магическим номером. :?:


PHP:
int Yes = OrderSelect( int 0, int MODE_TRADES);
int  Mag = OrderMagicNumber() == 123;  
  if (Yes != Mag) // Если первое не равно 2-му, то выполняется.
 
Верх