Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
RefreshRates обновляет не только переменные Bid, Ask, Bars, Time, Open etc, но и закешированные экспертом исторические данные других символов-периодов.
Например, если вы работая на часовке, обратились к днёвкам, то у эксперта будет создана локальная копия существующих на момент запроса днёвок. На следующем тике все данные, включая днёвки, автоматически обновятся. Но если вы в большом цикле будете обращаться к днёвкам, то вы получите возможно неактуальные данные, если не было вызова RefreshRates
Ok. Т.е. простыми словами, если в начале OnTick() вызывается RefreshRates() и возвращает true, то все бары других таймфреймов по текущему символу автоматически подкачались и синхронизировались?
Ok. Т.е. простыми словами, если в начале OnTick() вызывается RefreshRates() и возвращает true, то все бары других таймфреймов по текущему символу автоматически подкачались и синхронизировались?
В начале OnTick не надо вызывать RefreshRates. "Всё уже украдено до нас" - RefreshRates вызывается автоматически перед каждым OnTick
RefreshRates нужно явно вызывать только если у Вас большой цикл обработки. Или была торговая операция
В начале OnTick не надо вызывать RefreshRates. "Всё уже украдено до нас" - вызывается автоматически перед каждым OnTick
Нужно использовать только если у Вас большой цикл обработки. Или была торговая операция
Например так.
Пришло 2 тика один за другим. Один - конец дня, другой - начало следующего дня.
На первый тик запустился эксперт. При этом поступление и обработка тиков и эксперт работают в разных потоках. Пока эксперт поднимался (инициализировал своё окружение), обработался второй тик. При этом второй тик соершенно необязательно по той же паре, что и первый.
Тем не менее второй тик поменял время обзора рынка, которое Вы получаете функцией TimeCurrent
Как с этим бороться?
Вам уже тут подсказали, что не надо ориентироваться на время TimeCurrent.
Лучше ориентируйтесь на время, полученное функцией SymbolInfoTick
Ясно. Спасибо. Похоже - это верное решение не использовать TimeCurrent().
Интересно - до билда 600, когда не было функций SymbolInfoTick и SymbolInfoInteger, но была только TimeCurrent(), эта проблема была актуальна ?
Не инициирует. Мы пока думаем, как это сделать, не нарушив архитектуру четвёрки.
Странно. Обычно после первого программного обращения к данным таймфрейма, к которому до сих пор не было обращений, через некоторое время данные появляются.
Провел следующий опыт:
1. Нашел в папке history такой символ и период, которого нет. В данном случае это был CADCHF, M5.
2. На символе EURCAD запустил следующий скрипт:
Итоги:
1. Запись в журнале:
2. В папке history появился файл CADCHF5.hst.
Вывод: история была загружена программно, пользователь не прибегал к ручному открытию графика.
Возможно, я в чем-то неправ? Укажите, пожалуйста, где я ошибся.
После первого обращения - да, инициирует. Либо закачается последние 2048 баров, если никогда не закачивали. Либо закачается необходимое количество баров, чтобы заткнуть дыру.
Докачки более ранних данных нет
После первого обращения - да, инициирует. Либо закачается последние 2048 баров, если никогда не закачивали. Либо закачается необходимое количество баров, чтобы заткнуть дыру.
Докачки более ранних данных нет