В прошлой своей статье я открыл для себя интересную, но неприглядную истину — что рынок это то место, где можно зарабатывать даже не зная будущего. Не угадывая направление — пойдёт вверх или вниз, не изображая из себя Вангу, а лишь правильно работая с вероятностями и размерами позиции. Если вы подбрасываете монетку и ставите 100% на орла — вы банкрот при первом же выпадении решки. Но если вы дробите капитал по формуле Келли или используете ребалансировку, вы можете зарабатывать даже при череде неудач.

В прошлой статье по советам Дмитрия Шалаева я рассматривал математический трюк когда на сгенерированных котировках при убыточном активе капитал рос, а стратегия купил и держишь медленно обнуляла виртуальный счёт.

Результаты симуляции «токсичного» актива
Результаты симуляции «токсичного» актива

В комментариях многие справедливо написали что теория — это хорошо, но реальный рынок — это совершенно другое. Что там существует комиссии, проскальзывания, разные режимы торгов, человеческая психология и главное — что я буду делать сам без математика в напарниках? 

Так вот, я решил принять этот вызов и самостоятельно, без Дмитрия Шалаева разобраться как похожая стратегия может вести себя на акциях Московской биржи.

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

Как выглядит моё казино

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

У меня уже был опыт с готовыми системами, например с библиотекой Backtrader на питоне, но поскольку идея здесь значительно отличается от привычных систем теханализа, то я решил действовать на чистом Python.

Котировки

Поскольку уже достаточно много брокеров предоставляют свои API для частных лиц, то скачать историю котировок совершенно не проблема:

Просто выбираю своего брокера и быстро скачиваю исторические минутные котировки.

Скачиваю котировки акций Мосбиржи через API брокера
Скачиваю котировки акций Мосбиржи через API брокера

Бенчмарк

Дальше скачиваю значения индекса IMOEX2 для бенчмарка. Это оказалось чуть сложнее и поэтому беру значения индекса напрямую через API Московской биржи. 

Это занимает чуть больше времени.

Загружаю индекс IMOEX2 для бенчмарка
Загружаю индекс IMOEX2 для бенчмарка

Нормализация

Все котировки обычно в текстовом формате и содержат OHLCV — это стандартный формат рыночных данных, описывающий ценовое движение актива за определенный период (свечу). Он включает 5 показателей: Open (открытие), High (максимум), Low (минимум), Close (закрытие) и Volume (объем сделок).

Но раз активов очень много и мне не нужны все эти показатели, то написал скрипт который переведёт кодировки из текстового формата в более быстрый Parquet формат файлов и оставит только цены закрытия. Данные занимают в 10 раз меньше места и читаются очень быстро.

Привожу всё к единому формату
Привожу всё к единому формату

Кастинг акций

Дальше написал такой скрипт, который будет делать выборку акций. 

Философия здесь была очень простая: мне не нужны акции, которые хорошо растут, как это не странно звучит. 

Потому что на растущем рынке зарабатывают все и для этого не нужен ни алгоритм, ни математика, ни мозг. Мне были интересны другие случаи. 

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

Я делаю выборку не руками, не учитываю новости и не «чувствую рынок». Это не моя интуиция — это выбор алгоритма, которому всё равно, какие у тикера буквы.

Провожу отбор бумаг
Провожу отбор бумаг

Машина времени

Большинство новичков делают одну и ту же ошибку: подгоняют параметры под всю историю сразу. Это самообман. В реальности у нас нет котировок из завтрашнего дня.
Поэтому мой конвейер живет в «скользящем окне».

  1. Шаг 1: система видит только 2020 год. Она анализирует волатильность, отбирает топ-10 самых подходящих акций и формирует портфель. Затем наступает 2021-й — и мы проверяем, сколько денег этот портфель заработал (или слил) на «неизвестных» данных.

  2. Шаг 2: окно расширяется. Система учится на данных 2020–2021 годов. Снова отбор, снова тесты — но уже на 2022-м.

  3. Шаг 3: обучение на 2020–2022, торговля в 2023-м.

Никакого подглядывания в будущее. Если в 2022-м рынок рухнул, а мой алгоритм, обученный на спокойном 2021-м, этого не предвидел — я получаю убыток. Всё как в жизни.

Все шаги вместе
Все шаги вместе

Визуализация процесса

В моих логах запуска pipeline.py видно что алгоритм проходит год за годом. 

И это именно инженерный подход, когда мы не ищем грааль, а тестируем идею и логику.

Пайплайн
Пайплайн

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

Вся система заработала, при этом она имеет модульную архитектуру и валидные данные. 

Но как видно из логов даже самый идеальный код не гарантирует, что можно легко отбирать деньги у других людей на рынке.

Драма в цифрах (2021–2026)

Привожу мою интерпретацию из логов:

2021 — штиль

Рынок рос, алгоритм скучал. Сетка расставлена, но рыба не клюёт: +0,26%. Деньги не теряются, но и не зарабатываются — плата за осторожность.

2022 — идеальный шторм

Рынок рушится, вокруг паника, частные инвесторы теряют по 30–50% депозита. И здесь наступает звёздный час математики: +8,79% за год. Пока люди продавали на эмоциях, алгоритм методично скупал. Не потому что «верил в отскок», а потому что он был заложен в вероятностной модели заранее.

Ниже конкретный пример

ПАО «Якутская топливно‑энергетическая компания (ЯТЭК)», тикер YAKG
ПАО «Якутская топливно‑энергетическая компания (ЯТЭК)», тикер YAKG

Хороший наглядный пример QuantStats отчета для ПАО «Якутская топливно‑энергетическая компания (ЯТЭК)», тикер YAKG

В этом отчёте YAKG очень наглядны цифры за 2022 года. Пока индекс Мосбиржи (IMOEX2) падал с убытком -26% и просадкой -39%, алгоритм вышел в плюс на 6.81%.

Но настоящая магия — в графе рисков. Max Drawdown стратегии составил микроскопические -0,2%! Пока рынок штормило с волатильностью 46%, а стратегия стояла неподвижно 3,29%. Коэффициент Шарпа 2,55 против рыночного -0,57 доказывает: это не случайность, а математическая победа над хаосом.

2024 — болото

Пилообразное падение без выраженных отскоков. Результат -4,8%.

Итоги

Итог шести лет неутешительный: сложный алгоритм, сотни сделок и… доходность, едва перекрывающая инфляцию. 

Математика умеет выживать. Печатать деньги пока нет.

Пример удачного года
Пример удачного года

Почему Грааль не сработал: математика против физики рынка

Здесь конечно возникает большой вопрос к идее: если модель корректна, то почему бэктест на истории так слаб?

Думаю что результаты в том числе слабые из‑за учёта комиссий, потому что сделок на некоторых активах было очень много. Потом, у каждого рынка есть своя специфика и Московская биржа не такой уж и волатильный рынок (по сравнению с другими конечно). 

И всё же называть мой тест провалом неправильно. За шесть лет, включая 2022-й, система ни разу не слила депозит, а просадки были маленькие.

Вообще похоже на то, что я построил не печатный станок, а сейф — мечту риск‑менеджера и кошмар любителя «иксов».

Главный вывод который я сделал для себя: математика отвечает за выживание, но доходность определяется средой применения этой математики.

Хорошая новость — алгоритм жив. Значит, проблема не в нём, а в полигоне. В следующей статье я планирую ступить на неизведанное для себя плато, туда, где волатильность часто зашкаливает — на крипторынок и посмотреть как тесты поведут себя там. Или буду работать над улучшением версии для Московской биржи. Пока не решил. Как думаете лучше поступить?

Там математика может зазвучать совсем иначе.

Может и Дмитрий Шалаев подсобит с идеями.

Автор: Михаил Шардин
🔗 Моя онлайн‑визитка
📢 Telegram «Умный Дом Инвестора»

10 февраля 2026 г.