Это самая дорогая ошибка во всём моём проекте по проверке торговых идей. Не по деньгам, по времени и по доверию к себе. То, что после таких проверок уцелело, я теперь веду вживую в открытом дневнике сделок (ссылка в конце).
Идеальная стратегия
Правило было простое, из учебника. Лонг по альтам на 12-часовых свечах: цена выше скользящей средней WMA50 (тренд вверх), RSI(14) опустился ниже 45 (откат), и следующая свеча пробивает максимум предыдущей (откат закончился, пошли дальше). Стоп за последним локальным минимумом, тейки по R.
Результат на истории 2021–2026, на 16 монетах, с комиссиями:
в среднем +0.32R на сделку (R — это размер риска до стопа);
81% сделок в плюсе;
все 6 лет в плюсе, включая медвежий 2022 год;
на отложенной части данных (2025–26) почти так же, как на обучающей.
Я знал, что так не бывает. Поэтому сделал то, что считается золотым стандартом: «чистую комнату». Отдельный исполнитель написал код с нуля только по текстовому описанию правил, не видя моего кода. Его результат: +0.35R, 81.5% побед, 918 сделок, 6 из 6 лет в плюсе. На 59 монетах то же самое.
Две независимые реализации сошлись. Я записал правило как «первый результат, переживший чистую комнату», и начал готовить его к реальной торговле.
Вопрос, который всё сломал
Когда дошло до живого журнала сделок, всплыла мелочь: лимитные заявки по этому правилу налетали не всегда. Я пошёл выяснять почему, и посмотрел, по какой цене бэктест «покупал».
Бэктест покупал по максимуму предыдущей свечи — в момент пробоя, внутри той свечи, которая этот пробой и сделала. Но сигнал состоит из трёх условий, и последнее — «свеча закрылась выше» — известно только после закрытия свечи. То есть бэктест покупал на уровне пробоя, уже зная, что пробой получится сильным. В реальном времени такой цены не существует: к моменту, когда вы знаете, что сигнал есть, цена уже ушла выше.
Обе «независимые» реализации повторили одну и ту же ошибку, потому что обе честно следовали описанию. Ошибка была не в коде, а в самой постановке: в том, когда именно мы можем купить.
Что получается, если покупать по-честному
Я проверил три способа входа, которые можно исполнить руками:
Лимитка на откате к уровню пробоя, ждём 48 часов. Налилось 75% заявок. Итог: −0.084R на сигнал. Самое неприятное: лимитка наливается именно на слабых пробоях, которые вернулись назад. Сильные уходят без вас.
Рынком на открытии следующей свечи: −0.049R (5384 сигнала).
Стоп-заявка на пробой, выставленная заранее, без знания, чем закончится свеча: −0.020R.
На полностью честном стенде, где покупка возможна только после того, как сигнал известен: −0.059R на сигнал. 0 из 44 вариантов настроек в плюсе. Плюс остался только в 2021 году — в бычьем рынке, где плюсовало всё.
+0.32R и 81% побед целиком сидели в цене входа, которую нельзя купить.
Масштаб
Когда я понял, в чём дело, я прошёлся по всем бэктестам проекта. Та же ошибка нашлась в 12 из 93 файлов. Параметры «канона» (WMA50, RSI 45) тоже были подобраны на заражённом стенде, так что гордиться их «оптимальностью» не приходилось.
Что я из этого вынес
1. Высокий процент побед — повод для подозрения, а не радости. 81% побед на простом правиле у 16 монет — почти всегда признак того, что где-то подсмотрено будущее.
2. Любой бэктест обязан ответить на вопрос: «по какой цене и в какой момент я реально мог купить?». Не «по какой цене был уровень», а «когда я узнал о сигнале и какая цена была доступна после этого».
3. «Чистая комната» не спасает от ошибки в постановке. Два независимых кода, написанных по одному неверному описанию, дадут одинаково неверный ответ. Проверять надо не только код, но и то, реализуемо ли описание.
4. Проверяйте свой журнал раньше, чем бэктест. Меня спас вопрос «почему лимитки не наливаются?». Живые сделки расходились с бумагой — и это расхождение было честнее всех проверок.
Самое неприятное в этой истории — насколько убедительной была стратегия. Каждая проверка, которую я знал, её подтверждала. Если бы я не полез в журнал, я бы торговал её деньгами.
Открытый дневник проверок в реальном времени, со всеми сгоревшими сделками:
https://t.me/+0qATsrdnloQ5YmUy
Это не финансовый совет.
Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.