Избранное трейдера Gregori
Приветствую!
В этой статье расскажу о торговой стратегии, которая, на данный момент, обгоняет по доходности бенчмарк (индекс полной доходности).
На момент написания этой статьи, 4 мая 2026 года, спустя 210 дней тестирования, стратегия обыгрывает полный индекс доходности в 3.18 раза, 21.16 % и 6.64 % годовых, соответственно.
Стратегия имеет большую ёмкость. Т.е. её можно дублировать достаточно много с настройками, которые использовались в моём примере. Это важный факт. Согласно моему 20-летнему опыту, торговля на финансовых рынках – это максимально конкурентный бизнес. Большинство моих прибыльных стратегий не публичны ввиду малой ёмкости. Просто, если я опубликую стратегию с малой ёмкостью – она перестанет работать у всех. Здесь такого ограничения нет.
Почему «EQMX»?
«EQMX» — БПИФ «Индекс МосБиржи» управляющей компании «ВИМ Инвестиции» от ВТБ.
«EQMX» повторяет индекс полной доходности MCFTRR (включая дивиденды), уменьшая на комиссию 0.69% годовых, включённую в цену.
Это моя вторая часть заметок с Perm Winter School '26, некоммерческой научно‑практической конференции.
В первой части я рассказал, что если просто взять котировки, скормить их нейросети попросив предсказать куда пойдёт рынок завтра, то скорее всего получится красивая иллюзия, которая может выглядеть убедительно, но в реальной жизни всё закончится убытками. Первая часть была довольно популярна и собрала 103 комментария, хотя многие написали что‑то вроде «Вы просто не ту модель пробовали», «Нужно больше данных», «Надо давать нейросети не график OHLCV, а что‑то другое».

И в целом я согласен с таким ходом рассуждений, потому что из конференции я вынес не то, что нельзя заработать на бирже, а то, что большинство частных трейдеров решают вообще не ту задачу.
Ошибка новичка: искать ответ на вопрос «куда пойдет рынок»Когда мы смотрим на график конечно же сразу возникает вопрос — вверх или вниз? И вся индустрия трейдинга построена на этой бинарной ловушке — что на рынке всего две кнопки:
Всем доброе! Меня зовут Дмитрий Семенов, я основатель аналитической платформы ETPINVEST и мы провели масштабное исследование по скользящим средним: 8 типов MA, 23 периода, кроссоверы, буферные зоны, фильтры, золотой крест, тройная MA, динамический стоп-лосс.
Всего 1 871 тестовая комбинация на 1 209 акциях США (с 1970-х) и 251 акции России (с 2003-го). Данные по Америке с Yahoo Finance, по России с МосБиржи. Все цифры в таблицах — медианы по датасету. Ниже — ключевые выводы. В конце поста — ссылка на полное исследование с таблицами и файлами для скачивания.

Первый результат, который удивил: разница между типами скользящих минимальна. SMA с периодом 300 дала 4,9% годовых на рынке США. TEMA с тем же периодом — 2,07%. Разница 2,8 п.п. Вроде ощутимо, пока не сравнишь с другим числом: SMA(300) vs SMA(5) — разница 9,5 п.п. Выбор периода оказался в три раза важнее выбора формулы. Все экзотические типы (Hull, DEMA, TEMA, ZLEMA) проигрывают обычной SMA. Больше сигналов = больше ложных входов = хуже результат.
Обычный трейдер смотрит на свечной график, но свеча — это уже тень прошлого, постфактум. Между тем настоящая динамика рождается в глубине торгового стакана — Limit Order Book, где борьба заявок определяет будущий импульс.
Проблема в том, что историю стакана почти нигде не увидеть: розничные терминалы для частных клиентов дают лишь текущую таблицу DOM ( Depth of Market ) и это статичный срез без прошлого.
Чтобы увидеть то, на что обычный трейдер не обращает внимание я собрал инструмент, который превращает исторические данные L2 Order Book (стакан заданной глубиной) и Trades Stream (обезличенные сделки) в тепловые карты и позволяет изучать эволюцию заявок на Московской бирже через браузер с Deep Zoom — плавно, как в Google Maps.



Сегодня завершаем работу с заявками:
Функция OnTransReply
Функция OnOrder
Получение остатка по заявке, контроль исполнения полного объема
Таблица транзакций
Общая логика выставления лимитной заявки в стакане
В предыдущих примерах мы закладывали на обработку заявки небольшой таймаут (в пределах от 300 мс до 1 секунды), но правильнее отслеживать результат по коллбэкам, т.к. это время может быть и менее 300 мс, а может затянуться (по разным причинам) на секунды. Поможет нам в этом отслеживании функции обратного вызова OnTransReply и OnOrder.
Если отправляя заявку через sendTransaction мы на старте могли получить ошибку на стороне терминала (неправильно указанный торговый код/инструмент/класс рынка), то через OnTransReply мы получаем результат обработки нашей транзакции на сервере брокера (например ошибка при выставлении заявки из-за отсутствия подключения, либо у клиента нет прав на отправку транзакции конкретного типа, либо заявка не проходит по лимитам и пр.).
Функция OnTransReply возвращает ответ на транзакцию, выставленную средствами qlua.