Номинальная скорость обработки ордеров - МТ4 vs МТ5. Тестируем вместе. - страница 4

 
Главное, что пачкой. Т.е. полный цикл 10 OrderSendAsync равен практически одному циклу OrderSend для отложек, стоящих далеко от текущей цены.
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 
Renat:

Адреса наших демонстрационных торговых серверов MetaTrader 4 (demo.metaquotes.net:443) и MetaTrader 5 (access.metatrader5.com:443).

С разных машин никак не получается пропинговать ваш демо-сервер 78.140.156.155. При этом MT4 полноценно работает с ним (узнать бы точный IP Access Points) на всех машинах. Live-сервер пингуется без проблем.
 

Renat:

Синхронный режим показывает по 149 мс исполнения каждой заявки, что при базовом пинге до торгового сервера в 130 мс является хорошим результатом. Маленький размер сетевого пакета + эффективный сетевой протокол позволяют очень быстро доставлять данные.
Выходит, что на постановку торгового приказа в таблицу ордеров уходит в MT5 где-то 10-15ms. Эта скорость зависит от размера таблицы?
 
Renat:

Видно, что 10 сделок на MetaTrader 5 в асинхронном режиме улетели за 31 мс, в среднем по 3 мс на ордер. Это скорострельность асинхронного режима "выстрелил и забыл" без какого либо подтверждения со стороны сервера. Первые ответы (пачкой) от сервера придут где-то через 145 мс, как в обычном синхронном режиме. Но как 10 заявок были выстрелены за 31 мс, так и прием их результатов тоже должен прийти пачкой через 145 мс.

Жаль, не показали, как серверные ответы поймать. Было бы хорошо увидеть полноценный аналог OrderSend через OrderSendAsync.
 
У наших серверов отключен icmp ради безопасности, поэтому в чистом виде пингануть их нельзя.

Можно посмотреть время последнего сервера в цепочке трейсрута.

Время в 10-15 мс неверное. Нельзя же сравнивать пакет простейшего короткого пинга и не такой уж и маленький пакет торговой транзакции с ответным пакетом результата.
 
Renat:
Время в 10-15 мс неверное. Нельзя же сравнивать пакет простейшего короткого пинга и не такой уж и маленький пакет торговой транзакции с ответным пакетом результата.
А какой размер пакета транзакции? Примерно?
 

Renat:
У наших серверов отключен icmp ради безопасности, поэтому в чистом виде пингануть их нельзя.

Можно посмотреть время последнего сервера в цепочке трейсрута.

Чему равен пинг в такой ситуации?

tracert 78.140.156.155

Tracing route to 78.140.156.155 over a maximum of 30 hops

  1    <1 ms    <1 ms     1 ms  50.22.218.201-static.reverse.softlayer.com [50.22.218.201]
  2    <1 ms    <1 ms    <1 ms  ae12.dar01.sr01.wdc01.networklayer.com [208.43.118.148]
  3    <1 ms     1 ms     1 ms  ae8.bbr01.eq01.wdc02.networklayer.com [173.192.18.196]
  4     2 ms     2 ms     2 ms  peering.ash.us.iptransit.com [206.223.115.75]
  5   133 ms   132 ms   133 ms  te8-2.r3.dal.us.iptransit.com [204.26.60.69]
  6    74 ms    75 ms    75 ms  xe-0-1-0.r1.ny.us.iptransit.com [199.59.205.165]
  7   127 ms   126 ms   170 ms  xe-0-3-0.r2.ams.tc2.nl.iptransit.com [199.59.20.137]
  8   133 ms   132 ms   132 ms  199.59.206.129
  9   135 ms   136 ms   136 ms  te9-2.ams-evo.nl.iptransit.com [204.26.60.102]
 10   129 ms   130 ms   129 ms  204.26.61.98
 11     *        *        *     Request timed out.
Время в 10-15 мс неверное. Нельзя же сравнивать пакет простейшего короткого пинга и не такой уж и маленький пакет торговой транзакции с ответным пакетом результата.

Какое у вас время уходит на эту операцию:

hrenfx:

Для сравнения:

В FXCM-платформе (не Metatrader) время постановки/удаления торгового ордера занимает 35-50мс (от момента, когда он попадает на их сторону в виде сетевого пакета).
 
В трейсе время на уровне 130 мс.

"Для сравнения" требуются воспроизводимые тесты. Пока воспроизводимых тестов нет, речи об 35-50 мс не может быть.
 
Renat:

В MetaTrader 4 есть только синхронный режим и среднее время исполнения одной заявки оказалось 207 мс, что больше времени исполнения MetaTrader 5. Одним из объяснений этой разницы является затраты на использование отдельного сетевого контекста для торговых операций, что может привести к некоторым задержкам. Кроме того, в MetaTrader 5 мы применили более эффективные механизмы очередей заявок и исполнения.

Подскажите, почему такая огромная разница (результат повторяется от запуска к запуску. пробовал маркет ордера менять на отложки - то же самое):

2012.04.30 13:21:49     MQL4eTradeSpeedvSync EURUSD,M1: Alert: 2. Открытие 10 сделок синхронно заняло 3750 ms, 375 ms на сделку, 0 ошибок
2012.04.30 13:21:45     MQL4eTradeSpeedvSync EURUSD,M1: Alert: 1. Открытие 10 сделок синхронно, подождите...

Народ, прогоните скрипты Рената на демо-серверах разработчиков. Пинг померять можно командой  ping 204.26.61.70. Давайте выясним реальные цифры.

 

 
hrenfx:

Подскажите, почему такая огромная разница (результат повторяется от запуска к запуску. пробовал маркет ордера менять на отложки - то же самое):

Будем разбираться детально, у меня тоже вопросы есть.
Причина обращения: