Дмитрий Овчинников
Дмитрий Овчинников личный блог
08 марта 2026, 19:06

Momentum Original with Claude

Протестировал классический Моментум с Клодом. 

Тестирование на списке акциий, доступных к автоследованию в финамовском сервисе Comon.

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

Momentum Original with Claude

1. Методология

Исследование рассматривает классическую систему моментума — покупку акций с наибольшим ростом за предшествующие N месяцев. Цель: найти возможности увеличения доходности и снижения рисков относительно базовой реализации.

Ребалансировка: производится в последний торговый день каждого месяца. В этот день по цене открытия 10:00 продаются позиции которые выходят из топ-K, и покупаются новые. 

Сигнал: open[t] / open[t−252] − 1 (годовой моментум на открытиях 10:00)

Отбор: Топ-K акций по сигналу с фильтром [нижний порог, верхний порог]

Вход: open[t] — то же открытие, в которое считался сигнал

Удержание: До следующей ребалансировки (~21 торговый день)

Выход: open[t_next] — открытие следующей ребалансировки

Комиссии: В бэктесте комиссии не учтены. Оценочное влияние: ~10 ребалансировок в год × 2 стороны × K позиций × 0.05% ≈ 0.3–0.6% CAGR — некритично.

Дивидендная корректировка: Цены скорректированы методом backward additive adjustment по дате закрытия реестра (record_date). Текущие цены остаются без изменений.

2. Тестирование стандартных параметров

Перед оптимизацией проведено полное тестирование классических вариаций:
горизонт N (6–12 месяцев), размер портфеля K (3–8), исключение последнего месяца (skip-1-month), недельная ребалансировка. Все тесты на ценах открытия, период 2015–2025.

Momentum Original with Claude

Выводы
• N=12 — безусловный лидер. Классический годовой моментум работает лучше коротких горизонтов.
• K=3 даёт лучший Calmar, K=6 — более равномерную equity. Оба берём как базовые конфигурации.
• Skip-1-month — на MOEX эффект отсутствует. Краткосрочного reversal на открытиях нет, исключение последнего месяца только ухудшает результат.
• Недельная ребалансировка — сигнал слишком шумный, все метрики хуже.

Momentum Original with Claude

3. Путь оптимизации
Каждый шаг добавлял одно улучшение поверх предыдущего результата. Параметры не переподбирались ретроспективно — каждое решение мотивировалось экономической логикой.

Momentum Original with Claude

4. Оптимизация порогов сигнала

Двойной порог [lower, upper] отсекает две проблемные зоны: акции со слабым сигналом (<20%) которые входят в топ-K случайно, и перегретые акции (>115%) где моментум уже исчерпан. При недостаточном числе подходящих акций свободная доля уходит в кэш.

Momentum Original with Claude

5. Хедж через шорт IMOEX

Хедж реализуется через шорт фьючерса на IMOEX. Хеджируется только доля капитала в акциях — кэш-часть не хеджируется. Затраты на маржу и комиссию по фьючерсу не учтены — предполагается покрытие за счёт распада контанго.

Momentum Original with Claude

6. Свободный кэш под ставку ЦБ − 2%

При срабатывании фильтра [20%,115%] часть из K слотов остаётся свободной. Эта доля размещается под ставку ЦБ минус 2% годовых (дневное начисление). В 2022–2024 при ставке 15–21% кэш давал существенный вклад в доходность и смягчал просадки именно тогда, когда рынок падал.
Momentum Original with Claude

7. Walk-Forward валидация

Параметры фиксированы — никакой переоптимизации. Обучающее окно 5 лет, тестовое 1 год, шаг 1 год. Тестируется 5 окон: 2021–2025.


Momentum Original with Claude

Momentum Original with Claude

8. Разбор убыточного 2024 года

Обе стратегии показали убыток в 2024 (−5% и −14%) при IMOEX −7%. Анализ позиций выявил системную причину.

Momentum Original with Claude

• Momentum crash — при развороте рынка лидеры предыдущего года падают сильнее всего. Стратегия зашла по моментуму 2023 года, рынок развернулся.
• Мечел (MTLR) — реальное падение −73% за год. Дивидендов нет. Корректировка цен верна — это рыночное падение, не дивидендный гэп.
• SNGSP — падение −33% в июле 2024 рыночное, не дивидендный гэп. Adj цены корректны.
• Хедж частично помог (рынок −7%), но металлурги падали быстрее рынка.

9. Итоги и выводы

Что работает
• 12-месячный моментум на MOEX устойчив out-of-sample — 80% прибыльных лет
• Двойной порог [20%,115%] устраняет слабые сигналы и перегретые позиции
• Хедж через шорт IMOEX режет MaxDD вдвое (с −37–35% до −18–19%)
• Кэш под ставку ЦБ−2% улучшает Sharpe в периоды высоких ставок
• Ребалансировка в последний торговый день месяца логична и эффективна
Ограничения
• MaxDD −18–19% остаётся высоким для розничного клиента
• Momentum crash в 2024 — системный риск, не устраняется параметрами
• Walk-forward на 5 окнах — статистика ограниченна

Выбор конфигурации:

В ходе исследования рассматривались две конфигурации — K=3 и K=6. Сравнение показало, что K=6 уступает K=3 по всем ключевым метрикам при практически одинаковой максимальной просадке: CAGR 13.4% vs 19.8%, Calmar 0.69 vs 1.08.
Единственное преимущество K=6 — больше акций в портфеле (4–6 vs 2–3), однако это не компенсирует существенного проигрыша в доходности. Выбора нет — финальная конфигурация одна.

Momentum Original with Claude

Momentum Original with Claude


71 Комментарий
  • PanIvan
    08 марта 2026, 19:37
    Тестирование и оптимизация целиком в клод?
    Вы в него файлы котировок пихали?
      • PanIvan
        08 марта 2026, 19:54
        Дмитрий Овчинников, а какой вывод как самого инструмента для тестов? можно юзать?
      • Илья Нечаев
        09 марта 2026, 14:20
        Дмитрий Овчинников, Выкладывайте в github здесь попробуем докрутить до 100%-ки ML накинем сверху оптимизатор XG-Boost какой-нибудь.
      • Дмитрий
        09 марта 2026, 14:32
        Дмитрий Овчинников, большое спасибо вам за столь наглядную информацию!
        Сам я подобное не имею навыков в софте протестировать, но всегда было интересно посмотреть варианты моментумов, читая тут того же Силаева.
        А у вас даже вариант с логичным хеджем рассмотрен!
        11 лет может и невеликая дистанция, но для выводов уже кажется подходящей.
  • Просто трейдер
    08 марта 2026, 19:49
    Опус или Соннет?
      • Просто трейдер
        08 марта 2026, 19:52
        Дмитрий Овчинников, значит Соннет. Жаль.
          • Просто трейдер
            08 марта 2026, 19:58
            Дмитрий Овчинников, ну без Опуса конечно не очень интересно что-то строить. Он на голову выше. Я в принципе не читаю исследования если они построены не на передовых моделях.
              • Просто трейдер
                08 марта 2026, 20:07
                Дмитрий Овчинников, рекомендую Опус. Там есть хороший логин с большими лимитами. Соннет не то, он много врет особенно в части фин анализа. И плохо умеет работать с бигдатой. Он в принципе не умеет и неправильно создает питон скрипты по анализу и рисерчу.
                  • Просто трейдер
                    08 марта 2026, 20:32
                    Дмитрий Овчинников, как же нет. БигДата — это от несколько десятков терабайт. И неструктурированность данных (новости, отчеты и другое).

                    Это самая что ни на есть биг дата.
            • SergeyJu
              08 марта 2026, 21:01
              Просто трейдер, для таких простых задач досточно любого старого доброго языка программирования, от Си до чего угодно. 
              А сравнение Опуса с Соннетом, сравнение версии ХХ.Y против XX.Y+1 это строго для гурманов, которых не интересует результат. Главное, примкнуть к чему-то ох, передовому.
              • Просто трейдер
                08 марта 2026, 21:11
                SergeyJu, думаю вы даже не поняли о чем я написал. Там в любом случае будет какой-то язык.

                Что такое добрый язык программирования я не знаю. Подозреваю, ваша личная терминология.
                • SergeyJu
                  08 марта 2026, 21:13
                  Просто трейдер, я понял, что Вы из тех, кому не ехать, а шашечки. 
                  Если Вы не знаете, что такое Си, это не то, чем следует гордиться. 
                  • Просто трейдер
                    08 марта 2026, 21:15
                    SergeyJu, ваше право думать обо мне всё что вам угодно. Видимо моя личность вам более интересна, чем тема топика.

                    Что либо дальше с вами обсуждать не вижу смысла.
                      • Просто трейдер
                        08 марта 2026, 21:32
                        Дмитрий Овчинников, кто такой Юрич не знаю и не особо интересно. Вроде бы стараюсь вести разговор нейтрально, хотя кто-то постоянно пытается мне навесить какие-то свои термины, и разбор мое личности сделать (не понимаю, зачем это нужно, видимо нормально обсуждать не получается).

                        Что касается конкретной задачи — я даже не читал отчет. Мне в целом это не интересно, так как подобные задачи я делаю по 20 штук на дню. Я написал про нечто другое. Но видимо недостаточно подробно. По правде, расписывать более подробно уже нет желания. Как говорится, кто поймет — тот поймет. Кто не поймет — се ля ви. Я тут не ради обучения.
                          • Просто трейдер
                            08 марта 2026, 21:44
                            Дмитрий Овчинников, 

                            1) Я не могу говорить за других, будут кто-то что-то публиковать или нет. Я не настолько всеведущ

                            2) Про что пост я понял изначально

                            3) Гонение инфоцыган — не про меня. В целом не интересна борьба с мельницами

                            4) Да, механизмы есть, хорошее время.
                      • SergeyJu
                        09 марта 2026, 09:29
                        Дмитрий Овчинников, интересно, сколько у Вас реально ушло времени? 
                          • SergeyJu
                            09 марта 2026, 09:59
                            Дмитрий Овчинников, когда все данные загружены и выверены (сплиты, дивы, остановы торгов, переименование активов), дописать програмулю и подергать параметры в те же полдня и выходит. Ну, день. Если честно, самая простая и недолгая часть работы. 
  • Op_Man
    08 марта 2026, 22:46

    Клёво! Очень интересно получилось, и затратно по времени я думаю. Большую работу проделали

    Моментум-подход в таком виде ещё пользуется спросом в широких кругах инвесторов, как считаете?

      • Op_Man
        08 марта 2026, 22:56

        Дмитрий Овчинников, полдня для такого бескорыстного поступка — роскошь:)

        Скиллы наверное так прокачиваете исследовательские

        моментум-подход это единственное, что еще работает у инвесторов, все остальное хуже или сильно хуже.

        Тут мне вам возразить особо нечем, с инвесторами прямого диалога почти нет.

        Потрудились хорошо, подход основательный. Людям думающим ваш репорт очень кстати будет, я считаю.

          • Op_Man
            08 марта 2026, 23:00

            Дмитрий Овчинников,  

            Хотелось бы верить, что не настолько всё безнадёжно.

          • Op_Man
            08 марта 2026, 23:05

            Дмитрий Овчинников, а куда копаете, если это побочка?

             Если не секрет, конечно)

              • Op_Man
                08 марта 2026, 23:23

                Дмитрий Овчинников, будьте любезны) С удовольствием почитаю!

                Если здесь не получится, то в личку тоже хорошо

      • SergeyJu
        09 марта 2026, 09:38
        Дмитрий Овчинников, ну, трендовухи на фьючах тоже работают худо-бедно. Вот, золото выстрелило. 
          • SergeyJu
            09 марта 2026, 09:55
            Дмитрий Овчинников, моментум — тоже трейдерское, имхо. Настоящий инвестор — тот кто реально может участвовать в управлении бизнесом. Все остальное — красивое словцо для лохов, которых заманивают в спекуляции под ложным флагом инвестиций. 
  • Павел Ку
    09 марта 2026, 01:42
    Макс просадка 2.8% или даже 1.8% при ребалансе раз в месяц??
    • SergeyJu
      09 марта 2026, 09:35
      Павел Ку, у автора -18,3%. И это при условии хеджирования. Правда, я не понял, почему хедж именно 80%. По идее, моментум должен иметь бету больше, чем 1 и напрашивается хедж больше 1. 
      • Павел Ку
        09 марта 2026, 11:53
        SergeyJu, либо я не туда посмотрел, либо картинки изменились, было две цифры 1.8% для хеджа и 2.8% для без хеджа. Это и удивило.

        По бете, да, больше 1 должен быть согласно формуле, иначе нет смысла покупать на росте. Вопрос как всегда в отрицательной составляющей беты
        • SergeyJu
          09 марта 2026, 15:09
          Дмитрий Овчинников, смотря что оптимизировать. У меня при хеджировании моментума отношение доходности к риску получается максимальным, если хедж чуток превосходит спот по номиналу.
          P.S. а экономический смысл можно оставить туристам, пусть развлекаются 
            • SergeyJu
              09 марта 2026, 16:16
              Дмитрий Овчинников, у нас существенно разные алгоритмы моментумов. Отсюда и разные подходы к хеджу и разные «оптимальные» параметры. Наверное, это хорошо, что мы расходимся в подходах. 
                • SergeyJu
                  10 марта 2026, 08:24
                  Дмитрий Овчинников, у меня сейчас динамический хедж с максимумом 100%.
  • Алекс Ч.
    09 марта 2026, 07:22
    А что является сигналом для хеджа?
      • SergeyJu
        09 марта 2026, 09:36
        Дмитрий Овчинников, почему всегда? 
          • SergeyJu
            09 марта 2026, 10:24
            Дмитрий Овчинников, если Вы используете для хеджа шорт фьючерса, то, грубо, чтобы говорить об альфе надо иметь плюс выше процентной ставки. 
            Но я -то имел два вопроса, почему 80% и почему хедж не переменный во времени. 
              • SergeyJu
                09 марта 2026, 10:46
                Дмитрий Овчинников, я не про фондирование, а про то, что фьюч шорт, спот лонг (MCFTR) дает процентную ставку. По факту чуть меньше, чем LQDT. 
                  • SergeyJu
                    09 марта 2026, 11:55
                    Дмитрий Овчинников, я, хоть и стараюсь использовать то, что торгую, иногда тоже конструирую модель для шорта. У меня модель шорта строится из разности LQDT и MCFTR. Поскольку LQDT не так давно появился, в более ранние периоды заменяю его на RUONIO  минус комиссию. 
      • Алекс Ч.
        09 марта 2026, 13:12
        Дмитрий Овчинников, если по хеджу убыток, и возникает отрицательная денежная позиция, то это как-то учитывается в тесте?
  • Riskplayer
    10 марта 2026, 00:32
    У Вас используется дивидендная корректировка (Цены скорректированы методом backward additive adjustment по дате закрытия реестра). И используется сигнал open[t] / open[t−252] − 1. Но дивидендная корректировка создает искаженный процентный рост цен, который используется в сигнале. Может лучше использовать мультипликативную корректировку? 

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн