Бектестинг против торгового журнала: почему нужны оба
Бектестинг симулирует стратегию на исторических данных до риска капиталом; журнал фиксирует, что случилось с реальными ордерами. Почему эти практики дополняют, а не заменяют друг друга, и как использовать их вместе.
Обновлено:
Коротко. Бектестинг симулирует стратегию на исторических ценовых данных еще до того, как реальный капитал подвергается риску; торговый журнал фиксирует, что произошло на самом деле, когда ордера уже были реальными. Они отвечают на разные вопросы, и ни один не заменяет другой: бектест показывает, имел ли набор правил смысл исторически, а журнал – способен ли трейдер реально его исполнить, с реальным слиппеджем, реальными комиссиями и реальной психологией на пути.
Трейдеры часто опираются лишь на один из методов, пропуская второй. Кто-то прогоняет стратегию через бектест, видит чистую кривую капитала и начинает торговать ею вживую, считая, что бектест уже все доказал. Другой скрупулезно ведет журнал каждой живой сделки, но ни разу не проверял на исторических данных, есть ли у самой идеи хоть какой-то статистический смысл. Обе привычки создают слепую зону, которую вторая практика могла бы закрыть.
Что на самом деле проверяет бектестинг
Бектест применяет фиксированный набор правил входа и выхода к историческим ценовым данным и считает, что бы произошло: чистую прибыль или убыток, винрейт, просадку и другие показатели эффективности, посчитанные без риска хотя бы копейки (Corporate Finance Institute, "Backtesting"). Это делает бектест дешевым в запуске и быстрым для итераций: идею можно прогнать против лет ценовой истории, подкрутить и прогнать снова, и все это до того, как выйдет хоть один живой ордер. Розничные платформы вроде Strategy Tester в MetaTrader существуют именно для этого: симулируют исполнение автоматизированной стратегии против сохраненных исторических ценовых данных, чтобы проверить логику еще до реального или демо-счета (MetaQuotes, документация MQL5, "Testing Trading Strategies").
Ценность бектеста узкая и конкретная: он отвечает, дал бы определенный набор правил положительный результат за выбранный отрезок истории. Он не отвечает, способен ли именно этот трейдер в реальных рыночных условиях на самом деле придерживаться этих правил.
Чего бектест не видит
Бектест работает на чистых исторических данных и симулированном исполнении на каждом сигнале. У него нет доступа к тому, что происходит между правилом и реальным ордером: полсекунды колебания перед нажатием «купить», стоп, который передвинули, потому что сделка «ощущается» неправильной, позиция, закрытая раньше из-за нервов, или та, что удерживалась слишком долго в надежде на отскок. Ничего из этого не попадает в симуляцию, потому что у симуляции нет нервов.
Бектест также склонен занижать реальные торговые издержки. Исторические исполнения в бектесте часто предполагаются точно по цене сигнала, тогда как живой ордер исполняется по той цене, которую рынок предлагает мгновением позже, плюс спред и комиссия. Слиппедж на ликвидном инструменте может составлять долю процента; на более тонком рынке – значительно больше одного процента, и даже небольшое предположение о слиппедже способно превратить преимущество, показанное в бектесте, в живой убыток, если применять его последовательно к каждой сделке.
Важно. Бектест, который ни разу не учитывал реалистичный слиппедж, комиссии и исполнение, не измеряет ту стратегию, которую трейдер реально испытает вживую. К чистой кривой бектеста стоит относиться как к исходной гипотезе, а не гарантии.
Что вместо этого фиксирует торговый журнал
Торговый журнал фиксирует сделку, которая была реально открыта: реальную цену входа и выхода, реальный объем, реальный результат после комиссий и, если журнал это предусматривает, состояние мыслей до и после сделки. Это единственная запись, которая показывает разрыв между правилом на бумаге и правилом в исполнении.
Именно в этом разрыве часто скрывается настоящая история. Сетап может бектеститься с чистым винрейтом 55% и все равно терять деньги вживую – не потому, что сетап был плох, а потому, что живое исполнение последовательно отдает несколько базисных пунктов на сделку слиппеджу, колебанию или выходу, взятому на бар раньше. Ведение журнала каждой сделки с тегом сетапа – это то, что вообще делает такое сравнение возможным; без него живая серия убытков и сломанная идея выглядят изнутри одинаково.
Слепая зона, которая есть у каждого метода по отдельности
| Вопрос | Только бектестинг | Только торговый журнал |
|---|---|---|
| Имел ли этот набор правил вообще смысл? | Отвечает прямо, дешево, за годы данных | Не может ответить без риска реальных сделок сначала |
| Способен ли я реально исполнять это правило вживую? | Не может ответить; предполагает идеальное, безэмоциональное исполнение | Отвечает прямо, сделка за сделкой |
| Учтены ли мои издержки (слиппедж, комиссии)? | Только если сознательно заложены, и часто занижены | Всегда присутствуют, потому что уже произошли |
| Серия убытков – это норма или признак, что преимущество исчезло? | Нет живых данных для сравнения | Нет исторического ориентира для сравнения |
Практический рабочий процесс: сначала бектест, потом журнал разрыва исполнения
Обе практики лучше всего работают как последовательность, а не выбор. Сначала бектестировать идею на достаточно большом отрезке истории и более чем в одних рыночных условиях, чтобы отсеять правила, которые никогда не имели смысла, еще до вложения какого-либо капитала. Если бектест выдерживает проверку, торговать идею вживую уменьшенным объемом и вести журнал каждой сделки под отдельным тегом, включая цену входа и выхода, объем и результат после издержек.
После достаточного числа живых сделок под этим тегом сравнить зафиксированный в журнале винрейт и средний результат с бектестовыми цифрами для того же набора правил. Близкое совпадение, в пределах того, что объяснили бы издержки и обычная вариативность, – признак того, что стратегия выдерживает столкновение с реальным исполнением. Широкий, устойчивый разрыв указывает на реальную проблему: издержки, заниженные в бектесте, или правила, которых на деле не придерживаются, когда в дело вступают реальные деньги и реальные эмоции. Регулярный просмотр разбивки по стратегии для этого тега, а не только тогда, когда сетап «ощущается», будто перестал работать, – это то, что удерживает сравнение честным.
Как читать живую серию убытков против ориентира из бектеста
Серию убытков на живом, ведущемся в журнале сетапе легко неправильно прочитать без бектеста для сравнения. Если исторический тест уже показывал отрезки из пяти-шести последовательных убытков как обычную часть паттерна доходности этой стратегии, живая серия убытков похожей длины – не новая информация; это стратегия, ведущая себя как ожидалось. Без этого ориентира та же серия может выглядеть доказательством, что идея перестала работать, и трейдеры бросают сетапы, которые на самом деле никогда не были сломаны, либо, наоборот, продолжают те, что тихо сломались.
Это другой тип ошибки, чем оценка преимущества по слишком малой живой выборке, которая является проблемой размера выборки. Здесь проблема в том, что вообще нет ориентира, как выглядит «норма» для этой конкретной стратегии, потому что шаг бектеста пропустили. Expectancy, посчитанная одинаково и в бектесте, и в живом журнале, – это число, которое делает это сравнение конкретным, а не ощущением.
Что логировать, чтобы сравнение действительно работало
Сравнение бектеста и живых результатов работает только тогда, когда журнал фиксирует достаточно деталей, чтобы сверить их с выводом самого бектеста. Запись в журнале, фиксирующая только выигрыш или проигрыш, невозможно сверить с бектестом, который выдает винрейт, средний результат и просадку; оба набора данных должны говорить на одном языке.
Минимум – каждая живая сделка под тегом должна включать название сетапа, цену входа и выхода, объем позиции, результат после комиссий и дату, чтобы те же показатели (винрейт, средний результат, максимальную просадку для этого тега) можно было посчитать с обеих сторон и поставить рядом. Примеры торговых журналов с таким уровнем детализации превращают это сравнение в пятиминутную проверку вместо ручной реконструкции по брокерским отчетам задним числом.
Типичные ошибки
- Торговать бектестированной идеей вживую, ни разу не сверяя живые результаты с бектестом. Это сравнение – весь смысл; пропустить его значит превратить бектест в одноразовое упражнение вместо постоянной проверки.
- Предполагать, что исполнение и издержки в бектесте совпадают с живыми условиями. Нереалистичные предположения о слиппедже и комиссии регулярно превращают бектестовое преимущество в живой убыток.
- Вести журнал живых сделок для идеи, которую ни разу не тестировали на исторических данных. Нет способа отличить обычную серию убытков от сломанной идеи без ориентира.
- Бросать стратегию после серии убытков, совпадающей с ее собственным бектестовым паттерном просадки. Сравнить с бектестом, прежде чем делать вывод, что преимущество исчезло.
- Относиться к одному запуску бектеста как к постоянному доказательству. Рыночные условия меняются; набор правил, хорошо тестировавшийся год назад, нуждается в периодической повторной проверке на свежих данных, так же как и живое преимущество.
Эта статья носит образовательный характер и не является финансовой или инвестиционной консультацией. Торговля с кредитным плечом несет высокий риск потери средств. Прошлые результаты, полученные из бектеста или из живой торговли, не гарантируют будущих результатов.
Сравнивайте бектестовые ожидания с реальными, зафиксированными в журнале результатами автоматически с помощью торгового журнала BitStat, вместо того чтобы вести две отдельные таблицы и угадывать разрыв между ними.