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

В комментариях многие справедливо написали что теория — это хорошо, но реальный рынок — это совершенно другое. Что там существует комиссии, проскальзывания, разные режимы торгов, человеческая психология и главное — что я буду делать сам без математика в напарниках?
Так вот, я решил принять этот вызов и самостоятельно, без Дмитрия Шалаева разобраться как похожая стратегия может вести себя на акциях Московской биржи.
Про биржу часто пишут что это казино, но в данном случае я не буду ставить на красное или чёрное, а буду пытаться зарабатывать на самом факте вращения колеса рулетки: на волатильности, обороте и вероятности — то есть буду вести себя как казино, а не как игрок. Казино не знает, кто выиграет следующую раздачу, но оно знает, что в конце дня будет в плюсе.
Как выглядит моё казино
Поскольку я собираюсь построить своё казино, то мне нужен не азарт, а в первую очередь инфраструктура. Если говорить простым языком, то я хочу протестировать свою стратегию на реальных данных Московской биржи.
У меня уже был опыт с готовыми системами, например с библиотекой Backtrader на питоне, но поскольку идея здесь значительно отличается от привычных систем теханализа, то я решил действовать на чистом Python.
Котировки
Поскольку уже достаточно много брокеров предоставляют свои API для частных лиц, то скачать историю котировок совершенно не проблема:
Тинькофф → developer.tbank.ru
Алор → alor.dev
Финам → trade‑api.finam.ru
БКС → бета‑тестирование bcs.ru
Просто выбираю своего брокера и быстро скачиваю исторические минутные котировки.

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

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

Кастинг акций
Дальше написал такой скрипт, который будет делать выборку акций.
Философия здесь была очень простая: мне не нужны акции, которые хорошо растут, как это не странно звучит.
Потому что на растущем рынке зарабатывают все и для этого не нужен ни алгоритм, ни математика, ни мозг. Мне были интересны другие случаи.
Алгоритм идентифицирует временные дисбалансы волатильности — ситуации, когда статистические свойства актива временно выходят за границы устойчивого диапазона.
Я делаю выборку не руками, не учитываю новости и не «чувствую рынок». Это не моя интуиция — это выбор алгоритма, которому всё равно, какие у тикера буквы.

Машина времени
Большинство новичков делают одну и ту же ошибку: подгоняют параметры под всю историю сразу. Это самообман. В реальности у нас нет котировок из завтрашнего дня.
Поэтому мой конвейер живет в «скользящем окне».
Шаг 1: система видит только 2020 год. Она анализирует волатильность, отбирает топ-10 самых подходящих акций и формирует портфель. Затем наступает 2021-й — и мы проверяем, сколько денег этот портфель заработал (или слил) на «неизвестных» данных.
Шаг 2: окно расширяется. Система учится на данных 2020–2021 годов. Снова отбор, снова тесты — но уже на 2022-м.
Шаг 3: обучение на 2020–2022, торговля в 2023-м.
Никакого подглядывания в будущее. Если в 2022-м рынок рухнул, а мой алгоритм, обученный на спокойном 2021-м, этого не предвидел — я получаю убыток. Всё как в жизни.

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

Пайплайн — это последовательность этапов, через которые проходит проект от начала до завершения, представляющая собой структурированный рабочий поток, автоматизирующий процесс и обеспечивающий его прозрачность и управляемость
Вся система заработала, при этом она имеет модульную архитектуру и валидные данные.
Но как видно из логов даже самый идеальный код не гарантирует, что можно легко отбирать деньги у других людей на рынке.
Драма в цифрах (2021–2026)
Привожу мою интерпретацию из логов:
2021 — штиль
Рынок рос, алгоритм скучал. Сетка расставлена, но рыба не клюёт: +0,26%. Деньги не теряются, но и не зарабатываются — плата за осторожность.
2022 — идеальный шторм
Рынок рушится, вокруг паника, частные инвесторы теряют по 30–50% депозита. И здесь наступает звёздный час математики: +8,79% за год. Пока люди продавали на эмоциях, алгоритм методично скупал. Не потому что «верил в отскок», а потому что он был заложен в вероятностной модели заранее.
Ниже конкретный пример

Хороший наглядный пример 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 г.
Комментарии (21)

dyadyaSerezha
10.02.2026 00:56Если вы подбрасываете монетку и ставите 100% на орла — вы банкрот при первом же выпадении решки. Но если вы дробите капитал по формуле Келли или используете ребалансировку, вы можете зарабатывать даже при череде неудач.
Нельзя ставить эти предложения вместе, потому что на решке нельзя зарабатывать никогда, о чем та самая формула и говорит.
И доходность, едва перекрывающая инфляцию.
Уточните, что за доходность и что за инфляция. Если последняя взята из официальных отчётов Росстата, то поздравляю - вы в минусе.
И главное, математика сработала - она дала небольшой плюс (без учета инфляции). Совершенно другое дело, что вам такого плюса мало. Как я уже написал выше, никакая математика не позволит зарабатывать на решке. Так чего же вы расстраиваетесть? Не понимаю.
И самое главное - биржа это не случайный процесс, потому что в нем участвуют люди с их психологией и алгоритмы, учитывающие внешние источники данных, которые действительно сильно влияют на котировки несмотря на любую историю за прошлые годы, которую ваш алгоритм так старательно изучил.

Battary
10.02.2026 00:56Не очень верю алгоритмам и каким-то расчетам, когда на бирже в основном торгуют люди. У большинства этих людей есть психология, задачи на месяц или квартал, необходимости платить ипотеку и покупать жене(или мужу) украшения с премии.
Доходность алгоритма — это прямо как-то мало и даже не бьёт инфляцию, не находите? Rule of thumb, которому меня научили в свое время: Реальная инфляция = Текущая ставка ЦБ — Целевая ставка ЦБ.
И в заключение, если не идти против институциональных инвесторов, придерживаться фундаментальных факторов и быть чаще правым, чем нет, то на российской бирже без проблем можно делать 15-25% годовых даже сейчас (в условиях падающего рынка). А в такие моменты как в 2022, можно было увеличить портфель очень сильно, например мой знакомый получил более 400% годовых потому что сработали страховочные опционы, а интересующие его активы продавались за треть-четверть от их цены до кризиса.

Petroleum_man
10.02.2026 00:56Обработка текста нейронкой сразу отталкивает, хотя фактура вполне человеческая
investfund-pro
Возможно, вся идея, её реализация и выводы имеют значение для автора, но с точки зрения "обуздания" рынка изначальные вводные не выдерживают никакой критики.
Сам я, к сожалению, совершенно не умею писать код (если бы умел, то давно бы создал стартап на тему рынка), но с рождения аутист со склонностью к математике (тоже не развил) и лудоман с дошкольного возраста.
Так вот, свою лудоманию я перевёл в здравое русло именно через математику трейдинга. И если автор хочет ориентироваться на казино, но при этом понимает про коэффициент Шарпа, то разумнее качать не абстракции, а конкретные показатели из отчёта.
Например, очевидно, что шортить — математически неправильно, и что "купи и держи" даст свои результаты когда-нибудь (математически) — пусть, возможно, в обесценившихся к тому времени деньгах.
Когда-то, я упражнялся в доведении своих мыслей на широкую аудиторию "коллег" (на смартлабе) и в частных беседах — выяснил, что ни один из соискателей не может ответить на вопрос что именно он хочет, к чему стремится, что для них означает "Грааль", который все ищут. Обычно, итогом этих моих расспросов и уточнений вырисовывался ответ, что претенденты хотят нащупать модель, где они бы зарабатывали на каждом тике (и эту мысль за них приходилось формулировать мне, т.к. визави просто не понимали подобных сущностей).
Разумеется, это фанаберия, и желание убежать как можно дальше от умения забирать деньги с рынка.
Возможно, если автор таки сформулирует для себя что именно должно получиться в результате, чтобы считать ответ правильным, а кейс решённым, то при обозначенных скиллах достижение результата будет быстрым.
empenoso Автор
Спасибо за ваш комментарий.
Задумался