Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Время компьютера желательно держать точным, чтобы меньше было шансов неправильно логи понять.
Спасибо за скрипт: вот результаты этого скрипта за 1 минуту 17:36
Особенность OnTick в том, что он реагирует как на изменение Bid/Ask (инфопоток), так и на Last (трейд поток).
В результате получается, что количество вызовов OnTick для биржевых торгуемых инструментов заведомо больше торговых транзакций.
Почему так сделано:
нельзя в рамках живого рынка выдавать нулевые last и last_volume в обзор рынка, так как кто-то из трейдеров взорвется
Есть еще один момент с тем, что на пакетных обновлениях, когда одновременно приходят два и более тика по инструменту, то OnTick вызывается однократно. Это позволяет не тормозить поток входящих котировок и не делать огромную очередь тиков для тормозящих экспертов.
Скоро мы включим поток Time & Sales, что даст возможность точно анализировать ленту сделок.
Время компьютера желательно держать точным, чтобы меньше было шансов неправильно логи понять.
Спасибо за скрипт: вот результаты этого скрипта за 1 минуту 17:36
Особенность OnTick в том, что он реагирует как на изменение Bid/Ask (инфопоток), так и на Last (трейд поток).
В результате получается, что количество вызовов OnTick для биржевых торгуемых инструментов заведомо больше торговых транзакций.
Почему так сделано:
нельзя в рамках живого рынка выдавать нулевые last и last_volume в обзор рынка, так как кто-то из трейдеров взорвется
Есть еще один момент с тем, что на пакетных обновлениях, когда одновременно приходят два и более тика по инструменту, то OnTick вызывается однократно. Это позволяет не тормозить поток входящих котировок и не делать огромную очередь тиков для тормозящих экспертов.
Скоро мы включим поток Time & Sales, что даст возможность точно анализировать ленту сделок.
Все это, конечно, здорово, но для ФОРТС, где есть стаканы, в структуру MqlTick нужно было добавить флаг котировки.
"Размножение" сделок - это не страшно, страшно то, что реальные сделки пропадают.
P.S. Мой БАН связан с моим IP адресом, пожалуйста, снимите его, а то мне приходится для ответа Вам каждый раз переустанавливать браузер.
Есть еще один момент с тем, что на пакетных обновлениях, когда одновременно приходят два и более тика по инструменту, то OnTick вызывается однократно. Это позволяет не тормозить поток входящих котировок и не делать огромную очередь тиков для тормозящих экспертов.
При таком подходе получается следующее:
Как должно быть:
Бумага Время Время(мкс) Цена Кол-во
317922.000000 RTS-12.14 [FORTS] 18:44:54 199000.000000 104140.000000 1.000000317923.000000 RTS-12.14 [FORTS] 18:44:54 261000.000000 104130.000000 1.000000
317924.000000 RTS-12.14 [FORTS] 18:44:54 587000.000000 104140.000000 1.000000
317925.000000 RTS-12.14 [FORTS] 18:44:54 589000.000000 104140.000000 1.000000
317926.000000 RTS-12.14 [FORTS] 18:44:54 691000.000000 104140.000000 1.000000
317927.000000 RTS-12.14 [FORTS] 18:44:54 691000.000000 104140.000000 1.000000
317928.000000 RTS-12.14 [FORTS] 18:44:54 842000.000000 104130.000000 2.000000
317929.000000 RTS-12.14 [FORTS] 18:44:54 919000.000000 104150.000000 1.000000
317930.000000 RTS-12.14 [FORTS] 18:44:55 337000.000000 104150.000000 1.000000
317931.000000 RTS-12.14 [FORTS] 18:44:55 337000.000000 104150.000000 1.000000
317932.000000 RTS-12.14 [FORTS] 18:44:55 337000.000000 104160.000000 1.000000
317933.000000 RTS-12.14 [FORTS] 18:44:55 337000.000000 104160.000000 1.000000
317934.000000 RTS-12.14 [FORTS] 18:44:55 337000.000000 104160.000000 3.000000
317935.000000 RTS-12.14 [FORTS] 18:44:55 375000.000000 104140.000000 1.000000
317936.000000 RTS-12.14 [FORTS] 18:44:55 375000.000000 104130.000000 5.000000
317937.000000 RTS-12.14 [FORTS] 18:44:55 796000.000000 104130.000000 1.000000
317938.000000 RTS-12.14 [FORTS] 18:44:55 799000.000000 104130.000000 2.000000
317939.000000 RTS-12.14 [FORTS] 18:44:56 54000.000000 104160.000000 1.000000
317940.000000 RTS-12.14 [FORTS] 18:44:57 235000.000000 104160.000000 1.000000
317941.000000 RTS-12.14 [FORTS] 18:44:57 451000.000000 104140.000000 2.000000
317942.000000 RTS-12.14 [FORTS] 18:44:57 487000.000000 104140.000000 6.000000
317943.000000 RTS-12.14 [FORTS] 18:44:57 521000.000000 104160.000000 1.000000
317944.000000 RTS-12.14 [FORTS] 18:44:57 621000.000000 104160.000000 1.000000
317945.000000 RTS-12.14 [FORTS] 18:44:58 38000.000000 104160.000000 3.000000
317946.000000 RTS-12.14 [FORTS] 18:44:58 695000.000000 104160.000000 13.000000
317947.000000 RTS-12.14 [FORTS] 18:44:58 883000.000000 104140.000000 2.000000
317948.000000 RTS-12.14 [FORTS] 18:44:58 986000.000000 104160.000000 1.000000
317949.000000 RTS-12.14 [FORTS] 18:44:58 993000.000000 104160.000000 5.000000
317950.000000 RTS-12.14 [FORTS] 18:44:58 993000.000000 104160.000000 5.000000
317951.000000 RTS-12.14 [FORTS] 18:44:58 995000.000000 104160.000000 5.000000
317952.000000 RTS-12.14 [FORTS] 18:44:58 996000.000000 104160.000000 1.000000
317953.000000 RTS-12.14 [FORTS] 18:44:59 56000.000000 104160.000000 1.000000
317954.000000 RTS-12.14 [FORTS] 18:44:59 560000.000000 104140.000000 1.000000
317955.000000 RTS-12.14 [FORTS] 18:44:59 604000.000000 104140.000000 1.000000
317956.000000 RTS-12.14 [FORTS] 18:44:59 647000.000000 104160.000000 1.000000
Как получаем в МТ5:
NE 0 18:44:54.483 FORTSTicksAction (RTS-12.14,M1) Time = 18:44:54 Bid = 104130 Ask = 104150 Last = 104140 Vol = 1
ES 0 18:44:54.639 FORTSTicksAction (RTS-12.14,M1) Time = 18:44:54 Bid = 104130 Ask = 104150 Last = 104130 Vol = 2
OR 0 18:44:54.720 FORTSTicksAction (RTS-12.14,M1) Time = 18:44:54 Bid = 104130 Ask = 104150 Last = 104150 Vol = 1
NQ 0 18:44:54.983 FORTSTicksAction (RTS-12.14,M1) Time = 18:44:55 Bid = 104140 Ask = 104150 Last = 104150 Vol = 1
FP 0 18:44:55.139 FORTSTicksAction (RTS-12.14,M1) Time = 18:44:55 Bid = 104140 Ask = 104160 Last = 104160 Vol = 3
JO 0 18:44:55.174 FORTSTicksAction (RTS-12.14,M1) Time = 18:44:55 Bid = 104140 Ask = 104160 Last = 104130 Vol = 5
GN 0 18:44:55.206 FORTSTicksAction (RTS-12.14,M1) Time = 18:44:55 Bid = 104130 Ask = 104160 Last = 104130 Vol = 5
RM 0 18:44:55.592 FORTSTicksAction (RTS-12.14,M1) Time = 18:44:55 Bid = 104130 Ask = 104160 Last = 104130 Vol = 2
IL 0 18:44:55.891 FORTSTicksAction (RTS-12.14,M1) Time = 18:44:56 Bid = 104130 Ask = 104160 Last = 104160 Vol = 1
HJ 0 18:44:55.921 FORTSTicksAction (RTS-12.14,M1) Time = 18:44:56 Bid = 104140 Ask = 104160 Last = 104160 Vol = 1
RI 0 18:44:57.032 FORTSTicksAction (RTS-12.14,M1) Time = 18:44:57 Bid = 104140 Ask = 104160 Last = 104160 Vol = 1
PH 0 18:44:57.242 FORTSTicksAction (RTS-12.14,M1) Time = 18:44:57 Bid = 104140 Ask = 104160 Last = 104140 Vol = 2
FG 0 18:44:57.297 FORTSTicksAction (RTS-12.14,M1) Time = 18:44:57 Bid = 104140 Ask = 104160 Last = 104140 Vol = 6
PF 0 18:44:57.328 FORTSTicksAction (RTS-12.14,M1) Time = 18:44:57 Bid = 104140 Ask = 104160 Last = 104160 Vol = 1
JE 0 18:44:57.436 FORTSTicksAction (RTS-12.14,M1) Time = 18:44:57 Bid = 104140 Ask = 104160 Last = 104160 Vol = 1
QD 0 18:44:57.838 FORTSTicksAction (RTS-12.14,M1) Time = 18:44:58 Bid = 104140 Ask = 104160 Last = 104160 Vol = 3
DP 0 18:44:58.514 FORTSTicksAction (RTS-12.14,M1) Time = 18:44:58 Bid = 104140 Ask = 104160 Last = 104160 Vol = 13
RR 0 18:44:58.693 FORTSTicksAction (RTS-12.14,M1) Time = 18:44:58 Bid = 104140 Ask = 104160 Last = 104140 Vol = 2
JP 0 18:44:58.795 FORTSTicksAction (RTS-12.14,M1) Time = 18:44:58 Bid = 104140 Ask = 104160 Last = 104160 Vol = 1
CO 0 18:44:58.852 FORTSTicksAction (RTS-12.14,M1) Time = 18:44:59 Bid = 104140 Ask = 104160 Last = 104160 Vol = 1
GN 0 18:44:59.358 FORTSTicksAction (RTS-12.14,M1) Time = 18:44:59 Bid = 104140 Ask = 104160 Last = 104140 Vol = 1
MM 0 18:44:59.406 FORTSTicksAction (RTS-12.14,M1) Time = 18:44:59 Bid = 104140 Ask = 104160 Last = 104140 Vol = 1
IL 0 18:44:59.453 FORTSTicksAction (RTS-12.14,M1) Time = 18:44:59 Bid = 104140 Ask = 104160 Last = 104160 Vol = 1
CK 0 18:50:31.437 FORTSTicksAction (RTS-12.14,M1) Time = 18:50:24 Bid = 0 Ask = 0 Last = 104160 Vol = 1
KH 0 18:50:33.357 FORTSTicksAction (RTS-12.14,M1) Time = 18:50:24 Bid = 104080 Ask = 104180 Last = 104160 Vol = 1
Это все последние непосредственно перед закрытием сессии (т.е. ниже котировок нету до конца клиринга).
За точку отсчета возьмем выделенные черным три строчки. Вопросов два:
1.Куда делись выделенные красным?
2.Откуда взялось выделенное синим?
Еще вопрос (дополнительный) - какой временной интервал означает "одновременный приход"?
При таком подходе получается следующее:
317945.000000 RTS-12.14 [FORTS] 18:44:58 38000.000000 104160.000000 3.000000317946.000000 RTS-12.14 [FORTS] 18:44:58 695000.000000 104160.000000 13.000000
317947.000000 RTS-12.14 [FORTS] 18:44:58 883000.000000 104140.000000 2.000000
317948.000000 RTS-12.14 [FORTS] 18:44:58 986000.000000 104160.000000 1.000000
317949.000000 RTS-12.14 [FORTS] 18:44:58 993000.000000 104160.000000 5.000000
317950.000000 RTS-12.14 [FORTS] 18:44:58 993000.000000 104160.000000 5.000000
317951.000000 RTS-12.14 [FORTS] 18:44:58 995000.000000 104160.000000 5.000000
317952.000000 RTS-12.14 [FORTS] 18:44:58 996000.000000 104160.000000 1.000000
Это все последние непосредственно перед закрытием сессии (т.е. ниже котировок нету до конца клиринга).
За точку отсчета возьмем выделенные черным три строчки. Вопросов два:
1.Куда делись выделенные красным?
2.Откуда взялось выделенное синим?
Еще вопрос (дополнительный) - какой временной интервал означает "одновременный приход"?
Это не интервал, а скорее физический сетевой пакет. Прилетает пакет на 2-3-4 тика, все они накладываются в базу, но вызов OnTick идет один.
Еще есть шанс, что эксперт может тормозить(быть занятым) и новая пришедшая котировка добавляется в базу, но вызова OnTick не происходит, так как эксперт работает. Если бы такого механизм не было, то мы бы легко переполнили входящие очереди котировок для эксперта и начав посылать старые котировки эксперту и ввели бы его в заблуждение.
Ренат!
Спасибо большое за подробное разъяснение, но...
Для ФОРТС такой подход, как мне кажется, не приемлем.
Должно быть: котировка - объём, и никак иначе.
Было 11 котировок, значит в OnTick их должно быть 11.
Разве не так?
Не так.
Не путайте вопрос доставки правильных и точных потоков данных в терминал и вызов/уведомления экспертов.
Все данные точно и правильно доставляются в терминал, его это основа. Достаточно сравнить чарты.
А вот запуск экспертов(онтик) - это независимое и асинхронное уведомление. Приходящий пакет данных не может ждать каких-то тормозящих экспертов, а должен быть мгновенно наложен на рыночное окружение и лишь факультативно(если эксперт закончил предыдущий вызов) запустить эксперта.
Задумайтесь о ситуации: поток котировок 2 в секунду и работающий эксперт, который тормозит, совершает торговые сделки, но при этом требует, чтобы новые ожидающие котировки в очереди не накладывались на рыночное окружение терминала, пока его величество эксперт не закончит свою работу.
Улавливаете, к чему это приведет? Весь терминал начнет задерживать все процессы ради глупой идеи сохранения рыночного снапшота на состоянии обрабатываемой котировки. А если подумать о других инструментах, то только застрелиться останется.
Поэтому наложение рыночных обновлений всегда приоритетно, мгновенно и независимо от других процессов. Все остальные должны асинхронно поспевать за рынком.
Не так.
Не путайте вопрос доставки правильных и точных потоков данных в терминал и вызов/уведомления экспертов.
Все данные точно и правильно доставляются в терминал, его это основа. Достаточно сравнить чарты.
А вот запуск экспертов(онтик) - это независимое и асинхронное уведомление. Приходящий пакет данных не может ждать каких-то тормозящих экспертов, а должен быть мгновенно наложен на рыночное окружение и лишь факультативно(если эксперт закончил предыдущий вызов) запустить эксперта.
Задумайтесь о ситуации: поток котировок 2 в секунду и работающий эксперт, который тормозит, совершает торговые сделки, но при этом требует, чтобы новые ожидающие котировки в очереди не накладывались на рыночное окружение терминала, пока его величество эксперт не закончит свою работу.
Улавливаете, к чему это приведет? Весь терминал начнет задерживать все процессы ради глупой идеи сохранения рыночного снапшота на состоянии обрабатываемой котировки. А если подумать о других инструментах, то только застрелиться останется.
Поэтому наложение рыночных обновлений всегда приоритетно, мгновенно и независимо от других процессов. Все остальные должны асинхронно поспевать за рынком.
Не согласен.
Допустим, я не использую стакан (bid и ask есть в тике)
Какое представление о положении на рынке ФОРТС я (экперт) буду иметь не понятно с какой котировкой
и объёмом?
Ведь можно, для ФОРТС, не передавать bid и ask ( они есть в стакане ).
И в коде изменения минимальные - подписался на стакан - не транслируются в тике bid и ask
Не согласен.
Перечитайте несколько раз мое объяснение, пожалуйста.
Допустим, я не использую стакан (bid и ask есть в тике)
Какое представление о положении на рынке ФОРТС я (экперт) буду иметь не понятно с какой котировкой
С текущей асинхронно обновляемой котировкой и никакой другой.
Если вас вызвали, то все - перед вами в стакане только та котировка, которая есть. Если пришло и наложилось 2 котировки в пакете, то увидите только последнюю. Ибо никто не будет передавать первую котировку эксперту и ждать пока эксперт соизволит завершить ее обсчет. Все, старая котировка ушла и если вы ее не смогли вовремя словить и отработать, значит поезд ушел. По той старой котировке вы ничего все равно исполнить не сможете. Да и по текущей/последней тоже сомнительно исполниться, так как к момент посылки ордера рынок может поменяться.
Никакие "не транслировать bid/ask" не помогут. Устаревшие тики есть устаревшие - никто вам не заморозит рынок и не даст поработать со старыми тиками.
При желании можете:
Вместе с Time & Sales мы подумаем над предоставлением прямого доступа к последнему тиковому потоку цен, чтобы можно было получить доступ к последовательным тикам. В обзоре рынка мы его собираем сессионно. Это даст больше возможностей скальперам.
Renat:
Вместе с Time & Sales мы подумаем над предоставлением прямого доступа к последнему тиковому потоку цен, чтобы можно было получить доступ к последовательным тикам. В обзоре рынка мы его собираем сессионно. Это даст больше возможностей скальперам.
Что-то у меня остались сомнения.
Щас поставлю выполняться это:
А завтра посмотрим, что получилось...