Блог им. RomanMironov_d2b

Прогнал 3811 стратегий из гитхаба StockSharp на Мосбирже

Есть на гитхабе открытая библиотека StockSharp/AlgoTrading — 3811 готовых торговых стратегий. Скользящие, пробои, осцилляторы, Вайкофф, каналы, «машинное обучение». Всё бесплатно, бери и торгуй.

Мне стало интересно, что из этого выживает на нашем рынке с реальными издержками. И вообще я хотел сделать портфель стратегий, но нужно протестировать все, чтобы понимать. Запустить стратегии как есть нельзя — все файлы обёртки над .NET-движком StockSharp, доступа к моим данным у них нет. Поэтому 53 стратегии я портировал на Python вручную, логика входа-выхода один в один, и прогнал по 28 инструментам Мосбиржи.

Условия
Параметр Значение
Период 01.01.2024 — 25.06.2026 (2.5 года)
Инструменты 28: 8 акций, 8 фьючерсов на них, 6 товарных, 2 валютных, 4 индексных
Данные 5-минутные бары, ресемпл в 1h/4h
Прогонов 1592 связки «стратегия × инструмент»
Издержки, акции 0.05% на ногу
Издержки, фьючерсы биржевой сбор по группе контракта + 0.45 ₽ за контракт на ногу
Проскальзывание 0

Два уточнения сразу, иначе цифры прочитаются неверно.

Период — падающий рынок. Buy&hold отрицателен почти везде: GAZP −38.5%, ROSN −48.3%, CHMF −59.7%, по фьючерсам с контанго до −62.9%. Трендовые системы с шортом на таком отрезке выглядят лучше, чем они есть на самом деле.

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

Что показал прогон

Из 1592 прогонов до метрик дошли 1497, остальные отсеялись по числу сделок.

Показатель Значение
Медианная чистая доходность связки −24.5%
Доля прибыльных связок 26.6%
Медианный profit factor 0.86
Медианный Sharpe −0.89
Медианная просадка −34.7%

Три четверти связок убыточны. Само по себе это не приговор библиотеке — так выглядит любой набор шаблонов, прогнанный без отбора по всему пулу с честными комиссиями.

Положительную медиану по 28 инструментам имеют 9 стратегий из 51:

Стратегия ТФ Медиана дох. Прибыльных связок Бьют B&H PF
0006 Tripple MA 5m +36.0% 70.6% 73.5% 1.26
0019 CCI Breakout 1h +24.5% 64.3% 78.6% 1.13
1837 BW Wise Man 2 4h +20.0% 60.7% 67.9% 1.23
0432 MACD DMI 1h +16.1% 57.1% 75.0% 1.15
0001 MA CrossOver 5m +14.7% 55.9% 64.7% 1.11
0332 Donchian + Hurst 4h +10.2% 60.7% 71.4% 1.18
0007 Keltner Breakout 5m +5.4% 58.8% 64.7% 1.09
0002 N-Day Breakout 5m +4.1% 58.8% 64.7% 1.13
0005 Donchian Channel 5m +4.1% 52.9% 70.6% 1.13
Главный фактор — не индикатор, а оборот

Прежде чем разбирать лидеров, вот срез, который объясняет результат лучше любой классификации по индикаторам. Разбил все связки на пять групп по числу сделок:

Группа Медиана сделок Медиана доходности Прибыльных
Q1 (редкие) 59 −4.4% 43.9%
Q2 108 −8.2% 36.6%
Q3 248 −9.5% 41.1%
Q4 797 −55.4% 8.4%
Q5 (частые) 2737 −88.7% 3.0%

Корреляция Спирмена между числом сделок и доходностью — минус 0.64. Связь почти монотонная: чем чаще система торгует, тем надёжнее она убыточна. Из 300 самых активных связок прибыльны девять штук.

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

ТФ Медиана валовой Медиана чистой Разрыв
4h +1.7% −5.6% 5.5 п.п.
1h −3.9% −10.7% 7.4 п.п.
5m −14.2% −29.0% 10.5 п.п.
1m −7.7% −45.2% 32.9 п.п.

На минутках комиссия съедает 33 процентных пункта — больше, чем большинство систем вообще способны заработать. Для примера из живого прогона: 0019 CCI Breakout на SBER 1h даёт валовую доходность 48.1%, чистую — 1.8%.

Теперь главное

Смотрим на топ связок по доходности:

Стратегия Инстр. Сделок PF Чистая дох. CAGR MaxDD Sharpe
0001 MA CrossOver GAZP 293 1.77 +278.1% 93.6% −16.5% 2.75
0005 Donchian Channel SV 57 3.39 +270.5% 70.5% −13.5% 3.67
0001 MA CrossOver NVTK 293 1.64 +260.4% 89.1% −16.7% 2.84
0006 Tripple MA GAZP_FUT 134 2.12 +235.0% 67.0% −28.9% 3.48
0068 CCI Divergence NG 63 2.07 +234.1% 64.0% −34.1% 4.20
0019 CCI Breakout NVTK_FUT 341 1.45 +191.0% 64.3% −17.5% 2.11

CAGR под 90%, Sharpe выше 2.7, просадка 16%. Портфель по такой таблице собирается за пять минут.

А теперь тест. Берём ряд и циклически сдвигаем его по приращениям: распределение доходностей сохраняется, волатильность и её кластеризация сохраняются, а связь сигнала с будущим движением разрушается. Прогоняем ту же стратегию 200 раз на таких перемешанных рядах. То, что она «зарабатывает» там, и есть шум.

Пересортируем ту же таблицу по перевесу факта над медианой шума:

Связка Факт Шум Перевес p
0068 CCI Divergence × NG +234.1% +2.5% +231.6 п.п. 0.010
0022 ADX DI × NG +157.1% −62.7% +219.7 п.п. 0.050
0019 CCI Breakout × NVTK_FUT +191.0% +39.6% +151.3 п.п. 0.000
0019 CCI Breakout × GAZP_FUT +168.1% +57.7% +110.3 п.п. 0.000
0432 MACD DMI × NVTK_FUT +145.9% +68.5% +77.3 п.п. 0.015
0006 Tripple MA × GAZP +226.4% +218.4% +8.0 п.п. 0.230
0001 MA CrossOver × GAZP +278.1% +275.6% +2.5 п.п. 0.415
0001 MA CrossOver × ROSN_FUT +150.5% +149.5% +1.0 п.п. 0.435
0005 Donchian × SV +270.5% +284.3% −13.7 п.п. 0.630
0001 MA CrossOver × SV +138.7% +152.8% −14.1 п.п. 0.900

Две таблицы отсортированы практически наоборот.

Самая доходная связка всего исследования эджа не имеет. MA CrossOver на Газпроме даёт +278%, перемешанный ряд — +276%. Перевес 2.5 процентных пункта, p = 0.42. Стратегия зарабатывала не тем, что угадывала направление, а тем, что просто находилась в рынке на инструменте с большими движениями. То же самое у неё на GAZP_FUT и ROSN_FUT.

Вторая по доходности связка хуже собственного шума. Donchian на серебре: +270%, Sharpe 3.67, просадка всего 13.5% — и проигрывает перемешанному ряду 13.7 п.п.

А лучший эдж сидит там, где доходность лишь пятая по величине.

Портфель, собранный по верхним строкам таблицы доходности, состоял бы ровно из MA CrossOver и Donchian — то есть из двух систем, статистически неотличимых от случайности. Отсюда практический вывод, ради которого всё и затевалось: сортировка стратегий по доходности как инструмент отбора бесполезна.

Почему я не взял в портфель даже прошедших тест

Дальше начинается самое неприятное.

Вся прибыль живёт в верхних 5% сделок. Убираем их и пересчитываем:

Связка Как есть Без верхних 5% Медиана сделки
0001 MA CrossOver × GAZP +278.1% −29.2% −0.48%
0019 CCI Breakout × NVTK_FUT +191.0% −36.0% −0.52%
0019 CCI Breakout × GAZP_FUT +168.1% −45.9% −0.38%
0019 CCI Breakout × SV +130.8% −64.6% −0.47%
0432 MACD DMI × NVTK_FUT +145.9% −15.7% −0.62%
0006 Tripple MA × GAZP_FUT +235.0% +15.9% −0.46%

Семь связок из восьми проверенных уходят в минус, медиана сделки отрицательна у всех восьми.

Эдж не переносится на другие инструменты. Вот главный отрезвляющий срез:

Стратегия Связок Медиана Прибыльных Лучшая Вторая
0019 CCI Breakout 28 +24.5% 64.3% +191.0% +168.1%
0432 MACD DMI 28 +16.1% 57.1% +145.9% +130.4%
0068 CCI Divergence 34 −11.1% 38.2% +234.1% +56.3%
0022 ADX DI 28 −86.5% 7.1% +157.1% +35.7%

ADX DI на газе дал +157% и второй по величине перевес над шумом во всём исследовании. На остальных 27 инструментах его медиана — минус 86.5%, прибыльны 7% связок. Одиночный выброс, а не закономерность.

CCI Divergence — та же история. Лучший перевес над шумом во всём прогоне, а медиана по пулу −11.1%. Разрыв между газом (+234%) и следующим инструментом (+56%) — вчетверо. На акциях стабильно убыточна.

Результат затухает. У обеих лучших связок 2026 год уже в минусе:

Связка 2024 2025 2026
0019 CCI Breakout × NVTK_FUT +80.3% +67.4% −3.6%
0019 CCI Breakout × GAZP_FUT +83.7% +56.1% −6.5%
0432 MACD DMI × GAZP_FUT +58.3% +39.2% +4.5%

2026 год неполный, до 25 июня, но направление видно.

Итог

До статуса «заслуживает дальнейшей проверки» из 3811 стратегий дошли две — CCI Breakout и MACD DMI, обе на часовом таймфрейме. Не «работают». Именно заслуживают проверки: нужен более длинный ряд с полным циклом роста и падения, сужение круга проверяемых связок и пересчёт с проскальзыванием.

Дальше планирую разобраться с каждой стратегий и попробую оптимизировать параметры.


Полный отчет pdf опубликовал в телеграмм канале. 
MR Trade | Трейдинг на MOEX
— пишу про бэктестинг торговых стратегий на Мосбирже.

Если кому-то интересно, могу создать общий репозиторий на гитхабе для совместной работы.

Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
5.7К | ★19
36 комментариев
Может на дневных или недельных графиках потестить?
avatar
Rosh, в репозитории там стратегии ориентированы на ТФ до 1 дня. В принципе можно и нужно попробовать. Но мне больше интереснее найти внутридневной эдж.
Роман Миронов MR Trade, ТФ — не принципиален, разница будет только в комиссии.
VladMih, почему-то не отображается кнопка ответить на ваше сообщение

Конечно, вы все правильно говорите насчет инструментов и таймфреймов. Я сам тестировал различные стратегии в рамках другого исследования и видел, какие есть зависимости.

Этот материал в первую очередь дает возможность сузить или распланировать пайплайн по тестированию на будущее.
Роман Миронов MR Trade,  скорей всего  каждая из них требует не только свой ТФ, но и свои торговые инструменты (возможно даже какая-то заточена под один инструмент, так часто делают).
Очень сильно сомневаюсь, что все 4К стратегий заточены под ваш набор инструментов,
а без учета этого ваша огромная работа просто ни о чём.

Ещё и конкретный набор параметров у каждой ТС. ТФ, например, «чисто конкретный», а не любой, какой вы установили для всех (даже теоретически это глупо), а если в ТС используются фиксированные ТП и СЛ, тогда не тот инструмент или ТФ гарантированно убивают результат.
avatar
Роман Миронов MR Trade, внутри дня пробойные системы торговать как будто тяжелее, нужно время чтобы импульс реализовоался. И чем ниже частота сделок, тем меньше комсы платим
avatar
Все что в открытом доступе — не работает, проверено еще 10 лет назад.
Нужно УТП.
Василий Федорович, слишком категорично. Работают ММ, различные виды арбитражей — в открытом доступе это всё есть. Не работают именно такие индикаторные стратегии.

@Роман Миронов MR Trade Респект большой за труды! Пишите еще про бэктесты, всегда интересная ниша
avatar
TradingKit, спасибо. Приятно слышать поддержку.
Роман Миронов MR Trade, в репе есть на первый взгляд более интересные github.com/StockSharp/AlgoTrading/tree/main/API/StrategyTypes. Если найдете время их прогнать — лайк неглядя.
avatar
TradingKit, более интересные это какие? Ссылка не открывается.

Были примеры успешного их тестирования?
Роман Миронов MR Trade, убрал гиперссылку, точка в конце мешала, попробуйте снова.

Примеры были, да.
avatar
Василий Федорович, работает. Потому что работают банальные вещи, о которых забыли или не догадывается большинство. И эти банальные вещи лежат в 1001 редакции где только бы ни было. Поэтому автор идет в правильном направлении. Попробовать массой начать мониторить то, что «А вдруг». Ну всё конечно личное мнение, могу и ошибаться.
avatar

хорошая работа,  но результаты выглядят пессимистичными… ((

там их, случайно, в формате ТС Лаба нет? чтобы не переделывать/не_переписывать всё для проверки?

avatar
Ho_Chu, тс лаб это платформа для торговли? Не видел для него скриптов
Очень круто если честно. Сам написал десятки тысяч строк кода торговых систем. Твоё исследование очень понравилось
avatar
Выложить плиз код промой CCI
avatar
FF_ATR, Есть же ссылка


Из кнопки Code выбираешь Download ZIP. Потом выбирай C# или Python.
avatar
FF_ATR, Ростислав показал, где посмотреть. Это просили?
Чего не узнать, как выигрывают те, кто выигрывает. Если такие существуют. Пример псевдонима А.Г. не слишком вдохновляет.
Я всегда играл не по системе, а по наитию. На поиски системы убил не один год и с 2018 переключился на игру по тренду длиной в 5000 лет.
avatar
1. Данных мало. 
2. Предположение, что одна и та же система будет вывозить акции, валюты и товары почти наверное неверно. 
3. Что за циклический сдвиг, я не понял. 
avatar
SergeyJu, согласен. Это исследование дает задел для будущих исследований.

3. Идея. Нужно понять: стратегия зарабатывает потому, что угадывает движение, или просто потому, что находится в волатильном растущем/падающем ряду?
Проверка: разрушить связь сигнала с будущим, сохранив всё остальное.
Как устроен сдвиг
Берутся приращения цены (close[i]/close[i−1]), их порядок циклически сдвигается на случайное число баров, и ряд собирается заново от исходной стартовой цены. Метки времени остаются на месте — стратегия видит тот же календарь, но другую последовательность движений.

Такая проверка не говорит, что стратегия плохая. Она говорит, что если результат не зависит от реальной последовательности событий, то нет основания ожидать его в будущем именно от этой стратегии.
Это бесполезная работа — гонять стратегии без понимания внутренней логики ценообразования и статистических свойств.
Эдж вычленяется эксплуатацией каких-то стилизованных эмпирических фактов (stylized empirical facts)
Стилизованные факты служат ориентиром при построении моделей. Хорошая модель должна воспроизводить эти свойства, поскольку они отражают действительную реальность.
avatar
Сергей Сергаев, цена на краткосрочном горизонте это шум с каким-то дрейфом. Здесь только если рассматривать длинные таймфреймы.

У вас есть примеры?
Роман Миронов MR Trade, мои собственные исследования показывают что не шум (точнее кроме шума там есть и сигнал)
avatar
Сергей Сергаев, я соглашусь, что сигнал может быть. Но весь этот сигнал показывает, что прогнозируемая доходность после сигнала не более издержек на сделку. У меня так было. Но я не так давно увлекся алготрейдингом, поэтому могу чего-то не знать.
Роман Миронов MR Trade, ну как минимум для оценки «силы» сигнала сначала надо научиться раздельному тестированию входов и выходов.
Разделение входа покажет отклонение «сигнала» от средней по времени с момента отсчета. Если по какому-то условию отклонения нет — то оно не обладает предсказательной силой.
Так что работы с анализом много, но делаете Вы ее не в том направлении
avatar
Роман Миронов MR Trade, протестировал и оптимизировал все индикаторы в проге Метасток 7.2 с 2000 по 2007г. Надо формулу периода.Иначе все индюки опаздывают.Период зависит от перекрытия фракталов (углов из свечей ). Другой подход -коридор.Выход из малого коридора (период=3) в большой коридор(период 12 и более) это сигнал. Лучший индюк силы тренда R квадрат. Для боковика ББ болинджер (формула периода и ATR(формула периода). Для тренда коридор ошибки( формула периода и ATR ). Мораль — в основе волатильности — объем. В основе назначение фракталов — толкаю вперед или разворачиваю цену — объем по телу фрактала.  Надо считать силу фрактала. Фрактал из 1 и более свечей. Сила в тайме, размере фрактала(кол-во свечей) и объеме . 
Формализовать ВА Эллиота можно.Степан Демура использует 3 новых максимума подряд= сделка. Это примитивно наивно. Но танец цены это 3-2 три шага вперед и 2 назад . 
1 свеча день = РУ равен 12% от счета.СЛ= 1\2 от размаха фрактала. Защищаем минимум прибыли. Индикаторы и системы не нужны. Просто жарим в ПП правое плечо в ГиП. Смотрим мои комменты, графики с сигналами в  форумах акций и др.
avatar
Ведь прямо жирная важнейшая линия есть в этом посте - каждому инструменту - персональная стратегия. Только так оно в реальности работает, искать универсальный Грааль на все инструменты сразу бессмысленно.
avatar
Как говаривал один бывший повар, ныне безработный
«Не все грибочки одинаково полезны»
avatar
bocha, повар в России теперь имеет двойное значение )
avatar
Просто трейдер, как гласит народная мудрость, есть можно ВСЕ грибы. Правда, некоторые — только один раз.
avatar
Eugene Bright, слово «грибы» тут лишнее.
avatar
Просто трейдер, вам, буквоедам, не угодишь. Напишешь без «грибов», прицепитесь «а где грибы?» 
avatar

Прикольное тестирование из серии:
Штирлиц напоил собаку бензином,
собака пробежала 5метров и упала,
Бензин закончился, подумал Штирлиц!
avatar
Beach Bunny, потому что евро-2
avatar

Читайте на SMART-LAB:
Фото
EUR/USD: медведи берут паузу «за свой счет», пока быки разогревают двигатели?
Европейская валюта успешно оттолкнулась от мощного технического перекрестка, который сразу привлек внимание крупных участников рынка. Пара...
Фото
Средние доходности облигаций в зависимости от кредитного рейтинга. От B- до AA+
Средние доходности облигаций в зависимости от кредитного рейтинга (бледные столбцы — доходности без сглаживания). И как они изменились за...
Фото
Турнир алготрейдеров в РИЧ 2026: призовой фонд, условия и как участвовать
Всем привет! Т-Инвестиции объявили турнир алготрейдеров в рамках РИЧ 2026 — только роботы, никакой ручной торговли. Призовой фонд 550 000 ₽,...

теги блога Роман Миронов MR Trade

....все тэги



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