Инструкции по использованию Advanced Optimization Report
Подключение функций для сохранения графиков баланса, эквити и статистики оптимизации
Если у вас есть доступ к коду советника, то можно расширить отчет добавив в него дополнительный код.
Скачайте файл Advanced Optimization Report Saver.mqh со страницы https://www.mql5.com/en/code/68706 и сохраните его в папку терминала \MQL5\Include\ (а этой же странице можно предложить новые критерии для отчета).
Добавьте код подключающий скачанный файл: (его можно добавить ниже последней строки кода вашего эксперта или в любое другое место)
| #include <Advanced Optimization Report Saver.mqh> |
Затем нужно добавить вызовы экспортированных функций в уже существующие функции в вашем эксперте: (если функций нет, добавьте их)
|
void OnTick(){ |
В выделенном месте можно добавить собственные критерии, которые вы хотите добавить в отчет.
Для примера добавим этот код в советник Moving Average из папки Examples (...\MQL5\Experts\Examples\Moving Average\Moving Average.mq5). Сначала скопируем оригинальный советник и дадим ему имя Moving Average Charts.mq5. Теперь добавим в него код из инструкции выше.
Изменения внесены только в самом конце кода - начиная с функции OnTick():
| void OnTick(void) { //--- if(SelectPosition()) CheckForClose(); else CheckForOpen(); //Save balance and equity charts save_OnTick (TimeCurrent(), AccountInfoDouble( ACCOUNT_BALANCE), AccountInfoDouble( ACCOUNT_EQUITY)); } void OnTesterInit() { //... your code save_OnTesterInit();//print to chart "Do not close this window until the optimization is complete!" } void OnTesterDeinit(){ //... your code save_OnTesterDeinit();// get frames } double OnTester(){ //... your code //save any custom values: double AvgPips=0; save_Add( AvgPips, 2, "Custom 1", true);//value, digits, name, sort_min_to_max save_Add( TesterStatistics( STAT_PROFIT ), 2, "Custom 2"); double Custom = 0;//your Custom fitness saveCharts(Custom);//save final equity, all deals... return Custom; } #include <Advanced Optimization Report Saver.mqh> |
Как видите - всё просто и займет пару минут времени.
После этого можно запустить оптимизацию:


На последнем скриншоте видно, что подключенный код добавил 2 параметра:
Save Statistics - включает или выключает сбор статистики
Pixels in balance and equity charts - указывает число пикселей по ширине у мини-графиков.
После завершения оптимизации создадим отчет и увидим:
|
100 линий с MovingPeriod
|
10 линий с MovingShift
|
При числе линий более 20, будет показано только по 3 горизонтальные линии средних значений: 3 сверху и 3 снизу.
100 линий сложно воспринимать, поэтому нужно применять фильтры. Или изменить размер графика вплоть до 100% ширины экрана или кликнув по графику открыть его в Google Charts в котором есть зум колёсиком мыши.
А еще лучше применять входные переменные не с одинаковым шагом, а с учетом масштаба через энумератор (enum), например такой: 1,2,3,5,7,10,15,20,30,50,70,100 - будет всего 12 линий вместо 100.
| enum nums1 {__0=0, __1=1, __2=2, __3=3, __5=5, __7=7, __10=10, __15=15, __20=20, __30=30, __50=50, __70=70, __100=100, __150=150, __200=200, __300=300, __500=500}; input nums1 MovingPeriod = 10; // Moving Average period |
Версию советника с enum можно скачать тут.
Вместо 1000 проходов оптимизации будет 120, время расчетов в ~8 раз быстрее, размер файлов в ~8 раз меньше.
Результат более наглядный:

Сразу выделяется результат с MovingPeriod = 15 с самой высокой линией среднего и с самым высоким максимумом.
Но как часто бывает, лучшие результаты на бектесте не самые лучшие на форвард тесте:

Получившийся отчет можно скачать и изучить:
Подключение кода для оптимизации в математическом режиме
К коду вашего советника нужно добавить расчеты в Virtual. И чтение тиков из архивов.
Ограничения в режиме тестирования по всем символам
- Сбор статистики и графиков по всем символам не работает из за бага в тестере, который не отправляет фреймы с данными. Ошибка сообщена разработчикам MT5, надеемся на скорое исправление.
- В этом режиме также невозможно экспортировать .opt файл. Его надо найти самостоятельно там же, где и все остальные .opt файлы.
Обычно тут
Тоже ждем исправление от разработчиков.
© 2025 - 2026




