Блог им. IgorK_23a

Теория Марковица для портфеля с BTC, золотом и фондовыми рынками

    • 22 февраля 2025, 22:45
    • |
    • IgorK
  • Еще
Краткое описание портфельной теории Марковица: при известных доходностях, волатильностях и корреляциях набора активов, есть формула, по которой можно собрать портфель с минимальным риском. В качестве риска можно выбрать любую желаемую функцию: шарп, волатильность или что угодно. Марковиц получил за эту работу Нобелевскую премию в 1990 году.

Недостатки: поскольку модель строится на исторических данных, она может давать плохие результаты в будущем в резко меняющихся рынках.

Из любопытства, а не как инструкция к применению, попробую рассчитать на Питоне весы для портфеля из SPX, MOEX, золота и биткоина, с помощью теории Марковица. Цены всех активов перевожу в доллары. Для расчета весов в портфеле по Марковицу использую готовый пакет PyPortfolioOpt. 
Вот код: gist.github.com/IgorKuch/5d177109b4fcd2a9b0cca0e9870d5e93

Результат зависит от интервала lookback, за который берутся исторические данные. ChatGPT порекомендовал 3 года. Буду использовать скользящее окно и шаг 1 месяц, чтобы показать динамику расчетных весов портфеля во времени. 
Теория Марковица для портфеля с BTC, золотом и фондовыми рынками
С параметром lookback=3 года, на февраль 2025 модель рекомендует вложить 70% в золото, 25% в SPX и 5% в биткоин. В MOEX за последние два года не рекомендовала вкладываться вообще.

Посчитаю матрицу корреляции между активами за последние 3 года:
Теория Марковица для портфеля с BTC, золотом и фондовыми рынками
Интересна высокая корреляция между BTC и SPY, целых 42%; поэтому модель отводит меньшую долю в BTC в портфеле, предпочитая SPY.

Попробую lookback=2 года.
Теория Марковица для портфеля с BTC, золотом и фондовыми рынками
На настоящий момент рекомендует 20% биткоин, 20% золото и 60% SPY. По сравнению с lookback = 3 года поменялись местами золото и SPY. Очень интересно, что на начало 2024 модель рекомендовала закупиться золотом на 100%. MOEX опять по нулям. Корреляция:

Теория Марковица для портфеля с BTC, золотом и фондовыми рынками


… я подумал, что вкралась какая-то ошибка в расчет для MOEX, но нет, если взять lookback=1 год, рекомендуемая доля MOEX будет ненулевая, но всё равно незначительная.
Теория Марковица для портфеля с BTC, золотом и фондовыми рынками
Интересно посчитать историческую доходность, когда портфель перекладывается каждый месяц по Марковицу, для разных параметров lookback. Ваши ставки, какой параметр даст большую доходность? Мне lookback = 2 нравится больше.

4.4К | ★7
18 комментариев
На золоте — эт не знаю. На крипте — бери в долгую что хошь из популярных и не заморачивайся — по любому не прогадаешь. При условии, разумеется, что рынок крипты в обозримом будущем не изменится.
avatar
3Qu, А что вы думаете про теорию Марковица вообще? Можно ли из неё выжать что-то полезное для инвестиций?
avatar
IgorK, наверное возможно, при стабильно растущей экономике. Однако, при такой экономике работает и простой принцип — завтра будет тоже что вчера. Т.е., бери с хорошими показателями и вряд ли ошибешься.
avatar
look back хотя бы лет 6 надо брать

avatar
Alex, более длинная выборка дала бы более стабильные оценки. Но для криптовалют, исторические данные с достаточной ликвидностью и сопоставимостью доступны примерно с 3 лет.
avatar
Модель Марковитца идеальна для пассивного инвестирования вдолгую. Автор, вы какой уровень годовой волатильности брали? По факту от этого будут зависеть доли в портфеле (нужна матрица ковариаций).
avatar
Инвестор, ковариационная матрица строилась на основе дневных данных. Годовая волатильность оценивалась путем умножения дневной стандартной девиации на sqrt(252).
avatar
По какому параметру оптимизируете? Шарп?

Очень странные результаты для lookback=3 года. Золото и Биток берутся с большим весом после диапазона/даунтренда, затем их доля доводится до 0 перед ралли того и другого.

2 года выглядит более адекватным. Такая разновидность моментума.
avatar
Eth_algotrader, да, тут оптимизация по Шарпу. Я уже написал вторую часть этого поста, где оптимизирую по волатильности (также в комментариях посоветовали попробовать по волатильности-вниз): smart-lab.ru/blog/1127158.php
avatar
… я подумал, что вкралась какая-то ошибка в расчет для MOEX

Именно так, в расчетах для Моех ошибка из-за того, что значение курса usd_try на 16 марта 2023 вместо 75 равно 5. После добавления в строку 38:

usd_try.loc['2023-03-16']=75


Модель начинает иногда (очень мало) назначать часть аллокации в МОЕХ (с лукбеком 2 года):

avatar
Кроме того, из-за недостаточности данных по МОЕХ yahoo выдает по 470 баров вместо 500 по прочим инструментам, а по последним 7 итерациям обучения это число снижается вообще до 334, т.к. данные по МОЕХ заканчиваются в июне 2024.

Если убрать МОЕХ из тикеров (везде станет по 500 баров) результат будет такой:
Чуть сильнее сократил долю SPY под конец.
avatar

Eth_algotrader, спасибо за комментарий!

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

За 2025 у меня годовая волатильность портфеля 10%, а Шарп около 3 (это в турецких лирах и с безрисковой ставкой, равной турецкому депозиту) — считаю, отличный результат.

avatar
IgorK, я сейчас тоже пришел к подходу, основанному на волатильности, а не на Шарпе, потому что это удивительным образом стыкуется с моими моделями из области алго.

А портфель собираете в том же пакете, только вместо ef.max_sharpe() выбираете ef.min_volatility()?

Вообще миллион же есть способов измерять волатильность… отдельная тема для исследования.
avatar

Eth_algotrader, да, формально это ef.min_volatility(), но я в итоге отказался от пакета pypfopt, и реализую вычисления с нуля. Плюс в том, что я не связан функциями пакета, и могу запрограммировать любую логику. Выглядит это как-то так:

gist.github.com/IgorKuch/2c053644dafd0f6676380ab78a4ecf6a
avatar

Eth_algotrader, я тоже полюбил волатильность.

В том же Марковице есть несколько модификаций, которые позволяют учитывать ожидаемую, а не историческую, доходность (например, есть сложный подход Black–Litterman, использующий байесовскую модель для ожидаемых доходностей — этот подход реализован в pypfopt, если я правильно помню).

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

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

avatar
IgorK, >например, есть сложный подход Black–Litterman, использующий байесовскую модель для ожидаемых доходностей — этот подход реализован в pypfopt, если я правильно помню

Там же основано на субъективных оценках. А они почти всегда будут скакать вверх-вниз следом за последними доходностями (т.е. это не более чем лин.рег за последние год-два, грубо говоря). Такое себе. Любой субъективизм рано или поздно сводится к повторению общего сантимента.

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

Покидаете ссылок?
avatar

Читайте на SMART-LAB:
Фото
ПАО "АПРИ" публикует Databook
Уважаемые инвесторы! ПАО «АПРИ» публикует Databook , содержащий широкий спектр данных о результатах деятельности компании в удобном...
Фото
«Сбер» готовит отчет за 2025 год. Что будет с дивидендами?
Главное Акции «Сбера» обновили максимум за полгода перед отчетом за 2025 год и могут продолжить рост вплотную к 400 руб. Итоговый...
Фото
Сильная и слабая акции прошлой недели — куда дальше?
Акции ЮГК после провала смогли быстро отскочить, а бумаги Мосэнерго после ралли резко рухнули — есть явные фундаментальные причины и технические...
Фото
Длинные ОФЗ: зарабатываем как по ВДО
Б РФ 13 февраля в очередной раз снизил ключевую ставку до 15,5%, тем самым продолжив тренд смягчения ДКП (кумулятивное снижение с июня 2025 г....

теги блога IgorK

....все тэги



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