Павел Целищев
Павел Целищев Блог компании Marketstat
07 ноября 2017, 11:38

Оптимизация или подгонка?

Почти у всех трейдеров, использующих в своей торговле алгоритмические системы, рано или поздно при оптимизации этих самых систем встает вопрос: «а не занимаюсь ли я подгонкой алгоритма под рынок, может он и не рабочий вовсе?» Эта мысль не раз возникала и у меня, и каждый раз я думал над тем, как понять где «полезная» оптимизация и поиск смещения вероятности, а где уже переоптимизация и подгонка под рынок. В итоге появились некоторые мысли, которые предлагаю к обсуждению. Итак, вот к чему я пришел.

Для начала предлагаю разделить весь процесс оптимизации на 2 основные части:
1. Оптимизация параметров, отвечающих за вход в позицию
2. Оптимизация параметров, отвечающих за выход из позиции (стопы, тейки, трейлы и т.д.)
И вот это вот деление, на мой взгляд, и дает ключ к ответу на вопрос «настройка, или подгонка?»

Разберемся по порядку. Чем мы занимаемся, когда оптимизируем параметры, отвечающие за точку входа?

И вот тут я смею утверждать, что в данном случае мы занимаемся именно поиском смещения вероятностей и увеличение числа положительных сделок будет как раз говорить о наличии какого-то смещения, нежели о подгонке под рынок. Почему я так считаю? А потому что сама суть поиска смещения вероятностей заключается именно в поиске такого соотношения рыночных условий, в результате которого на истории мы получали перевес. Переоптимизации тут не может быть по определению. Вот конкретные условия, при которых мы входили и вот конкретный результат, который мы получили. Положительный — хорошо, значит нашли смещение.

Но тут есть нюансы, которые могут бросать пыль в глаза.

И эти нюансы как раз связаны со второй частью оптимизации — это поиск оптимальных параметров на выход из позиции. Тут сразу оговорюсь, что речь о ценовых параметрах, т.е. я сейчас не говорю о реверсных системах, или системах, где для выхода используется так же сигнал, или паттерн, аналогичный сигналу на вход. Ценовые параметры — это размер стопа, размер тейка, параметры трейлинга и другие приемы мани-менеджмента. Именно в них, на мой взгляд, может крыться подвох, который делает красивую линию эквити из системы с нерабочей идеей. И это довольно просто доказать, взяв набор случайных входов и прогнав оптимизацию по тейку, стопу и тп. Почти наверняка найдется такое сочетание параметров, которое покажет неплохие результаты. И вот этот фокус и может сыграть с нами злую шутку, спрятав от нас изъяны системы.

Я сейчас не призываю отказаться от оптимизации этих параметров.

Нет, это тоже важная вещь, но сначала нам надо убедиться, что основная идея у системы есть и она работает. Кстати, справедливости ради, надо сказать, что в самом принципе управления выходом из позиции может крыться смещение вероятности, которое в итоге на реале может «вытянуть» плохую систему. И даже вроде бы есть такие системы, основанные исключительно на мани менеджменте. Но сейчас я не об этом). Так как же нам понять, что идея нашей торговой системы рабочая, что мы нашли смещение вероятности? Очевидно, надо каким-то образом избавиться (на время) от ценовых параметров выхода из позиции. Нам ведь что интересно? Как мы поймем, что смещение есть? Да очень просто, цена, после входа в позицию, сразу или через время должна пойти в нашу сторону. Неважно насколько, не важно каким образом (импульсно, постепенно, с задёргами, или без), но она чаще должна идти в нашу сторону. Это и будет означать наличие смещения вероятности. Т.е. мы будем знать, что сейчас больше шансов, что пойдет туда-то. Осталось только как-то это отследить.

И тут я предлагаю такой вариант: нам просто надо фиксировать позицию через определенное время. Если получим убедительный плюс — смещение есть! Тут важно только понять, а сколько держать?.. Ну вот тут есть элемент интуиции и понимания своей системы. Все согласно тайм фрейма и идеи. Я проверил пару своих идей так: прикинул средний размер движения, которое планирую брать в системе, прикинул его продолжительность (минимальную и максимальную) и провел оптимизацию по времени удержания позиции от минимального до максимального (взял с запасом от 5 до 1500 минут). Поразительно, но 99% исходов оказались в положительной зоне. Число выигрышных сделок варьировалось от 50% до 65% по всей сетке, профит фактор от 1.3 до 2 (за исключением пары исходов) Т.е. 6 из 10 раз цена шла в мою сторону, да к тому же на расстояние в полтора-два раза больше, чем когда цена шла против меня… И всего 2 отрицательных исхода… 5 и 10 минут (видать, система не скальперская:) ) Неважно как, неважно насколько, цена шла в мою сторону! Вот оно смещение) Теперь бояться нечего, можно и второй частью оптимизации заняться, высосать из системы по максимуму!
Модернизация скрипта для проверки
Результаты оптимизации




22 Комментария
  • DATSKIY
    07 ноября 2017, 12:15
    лучшее враг хорошего.Отказался от фильтров и тому подобных оптимизаций.
  • Пафос Респектыч
    07 ноября 2017, 12:52
    Это всё у вас гадание на кофейной гуще. Цена может совершенно случайно пойти не туда в 10 раз из 10, вероятность 1/1000 но это не так уж мало. Учите статистику. Критерий может быть только один — насколько маловероятно получить результат, который получился, совершенно случайным образом?
      • Пафос Респектыч
        07 ноября 2017, 14:49
        Павел Целищев, если 300 из 300 — поздравляю, коллега у вас мальчик грааль!
          • Пафос Респектыч
            07 ноября 2017, 15:29
            Павел Целищев, это всё общие разговоры, без конкретных чиселок от стат тестов смысла в них мало. При прочих равных совершенно случайно можно получить, что что-то что-то превышает, вопрос всегда стоит количественно — насколько? Что происходит с рынком вне сделок, вдруг он и там растёт ну и т д. А переподогнать можно всё что угодно.
  • Siryoyo
    07 ноября 2017, 12:53

    «6 из 10 раз цена шла в мою сторону, да к тому же на расстояние в полтора-два раза больше, чем когда цена шла против меня… И всего 2 отрицательных исхода…»

    Вот этот результат Out-of-Sample получен, я надеюсь?

     

      • Siryoyo
        07 ноября 2017, 13:51

        Павел Целищев, 

        Более того, стратегия работала на реале и в течение полугода повторяла характер эквити. Пока RI совсем не умер. В какой-то момент сделки просто перестали открываться, т.к. ATR стал неприлично мал.

        Собственно, вот ответ на все вопросы. Это не RI умер, а вы зафитили данные (и на вход и на выход). И вам просто повезло, что стратегия проработала полгода.

          • Siryoyo
            07 ноября 2017, 14:40
            Павел Целищев, Прошу прощение за свое невежество, что значит «зафитить данные»

            Это значит, что вы подобрали стратегию под определенные данные, а не нашли «модель» в данных, которая сохраняла бы св-ва long-term. Поэтому, когда Ri сменил режим (стал «мертвым» по вашим словам), у вас стратегия перестала работать.

             

              • Siryoyo
                07 ноября 2017, 14:58
                Павел Целищев, К тому же, «Рынок поменялся, модель перестала быть рабочей» — это вроде бы нормальное явление?

                Это явление нормальное, при условии, что в период, когда она была рабочей, вы заработали больше, чем потеряли, когда она перестала быть рабочей, с учетом дисконтирования по ставке банковского депозита. Но кто даст гарантию, что это условие будет статистически выполняться с +ve ожиданием для всех стратегий на дистанции?

                 

                  • Siryoyo
                    07 ноября 2017, 15:41

                    Павел Целищев, в общем сделайте Out-of-Sample test, желательно на длительном периоде, который бы включал в себя кризис 2008 года. Тогда в первом приближении будет понятно, верна ваша гипотеза или нет. По моему опыту, переоптимизировать можно все что угодно.

                     

                     

                      • yuryss
                        07 ноября 2017, 22:57
                        Павел Целищев, Правильно понимаю что оригинальный таймфрейм стратегии 1 мин и при этом в течении первых 15 мин вам все равно что происходит с позицией? Насколько это корректно при Вашей постановке задачи? А почему не 45 мин например?  Если это 'импульсная' идея, те проблй канала волатильности, не должна ли цена сразу идти в нужном напралении?
  • ICEDONE
    07 ноября 2017, 13:31
    Я понял что на вход должны быть зеркальные (одинаковые) условия шорт и лонг. Т.к большая вероятность подгона под падающий и растущий период рынка. Так же желательно отзеркалить условия на выход.
  • day0markets.ru
    07 ноября 2017, 14:04

    Проверка на кси квадрат или любая другая стат. проверка входных величин даст понимание где есть «подгонка», а где ее нет. 

    Пример на пальцах. Вы имеете 2 параметра — расстояние до мувинга и количество падающих дней. Проверяете на кси квадрат оба показателя. Если результаты проверки говорят о том, что влияние обоих параметров мало или малозначимо — скорее всего хороший результат будет исходом подгонки. Если один параметр имеет высокий уровень значимости, а второй — в разы более низкий, то его оптимизировать просто не нужно. Скорее всего этим вы получите переподгонку в той или иной степени. 

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн