88
утверждение справедливо в отношении экспертов и пользовательских индикаторов, но
несправедливо в отношении скриптов.
Эксперт и пользовательский индикатор. После присоединения к окну финансового
инструмента программа (эксперт или пользовательский индикатор) выполняет
подготовительные операции и переходит в режим ожидания тика. При поступлении тика
программа запускается клиентским терминалом на выполнение, исполняет все действия,
заложенные в её алгоритме, и по окончании исполнения передаёт управление
клиентскому терминалу - переходит в режим ожидания тика.
Если новый тик приходится на время исполнения программы, то это не оказывает
никакого влияния на исполнение программы - программа продолжает исполняться в
соответствии с алгоритмом и лишь по окончании исполнения передаёт управление
клиентскому терминалу. Поэтому не все тики приводят к запуску эксперта и
пользовательского индикатора на исполнение, а только те, которые поступают в период,
когда управление передано клиентскому терминалу и программа находится в режиме
ожидания нового тика.
Новый тик снова запускает программу на выполнение. Таким образом, эксперт и
пользовательский индикатор могут находиться в работе в течение длительного времени,
оставаясь присоединёнными к окну финансового инструмента и периодически (кратно
тикам) включаясь в практическую работу.
Существует также разница между порядком исполнения эксперта и индикатора при
первом запуске программы. Эта разница определяется свойствами специальных функций
программы определённого вида (см. Специальные функции). После присоединения к окну
финансового инструмента эксперт выполняет подготовительные операции (функция init())
и переходит в режим ожидания тика для запуска функции start(). В отличие от экперта,
индикатор не только выполняет функцию init(), но и однократно производит вызов
функции start() для первого предварительного расчета значения индикатора. В
дальнейшем при поступлении тика программа запускается вызовом только функции
start(), то есть исполняются операторы в соответствии с алгоритмом функции start().
Скрипт. В отличие от эксперта и пользовательского индикатора, скрипт запускается на
исполнение сразу же после присоединения к окну финансового инструмента, не
дожидаясь поступления тика. Весь код скрипта выполняется один раз, а после того как все
программные строки исполнены, скрипт заканчивает свою работу и выгружается из окна
финансового инструмента. Скрипт удобно использовать для выполнения разовых