Блог им. egenui

PortfolioAnalytics оптимизация портфеля по StdDev и ES

Я тут свои наработки давние откопал, помню изучал пакет PortfolioAnalytics https://cran.r-project.org/web/packages/PortfolioAnalytics/PortfolioAnalytics.pdf в процессе прохождения курса по оптимизации портфеля https://www.datacamp.com/courses/intermediate-portfolio-analysis-in-r

Так вот, суть стратегии простая, берем недельные ретерны стоков, далее оптимизируем веса стоков в потрфеле минимизируя StdDev и Expected Shortfall. В качестве трейллинг окна берем 4 месяца, ребалансировка раз в месяц. Компоненты следующие AFLT, ALRS, GAZP, GMKN, LKOH, MGNT, ROSN, SBER, VTBR, NLMK.

Результат стратегии
PortfolioAnalytics оптимизация портфеля по StdDev и ES
PortfolioAnalytics оптимизация портфеля по StdDev и ES


PortfolioAnalytics оптимизация портфеля по StdDev и ES

В общем сам пакет есть обвес над теорией Марковица. Кто-нибудь что-то подобное торгует?
★7
12 комментариев
А как минимизирются сразу два показателя StdDev и Expected Shortfall?
avatar
Михаил, Хм, хороший вопрос ).  Возможно никак, по крайне мере сам фреймворк позволяет задать несколько критериев для оптимизации, возможно используется первый который был задан, в этом случае StdDev
avatar
evgen000, знаете, что ещё смущает. В 4 месяцах 17 недель и при этом портфель из 10 бумаг. Спеней свободы практически нет — с точки зрения статистики как-то не очень это все выглядит. 
avatar
Михаил, возможно, но ситуация не выглядит хуже если взять больший период
avatar
evgen000, надо смотреть в деталях — может вы в будущее подглядываете, когда веса считаете, может у вас там бумаги какие-то анамально себя ведут (магнит, как вариант) — прут существенно больше индекса все время и в них весь объём грузится. Вряд ли кто такой концентрированный портфель рискнул держать. Как там с учетом издержек на ребалансировку. 

Вообще прямая оптимизация по Марковицу не очень хорошо работает, как точные значения ожидаемой доходности и ковариационный матрицы не известны, а минимальные погрешности в их значениях ведут к очень не хороши решениям. 

А по вопросу в вашем посте — я торгую что-то похожее, но влоб Марковица не использую.
avatar
Михаил, ну там такой проблеммы как заглядывания по идее быть не должно, сам пакет позволяет тестировать walkforward, этот пакет в проде использовал uralpro (по крайне мере так заявлял в своей перезентации на конфе СЛ). К тому же пакет уже существует довольно давно.  Если вы знакомы с R я могу вам скинуть код, возможно вам будет интересно.

avatar
evgen000, я R не знаю — только Питон немного. Если в пакете уверены, посмотрите на веса бумаг в оптимальных портфелях на каждом шаге, посмотрите, что будет на другом наборе бумаг. Может действительно так все хорошо получается.
avatar
Вопрос не по теме — а вы котировки где забираете?
avatar
Интересно было бы сравнить с портфелем из таких же компонентов, но взятых с равными весами. Может весь прирост за счет отбора акций, а не оптимизации.
avatar
Если честно — too good to be true. В глаза бросается явный selection bias — взяли тикеры, которые за этот период все росли лучше рынка (поправьте если не прав) + возможно которые «хэджируют» просадки друг друга. Однако в будущем это вряд ли будет так. Сделайте честнее — возьмите все тикеры (или все ликвидные для вас), и сделайте выбор торгуемых тикеров автоматически (в том же скользящем окне), результаты должны получиться более честные.
+ недельные данные — не очень честный бэктест, если вы считаете, что смотрите клоуз и сразу по нему торгуете, тут бы поточнее надо сделать — например, если посмотрели клоуз, то считаете, что торгуете только по опену следующего дня в лучшем случае (а более консервативно — по клоузу следующего дня)
avatar
1. Поскольку выбрано всего 10 бумаг (кстати, почему ровно 10 и именно этих?), сделайте 10 графиков весов по каждой из них, чтобы увидеть, как после каждой ребалансировки менялся во времени вес этой бумаги.

2. В подобных системах важную роль играют издержки на торговлю и то, как эта торговля эмулируется. Когда у вас известен сигнал на ребалансировку и когда делаются соответствующие сделки? Какие заложены издержки на сделки?
avatar
Использую оптимизацию марковица, но не по стакам отдельно, а по стратегиям, например есть какая то страта и ее ретерны на разных инструментах, применяю оптимизацию портфеля к этим ретернам.

теги блога evgen000

....все тэги



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