SeriesInfoInteger(_Symbol,_Period,SERIES_SYNCHRONIZED)) и SymbolIsSynchronized(_Symbol)

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Alexey Oreshkin
6032
Alexey Oreshkin  

Кто объяснит разницу между

SeriesInfoInteger(_Symbol,_Period,SERIES_SYNCHRONIZED)) и SymbolIsSynchronized(_Symbol)

Есть ли она, есть есть то в чём выражается и когда лучше использовать одну конструкцию, а когда другую?

Roffild
1319
Roffild  

Только разработчики могут объяснить, зачем эта синхронизация вообще нужна. Вроде как для советников она всегда = true. Нет даже единого мнения, как синхронизацию использовать. 

Проще после вызова CopyRates() проверять длину массива.

Alexey Oreshkin
6032
Alexey Oreshkin  
Хотелось бы тогда услышать комментарии разработчиков, раз никто не знает. 
Slava
Модератор
13449
Slava  
Alexey Oreshkin
6032
Alexey Oreshkin  
Это всё понятно, именно этим скриптом я и заканчиваю данные, но чем различаются приведённые выше функции? 
Slava
Модератор
13449
Slava  
При чём здесь скрипт? Вы полностью прочитали то, что написано до скрипта?
Roffild
1319
Roffild  

А как выглядят эти несинхронизированные данные? Что возвращают  Copy*() в этом случае?

Если возвращаются устаревшие на несколько секунд данные, то это не критично для большинства стратегий. На цикле синхронизации можно потерять гораздо больше времени, чем в ожидании следующего тика.

При открытии позиции используются последние цены через SymbolInfoDouble(), а не данные бара.

Slava
Модератор
13449
Slava  

В экспертах и скриптах при вызове Copy-функций делается несколько попыток - проверяется первая дата на сервере, проверяется первая дата в клиентском терминале, сравнивается с запрошенной датой, проверяется синхронизированность символа, посылается запрос на докачку, небольшое ожидание и по кругу с проверки синхронизированности. Если символ так и не синхронизирован, то отдаётся то, что есть и удовлетворяет условиям запроса. При этом синхронизированность запрошенной таймсерии не проверяется, так как она достраивается на лету в процессе подкачки данных.

В индикаторах делается только один запрос - никакого цикла! Потом сразу же отдаётся всё, что сумели взять.

Slava
Модератор
13449
Slava  
При запросе SymbolInfoDouble всегда отдаются самые свежие данные
Alexey Oreshkin
6032
Alexey Oreshkin  
Slawa:
При запросе SymbolInfoDouble всегда отдаются самые свежие данные
Это всё понятно. Но вопрос в теме звучит так:
Чем отличается:
SeriesInfoInteger(_Symbol,_Period,SERIES_SYNCHRONIZED)) и SymbolIsSynchronized(_Symbol)
Roffild
1319
Roffild  

Ничем они не отличаются.

Наконец-то теперь мы знаем, что синхронизация нужна пипсовщикам, а для остальных она на профит мало повлияет.

12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий