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

 
fxsaber #:
Видим, что тормозит торговый сервер непростительно сильно. Повторюсь, это демо-контур: MQ-Demo.

Кратко.

  1. Открытые позиции с одним и тем же TP.
  2. Пришел тик, который активировал TP.
  3. Через 24 мс после тика родился (тикет) первый TP-ордер, который далее исполнялся 33 мс. Итого через 24+33 = 57 мс после прихода тика открытая позиция закрылась по TP.
  4. Через 54 мс после тика родился (тикет) последний TP-ордер, который далее исполнялся 84 мс. Итого через 54+84 = 138 мс после прихода тика открытая позиция закрылась по TP.

Какие на самом деле должны быть скоростные характеристики при исполнении TP открытой позиции на демо-контуре, когда все происходит исключительно внутри торгового сервера платформы?

Торговый терминал никак не участвует в процессе.


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

 
Andrey Khatimlianskii #:

Ну, хоть так. Все лучше, чем последовательно исполнять все ТП и лимитки.

Но исправить очередь, конечно, нужно. ТП должен быть обычным лимитником.

TP не может быть обычным лимитным ордером, потому что объем закрываемой позиции в общем случае заранее не известен (по крайней мере в netting)

 

Возможно не в тему, но спрошу:

Чем заменить в МТ4  DEAL_REASON_TP

      if(OrderMagicNumber()==Magic && OrderCloseTime()>lasttpsound && HistoryDealGetInteger(histic,DEAL_REASON)==DEAL_REASON_TP) {
 
Vitaly Muzichenko #:

Возможно не в тему, но спрошу:

Чем заменить в МТ4  DEAL_REASON_TP

Проверить запись в комментарии закрытой позиции.

 
fxsaber #:

Проверить запись в комментарии закрытой позиции.

А если есть пользовательский коммент, коммент дозапишется или заменится?

 
Valeriy Yastremskiy #:

А если есть пользовательский коммент, коммент дозапишется или заменится?

Так.

 
fxsaber #:

Так.

Спасибо, смотреть с конца значит.

 
Valeriy Yastremskiy #:

Спасибо, смотреть с конца значит.

Скорее, с начала.

 

Я сделал так, полагаю - всё верно работает

мт4
StringFind(OrderComment(),"[tp]",0) >= 0

мт5
HistoryDealGetInteger(histic,DEAL_REASON) == DEAL_REASON_TP