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

 
Михаил:

Я начал эту тему 16.12.2014 г.

Сейчас уже сентябрь 2015 г.

Справедливости ради, нужно отметить, что общие задержки, вызванные первоначальной концепцией платформы,

очень быстро исправили, но бесконечно жаль, что разработчики не серьёзно отнеслись к "плавающей одиночной" задержке,

которая, как оказалось, может приводить к фатальным результатам в торговле ( из проведённых тестов у разных брокеров на демо и реале,

совершенно очевидно, что задержки возникают в серверной части МТ5 ).  

И бесконечно жаль, что работу по выявлению ошибки проводил пользователь, а

не сами разработчики, хотя Ренат 29.12.2014 г. заверил, что работы будут продолжаться:

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

Михаил, может быть задержки идут по вине оборудования ? Или Вы считаете что оборудование всегда работает без сбоев ? Может есть смысл написать разработчиками железа серверов?
 
Vladimir Pastushak:
Михаил, может быть задержки идут по вине оборудования ? Или Вы считаете что оборудование всегда работает без сбоев ? Может есть смысл написать разработчиками железа серверов?

Владимир!

Вы внимательно читайте приведённые посты и логи!

У РАЗНЫХ БРОКЕРОВ - ОДИН и тот же эффект, что на демо, что на реале! 

 
Михаил:

Владимир!

Вы внимательно читайте приведённые посты и логи!

У РАЗНЫХ БРОКЕРОВ - ОДИН и тот же эффект, что на демо, что на реале! 

Очень часто созданием / обслуживанием брокерского бизнеса занимается специализированная контора, которая в свою очередь ставит практически одни и те же сервера , то есть брокеры разные а оборудование одно и то же ...

Бывает что сервера разных брокеров в одной стойке стоят...

 
Vladimir Pastushak:

Очень часто созданием / обслуживанием брокерского бизнеса занимается специализированная контора, которая в свою очередь ставит практически одни и те же сервера , то есть брокеры разные а оборудование одно и то же ...

Бывает что сервера разных брокеров в одной стойке стоят...

Владимир!

У меня к Вам большая просьба:

Не фантазируйте, пожалуйста. 

 
Михаил:

Владимир!

У меня к Вам большая просьба:

Не фантазируйте, пожалуйста. 

Если Вы не знаете как устроен данный бизнес то это не значит что кто то фантазирует, нужны контакты для организации брокерского дома ?

Ладно это лирика, правильно я понимаю что вы тестируете сервера советником из данного поста https://www.mql5.com/ru/forum/38456/page37#comment_1869077

ФОРТС. Вопросы по исполнению
ФОРТС. Вопросы по исполнению
  • www.mql5.com
С большими проблемами удалось это сделать (начальник отдела по работе с профессиональными клиентами ДЦ Открытие Евгений Сергеевич,. - Страница 37 - Категория: автоматические торговые системы
 

Вот если интересно мой лог

Интересно, сколько сервер МТ5 может выдержать запросов в минуту или секунду...

Файлы:
20150901.log  758 kb
 

Сегодняшнее утро ( реал) Accsess server 4:

2015.09.02 10:00:18.610 Trades  'xxxxx': sell limit 5.00 MIX-12.15 at 172475
2015.09.02 10:00:18.619 Trades  'xxxxx': sell limit 5.00 MIX-12.15 at 172475 placed for execution in 9 ms
2015.09.02 10:00:18.926 Trades  'xxxxx': cancel order #19725208 sell limit 5.00 MIX-12.15 at 172475
2015.09.02 10:00:18.941 Trades  'xxxxx': cancel order #19725208 sell limit 5.00 MIX-12.15 at 172475 placed for execution in 15 ms
2015.09.02 10:00:20.215 Trades  'xxxxx': buy limit 3.00 TATN-12.15 at 28402
2015.09.02 10:00:29.538 Trades  'xxxxx': buy limit 3.00 TATN-12.15 at 28402 placed for execution in 9324 ms
2015.09.02 10:00:29.608 Trades  'xxxxx': modify order #19725217 buy limit 3.00 TATN-12.15 at 28402 sl: 0 tp: 0 -> 28404, sl: 0 tp: 0
2015.09.02 10:00:31.504 Trades  'xxxxx': cancel order #19725136 sell limit 5.00 UJPY-12.15 at 120.69
2015.09.02 10:00:31.510 Trades  'xxxxx': sell limit 2.00 FEES-12.15 at 6831
2015.09.02 10:00:31.817 Trades  'xxxxx': modify order #19725217 buy limit 3.00 TATN-12.15 at 28402 sl: 0 tp: 0 -> 28523, sl: 0 tp: 0
2015.09.02 10:00:33.713 Trades  'xxxxx': cancel order #19725179 buy limit 1.00 URKA-12.15 at 19590
2015.09.02 10:00:33.733 Trades  'xxxxx': modify order #19725217 buy limit 3.00 TATN-12.15 at 28402 sl: 0 tp: 0 -> 28404, sl: 0 tp: 0 placed for execution in 4125 ms
2015.09.02 10:00:33.751 Trades  'xxxxx': cancel order #19725136 sell limit 5.00 UJPY-12.15 at 120.69 placed for execution in 2248 ms
2015.09.02 10:00:33.752 Trades  'xxxxx': sell limit 2.00 FEES-12.15 at 6831 placed for execution in 2241 ms
2015.09.02 10:00:33.762 Trades  'xxxxx': modify order #19725217 buy limit 3.00 TATN-12.15 at 28404 sl: 0 tp: 0 -> 28523, sl: 0 tp: 0 placed for execution in 1946 ms
2015.09.02 10:00:33.900 Trades  'xxxxx': cancel order #19725217 buy limit 3.00 TATN-12.15 at 28523
2015.09.02 10:00:34.654 Trades  'xxxxx': modify order #19725269 sell limit 2.00 FEES-12.15 at 6831 sl: 0 tp: 0 -> 6829, sl: 0 tp: 0
2015.09.02 10:00:35.603 Trades  'xxxxx': cancel order #19725179 buy limit 1.00 URKA-12.15 at 19590 placed for execution in 1890 ms
2015.09.02 10:00:35.610 Trades  'xxxxx': cancel order #19725217 buy limit 3.00 TATN-12.15 at 28523 placed for execution in 1710 ms
2015.09.02 10:00:35.624 Trades  'xxxxx': modify order #19725269 sell limit 2.00 FEES-12.15 at 6831 sl: 0 tp: 0 -> 6829, sl: 0 tp: 0 placed for execution in 970 ms
2015.09.02 10:00:36.004 Trades  'xxxxx': modify order #19725269 sell limit 2.00 FEES-12.15 at 6829 sl: 0 tp: 0 -> 6808, sl: 0 tp: 0
2015.09.02 10:00:36.014 Trades  'xxxxx': modify order #19725269 sell limit 2.00 FEES-12.15 at 6829 sl: 0 tp: 0 -> 6808, sl: 0 tp: 0 placed for execution in 9 ms

 Можно это назвать "одиночная" задержка?

Соответственно (превышен лимит ожидания) включилась функция альтернативной проверки ( CheckOrders() ):

2015.09.02 10:00:21.419 Forts_trader (TATN-9.15,H1)     CheckOrders: Попытка 1 получить билет Buy ордера...
2015.09.02 10:00:21.529 Forts_trader (TATN-9.15,H1)     CheckOrders: Попытка 2 получить билет Buy ордера...
2015.09.02 10:00:21.638 Forts_trader (TATN-9.15,H1)     CheckOrders: Попытка 3 получить билет Buy ордера...
2015.09.02 10:00:21.747 Forts_trader (TATN-9.15,H1)     CheckOrders: Попытка 4 получить билет Buy ордера...
2015.09.02 10:00:21.856 Forts_trader (TATN-9.15,H1)     CheckOrders: Попытка 5 получить билет Buy ордера...
2015.09.02 10:00:21.856 Forts_trader (TATN-9.15,H1)     CheckOrders: Не получен билет Buy ордера!
2015.09.02 10:00:22.932 Forts_trader (TATN-9.15,H1)     CheckOrders: Попытка 1 получить билет Buy ордера...
2015.09.02 10:00:23.042 Forts_trader (TATN-9.15,H1)     CheckOrders: Попытка 2 получить билет Buy ордера...
2015.09.02 10:00:23.151 Forts_trader (TATN-9.15,H1)     CheckOrders: Попытка 3 получить билет Buy ордера...
2015.09.02 10:00:23.260 Forts_trader (TATN-9.15,H1)     CheckOrders: Попытка 4 получить билет Buy ордера...
2015.09.02 10:00:23.369 Forts_trader (TATN-9.15,H1)     CheckOrders: Попытка 5 получить билет Buy ордера...
2015.09.02 10:00:23.369 Forts_trader (TATN-9.15,H1)     CheckOrders: Не получен билет Buy ордера!
2015.09.02 10:00:24.461 Forts_trader (TATN-9.15,H1)     CheckOrders: Попытка 1 получить билет Buy ордера...
2015.09.02 10:00:24.570 Forts_trader (TATN-9.15,H1)     CheckOrders: Попытка 2 получить билет Buy ордера...
2015.09.02 10:00:24.680 Forts_trader (TATN-9.15,H1)     CheckOrders: Попытка 3 получить билет Buy ордера...
2015.09.02 10:00:24.789 Forts_trader (TATN-9.15,H1)     CheckOrders: Попытка 4 получить билет Buy ордера...
2015.09.02 10:00:24.898 Forts_trader (TATN-9.15,H1)     CheckOrders: Попытка 5 получить билет Buy ордера...
2015.09.02 10:00:24.898 Forts_trader (TATN-9.15,H1)     CheckOrders: Не получен билет Buy ордера!
2015.09.02 10:00:25.974 Forts_trader (TATN-9.15,H1)     CheckOrders: Попытка 1 получить билет Buy ордера...
2015.09.02 10:00:26.084 Forts_trader (TATN-9.15,H1)     CheckOrders: Попытка 2 получить билет Buy ордера...
2015.09.02 10:00:26.193 Forts_trader (TATN-9.15,H1)     CheckOrders: Попытка 3 получить билет Buy ордера...
2015.09.02 10:00:26.302 Forts_trader (TATN-9.15,H1)     CheckOrders: Попытка 4 получить билет Buy ордера...
2015.09.02 10:00:26.411 Forts_trader (TATN-9.15,H1)     CheckOrders: Попытка 5 получить билет Buy ордера...
2015.09.02 10:00:26.411 Forts_trader (TATN-9.15,H1)     CheckOrders: Не получен билет Buy ордера!
2015.09.02 10:00:27.503 Forts_trader (TATN-9.15,H1)     CheckOrders: Попытка 1 получить билет Buy ордера...
2015.09.02 10:00:27.612 Forts_trader (TATN-9.15,H1)     CheckOrders: Попытка 2 получить билет Buy ордера...
2015.09.02 10:00:27.721 Forts_trader (TATN-9.15,H1)     CheckOrders: Попытка 3 получить билет Buy ордера...
2015.09.02 10:00:27.831 Forts_trader (TATN-9.15,H1)     CheckOrders: Попытка 4 получить билет Buy ордера...
2015.09.02 10:00:27.940 Forts_trader (TATN-9.15,H1)     CheckOrders: Попытка 5 получить билет Buy ордера...
2015.09.02 10:00:27.940 Forts_trader (TATN-9.15,H1)     CheckOrders: Не получен билет Buy ордера!
2015.09.02 10:00:29.021 Forts_trader (TATN-9.15,H1)     CheckOrders: Попытка 1 получить билет Buy ордера...
2015.09.02 10:00:29.125 Forts_trader (TATN-9.15,H1)     CheckOrders: Попытка 2 получить билет Buy ордера...
2015.09.02 10:00:29.235 Forts_trader (TATN-9.15,H1)     CheckOrders: Попытка 3 получить билет Buy ордера...
2015.09.02 10:00:29.344 Forts_trader (TATN-9.15,H1)     CheckOrders: Попытка 4 получить билет Buy ордера...
2015.09.02 10:00:29.453 Forts_trader (TATN-9.15,H1)     CheckOrders: Попытка 5 получить билет Buy ордера...
2015.09.02 10:00:29.453 Forts_trader (TATN-9.15,H1)     CheckOrders: Не получен билет Buy ордера!
2015.09.02 10:00:31.060 Forts_trader (TATN-9.15,H1)     CheckOrders: Buy ордер модифицирован. Билет = 19725217
2015.09.02 10:00:32.894 Forts_trader (UJPY-9.15,H1)     CheckOrders: Sell ордер не удалён! Билет = 19725136
2015.09.02 10:00:32.894 Forts_trader (FEES-9.15,H1)     CheckOrders: Попытка 1 получить билет Sell ордера...
2015.09.02 10:00:33.010 Forts_trader (FEES-9.15,H1)     CheckOrders: Попытка 2 получить билет Sell ордера...
2015.09.02 10:00:33.088 Forts_trader (TATN-9.15,H1)     CheckOrders: Buy ордер модифицирован. Билет = 19725217
2015.09.02 10:00:33.119 Forts_trader (FEES-9.15,H1)     CheckOrders: Попытка 3 получить билет Sell ордера...
2015.09.02 10:00:33.228 Forts_trader (FEES-9.15,H1)     CheckOrders: Попытка 4 получить билет Sell ордера...
2015.09.02 10:00:33.337 Forts_trader (FEES-9.15,H1)     CheckOrders: Попытка 5 получить билет Sell ордера...
2015.09.02 10:00:33.337 Forts_trader (FEES-9.15,H1)     CheckOrders: Не получен билет Sell ордера!
2015.09.02 10:00:34.773 Forts_trader (URKA-9.15,H1)     CheckOrders: Buy ордер не удалён! Билет = 19725179
2015.09.02 10:00:35.115 Forts_trader (TATN-9.15,H1)     CheckOrders: Buy ордер не удалён! Билет = 19725217
 
Михаил:

Сегодняшнее утро ( реал) Accsess server 4:

По информации от Открытия, AS 4 лучше не использовать. 

Лучше использовать AS2 

 
Aytugan Khafizov:

Михаил, по результатам анализа логов Вашего логина с точек доступа Открытия я могу сказать следующее:

 

1) При коннекте датацентр логгирует пинг до терминала, эти пинги держатся около 10мс но бывают выбросы до 500мс

Access Server2 2015.08.25 08:48:15.666 ***.***.***.*** '*****': login (Client build 1159, cid: *****************************, ping: 10.89 ms)
Access Server3 2015.08.25 00:07:19.069 ***.***.***.*** '*****': login (Client build 1159, cid: *****************************, ping: 500.40 ms)
Access Server3 2015.08.25 08:48:28.696 ***.***.***.*** '*****': login (Client build 1159, cid: *****************************, ping: 12.03 ms)
Access Server3 2015.08.26 04:10:52.879 ***.***.***.*** '*****': login (Client build 1159, cid: *****************************, ping: 506.13 ms)
Access Server3 2015.08.27 01:08:15.820 ***.***.***.*** '*****': login (Client build 1159, cid: *****************************, ping: 8.12 ms)
Access Server2 2015.08.27 01:08:18.776 ***.***.***.*** '*****': login (Client build 1159, cid: *****************************, ping: 7.12 ms)
Access Server2 2015.08.27 02:32:48.278 ***.***.***.*** '*****': login (Client build 1159, cid: *****************************, ping: 7.07 ms)
Access Server2 2015.08.27 09:05:51.324 ***.***.***.*** '*****': login (Client build 1159, cid: *****************************, ping: 11.65 ms)
Access Server3 2015.08.27 09:06:04.272 ***.***.***.*** '*****': login (Client build 1159, cid: *****************************, ping: 11.75 ms)

Это пинг от точки доступа до терминала. вот весь путь:

|      зона ответственности Биржи     ||  зона ответственности Открытия                                   || интернет ||  клиент       |    

[биржа (ФОРТС)] <==> [шлюз Plaza2]  <===>  [шлюз в MOEX] <=> [MT5 торговый сервер] <=> [Точка доступа]  <================>   [Терминал] 

То есть видны проблемы уже на пути МТ5 терминал - МТ5 точка доступа, не доходя до торговли.

 

2) Я проанализировал пинги остальных клиентов, по ним также есть флуктуации - но каких либо устойчивых паттернов (например с массовым увеличением пинга в одно и тоже время) я не нашел

 

Что совсем этим делать?

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

2) Я запросил дополнительную сетевую информацию у Открытия. посмотрим, может это поможет найти причину.

3) Рекомендую Вам какое-то время попробовать поработать через Access Server 4 - он подключается к интернету через провайдера, отличного от точек доступа (2,3) и по-другому подключен внутри сети Открытия к торговому серверу. 

Догадка возникла...

Подумал, а что если терминал пишет в лог, что отправил приказ (ордер),

а на самом деле не отправил (задержал), тогда это всё объясняет ( почему пинг большой от терминала к серверу МТ5 ).

 

Михаил:

Подумал, а что если терминал пишет в лог, что отправил приказ (ордер),

а на самом деле не отправил (задержал), тогда это всё объясняет ( почему пинг большой от терминала к серверу МТ5 ).

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

Поэтому, в терминале происходит примерно следующее:

  • Торговая часть терминала передает данные внутреннему диспетчеру соединений терминала
  • Диспетчер соединений передает данные операционной системе
  • Операционная система передает данные в интернет
По приходу данных из интернета операционная система определяет, что они пришли для терминала, вызывает диспетчер соединений терминала, и тот уже согласно внутреннему протоколу определяет, какому компоненту терминала эти данные предназначаются 

Все TCP-пакеты в соединение последовательно пронумерованы. На каждый полученный пакет ОС посылает подтверждение о получении. Также ОС смотрит полученные пакеты, и если видит что пакет с таким-то номером не получен, то она посылает отправителю специальное сообщение - перепослать пакет с таким-то номером. Поэтому даже при потере пакета "по пути", приложение не получает об этом информацию - операционные системы с двух сторон восполняют потерю пакетов. Но на пересылку нужно время, и ОС не отдает полученные "новые" пакеты, пока не получит все "старые" по порядку. Поэтому, со стороны приложения потери пакетов, которые восстановила ОС видны как задержки.

Со стороны Открытия видно, что торговый сервер фиксирует исполнение "проблемных" торговых сделок в 1-2 мс - такое же, как и у остальных сделок. По текущей информации, полученной из Открытия, на участках "биржа" - "шлюз", "шлюз-торговый сервер", "торговый сервер - точка доступа" проблемы не обнаружены. Сейчас мы разбираемся с точками доступа и участком "точка доступа - терминал".