Новая версия платформы MetaTrader 5 build 6180: больше ИИ-функций - страница 2

 

Можно добавить опцию запрета переподключения терминала к другим серверам?

после этого связь может теряться полностью:

2026.09.05 16:30:51.962 Network auto connecting to a better access point with 83 % quality (previous: 73 %)
2026.09.05 16:30:51.963 Network connection to Pepperstone-Demo lost

 --- так будет всё время, пока вручную не подключусь к другому серверу

 
Maxim Kuznetsov #:

скорее у вас ChartRedraw() не вызывается в конце OnDeinit(). Визуально смотрится именно так: эксперт удалён, а "следы работы" остались

Вызывается. Удаление графики идет в несколько попыток, если объектов много. При старте или рестарте эксперта все работает штатно. Только по кнопке "Удалить" проходит одна-две попытки и все обрывается. Проблема в терминале.

Функция удаления:

void DeleteAllChartObjects(string progName, int subWin=0)
{
    int objOnStart = ObjectsTotal(0, subWin);

    int objTotal;
    int objDeleted;
    int attempt = 0;
    do
    {
        attempt++;
        int delError = 0;
        objTotal = ObjectsTotal(0, subWin);
        objDeleted = 0;
        for(int i = 0; i < objTotal; i++)
        {
            string objName = ObjectName(0, i, subWin);
            if(ObjectDelete(0, objName)) objDeleted++;
            else delError++; 
        }
        Print("Удаление объектов " + (string)attempt + " Всего " + (string)objTotal + 
              " удалено " + (string)objDeleted + " ошибок " + (string)delError);
    }
    while(objDeleted < objTotal);
    ChartRedraw();
}

Результат:

Удаление объектов 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 с разными значениями, ничего не меняется.

 
Игорь Евдокимов #:
Странность еще в том, что на каждой попытке удаляется примерно половина, вне зависимости от количества.

переверните цикл в удалении ;-) Это прямо классика из всех учебников....

вместо

for(int i = 0; i < objTotal; i++)

должно быть :

for(int i= objTotal-1;i>=0;i--)
 

Здравствуйте.

Почему при оптимизации только на 0 поколении задействуются все агенты. Потом может пройти несколько поколений, где задействуются от 1 до 5 агентов из 16. В каком то случае (у меня в конкретной оптимизации), только на 7 поколении включились все агенты. А потом опять оптимизация идёт на нескольких агентах. Причём, задания не обнуляются на каждом поколении (как было раньше), а просто добавляются к пройденным, как при перераспределении заданий в проходе одного поколения.

Да, и после исполненных проходов в счётчик пройденных в нижней строке добавляется несоразмерно большее их количество. В итоге количество исполненных проходов в счётчике никак не соответствует реальному их выполнению, ни по времени, ни по количеству реально исполненному агентами.


В итоге, только 0 поколение находит какой то приемлемый результат. Остальные, по сути, бесполезны.

 
Maxim Kuznetsov #:

переверните цикл в удалении ;-) Это прямо классика из всех учебников....

вместо

должно быть :

Еще на всякий случай ChartID() забыли упомянуть в параметре у ChartRedraw() :)

Может не тот чарт обновлять.



 

Такое подозрение, что то не так с формированием и раздачей заданий агентам на 1 и последующих поколениях.

Я, конечно, в этом не специалист, и не особо понимаю, как это работает. Но такое чувство, что на 1 и последующие поколения раздаются просто какие то уже пройденные задания из 0-го поколения, а новых уникальных комбинаций параметров уже не находится. И график оптимизации как бы этому не противоречит. Ничего нового и лучшего уже не находится. А там совершенно точно есть результат лучше. На другом проходе, при изменении ничего не значащего параметра (магиг номера), оптимизатор его находил.

Когда заканчивалось выполнение заданий на 0 поколении, пройденных заданий в нижней строке было 127 (плюс 1, которое завершалось). И сразу по завершению последнего задания 0 поколения и дораздаче заданий на 1 поколение их стало 187. Откуда взялось сразу 59 выполненных заданий в одно мгновение.

Я давно не занимался оптимизацией. Попробовал в старом терминале повторить ту же оптимизацию, build 5660 от 27 февраля 2026 года. Та же самая история. Лучший результат формируется только в 0 поколении. Последующие поколения могут формироваться всего одним заданием для одного агента!

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