Скачать MetaTrader 5

Как выяснить тикет оставшегося ордера?

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Добавляй наш канал в друзья и следи за новостями!
Maksim Garkin
7858
Maksim Garkin 2016.03.17 17:32 

Здравствуйте, товарищи! 

Столкнулся с проблемой. В советнике нужно выяснить номер тикета ордера, который остается после частичного закрытия.

Советник при некоторой прибыли закрывает половину объема ордера. Потом два варианта. Либо по стоплоссу, либо по тейку.

пишу код

if(OrderSelect(tickett,SELECT_BY_TICKET,MODE_HISTORY) && OrderCloseTime()>0)

      {

      if(OrderClosePrice()==  OrderStopLoss()) Print(1);

      if(OrderClosePrice()==OrderTakeProfit()) Print(2);

      }

 Если по стоплоссу находит, Профит - нет. Как это сделать правильно?

Maksim Garkin
7858
Maksim Garkin 2016.03.17 17:44  

Ну, думал, что если цена закрытия ордера равна цене стоплосса, то этот ордер закрылся по СЛ, и тоже для ТП.

Пробовал по прибыли сравнивать, все равно тот же результат. 

Alexey Volchanskiy
16678
Alexey Volchanskiy 2016.03.17 17:47  
Maksim Garkin:

Здравствуйте, товарищи! 

Столкнулся с проблемой. В советнике нужно выяснить номер тикета ордера, который остается после частичного закрытия.

Советник при некоторой прибыли закрывает половину объема ордера. Потом два варианта. Либо по стоплоссу, либо по тейку.

пишу код

if(OrderSelect(tickett,SELECT_BY_TICKET,MODE_HISTORY) && OrderCloseTime()>0)

      {

      if(OrderClosePrice()==  OrderStopLoss()) Print(1);

      if(OrderClosePrice()==OrderTakeProfit()) Print(2);

      }

 Если по стоплоссу находит, Профит - нет. Как это сделать правильно?

1. Если ищете ордер в истории, естественно у него будет OrderCloseTime()>0, зачем это проверять?

2. МОжет, сделать нечеткое сравнение? Например

if(MathAbs(OrderClosePrice() - OrderTakeProfit()) >= 0.0001) Print(2);

 


Alexey Viktorov
6888
Alexey Viktorov 2016.03.17 17:49  
Maksim Garkin:

Здравствуйте, товарищи! 

Столкнулся с проблемой. В советнике нужно выяснить номер тикета ордера, который остается после частичного закрытия.

Советник при некоторой прибыли закрывает половину объема ордера. Потом два варианта. Либо по стоплоссу, либо по тейку.

пишу код

if(OrderSelect(tickett,SELECT_BY_TICKET,MODE_HISTORY) && OrderCloseTime()>0)

      {

      if(OrderClosePrice()==  OrderStopLoss()) Print(1);

      if(OrderClosePrice()==OrderTakeProfit()) Print(2);

      }

 Если по стоплоссу находит, Профит - нет. Как это сделать правильно?

1. В комментарии ордера пишется тикет ордера с остатком объёма.

2. Выбор ордера по тикету не зависит от того закрыт он или нет, поэтому MODE_HISTORY писать необязательно.

3. Если ордер закрывался по тейку или стопу и проскользил чуток, то условие не будет выполнено.

Alexey Volchanskiy
16678
Alexey Volchanskiy 2016.03.17 17:52  
Alexey Viktorov:

3. Если ордер закрывался по тейку или стопу и проскользил чуток, то условие не будет выполнено.


Я и писал, четкое сравнение не годится.
Alexey Viktorov
6888
Alexey Viktorov 2016.03.17 17:54  
Alexey Volchanskiy:

Я и писал, четкое сравнение не годится.
Я не видел, мы писали одновременно, только ты чуток пошустрей:)))
Alexey Volchanskiy
16678
Alexey Volchanskiy 2016.03.17 17:57  
Alexey Viktorov:
Я не видел, мы писали одновременно, только ты чуток пошустрей:)))
Ок, шоколадная медаль пополам ))
Maksim Garkin
7858
Maksim Garkin 2016.03.17 18:01  
Alexey Volchanskiy:
Ок, шоколадная медаль пополам ))
Вообще работать перестало )) Верните медаль обратно ;)
Alexey Volchanskiy
16678
Alexey Volchanskiy 2016.03.17 18:07  
Maksim Garkin:
Вообще работать перестало )) Верните медаль обратно ;)

Надо померить проскальзывание у брокера, сразу все станет ясно. У меня только что скрипт для этого в кодобазе опубликовали, меряйте на здоровье ) 

https://www.mql5.com/ru/forum/76821 

Скрипты: OpenOrderTime
Скрипты: OpenOrderTime
  • www.mql5.com
Скрипт измеряет время открытия и закрытия рыночного ордера и записывает их в файл. - - Категория: статьи и техническая библиотека по автоматическому трейдингу
Maksim Garkin
7858
Maksim Garkin 2016.03.17 18:24  
Sergey Chalyshev:
Все смешалось в кучу, кони люди мухи котлеты. 
Вы сначала определитесь для какого терминала, мт4 или мт4?


мт4 

Alexey Viktorov
6888
Alexey Viktorov 2016.03.17 18:25  
Sergey Chalyshev:
Все смешалось в кучу, кони люди мухи котлеты. 
Вы сначала определитесь для какого терминала, мт4 или мт4?

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