ФОРМИРОВАНИЕ ТОРГОВОЙ СТРАТЕГИИ: КУРС 3 | УРОК 5
Бэктестинг и форвард-тестирование стратегии на демо-счете
Цели обучения
Научиться проводить объективный бэктестинг в ручном режиме: воспроизводить историю, не видя правую часть графика, учитывать все издержки и каждый сигнал, а также знать пять искажений восприятия или ошибок, из-за которых результаты большинства опубликованных тестов выглядят лучше, чем есть на самом деле
Разбить исторические данные на период разработки и период валидации и понять, почему данные вне выборки можно использовать для тестирования стратегии только один раз
Провести форвард-тестирование неизменной спецификации на демо-счете с заранее определенными критериями успеха и на основании результатов принять решение: оставить, пересмотреть или отклонить стратегию
Как работают бэктестинг и форвард-тестирование
Теперь у вас есть три заготовки стратегий и, после Урока P3.1, одностраничная спецификация собственной стратегии. Все разборы сводились к одной мысли: математическое ожидание вашей версии стратегии на вашем рынке можно узнать только после тестирования.
Этот урок посвящен проведению такого тестирования. Именно эта процедура превращает субъективное «мне нравится эта идея» в объективный результат: «более 143 сигналов в двух режимах рынка, +0,14R на сделку после издержек, максимальная просадка — 9R».
Порядок действий строго задан, и каждый этап призван выявить конкретную ошибку, которая может исказить восприятие трейдера: бэктест → проверка вне выборки → форвард-тестирование на демо-счете → решение.
Этап 1. Честный бэктестинг в ручном режиме
Во время ручного тестирования история воспроизводится свеча за свечой, и записывается каждая сделка, которую предусматривает ваша спецификация. Как это делать: в MT4/MT5 откройте нужный инструмент и таймфрейм, отмотайте историю как минимум на 12 месяцев назад и двигайтесь вперед по одной свече (F12 в MT4/MT5). Главное правило: до принятия решения правая часть графика должна оставаться скрытой. Для каждого допустимого сетапа записывайте в таблицу: дату, направление, вход, стоп, размер позиции согласно вашему правилу управления риском, выход, результат в R и правило, по которому позиция была закрыта. Моделируйте всю спецификацию целиком, в том числе фильтры и частичные закрытия, и вычитайте из каждой сделки реалистичные затраты — спред и проскальзывание: например, ~0,05–0,10R для трендовой стратегии с широкими стопами и больше для вариантов с узкими стопами (арифметика из Урока P2.2/P3.4).
Ваша цель — не менее 50 сделок, желательно 100+ (P2.1: меньшее количество дает слишком много шума), в явно разных рыночных условиях — в периоде тренда и в периоде диапазона. После этого рассчитайте основные показатели: процент прибыльных сделок, среднюю прибыль/убыток в R, математическое ожидание (P2.1), максимальную просадку в R и самую длинную серию убыточных сделок (P2.3 — здесь вы проверяете серии, которые нужно учитывать при планировании), а также долю прибыли, которую дали пять лучших сделок (если всю прибыль принесли три сделки, преимущество стратегии хрупко — один пропущенный сигнал в реальной торговле может свести на нет результат целого года).
Теперь рассмотрим пять ошибок восприятия, которые незаметно делают результаты лучше, — проверьте свой тест по каждому из них:
- Искажение из-за заглядывания в будущее (ошибка опережения): принятие решения с использованием информации, которой в тот момент еще не было (классический случай: подглядывание в правую часть графика; менее очевидный: использование цены закрытия свечи для входа на открытии этой же свечи).
- Искажение отбора/ошибка выжившего: вы тестируете только ту пару и тот период, на которых уже увидели хорошие результаты стратегии, фактически заранее выбирая удачные примеры.
- Выборочное использование сигналов: исключение из теста сетапов, которые после просмотра истории кажутся «явно плохими». Правило здесь безжалостно: учитывается каждый корректный сигнал, иначе тест теряет смысл.
- Игнорирование затрат: исполнение по средней цене, нулевые спреды, отсутствие проскальзывания — все это критично для небольшого торгового преимущества (система с результатом +0,15R при затратах 0,08R практически не имеет преимущества и становится игрой наугад).
- Подгонка под историю: изменение параметров до тех пор, пока исторические показатели не будут выглядеть идеально. Девять фильтров и «ATR × 2,35» — характерные примеры этого подхода (именно для этого в Уроке P3.1 и предусмотрен лимит на количество фильтров). Следующий этап поможет это исправить.
Этап 2. Данные вне выборки — правило «одной попытки»
Полностью избежать подгонки под историю невозможно — любое решение при разработке стратегии опирается на прошлые данные, — поэтому мы постараемся просто ограничить это искажение. Разделите исторические данные на части: разработайте и оптимизируйте стратегию на одном периоде (например, 2024 год, «период выборки»), а затем один раз протестируйте зафиксированную спецификацию на совершенно новом для нее периоде (2025 год, «период вне выборки»). Результаты в выборке по определению всегда выглядят лучше, ведь вы оставили те варианты, которые лучше всего подходили этим данным. Результаты вне выборки — первые по-настоящему реальные свидетельства эффективности стратегии. Будьте готовы к ухудшению результатов; главное — понять, какая часть торгового преимущества сохранится. Практический ориентир: математическое ожидание на данных вне выборки должно оставаться положительным и сохранять существенную часть результата, полученного в выборке. Если +0,35R в выборке превращается в +0,18R вне выборки, результат можно считать устойчивым; если же показатель падает до −0,02R, это означает, что торговое преимущество было всего лишь подогнано под исторический шум.
Правило, на котором держится этот этап: данные вне выборки можно использовать только один раз. Если вы подглядели результаты, подправили стратегию и снова прогнали ее на том же периоде валидации, этот период фактически становится периодом выборки, а ваш тест превращается в подгонку под историю с дополнительными шагами. Одна версия спецификации — один тест; неудачная спецификация возвращается на этап разработки с новыми валидационными данными (другим годом или другой коррелированной, но не идентичной парой) или окончательно отбраковывается. Ничто не портит валидационные данные так часто, как безобидное на первый взгляд «я только проверю одну небольшую вариацию».
Этап 3. Форвард-тестирование на демо-счете — что невозможно проверить на исторических данных
После успешного теста вне выборки спецификация переходит к форвард-тестированию: вы торгуете по ней на демо-счете в реальном времени, не пропуская ни одного сигнала, в течение заранее определенного периода — 8–12 недель или не менее 30 сделок (в зависимости от того, что потребует больше времени). Форвард-тест медленнее бэктестинга, но незаменим, так как позволяет проверить четыре вещи, которые невозможно проверить на исторических данных:
- Реальное исполнение: фактические спреды в ваши торговые часы, проскальзывание при срабатывании стопов, исполнение во время выхода новостей (затраты из Урока P3.4, которые измеряются на вашем счете, а не задаются предположительно). По каждой сделке записывайте запланированную и фактическую цены исполнения.
- Неоднозначность при торговле в реальном времени: когда вы работаете с правой частью графика, не зная будущих данных, выясняется, что формулировка «3 касания, зоны ≤ 0,25 × ATR» оставляет место для интерпретации. Форвард-тестирование позволяет уточнить, как именно трактовать правила, пока ошибки ничего не стоят, — и каждая обнаруженная неоднозначность указывает на недоработку спецификации, которую следует четко прописать.
- И наконец, вы: использовать шестой сигнал после пяти убыточных сделок подряд поздно вечером — совсем не то же самое, что нажать кнопку в режиме воспроизведения истории. Результат на демо-счете не способен полностью передать эмоции реальной торговли — с виртуальными деньгами все чувствуют себя смелее. Но соблюдение правил под умеренным давлением можно измерить, и если вы не можете следовать спецификации на демо-счете, это и есть ответ на вопрос, готовы ли вы к реальной торговле.
- Текущий рыночный режим, а не прошлогодний.
До первой сделки запишите в журнал заранее определенные критерии успешности — решение, принятое после просмотра результатов, будет тем же искажением №3, только в другом виде. В качестве критериев можно использовать: (a) фактически отработано не менее 90% допустимых сигналов; (b) математическое ожидание после учета реальных затрат > 0; (c) максимальная просадка не превышает 1,5× максимальной просадки в бэктесте; (d) все неоднозначности правил устранены в письменной форме. После этого решение принимается автоматически. Все четыре критерия выполнены → спецификацию можно рассмотреть для перехода к торговле небольшим объемом на реальном счете (это решение, как и вопрос о том, стоит ли вам вообще торговать на реальном счете, относится к уровню Professional, бизнес-плану из Урока A3). Не выполнен критерий (b) или (c) при хорошем соблюдении правил → возвращайтесь к разработке; ваша следующая идея теперь будет основываться на фактических данных. Не выполнен критерий (a) → стратегия может быть рабочей, но она вам не подходит — и это вполне может оказаться главным результатом тестирования. Откажитесь от стратегии без сожалений. Большинство первых версий спецификаций не проходят форвард-тестирование. В этом и заключается смысл системы: каждая стратегия, которую вы забраковали на демо-счете, — это потенциальный убыток, которого вы избежали на реальном счете; трейдер, честно отказавшийся от трех спецификаций, уже получил объективное преимущество перед тем, кто все еще «уверен» в своем непроверенном первом варианте.
Финишная линия уровня Practitioner
Вы успешно прошли и этот курс, и весь уровень. Вы научились измерять торговое преимущество (P2.1), определять размер позиции и переживать просадки (P2.2–P2.3), управлять преимуществом и диверсифицировать его (P2.4–P2.5), описывать его в спецификации (P3.1), работать с тремя семействами стратегий (P3.2–P3.4) и — после этого урока — тестировать стратегии без самообмана. Выполните следующее задание на демо-счете, чтобы завершить программу и получить сертификат уровня Practitioner. На уровне Professional все рассмотренные здесь термины считаются уже знакомыми.
Что важно запомнить
Тестируйте стратегии в фиксированном порядке: бэктестинг (50–100+ сделок, с учетом издержек, при скрытой правой части графика) → однократная проверка вне выборки → форвард-тестирование на демо-счете в течение 8–12 недель. Каждый этап выявляет отдельное искажение восприятия.
Пять ошибок, которые искажают результат: заглядывание в будущее, искажение отбора, выборочное использование сигналов, игнорирование затрат, подгонка под историю. Любую опубликованную кривую доходности следует проверять на наличие этих искажений — особенно свою собственную стратегию.
Данные вне выборки используются один раз: подглядывание и корректировки незаметно превращают проверку в подгонку под историю, просто с дополнительными шагами. Ожидайте ухудшения результатов, но стремитесь к сохранению торгового преимущества.
Форвард-тестирование измеряет то, что невозможно проверить на исторических данных: реальное исполнение, неоднозначность правил и вашу дисциплину в соблюдении стратегии — по критериям прохождения/отбраковки, установленным до первой сделки.
Большая часть спецификаций должна отсекаться еще на демо-счете, где это ничего не стоит. Если вы честно отказались от стратегии после тестирования, это не поражение, а полезный результат и прогресс.