Оптимизация роботов

 

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

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

 Приведу пример:

Способ первый ...

Имеем 10 лет истории. Берем 7 лет и оптимизируем робота, получаем параметры и дальше 3 года форвард тестом.

 

Способ второй. Берем 5  лет и оптимизируем робота, получаем параметры и дальше 5 лет форвард тестом.

 

Какие еще есть варианты или принципиально другие способы? 

 
На mql5.community работает поиск
 
Провожу серию тестов out of sample.
Например, так:
1) Оптимизируем на 2000..2004 гг, прогоняем с результатами оптимизации на 2004..2005 гг.
2) Оптимизируем на 2001..2005 гг, прогоняем на 2005..2006 гг
2) Оптимизируем на 2002..2006 гг, прогоняем на 2006..2007 гг

и т.д.

Результат каждого прогона фиксируем, по окончании оцениваем как бы вёл себя робот, если бы мы каждые xx месяцев делали оптимизацию, а затем yy месяцев гоняли робота с полученными параметрами.


Для MT4 автоматизировал сей процесс, для MT5 пока ручками делаю (но тут меньше роботов на текущий момент через меня "проходит", так что терпимо). Может это и глупости, но ИМХО довольно полезные данные можно получить и некисло отрезвляет :)

 
ENSED:
Провожу серию тестов out of sample.
Например, так:
1) Оптимизируем на 2000..2004 гг, прогоняем с результатами оптимизации на 2004..2005 гг.
2) Оптимизируем на 2001..2005 гг, прогоняем на 2005..2006 гг
2) Оптимизируем на 2002..2006 гг, прогоняем на 2006..2007 гг

и т.д.

Результат каждого прогона фиксируем, по окончании оцениваем как бы вёл себя робот, если бы мы каждые xx месяцев делали оптимизацию, а затем yy месяцев гоняли робота с полученными параметрами.


Для MT4 автоматизировал сей процесс, для MT5 пока ручками делаю (но тут меньше роботов на текущий момент через меня "проходит", так что терпимо). Может это и глупости, но ИМХО довольно полезные данные можно получить и некисло отрезвляет :)

При этом на какой из параметров обращаете больше внимания? Я, например, при прочих равных условиях, выбираю вариант с максимальным отношением К= Чистая прибыль/Максимальная просадка. Стараюсь, чтобы было K>3-5.
 
yosuf:
При этом на какой из параметров обращаете больше внимания? Я, например, при прочих равных условиях, выбираю вариант с максимальным отношением К= Чистая прибыль/Максимальная просадка. Стараюсь, чтобы было K>3-5.

ENSED и yosuf

я сколонен делать так-же.

 

yosuf - я тоже бираю параметры по лучшему Recovery фактору (прибыль / просадка).

 

Но вот вопрос... Получается мы делаем , что ? Мы на основе предыдущих "X" лет производим оптимизцию и лучший парметр запускаем в будующем голу форвард тестом. А сколько брать месяцев для оптимизации? Тут у меня загвозка.

:) 

 
barabashkakvn:
На mql5.community работает поиск

спасибо. Нашел КУЧУ статей :) читайю, ознакомливаюсь. 

 

Благодарю ! 

 
yosuf:
При этом на какой из параметров обращаете больше внимания? Я, например, при прочих равных условиях, выбираю вариант с максимальным отношением К= Чистая прибыль/Максимальная просадка. Стараюсь, чтобы было K>3-5.

Да, для MT4 когда вручную работаю примерно такой же параметр ставлю в приоритет. На автомате если гоняю в своей программке, то там доступны только типичные для MT4 варианты (макс. баланс, мин. просадка и т.п.).

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


Для MT5 (если речь о своих советниках или хотя бы о доступном исходном коде) всё проще, благодаря возможности использовать практически любые критерии для отбора результатов оптимизации (при помощи OnTester()). Правда, автоматизировать серии тестов пока руки не доходят.

Вообще, в MT5 я сейчас над мультивалютными советниками работаю и тут, если советник проходит серию тестов out of sample, то рабочая оптимизация делится уже на два этапа:

1) Найти оптимальные параметры сигналов для каждого торгового инструмента в отдельности. Т.е. сначала, к примеру, оптимизирую EURUSD, потом GBPUSD и т.д. Это уменьшает общее время оптимизации. В критерий "оптимальности" на этом шаге я включаю в том числе количество сделок (больше - лучше) и количество непрерывных проигрышей, а не просто "чистая прибыль/макс. просадка".

2) Найти оптимальное распределение средств на счету между несколькими торговыми инструментами. Здесь уже идёт оптимизация при включённой торговле по всем предполагаемым инструментам сразу. Например, сколькими процентами от депозита рисковать для каждого инструмента ради достижения наибольшей прибыли при минимальной просадке (уже "чистая прибыль/макс. просадка"). 

Разумеется, это всё мои умозаключения и возможно они некорректны.

 

Для MT4 тоже можно использовать OnTester().

Примерно год назад появилась возможность.

https://www.mql5.com/ru/forum

Я обычно в MT4 оптимизирую (при помощи OnTester()) по соотношению чистой прибыли к максимальной просадке средств при минимальном кол-ве сделок. Выборка для оптимизации 2-4 года. Затем форвард-тест, просто добавляю до и после по половине периода выборки. В результате теста по графику баланса даже на глаз видно, стоящая идея или сразу выбросить.

Свой критерий оптимизации - MQL4 форум
  • www.mql5.com
Свой критерий оптимизации - MQL4 форум
 
papaden:

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

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

 Приведу пример:

Способ первый ...

Имеем 10 лет истории. Берем 7 лет и оптимизируем робота, получаем параметры и дальше 3 года форвард тестом.

Какие еще есть варианты или принципиально другие способы? 

Схема приблизительно такая:

Стратегия должна обладать стабильностью в своей работе, а значит проходить форс-мажоры без значительных потерь.

А форс-мажоры на рынке бывают с периодичностью 1 раз в год. Таким образом вполне достаточно оптимизации на 2 , максимум 3 года, т.е с проходом 2 - 3 форс-мажоров.  Более длительный период оптимизации не дает дополнительного преимущества, так как за 3 года  НАВЕРНЯКА  поменяется ритм рынка, и Ваша оптимизация может внести ложные данные в этот процесс.

 
Оптимизация за 10 лет ! впечатляет ! на мой взгляд, все зависит от количества сделок, а не от времени оптимизируемого периода. 1000 сделок вполне достаточно для определения и еще 500  форварда хватит чтоб определить перспективы.
 
dimeon:
Оптимизация за 10 лет ! впечатляет ! на мой взгляд, все зависит от количества сделок, а не от времени оптимизируемого периода. 1000 сделок вполне достаточно для определения и еще 500  форварда хватит чтоб определить перспективы.
Да, такой вариант очень надежен. Но здесь еще надо учитывать уровень стратегии: для внутридневных стратегий такие цифры вполне возможны, но для консервативных стратегий такие показатели фактически не выполнимы при любом раскладе, хотя по совокупной возможности они не будут уступать другим стратегиям.
Причина обращения: