Скачать MetaTrader 5

Обработка результатов оптимизации в Excel

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Rashid Umarov
Админ
12160
Rashid Umarov  
Результаты оптимизации в МТ4 можно сохранять в html-файле. Но у этого свойства есть существенный недостаток - нет информации о входных параметрах эксперта, на которых посчитаны основные характеристики каждого бек-теста.





Но есть возможность экспортировать результаты оптимизации в любую другую программу, например, в Excel, через буфер обмена. Для этого достаточно в закладке "Optimization Results" праавой кнопкой мышки вызвать контестное меню, скопировать все строчки и вставить их в таблицу Excel.






Но в этом способе есть маленькая ложка дегтя - сохранить все результаты со входными параметрами таким образом можно, но анализировать эти результаты нельзя.
Нельзя построить графики зависимости, например, баланса, от того или иного входного параметра. Так как каждое значение каждого параметра пишется как Параметр=значение_параметра. Был написан макрос на VBA, который позволяет исправить это недостаток. Этот макрос сохранен в книге OptimizationReports.xls и выложен в заархивированном виде. При открытие файлов с маркосами Excel выдает предупреждение.



Для данной книги нужно выбрать "Не отключать макросы", желательно все подозрительные файлы проверять на наличие вирусов (макросы тоже могут содержать вирусы), все современные антивирусники легко с этим справляются. После открытия книги вставляете копированием результаты оптимизации из буфера обмена в любую ячейку в пределах первых 500 строк и первых 200 столбцов (требований на точность вставки никаких). После этого вызываете макрос SearchFirstValue. Для этого достаточно нажать сочетание клавиш Alt+F8






Жмем кнопку "Выполнить". Макрос сам найдет область страницы, которая содержит результаты, определит количество проходов оптимизатора (столбец "Pass"), количество входных параметров, и перенесет все данные в левый верхний угол. Кроме того, каждому столбцу будет задано наименование (столбцам параметров тоже), и все лишние записи типа Параметр= будут удалены.





Теперь мы можем построить график результатов оптимизации в виде диаграммы. Выделим значения в столбце "Profit" и построим диаграмму с помощью Мастера диаграмм.




График результатов оптимизации отличается от приведенного в самом начале поста, потому что это результаты оптимизации одного и того же советника, но разными методами. В данном случае использованы Генетические алгоритмы (ГА). Добавление возможностей автофильтра и сортировки в некоторых помогает выявить дополнительные связи результатов отчета бектеста с входными параметрами эксперта.

Надеюсь, этот макрос добавит больше возможностей для использования результатов оптимизации в МТ4.


PS На втором листе приложенной книги находятся готовые выделенные результаты оптимизации некоего эксперта для демонстрации. Чтобы не делать самому многочасовую оптимизацию для проверки макроса.



Скачивать второй файл - OptimizationTeports_1.zip. в первом осталось ограничение на количество обсчитываемых ячеек, что приводило к неверной работе макроса при количестве прогонов больше 500.
Rashid Umarov
Админ
12160
Rashid Umarov  
Немного доработанная версия VBA скрипта. Теперь данные оптимизации не только обрабатываются для более удобного использования, но и выставляется Автофильтр и строится диаграмма результатов оптимизации размером 200x800 пикселей.
Файлы:
TopSpin
23
TopSpin  
Rosh писал(а) >>
Немного доработанная версия VBA скрипта. Теперь данные оптимизации не только обрабатываются для более удобного использования, но и выставляется Автофильтр и строится диаграмма результатов оптимизации размером 200x800 пикселей.

Что-то не работает:

1. Во первых макрос - защищен паролем и его править невозможно. Не думаю что там супер ноу-хау разработка, поэтому можно было бы и без пароля выложить, что бы к вам каждый раз не обращаться.

2. при вставке скопированных данных в столбце B(Прибыль) и D(Прибыльность) - вылазиют даты

3. результат после выполнения макроса такой:

т.е. макрос не выполняет что необходимо.

Что Вы посоветуете. Может быть обновите макрос?(да еще и выложите плиз без пароля).

o_o
Модератор
24034
o_o  
даты вылазиют из за настроек обозначения дробных чисел. Региональные настройки надо менять Или настройки экселя.
TopSpin
23
TopSpin  
sergeev писал(а) >>
даты вылазиют из за настроек обозначения дробных чисел. Региональные настройки надо менять Или настройки экселя.

Если я сменю разделитель целой и дробной части с "," на "." - тогда у меня запетая не будет читаться в других прогах...т.е. это не выход (имхо).

Но даже без этих проблем с датой вылазиет ошибка

т.е. макрос работает не правильно (у меня как минимум).

Rashid Umarov
Админ
12160
Rashid Umarov  
TopSpin >>:

Что-то не работает:

1. Во первых макрос - защищен паролем и его править невозможно. Не думаю что там супер ноу-хау разработка, поэтому можно было бы и без пароля выложить, что бы к вам каждый раз не обращаться.


Вот без пароля

Файлы:
Andrey Nachalov
258
Andrey Nachalov  

2TopSpin попробуй вставлять данные на лист так: Правка --> Специальная вставка --> Вставить как текст.

P.s.: это скорее проблема импорта данных в Excel, а не макроса. Хотя Rosh может и добавит в код макроса обработку этой ошибки

Rashid Umarov
Админ
12160
Rashid Umarov  
Globe >>:

2TopSpin попробуй вставлять данные на лист так: Правка --> Специальная вставка --> Вставить как текст.

P.s.: это скорее проблема импорта данных в Excel, а не макроса. Хотя Rosh может и добавит в код макроса обработку этой ошибки

Сделать, наверно, можно (уверен в этом), но я уже далек от VBA. Пароль я снял, дерзайте.

TopSpin
23
TopSpin  

2Rosh - за беспарольный файл.

2Globe - Правка --> Специальная вставка --> Вставить как текст. - не помогает.

это скорее проблема импорта данных в Excel, а не макроса - да, это так. Если в параметрах Excell указать разделитель целой и дробно части как "." - то все вставляет хорошо (без дат).

и проблема "Type mismatch" сразу же решается.

Большое спасибо Rosh, Globe и Sergeev

Andrey Nachalov
258
Andrey Nachalov  

2TopSpin & Rosh на первом листе книги макрос работает без ошибок. Проблема не в датах, а в том, что код, зашитый в модуль Лист1, содержит ссылки на ячейки без указания активного листа ("ActiveSheet."), плюс при построении диаграммы прямо ссылается на первый лист книги

Oleg
2377
Oleg  
Было бы неплохо если бы в МетаТрейдере была опция сохранять отчет Оптимизации в формате Excel.
12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий