Бывает :)
Вот что нам по этому поводу говорит документация :
При поступлении новых котировок выполняется функция start() у присоединенных советников и пользовательских индикаторов. Если при поступлении новой котировки выполнялась функция start(), запущенная на предыдущей котировке, то пришедшая котировка будет проигнорирована советником. Все пришедшие во время выполнения программы новые котировки программой игнорируются до тех пор, пока не завершится очередное выполнение функции start(). После этого функция start() будет запущена только после прихода очередной новой котировки. У пользовательских индикаторов функция start() запускается для пересчета также после смены символа или периода текущего графика вне зависимости от поступления новых котировок. Функция start() не запускается при включенном запрете использования советников (кнопка "Разрешить/запретить советников"). Однако запрещение работы советников путем нажатия на указанную кнопку не прерывает текущее выполнение функции start(). Функция start() не запускается на выполнение при открытом окне свойств советника. Окно свойств не может быть открыто в момент выполнения советника.
а как на счет Refresh?
Есть задача: нужно написать эксперта, который честно отрабатывает init() на каждом тике, но пока тиков нет - он должен в цикле делать некоторые действия, например выводить текущее время в комментарий (учебно-тестовый пример). Я думал что приход нового тика прерывает выполнение эксперта и "заново" вызывает start(). Однако небольшой тестовый примерчик показал: как только эксперт ушел во внутренний цикл он перестает реагировать на приходящие тики. В этом конечно есть свое здравое зерно, но задачку "поймания" тиков внутри глухого ( while(true) ) цикла мне все таки нужно решить. Буду очень признателен если кто поможет дельным советом или покажет/докажет что этого сделать никак нельзя.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Есть задача: нужно написать эксперта, который честно отрабатывает init() на каждом тике, но пока тиков нет - он должен в цикле делать некоторые действия, например выводить текущее время в комментарий (учебно-тестовый пример). Я думал что приход нового тика прерывает выполнение эксперта и "заново" вызывает start(). Однако небольшой тестовый примерчик показал: как только эксперт ушел во внутренний цикл он перестает реагировать на приходящие тики. В этом конечно есть свое здравое зерно, но задачку "поймания" тиков внутри глухого ( while(true) ) цикла мне все таки нужно решить. Буду очень признателен если кто поможет дельным советом или покажет/докажет что этого сделать никак нельзя.