Не знаю как правильно назвать ситуацию. Назвал нестабильная загрузка советников. Речь о том что во время запуска терминала советник или несколько советников работавших во время предыдущего запуска терминала и присутствующих в журналах общем и экспертов как "removed" при остановке терминала, при следующем запуске не загружаются. При этом никаких записей о них в журналах не появляется. Я не новичок. Советниками пользуюсь много лет. Все советники мои. Проблема началась пару недель назад. У меня в терминале их используется одновременно несколько. Сначала исчезли несколько, но не все. Пришлось заново присоединять к графикам и перезапускать терминал для проверки их присоединения. Часть из них присоединилась устойчиво, а часть пришлось добавлять еще раз. И так по кругу несколько раз пока они не стали устойчиво появляться при загрузке терминала. Думал проблема исчезла. Начал работать. В субботу выключил терминал и ноутбук. В журнале все советники "removed". В понедельник включил - из четырех один исчез. Причем такой же на другой валютной паре должен был быть и появился. Какие будут мнения и советы?
Alex_57, все это очень интересно, но есть один существенный недостаток Вашего изложения - в нем начисто отсутствуют все детали. Хотите пример, да без проблем - а removed происходит с каким кодом и по какому случаю? Блоки инициализации и деинициализации совы логируем или как? Ну и на последок, на сладенькое - не проще будет обратиться в сервисдеск Метаквотов и спросить у них в чем дело? Конечно, желательно вначале в исходниках покопаться и посмотреть что происходит в момент инициализации и деинициализации совы.
При закрытии терминала в журнале экспертов: 0 00:59:07.828 AlexTPSDlimit830 EURUSDv,M1: uninit reason 9 0 00:59:07.875 Expert AlexTPSDlimit830 EURUSDv,M1: removed Все при закрытии происходит штатно. Код 9 у всех экспертов. А при следующем открытии терминала нестабильно выборочно отдельный советник или советники не появляются без записей в журналах. Советники старые вылизанные и в работе проблем не возникает. Из справочника: Причины деинициализации Константа Значение Описание REASON_CLOSE 9 Терминал был закрыт
Alex_57, знаете историю про "обкуренного хужожника"? Если нет, рассказываю, в собственном изложении: Я тут покурил чего-то и ко мне муза пришла. нарисовал я значит несколько инопланетят, разных цветов. У меня будет несколько вопросов: 1) чего я такого покурил? 2) как звали музу? 3) сколько инопланетят на картине? 4) на какой планете эти инопланетяне находятся? 5) какого цвета эти инопланетяне? А картину я Вам не покажу, поскольку по картине только Дженнифер Псаки ответить не сможет. Так и у Вас, вместо того чтобы обратиться в СД к Метакотам и все нормально изложит начинаем карточные пасьянсы раскладывать и на кофейной гуще гадать, что и как. Правильно на мой взгляд будет обратиться к Метаквотам, указать как положено: Какая у Вас ОС, какой терминал, сколько оперативной памяти, сколько открыто графиков, сколько и каких экспертов на эти графики навешано. Наконец приложить логи терминала и логи экспертов. Наконец если потребуется пояснить что происходит в момент инициализации и деинициализации в самих экспертах (я не зря спросил про логирвоание этих процессов). PS Уж если Вы автор самих торговых роботов максимально залогирвоать все можно, а потом вопрос решать, на основании логов и фактов конкретных.
Почему я в первую очередь обращаю внимание на логирование и детальный анализ процессов происходящих в блоках инициализации и деинициализации? Просто тут все гораздо сложней простого анализа по коду причины завершения работы эксперта. Сам код 9 говорит только о том что завершение работы происходит по закрытию терминала. Но вот что в процессе этого завершения происходило по простому коду не понять. Взять хотя бы обработку денинициализации. Обработка этого события имеет некоторые ограничения, в том числе и ограничения по времени. Длительность корректной обработки завершения работы не должна превышать 2,5 секунды, все что выше этого времени будет просто банально резаться. И это я на основе справки по МТ5 говорю, уверен что время в МТ4 не больше чем указано в справке для MQL5. Поэтому важно понимать сколько времени требуется для завершения отдельно взятого советника и сколько времени нужно для того чтобы терминал корректно завершил свою работу (наверняка ведь есть и тут ограничения). Поэтому важно знать сколько было экспертов, сколько открытых графиков и что происходило при завершении работы. Знать это нужно не на уровне описания в стиле я получил "9 как код возврата", а детально и подробно по каждому пункту, на основании логов терминала и экспертов. Эксперементальным путем можно понять проблема это терминала или экспертов, а далее нужно к Метаквотам обращаться и спрашивать как оптимизировать работу так чтобы не падало ничего. PS Саму простой способ запороть работу в любой сове - это в блоке инициализации делить на ноль, а при завершении работы пытаться пропихнуть "слона" в "игольное ушко" размером в 2,5 секунды.