Блог им. silentbob

Управление капиталом портфеля алгоритмических стратегий.

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

Рассмотрим разные варианты управления капиталом при торговле портфелем стратегий.

Для простоты, можно рассматривать портфель из двух стратегий, на отрезке где одна стратегия стабильно зарабатывает, а вторая работает неустойчиво. 

1. Фиксированный лот без реинвестирования. Просто суммируем две кривые прироста капитала. В данном случае все просто, одна стратегия делает прибыль, другая добавляет просадки. При раздельном тестировании этот метод позволяет наиболее точно оценить стратегию. Минус метода в том, что при значительном изменении капитала (вывод или занос денег) нужно править рабочий обьем. 

2. Каждой стратегии выделяется равный процент депозита, прибыль реинвестируется, либо уменьшается обьем при просадке счета
Тут вроде все понятно, этот подход все любят. На прибыль добавляемся, при убытке сокращаем лот. Если одна стратегия сильно льет, а вторая немного зарабатывает, то рабочий обьем режется на всех стратегиях, так как общий размер депозита сокращается. И тут возникает вариант 3, про который почему-то никто не говорит. 

3. Создаем условия, когда каждая стратегия работает независимо (одна стратегия — один счет, стартовая сумма для счетов одинаковая), прибыль реинвестируется, либо уменьшается обьем при просадке счета. При этом каждое направление входа системы (лонг или шорт) рассматривается как отдельно взятая стратегия. Почему так? Возьмем простую трендследящую стратегию. На тренде вверх имеем хорошие сделки от лонга, но на резких и коротких коррекциях тренда шорт как правило не зарабатывает. И наоборот для тренда вниз. В этом случае мы будем резать лот на убыточном направлении стратегии и добавлять на прибыльном. 

4. Доработка варианта 3. К каждой отдельно взятой стратегии добавляем элемент equity-trading. В коде стратегии отслеживаем изменение капитала (start_deposit +- netprofit), параллельно заполняем массив финансового результата при торговле 1 лотом, вводим порог допустимой просадки и при ее достижении выключаем стратегию (торгуем минимально возможным обьемом — 1 контракт или 1 акция). При восстановлении теоретической кривой капитала выше порога просадки — возобновляем работу полным обьемом. Порог просадки задается исходя из прошлых данных бэктеста, либо на глаз. Сильно зажимать порог нельзя. На глаз у меня получилось, что максимальная просадка стратегии с учетом процента капитала выделяемого на стратегию примерно равняется 3% на весь капитал. То есть, если стратегия торгует на 30% капитала, то пороговое значение должно быть примерно 10%. Здесь возможны исключения, например для стратегий с малой просадкой можно задавать пороговое значение чуть больше максимальной исторической просадки.  
Мои тесты показывают, что при применении варианта 4 общая прибыль незначительно снижается, но так же снижается и просадка. Соотношение профит-просадка увеличивается примерно на 20%, для некоторых стратегий соотношение увеличивается в два раза. 


Апдейт

Для примера equity-trading я рассмотрю трендовую стратегию на сбербанк.
Входные условия — только шорт, 100 контрактов фиксированный лот, без пирамидинга. С лонгом все понятно, последние пару лет стратегия зарабатывает без значительных просадок. 
Эквити с фиксированным лотом, 100 контратктов.
Управление капиталом портфеля алгоритмических стратегий.

Как видно, в последнее время просадка по этой стратегии значительная, около 2500п на контракт.

И вариант с ограничением просадки величиной 500п. Примерно столько имеет просадку направление стратегии в лонг, без управления размером позиции.

Управление капиталом портфеля алгоритмических стратегий.

Как видно, мы практически не потеряли в абсолютной прибыли стратегии, но просадка снизилась к заданным 500п на контракт. 
Те же самые настройки для лонговой части — практически не оказывают влияния ни на просадку, ни на результат. 

Для сравнения — общая кривая стратегии без ММ и с ММ по шортовой «ноге». 


Управление капиталом портфеля алгоритмических стратегий.

Итоговая просадка около 1700п на контракт, засчет того, что лонговая составляющая немного вытягивает прибыль.
И с включенным ММ

Управление капиталом портфеля алгоритмических стратегий.

Общий результат незначительно выше, просадка ниже в 2.5 раза. 







 

★25
14 комментариев
Да по моему очевидно, что вариант 4. Мы ж с тобой обсуждали это. Ферми там всякие--это ж и есть 4. Ну и вообще, важность способности делать системы и важность управления капиталом соотносятся в трейдинге приблизительно как 1000:1. Чего там управлять то, очевидно ж все. 

Напишу тогда и я чтоль, смартлаб не дума--можно и подискутировать :) Плясать надо от целей. Каковы цели? Имхо, основная цель капиталиста--плавная эквити. Плавная эквити--это возможность бухать и кататься по европам тогда, когда угодно, и ни о чем не думая. Это блэкджэк и шлюхи в любое время. Блин. Если жены пропалят, что я тут пишу, капитализм уже не поможет. Так о чем это я? Многоженство--это хорошо. А, не, капитализм. Капитализм--это хорошо. Мы живем в капитализме, а законы в нем просты. Я на мерсе рассекаю, на… галопом ты. Группа Плеханово, город Липецк. Срочно покупаем НЛМК :)  

Ладно. По серьезному. Есть капитал. И от него нужна плавная эквити. В капитал входят: недвига, акции, оболгации, дипазиты, счета в швейцарских банках, набитые баксами чулки в сеточку, страшно сказать--рубли (как это деревянное духовное чудо считать активами, не знаю, но мою патриотичную душу греет мысль, что в долларе то, в проклятом долларе который печатают тоннами и просто хулиганят, в этом самом долларе инфляция хуллиард в год, правда в зимбабвийском) и, не побоюсь этого слова, трейдерские эккаунты. 

Вся эта разношерстная бригада должна приносить бабло, причем плавно. Как этого достичь? Вначале надо разбить бабло на доли. Что в недвигу, что в оболгации, что в чулок к любимой засунуть. Ну и понятно, что чулок любимой--это намоленное место, там вообще двойная эрекция--и от бабла и от чулка. Туда можно много. Оболгации тоже хорошее место. Оболгут так оболгут. В общем, сколько в фикс откладывать личное дело каждого, у меня это 80-90% капитала. Оставшиеся 10-20 можно и в трейдинг. Трейдинговые счета в нормальном режиме растут в разы в год, но и просадки там измеряются в десятках процентов. 

Как управлять трейдовыми деньгами? Систем много (случаи, когда систем мало, я не рассматриваю. Имхо, когда систем мало, денег тоже мало и распределять то и нечего). Поэтому можно использовать приближение эффективного поля. Будем считать, что для каждой отдельной системы все остальные системы создают некий эффективный фон. То есть для каждой отдельной системы все влияние других систем сводится к изменению некой усредненной характеристики. Собственно, эта характеристика--это общий размер эккаунта. Чтоб это было так, влияние каждой системы на эккаунт должно быть малым. Вот это ключевой момент, определяющий устойчивость конструкции. Влияние каждой системы на эккаунт мало. Ну и все. Дальше все просто. Пусть у некой системы типичная просадка x процентов на вложенное. А просадить счет ей позволено лищь на 3% (у меня эта цифра от 3 до 7% для разных систем, в зависимости от их рисков, связанных с работой роботов. Но энивей, это должно быть много меньше единицы). Ну и все, доля равна 3/x, вот и вся любовь. Теперь еще устраиваем плавное уменьшение доли при подходе к критической просадке x (Ферми например)--и вуаля, мы соорудили управление капиталом портфеля алгоритмических систем. Как ни странно, это идеологически совпадает с твоим вариантом 4 :) А теперь можно снова лопатить навоз и искать как накернить биржевого ближнего своего :)   


avatar
Раздача фиксированного сайза пропорционально pf. Это всё, что нужно знать об управлении капиталом. Ну или обратно пропорционально просадке.
Варьирование сайзом — от лукавого. Оно не меняет МО, если система одна и та же и работает в одних и тех же условиях.
Если торговля по эквити приводит к улучшению параметров, это говорит о том что система недоработана, и «торговлю по эквити» надо вносить в систему, а сайз возвращать фиксированный.
avatar
robomakerr, По поводу торговли по эквити с целью улучшения параметров согласен. А вот по поводу полной эквитинезависимости есть нюанс. Система может сломаться. Хз почему, по крайней мере в реальном времени хз. Потом то понятно будет, но то потом. Такое может случиться, по крайней мере у меня. Бывало. На этот случай нужен механизм выключения. Причем крайне правильно было бы его формализовать. И скорее всего, этот механизм должен быть эквитизависимым. Я это описал выше. После блэкджека :) 
avatar
anatolyutkin, согласен. Правда, мне формализовать не удается, так что выключаю руками, пару раз в год, когда на рынке слон хозяйничает. Выключение по просадке не подходит, потому что просадка у меня из-за ЧЛ, а поломок систем еще не было, не на чем проверить)))
avatar
robomakerr, Что есть ЧЛ?
avatar
anatolyutkin, дык, черный лебедь же.
avatar
robomakerr, А черт. Точно. В Костромском зоопарке они есть, кстати :) 
avatar
В этом случае мы будем резать лот на убыточном направлении стратегии и добавлять на прибыльном.

Звучит примерно так. Если в следующей сделке я проиграю, то уменьшить сайз перед сделкой, а если у нас прибыльное направление и в следующей сделке я выиграю, то увеличить сайз перед этой сделкой.
Прекрасное условие. 

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

avatar
2all:

А как часто пересчитываете макс исторические просадки и меняете веса, коэффициенты? 
Есть какое-нибудь простое магическое условие при наступлении которого останавливаете страту?
avatar
Redline, Мдд пересчитываю очень редко. По сути, ни разу. 

Страта останавливается сама при приближении текущей просадки к заданной. Плавно, не резко--это для сипологического комфорта.

Бывает что и сам останавливаю по принципу чего-то оно моск парит. Ну или если есть основания полагать, что эдж кончился. 

Новая страта добавляется с весом 3/историческая МДД, в дальнейшем это не меняется. То есть капитал для любой страты есть (за исключением некоторых нюансов, связанных с неэквитевыми рисками) трейдинговый капитал×3/историческая мдд системы×функция ферми с центром ступеньки в точке мдд. 
avatar
Если тестил, покажи эквити разных подходов на адекватной истории.
Евгений Ворончихин, попробую. у меня затык с фикс лотом вышел, как не странно. Не сильно наглядно по сравнению с следующими вариантами. 
avatar
4-й вариант очень интересный, буду пробовать. спасибо за идею!
avatar

теги блога silentbob

....все тэги



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