rss

Профиль компании

Финансовые компании

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

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

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

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

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

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

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

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

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

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




  • обсудить на форуме:
  • TSLab
★10
22 комментария
лучшее враг хорошего.Отказался от фильтров и тому подобных оптимизаций.
avatar
DATSKIY, Ну если капуста итак рубится, то конечно. А иногда фильтр — это и есть стержень системы, а остальное — уточнение точки входа. Просто люди этого сами не понимают.
Это всё у вас гадание на кофейной гуще. Цена может совершенно случайно пойти не туда в 10 раз из 10, вероятность 1/1000 но это не так уж мало. Учите статистику. Критерий может быть только один — насколько маловероятно получить результат, который получился, совершенно случайным образом?
Zweroboi, 10 из 10 — да. 300 из 300 — нет. Или какая для вас статистически значимая выборка для исследования?
Павел Целищев, если 300 из 300 — поздравляю, коллега у вас мальчик грааль!
Zweroboi, речь шла о выборке из 300 сделок. 10 из 10 раз цена может спокойно пойти не туда, 300 из 300 уже нет. Я написал об этом. Если при переборе параметров, в большинстве исходов и при прочих равных количество положительных сделок превышает количество отрицательных — это ли не подтверждение наличия модели с положительным смещением? В статье речь вообще шла не о стратегии и ее крутизне. Я выдвинул гипотезу о том, что точку ВХОДА нельзя «переоптимизировать». И предложил к обсуждению именно это. Далее привел свои доводы в подтверждение этого. Я не претендую на истинность гипотезы (ведь это всего лишь гипотеза). Если вы не согласны с такой гипотезой, приведите свои доводы. Я буду только рад. Я за спор, в котором рождается истина, а не за отстаивание своей правоты и защиту эго.
Павел Целищев, это всё общие разговоры, без конкретных чиселок от стат тестов смысла в них мало. При прочих равных совершенно случайно можно получить, что что-то что-то превышает, вопрос всегда стоит количественно — насколько? Что происходит с рынком вне сделок, вдруг он и там растёт ну и т д. А переподогнать можно всё что угодно.

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

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

 

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

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

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

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

avatar
MegaZoiD, Ограничение по дневному ATR у меня стандартное и не является оптимизируемым параметром. Данный параметр мигрировал из ручной торговли. Не вижу смысла «сидеть в мертвом инструменте», психологически некомфортно. По этой причине отключил большинство своих стратегий по Ri, а оставшиеся питаются минимальным лотом, чтоб совсем интерес к инструменту не потерять и держать руку на пульсе. 
Павел Целищев, Прошу прощение за свое невежество, что значит «зафитить данные»

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

 

avatar
MegaZoiD, Стратегия не перестала работать совсем, стратегия стала работать хуже. Средства пошли в другие, более рентабельные стратегии и инструменты. Плюс ко всему я уже писал выше про психологическую составляющую. К тому же, «Рынок поменялся, модель перестала быть рабочей» — это вроде бы нормальное явление? Или есть «неумирающие» модели?
Павел Целищев, К тому же, «Рынок поменялся, модель перестала быть рабочей» — это вроде бы нормальное явление?

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

 

avatar
MegaZoiD, Боюсь, на рынке никто и никому не может дать никаких гарантий.) Вообще, немного отошли от темы в сторону стратегии. Хотя я хотел порассуждать о другом. Выше уже написал об этом в ответе Zweroboi. Я выдвинул предположение, что точку ВХОДА нельзя переоптимизировать. Привел какие-то доводы в ползу гипотезы. «Подгонка» параметров под рынок в точке входа — это и есть поиск оптимальной модели. Устойчивость модели и то, что скорее всего с найденными параметрами она не сможет показать себя столь же хорошо — вопрос второй. Вот эту гипотезу хотелось бы подтвердить. Ну или опровергнуть. Но почему то разговор упорно выходит в русло обсуждения конкретной стратегии, за которую мне приходится оправдываться…

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

 

 

avatar
MegaZoiD, Ради интереса сделал. Результат с января 2008 по сентябрь 2017. Оптимизируемый период был 2015-2016. Добавлена абсолютная комиссия 20п на круг. 

Далее, убрал все выходы, оставил только выход через k баров. Прогнал от 5 до 2000 минут. При удержании позиции больше 15 минут — все исходы положительные. Меньше — отрицательные, что так же считаю нормой в связи с большим количеством сделок(плата по комиссиям получается в 1,5-2 раза больше итогового результата)




Павел Целищев, Правильно понимаю что оригинальный таймфрейм стратегии 1 мин и при этом в течении первых 15 мин вам все равно что происходит с позицией? Насколько это корректно при Вашей постановке задачи? А почему не 45 мин например?  Если это 'импульсная' идея, те проблй канала волатильности, не должна ли цена сразу идти в нужном напралении?
avatar
yuryss, Опять вернулись к обсуждению стратеги… Это TSLab, от тайм фрейма тут зависит интервал пересчета скрипта(и корректность результатов тестирования), а значит и скорость постановки, изменения стопов, трейлингов и т.д. и т.п. Сама стратегия к тайм фрейму мало привязана. И да, стратегия отчасти импульсная, первые 15 минут важны. Проблема в том, что если обратить внимание на количество сделок при удержании позиции < 15 минут, видно как резко возрастает их количество. Это говорит о том, что просто происходят перезаходы по одному и тому же сигналу. В итоге заложенная комиссия в 20п все сжирает. При нормальном исполнении стратегии при достижении стопа сигнал теряет свою актуальность и перезахода не происходит. Тест выше был проделан на скорую руку, отсюда такое вот явление. 
Я понял что на вход должны быть зеркальные (одинаковые) условия шорт и лонг. Т.к большая вероятность подгона под падающий и растущий период рынка. Так же желательно отзеркалить условия на выход.
avatar
ICEDONE, У меня другая философия на этот счет. Характер движения вверх и вниз у большинства инструментов совершенно разный, это видно невооруженным глазом. Si в лонг — один инструмент, Si в шорт — совершенно другой. И я не вижу ни одной причины «зеркалить» стратегии. Ну а чтоб снизить вероятность подгонки под падающий, или растущий период, лучше всего использовать период данных, где есть и то и другое и боковик.

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

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

avatar

UPDONW
Новый дизайн