Фондовый рынок. Акции. Скорость исполнения торговых приказов. - страница 16

 
prostotrader #:

Andrey Miguzov Вы все же залезли в кухню...

нет на фондовом рынке рыночных ордеров

Я тоже так подумал сначала... Но они выводят сделки в рынок (на MOEX) - это легко проверяется по ленте сделок.  

Есть проблема со временем исполнения, буду пытаться решить через тех.поддержку, но чуть позже. Если не поправят - то скорее всего уйду обратно. Если помните - в Открытии тоже не всегда такое исполнение было. И в том числе благодаря Вам, оно стало таким как сейчас.


Но нужно понимать большую разницу - МТ5 в Открытии - это только MOEX - им сильно проще настроить терминал под работу на несколько секций на одной бирже. И оборудование разместить поближе к бирже. И то - до сих пор не сделали ЕБС.

А Финам сейчас на ЕБС предлагает:

И до всего нужна маленькая задержка, а это невозможно даже теоретически. Вы же понимаете какие возможности возникают при таком количестве инструментов? В общем везде свои + и -

 

ЗЫ: Не совсем по данной теме, но всё же. С учётом текущих санкций против банковского сектора я не уверен где теперь безопаснее держать средства: у РФ брокера (под санкциями) или на "кухне". Не ради политического срача пишу, просто действительно в данный момент - мне не понятно. Никого не хочу этим обидеть.

 
prostotrader #:

Сегодня, оба терминала реал

Фьючерсы

13 мс

Акции

26 мс и 28 мс соответственно

Добавлено

Обратные сделки
Фьючерсы

7 мс

Акции

26 мс и 27 мс соответственно

Я когда смотрю на Ваши логи и потом на мои - у меня "кровь из глаз" начинает идти. Чуть позже выложу логи - тоже по ВТБ приблизительно в это же время.С учетом анализа о котором выше писал.

 
Andrey Miguzov #:

Я когда смотрю на Ваши логи и потом на мои - у меня "кровь из глаз" начинает идти. Чуть позже выложу логи - тоже по ВТБ приблизительно в это же время.С учетом анализа о котором выше писал.

У меня в Открытии порядка 20-30 мс на фьючах, пинг до серверов 10-12 мс.

 
Andrey Miguzov #:

ЗЫ: Не совсем по данной теме, но всё же. С учётом текущих санкций против банковского сектора я не уверен где теперь безопаснее держать средства: у РФ брокера (под санкциями) или на "кухне". Не ради политического срача пишу, просто действительно в данный момент - мне не понятно. Никого не хочу этим обидеть.

Есть очень мудрая русская поговорка:

"Где родился, там и сгодился"....

Добавлено

Зацепил пару контрактов по "вкусной" цене


 
Andrey Miguzov #:

Выводы:

1) Время в логах и время тиков - не совпадают, что логично, но никогда об этом раньше не задумывался. ИМХО, замерять время исполнения по логам терминала не совсем корректно.

2) Зная время тика с точностью до миллисекунд (по цене которого отправляется ордер из терминала), можно потом (по истории на малоликвидных инструментах) узнать фактическое "время исполнения".

"время_исполнения" = "время_исходного_тика_на_бирже_который_вызвал_сделку_в_терминале" - "время_тика_на_бирже_о_твоей_сделке" .  

В это время будет входить все сетевые задержки от биржи до терминала и обратно (через брокера) + время обработки исполнения сделки на бирже + время обработки тика экспертом

Отпишусь о результатах потом.

Собственно результаты (в данном случае вход по всплеску - выход по времени). Прошу прощения, что много текста и картинок. Можно сразу читать выводы, всё остальное только для их подтверждения.

Вкладка эксперты (желтым выделено время тика, который вызывает вход/выход в позицию из эксперта):

2022.04.11 10:45:19.471 Цена входа bid: 755.8 EMA_ask = 519.7 Цена фьючерса: 2309.0 Цена акции: 0.022570 Время тика: 10:45:18.444 по символу VTBR
2022.04.11 12:45:21.670 Цена выхода ask: 549.0 Цена фьючерса: 2252.0 Цена акции: 0.022170 Время тика: 12:45:20.489 по символу VTBR

Вкладка журнал вход:

2022.04.11 10:45:19.476 '': exchange buy 150 VTBR at market
2022.04.11 10:45:19.476 '': exchange sell 15 VBM2 at market
2022.04.11 10:45:19.486 '': accepted exchange buy 150 VTBR at market
2022.04.11 10:45:19.491 '': exchange buy 150 VTBR at market placed for execution in 15.925 ms
2022.04.11 10:45:19.491 '': accepted exchange sell 15 VBM2 at market
2022.04.11 10:45:19.491 '': exchange sell 15 VBM2 at market placed for execution in 13.994 ms
2022.04.11 10:45:19.621 '': deal #2305398 buy 150 VTBR at 0.022570 done (based on order #204678572)
2022.04.11 10:45:19.636 '': deal #2305399 sell 1 VBM2 at 2304 done (based on order #204678573)
2022.04.11 10:45:19.641 '': deal #2305400 sell 14 VBM2 at 2303 done (based on order #204678573)

Лента сделок - вход по акции:


Лента сделок - вход по фьючерсу


Выводы по входу:

Для акции:

1) По логам терминала: 10:45:19.621 - 10:45:19.471 = 150 мс

2) Время тиков в ленте сделок:  10:45:18.540 - 10:45:18.444 = 96 мс. И я не понимаю как такое возможно!!!

Для фьючерса:

1) По логам терминала: 10:45:19.641 - 10:45:19.471  = 170 мс

2) Время тиков в ленте сделок:  10:45:18.573 - 10:45:18.444 = 129 мс. И тут я тоже не понимаю как такое возможно!!!


Теперь для статистики всё тоже самое для выхода:

2022.04.11 12:45:21.685 '': exchange sell 150 VTBR at market, close #204678572 buy 150 VTBR 0.022570
2022.04.11 12:45:21.685 '': exchange buy 15 VBM2 at market, close #204678573 sell 15 VBM2 2303.067
2022.04.11 12:45:21.701 '': accepted exchange sell 150 VTBR at market, close #204678572 buy 150 VTBR 0.022570
2022.04.11 12:45:21.701 '': exchange sell 150 VTBR at market, close #204678572 buy 150 VTBR 0.022570 placed for execution in 19.305 ms
2022.04.11 12:45:21.701 '': accepted exchange buy 15 VBM2 at market, close #204678573 sell 15 VBM2 2303.067
2022.04.11 12:45:21.701 '': exchange buy 15 VBM2 at market, close #204678573 sell 15 VBM2 2303.067 placed for execution in 18.989 ms
2022.04.11 12:45:21.841 '': deal #2307117 sell 150 VTBR at 0.022170 done (based on order #204986103)
2022.04.11 12:45:21.857 '': deal #2307118 buy 6 VBM2 at 2252 done (based on order #204986104)
2022.04.11 12:45:21.857 '': deal #2307119 buy 9 VBM2 at 2252 done (based on order #204986104)

Лента сделок - выход по акции:


Лента сделок - выход по фьючерсу:

 

Выводы по выходу:

Для акции:

1) По логам терминала:  12:45:21.841 - 12:45:21.670  = 171 мс

2) Время тиков в ленте сделок:  12:45:20.556 - 12:45:20.489 = 67 мс. Опять!!! И насколько сильная разница!!!!

Для фьючерса:

1) По логам терминала: 12:45:21.857 - 12:45:21.670 = 187 мс

2) Время тиков в ленте сделок:   12:45:20.585 12:45:20.489 =  96 мс ...


Выводы:

При измерении фактических задержек исполнения  - логами терминала пользоваться нельзя! Или нужно пользоваться как то иначе, если кто образумит - буду благодарен :)

Время "исполнения" по логам - 150, 170, 171, 187 мс. Время  "исполнения" по ленте сделок - 96, 129, 67, 96 мс соответственно. Средняя разница - 72,5 мс. Правильное время естественно на бирже. И это при пинге 12 мс.


***Под "исполнением" понимается промежуток времени между отправкой мне "базового" тика с биржи через брокера и заключением моей сделки по этому "тику" на бирже. Всё по времени биржи.

В это время по идее входит 2(??? тут теперь сомнения) сетевые задержки по ~12 мс (пинг) до брокера, время обработки тика терминалом, экспертом (замерю и допишу сколько это ~ мс в моем случае), сервером брокера, биржи + 2 сетевые задержки брокера.


ЗЫ: сколько же тогда "исполнение" у Открытия? :) Вообще круто, я боялся, что будет наоборот и сильно хуже... 

 
Andrey Miguzov #:

Выводы:

При измерении фактических задержек исполнения  - логами терминала пользоваться нельзя! Или нужно пользоваться как то иначе, если кто образумит - буду благодарен :)

Время "исполнения" по логам - 150, 170, 171, 187 мс. Время  "исполнения" по ленте сделок - 96, 129, 67, 96 мс соответственно. Средняя разница - 72,5 мс. Правильное время естественно на бирже. И это при пинге 12 мс.


***Под "исполнением" понимается промежуток времени между отправкой мне "базового" тика с биржи через брокера и заключением моей сделки по этому "тику" на бирже. Всё по времени биржи.

В это время по идее входит 2(??? тут теперь сомнения) сетевые задержки по ~12 мс (пинг) до брокера, время обработки тика терминалом, экспертом (замерю и допишу сколько это ~ мс в моем случае), сервером брокера, биржи + 2 сетевые задержки брокера.


ЗЫ: сколько же тогда "исполнение" у Открытия? :) Вообще круто, я боялся, что будет наоборот и сильно хуже... 

Вы просто хотите увязать два разных времени :)

На самом деле все очень просто.

Время исполнения, это время отправки ордера терминалом и оно прописано в логе

2022.04.11 11:25:41.599 Trades  'ххххх': sell limit 1 VTBR-6.22 at 2273

до времени сделки, которое тоже указано в логе

2022.04.11 11:25:41.612 Trades  'ххххх': deal #111208977 sell 1 VTBR-6.22 at 2273 done (based on order #199905491)

Время лога (оно одно) и будет временем исполнения торгового приказа (13 мс) плюс минус погрешность времени по которому ведется лог.

Вся неразбериха возникает потому, что МТ5 работает не точно по времени биржи, а по своему времени.

 
JRandomTrader #:

У меня в Открытии порядка 20-30 мс на фьючах, пинг до серверов 10-12 мс.

Просьба по возможности провести тест ко всем не равнодушным.

В том месте кода, где Вы получаете тик для формирования ордера вставить:

 Print(" Время тика: ", 
       TimeToString((datetime)MathMax(last_tick_stocks.time,last_tick_futures.time),TIME_SECONDS), //в моём случае вход сразу по 2-м инструментам, у Вас возможно 1 символ
       ".", 
       MathMax(last_tick_stocks.time_msc,last_tick_futures.time_msc)%1000, //добавляет мс в строку
       " по символу ", 
       stocks_name); //имя инструмента

И потом опубликовать, что выдаст эксперт и что будет в логах терминала по этому ордеру.

В ленте сделок постараюсь найти сам. Правда это не всегда возможно сделать - нужны объемы не типовые + в идеале ещё и заливка по разным ценам.

 
prostotrader #:

Вы просто хотите увязать два разных времени :)

На самом деле все очень просто.

Время исполнения, это время отправки ордера терминалом и оно прописано в логе

до времени сделки, которое тоже указано в логе

Время лога (оно одно) и будет временем исполнения торгового приказа (13 мс) плюс минус погрешность времени по которому ведется лог.

Вся неразбериха возникает потому, что МТ5 работает не точно по времени биржи, а по своему времени.

Я их между собой не перемешиваю. Я беру в одном случае два времени по логам терминала в другом случае два времени по ленте сделок. И по ленте получается сильно меньше (хотя должно быть по идее наоборот). И лента - это в любом случае правильно.

Добавлено:

То что Вы приводите как пример - это логи терминала. Мы видим сколько времени прошло по логам терминала. А как понять сколько времени прошло на бирже? Только лента сделок. 


Грубый и короткий пример:

Представим, что мы имеем дело с "кухней". Они нам в логи могут прислать, что время исполнения 1 мс. Как его проверить? Пойти на биржу и посмотреть время там - только так можно приблизительно понять - врут нам логи или нет.

 
Andrey Miguzov #:

Я их между собой не перемешиваю. Я беру в одном случае два времени по логам терминала в другом случае два времени по ленте сделок. И по ленте получается сильно меньше (хотя должно быть по идее наоборот). И лента - это в любом случае правильно.

Тогда я не понял, что Вы хотите выяснить?

Разницу времени между сделками спот- фьючерс?

 
prostotrader #:

Тогда я не понял, что Вы хотите выяснить?

Разницу времени между сделками спот- фьючерс?

Добавил в сообщение выше.

Алгоритм такой:

Нам приходит тик с биржи (время тика по времени биржи - T1)

Мы его анализируем и решаем отправить ордер на покупку/продажу по символу

Отправляем ордер

Биржа его исполняет и фиксирует время исполнения в ленте сделок (время биржи - Т2)

Мне интересно время = Т2-Т1

Причина обращения: