В прошлой своей статье я открыл для себя интересную, но неприглядную истину — что рынок это то место, где можно зарабатывать даже не зная будущего. Не угадывая направление — пойдёт вверх или вниз, не изображая из себя Вангу, а лишь правильно работая с вероятностями и размерами позиции. Если вы подбрасываете монетку и ставите 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 г.

Комментарии (21)


  1. investfund-pro
    10.02.2026 00:56

    Возможно, вся идея, её реализация и выводы имеют значение для автора, но с точки зрения "обуздания" рынка изначальные вводные не выдерживают никакой критики.

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

    Так вот, свою лудоманию я перевёл в здравое русло именно через математику трейдинга. И если автор хочет ориентироваться на казино, но при этом понимает про коэффициент Шарпа, то разумнее качать не абстракции, а конкретные показатели из отчёта.

    Например, очевидно, что шортить — математически неправильно, и что "купи и держи" даст свои результаты когда-нибудь (математически) — пусть, возможно, в обесценившихся к тому времени деньгах.

    Когда-то, я упражнялся в доведении своих мыслей на широкую аудиторию "коллег" (на смартлабе) и в частных беседах — выяснил, что ни один из соискателей не может ответить на вопрос что именно он хочет, к чему стремится, что для них означает "Грааль", который все ищут. Обычно, итогом этих моих расспросов и уточнений вырисовывался ответ, что претенденты хотят нащупать модель, где они бы зарабатывали на каждом тике (и эту мысль за них приходилось формулировать мне, т.к. визави просто не понимали подобных сущностей).

    Разумеется, это фанаберия, и желание убежать как можно дальше от умения забирать деньги с рынка.

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


    1. empenoso Автор
      10.02.2026 00:56

      Спасибо за ваш комментарий.

      Задумался


  1. dyadyaSerezha
    10.02.2026 00:56

    Если вы подбрасываете монетку и ставите 100% на орла — вы банкрот при первом же выпадении решки. Но если вы дробите капитал по формуле Келли или используете ребалансировку, вы можете зарабатывать даже при череде неудач.

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

    И доходность, едва перекрывающая инфляцию.

    Уточните, что за доходность и что за инфляция. Если последняя взята из официальных отчётов Росстата, то поздравляю - вы в минусе.

    И главное, математика сработала - она дала небольшой плюс (без учета инфляции). Совершенно другое дело, что вам такого плюса мало. Как я уже написал выше, никакая математика не позволит зарабатывать на решке. Так чего же вы расстраиваетесть? Не понимаю.

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


    1. empenoso Автор
      10.02.2026 00:56

      Бенчмарк обгоняет индекс IMOEX


      1. dyadyaSerezha
        10.02.2026 00:56

        Чему противоречит это утверждение?


  1. Edwward
    10.02.2026 00:56

    Коэффициент Шарпа 2,55 против рыночного -0,57 доказывает: это не случайность, а математическая победа над хаосом.

    На исторических данных? Почему это не может быть случайностью?


    1. empenoso Автор
      10.02.2026 00:56

      На исторических данных.


  1. DenSigma
    10.02.2026 00:56

    Если ваш алгоритм работает, кто при этом теряет?


    1. empenoso Автор
      10.02.2026 00:56

      Другие участники торгов


    1. empenoso Автор
      10.02.2026 00:56

      Биржа ведь не безадресна


    1. Mihatron
      10.02.2026 00:56

      Люди на бирже потеряют деньги независимо от того, участвуешь ты в этом или нет. Они уже там, уже отдали свои деньги бирже.

      Другое дело призывать людей отдавать деньги бирже, это уже будет твоя вина.


      1. empenoso Автор
        10.02.2026 00:56

        Я просто описываю свой эксперимент и никого никуда не призываю


  1. house2008
    10.02.2026 00:56

    Это долгосрочная инвестирование, дэй трейдинг скальпинг или свинг ? Сколько сделок в каком интервале ваш алгоритм делал ? Смысл от эти +10 годовых, когда еду на завтра на что-то нужно покупать.


    1. empenoso Автор
      10.02.2026 00:56

      скорее свинг


  1. Battary
    10.02.2026 00:56

    Не очень верю алгоритмам и каким-то расчетам, когда на бирже в основном торгуют люди. У большинства этих людей есть психология, задачи на месяц или квартал, необходимости платить ипотеку и покупать жене(или мужу) украшения с премии.

    Доходность алгоритма — это прямо как-то мало и даже не бьёт инфляцию, не находите? Rule of thumb, которому меня научили в свое время: Реальная инфляция = Текущая ставка ЦБ — Целевая ставка ЦБ.

    И в заключение, если не идти против институциональных инвесторов, придерживаться фундаментальных факторов и быть чаще правым, чем нет, то на российской бирже без проблем можно делать 15-25% годовых даже сейчас (в условиях падающего рынка). А в такие моменты как в 2022, можно было увеличить портфель очень сильно, например мой знакомый получил более 400% годовых потому что сработали страховочные опционы, а интересующие его активы продавались за треть-четверть от их цены до кризиса.


  1. Ibirseven
    10.02.2026 00:56

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


    1. empenoso Автор
      10.02.2026 00:56

      Без предсказаний - в этом как раз и другой подход


      1. house2008
        10.02.2026 00:56

        Без предсказаний

        Я не совсем понял откуда вы взяли что кто-то предсказывает цены. Все торгуют по математике + РР.


        1. empenoso Автор
          10.02.2026 00:56

          Кто все?


          1. house2008
            10.02.2026 00:56

            Кто все?

            Трейдеры за которыми я слежу на криптовалютном рынке, золоте и форексе.


  1. Petroleum_man
    10.02.2026 00:56

    Обработка текста нейронкой сразу отталкивает, хотя фактура вполне человеческая