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

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





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






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



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






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





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




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

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


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



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

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

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

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

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

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

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

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

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

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

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

 
TopSpin >>:

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

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


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

Файлы:
 

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

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

 
Globe >>:

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

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

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

 

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

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

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

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

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

 

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

 
Было бы неплохо если бы в МетаТрейдере была опция сохранять отчет Оптимизации в формате Excel.