close

Блог им. Dmi3

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


6.3К | ★18
71 комментарий
Тестирование и оптимизация целиком в клод?
Вы в него файлы котировок пихали?
avatar
PanIvan, 
котировки и мое управление процессом тестирования.

Дмитрий Овчинников, а какой вывод как самого инструмента для тестов? можно юзать?
avatar
PanIvan, 
нужно :)
Дмитрий Овчинников, а таблички эти красивые кто строит клод или вы сами?
avatar
PanIvan, 
все клод делает, я только кнопки нажимаю :)
Дмитрий Овчинников, Выкладывайте в github здесь попробуем докрутить до 100%-ки ML накинем сверху оптимизатор XG-Boost какой-нибудь.
avatar
Дмитрий Овчинников, большое спасибо вам за столь наглядную информацию!
Сам я подобное не имею навыков в софте протестировать, но всегда было интересно посмотреть варианты моментумов, читая тут того же Силаева.
А у вас даже вариант с логичным хеджем рассмотрен!
11 лет может и невеликая дистанция, но для выводов уже кажется подходящей.
avatar
Опус или Соннет?
Просто трейдер, 
на моих задачах без разницы. устриц ел.
Дмитрий Овчинников, значит Соннет. Жаль.
Просто трейдер, 
при переходе на опус включается недельный лимит, который меня выбивает сразу, но вы можете использовать то, что вам кажется более удобным для вас :)

Дмитрий Овчинников, ну без Опуса конечно не очень интересно что-то строить. Он на голову выше. Я в принципе не читаю исследования если они построены не на передовых моделях.
Просто трейдер, 
ну, дело не в модели, правда. я начал одну систему на опусе и потом, когда заканчивал на соннете, нашли там концептуальные косяки.
ну, хотя, для туристов, может быть и важно, не знаю :)
Дмитрий Овчинников, рекомендую Опус. Там есть хороший логин с большими лимитами. Соннет не то, он много врет особенно в части фин анализа. И плохо умеет работать с бигдатой. Он в принципе не умеет и неправильно создает питон скрипты по анализу и рисерчу.
Просто трейдер, 
правильно и неправильно я способен оценить самостоятельно. а бигдаты в финанализе и рядом нет.
Дмитрий Овчинников, как же нет. БигДата — это от несколько десятков терабайт. И неструктурированность данных (новости, отчеты и другое).

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

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

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

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

этот пост немного про другое. про то что:
— сейчас есть механизмы, которые способны упростить решение подобных задач
— темы, на которых спекулируют многочисленные инфоцыгане, возможно разобрать самостоятельно и понять, что они фигня/не фигня.
Дмитрий Овчинников, 

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

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

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

4) Да, механизмы есть, хорошее время.
Просто трейдер, 
интересные, в моем контексте, значит прибыльные :)
Дмитрий Овчинников, интересно, сколько у Вас реально ушло времени? 
avatar
SergeyJu, 
это исследование пол-дня или день, но надо понимать, что все данные загружены, у Claude есть четкий регламент to do из прошлых чатов и я знаю, что хочу сделать и увидеть.
Дмитрий Овчинников, когда все данные загружены и выверены (сплиты, дивы, остановы торгов, переименование активов), дописать програмулю и подергать параметры в те же полдня и выходит. Ну, день. Если честно, самая простая и недолгая часть работы. 
avatar

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

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

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

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

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

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

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

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

avatar
Op_Man💰, 
думающие это и так знают, а остальным все равно, они будут покупать то, что посоветуют в мозговике или что-то типа того.

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

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

avatar
Op_Man💰, 

полдня для такого бескорыстного поступка — роскошь:)

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

это просто побочный продукт моего исследования. 

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

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

avatar
Op_Man💰, 
может быть когда-нибудь напишу :)

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

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

avatar
Дмитрий Овчинников, ну, трендовухи на фьючах тоже работают худо-бедно. Вот, золото выстрелило. 
avatar
SergeyJu, 
так это не инвесторское, а трейдерское. там много чего работает :)
Дмитрий Овчинников, моментум — тоже трейдерское, имхо. Настоящий инвестор — тот кто реально может участвовать в управлении бизнесом. Все остальное — красивое словцо для лохов, которых заманивают в спекуляции под ложным флагом инвестиций. 
avatar

Дмитрий Овчинников, шикарно! Но это уже что-то не особо инвестиционное с такими цифрами, похоже.

Фишка, вероятно, в отказе от дорогой защиты в пользу дешёвой (ОФЗ) и, возможно, более строгого отбора или добавили какую-то активную спекулятивную составляющую.

У вас их уже так много накопилось, что придумали свою систему кодировки?)  К3, B4... 

Классно, конечно! Очень рад вашим открытиям. Подтверждается тезис, что технологии в умелых руках творят чудеса.

Модель в реале когда запустите?

Может фонд организуете? Не думали в этом направлении? 

avatar
Макс просадка 2.8% или даже 1.8% при ребалансе раз в месяц??
avatar
Павел Ку, у автора -18,3%. И это при условии хеджирования. Правда, я не понял, почему хедж именно 80%. По идее, моментум должен иметь бету больше, чем 1 и напрашивается хедж больше 1. 
avatar
SergeyJu, либо я не туда посмотрел, либо картинки изменились, было две цифры 1.8% для хеджа и 2.8% для без хеджа. Это и удивило.

По бете, да, больше 1 должен быть согласно формуле, иначе нет смысла покупать на росте. Вопрос как всегда в отрицательной составляющей беты
avatar
SergeyJu, 
зачем хеджировать больше 1? какой в этом экономический смысл?
Дмитрий Овчинников, смотря что оптимизировать. У меня при хеджировании моментума отношение доходности к риску получается максимальным, если хедж чуток превосходит спот по номиналу.
P.S. а экономический смысл можно оставить туристам, пусть развлекаются 
Image
avatar
SergeyJu, 

Оптимум по Calmar однозначно на 0.8× — сверххедж не помогает, просадка начинает расти обратно (шортим больше чем нужно, теряем на росте рынка).
Image
Дмитрий Овчинников, у нас существенно разные алгоритмы моментумов. Отсюда и разные подходы к хеджу и разные «оптимальные» параметры. Наверное, это хорошо, что мы расходимся в подходах. 
avatar
SergeyJu, 
да, разумеется. тем более, что я этот вариант не торгую. но в другой системе, которая торгуется на реальных деньгах и использует хеджирование, оптимальный размер хеджа составляет 0.5
Дмитрий Овчинников, у меня сейчас динамический хедж с максимумом 100%.
avatar
А что является сигналом для хеджа?
avatar
Алекс Ч., 
хеджируется всегда вся часть в акциях на 80% от суммы покупки.
Дмитрий Овчинников, почему всегда? 
avatar
SergeyJu, 
если стратегия при 100% хедже сохраняет положительные результаты, значит альфа в ней есть. 
Дмитрий Овчинников, если Вы используете для хеджа шорт фьючерса, то, грубо, чтобы говорить об альфе надо иметь плюс выше процентной ставки. 
Но я -то имел два вопроса, почему 80% и почему хедж не переменный во времени. 
avatar
SergeyJu, 
 если Вы используете для хеджа шорт фьючерса, то, грубо, чтобы говорить об альфе надо иметь плюс выше процентной ставки. 
Контанго работает в нашу сторону. ГО уже даже сбер дает под бумаги. 
80% это величина, полученная в результате оптимизации. Переменный хедж это уже трендовая стратегия на MIX в шорт и это совсем другая история.
Дмитрий Овчинников, я не про фондирование, а про то, что фьюч шорт, спот лонг (MCFTR) дает процентную ставку. По факту чуть меньше, чем LQDT. 
avatar
SergeyJu, 
в тестах для хеджа считается по индексу IMOEX, так что дополнительной альфы там нет. в реальной торговле шорт через фьючерс.
Дмитрий Овчинников, я, хоть и стараюсь использовать то, что торгую, иногда тоже конструирую модель для шорта. У меня модель шорта строится из разности LQDT и MCFTR. Поскольку LQDT не так давно появился, в более ранние периоды заменяю его на RUONIO  минус комиссию. 
avatar
Дмитрий Овчинников, если по хеджу убыток, и возникает отрицательная денежная позиция, то это как-то учитывается в тесте?
avatar
Алекс Ч., 
нет, убытки и прибыли, возникающие от вариационной маржи не учитываются.

Дмитрий Овчинников, некорректно. 
avatar
SergeyJu, 
разница 0.067% CAGR
Image
У Вас используется дивидендная корректировка (Цены скорректированы методом backward additive adjustment по дате закрытия реестра). И используется сигнал open[t] / open[t−252] − 1. Но дивидендная корректировка создает искаженный процентный рост цен, который используется в сигнале. Может лучше использовать мультипликативную корректировку? 
avatar
Riskplayer, 
возможно вы правы, но это уже вне сферы моего интереса.

Читайте на SMART-LAB:
Инвестиции без спешки: торгуем в выходные
Алексей Девятов Рынок часто движется импульсами, тем важнее оценивать активы без спешки, не отвлекаясь на инфошум. Для этого отлично подходят...
Фото
EUR/NZD: Тень фигуры нависла над попыткой роста
Кросс-курс EUR/NZD тестирует ключевую зону поддержки, одновременно пытаясь закрыть день моделью «бычьего поглощения». Покупатели не оставляют...
Разруливаем год Делимобиля в шоу «Акционеры. Цифры»
Провели эфир с топ-менеджерами оператора каршеринга — компании Делимобиль. Узнали из первых уст взгляд на финансовые результаты бизнеса за...
Фото
Сбер РПБУ февраль 2026 г. - снижение резервов помогло удержать рекордную прибыль
Сбер опубликовал результаты за 2 месяца работы в 2026 году по РСБУ. Чистая прибыль за 2 месяца составила 325 млрд руб. (+21,4%). За февраль...

теги блога Дмитрий Овчинников

....все тэги



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