Блог им. tradingloop

Momentum портфель (ETF) на индекс ММВБ

У меня была давняя идея составить Momentum портфель (ETF) на Российском рынке. Первоначально я хотел просто составить список самых быстро растущих акций посмотреть насколько получится (если получится) обогнать индекс ММВБ. По мере составления я задумался над более общей задачей, как формировать любой ETF.

Эта статья разделена на несколько блоков:

  1. общие вопросы составления ETF
  2. результаты momentum портфеля (ETF) на индекс ММВБ
  3. как избежать подгонки результатов под данные (data-mining и overfitting)

1. Как составить портфель

Я решил ориентироваться на методику одного из крупнейших momentum etf — iShares Edge MSCI U.S.A. Momentum Factor ETF (активы — 10 млрд).
A risk adjusted price momentum, defined as the excess return over the risk-free rate divided by the annualized standard deviation of weekly returns over the past 3-years, is calculated for each security in the parent index over 6- and 12-month time periods. The 6- and 12- month risk-adjusted price momentum calculations are then standardized at ±3 standard deviations and the standardized z-scores are translated into an average momentum score. (Методика iShares)
Однако в составление ETF вопросов гораздо больше, чем описано в любой методике.
  1. Начинается все с определения вселенной акций, которую будем фильтровать: какой размер капитализации, какая страна или какой регион, какие ограничения по кредитному рейтингу, какая ликвидность и free-float? (здесь все понятно — ММВБ)
  2. Далее, как определить фактор, в моем случае, — momentum: через абсолютный прирост или прирост скорректированный на риск (читай Sharpe ratio)? (Sharpe ratio)
  3. Далее, одно из самых интересных — отбор акций и определение весов в ETF. Сколько акций брать в индекс? Топ 10%, топ 50 акций, все выше определенного порога? (у меня ровно 15)
  4. Хорошо, справились с предыдущим вопросов и выбрали необходимое число акций. Как их взвешивать? Равномерно, или с учетом капитализации, или с учетом капитализации и momentum score? Делать ли ограничение на вес одной акции в портфеле? (об этом ниже)
  5. Теперь у нас есть портфель, но остается вопрос как часто его ребалансировать и на основе каких правил? Полностью или поддерживая определенный уровень turnover? обновлять веса каждый день, раз в неделю, раз в квартал? (раз в квартал)
  6. Наконец мы придумали его, и что-то нам не нравится в его поведении, например, большая просадка или высокая бета. И возникает вопрос а можно ли веса в портфеле еще оптимизировать, чтобы сгладить эти факторы? К Sharpe ratio можно дополнительно начать считать Sortino, Calmar или Information ratios и на основе какой-нибудь эвристики учитывать в весах. (не пробовал, но хочу сделать)
На пересечение всех этих параметров и условий можно построить огромное количество ETF. Это одна из причин такого многообразия ETF на рынке.

2. Как я делал Momentum портфель (ETF) для ММВБ

Начальные условия:

  1. Брал ровно 15 акций. с учетом того что индекс ММВБ в среднем включает 46-50 акций, 15 это примерно 1/3.
  2. Данные с начала 16 года, начало портфеля 15.12.2016.
  3. Ребалансировал каждый 60 торговых дней (примерно каждый квартал)
  4. Считал на полной доходности, комиссии не учитывал, налоги тоже.
  5. Бенчмарк — индекс полной доходности ММВБ (MCFTR)
  6. Учитывал капитализацию и momentum score в весах.
  7. Momentum score — это просто Sharpe Ratio посчитанный на аннуализированной квартальной доходности и средней ставки цб деленной на годовую стандартное отклонение (из дневных отклонений).
Я считал веса следующим образом:

  1. Брал все momentum score, переводил их в z-score и потом z-score переводил в интегральную оценку нормального распределения (normal cdf). Последнее дало мне возможность просто все числа уместить в отрезке от 0 до 1 (На этом месте можно придумать все что угодно).
  2. Числа из пункта 1) умножал на % капитализации акции в индексе и нормировал с ограничением в 15% для каждой акции.
Получилось, на первый взгляд, очень неплохо.
Momentum портфель (ETF) на индекс ММВБ
За 3 года мой портфель вырос на 116%, ММВБ — на 70%, волатильность портфелей оказалась почти идентичной 14%. Я сравнил также свой портфель с портфелем, где ни капитализация, ни уровень momentum score не играют значения (желтая линия) — результат хуже.
Momentum портфель (ETF) на индекс ММВБ
Максимальная просадка у моего портфеля даже ниже чем у индекса ММВБ — 15% против 20% у индекса. Также, и это самый большой сюрприз, у моего портфеля бета оказалось ниже чем у индекса — 0,84.
Фактически портфель показывает огромную alpha, так как при низкой корреляции с рынком, имеем в разы более высокую доходность.
Momentum не всегда обгонял индекс: из 36 полных месяцев, только в 23. При этом видно что были продолжительные периоды отставания: с марта 19 по конец июля 19.
Momentum портфель (ETF) на индекс ММВБ
Momentum портфель (ETF) на индекс ММВБ
Вот так акции отбирались в портфель:
Momentum портфель (ETF) на индекс ММВБ
Momentum портфель (ETF) на индекс ММВБ
Turnover rate в среднем составил 63%, то есть каждый квартал обновляли более половину активов. Также если взглянуть более внимательно на веса, можно обнаружить определенные проблемы связанные с капитализацией: Газпром, Роснефть, Лукойл всегда, когда попадают в индекс, имеют максимальный вес — 15%. Это к вопросу про балансировку momentum score и капитализации: она необходима, и данный вариант далеко не самый лучший.В целом, меня порадовали результаты моделирования, правда, все то, что я посчитал возможно не имеет статистической значимости, и об этом ниже.
Momentum портфель (ETF) на индекс ММВБ

3. А не фигню ли я посчитал?

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

  1. Поиграться с параметрами и условиями: брать другие периоды ребалансировки, другие стартовые точки, менять количество акций в индексе, учитывать рыночные комиссии и налогообложение на дивиденды.
  2. Временной ряд котировок на длинном горизонте — реализация стохастичекого процесса с заданным трендом и волатильностью (процесс Орнштейна-Уленбека). Поэтому для настоящей проверки необходимо сгенерировать множество (хотя бы 100к) сценариев и посмотреть как отработает алгоритм на них.
  3. Интересный для меня вопрос, какие факторы больше влияют на доходность? Для выяснения этого после пункта 1 и 2 можно собрать все результаты вместе с исходными параметрами и прогнать их через какой-нибудь Random Forest.
 В общем, если кому-то интересно, пишите, будем считать вместе.

Посмотреть графики в оригинале

ТЕЛЕГРАМ: @seeking_for_alpha

Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.

5.7К | ★20
14 комментариев
Толково! Отличный пост!!!
avatar
В целом, достаточно держать портфель из 4-6 тяжелых фишек с весами большими, чем в индексе 20-25% и моментум придет.
avatar
Последние пару лет у нас немного аномалия — тяжелые фишки растут СУЩЕСТВЕННО лучше легких. Отсюда, например, может следовать, что поправка на капитализацию оправдана. Но это особенность конкретного периода.

Сама простая проверка — прогнать это же на другом периоде, где-нибудь с 2010, например. 

Сам делал нечто похожее (но, впрочем, менее научно и тщательно). Альфа есть. Еще интересно по периодам. Колебался между ребалансом 1, 2 и 4 раза в год. Примерно одинаково выходило. Но что интересно, почему-то лучше всего портфель — перетрясался весной и осенью. Летний и зимний пересмотр ничего не давали, можно было не трогать фишки. Но возможно, просто случайность, уж слишком странное явление.


Александр Силаев, да с 2010 было бы неплохо. К сожалению долго руками собираю данные, поэтому не получается пока брать большие интервалы.
avatar
протестируйте с 2007 года
Спасибо! Предвосхитили мои задумки! Andreas Clenow рекомендует веса позиций считать обратно пропорционально волатильности, сейчас читаю его книги, думаю над практической реализацией такого расчета. В сети полно алгоритмов на Python от Clenow, но хотелось бы «ручками» (Excell).
avatar
Андрей, это не такая уж сложная затея. я сам больше люблю питон, но если есть возможность в excel, лучше делать в excel. Проще искать ошибки. Если делать веса обратно волатильности, это уже про minimum volatility etf. Хорошая идея. Почитайте про risk-parity. Вообще волатильность, в большинстве случаев, меняется медленнее доходности, поэтому там меньше размер ребалансировок.
avatar
Согласен с Евгением, непонятно, почему для теста выбран столь короткий период.
Также неплохо было бы для сравнения протестировать параллельную стратегию покупки N «худших» по отношению к индексу, с критериями, максимально похожими на стратегию покупки «лучших».
Дмитрий Овчинников, период короткий, это да. что смог оцифровать на том и посчитал. К сожалению, по некоторым акциям дивиденды с котировками сводил вручную. Про покупку лучших статью уже написал. https://smart-lab.ru/blog/588095.php
avatar
tradingloop, 
да, я видел эту статью, спасибо, подход у вас достойный.

Я немного не это имел ввиду.

Меня не очень интересует тема портфельного инвестирования, но читая англоязычную литературу, посвященную алгоритмической торговле, периодически натыкаюсь на протестированную на большой американской истории и большом количестве бумаг идею о том, что акции надо покупать в контртренд, т.е. те, которые отстают от индекса (такой вариант стоимостного инвестирования). А комоды напротив, надо покупать и продавать те, которые опережают условный индекс, т.е. по тренду.  
Дмитрий Овчинников, Да есть такое. Mean-reversion. Сходу нашел один ETF https://etfdb.com/etf/AUSF/#etf-ticker-profile, который пытается такую стратегию использовать. Пока отстает от SP500. Когда у нас один мега-тренд в мире с 2009, ждать разврота — неблагодарное дело. Хотя может и выстрелит в будущем.
avatar
tradingloop, 
Mean-reversion это не ожидание разворота, это покупка недооцененных.
Про продажу бумаг речи не идет. Возможно у нас это слабо работает из-за низкой ликвидности и малого количества доступных инвестору инструментов.
Но это вам анализировать, я так больше для кругозора пытаюсь понять, почему у нас все наоборот работает.
Хорошая работа и вполне заслуживает лайка.
Но есть один момент — с 2017 рынок РФ растет.
Если бы он падал или флэтил, то были бы шансы обогнать его в падении, тем более что стопов я в системе не увидел. 
Врач-бондиатОр, да, это правда. Поэтому я здесь не пишу, что нашел Грааль. Самому интересно, что будет дальше, попробую в realtime его в этом году еще посмотреть. Если хватит времени, посчитаю. как все советуют, на других промежутках, но пока есть еще много других идей, так что это не в приоритете.
avatar

Читайте на SMART-LAB:
🔔 Приглашаем на вебинар по результатам Займера в I квартале
В следующую пятницу, 15 мая, Займер представит финансовые результаты I квартала 2026 года по МСФО. Генеральный директор Роман Макаров и...
Фото
📅 График торгов на майские праздники
Публикуем режим работы бирж в праздничные дни. 🔴 Московская биржа 9 и 10 мая торги на всех рынках Московской биржи проводиться не...
Фото
Блогерам рассчитали пенсию
По данным опроса RENI, чуть больше половины россиян полностью полагаются на госпенсию. Свыше трети респондентов ответили, что пока только...
Фото
Выработка электроэнергии в РФ в марте 2026г. по Росстату и объем потребления энергии в апреле 2026г.
Росстат представил данные по выработке электроэнергии в РФ в марте 2026г.: 👉 выработка электроэнергии в РФ — 106,34 млрд кВт*ч. ( -0,7%...

теги блога tradingloop

....все тэги



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