Процесс синхронизации Вы описали вполне точно. Речь идёт именно о ценовых данных в аспекте "ликвидация различий между двумя копиями данных; предполагается, что ранее эти копии были одинаковы, а затем одна из них, либо обе были независимо изменены"
К списку ордеров синхронизированность данных по символу не имеет никакого отношения.
- www.mql5.com
Процесс синхронизации Вы описали вполне точно. Речь идёт именно о ценовых данных в аспекте "ликвидация различий между двумя копиями данных; предполагается, что ранее эти копии были одинаковы, а затем одна из них, либо обе были независимо изменены"
К списку ордеров синхронизированность данных по символу не имеет никакого отношения.
Спасибо, понятно!
Второй вопрос: функции SymbolIsSynchronized() и SeriesInfoInteger(Symbol(),0,SERIES_SYNCRONIZED) полностью идентичны по результату работы, или же первая обеспечивает "общую" синхронизацию по символу, а вторая - только по паре символ/период?
И где же точный ответ на последний вопрос?
Период игнорируется?
И где же точный ответ на последний вопрос?
Период игнорируется?
Да. Период игнорируется, так как не имеет смысла.
Если символ синхронизирован - это означает, что синхронизированы именно минутки. Все остальные периоды выстраиваются на лету из минуток.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
В Справочнике несколько раз упоминается про такое понятие, как синхронизация данных из базы терминала с серверными данными, но нигде не сказано, что именно представляет собой эта синхронизация, и какие последствия она влечёт. В Википедии говорится следующее: "Синхронизация данных — ликвидация различий между двумя копиями данных; предполагается, что ранее эти копии были одинаковы, а затем одна из них, либо обе были независимо изменены".
Правильно ли я понимаю, что синхронизация данных терминала с серверными данными означает полную сиюмоментную идентичность баз терминала и сервера по символу? И что при наличии синхронизации не может быть таких ситуаций, при которых ордер или позиция появились (исчезли) на сервере, а в терминал такие сведения ещё не успели поступить?
Вопрос вызван ранее поднятой темой "OrderSend() Вопросы", когда сведения о новом выставленном ордере не успевали доходить до терминала, и эксперт, не видя изменений на сервере, выставлял дублирующий ордер. Аналогичная ситуация случается и с позициями, коогда сведения об их наличии/закрытии приходят с опозданием, и эксперт не видит реальное состояние дел.
Соответственно, вопрос сводится к тому, можно при получении SymbolIsSynchronized()==true быть уверенным, что функции OrdersTotal(), PositionsTotal(), PositionSelect() и т.д. возвращают из базы терминала самые актуальные данные, отражающие данные сервера? И чтто при получении SymbolIsSynchronized()==true не может быть ситуации, когда, допустим, позиция закрылась, а сведения о её наличии всё ещё сохраняются в базе терминала?
...Или, скажем так, синхронизация относится только к ценовым данным?