Блог им. Saro
Приветствую!
Заранее прошу прощения за ошибки в тексте. иногда залипает буква «о» и приходится ее копипастом печатать.
Хотелось бы подискутировать на тему оптимизации. Много трейдеров, находятся в нескончаемых поисках лучших параметров для своих стратегий, и ставят оптимизацию, выше чем саму суть алгоритма и трейдинга. Лично сам я, крайне редко прибегаю к оптимизации. И не важно какой крутой бы не был тестер. с бэктестингом или форвард, 3д графики и различные коэффициенты — это все, не так будет важно при попытках переоптимизировать и подогнаться под график.
Смысл всей оптимизации, под имеющиеся данные — найти наилучший результат. это по сути — просто статистика. Да мы можем подставить наоптимизированные цифры в новую история (форвард) и тем самым сделать вывод типа и на истории хорошо и на новых данных тоже хорошо, вот только гарантии, что онлайн — будет так же, нет никакой, если мы в самом алгоритме, не учли возможные изменения в рынке.
Нет речи о создании, конечно, грааля. Приведу пример: например парный трейдинг в классике, пара газпром/лукойл. торгуем себе от соотношения пары 8-9, а потом бац и разрыв уходит до 6 потом до 3 и все, что мы там и как бы не оптимизировали — рынок уже другой. Взять ртс. до 2008года потом до 2011 потом до 2014 — абсолютно разная бумага. Это нужно понимать и не делать оптимизацию на 15 лет и думать, что если все гладко, то у нас грааль.
Конечно все это выбор каждого, потому расскажу в каких случаях я прибегаю к оптимизации.
Пример 1
Алгоритм по паттернам. у каждого они свои. условно смотрю на величину бара на минутке, 5, 10 и 15, а так же их объемы.
Следущим шагом я в алгоритме указываю минимальные значения которые готов рассматривать и максимальные. Далее идут в оптимизацию и смотрю — какие есть варианты.
Сортирую по лучшему доходу и смотрю — ага, есть 100результатов из них есть варианты с большой частотой сделок и маленькой — доход соразмерен. Логичен ли для меня/алгоритма вариант с малой частотой сделок или наоборт? Дальше анализирую сами параметры. если их разброс очень сильный при соразмерных результатах — то нужно проверить на истории подлиннее. В идеале конечно останется несколько близких результатов и это можно будет просто в часть диверсификации алгоритма впихнуть.
Дальше оцениваю наихудшие результаты. опять же не для галочки — а чтобы рассмотреть при каких параметрах — так случается. ввиду это случайностей или нелогичности таких параметров. возможно не хватает каких либо фильтров и тд. но чаще всего, естественно, дело в слишком неподходящих параметрах для данного алгоритма.
Смотрю ли я на гладкость эквити или коэффициенты? практически нет. Редко удается в трендовом алгоритме, с малой частотой сделок, построить ровную эквити. это нужно понимать и не пытаться накрутить параметры ради подобной цели.
Так же например если я проверяю доп фильтрацию.
к этому же алгоритму добавил индикатор и смотрю, какой эффект он оказывает. какие сделки убирает. Например короткий период более подходящий или длинный период индикатора. и тд итп. как либо проверить это по другому просто невозможно!
Замечу, что при этом я не прогоняю все параметры оптимизации — а лишь добавленный индикатор, так как мне важен его анализ, а не красивый результат.
П.С. никого не отговариваю и никого не призываю к отказу от оптимизации.
Я считаю, что оптимизация в ТСЛаб — это мощный инструмент статистики и если к обработке данных под свою стратегию подходить в рамках логики самой стратегии, то оптимизация не такой уж и враг, а хороший помощник. Очень много трейдеров статистику обрабатывают в ручную)
А красивая эквити достигается путем риск-менеджмента — это логики работы стоп-лосса и необходимости перевода в БУ, а также трейла, который для роботов можно делать с любыми логиками, которые невозможно осуществить вручную.
Единственно рабочий метод наруливания стратегии — это статистика. И критерием должно быть не макс прибыль, и даже вообще не прибыль.
Что должно быть — эт не знаю, т.к. для разных даже функциональных узлов стратегии могут быть свои критерии. На этот вопрос нет однозначного ответа и выбор метода решается конкретной статистикой на истории.
Согласен, что не рабочий метод можно на истории сделать рабочим за счет грамотного сопровождения позиции и оптимизация будет просто подгонка. И результаты у этого «не рабочего» метода будут в любом случае слабыми, неустойчивыми и т.д.
Но когда метод показывает хорошие результаты и без оптимизации, и, например, если торговля ведется от зон с высокими объемами, по сигналам с определенными параметрами (объем, размер бара и т.д.), то на истории под конкретный инструмент можно определить оптимальные параметры (объем, размер бара, проход цены и т.д.), то это уже можно назвать статистика, т.к. определили рабочие параметры нашей торговой системы к определенному инструменту.
Если он нерабочий, то никакая подгонка его не реанимирует.
Я вообще не понимаю что такое нерабочий метод.
Или метод логически обоснован и он есть, или его попросту нет.
А логика тут в чём? Мне кажется такой подход (запрячь в одну телегу коня и трепетную лань без попытки их «синхронизировать») хуже, чем переоптимизация. Перегнул чуток, но вы поняли.
Могу согласиться с подходом, когда индикатор применяется просто как фильтр — ну тогда можно, конечно, посмотреть чего от него больше, вреда или пользы. При таком подходе можно оптимизировать отдельно параметры индикатора.
И всё же считаю, что лучше потом окончательно оптимизировать ВСЕ параметры совместно. Ну просто не понимаю почему нет!
Опасность переоптимизировать?
Ну так не надо ПЕРЕ, надо просто оптимизировать ))
Про предварительный подбор фильтра я б и не отвечал.
О, кстати, пришла в голову мысль как определять периоды оптимизации и форварда (давно была, но сообразил чего надо проверить). Пошел советоваться с другом-программистом и искать математика. )
А стратегия по любому живет недолго — 1-2 года. Рынок меняется. И настраивать на большой истории нет смысла. Ловите плюшки которых уже давно нет и оптимизируюте под все сразу. Усредняетесь под все сразу. В результате большую часть сегодняшних реалий просто пропускаете мимо.
1. Определяем принципы стратегии. Какие конкретно статистические свойства будет использовать.
2. на модели все это прогоняем, и уточняем свойства и их статистику. Прибыль не является главным критерием. Скажем, если удачная сделка, даже с большой прибылью выпадает из общей статистики, мы уточняем статистику, чтобы этой сделки не было, не совершалась.
2. Дальше тест не менее 100-300 сделок, и можно переделывать систему под реал.
Обычно хорошо себя показывает. Отклонение на реале ~20-25%.
Т.е., мы оптимизируем не макс прибыль, а условия входа в сделку под максимум распределения удачных сделок в стратегии, независимо от их прибыльности.
Как-то так.