Предложение разработчикам. Борьба с подгонкой внешних параметров советников на исторических данных - страница 4

 

Допустим, у Вас есть советник, оптимизированный на промежутке Т1 и есть желание выяснить, будет ли он прибыльно работать на последовательно расположенных промежутках Т2, T4, Tn.


Для этого достаточног прогнать советника на промежутке (Т1 - Тn) с параметрами, подогнанными при оптимизации на T1. Если советник прибылен на каждом из промежутков, график балланса будет выглядеть примерно так:



                                                                                          *   *

                                                                              *   *

                                                                         *

                                                    *    *       * 

                                 *    *       *               * 

                          *               *

            * *      *

   *             *

*


Этот способ, конечно фигня, по сравнению, с идеей, продвигаемой Reshetov.

Однако, если советник реализует идею, в которой "что-то есть",  то при оптимизации, в 3-4 тысячах прогонах с положительным баллансом, наверняка выделятся группы близких по значению параметров.

Предположу, что таких групп будет примерно от 2 до 10. 

И вот их-то (по 2-5 значений из каждой группы):

                    во-превых реально (и достаточно быстро) визуально проконтролировать по графику балланса

                    во-вторых - полезно визуально проконтролировать по графику балланса

 

Упс. Тема, которой я раньше не видел, и чем-то подобным я и сам заморочен. Жаль, что ссылка на Бакеева не работает. Кто-нибудь из уважаемых участников ветки смог бы скинуть мне этот файл по адресу, указанному в профиле? Спасибо.

 
вот http://www.forum.x-trade.com.ua/viewtopic.php?t=690&sid=0a85b388ae8b977ed5cc74133833f1b1 - только кажется, что ерунда это всё. Ну то есть, борьба с "подгонкой" представляется странным делом. С одной стороны идут поиски закономерностей, неслучайных и постоянно меняющихся, на которых можно поиметь профит. С другой стороны отвергается сама идея эксплуатации найденных закономерностей. Хотя, идея о том, что форвард тесты ничего не привносят в процесс оптимизации - очень хорошая и верная.
 
Самый простой способ это самостоятельные критерии оптимизации. То же форвард тестирование можно заменить (смоделировать) численным критерием вычисляемом по результатам (сделкам) конкретного прогона оптов. Переоптимизацию - анализом сделок по разным наборам оптов. Все что нужно - это программный доступ к сделкам прогонов. Единственный недостаток - излишний объем прогонов, что решается добавлением программного управления тестированием. С другой стороны, получив полный объем тестирования не потребуется дополнительных прогонов.
 

Спасибо, Hide.

Правильное, исчерпывающее тестирование - сложный, многоступенчатый процесс, ни в коем случае не сводящийся к одному только тестированию на OOS. Мне очень понравилась вот эта статья, в которой исследуется еще одна грань процесса, никак не отражаемая в тестере (и особенно актуальная именно сейчас, при резко возросшей волатильности рынкета).

С другой стороны, идея Бакеева (как я ее понял из этой ветки, еще не читав статьи) хороша тем, что распределение returns после перемешивания баров остается неизменным. Это надо взять на заметку.

 

Согласен, про статью. Сам нечто подобное пытаюсь использовать. Только у меня 100% реквот, который вносит случайную задержку в предоставление ответа. Диапазон случайных величин зависит от времени суток. А бакеевские идеи, они не хуже того, что бы просто взять некий синтетический ряд чисел (это если конечно речь идет о тестировании на уровне тиков, а не баров). Самое интересно в самом конце pdf.

 
HideYourRichess >>: Только у меня 100% реквот, который вносит случайную задержку в предоставление ответа.

100% - это полная блокировка торговли. Значит, у тебя не 100%, если ответ все-таки приходит.

 
Имеется ввиду, что на каждый запрос операции приходит ответ, но с задержкой. Идея то проста. В жизни ведь как происходит. Ты послал запрос на котировку, получил через некоторое время ответ, пока в носу ковырял-кнопки нажимал, опять какое то время прошло. А суммарно, если посмотреть, то от момента когда у тебя возник сигнал на операцию и когда выполнена сама операция проходит время, и цена уже совсем не та. При тестировании на "все тики" это значит что нужно брать не тот тик на который показала МТС, а немного позже (зависит от времени суток и ещё много чего). Другими словами, правильнее было бы это назвать не моделированием реквотов, а внесение случайной задержки в выполнение. Такая простая мера убивает наповал почти все стратегии. :) Речь конечно идет о стратегиях с малыми целями, не "долгосрочных". Понятно, что всё то время, пока МТС "ждет реакции сервера" сама МТС торговать не может.
 
HideYourRichess >>: Другими словами, правильнее было бы это назвать не моделированием реквотов, а внесение случайной задержки в выполнение. Такая простая мера убивает наповал почти все стратегии. :) Речь конечно идет о стратегиях с малыми целями, не "долгосрочных".

Ну да, еще один камешек в огород оптимистов пипсаторов. А как это назвать - какая разница, если итог все одно тот же. Большое спасибо kniff'у за статью, которую я все-таки увидел, хоть и относительно недавно.

 

Mathemat >>:

Упс. Тема, которой я раньше не видел, и чем-то подобным я и сам заморочен. Жаль, что ссылка на Бакеева не работает. Кто-нибудь из уважаемых участников ветки смог бы скинуть мне этот файл по адресу, указанному в профиле? Спасибо.

не заморачивайся, Алексей. Идея выеденного яйца не стоит...

kamal >>:
Пример. Пусть вы придумали алгоритм, оптимизировали на реальной истории получили прибыль 100% годовых макспросадку 50% (можно конечно оперировать и в каких-то других терминах). Далее вы запустили оптимизацию на псевдоистории и лучшие параметры показали 90% годовых при 60% просадки. Запустили на еще одной псевдоистории и получили 120% годовых при 56% просадки. Еще несколько раз прогнали разные псевдоистории - и поняли, что широта оптимизации дает даже на мартингале/сб результаты вроде тех что Вы получили на реальной истории, а значит алгоритм не заслуживает доверия.

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

А вот про реквоты действиельно неплохо... Я бы еще добавил случайное (или не совсем случайное) увеличение минимальной дистанции и спрэдов...