Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Уважаемые разработчики!
ПРОШУ ВНИМАТЕЛЬНО прочитать это сообщение.
Кажется, я понял причину, почему появляется расхождение во времени!!!
Сегодня:
Терминал
Эксперт
Механизм проверки времени
При изменении стакана цен по инструменту (работаю только со стаканом цен)
Вызывается функция CheckMarketTime
Получив данные по последнему тику по инструменту
произвожу проверку на временные рамки, НО (ОЧЕНЬ ВАЖНО)!!!!
В MqlTick (СКОРЕЕ ВСЕГО) не заносится последнее время, если
в стакане цен изменился ТОЛЬКО объём одной и той же цены.
Это предположкение я делаю потому, что во флагах нет
флага TICK_FLAG_ASK_VOLUME и TICK_FLAG_BID_VOLUME
Функция OnBookEvent сработала (изменился объём такой-то цены), а
в MqlTick не занеслось время этого изменения.
Прошу добавить эти флаги в MqlTick, соотвественно с обновлением времени.
Добавлено
Почему-то в СД не могу сделать запись
В MqlTick (СКОРЕЕ ВСЕГО) не заносится последнее время, если
в стакане цен изменился ТОЛЬКО объём одной и той же цены.
Абсолютно верно. И это правильное поведение. MqlTick берет данные из того же источника, откуда наполняется тиковая история. Соседей-дубликатов в истории тиков быть не должно, т.к. тиковая история в MT5 не хранит объем даже на бестбандах.
Давно поднимался вопрос, что нет прямой возможности узнать время, которому соответствует стакан. Узнавайте другим способом.
Абсолютно верно. И это правильное поведение. MqlTick берет данные из того же источника, откуда наполняется тиковая история. Соседей-дубликатов в истории тиков быть не должно, т.к. тиковая история в MT5 не хранит объем даже на бестбандах.
Давно поднимался вопрос, что нет прямой возможности узнать время, которому соответствует стакан. Узнавайте другим способом.
Будьте любезны, подскажите каким?
Добавлено
Если я получил уведомление, что в такане что-то изменилось, то
почему для удобства ("малой кровью") не добавить поле
datetime book_change; ?
Или ещё проще, в труктуру MqlBookInfo добавить поле
datetime book_change;
Тем более, что это время транслирует биржа.
Будьте любезны, подскажите каким?
Не смешите... :)
Если я получил уведомление, что в такане что-то изменилось, то
почему для удобства ("малой кровью") не добавить поле
datetime book_change; ?
Или ещё проще, в труктуру MqlBookInfo добавить поле
datetime book_change;
Тем более, что это время транслирует биржа.
Только не datetime, а long - миллисекунды. Ну и
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Market closed
fxsaber, 2017.09.22 09:17
Давно поднимался вопрос, что нет прямой возможности узнать время, которому соответствует стакан.
с подобными предложениями.
Может быть, после срабатывания OnBookEvent
запросить CopyTicks по данному символу?
Ща попробую...
Может быть, после срабатывания OnBookEvent
запросить CopyTicks по данному символу?
Не поможет, конечно. Единственный вариант сейчас узнать время стакана привел.
Не поможет, конечно. Единственный вариант сейчас узнать время стакана привел.
Интересно получается :)
Результат
???????
Я даже не знаю что сказать....
Я даже не знаю что сказать....
увидите, что время будет различаться только в таких ситуациях
Несколько раз обсуждалось, что MqlTick не возвращает тик, как есть. Что есть два тиковых потока - котировочный и сделки. И что в CopyTicks они объединяются иногда задним числом, т.к. потоки несинхронизированы. И что время MqlTick и CopyTicks могут не совпадать.