Отлаживая индикаторы, я "обкладываю" их отладочной печатью: в самом начале start - Print("Начало работы"); потом по телу кода в местах разветвлений нечто вроде Print("Вариант когда dt>0"); и в самом конце Print("Выход"); При запуске терминала (особенно с большим количеством индикаторов) я неоднократно наблюдал как сообщение "Начало работы" идет несколько раз один за другим, а внутренние и самое последнее про выход начинают появляться только с третьей попытки.
Очевидно причина в том, что индикатор начинает отрабатывать в момент подкачки истории и каждый новый бар вызывает остановку функции start и ее вызов для новой котировки. И так продолжается пока не втянется вся история. Прав ли я в своих выводах?
Я думаю, тут дело в экономном выводе принтов. В сам файл журнала смотрели?
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Отлаживая индикаторы, я "обкладываю" их отладочной печатью: в самом начале start - Print("Начало работы"); потом по телу кода в местах разветвлений нечто вроде Print("Вариант когда dt>0"); и в самом конце Print("Выход"); При запуске терминала (особенно с большим количеством индикаторов) я неоднократно наблюдал как сообщение "Начало работы" идет несколько раз один за другим, а внутренние и самое последнее про выход начинают появляться только с третьей попытки.
Очевидно причина в том, что индикатор начинает отрабатывать в момент подкачки истории и каждый новый бар вызывает остановку функции start и ее вызов для новой котировки. И так продолжается пока не втянется вся история. Прав ли я в своих выводах?
Я думаю, тут дело в экономном выводе принтов. В сам файл журнала смотрели?
Я думаю, тут дело в экономном выводе принтов. В сам файл журнала смотрели?
А при чем здесь экономия? есть примерно такой код индюка:
Я ожидаю увидеть в журнале:
Выход
Вариант когда dt>0
Начало работы
... initialized
а вместо там вот это:
Выход
Вариант когда dt>0
Начало работы
Начало работы
Начало работы
... initialized
Я ожидаю увидеть в журнале:
а вместо там вот это:
Начало работы
И при одном запущенном индикаторе?
И при одном запущенном индикаторе?
Ну конечно! А даже если при двух или трех - закрывающих их "Выход" все равно нет.
Я сегодня попробую "откатить назад код" и восстановить ситуацию. Если получится - выложу файлы (индикаторы + профиль) и сам журнал.
Закомментировал IsConnected() во всех своих экспертах. Блокирует она временами торговлю напрочь: тики проходят,
цена движется, а функция говорит "FALSE" :(
Терминал перезагружать устал уже.
еще разок о замеченном мною баге...
сегодня несколько раз был случай: запускаю терминал, через пару секунд после загрузки счета запускаю скрипт, который крутится в цикле и...
котировки идут, связь есть, IsConnected() == false, через неск. минут снова смотрю...
котировки идут, связь есть, IsConnected() == false, через неск. минут снова смотрю...
котировки идут, связь есть, IsConnected() == false, через неск. минут снова смотрю...
тоже самое, связь есть, IsConnected() == false, перезагружаю терминал, снова запускаю скрипт, связь есть, IsConnected() == true... работаю дальше...