Только разработчики могут объяснить, зачем эта синхронизация вообще нужна. Вроде как для советников она всегда = true. Нет даже единого мнения, как синхронизацию использовать.
Проще после вызова CopyRates() проверять длину массива.
А как выглядят эти несинхронизированные данные? Что возвращают Copy*() в этом случае?
Если возвращаются устаревшие на несколько секунд данные, то это не критично для большинства стратегий. На цикле синхронизации можно потерять гораздо больше времени, чем в ожидании следующего тика.
При открытии позиции используются последние цены через SymbolInfoDouble(), а не данные бара.
В экспертах и скриптах при вызове Copy-функций делается несколько попыток - проверяется первая дата на сервере, проверяется первая дата в клиентском терминале, сравнивается с запрошенной датой, проверяется синхронизированность символа, посылается запрос на докачку, небольшое ожидание и по кругу с проверки синхронизированности. Если символ так и не синхронизирован, то отдаётся то, что есть и удовлетворяет условиям запроса. При этом синхронизированность запрошенной таймсерии не проверяется, так как она достраивается на лету в процессе подкачки данных.
В индикаторах делается только один запрос - никакого цикла! Потом сразу же отдаётся всё, что сумели взять.
При запросе SymbolInfoDouble всегда отдаются самые свежие данные
Чем отличается:
SeriesInfoInteger(_Symbol,_Period,SERIES_SYNCHRONIZED)) и SymbolIsSynchronized(_Symbol)
Ничем они не отличаются.
Наконец-то теперь мы знаем, что синхронизация нужна пипсовщикам, а для остальных она на профит мало повлияет.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Кто объяснит разницу между
Есть ли она, есть есть то в чём выражается и когда лучше использовать одну конструкцию, а когда другую?