Тестирование торговых стратегий: пошаговый разбор
Разбираем, как проверить торговую стратегию до реальных сделок: выбор периода, настройка параметров, анализ просадок и типичные ошибки. Практические шаги для самостоятельного тестирования.
Что такое тестирование торговой стратегии и зачем оно нужно
Тестирование торговой стратегии - это процесс проверки правил входа и выхода из сделок на исторических данных или в условиях, приближенных к реальным, до того как вы начнете использовать их с реальными деньгами. Ответ на вопрос из заголовка простой: тестирование нужно, чтобы узнать, как стратегия ведет себя в разных рыночных условиях, и избежать потери депозита из-за нерабочих правил. Без проверки вы торгуете вслепую, полагаясь на удачу, а не на воспроизводимый результат.
Любая стратегия - это набор четких правил: когда открывать позицию, где ставить стоп-лосс, когда фиксировать прибыль. Если правила не записаны и не проверены, их невозможно улучшить. Тестирование превращает торговлю из гадания в инженерный процесс: вы видите слабые места, меняете параметры и снова проверяете. Это не гарантирует прибыль в будущем, но снижает вероятность того, что стратегия развалится на первом же неудачном отрезке рынка.
Существует три основных способа тестирования: на истории (бэктест), на демо-счете в реальном времени и на небольшом реальном счете. Каждый способ отвечает на свой вопрос. История показывает, как стратегия работала бы в прошлом. Демо проверяет, насколько удобно исполнять правила в реальном времени. Реальный счет с минимальным лотом выявляет проблемы с исполнением ордеров, проскальзыванием и психологией. Для полноценной проверки нужны все три этапа, но начать стоит с истории.
Главная цель тестирования - не найти стратегию, которая всегда зарабатывает (таких не существует), а понять, при каких условиях стратегия убыточна, и решить, готовы ли вы пережить эти периоды. Если вы знаете, что стратегия дает просадку 30% на определенном участке истории, вы не бросите ее в середине такого же участка в будущем. Знание ограничений - это и есть результат тестирования.
Ниже разберем, как правильно проводить тестирование на истории, какие параметры анализировать и какие ошибки совершают чаще всего. Все примеры приводятся с конкретными числами, чтобы вы могли повторить расчеты самостоятельно.

Выбор периода и данных для тестирования
Первый шаг - определиться, на каких данных тестировать. Ошибка новичка - взять последний год и считать результат показательным. Рынок цикличен: год бычьего тренда сменяется годом флэта, затем годом высокой волатильности. Стратегия, которая показывает отличный результат в тренде, может полностью провалиться во флэте. Поэтому период тестирования должен включать разные фазы рынка.
Минимальный разумный период - два-три года для дневных графиков и шесть-двенадцать месяцев для внутридневных. Этого достаточно, чтобы захватить хотя бы один тренд и один флэт. Для более надежного результата берите пять лет истории, если данные доступны. Но помните: чем длиннее период, тем выше вероятность, что рыночные условия изменились и старые данные уже неактуальны. Например, стратегия, работавшая на валютной паре до 2015 года, может не работать после изменения монетарной политики центральных банков.
Второй важный момент - качество данных. Если вы тестируете на котировках с пропусками, дырами или неточными ценами, результат будет искажен. Используйте данные от вашего брокера или проверенного поставщика. Для внутридневных стратегий нужны тиковые данные или данные с минутных баров - часовые бары скроют важные движения внутри часа. Для дневных стратегий достаточно дневных баров, но проверьте, что цены открытия и закрытия соответствуют реальным торгам, а не скорректированы поставщиком.
Третий момент - учет спреда и комиссий. Многие начинающие тестируют стратегию без учета издержек, и результат выглядит привлекательным. На самом деле каждая сделка стоит денег: спред, комиссия брокера, биржевой сбор, плата за перенос позиции. Если стратегия совершает сто сделок в месяц со спредом 10 пунктов, это тысяча пунктов издержек. На дневном графике это может съесть всю прибыль. В настройках тестера обязательно укажите спред и комиссию, даже если они кажутся небольшими.
Четвертый момент - выбор инструмента. Не тестируйте стратегию на одном инструменте и не переносите результат на другой. Свойства волатильности, средний диапазон дня, ликвидность - все различается. Стратегия, работающая на фьючерсе на индекс РТС, может не работать на фьючерсе на доллар. Если вы планируете торговать несколькими инструментами, тестируйте каждый отдельно и фиксируйте результаты в отдельную таблицу.
Пятый момент - период тестирования не должен включать даты, когда стратегия была создана. Это называется переобучением на истории: вы подбираете параметры под прошлые данные, и они идеально подходят, но не работают в будущем. Чтобы избежать этого, разделите историю на две части: на первой подбирайте параметры, на второй проверяйте готовую стратегию. Второй участок называется out-of-sample, и результат на нем - более честная оценка.
Настройка параметров тестера: пошаговый разбор
Когда данные выбраны, переходите к настройке тестера. В MetaTrader 4 и 5 есть встроенный тестер стратегий, который позволяет прогнать советника или индикатор на истории. Настройки по умолчанию подходят не всегда, поэтому разберем каждый параметр.
Первый параметр - модель тестирования. В MT4 доступны три модели: «Все тики», «Контрольные точки» и «По ценам открытия». Модель «Все тики» использует все доступные тики и дает наиболее точный результат, но требует много времени. «Контрольные точки» использует цены открытия, максимума, минимума и закрытия каждого бара - быстрее, но менее точно. «По ценам открытия» использует только цену открытия бара - самый быстрый и самый неточный метод. Для внутридневных стратегий используйте «Все тики», для дневных - «Контрольные точки». Модель «По ценам открытия» подходит только для грубой проверки, не для финальных выводов.
Второй параметр - начальный депозит. Установите сумму, которую планируете использовать в реальной торговле, например 100 000 рублей. Это важно для расчета риска на сделку и размера позиции. Если вы тестируете с депозитом 10 000 рублей, а торговать планируете со 100 000, результаты по просадке и загрузке депозита будут несопоставимы.
Третий параметр - плечо. Укажите плечо, которое дает ваш брокер. Плечо влияет на размер маржи и, соответственно, на возможность открыть позицию. При плече 1 к 100 и депозите 100 000 рублей вы можете открыть позицию на 10 000 000 рублей, но это не значит, что нужно это делать. В тестере плечо важно для проверки, не будет ли маржин-колла при просадке.
Четвертый параметр - спред. Укажите средний спред вашего брокера для выбранного инструмента. Если спред плавающий, укажите среднее значение. Для фьючерсов на Московской бирже спред обычно фиксированный, для валютных пар - плавающий. Не занижайте спред, чтобы улучшить результат, - это самообман.
Пятый параметр - направление торговли. Выберите, разрешены ли только длинные позиции, только короткие или обе. Если стратегия торгует в обе стороны, проверьте, что тестер корректно обрабатывает короткие позиции с учетом заимствования инструмента. Для фьючерсов короткие позиции не требуют заимствования, для акций - требуют.
Шестой параметр - период тестирования. Укажите даты начала и конца. Как уже говорилось, берите минимум два-три года. Не тестируйте на периоде, который включает только один тип рынка. Если вы не знаете, какие фазы были в выбранном периоде, посмотрите на график цены: тренды, флэты, резкие движения - все это должно быть в истории.
Седьмой параметр - оптимизация. Встроенный оптимизатор перебирает значения параметров стратегии и ищет наилучшее сочетание. Это мощный инструмент, но он опасен переобучением. Если вы оптимизируете десять параметров, тестер найдет комбинацию, которая идеально подходит под историю, но не имеет отношения к будущему. Используйте оптимизацию только для одного-двух параметров, а результат проверяйте на out-of-sample участке.
Восьмой параметр - задержка исполнения. В реальной торговле между сигналом и исполнением ордера проходит время, за которое цена может уйти. В тестере эту задержку можно имитировать, указав задержку в секундах или пунктах. Для внутридневных стратегий задержка в 1-2 секунды существенна, для дневных - менее критична. Укажите задержку, чтобы результат был ближе к реальности.
Девятый параметр - проскальзывание. При исполнении рыночного ордера цена может отличаться от ожидаемой. В тестере укажите максимальное проскальзывание в пунктах, например 5 пунктов. Это сделает результат более консервативным и честным.
После настройки всех параметров запустите тест и сохраните отчет. Отчет содержит ключевые метрики: чистую прибыль, просадку, количество сделок, процент прибыльных сделок, фактор восстановления. Разберем, как анализировать эти метрики в следующем разделе.
Анализ результатов: ключевые метрики и их интерпретация
Отчет тестера содержит десятки цифр, но важны не все. Сосредоточьтесь на пяти ключевых метриках: чистая прибыль, максимальная просадка, процент прибыльных сделок, фактор прибыли и количество сделок. Каждая метрика отвечает на свой вопрос.
Чистая прибыль - это разница между прибыльными и убыточными сделками за вычетом издержек. Положительная чистая прибыль - необходимое условие, но недостаточное. Стратегия с прибылью 10 000 рублей за год и просадкой 50 000 рублей хуже, чем стратегия с прибылью 5 000 рублей и просадкой 2 000 рублей. Поэтому чистую прибыль всегда рассматривайте вместе с просадкой.
Максимальная просадка - это наибольшее падение от пика до минимума на кривой депозита. Например, если депозит вырос с 100 000 до 150 000 рублей, затем упал до 90 000 рублей, а потом снова вырос, максимальная просадка составит 60 000 рублей или 40% от пика. Просадка показывает, какой риск вы принимаете. Если просадка превышает ваш психологический порог, стратегия вам не подходит, даже если она прибыльна.
Процент прибыльных сделок - доля сделок, закрытых с прибылью. Высокий процент (например, 70%) не означает, что стратегия хорошая, если средняя прибыльная сделка меньше средней убыточной. Низкий процент (например, 30%) может быть отличным, если средняя прибыльная сделка в три раза больше средней убыточной. Важно не процент, а соотношение прибыли и убытка.
Фактор прибыли - это отношение суммы прибыльных сделок к сумме убыточных. Фактор прибыли больше 1 означает, что стратегия прибыльна. Значение 1,5-2 считается хорошим, выше 3 - подозрительным, так как часто указывает на переобучение. Фактор прибыли ниже 1 означает, что стратегия убыточна, и ее нужно дорабатывать или отбрасывать.
Количество сделок - важный показатель статистической значимости. Если стратегия совершила 10 сделок за год, выводы делать рано: одна случайная сделка может сильно исказить результат. Минимальное количество сделок для дневных стратегий - 50-100, для внутридневных - 200-300. Чем больше сделок, тем надежнее оценка.
Для наглядности сравним две гипотетические стратегии в таблице. Обе тестировались на одном инструменте за один период с одинаковыми издержками.
| Метрика | Стратегия А | Стратегия Б |
|---|---|---|
| Чистая прибыль | 45 000 руб. | 28 000 руб. |
| Максимальная просадка | 22 000 руб. | 9 000 руб. |
| Процент прибыльных сделок | 42% | 61% |
| Фактор прибыли | 1,8 | 1,4 |
| Количество сделок | 120 | 85 |
| Средняя прибыльная сделка | 1 200 руб. | 600 руб. |
| Средняя убыточная сделка | 500 руб. | 400 руб. |
Стратегия А приносит больше прибыли, но просадка в 22 000 рублей может быть неприемлема, если депозит составляет 100 000 рублей. Стратегия Б скромнее, но просадка в 9 000 рублей позволяет пережить неудачный период без паники. Выбор между ними зависит от вашего риск-профиля. Если вы готовы к просадке 22%, выбирайте А, если нет - Б.
Отдельно проверьте распределение сделок по времени. Если все прибыльные сделки пришлись на один квартал, а остальное время стратегия убыточна, это повод усомниться. Посмотрите на кривую депозита: она должна расти равномерно, а не скачками. Резкие скачки вверх часто сменяются такими же резкими падениями вниз.
Еще один важный показатель - загрузка депозита, то есть отношение маржи к депозиту. Если загрузка превышает 50%, стратегия использует слишком большое плечо, и даже небольшая просадка приведет к маржин-коллу. Оптимальная загрузка - не более 20-30%.
Типичные ошибки при тестировании и как их избежать
Первая ошибка - тестирование на слишком коротком периоде. Одна-две недели внутридневной торговли не дают представления о стратегии. Рынок может находиться в уникальных условиях, которые не повторятся. Минимальный период - несколько месяцев, лучше год. Если вы торгуете редко, например одну сделку в неделю, нужен период в несколько лет.
Вторая ошибка - игнорирование издержек. Спред, комиссия, своп - все это уменьшает прибыль. Новичок тестирует стратегию без издержек, получает красивый график, а в реальной торговле обнаруживает, что прибыль исчезла. Всегда включайте издержки в тест. Если стратегия прибыльна только без издержек, она нежизнеспособна.
Третья ошибка - переоптимизация параметров. Оптимизатор подбирает параметры под историю, и результат выглядит идеальным. Но в будущем рынок ведет себя иначе, и стратегия перестает работать. Чтобы избежать переоптимизации, используйте минимальное количество параметров (один-два), проверяйте результат на out-of-sample участке и сравнивайте с результатом на in-sample участке. Если разница большая, стратегия переобучена.
Четвертая ошибка - тестирование на данных, которые включают будущую информацию. Например, если вы используете индикатор, который перерисовывается на истории, тестер покажет отличный результат, но в реальном времени сигналы будут другими. Проверяйте индикаторы на перерисовку: посмотрите, меняется ли значение на закрытом баре при появлении новых данных. Если меняется, индикатор непригоден для тестирования.
Пятая ошибка - игнорирование проскальзывания и задержки исполнения. В тестере сделка исполняется по точной цене сигнала, в реальности цена может уйти на несколько пунктов. Для внутридневных стратегий это критично. Укажите в тестере задержку и проскальзывание, чтобы приблизить результат к реальности.
Шестая ошибка - тестирование стратегии на одном инструменте и перенос на другие. Каждый инструмент имеет свои характеристики: волатильность, ликвидность, размер шага цены. Стратегия, работающая на фьючерсе на доллар, может не работать на фьючерсе на нефть. Тестируйте каждый инструмент отдельно.
Седьмая ошибка - неучет свопов. Своп - это плата за перенос позиции на следующий день. Для долгосрочных стратегий свопы могут съесть значительную часть прибыли. В тестере укажите свопы для вашего брокера, иначе результат будет завышен.
Восьмая ошибка - тестирование стратегии, которая не имеет четких правил. Если стратегия основана на субъективной оценке графика, ее невозможно протестировать. Тестер требует формализованных правил: конкретные условия входа, выхода, стоп-лосса, тейк-профита. Если правил нет, сначала формализуйте их, потом тестируйте.
Девятая ошибка - слишком большое доверие к результатам теста. Тест на истории не гарантирует прибыль в будущем. Рыночные условия меняются, и стратегия может перестать работать. Воспринимайте тест как проверку на прочность, а не как обещание дохода. После теста на истории обязательно переходите к демо-счету и только потом к реальной торговле с минимальным лотом.
Практические шаги: что сделать сегодня
Если вы хотите проверить свою стратегию или стратегию из интернета, начните с простого плана. Первый шаг - запишите правила стратегии на бумаге или в текстовом файле. Каждое правило должно быть однозначным: «если цена закрытия выше скользящей средней за 20 периодов, открыть длинную позицию», а не «если цена выглядит сильно, купить». Чем точнее правила, тем проще тестировать.
Второй шаг - выберите инструмент и период тестирования. Начните с одного инструмента, например фьючерса на индекс МосБиржи, и периода в три года. Убедитесь, что в этом периоде есть и тренды, и флэты. Если не уверены, посмотрите на годовой график цены.
Третий шаг - настройте тестер. Укажите начальный депозит 100 000 рублей, плечо вашего брокера, спред и комиссию. Выберите модель тестирования «Контрольные точки» для дневных стратегий или «Все тики» для внутридневных. Укажите задержку исполнения 1 секунду и проскальзывание 5 пунктов.
Четвертый шаг - запустите тест и сохраните отчет. Посмотрите на ключевые метрики: чистую прибыль, максимальную просадку, фактор прибыли, количество сделок. Если количество сделок меньше 50, увеличьте период тестирования. Если фактор прибыли ниже 1, стратегия убыточна - не пытайтесь ее спасти, лучше начните с другой.
Пятый шаг - проверьте стратегию на out-of-sample участке. Разделите историю на две части: первые две трети для оптимизации, последняя треть для проверки. Если результат на проверочном участке сильно хуже, чем на оптимизационном, стратегия переобучена. Откажитесь от нее или упростите параметры.
Шестой шаг - перейдите на демо-счет. Торгуйте по правилам стратегии в течение одного-двух месяцев. Сравните результаты демо с результатами теста. Если они сильно расходятся, найдите причину: возможно, вы неправильно исполняете правила или тестер был настроен неточно.
Седьмой шаг - если демо подтверждает результаты теста, начните торговать на реальном счете с минимальным лотом. Риск на сделку не должен превышать 1-2% от депозита. Например, при депозите 100 000 рублей и стоп-лоссе 500 рублей на сделку вы можете открыть позицию объемом, при котором потеря при стопе составит не более 1 000-2 000 рублей. Торгуйте так несколько месяцев, пока не убедитесь, что стратегия работает в реальных условиях.
Помните: тестирование не гарантирует прибыль, но оно снижает риск. Стратегия, которая прошла проверку на истории, на демо и на минимальном реальном счете, имеет больше шансов на успех, чем стратегия, выбранная на глаз. Но даже проверенная стратегия может перестать работать - рынок меняется, и за этим нужно следить.
Регулярно пересматривайте результаты своей торговли. Если стратегия перестала показывать ожидаемые результаты, вернитесь к тестированию: возможно, изменились рыночные условия или вы отклонились от правил. Тестирование - это не разовое действие, а постоянный процесс контроля.
Источники
Частые вопросы
Какой минимальный период истории нужен для тестирования дневной стратегии?
Для дневной стратегии минимальный период - два-три года, чтобы захватить разные фазы рынка: тренд, флэт, повышенную волатильность. Если стратегия совершает мало сделок, например одну в неделю, период нужно увеличить до пяти лет, чтобы набрать хотя бы 50-100 сделок для статистической значимости. Короткий период в несколько месяцев не даст надежных выводов.
Что делать, если стратегия показывает прибыль на истории, но убыток на демо-счете?
Сначала проверьте настройки тестера: спред, комиссию, проскальзывание, задержку исполнения. Часто причина в завышенных ожиданиях из-за идеальных условий теста. Затем проверьте, точно ли вы исполняете правила стратегии на демо. Если настройки верны и правила соблюдаются, а результат все равно хуже, стратегия, скорее всего, переобучена на истории - ее параметры подобраны под прошлые данные и не работают в текущих условиях.
Можно ли тестировать стратегию на одном инструменте и применять к другому?
Нет, так делать нельзя. Каждый инструмент имеет свои характеристики: волатильность, средний диапазон движения, ликвидность, размер шага цены. Стратегия, работающая на фьючерсе на доллар, может не работать на фьючерсе на нефть из-за другой динамики цены. Если планируете торговать несколькими инструментами, тестируйте стратегию на каждом отдельно и сравнивайте результаты.
Готовые инструменты из каталога. Смотреть раздел → · Как проходит оплата