Блог им. AYarmots
Серия «Кладбище стратегий MOEX», пост #3 из 9.
«Покупай силу. Тренд — твой друг. Не иди против рынка». Это звучит разумно. Momentum — одна из самых популярных стратегий в американской академической литературе, за неё дают нобелевские премии. Мы её проверили. Вот что получилось.
Что тестировали
Логика простая: акция в восходящем тренде продолжит расти. Сигнал на покупку — RSI выше 60 и цена выше 50-дневной скользящей средней. Выход — по ATR-стопу или тейку, удержание около 30 дней.
Ничего экзотического. Классический трендследящий вход с технической фильтрацией.
Тестировали на пятилетней истории дневных свечей, около 70 тикеров Мосбиржи, комиссия round-trip 0,10% (тариф «Трейдер» Т-Инвестиций).
Напоминание о методологии
Каждая стратегия в серии проходит две ключевые проверки:
In-Sample (IS) — результаты на той части истории, которую модель «видела». Здесь параметры подбираются, тикеры отбираются, конфигурация настраивается. Выглядит хорошо почти всегда — это не достижение, это условие задачи.
Out-of-Sample (OOS) — примерно 30% истории, которую стратегия не видела при настройке. Это единственная объективная оценка. Если на OOS edge сохраняется — что-то есть. Если нет — это переобучение.
Результаты
На всём наборе тикеров momentum показал 329 сделок, доля прибыльных — 40,4%, среднее ожидание +0,43%, Profit Factor 1,16.
Пограничный результат. Не провал, но и не уверенный edge.
Тут начинается интересное. Мы посмотрели на отдельные тикеры и нашли четыре, где стратегия смотрелась сильно лучше: TATN, MTSS, LKOH, SBER. На них In-Sample:
Красиво. Стабильно. Есть ощущение, что нашли что-то настоящее.
Теперь OOS на тех же четырёх тикерах:
Edge не просто исчез — он сменил знак. Стратегия на OOS убыточна.

Два бара — два периода, одни и те же четыре тикера. На обучении стратегия выглядела убедительно. На проверочных данных ушла ниже безубытка.
Почему это переобучение
Вот механизм того, что произошло.
Мы взяли 70 тикеров и запустили стратегию. Большинство показали посредственные или отрицательные результаты. Четыре — хорошие. Мы их выделили и сфокусировались на них.
Проблема в том, что эти четыре тикера могли показать хорошие IS-результаты по двум разным причинам:
На In-Sample мы не можем отличить одно от другого. Единственная проверка — OOS. И OOS говорит: это был шум.
Отбор «лучших тикеров» по историческим данным — это и есть подгонка. Каждый раз, когда мы смотрим на прошлое и говорим «вот на этих инструментах работало», мы завышаем ожидания. Мы уже знаем, что именно на этих тикерах паттерн проявился. Но будущее этого не знает.
Математически это называется data snooping bias или overfitting. По-русски — переобучение. Модель (или стратегия) «запомнила» особенности конкретного исторического отрезка вместо того чтобы выучить устойчивую закономерность.
Хороший способ почувствовать проблему интуитивно: если бросать кубик достаточно раз, найдётся серия бросков, где выпадает много шестёрок. Это не значит, что кубик «показывает edge на шестёрках».
Почему Momentum вообще плохо подходит для MOEX
Есть структурные причины, почему трендследование работает хуже на российском рынке, чем на американском.
Первая — ликвидность. MOEX — концентрированный рынок. Топ-5 тикеров по обороту занимают значительную долю всего объёма. Тренды формируются и ломаются быстрее, отчасти потому что участников меньше.
Вторая — режимы. MOEX 2020–2024 — это санкционные шоки, геополитические события, переоценка ставки. В таких условиях технический импульс менее предсказуем: цена тянется фундаментальными переоценками, а не поведением толпы.
Третья — комиссия. 0,10% round-trip на 30-дневном удержании — это примерно 0,04% в пересчёте на день. Маленькое число, которое съедает пограничный edge.
Вывод
Momentum на MOEX — FAIL. PF 0,67 на OOS, среднее ожидание −0,83%.
Важнее цифр — иллюстрация механики переобучения. Получить PF 1,66 на IS, отобрав лучшие тикеры, — легко. Это ни о чём не говорит. Только OOS на данных, которые модель не видела, даёт ответ.
Следующий пост — календарные аномалии. Покупка в конце месяца, эффект января, лучшие и худшие дни недели. Там тоже красивые IS-графики и похожий финал.
Momentum переобучился, потому что отобранные «лучшие тикеры» — это форма без причины. Устойчивый edge даёт не паттерн, а понимание, почему конкретная компания стоит дешевле, чем должна, и что это исправит. Пример такого разбора — Сбербанк: разбор Сбера.
Ранее так же приходил к выводу, что на moex нет места для самых робастых алгоритмов, применяемых на остальных рынках.
Про «должен быть 100% IS» — это не правило, а выбор протокола. У меня на OOS не «слегка хуже», а смена знака: по 4 отобранным тикерам PF с 1,66 на IS упал до 0,67 на OOS, ожидание с +1,36% до -0,83% на сделку — для вывода о переобучении этого достаточно.
Нет, на четырёх не проверяли — полный прогон был на всех ~70 ликвидных бумагах, это 329 сделок. И там PF вышел 1.16: пограничный, торговать нельзя.
А четыре тикера — TATN, MTSS, LKOH, SBER — это иллюстрация ошибки, а не отдельный тест. Я специально взял те, где на In-Sample стратегия смотрелась лучше всего (PF 1.66), чтобы показать, что бывает дальше. На Out-of-Sample на этих же четырёх PF упал до 0.67 — edge не просто исчез, а сменил знак.
Смысл в том, что сам отбор «вот на этих бумагах работало» по прошлым данным — это и есть подгонка. Всегда найдётся горстка тикеров, где паттерн случайно сложился на конкретном отрезке. Отличить случайность от реального эффекта можно только на OOS — и он показал, что это был шум.
1. У меня не получилось ни одной путной системы на RSI. Дурной индикатор, причем это как то сразу видно, не надо долго упражняться с бэктестами.
2. 5 лет — мало. Я для моментума беру инфу с 2007 года.
3. Смысл моментума не в том, чтобы всегда иметь плюс, а в том, чтобы быть в среднем лучше рынка.
1. Вы протестировали стратегию на RSI.
2. Результат говорит только о том, что такая стратегия на RSI с таким временным окном работает плохо.
Глобальный вывод в статье не релевантен.
Замечание по определению справедливо — RSI>60+SMA50 это технический фильтр-подтверждение импульса, не академический моментум Кархарта (топ-квинтиль по 12-1m доходности). В статье это стоило обозначить точнее. Кросс-секциональный вариант на тех же данных (ранжирование по 12m возврату) тестировали отдельно — результат аналогичный: survivorship artifact на фиксированной корзине тикеров MOEX даёт отрицательный CAGR. Поэтому вывод о трендовых системах на MOEX, на мой взгляд, остаётся.
Поэтому корректно написать, что такой-такой вариант не дает устойчивого преимущества. А гробить сразу чуть ли не единственную рабочую систему на роллировании акций, имхо, неправильно.
Моментум вообще не должен давать плюс на сильных провалах рынка, он дает статистическое преимущество в масштабах цикла рост рынка — падение рынка, а лучше — нескольких циклов. Если средний плюс к рынку 10% годовых, это не значит, что на провале в -25% будет непременно -15%. Может быть и хуже.
Некоторые торгуют моментум с разными предохранителями. У АлексЧи, насколько я помню, стоит глубокий стоплосс. Можно какой-то другой фильтр вкрутить.
Поясните в чем смысл покупать в шаге от перекупленности?
Вход RSI>60 — осознанный выбор логики моментума: покупать уже подтверждённое движение, а не откат. На американском рынке такой моментум исторически даёт премию (Jegadeesh-Titman). На MOEX вышло любопытно: мы гоняли обе логики — RSI(2) Коннорса (перепроданность, покупка слабости) дал PF 0,70, а моментум RSI>60 (покупка силы) — 0,67 на out-of-sample. Ни одна не прошла. MOEX отказывает и тем, и другим без дополнительного контекста.