Тестер стратегий, повторная оптимизация - страница 3

 

Могу проиллюстрировать ГРАФИЧЕСКИЕ ПРОБЛЕМЫ изображения волкинг-форварда одной картинкой. Если все пихать вместе - получается каша. Непонятно,как выравнивать общую картину.

 

 

Сама же таблица может быть такой. Это результаты тестирования разных советников с итоговой суммой форвардов.

 

RSI CCI RVI TriX DeMarker No \gbp No \USDCHF No \EURUSD
дек.14 114,3 -49,8 -249,5 206,6 375,2 -345,1 -301,1 199
янв.15 77,9 12 -40,7 84,6 346,9 298,2 158,7 40,8
фев.15 472,8 480,4 292,6 -155,1 140,8 63,4 139,5 179,8
мар.15 -898,5 -546,3 -130 -0,6 389,7 110,3 -286,6 149
апр.15 156,2 348,2 -37,4 57 7,6 17,8 409,2 395,4
май.15 635,1 285 384,3 495,1 124,8 552,2 801,6 -264,4
июн.15 859,5 319,9 -197,3 -37,5 344,6 385,5 349,6 418,1
июл.15 312,9 -130,4 342,1 -35,5 30,5 577,5 494,7 863,3
авг.15 608,8 310,7 431,8 862 1 002,80 404,2 581,1 977,7
сен.15 21,7 33,8 -336 25 -222,2 -114,1 224,6 278,8
окт.15 -372,5 92,6 -51,6 79 -54,8 -181,7 -106,8 -400,3
ноя.15 -25 -358,3 66,3 62 -290,7 -245,8 -534 -21,7
Итого: Итого: Итого: Итого: Итого: Итого: Итого: Итого:
1963.2 797.8 474.6 1642,6 2195.1 1522.4 1930.5 2815.5
 
Slawa:

Нужно всесторонее обсуждение.

Самое интересное, что мы знаем, как провести повторную оптимизацию на уже сформированных результатах. Тут вообще никаких сложностей.

Сложность скорее интерфейсная. Как сделать так, чтобы не запутать, а наоборот, направить в нужном направлении основную массу пользователей. Извините, но мы не рассчитываем на признание со стороны "гиков", нам нужно таким образом организовать требуемую функциональность, чтобы не возникало дополнительных вопросов у большинства пользователей

Чтобы не путать новичков сложным интерфейсом, можно сделать в самом верху галочку "Основные настройки / Все настройки" или "Базовый вид / Профессиональны вид" и т.п. Во многих программах есть такое, даже у стандартного калькулятора.
 
Для сохранения результатов оптимизации есть экспорт в XML. Хорошо бы и импорт сделать, чтобы через некоторое время пересмотреть результаты и некоторые запускать на тестирование.
 

Коллеги, спасибо за отклик!

Думаю что предложение "сделать проще" для начала будет оптимальным. Если разложить по этапам процесс тестирования, то он выглядит так:

1. Выбираем параметры оптимизации - здесь трейдер в меру своего понимания советника эти параметры отметит.

2. Далее выбор диапазона истории для оптимизации, это важный момент и на него влияет ряд факторов:

а) скорость работы советника, если алгоритм "тяжелый" - то трейдер будет уменьшать диапазон тестирования чтобы получить полезный результат

за разумное время;

б) выбор диапазона графика, который содержит нужные варианты движения цены - различные комбинации тренда и флета.
На глубину истории для выбора такого интервала обычно влияет пункт а)

По результатам мы получаем первичный список параметров. Вот этот список параметров мы повторно проверяем на других интервалах графика.
В данном случае "сделать проще"- это предоставить возможность выбирать для полученного списка параметров различные участки истории и, желательно, ТФ и инструмент.

В процессе повторных прогонов не меняется номер сета в списке параметров и сами параметры ( отмечены красным на скрине).

Т.е. по результатам повторных прогонов полученного списка на разных участках истории должен получится, условно говоря, номера ТОР-10 сетов, которые

показывают стабильно приемлемый результат.

Таким образом мы отсеем подгон тестером результатов оптимизации. Это уже ОГРОМНЫЙ шаг вперед, который будет правильно  понят любым трейдером.

Объяснение этого подхода на форуме сведется к такому диалогу:

Вопрос: - А как параметры после оптимизации выбрать? Какие лучше? Что сверху?
Ответ:  - А ты оптимизацию прогони, потом флажок ХХХ поставь, выбери другой интервал и снова прогони.
Запоминай номера лучших результатов каждый раз. После нескольких прогонов сам поймешь какие результаты
повторяются в списке лучших. С ними и работай дальше.

При выставленном флажке ХХХ (условное название) отметки в списке параметров тестирования игнорируются.
Берутся только параметры из результатов оптимизации. Меняется Диапазон тестирования, Таймфрейм, Инструмент.

Если возможно сделать сохранение, загрузку и редактирование первичного списка - это будет второй  ОГРОМНЫЙ
шаг вперед.

PS. В обсуждении звучат интересные и полезные предложения, вопрос в сроках их реализации.
Я исходил из минимальных затрат Разработчика, так как все необходимые данные уже есть надо только расширить
возможности их повторной обработки.

Флажок ХХХ можно обозначить как "Повторная проверка результатов оптимизации"

Как-то так...

 
Genry:

Если возможно сделать сохранение, загрузку и редактирование первичного списка - это будет второй  ОГРОМНЫЙ
шаг вперед.

Если сделают импорт из XML, то можно делать так:

1) делаем первичную оптимизацию

2) экспортируем в XML

3) отфильтровываем результаты, например с просадкой > 20...30, с количеством сделок <1000. Сортируем. Сохраняем. Можно вручную что-то удалить.

4) импортируем обратно в тестер.  (можно из меню по правой кнопке, как сейчас сделан экспорт)

5) Далее делаем либо одиночные проходы (как я предложил ранее), либо групповые проходы, по всему списку. Инструмент, ТФ, даты мы вольны менять по своему усмотрению. Результаты можно опять экспортировать и опять их отфильтровать, и опять импортировать, и т.д. любое количество раз.

Короче, нужно сделать кнопку "перерасчет по списку", который мы импортировали, как дополнительный пункт к вариантам оптимизации.

 
elibrarius:

Если сделают импорт из XML, то можно делать так:

[хрум]

Короче, нужно сделать кнопку "перерасчет по списку", который мы импортировали, как дополнительный пункт к вариантам оптимизации.

ДА! Я думаю для первого этапа это уже существенное улучшение возможностей Тестера и , взгляд  со стороны, не сильно затратно для Разработчика.
 

Поразительно, когда мысли движутся в одном направлении. Именно такой механизм работы с результатами оптимизации недавно сделал с помощью фреймов (https://www.mql5.com/ru/docs/optimization_frames). 

Сначала, на одном периоде, прогоняю оптимизацию(генетически). Выбираю визуально понравившиеся результаты помечая их.

 

 Они сохраняются в XML файл в таком виде

<sets>
        <set>
                <meta>
                        <title>New Set №839</title>
                        <description>DD=13.34, trades=90, pf=1.25</description>
                </meta>
                <parameters>
                        <parameter block="18684" parameter="tp" value="552"/>
                        <parameter block="31929" parameter="ma_period" value="50"/>
                        <parameter block="20899" parameter="delta" value="552"/>
                </parameters>
        </set>
        <set>
                <meta>
                        <title>New Set №2168</title>
                        <description>DD=10.45, trades=36, pf=1.39</description>
                </meta>
                <parameters>
                        <parameter block="18684" parameter="tp" value="717"/>
                        <parameter block="31929" parameter="ma_period" value="53"/>
                        <parameter block="20899" parameter="delta" value="717"/>
                </parameters>
        </set>
        <set>
                <meta>
                        <title>New Set №2837</title>
                        <description>DD=15.20, trades=30, pf=1.32</description>
                </meta>
                <parameters>
                        <parameter block="18684" parameter="tp" value="1047"/>
                        <parameter block="31929" parameter="ma_period" value="65"/>
                        <parameter block="20899" parameter="delta" value="1047"/>
                </parameters>
        </set>
        <set>
                <meta>
                        <title>New Set №2906</title>
                        <description>DD=13.29, trades=22, pf=2.08</description>
                </meta>
                <parameters>
                        <parameter block="18684" parameter="tp" value="1102"/>
                        <parameter block="31929" parameter="ma_period" value="56"/>
                        <parameter block="20899" parameter="delta" value="1102"/>
                </parameters>
        </set>
        <set>
                <meta>
                        <title>New Set №1050</title>
                        <description>DD=18.96, trades=98, pf=1.06</description>
                </meta>
                <parameters>
                        <parameter block="18684" parameter="tp" value="937"/>
                        <parameter block="31929" parameter="ma_period" value="65"/>
                        <parameter block="20899" parameter="delta" value="937"/>
                </parameters>
        </set>
        <set>
                <meta>
                        <title>New Set №2986</title>
                        <description>DD=6.63, trades=20, pf=2.78</description>
                </meta>
                <parameters>
                        <parameter block="18684" parameter="tp" value="827"/>
                        <parameter block="31929" parameter="ma_period" value="50"/>
                        <parameter block="20899" parameter="delta" value="827"/>
                </parameters>
        </set>
</sets>

Далее, прогоняю еще раз оптимизацию, на других периодах, в режиме использующем сохраненные сеты из файла.

В режиме оптимизации с полным перебором и с использованием ParameterSetRange на одной int переменной легко задается количество прогонов оптимизатора равное количеству сетов.

Документация по MQL5: Работа с результатами оптимизации
Документация по MQL5: Работа с результатами оптимизации
  • www.mql5.com
Работа с результатами оптимизации - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Genry:
ДА! Я думаю для первого этапа это уже существенное улучшение возможностей Тестера и , взгляд  со стороны, не сильно затратно для Разработчика.

Автор сообщения: 0ll
Можно чуть проще сделать -  оптимизация не через генетический алгоритм или сплошной перебор параметров тестирования, а методом

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

по готовым сетам и на другом периоде.

 

Речь о том, что 

1. Нужен волкинг-форвард

2. Даже генетический алгоритм не всегда подойдет, ежели у вас, например, 30 переменных необходимо оптимизировать. Т.е. нужна опция перебора переменных ПО ОЧЕРЕДИ.

Причина обращения: