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

С параметром lookback=3 года, на февраль 2025 модель рекомендует вложить 70% в золото, 25% в SPX и 5% в биткоин. В MOEX за последние два года не рекомендовала вкладываться вообще.
Посчитаю матрицу корреляции между активами за последние 3 года:

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

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

… я подумал, что вкралась какая-то ошибка в расчет для MOEX, но нет, если взять lookback=1 год, рекомендуемая доля MOEX будет ненулевая, но всё равно незначительная.

Интересно посчитать историческую доходность, когда портфель перекладывается каждый месяц по Марковицу, для разных параметров lookback. Ваши ставки, какой параметр даст большую доходность? Мне lookback = 2 нравится больше.
Очень странные результаты для lookback=3 года. Золото и Биток берутся с большим весом после диапазона/даунтренда, затем их доля доводится до 0 перед ралли того и другого.
2 года выглядит более адекватным. Такая разновидность моментума.