Блог им. empenoso

Как я пытался обогнать алгоритмы на Мосбирже и потерпел неудачу: эксперимент с индикатором-поводырем

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

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

В качестве поводыря я хотел использовать внешний рынок и API американского поставщика данных для того чтобы получать информацию о:

  • XAU/USD — Gold Spot / US Dollar

  • EUR/USD — EUR/USD

  • BTC/USD — Bitcoin to US Dollar (котировки выбранной поставщиком биржи)

А саму торговлю осуществлять на фьючерсах Мосбиржи:

  • GDM6 — фьючерсный контракт на золото

  • GNM6 — фьючерсный контракт на золото (мини)

  • EDM6 — фьючерсный контракт на курс евро‑доллар США

  • IBM6 — фьючерсный контракт на акции IBIT iShares Bitcoin Trust ETF

  • BTM6 — фьючерсный контракт на Индекс МосБиржи Биткоина

Сразу уточню что я не пытался строить высокочастотную торговую систему или конкурировать с маркет‑мейкером. Я частное лицо, НЕ представитель фонда или брокера, а работаю через обычный брокерский API, задержка до меня в город Пермь — несколько секунд (иногда больше).

Visual Studio Code с папкой где собран весь проектVisual Studio Code с папкой где собран весь проект

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

Моя статья преследует две цели:

  • показать процесс исследования торговой идеи;

  • предостеречь новичков от потери времени и денег на похожие схемы.

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

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

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

Как я пытался обогнать алгоритмы на Мосбирже и потерпел неудачу: эксперимент с индикатором-поводыремМолния и гром

Так и в финансах иногда возникает схожая ситуация когда один рынок реагирует быстрее другого и по изменениям цены на первом рынке можно увидеть куда пойдёт цена на втором рынке.

Что такое фьючерс? Если совсем упрощённо, фьючерс — это биржевой контракт на будущую цену какого‑либо актива, но трейдера это просто инструмент для ставки на рост или на падение цены.

Моя стратегия: арбитраж одной ногой. Вообще классический арбитраж подразумевает одновременную работу на двух площадках, но я думал о более простой схеме:

  1. Получаем котировки мирового рынка.

  2. Видим резкое движение цены.

  3. Покупаем или продаём соответствующий фьючерс на Мосбирже.

  4. Ждём, пока российский рынок догонит мировой.

  5. Закрываем позицию.

То есть фактически это был поиск временного преимущества за счёт более быстрого источника данных.

Техническая реализация: как я это собирал

Для начала я бегло поискал какие вообще могут быть поставщики данных.

В эксперименте мне не очень хотелось тратиться, поэтому решил начать с бесплатного тарифа API TwelveData.

Как я пытался обогнать алгоритмы на Мосбирже и потерпел неудачу: эксперимент с индикатором-поводыремWebSocket документация TwelveData

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

А для Московской биржи я выбрал брокера Финам и записывал архив истории стаканов для схожих инструментов. Тут ограничений по количеству понятно не было.

Коннекторы пришлось написать самостоятельно на Python.

Коннектор для TwelveDataКоннектор для TwelveDataКоннектор для ФинамКоннектор для Финам

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

Как я пытался обогнать алгоритмы на Мосбирже и потерпел неудачу: эксперимент с индикатором-поводыремОбратите внимание — самая маленькая размерность времени у поставщика данных — это секунды, столбец exchange_ts, а не микросекунды как в локальном времени

Ещё можно заметить разницу в собираемых данных. Через внешний API TwelveData я мог получать только историю последних сделок — просто фиксацию факта изменения цены и с минимальной единицой времени 1 секунда.

А через API брокера Финам записывал данные биржевого стакана (Order Book). Это давало возможность видеть не просто последнюю цену, а актуальные котировки на покупку и продажу (bid/ask) и рассчитывать спред.

Как я пытался обогнать алгоритмы на Мосбирже и потерпел неудачу: эксперимент с индикатором-поводыремПри записи стакана через API брокера Финам — формат времени микросекунды 6 знаков (.194431) как локально, так и на сервере. А ещё видно что разница между отправкой данных сервером и моим получением — несколько секунд, то есть HFT сразу мимо

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

Скрипт, который ведёт запись данныхСкрипт, который ведёт запись данных

Всё это стало скатываться к программистским штукам, а не к исследованию рынка.

Ограничения эксперимента. Здесь я ещё раз хочу сказать, что у меня нет коллокации или прямого подключения к бирже и изначально высокочастотная торговля не планировалась. Поэтому преимущества на уровне быстрее секунды я просто не рассматривал. Я хотел найти лаги порядка нескольких секунд.

Вообще из моих данных: 2026-06-06T20:29:49.194431 — если после точки, разделяющей секунды и доли:

  • 3 знака (например,.194) — это миллисекунды

  • 6 знаков (.194431) — это микросекунды

  • 9 знаков — это наносекунды

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

Скрипт для анализа записанных данныхСкрипт для анализа записанных данных

После этого я написал ещё один скрипт, который:

  • синхронизировал котировки по времени вплоть до секунд;

  • рассчитывал кросс‑корреляции;

  • искал оптимальную задержку, тот самый лаг;

  • проверял статистическую значимость результатов;

  • оценивал потенциальную прибыльность сигналов.

Главный вопрос был простым: насколько мировая цена опережает Московскую биржу?

Разбор результатов

Биткоин (BTCUSD → BTM6 и IBM6): миф о задержке на Мосбирже

Совместных наблюдений: 236 980 (65.8 ч). Период: 2026–06-01 11:42:40+00:00 … 2026–06-06 15:00:06+00:00.

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

Анализ записанных данных скриптом показал что Best lag = 0 секунд (НО скрипт рассчитывает лучший лаг только для значений от 0 и выше, ведь в прошлое вернуться нельзя), но из графика видно что самый высокий столбик на -1!

Это означает, что цена на Мосбирже дернулась на 1 секунду раньше, чем пришла котировка с мирового рынка (через мой TwelveData API)!

Как я пытался обогнать алгоритмы на Мосбирже и потерпел неудачу: эксперимент с индикатором-поводыремBTC/USD — Bitcoin to US Dollar BTM6 — фьючерсный контракт на Индекс МосБиржи Биткоина

На графике столбиковая диаграмма:

  • по оси X (по горизонтали) идут секунды смещения (от -60 до +60 секунд);

  • по оси Y (по вертикали) — столбики, показывающие силу связи (корреляцию).

Как я пытался обогнать алгоритмы на Мосбирже и потерпел неудачу: эксперимент с индикатором-поводыремBTC/USD — Bitcoin to US Dollar → IBM6 — фьючерсный контракт на акции IBIT iShares Bitcoin Trust ETF

Как это так — хвост виляет собакой? Мосбиржа управляет мировым Биткоином? Конечно, нет. Похоже здесь кроется главная причина провала эксперимента — дело не в том, что Мосбиржа опережает мир, в в том что мой мировой поводырь (TwelveData) безбожно тормозит.

Но ведь была прибыль? Формально для BTM6 получилось:

  • точность определения направления около 53%;

  • средняя прибыль порядка 1.26 bps (базисных пунктов). А 1.26 базисных пункта — это всего лишь 0.0126% движения цены.

<code class="1c">  Направленное предсказание  (threshold=6.00 bps, horizon=5s) ...
  N сигналов: 12,050
  Accuracy:   53.16%
  Sharpe: 319.027 (это некорректный расчёт)
  Mean P&L:   1.2642 bps

  По часам суток (UTC) ...
ПериодNLag Corr  Acc
 07-10   41,111  0   0.2648   0.4760
 10-13   55,119  0   0.2858   0.5322
 13-16   50,361  0   0.2954   0.5615
 16-19   43,145  0   0.2478   0.5525
 19-21   23,298  0   0.2662   0.5852</code>

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

Золото (XAUUSD → GDM6 и GNM6): ложный след

Совместных наблюдений: 225,453 (62.6 ч)
Период: 2026-06-01 11:42:40+00:00 … 2026-06-06 15:00:05+00:00

Как я пытался обогнать алгоритмы на Мосбирже и потерпел неудачу: эксперимент с индикатором-поводыремXAU/USD — Gold Spot / US Dollar → GNM6 — фьючерсный контракт на золото (мини)Как я пытался обогнать алгоритмы на Мосбирже и потерпел неудачу: эксперимент с индикатором-поводыремXAU/USD — Gold Spot / US Dollar → GDM6 — фьючерсный контракт на золото

Если связь математически значима (p‑value < 0.05), столбик зеленый. Если это просто рыночный шум — столбик серый.

Но судя по графикам здесь запаздывание ещё более сильное. Красная линия показывает лучший лаг только для значений от 0 и выше, а самый высокий столбик в минусовой зоне около -30 секунд.

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

Посмотрите на график диаграммы рассеяния он усыпан множеством полупрозрачных синих точек (облако). Каждая точка — это конкретное наблюдение. По оси X — скачок мировой цены из API. По оси Y — скачок нашей цены спустя найденное время задержки (например, через 4 секунды для GDM6).

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

Как я пытался обогнать алгоритмы на Мосбирже и потерпел неудачу: эксперимент с индикатором-поводырем Как я пытался обогнать алгоритмы на Мосбирже и потерпел неудачу: эксперимент с индикатором-поводырем

Евро/доллар (EURUSD → EDM6): полный рассинхрон

Совместных наблюдений: 197,128 (54.8 ч)
Период: 2026-06-01 11:42:40+00:00 … 2026-06-06 14:59:20+00:00

Как я пытался обогнать алгоритмы на Мосбирже и потерпел неудачу: эксперимент с индикатором-поводыремEUR/USD — EUR/USD → EDM6 — фьючерсный контракт на курс евро‑доллар США

Аналогично — судя по графикам здесь запаздывание ещё более сильное. Красная линия показывает лучший лаг только для значений от 0 и выше, а самый высокий столбик в минусовой зоне около -30.

Почему не получилось?

Бесплатные данные — слабое звено. Самый простой вывод, который стал вырисовываться ещё до того, как я стал несколько дней записывать данные — минимальная единица времени в API была секунда, а не меньше, хотя реклама утверждала ~170 мс или это только на платном тарифе? К слову TwelveData не американская, а сингапурская компания.

Как я пытался обогнать алгоритмы на Мосбирже и потерпел неудачу: эксперимент с индикатором-поводыремРекламное описание Twelve Data

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

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

Эксперимент правда по итогу показал не то, что я хотел проверить. Вместо ответа на вопрос есть ли лаг между мировым рынком и Московской биржей я получил ответ, что бесплатный поставщик данных TwelveData запаздывает на 1–60 секунд относительно реал‑тайм стакана брокера Финама на Московской бирже.

Итого мой сетевой маршрут был: из Перми в Сингапур + бесплатный тариф + КВН.

Похоже я сравнивал не рынки, а два разных канала доставки данных с заведомо разной скоростью. Если хотите проверить мои данные — напишите мне, сброшу архив + скрипт.

После того, как я написал этот текст и дал почитать его LLM с синим логотипом — она мне дала ответ что это не история неудачи, а практическое руководством по тому, как НЕ надо исследовать рынок :) Так что не будь как нейросеть — напиши в комментриях — получится ли на ваш взгляд эта идея без аренды серверов или нет? Как уменьшить сетевую задержку? С позиции частного лица.

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

9 июня 2026 г.

Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
3.6К | ★4
#2 по плюсам, #3 по комментариям
38 комментариев
Что мешает брать цену на Биткоины/кукоины напрямую с криптобирж ? 
Публичные рыночные данные можно получать без открытия счета и создания API-ключей и без всяких искусственных задержек ( ну кроме задержек на расстояние).
avatar
Ну прямо сюжет фильма «Операция Колибри», а если серьезно то где то читал, что больше века назад американский трейдер свою линию телеграфа построил, что бы котиры без задержек получать. Так что ни что не ново под Луной)))
avatar
Alexz0001, хороший фильм кстати, правда они этой линией так и не воспользовались
потому что к окончанию постройки потерял экономический смысл — кстати с создателями фильма я не согласен — операторы связи сдают в аренду волокна и ничего — живут как-то.
Михаил Шардин, операторы связи сдают в аренду волокна и ничего — живут как-то.
так Вы не путайте комиссионый доход и арбитраж, в Вашем случае арбитраж в чистом виде. КМК вы не в том направлении копаете, не эффективнее ли было бы получать новостной сигнал и уже его играть в рынок? Но тут конечно надо его правильно интерпретировать (выбрать инструмент который даст большую отдачу, оценить направление и определить точку выхода и т.п.) 
avatar
Alexz0001, новостной сигнал тоже модная тема, но к заработку отношения похоже не особо имеет. Для частника
спасибо, очень познавательно.
avatar
Автор очень легкомысленно тратит свое время. Пытаться с почти нулевым бюджетом инфраструктуры, соперничать с мировыми китами, тратящими на это миллионы не это ли безумие? Арбитраж это самый примитивный вид трейдинга, и выигрывает не тот, кто умнее, а тот кто умнее и богаче.
avatar
chizhan, пока сам не пощупаешь так и не поймёшь ведь
chizhan, к тому же мне кажется не всё так грустно
chizhan, на мосбирже сейчас как в чистом поле, нет никаких мировых китов. Не понятно только откуда такие дикие задержки у ТС. Нормальная задержка от него до мобиржи должна быть менее 0,1с.
avatar
Reznor, это не так — я могу посчитать, но с криптобиржи данные стабильнее идут чем с Мосбиржи и это не 0,1 с
chizhan, «самый примитивный», даже обидно как-то)) Но по факту да, сама стратегия простая. Но ее реализация, это ого-го, потянет не каждый.
avatar
Отличная статья. Наконец что то по делу
avatar
priapism, рад что угодил
С удовольствием прочитал и написано хорошо! Что это, если не искусство?) спасибо, что делитесь своим опытом!
avatar
C1547 Qwdet, спасибо!
Я одного не пойму -
Автор реально не понимает что игра на мммвб идёт строго в одни ворота а именно против вас?

Вы можете использовать какие угодно индикаторы но повторяю там идёт игра на деньги а денег становится все меньше!!!

Их везде уже не то что уже нет, а тупо не хватает
Посмотрите на долги госконтор. Это триллионы.

А как вам прецендент с одной нефтяной конторой которая для выплаты дивидендов хочет взять кредит?
Да я под столом!!!

И в таких условиях на бирже что вы хотите словить то? Это они вытаскивают из вас деньги.
avatar
Al Bax, я не согласен с вашей точкой зрения, но спорить не буду
Михаил Шардин, давайте вместе
1. На бирже вы пришли за деньгами?
Но там же за деньгами и эмитент (история ВТБ как вам ?) и брокер и даже я с Мартыном.

Я прав?

2. Денег становится меньше.

3. Не забывайте что Коррупция бьёт рекорды и повторяю биржа притягивает к себе всех. Тут я не про наивняков а про проф. Аферистов.


Поймите — Никому не нужны акции умирающих предприятий, просто то что они умирают поймут не все и сразу
Помянем РТМ
avatar
Опережающий индикатор, Оооо автор изобрел машину времени!
avatar
Evgeni Chernik, она не заработала :)
Михаил! Приятно видеть топик по теме трейдинга — эта тематика становится все менее представленной здесь.
А теперь о грустном. Такая постановка и реализация задачи могли бы иметь смысл, если бы: используется hft + маркетмейкеры на ФОРТС не используют hft и не имеют высокоскоростное получение данных с зарубежных торгов. А в вашей постановке вы пытаетесь отхватить кусок хлебы маркетмейкера заведомо проигрывая ему в скорости как  реакции на событие, так и ее реализации в заявку.   
Владимиров Владимир, да
великолепно!
..
но топикстартер не учел одно что анализ на историях цен бессмысленно, искать надо причину изменения.
анализировать бы не мешало объемы в денежном виде и колличестве сделок, присмотритесь к «стакану» любого эмитента и увидите как маркетмакеры и «машино-торговые-системы» двигают цену и определяют направление..
… цена сделок по-сути это уже свершенная манипуляция,
… против трейдера играет вся мощь вычислительных систем и алгоритмы ну и конечно денежная величина
..
оцените, когда вы продаете позицию по «рыночной цене» выша продажа будет ниже рынка!
когда «крупняк» кроется по рынку ожидаемо он своим объемом вылит на планки и кто там их покупает (?)
так же и в обратную сторону «купить по рынку» откуда-то появляется объем ..
… то что брокеры и маркетмакеры манипулируют тут известно было всегда!
Кекиус Максимус, я и смотрел стаканы (Order Book)
Михаил Шардин, таким образом вы изучали из вне «черный ящик» алгоритма маркетмакера👍
Кекиус Максимус, мне кажется они очень простые, просто очень быстрые…
Михаил Шардин, есть методы «синтетика» это когда обсчитывают эксперимент. берут и строят вариации, цена предложения 1 и цена покупки 1 и как будет это работать
..
это очень математически емко и не тривиально!
..
решения очень неожиданные и «случайные» тк много еще не решенных типа коллизий.
..
если кто-то найдет способ решений то многие сферы техники упростятся в том числе и в трейдинге.
Кекиус Максимус, немного неконкретно и я не понял
Михал, вас ждет большое будущее. То, что вы делаете — песочница. В один прекрасный момент вы исчезнете с горизонта, а на деле начнётся серъезная работа.
avatar
Мой опыт один в один, только на других инструментах, с другим брокером и в другом терминале.
С тех пор, как узнал, что все быстрые сидят в коллокации и FPGA, я оставил затею быть быстрее, искать лаги, гэпы между биржами или парами.
Перешёл на более высокие тайм фреймы, тренды, классические стратегии и управление портфелем. Автоматизация действительно помогает делать ручные действия эффективными.
Технолога спросили,
-У Вас столько детей, наверное, Вы их любите? 
-Нет, я люблю сам процесс.
avatar
Как я пытался обогнать алгоритмы на Мосбирже и потерпел неудачу: эксперимент с индикатором-поводырем
 До Вас это пытались сделать десятки или даже сотни тысяч людей. Некоторые из которых достаточно умны, чтоб опубликовать свои статьи в научных журналах. Поэтому в 21 веке любое исследование надо начинать со знакомства с литературой, а не написания скрипта на питоне.
avatar
Synthetic, я просто сделал это публично на площадке Смартлаба. Я тоже публиковался раньше в научных журналах — это ничего не решает
Круто, спасибо что делитесь результатом.
А были времена когда хватало кухонного МТ4 и CFD на ES, WTI, YM, 250мс задержки + Квик и 50мс задержки, открытые стаканы, глаза и реакции.
И вообще все акции на ММВБ были более коррелированными, и можно было тупо арбитражить свои синтетический индекс против ришки, а ришка могла запаздывать до 2-3 секунд!
Вообще было нормой когда к примеру фьюч на сбер обгонял сам сбер.
avatar
Классически «поводыря» использовать лучше в коррелируемых продуктах, в статистическом арбитраже. Скажем цена на нефть является поводырём для сахара, кофе, какао и прочих агропродуктах при резких изменениях цены на нефть они обычно дёргаются в ту же сторону. Можно искать корреляции между продуктами и выяснять, который из них движется быстрее.

Тут не будет нужды в прямом доступе на биржу и прочим, т.к. это разные продукты и есть риск того, что оно вообще никуда не пойдёт из-за внутренних факторов.
avatar

Читайте на SMART-LAB:
Фото
Мал полис, да дорог: почему страховка по подписке становится трендом
Газета «Коммерсант» на днях опубликовала статью на тему страховых подписок. Приводим краткую выжимку и мировые примеры.  Классическая страховка...
Фото
📊 Выручка МГКЛ — 21,3 млрд ₽ за 5 месяцев 2026 года (х3 г/г)
📊 Выручка МГКЛ — 21,3 млрд ₽ за 5 месяцев 2026 года (х3 г/г) Группа МГКЛ объявляет предварительные операционные результаты за первые пять...
Фото
Весной экономика РФ показывает признаки оживления
Вышедшие накануне данные Росстата за апрель и 4 месяца 2026 года показали следующие тенденции: По оценке Минэкономразвития, ВВП за 4...
Конспект Мозгового штурма. Инсайды с ПМЭФа. Weekly №120
Доброго дня дорогие товарищи. Сегодня у нас был традиционный мозговой штурм. Делюсь итогами штурма и инсайдами с ПМЭФа.

теги блога Михаил Шардин

....все тэги



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