Скачать MetaTrader 5

ФОРТС. Вопросы по исполнению - страница 4

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
MetaQuotes
Админ
26272
Renat Fatkhullin  
Mikalas:
Т.е Вы считаете, что задержки ( во внутренней сети) ~30 мс это нормально для для ТМ-5? 

А почему вы считаете их внутренними?

1) Посмотрите в OnTradeTransaction сколько вы промежуточных статусов получаете о заявке.

Каждая торговая транзакция - это не один пакет (запрос-ответ), а несколько уведомлений. Это для того, чтобы терминал всегда знал, на каком этапе находится заявка (например, исполнение может затянуться надолго).

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

2) Вы совершенно пропускаете вторую сторону коммуникации с биржей и вариабельность скорости исполнения. Видимо, вы считаете, что там заведомо 0. Но там нет никаких гарантий скорости.


Мне представляется, что это раз в 10 больше, чем могло бы быть.

Не нужно обманываться, смотря на торчащий над водой кусочек асберга.

Уточню, что мы не в 2 раза вообще-то улучшили скорость, а выиграли примерно 20-30 мс.  Два больше единицы не в 2 раза, а всего на единицу. Это всего лишь эффект низкой базы.


В любом случае, мы продолжаем работу и добьемся еще лучших результатов.

Mikhail Filimonov
5931
Mikhail Filimonov  
Renat:

А почему вы считаете их внутренними?

1) Посмотрите в OnTradeTransaction сколько вы промежуточных статусов получаете о заявке.

Каждая торговая транзакция - это не один пакет (запрос-ответ), а несколько уведомлений. Это для того, чтобы терминал всегда знал, на каком этапе находится заявка (например, исполнение может затянуться надолго).

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

2) Вы совершенно пропускаете вторую сторону коммуникации с биржей и вариабельность скорости исполнения. Видимо, вы считаете, что там заведомо 0. Но там нет никаких гарантий скорости.


В любом случае, мы продолжаем работу и добьемся еще лучших результатов.

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

Ренат, я очень надеюсь, что Вы решите эту серьёзную проблему.

Искренне желаю Вам удачи, а нам (пользователям) не долгого ожидания.  

 

P/S Большое спасибо, что ответили на мои вопросы. 

И огромное спасибо, что так быстро улучшили скорость! 

Alexander Laur
8544
Alexander Laur  

Форекс. Почему такие задержки на сервере? Правда билд 1010.

2014.12.23 11:19:34.485 Trades  '880758': market buy 0.03 EURUSD.e 2014.12.23 11:19:34.487 Trades  '880758': market buy 0.04 USDJPY.e 2014.12.23 11:19:34.489 Trades  '880758': market sell 0.03 EURJPY.e 2014.12.23 11:19:34.512 Trades  '880758': order #23932666 buy 0.03 / 0.03 EURUSD.e at 1.22276 done in 26 ms 2014.12.23 11:19:34.512 Trades  '880758': order #23932667 buy 0.04 / 0.04 USDJPY.e at 120.083 done in 24 ms 2014.12.23 11:19:34.512 Trades  '880758': deal #16352448 buy 0.03 EURUSD.e at 1.22276 done (based on order #23932666) 2014.12.23 11:19:34.512 Trades  '880758': deal #16352449 buy 0.04 USDJPY.e at 120.083 done (based on order #23932667) 2014.12.23 11:19:34.635 Trades  '880758': order #23932668 sell 0.03 / 0.03 EURJPY.e at 146.818 done in 146 ms 2014.12.23 11:19:34.635 Trades  '880758': deal #16352450 sell 0.03 EURJPY.e at 146.818 done (based on order #23932668) 2014.12.23 11:24:31.992 Trades  '880758': market buy 0.03 EURUSD.e 2014.12.23 11:24:31.994 Trades  '880758': market buy 0.04 USDJPY.e 2014.12.23 11:24:31.998 Trades  '880758': market sell 0.03 EURJPY.e 2014.12.23 11:24:32.022 Trades  '880758': order #23932758 buy 0.03 / 0.03 EURUSD.e at 1.22260 done in 30 ms 2014.12.23 11:24:32.026 Trades  '880758': deal #16352531 buy 0.03 EURUSD.e at 1.22260 done (based on order #23932758) 2014.12.23 11:24:32.036 Trades  '880758': order #23932759 buy 0.04 / 0.04 USDJPY.e at 120.076 done in 41 ms 2014.12.23 11:24:32.036 Trades  '880758': deal #16352532 buy 0.04 USDJPY.e at 120.076 done (based on order #23932759) 2014.12.23 11:24:32.102 Trades  '880758': order #23932760 sell 0.03 / 0.03 EURJPY.e at 146.791 done in 104 ms 2014.12.23 11:24:32.103 Trades  '880758': deal #16352533 sell 0.03 EURJPY.e at 146.791 done (based on order #23932760)

Mikhail Filimonov
5931
Mikhail Filimonov  
papaklass:

Форекс. Почему такие задержки на сервере? Правда билд 1010.

Вы имеете ввиду 104 и 146 мс?
Alexey Klenov
1894
Alexey Klenov  
Mikalas:
Вы имеете ввиду 104 и 146 мс?

Скорее всего между 24 мс и 146мс

хотя уходили приказы из терминала практически одновременно

Mikhail Filimonov
5931
Mikhail Filimonov  
olyakish:

Скорее всего между 24 мс и 146мс

хотя уходили приказы из терминала практически одновременно

Это "плавающий" баг обсуждался в теме "ФОРТС большие задержки при выставлении приказов",

( https://www.mql5.com/ru/forum/19681 ) который, к сожалению, не устранён и в 1035 билде.

В этой теме, Ренат скаазл:

"Изредка плавающее время доставки ответа в терминал еще не забороли, над этим продолжим работу."

И ещё: 

"В любом случае, мы продолжаем работу и добьемся еще лучших результатов.

Alexander Laur
8544
Alexander Laur  
olyakish:

Скорее всего между 24 мс и 146мс

хотя уходили приказы из терминала практически одновременно

Именно разницу 24 и 146, 30 и 104.

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

2014.12.23 10:39:28.632 Trades  '880758': market buy 0.03 EURUSD.e
2014.12.23 10:39:28.633 Trades  '880758': market buy 0.04 USDJPY.e
2014.12.23 10:39:28.635 Trades  '880758': market sell 0.03 EURJPY.e
2014.12.23 10:39:28.671 Trades  '880758': order #23932273 buy 0.03 / 0.03 EURUSD.e at 1.22283 done in 39 ms
2014.12.23 10:39:28.671 Trades  '880758': order #23932274 buy 0.04 / 0.04 USDJPY.e at 120.116 done in 37 ms
2014.12.23 10:39:28.687 Trades  '880758': deal #16352114 buy 0.03 EURUSD.e at 1.22283 done (based on order #23932273)
2014.12.23 10:39:28.687 Trades  '880758': deal #16352115 buy 0.04 USDJPY.e at 120.116 done (based on order #23932274)
2014.12.23 10:39:28.704 Trades  '880758': order #23932275 sell 0.03 / 0.03 EURJPY.e at 146.867 done in 69 ms
2014.12.23 10:39:28.704 Trades  '880758': deal #16352116 sell 0.03 EURJPY.e at 146.867 done (based on order #23932275)
2014.12.23 10:44:28.630 Trades  '880758': market buy 0.03 EURUSD.e
2014.12.23 10:44:28.632 Trades  '880758': market buy 0.04 USDJPY.e
2014.12.23 10:44:28.634 Trades  '880758': market sell 0.03 EURJPY.e
2014.12.23 10:44:28.866 Trades  '880758': order #23932322 buy 0.03 / 0.03 EURUSD.e at 1.22298 done in 235 ms
2014.12.23 10:44:28.897 Trades  '880758': deal #16352159 buy 0.03 EURUSD.e at 1.22298 done (based on order #23932322)
2014.12.23 10:44:28.897 Trades  '880758': order #23932323 buy 0.04 / 0.04 USDJPY.e at 120.090 done in 265 ms
2014.12.23 10:44:28.898 Trades  '880758': deal #16352160 buy 0.04 USDJPY.e at 120.090 done (based on order #23932323)
2014.12.23 10:44:28.898 Trades  '880758': order #23932324 sell 0.03 / 0.03 EURJPY.e at 146.853 done in 264 ms
2014.12.23 10:44:28.898 Trades  '880758': deal #16352161 sell 0.03 EURJPY.e at 146.853 done (based on order #23932324)
Alexey Klenov
1894
Alexey Klenov  
papaklass:

Именно разницу 24 и 146, 30 и 104.

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

Откуда шла торговля в этот момент.

Я достаточно плотно с этим общался и сейчас пришел к выводу что нужно иметь

  • выделенный сервер поближе к брокеру (именно выделенный а не виртуальный) сам беру вот такой 

  • сервер в хорошем датацентре
  • сеть повышенной надежности пусть даже 100Мб/сек где нет всяких там медиа ресурсов (идеал - кроссконнект без выхода в зону интернет)
  • пинг до брокера должен быть максимально стабильным  и без провалов макс отклонение (разница между минимальным и максимальным) 1 мс
  • общее количество терминалов на сервере не должно превышать по нагрузке 25-30% в пик работы (советников)
  • если уж винда то сервер 2012 (как утверждают многие - с сетью работает стабильнее)

уже после этого можно делать какие то тесты ...

Alexander Laur
8544
Alexander Laur  

Сервер виртуальный, Винда - сервер 2012 R, сеть Гигабитная, пинг 7 мс. Сеть достаточно стабильная.

Загрузка виртуальной машины будет сказываться на пакетную отправку приказов из терминала (будет разница в таймингах), а не на обработку приказов на сервере МТ.

Alexey Klenov
1894
Alexey Klenov  
papaklass:

Сервер виртуальный, Винда - сервер 2012 R, сеть Гигабитная, пинг 7 мс. Сеть достаточно стабильная.

Загрузка виртуальной машины будет сказываться на пакетную отправку приказов из терминала (будет разница в таймингах), а не на обработку приказов на сервере МТ.

Дайте Ip вашего сервера проверю сам.

мт5 выставляет приказ, далее виртуальная машина отправляет эту информацию физической машине а та уже в свою очередь отправляет на сетевой интерфейс

так вот в лог пишется именно первая фаза как

2014.12.23 10:44:28.630 Trades  '880758': market buy 0.03 EURUSD.e

(как я предполагаю)

+ в этот момент желательно запустить пинг сервера -t

+ еще может быть такая ситуация что МТ5 сервер выступает как труба к какому то ЛП и от связи МТ5сервер - ЛП и реакция ЛП на приказ может увеличивать общее время 

нужен МТ5 сервер как конечная инстанция (брокер аля маркетмейкер)

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