Индустрия автоматизации трейдинга выработала особую одержимость миллисекундами. Почти каждый коннектор, webhook-мост или платформа автоматической торговли пытается впечатлить трейдера какой-нибудь цифрой: 12 миллисекунд, 50 миллисекунд, 100 миллисекунд, 200 миллисекунд. Эти цифры выглядят точными и техническими, именно поэтому они так хорошо работают в рекламе. Трейдер видит такое число и естественным образом предполагает, что речь идёт о времени, необходимом для превращения сигнала в открытую позицию на реальном торговом счёте.
Однако в большинстве случаев эта цифра означает совсем не это.
Сам показатель может быть настоящим. Сервис действительно может обработать входящее сообщение за 100 миллисекунд, передать команду советнику за 50 миллисекунд или отправить API-запрос через 200 миллисекунд после получения webhook. Обман начинается тогда, когда один отдельный этап гораздо более длинного процесса подаётся таким образом, чтобы пользователь принял его за полное сквозное исполнение сделки.

Учет комиссий, проскальзывания и риск-менеджмента
Отбор торговых сессий по критериям волатильности (импульсы ≥5% за 10 минут)
Дискретное пространство действий: LONG, SHORT, CLOSE, HOLD
Reward shaping для контроля поведения
Полные логи бэктеста и визуализации
Публикация сигналов в реальном времени (Telegram)
Доходность: +144.23%
Sharpe: 1.85, Sortino: 2.05
Прибыльных дней: 78.57%
Сделок: 112 (~2 в день), включая SL/TP
Среднесуточная доходность: +1.61%


Итак, теперь вы разработали стратегию и видите огромную прибыль в 5-летнем тесте WFO. Откройте брокерский счет, запустите Zorro, нажмите [Trade] и подождите 5 лет — вы богаты. Или нет?

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

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

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

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

Боб: «На прошлой неделе я случайно встретил Уоррена Баффета. Я, конечно, спросил его, как лучше торговать. Он сказал так: „Будь жадным там, где другие боятся“».
Алиса: «Интересно. И что это значит?»
Боб: «Разве он не сказал, что должен уйти. Но я думаю, он хотел, чтобы я торговал против тренда».

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