Акцептирование SL/TP-ордеров - страница 7

 
fxsaber #:

MT5-Server b3091. Проблема с отсутствием (дыра в последовательности тикетов) ордеров актуальна. Сложно сказать, насколько этот баг критический, с точки зрения рисков торговли и логики советников. Что можно однозначно констатировать, так это то, что баг имеет место быть: сервер теряет ордера.

ЗЫ К описанным случаям пропажи в более ранних постах добавлю следующий. Цена дошла до тейка открытой позиции. Сервер сгенерировал соответствующий TP-маркет ордер и доставил его до Терминала (советники увидели). Затем этот TP-маркет ордер бесследно исчез не только в Терминале, но и на Сервере.

Архитектурно происходит так.

  1. Цена доходит до уровня тейка открытой позиции.
  2. На сервере происходит триггер тейка - создается тикет под "ордер" тейка, информация о котором становится доступной и из Терминала.
  3. "Ордер" в кавычках, потому что для сервера это еще неполноценный ордер - требуется пройти проверку на его корректность.
  4. В случае, если "ордер" на проходит проверку (как OrderCheck в Терминале), то он не отправляется в шлюз, т.е. не приобретает статус полноценного ордера. В таком случае он не попадает в историю торгов.

Проверка может не пройти, если, например, был триггер тейка открытой позиции, которая уже находится в состоянии закрытия.

Таким образом, в Терминале можно видеть текущие полноценные ордера (пройдут проверку и попадут (даже в случае реджектов) в историю торгов) и фантомные ордера (проверку не пройдут, в истории торгов будут отсутствовать). Оба варианта будут иметь свои тикеты. Теоретически, фантомные ордера могут иметь одинаковые тикеты.


Такая схема выстроена из-за асинхронной архитектуры сервера MT5. Это чем-то напоминает логику OrderSendAsync из Терминала. Сложно сказать, правильно ли, что сервер отправляет в Терминал информацию о фантомных ордерах до проверки на корректность.

 

Особенность TP.

Формирование очередей исполнения торговых ордеров в MT5.
Формирование очередей исполнения торговых ордеров в MT5.
  • www.mql5.com
При анализе истории торгов обратил вниманием на интересную деталь влияния TP открытых позиций на исполнение лимитных ордеров. Переворот. Для подтверждения сделанной гипотезы был написан такой скрипт
 
fxsaber #:

Особенность TP.

Формально тут нет противоречия: TP в примере выставлен раньше, чем лимитный ордер - поэтому и исполняется раньше. А то что TP исполняется через Ж странным образом - то это уже другой вопрос

Если бы сначала открывалась позиция, затем устанавливался лимитный, а только потом TP - и результат был бы тот же - тогда есть над чем подумать

 
A100 #:

Формально тут нет противоречия: TP в примере выставлен раньше, чем лимитный ордер - поэтому и исполняется раньше. А то что TP исполняется через Ж странным образом - то это уже другой вопрос

Если бы сначала открывалась позиция, затем устанавливался лимитный, а только потом TP - и результат был бы тот же - тогда есть над чем подумать

Пример для наглядности. Выводы не из примера.

 
fxsaber #:

Пример для наглядности. Выводы не из примера.

Так сделайте пример, на котором ошибка будет очевидной - ежу понятно, что при прочих равных условиях, ненормально, если TP исполняется раньше, чем предшествующий ему лимитный ордер

 
A100 #:

Так сделайте пример, на котором ошибка будет очевидной - ежу понятно, что при прочих равных условиях, ненормально, если TP исполняется раньше, чем предшествующий ему лимитный ордер

Мне доказательства не нужны. MQ в курсе, как у них устроено.

 
fxsaber #:

Мне доказательства не нужны. MQ в курсе, как у них устроено.

Сомневаюсь, что в курсе деталей. Помню мне тут несколько страниц доказывали, что нет ошибки (в те времена была еще такая практика), потом (еще через несколько страниц) признали что все-таки что-то не так - решили разобраться

А если нет конкретного однозначного примера, то (в сегодняшних реалиях) соответственно и повода нет, чтобы разбираться

 
A100 #:

А если нет конкретного однозначного примера, то (в сегодняшних реалиях) соответственно и повода нет, чтобы разбираться

Пример не всегда дает повод для разбирательства. MQ просто не видят проблемы, либо она видится несущественной.

 
fxsaber #:

Пример не всегда дает повод для разбирательства. MQ просто не видят проблемы, либо она видится несущественной.

Существенная проблема только если: TP не исполняется (цена ушла - не успел) и вследствии этого лимитный также не исполнится

 

Кстати, да, интересно. Если маленький лимитник стоит на том же уровне, где ТП огромной позиции, и этот ТП реджектится, потому что большой, лимитник даже шансов не будет иметь на заливку?

Этим уже и манипулировать можно, наверное.