Блог им. AleksandrBaryshnikov

Как умирают стратегии

    • 14 августа 2023, 14:02
    • |
    • bascomo
  • Еще
Когда я написал первого своего успешного робота, который торговал акциями на MOEX, я вообще не задумывался о том, что он может перестать работать. Это было тем, что психологи называют «жить здесь и сейчас» (привет гештальт-терапии и Перлзу лично), а некоторые другие категории персонажей «быть в моменте». Однако, ничто не вечно под этим небом.

А потому, когда пришло осознание, что любая стратегия рано или поздно умрёт — любая из тех, что мне интересны в силу своей высокой доходности — то хорошо бы решить несколько задач:
  • создавать стратегии автоматизированно и без моего участия (что было сделано на отлично)
  • детектировать момент увядания стратегии, чтобы своевременно её отключить, не дожидаясь трупа и всех прелестей разложения слива  выделенной на неё доли депозита
Я много раз подступался к последней задаче, с разных сторон, и неизменно приходил к одним и тем же результатам.

По моему мнению, в (алго)трейдинге вопрос определения момента — когда стратегия перестала работать — один из самых важных. Написана туева хуча книжек о том, как торговать, как строить стратегии, как торговать ими вручную или писать роботов. Но я нигде и никогда не видел методик и рекомендаций, которые относятся к теме поста. Хотя, справедливости ради, сотни книг я не читал.

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

Но к нашим баранам.
Давайте посмотрим на несколько картинок.
Буду использовать пример на основе акций Сбера в последние месяцы.

Вот график Equity молодой стратегии. Она пока ещё растёт, набирает свою силу.
Как умирают стратегии

Вот эта уже прожила свои «лучшие годы», и её звезда катится к горизонту.
Как умирают стратегии
Ещё пример:
Как умирают стратегии

А эта, очевидно, издохла и уже пованивает.
Как умирают стратегии

У этой открылось второе дыхание:
Как умирают стратегии

Глядя на графики, мне приходит в голову мысль сгладить кривую Equity скользящей, а затем ловить момент, когда её производная перевернётся. Так себе идея.

Можно посчитать квадратные или кубические разницы отклонений между идеальной Equity (EtalonSTD) и реальной (чёрная линия, SBER). Но такую метрику, скорее, лучше использовать для оценки гладкости кривой Equity. Максимальная просадка — это показатель из той же оперы, но он совсем примитивен и нерелевантен, как по мне. Можно считать только отрицательные отклонения, что ещё лучше.

Можно вместе с кривой Equity нарисовать ломаную кривую максимальной достигнутой доходности (MaxSTD). Число касаний Equity к MaxSTD тоже определяет качество стратегии — чем оно больше, тем стратегия лучше. Его можно перевести в %, разделив число касаний на число сделок. Уже что-то. Но тоже не говорит, что стратегия перешла к фазе своего заката. Хотя тут зависит, на что смотреть.

Обратите внимание на графики, где стратегии перестали зарабатывать или стали убыточными. Видно, что у них MaxSTD перестал расти. Поэтому можно взять среднее время приращения MaxSTD на фазе роста и проверять, как давно Equity не обновляла свой High. Этот метод, на данный момент, я считаю наиболее эффективным.

Но от чёрных лебедей он не спасёт — может случиться вот такое:
Как умирают стратегии

Однако, для этого у нас есть диверсификация и управление капиталом. Я склонен думать, что такие ситуации будут всегда. Но ведь и лекарство известно.

Поэтому, если у вас много стратегий, то теперь есть и инструмент, с помощью которого формально, а не интуитивно, можете отправлять свои стратегии в пансионат для престарелых.

Напоследок хочу вот что сказать: если стратегия умерла — возможно, это не навсегда. Так что иногда стоит заглядывать в свой пансионат, и смотреть, что там происходит. Лично я делаю это на регулярной основе.

Ещё пофантазируйте вот над чем: что будет, если вы консолидируете графики, к примеру, сотни стратегий, где таких, как на первой картинке, будет 90%, а остальных — 10%? У меня за счёт таких манипуляций кривая Equity стала куда более гладкой, а ещё меня примерно совсем перестали волновать просадки. Понимаете, почему?

Хорошего вам дня.
★4
75 комментариев
Нетрейдер, был бы ответ, а что с ним делать — разберёмся ;)
avatar
может не стратегия умирает а фаза рынка меняется? почему бы не сделать балансера который динамично выделяет балансы в зависимости от производительности стратегии ? 
avatar
FrBr, чтобы упростить. Динамическое управление капиталом — задача на порядок сложнее.
avatar
bascomo, управление сайзом завтрашнего дня по сегодняшнему дню ухудшают стратегию.
avatar
22022022, это надо массово потестировать. И вообще сайз должен определяться перед каждым входом, если этот подход использовать.
avatar
FrBr,  Может на балансер нужен, а искать причину в стратегии?
avatar
monomah, лучшая стратегия — вход в конце коррекции… тк далее новый тренд (импульс из 5 волн Эла). Про импульс (тренд ) есть много граалей= правил.
avatar
FrBr, фаз рынка 8. Это 1-2-3-4-5-а-в-с. А ты глазастик.Но, надо и ВА Эллиота подучить.Увеличиваем участие только в 3й волне.Главное — размер учатия зависит от тайма и размера фрактала (считаем свечи в фрактале).
avatar
Нетрейдер, зависит от ответа :)
avatar
bascomo, Странно… все ваши стратегии прекратили существование через полтора месяца и прекратили работать на растущем тренде. Сбер как раз и рос в этот период с июня
Получается что эти все стратегии были созданы в июне и не имеют истории, но эти стратегии на растущем тренде у сбера должны были вам принести огромную прибыль но сейчас на растущем тренде вдруг стали сливать… что то тут не вяжется у вас

И второй вопрос меня интересует… случайно не на этих стратегиях вы обещали с $1000 сделать $441000 за 90 дней когда об этом говорили как раз тоже в июне? Уже есть результат или уже всё?
avatar
MoscowTrader, жду, когда вы устанете регистрировать новые аккаунты и меня комментировать :)

А так же лайкать самого себя. Вообще, знаете, лайкать самого себя — это выглядит примерно как кот, вылизывающий свои яйца :)
avatar
Нетрейдер, некоторые идеи я тут озвучил: Как я распределяю капитал по позициям (smart-lab.ru)
avatar
Вы совершаете множество сделок. А как вы учитываете комиссии и налоги? E Вас не получается что после налогов Вы фиксируете убыток?
avatar
Максим, Equity очищена от комиссий. Ставка налога фиксирована. Где тут проблемы? Смотрите, по Сберу доход с 1.06 по сегодня 33,81 на акцию. х10 на лот. Цена сейчас 267. 78% получается за 2,5 месяца. Это выше 13-15%.

Ну или я что-то неправильно посчитал :)

ps ну да, 338 / 2670 = 12%. Но смотреть нужно за год, это должно быть примерно 60%.
avatar
Нетрейдер, я бы попробовал набрать пул трендовых и конттрендовых (флетовых стратегий) раздал бы каждой равный депозит и потом в зависимости от серии успешной — неуспешной сделки резал бы лимиты(срезаный лимит поступает в общий пул с которого кормятся все). Балансер бы сводил бы все это в единую позу и через балансер бы выставлялись заявки. Ну это так — идея   
avatar
FrBr,  трендовые и контрендовые стратегии должны быть в одной стратегии иначе получается, что ваша трендовая точно не сможет определить тренд если не видит контренд
avatar
monomah, знаешь как определить фазу рынка? Тренд? Коррекция? Ты гуру? Сложно выражаешься.Про перекрытие волн знашь? Оно и кажет фазу рынка.Перекрытие на свечах = L-ref(H,-2)   для роста. Почему -2, а не -3 или еще как я не скажу тк это грааль.
avatar
Нетрейдер, ну наверное, протестировать на большом участке истории, который включает в себя все фазы рынка и посмотреть как стратегия справляется с неблагоприятными для себя периодами. Если в эти периоды сливает умеренно, то принять это как факт и не считать в такие периоды что система сломалась, а просто находится в плановой просадке.
Нетрейдер, не так важна длина истории как то что должна включать в себя все фазы рынка — тренд, флет, волатильный флет.
JC-trader ☮, длина истории тоже важна как и то что вы написали. Вырывать из «контекста» истории куски не логично
avatar
monomah, естественно
мне оч понравился на эту тему скрин, примерно из 2015 года, назывался он примерно «как умирают hft стратегии», автор secret. Там прям жизненно )
avatar
Андрей К, так прикрепите :)
avatar

bascomo, смысл там примерно такой. После загогулины, надо срочно выключать )



avatar
Андрей К, в моём случае — не выключать, а переключать на другую :)

Это весьма существенная разница :)
avatar
Андрей К, ну HFT имхо это немного другая сфера
avatar
FrBr, собака тут зарыта в том, что не бывает абсолютно трендовых и абсолютно контртрендовых стратегий, а вот смешанные точно бывают. Поэтому то разделение, которое мы применяем к рынку — тренд и контртренд — не всегда справедливо применять по отношению к стратегиям, которые на нём работают.

И потом, для контртрендовых будут длинные серии успешных и короткие — неуспешных, а для трендовых — наоборот.
avatar
Нетрейдер, определились с диапазоном тестирования — начинаем тест стратегии. Смотрим общий результат и результаты на разных фазах рынка.
Нетрейдер, эти данные вообще не нужны, разве что для «академических исследований». Нужен график эквити, полученный при тестировании стратегии и бенчмарк для сравнения.
чем меньше параметров оптимизации тем бльше стабильность...

вообще у мя есть бот на 1ом параметре от 2010г торгую им досих пор
avatar
ves2010, а у меня 0 параметров :)
avatar
bascomo, у средней цены закрытия  параметр — это период… mov(C,13,S) 
avatar
ves2010, У автора пять параметров и указаны справа в верхнем углу и все одинаковые на всех стратегиях. Не совсем понятно почему они все дают разные результаты
avatar
monomah, это не параметры, а результаты. 5 кривых, что на графике
avatar
bascomo,  кривые же строятся на параметрах
avatar
monomah, первая кривая — это стратегия, у которой нет параметров, а остальные — производные от неё, они её описывают для анализа.
avatar
bascomo,  У стратегии в любом случае есть параметры. Например H и L или C или средняя от этих трех. Или индикатор, а у индикатора полюбому есть параметры
avatar
monomah, с этой точки зрения параметры есть у всего. Но есть другая точка зрения — что параметры — это то, что можно подстраивать и подстраивается в процессе настройки стратегии. Так вот таких параметров у меня нет. Я ничего не подстраиваю. Либо созданная стратегия работает «как есть», либо не работает. Никаких подстроек на уровне отдельной стратегии.

Какие стратегии напихать в портфель и как между ними распределить капитал — такого рода «подстройки» есть, да. Но это другое.
avatar
bascomo, Я о том, что подстроить цену невозможно, как и хай и лоу, но если эти параметры есть в стратегии то с помощью них можно менять стратегию в зависимости от того, какие реперные(пики и впадины) точки создают указанные HLC
А без параметров стратегии просто быть не может. Невозможно написать алгоритм без параметров.
avatar
monomah, значит, я ничего не понимаю в программировании :)) 
avatar
bascomo, дело не в программировании, а не знания алгоритма рисования графика.Ты на стадии опытов, а открытия впереди. Мы все идем одним путем. Учимся читать график по каждой свече.Я уже прошел свой путь из 28 лет торговли, а кто то только начинает.
avatar
monomah, наверно ты работал с Метастоком или Омегой2000? Умно сказал.Хвалю. Продолжай давить теханализом на зеленых.
avatar
ves2010, этот параметр — количество пробитых уровней одной свечей? размер перекрытия? ATR(), размер тела свечи? Номер хая в тренде?
avatar
ezomm, нет это номер бара внутри дня
avatar
Redline, приятно иметь дело с умным человеком :)
avatar
есть более простые способы, но они про математику
avatar
Всегда торгую с настроем скорой смерти стратегии.
Дродауны — первые звоночки. Когда стратегия начинает загибаться сразу чувствуется по винрейту, задолго до полного расколбаса. Главное не затягивать.
avatar
22022022, расколбас из за статичного периода индюков и средних.Ставь вместо 14 формулу расчета периода и расколбаса не будет.Будет малая прибыль(малый убыток) в боковике и большая прибыль  в тренде.Но! Научи робота отличать тренд от боковика.Считай новые перемены за период типа 34, скорость новых перемен (хаев), ускорение или затухание нп.Тренд — и период 3.Боковик — и период 34.
avatar
Вот почему у тех, кто торгует руками (тех же скальперов, например), в ходу одна-две стратегии. И они никогда не умирают, независимо от фаз рынка. А у алготрейдеров этих стратегий сотни. И продолжительность жизни каждой из них, как правило, коротка. Почему так? Может, потому что сам метод нахождения и тестирования алго стратегий — по сути, подгонка под прошлые данные? Поэтому, неудивительно, что стратегии «умирают». Да они и не были живыми никогда. 
avatar
Михаил К., Вот почему доходность стратегий алготрейдеров была, есть и будет выше доходностей тех, кто торгует руками.
avatar
bascomo, в первый раз об этом слышу. Почему так должно быть? Как какой-то набор механических правил вообще может справиться с выбором оптимальных сделок лучше, чем подготовленный трейдер, который воспринимает и анализирует рынок комплексно? 
avatar
Михаил К., я доверюсь мнению своих коллег и тоже вас забаню. 
avatar
Михаил К., скальперы очень разные бывают.
Был один скальпер, которыи не смог приспособиться к изменениям. Как только он входил, рынок дёргал против него. Потом он начал замечать куклов в стакане… Закончилось всё очень серьезно — обвинение брокера в кукловодстве.
avatar
22022022, ключевой момент — что скальпер заметил. А алгоритм ничего бы не заметил и просто бы сливал.
avatar
Еще из опыта: Рабочая стратегия, обычно, после входе сразу идёт куда надо, быстро отрабатывает. Оставляет кучу свободного времени. А когда стратегия начинает еб… мозги, тянет время… лучше не тратить нервы 
avatar
22022022, это не формализуешь
avatar
Я далёк от трейдинга и написания роботов поэтому такой наивный вопрос — почему бы издыхающую стратегию не повернуть на 180 градусов? Просто все параметры заменить на зеркальные и она начнет расти вверх, а не вниз! )))
avatar
Sir Dasfig, Увы, это не работает :)
avatar
Рассматривать эти графики было бы интереснее, если бы на них была вертикальная синяя линия (окончание IS, начало OOS).
avatar
Кирилл Гудков, 
вертикальная синяя линия
вертикальная синяя линия © — это же мем!
bascomo, расскажите про платформу — питон? используете  библиотеки Backtrader и подобное?
avatar
Zoran, Я всё написал сам на c#, за 3-4 месяца. Никаких библиотек не использовал.
avatar
Нетрейдер, нужно сначала договориться о том, какой смысл каждый вкладывает в это слово :) 
avatar
Нетрейдер, разве про переподгонку шла речь. Вроде бы о том как ломаются системы.
Почитайте мои коменты в этой статье smart-lab.ru/blog/633955.php может поможет.
avatar

теги блога bascomo

....все тэги



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