Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Можно добавить опцию запрета переподключения терминала к другим серверам?
после этого связь может теряться полностью:
скорее у вас ChartRedraw() не вызывается в конце OnDeinit(). Визуально смотрится именно так: эксперт удалён, а "следы работы" остались
Вызывается. Удаление графики идет в несколько попыток, если объектов много. При старте или рестарте эксперта все работает штатно. Только по кнопке "Удалить" проходит одна-две попытки и все обрывается. Проблема в терминале.
Функция удаления:
Результат:
Удаление объектов 1 Всего 177 удалено 89 ошибок 88
Удаление объектов 2 Всего 88 удалено 44 ошибок 44
Удаление объектов 3 Всего 44 удалено 22 ошибок 22
Удаление объектов 4 Всего 22 удалено 11 ошибок 11
Удаление объектов 5 Всего 11 удалено 6 ошибок 5
Удаление объектов 6 Всего 5 удалено 3 ошибок 2
Удаление объектов 7 Всего 2 удалено 1 ошибок 1
Удаление объектов 8 Всего 1 удалено 1 ошибок 0
Странность еще в том, что на каждой попытке удаляется примерно половина, вне зависимости от количества.
Можно было бы грешить на размер очереди графика, но нет.
Пробовал вставлять Sleep с разными значениями, ничего не меняется.
Странность еще в том, что на каждой попытке удаляется примерно половина, вне зависимости от количества.
переверните цикл в удалении ;-) Это прямо классика из всех учебников....
вместо
должно быть :
Здравствуйте.
Почему при оптимизации только на 0 поколении задействуются все агенты. Потом может пройти несколько поколений, где задействуются от 1 до 5 агентов из 16. В каком то случае (у меня в конкретной оптимизации), только на 7 поколении включились все агенты. А потом опять оптимизация идёт на нескольких агентах. Причём, задания не обнуляются на каждом поколении (как было раньше), а просто добавляются к пройденным, как при перераспределении заданий в проходе одного поколения.
Да, и после исполненных проходов в счётчик пройденных в нижней строке добавляется несоразмерно большее их количество. В итоге количество исполненных проходов в счётчике никак не соответствует реальному их выполнению, ни по времени, ни по количеству реально исполненному агентами.
В итоге, только 0 поколение находит какой то приемлемый результат. Остальные, по сути, бесполезны.
переверните цикл в удалении ;-) Это прямо классика из всех учебников....
вместо
должно быть :
Еще на всякий случай ChartID() забыли упомянуть в параметре у ChartRedraw() :)
Может не тот чарт обновлять.
Такое подозрение, что то не так с формированием и раздачей заданий агентам на 1 и последующих поколениях.
Я, конечно, в этом не специалист, и не особо понимаю, как это работает. Но такое чувство, что на 1 и последующие поколения раздаются просто какие то уже пройденные задания из 0-го поколения, а новых уникальных комбинаций параметров уже не находится. И график оптимизации как бы этому не противоречит. Ничего нового и лучшего уже не находится. А там совершенно точно есть результат лучше. На другом проходе, при изменении ничего не значащего параметра (магиг номера), оптимизатор его находил.
Когда заканчивалось выполнение заданий на 0 поколении, пройденных заданий в нижней строке было 127 (плюс 1, которое завершалось). И сразу по завершению последнего задания 0 поколения и дораздаче заданий на 1 поколение их стало 187. Откуда взялось сразу 59 выполненных заданий в одно мгновение.
Я давно не занимался оптимизацией. Попробовал в старом терминале повторить ту же оптимизацию, build 5660 от 27 февраля 2026 года. Та же самая история. Лучший результат формируется только в 0 поколении. Последующие поколения могут формироваться всего одним заданием для одного агента!
Проверьте пожалуйста работу оптимизатора. Если я найду ещё более старую версию терминала, проверю на нём. Но раньше совершенно точно, такого не было. Пробовал на разных советниках.
Вызывается. Удаление графики идет в несколько попыток, если объектов много. При старте или рестарте эксперта все работает штатно. Только по кнопке "Удалить" проходит одна-две попытки и все обрывается. Проблема в терминале.
Функция удаления:
А почему не вызвать ObjectsDeleteAll? Это значительно быстрее, чем удалять по одному в цикле.
ЗЫ. Кстати, ваша функция удаляет ВСЕ объекты чарта, не глядя на то, принадлежат ли они вашей программе (обычно, по префиксу в имени) или какой-то другой.
Такое подозрение, что то не так с формированием и раздачей заданий агентам на 1 и последующих поколениях.
Я, конечно, в этом не специалист, и не особо понимаю, как это работает. Но такое чувство, что на 1 и последующие поколения раздаются просто какие то уже пройденные задания из 0-го поколения, а новых уникальных комбинаций параметров уже не находится. И график оптимизации как бы этому не противоречит. Ничего нового и лучшего уже не находится. А там совершенно точно есть результат лучше. На другом проходе, при изменении ничего не значащего параметра (магиг номера), оптимизатор его находил.
Когда заканчивалось выполнение заданий на 0 поколении, пройденных заданий в нижней строке было 127 (плюс 1, которое завершалось). И сразу по завершению последнего задания 0 поколения и дораздаче заданий на 1 поколение их стало 187. Откуда взялось сразу 59 выполненных заданий в одно мгновение.
Я давно не занимался оптимизацией. Попробовал в старом терминале повторить ту же оптимизацию, build 5660 от 27 февраля 2026 года. Та же самая история. Лучший результат формируется только в 0 поколении. Последующие поколения могут формироваться всего одним заданием для одного агента!
Проверьте пожалуйста работу оптимизатора. Если я найду ещё более старую версию терминала, проверю на нём. Но раньше совершенно точно, такого не было. Пробовал на разных советниках.
Попробуйте оптимизацию другого эксперта (например, из стандартных примеров) и покажите больше деталей. Скорее всего, все работает как и было задумано в MQ. Генетика в некотором смысле "тупая" и всегда такой была, т.к. заранее назначает количество особей в каждом поколении и даже если некоторые проходы неудачны (недопустимое сочетания параметров), она не дополняет поколение новыми заданиями, чтобы набрать массу валидных особей. В результате генетического материала мало и оптимизация не находит путь к улучшению.
Не очень понял, какие претензии к статистике проходов и заданий. Это не одно и то же. Когда 0-е поколение заканчивается, генерируются новые задачи для 1-го поколения, так что их кол-во увеличивается скачком, а тот факт, что следующее поколение не находит улучшений, и большинство проходов, по видимому, заканчивается попаданием в кэш - это уже вопрос к особенности целевой функции, которую ваш эксперт формирует.
Не очень понял, какие претензии к статистике проходов и заданий. Это не одно и то же. Когда 0-е поколение заканчивается, генерируются новые задачи для 1-го поколения, так что их кол-во увеличивается скачком, а тот факт, что следующее поколение не находит улучшений, и большинство проходов, по видимому, заканчивается попаданием в кэш - это уже вопрос к особенности целевой функции, которую ваш эксперт формирует.
Я писал про то, когда закончилось 0-е поколение, счётчик проходов (это ведь он подчёркнут, счётчик реальных проходов)
Он скачкообразно увеличился на 60. Хотя был закончен последний 128 проход 0-го поколения, со 127 стал сразу 187. При том, что выполнено было только 128 проходов, прибавилось ещё 59. А для нового 1-го поколения раздал всего 4-е !!! задания. В итоге несоответствие количества проходов и задач за все поколения подчёркнуты на скрине в моём первом посту.
... Когда 0-е поколение заканчивается, генерируются новые задачи для 1-го поколения, так что их кол-во увеличивается скачком, ...
В том и дело то, что скачком увеличивается счётчик проходов, а не задач. Я сделаю видео попозже, выложу.
Я писал про то, когда закончилось 0-е поколение, счётчик проходов (это ведь он подчёркнут, счётчик реальных проходов)
Он скачкообразно увеличился на 60. Хотя был закончен последний 128 проход 0-го поколения, со 127 стал сразу 187. При том, что выполнено было только 128 проходов, прибавилось ещё 59. А для нового 1-го поколения раздал всего 4-е !!! задания. В итоге несоответствие количества проходов и задач за все поколения подчёркнуты на скрине в моём первом посту.
В том и дело то, что скачком увеличивается счётчик проходов, а не задач. Я сделаю видео попозже, выложу.
Смотрите логи, обычно это значит, что некоторые проходы (наборы генов в поколении) отобразились на одни и те же входные параметры, поэтому такие проходы пропускаются.
Ну так я выше написал, что задачи это не есть проходы, поэтому сравнивать 1152 и 189 этот как канистры сравнивать с бочками. Задача - это пакет проходов.