Успеет ли эксперт сработать ?

 

Простите, если глупый вопрос.

Как я понимаю программа выполняется при появлении нового тика. А что если мой советник обрабатывает 300 предыдущих свечей . И он не успеет закончить до появления нового тика ( особенно когда ранок быстрый). Как будет ? Будет игнорироваться новый тик ( т.е. программа продолжит исполнение ) либо опять начнет заново не доделав старое ?

 
exi >>:

Простите, если глупый вопрос.

Как я понимаю программа выполняется при появлении нового тика. А что если мой советник обрабатывает 300 предыдущих свечей . И он не успеет закончить до появления нового тика ( особенно когда ранок быстрый). Как будет ? Будет игнорироваться новый тик ( т.е. программа продолжит исполнение ) либо опять начнет заново не доделав старое ?

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

 
gorby777 писал(а) >>

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

Каких мер?

 

Таких, например:

bool RefreshRates( )

 
Shaitan >>:

Таких, например:

bool RefreshRates( )

Такие меры изменяют только значение переменных окружения но ни в коем случае не алгоритма выполнения программы-советника.

 
РефрешРейтс помогает не пропустить важные данные, а уж что делать в конкретном алгоритме - это пусть программёр сам думает.
 
Shaitan писал(а) >>
РефрешРейтс помогает не пропустить важные данные, а уж что делать в конкретном алгоритме - это пусть программёр сам думает.

Вы ошибаетесь, в данном случае рефреш ничего не даст.

 

Читаем мануал (https://docs.mql4.com/ru/predefined/variables):

Для безопасного и быстрого доступа к этим (торговым - прим. моё) данным клиентский терминал обеспечивает локальные копии предопределенных переменных для каждой запущенной программы отдельно. Эти данные обновляются при каждом новом запуске прикрепленного эксперта или пользовательского индикатора автоматически, либо при помощи вызова функции RefreshRates().

Вызвали рефреш. Проверили, не пришли ли за время нашего чаепития новые данные. Обработали.

Не нравится рефреш, есть другой вариант, - вызывать MarketInfo() на нужные данные по отдельности.

 
Вы не понимаете. Задача отловить следующий тик, а не новые данные. Почитайте топикстартер.
 
Ааа. Ну ОК.
 
Roger >>:

Каких мер?

Например, выполнение в функции start() цикла while-break с контролем серверного времени

Причина обращения: