1. новый тик
2. новая сделка в ленте
3. изменение OI (с точностью до 1мс)
по нему видно что изменения OI происходят сами по себе без тиков и без сделок в ленте.
long bool_event_time_last = 0; int OnInit() { EventSetMillisecondTimer(1); MarketBookAdd(_Symbol); MqlTick tick[]; CopyTicks(_Symbol,tick,COPY_TICKS_ALL,0,1); bool_event_time_last = tick[0].time_msc; return(INIT_SUCCEEDED); } void OnDeinit(const int reason) { EventKillTimer(); } void OnTick() { Print("1. tick"); } void OnTimer() { static double open_last = SymbolInfoDouble(Symbol(),SYMBOL_SESSION_INTEREST); double open_current = SymbolInfoDouble(Symbol(),SYMBOL_SESSION_INTEREST); if(NormalizeDouble(open_current,0) != NormalizeDouble(open_last,0)) { open_last = open_current; Print("3. oi change"); } } void OnBookEvent (const string& symbol) { MqlTick tick[]; int ticks = CopyTicks(_Symbol,tick,COPY_TICKS_ALL,0,100); if(ticks<20) return; for(int i=ticks-1;i>=0;i--) { if(tick[i].time_msc <= bool_event_time_last) break; if((int)tick[0].flags<32) continue; Print("2. book deal"); } bool_event_time_last = tick[ticks-1].time_msc; }
небольшой советник который отмечает в журнале события:
1. новый тик
2. новая сделка в ленте
3. изменение OI (с точностью до 1мс)
по нему видно что изменения OI происходят сами по себе без тиков и без сделок в ленте.
Вы сами писали код?
Почему в терминале изменение открытого интереса:
SymbolInfoDouble(Symbol(),SYMBOL_SESSION_INTEREST)
живет своей жизнью относительно ленты?
void OnBookEvent(const string& symbol)
Так спроектирвано.
Синхронизировать вряд ли удастся, нет достаточно информации.
Почему в терминале изменение открытого интереса:
SymbolInfoDouble(Symbol(),SYMBOL_SESSION_INTEREST)
живет своей жизнью относительно ленты?
void OnBookEvent(const string& symbol)
Насколько я понимаю срочный рынок, сделки в ленте могут не приводить к изменению OI. Но почему OI меняется сам по себе без сделок?
Это уже было замечено ранее:
https://www.mql5.com/ru/forum/165157/page2#comment_3989978
С какой периодичностью обновляется OI в терминале, от чего зависит?
Как синхронизировать изменение OI со сделками в ленте? Хочу получить полноценную ленту с OI.
Если хотите полный ордерлог, подключайтесь через Плазу. МТ5 вряд ли для биржевых потоков будут переделывать.
Другой вопрос, нужна ли Вам эта полная инфа.
@Andrey Khatimlianskii @Dmitriy Skub
Возможно в терминале и нет синхронизации, но с тем кодом, что
представлен, разве можно вообще о чем-то говорить?
@Andrey Khatimlianskii @Dmitriy Skub
Возможно в терминале и нет синхронизации, но с тем кодом, что
представлен, разве можно вообще о чем-то говорить?
@Andrey Khatimlianskii @Dmitriy Skub
Возможно в терминале и нет синхронизации, но с тем кодом, что
представлен, разве можно вообще о чем-то говорить?
что конкретно вас не устраивает в коде?
что конкретно вас не устраивает в коде?
Да все, начиная с
CopyTicks(_Symbol,tick,COPY_TICKS_ALL,0,1);
Таймер вообще не нужен.
Это вообще "шедевр"
if(ticks<20) return;
и так далее...
Да все, начиная с
Таймер вообще не нужен.
Это вообще "шедевр"
и так далее...
Очень профессионально докалупываться до кода собранного на коленке за пару минут с целью показать суть вопроса. я его не публиковать собиралась.
Таймер там нужен, читайте внимательно тему
Очень профессионально докалупываться до кода собранного на коленке за пару минут с целью показать суть вопроса. я его не публиковать собиралась.
Таймер там нужен, читайте внимательно тему
Таймер НЕ нужен.
OnBookEvent срабатывает не только, если произошла сделка.
и ОБЯЗАТЕЛЬНО нужно в этой фунеции фильтровать символ
void OnBookEvent (const string& symbol) { if(symbol == Symbol()) { .. } }
Так как в эту функцию "валится" все, что есть в обзоре рынка
Зачем выкладывать "голые коленки"?
Добавлено
"Очень профессионально" брать работу
100.00 USD
Нужен софт для отслеживания ленты сделок по каждому тику с указанием изменения ОИ (аналог Time&Sales в платформе Volfix)
И не знать как ее сделать.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Почему в терминале изменение открытого интереса:
SymbolInfoDouble(Symbol(),SYMBOL_SESSION_INTEREST)
живет своей жизнью относительно ленты?
void OnBookEvent(const string& symbol)
Насколько я понимаю срочный рынок, сделки в ленте могут не приводить к изменению OI. Но почему OI меняется сам по себе без сделок?
Это уже было замечено ранее:
https://www.mql5.com/ru/forum/165157/page2#comment_3989978
С какой периодичностью обновляется OI в терминале, от чего зависит?
Как синхронизировать изменение OI со сделками в ленте? Хочу получить полноценную ленту с OI.