Почти у всех трейдеров, использующих в своей торговле алгоритмические системы, рано или поздно при оптимизации этих самых систем встает вопрос: «а не занимаюсь ли я подгонкой алгоритма под рынок, может он и не рабочий вовсе?» Эта мысль не раз возникала и у меня, и каждый раз я думал над тем, как понять где «полезная» оптимизация и поиск смещения вероятности, а где уже переоптимизация и подгонка под рынок. В итоге появились некоторые мысли, которые предлагаю к обсуждению. Итак, вот к чему я пришел.
Для начала предлагаю разделить весь процесс оптимизации на 2 основные части:
1. Оптимизация параметров, отвечающих за вход в позицию
2. Оптимизация параметров, отвечающих за выход из позиции (стопы, тейки, трейлы и т.д.)
И вот это вот деление, на мой взгляд, и дает ключ к ответу на вопрос «настройка, или подгонка?»
Разберемся по порядку. Чем мы занимаемся, когда оптимизируем параметры, отвечающие за точку входа?
И вот тут я смею утверждать, что в данном случае мы занимаемся именно поиском смещения вероятностей и увеличение числа положительных сделок будет как раз говорить о наличии какого-то смещения, нежели о подгонке под рынок. Почему я так считаю? А потому что сама суть поиска смещения вероятностей заключается именно в поиске такого соотношения рыночных условий, в результате которого на истории мы получали перевес. Переоптимизации тут не может быть по определению. Вот конкретные условия, при которых мы входили и вот конкретный результат, который мы получили. Положительный — хорошо, значит нашли смещение.
Но тут есть нюансы, которые могут бросать пыль в глаза.
И эти нюансы как раз связаны со второй частью оптимизации — это поиск оптимальных параметров на выход из позиции. Тут сразу оговорюсь, что речь о ценовых параметрах, т.е. я сейчас не говорю о реверсных системах, или системах, где для выхода используется так же сигнал, или паттерн, аналогичный сигналу на вход. Ценовые параметры — это размер стопа, размер тейка, параметры трейлинга и другие приемы мани-менеджмента. Именно в них, на мой взгляд, может крыться подвох, который делает красивую линию эквити из системы с нерабочей идеей. И это довольно просто доказать, взяв набор случайных входов и прогнав оптимизацию по тейку, стопу и тп. Почти наверняка найдется такое сочетание параметров, которое покажет неплохие результаты. И вот этот фокус и может сыграть с нами злую шутку, спрятав от нас изъяны системы.
Я сейчас не призываю отказаться от оптимизации этих параметров.
Нет, это тоже важная вещь, но сначала нам надо убедиться, что основная идея у системы есть и она работает. Кстати, справедливости ради, надо сказать, что в самом принципе управления выходом из позиции может крыться смещение вероятности, которое в итоге на реале может «вытянуть» плохую систему. И даже вроде бы есть такие системы, основанные исключительно на мани менеджменте. Но сейчас я не об этом). Так как же нам понять, что идея нашей торговой системы рабочая, что мы нашли смещение вероятности? Очевидно, надо каким-то образом избавиться (на время) от ценовых параметров выхода из позиции. Нам ведь что интересно? Как мы поймем, что смещение есть? Да очень просто, цена, после входа в позицию, сразу или через время должна пойти в нашу сторону. Неважно насколько, не важно каким образом (импульсно, постепенно, с задёргами, или без), но она чаще должна идти в нашу сторону. Это и будет означать наличие смещения вероятности. Т.е. мы будем знать, что сейчас больше шансов, что пойдет туда-то. Осталось только как-то это отследить.
И тут я предлагаю такой вариант: нам просто надо фиксировать позицию через определенное время. Если получим убедительный плюс — смещение есть! Тут важно только понять, а сколько держать?.. Ну вот тут есть элемент интуиции и понимания своей системы. Все согласно тайм фрейма и идеи. Я проверил пару своих идей так: прикинул средний размер движения, которое планирую брать в системе, прикинул его продолжительность (минимальную и максимальную) и провел оптимизацию по времени удержания позиции от минимального до максимального (взял с запасом от 5 до 1500 минут). Поразительно, но 99% исходов оказались в положительной зоне. Число выигрышных сделок варьировалось от 50% до 65% по всей сетке, профит фактор от 1.3 до 2 (за исключением пары исходов) Т.е. 6 из 10 раз цена шла в мою сторону, да к тому же на расстояние в полтора-два раза больше, чем когда цена шла против меня… И всего 2 отрицательных исхода… 5 и 10 минут (видать, система не скальперская:) ) Неважно как, неважно насколько, цена шла в мою сторону! Вот оно смещение) Теперь бояться нечего, можно и второй частью оптимизации заняться, высосать из системы по максимуму!
«6 из 10 раз цена шла в мою сторону, да к тому же на расстояние в полтора-два раза больше, чем когда цена шла против меня… И всего 2 отрицательных исхода…»
Вот этот результат Out-of-Sample получен, я надеюсь?
Собственно, вот ответ на все вопросы. Это не RI умер, а вы зафитили данные (и на вход и на выход). И вам просто повезло, что стратегия проработала полгода.
Это значит, что вы подобрали стратегию под определенные данные, а не нашли «модель» в данных, которая сохраняла бы св-ва long-term. Поэтому, когда Ri сменил режим (стал «мертвым» по вашим словам), у вас стратегия перестала работать.
Это явление нормальное, при условии, что в период, когда она была рабочей, вы заработали больше, чем потеряли, когда она перестала быть рабочей, с учетом дисконтирования по ставке банковского депозита. Но кто даст гарантию, что это условие будет статистически выполняться с +ve ожиданием для всех стратегий на дистанции?
Павел Целищев, в общем сделайте Out-of-Sample test, желательно на длительном периоде, который бы включал в себя кризис 2008 года. Тогда в первом приближении будет понятно, верна ваша гипотеза или нет. По моему опыту, переоптимизировать можно все что угодно.
Далее, убрал все выходы, оставил только выход через k баров. Прогнал от 5 до 2000 минут. При удержании позиции больше 15 минут — все исходы положительные. Меньше — отрицательные, что так же считаю нормой в связи с большим количеством сделок(плата по комиссиям получается в 1,5-2 раза больше итогового результата)
Проверка на кси квадрат или любая другая стат. проверка входных величин даст понимание где есть «подгонка», а где ее нет.
Пример на пальцах. Вы имеете 2 параметра — расстояние до мувинга и количество падающих дней. Проверяете на кси квадрат оба показателя. Если результаты проверки говорят о том, что влияние обоих параметров мало или малозначимо — скорее всего хороший результат будет исходом подгонки. Если один параметр имеет высокий уровень значимости, а второй — в разы более низкий, то его оптимизировать просто не нужно. Скорее всего этим вы получите переподгонку в той или иной степени.