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

 
Andrey Miguzov #:

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

Я этим занимался несколько лет, доказывая MQ, что у них проблема с задержками, когда задержки были до 1 сек, 

был диалог, но когда задержки "докатились" до 14-20 секунд, MQ прекратили диалог.

Так вот, чтобы знать как действительно исполнился ордер нужен полный лог ордеров на бирже,

без него ничего доказать нельзя. 

Почитайте здесь (тогда еще биржа давала данные, это 2015 год )

https://www.mql5.com/ru/forum/38456/page23#comment_1445099

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

Я этим занимался несколько лет, доказывая MQ, что у них проблема с задержками, когда задержки были до 1 сек, 

был диалог, но когда задержки "докатились" до 14-20 секунд, MQ прекратили диалог.

Так вот, чтобы знать как действительно исполнился ордер нужен полный лог ордеров на бирже,

без него ничего доказать нельзя. 

Почитайте здесь (тогда еще биржа давала данные, это 2015 год )

https://www.mql5.com/ru/forum/38456/page23#comment_1445099

Очень внимательно следил за этой веткой и даже перечитывал несколько раз. 

Полный лог нам никто не даст (пока).

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

 
Andrey Miguzov #:

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

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

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

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

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

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

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

Время Т2 ведется точно по времени биржи, иначе будут расхождения с другими источниками, я проверял, - везде одинаковое.

Но вот время тика Т1, по которому Вы выставляете ордер, не известно откуда берется (это не биржевое время), поэтому невозможно получить ответ (Т2-Т1)

Вот здесь изучал проблему с пропусками котировок

https://www.mql5.com/ru/forum/381623#comment_25821280

Котировки Срочного рынка в МТ5
Котировки Срочного рынка в МТ5
  • 2021.11.10
  • www.mql5.com
Уважаемые модераторы! Перенесите, пожалуйста сообщения из темы "Клиринг по существу????* не относящиеся к клирингу, сюда...
 
prostotrader #:

Время Т2 ведется точно по времени биржи, иначе будут расхождения с другими источниками, я проверял, - везде одинаковое.

Но вот время тика Т1, по которому Вы выставляете ордер, не известно откуда берется (это не биржевое время), поэтому невозможно получить ответ (Т2-Т1)

Вот здесь изучал проблему с пропусками котировок

https://www.mql5.com/ru/forum/381623#comment_25821280

В том то и дело - Т1 это тоже время биржи. Я проверял. Даже по моим скринам выше это можно увидеть.

Лента сделок транслируется с биржи через брокера в терминал. По приходу тика (группы тиков) появляется событие  - OnTick. Время тика совпадает с временем ленты (и биржи соответственно). Время тика у всех будет одинаковое.


Тут есть маленькая проблема - я цену беру по стакану, а изменение стакана не всегда OnTick даёт. Но погрешность если и будет - в большую сторону.

 
Andrey Miguzov #:

В том то и дело - Т1 это тоже время биржи. Я проверял. Даже по моим скринам выше это можно увидеть.

Лента сделок транслируется с биржи через брокера в терминал. По приходу тика (группы тиков) появляется событие  - OnTick. Время тика совпадает с временем ленты (и биржи соответственно). Время тика у всех будет одинаковое.


Тут есть маленькая проблема - я цену беру по стакану, а изменение стакана не всегда OnTick даёт. Но погрешность если и будет - в большую сторону.

Не уверен, что время тика это биржевое время.

struct MqlTick 
  { 
   datetime     time;          // Время последнего обновления цен 
   double       bid;           // Текущая цена Bid 
   double       ask;           // Текущая цена Ask 
   double       last;          // Текущая цена последней сделки (Last) 
   ulong        volume;        // Объем для текущей цены Last 
   long         time_msc;      // Время последнего обновления цен в миллисекундах 
   uint         flags;         // Флаги тиков 
   double       volume_real;   // Объем для текущей цены Last c повышенной точностью 
  };

Не написано ведь где обновление в терминале или на бирже.

 
prostotrader #:

Не уверен, что время тика это биржевое время.

Не написано ведь где обновление в терминале или на бирже.

На сервере. 

 
prostotrader #:

Не уверен, что время тика это биржевое время.

Не написано ведь где обновление в терминале или на бирже.

Я Вам отвечу Вашей же цитатой (спасибо за ссылку - тема прошла мимо меня):

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Котировки Срочного рынка в МТ5

prostotrader, 2021.11.20 17:05

Дело вовсе не в обработчиках событий.

Есть два пути, по которым передаются данные о лучших ценах

1. Срез стакана

2. Таблица common транслирует информацию об инструменте вместе с лучшими ценами.

Совершенно не важно по стакану или по информации об инструменте генерится событие.

Важно то, что информация приходит во все терминалы одинаковая, а в истории разных Брокеров

она различная, сделки везде одинаковые, а вот ask и bid достаточно часто отличаются.

Алгоритм получения асков и бидов в обоих терминалах МТ5 у разных брокеров один и тот же, поэтому я и делаю вывод,

что этот этот алгоритм не совсем правильно работает. Есть пропуски котировок.


Давайте по другому.

Я беру время Т1 и Т2 из ленты сделок. Мы точно не знаем какое это время, но источник отсчета там один и тот же (иначе будет хаос) и поэтому можем оценить разницу Т1 и Т2

Добавлено:

Появилось ещё большее убеждение, что Т1 - это время биржи. Вся информация из тика - с биржи. Зачем заморачиваться с генерацией какого-то левого времени если ВСЯ инфа (в т.ч. и о времени) идёт с биржи?

Плюс я писал -  подтверждается логами и картинками из ленты сделок

И ещё - если это не время биржи - сравнить ленту сделок по разным брокерам не получится. А она сравнивается с высокой точностью (есть косяки, но это мелочь). Были бы разные источники времени - сравнить бы не получилось.

 
Andrey Miguzov #:

Я Вам отвечу Вашей же цитатой (спасибо за ссылку - тема прошла мимо меня):


Давайте по другому.

Я беру время Т1 и Т2 из ленты сделок. Мы точно не знаем какое это время, но источник отсчета там один и тот же (иначе будет хаос) и поэтому можем оценить разницу Т1 и Т2

Добавлено:

Появилось ещё большее убеждение, что Т1 - это время биржи. Вся информация из тика - с биржи. Зачем заморачиваться с генерацией какого-то левого времени если ВСЯ инфа (в т.ч. и о времени) идёт с биржи?

Плюс я писал -  подтверждается логами и картинками из ленты сделок

Как бы то не было, но 2 МТ5 будут работать быстрее, чем один Ваш.

Дело в том, чтобы объединить все данные из разных секций, нужен свой особый сервер, который будет транслировать

информацию из/на ASTS (Фондовая секция) и Spectra (Фортс), а также импортные секции и передовать их в один терминал.

Раз есть промежуточное звено, то это неизбежные задержки.

 

Собственно весь вопрос - вставить перед отправкой ордера строку:

Print(" Время тика: ", 
       TimeToString(last_tick.time,TIME_SECONDS), 
       ".", 
       (last_tick.time_msc)%1000, //добавляет мс в строку
       " по символу ", 
       name); //имя инструмента

и потом выложить на форум вкладку эксперты и вкладку журнал по этой сделке.

Дальше - я попытаюсь найти сделку в ленте сделок. Это, к сожалению, не всегда возможно. 

В идеале не единичным объемом. И с заливкой по разным ценам.

 
prostotrader #:

Как бы то не было, но 2 МТ5 будут работать быстрее, чем один Ваш.

Дело в том, чтобы объединить все данные из разных секций, нужен свой особый сервер, который будет транслировать

информацию из/на ASTS (Фондовая секция) и Spectra (Фортс), а также импортные секции и передовать их в один терминал.

Раз есть промежуточное звено, то это неизбежные задержки.

Согласен. Это так и это грустно :(

Получается ЕБС только для стратегий, для которых время исполнения 100-200 мс не критично. 

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

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