
Каждый без исключения начинающий трейдер слышал о том, что стратегии нужно тестировать перед переходом на реальный счет. Но далеко не каждый знает, как правильно организовать тестирование, как «читать» результаты и в какой момент этап проверки можно считать завершенным. В этом материале основное уделим именно практической составляющей, разберемся как организовать бэктестинг стратегий, как работать с результатами и какие инструменты стоит использовать.
Предупреждение о рисках: Информация в этой статье предоставлена исключительно в образовательных целях и не является финансовой рекомендацией, инвестиционным советом или предложением купить/продать активы. Все описанные стратегии, методы или идеи могут привести к финансовым потерям, включая полную утрату капитала. Мы не гарантируем результатов и не несём ответственности за любые убытки. Перед применением проведите собственное исследование.
Что такое бэктестинг в трейдинге
Бэктестинг стратегии (от англ. backtesting — «тестирование назад») — это процесс проверки торговой стратегии на исторических рыночных данных. Проще говоря, вы берёте свои торговые правила и смотрите, как бы они сработали, если бы вы применили их в прошлом. Звучит просто, но дьявол кроется в деталях — и большинство трейдеров делают это неправильно, получая обманчиво красивые результаты, которые рассыпаются при столкновении с реальным рынком.
Представьте, что вы разработали простейшую систему на основе скользящих средних:
- График пересекает ЕМА100, направление пересечения указывает на направление торговли.
- После первого же отката открывается сделка.
Бэктестинг шаг за шагом
Тестирование торговой стратегии можно разделить на отдельные этапы, ниже – пошаговая инструкция:
- Формулировка правил ТС. Нельзя переходить к тестам, если правила торговли не сформулированы предельно четко. Если ваши сделки совершаются скорее интуитивно, то говорить о тестах рановато.
- Выбор инструментов. Далеко не все стратегии универсальны, то, что хорошо работает, например, на EURUSD, может приносить убыток на AUDNZD и наоборот.
- Подготовка данных. Если тестирование автоматизировано, то достаточно подгрузить котировки в терминале.
При использовании МТ4 можно подгружать сторонние котировки для достижения точности тестирования в 99%. Необязательный этап, для большинства стратегий можно обойтись без него. - Выбор периода тестирования.
- Непосредственно тест.
- Анализ результатов.
- Если проводилась оптимизация параметров на истории, то понадобится еще и форвард-тест. Стратегия с обновленными настройками тестируется на другом участке истории.
- Переход на реальный счет.
Если строго следовать этой инструкции, то убыточная стратегия не дойдет до этапа перехода к реальному депозиту.
Ключевые метрики для оценки стратегии
По результатам тестов особое внимание обращают на:
- Доходность. Сколько удалось заработать за период тестирования.
- Просадку (абсолютная, максимальная и относительная), характеризует убыток ТС. Абсолютная просадка – разница между стартовым депозитом и минимальным размером счета за период тестирования. Максимальная и относительная – наибольшая разница между одним из High и следующим за ним Low в валюте и процентах соответственно.
- Винрейт – количество прибыльных сделок.
- Profit factor. Результат деления совокупной прибыли на убыток. Должен быть строго больше 1,0, это означает, что на каждую единицу убытка генерируется больше 1,0 профита.
- Коэффициент Шарпа. Мера оценки риска, чем выше этот показатель, тем лучше окупается принимаемый риск.
- Математическое ожидание выигрыша. Положительное значение указывает на прибыльность стратегии в целом. Чем выше число, тем быстрее будет расти капитал трейдера.
- Временной фактор. Если стратегия ручная, то нужно учитывать период, на который пришлась большая часть сигналов. Представьте трейдера, живущего в европейских часовых поясах. Если большая часть сигналов появляется на азиатской сессии, то торговать будет крайне некомфортно – придется переходить на ночной образ жизни.
Обычно в отчетах дается статистика по продолжительности максимальной серии прибыльных/убыточных сделок, среднему профиту и убытку, прочие метрики. Это скорее второстепенные показатели.
Инструменты для бэктестинга торговых стратегий
Все подходы к тестированию ТС можно разделить на 2 группы – ручной и автоматизированный подход. В зависимости от выбранного инструмента сильно отличается удобство тестирования, информативность, доступные метрики в отчете.
Ручное тестирование
Из преимуществ выделим разве что максимальную простоту и гибкость. Трейдер должен вручную проверять график на истории, находить точки входа, оценивать условия для выхода из рынка. На основе этого ведется отчет, позже можно подсчитать прибыль, винрейт.
У ручного тестирования есть критические недостатки:
- Огромные временные затраты. Даже при рабочем таймфрейме Н1 желательно изучить историю глубиной в 12-18 месяцев, на это уйдет немало времени.
- Человеческий фактор. Легко упустить точку входа, есть и субъективный фактор при оценке сигналов.
- Сложность ведения статистики и расчета основных показателей.
Этот подход используется только в крайних случаях, когда автоматизация стратегии невозможна.
Автоматический (программный) бэктестинг
Вы пишете код своей стратегии на языке программирования (Python, MQL4/MQL5, Pine Script, C++ и другие), и программа автоматически прогоняет её через исторические данные, выдавая подробный отчёт.
1. MetaTrader
Здесь можно использовать и ручное, и автоматизированное тестирование стратегий. Для автоматизации понадобится советник, написанный в соответствии с правилами вашей ТС. Именно необходимость написания советника – основной источник неудобств:
- Не все стратегии можно автоматизировать.
- Сама по себе автоматизация требует хотя бы базового знания языка MQL4 (или MQL5, если работаете в МетаТрейдере5).
В остальном все просто:
- Котировки подгружаются через сам терминал, их можно загрузить из стороннего источника для повышения точности.
- Выбирается торговый инструмент, таймфрейм, стартовый депозит, настраиваются параметры советника.
- Указывается период истории, на котором будет проводиться тест. Остальное встроенный тестер МТ4 сделает сам.
В результате теста получите отчет с основной статистикой и кривой роста депозита.
Помимо тестирования ТС можно и оптимизировать. Для этого в параметрах задается диапазон значений, по которым проводится оптимизация и указывается шаг. Тестер сам проверит все возможные комбинации параметров и отобразит все полученные результаты на графике.
2. TradingView
Один из лучших веб-терминалов, среди массы возможностей есть и тестирование торговых стратегий. Здесь есть инструмент «Симулятор рынка», можно выбрать определенный момент в истории, правая часть графика станет недоступной и будет симулироваться. Это позволяет сохранить чистоту эксперимента – вы не видите правую часть графика и торгуете так же, как это делается в реальных условиях.
По результатам теста автоматически рассчитывается ключевая статистика и формируется отчет. Доступны:
- Общий обзор результатов. Дается ключевая статистика, графическое отображение результатов торговли.
- Динамика – все, что связано с убытком и прибылью. Статистика показывается отдельно для длинных и коротких позиций.
- Анализ сделок. Сколько всего открыто позиций, доля прибыльных сделок, средний профит/убыток по трейду, максимальный убыток/прибыль в каждой сделке.
- Коэффициенты риска/эффективности. Всего 4 пункта – коэффициенты Шарпа, Сортино, Фактор прибыли и Маржин Коллы.
- Список сделок. Детальная информация по каждой заключенной сделке.
Этот терминал дает неплохой инструмент для тестирования стратегий, но за это придется платить. На базовом тарифном плане Симулятор рынка недоступен. Можно использовать пробный доступ, новым клиентам дается ограниченный по времени доступ ко всем возможностям платформы.
3. Python
Технически Python можно рассматривать как свой «собственный тестер стратегий». По сравнению с готовым тестером из МетаТрейдера тестирование ТС с помощью соответствующих Python фреймворков намного гибче. Правда, понадобится хотя бы минимальное знание языка.
Упрощенно схему тестирования можно описать так:
- Загружаются данные по ценам, источник данных может быть любым, его определяет трейдер.
- Описывается логика торговли. Нужно указать условия, при которых будут заключаться сделки, как они должны закрываться и прочие нюансы. Это слабое место – далеко не каждую ТС можно описать на Python.
- Идет симуляция торговли.
- В зависимости от фреймворка в конце рассчитываются основные показатели – прибыльность, винрейт, матожидание прибыли, просадки, ключевые коэффициенты.
По сравнению с обычным тестером в МТ4 или симулятором рынка в TradingView Python выделяется максимальной гибкостью. Недостатки те же – необходимость знать язык, невозможность тестировать ряд стратегий.
4. QuantConnect
Здесь можно тестировать и оптимизировать стратегии, если подключить брокера, то платформа сможет отправлять ордера для заключения сделок. Большая часть функций доступна только на платных тарифных планах. Есть и бесплатный уровень, но он подойдет скорее для знакомства с возможностями платформы.
Ключевые особенности QuantConnect:
- Основа – движок Lean, написан на С#.
- Есть облачная и локальные платформы, локальную можно развернуть на своем ПК.
- Правила стратегии нужно описать на C# либо на Python (можно использовать привычные библиотеки типа Pandas, NumPy, SciPy).
- Не нужно получать котировки извне. Авторы платформы говорят о более чем 400 Тб «финансовых данных». Здесь есть котировки практически по любому активу – от валютных пар до фьючерсов на соевые бобы и криптовалюту. Данные не нужно готовить к тестированию.
- За счет выделения вычислительной мощности существенно ускоряется оптимизация стратегий.
- Есть готовые модули, их можно интегрировать в свою стратегию. Это модули, касающиеся ограничения по просадке, автоматизации стоп-лоссов и прочих универсальных нюансов. Не придется писать эту логику с нуля, достаточно подключить готовое решение от QuantConnect.
- Есть основанный на Jupyter Notebook QuantBook. Удобный инструмент для проверки торговых идей перед полноценным тестированием.
- Через платформу можно подключиться к брокерским счетам на Interactive Brokers, Binance, TradeStation, поддерживаются и другие брокеры/криптобиржи. После теста стратегию можно перевести в так называемый live режим и торговать через QuantConnect.
- Дается развернутая статистика с графиками, основными коэффициентами и прочими метриками.
Также на платформе есть несколько готовых стратегий. Можно ознакомиться с их кодом, клонировать, но их прибыльность не гарантирована.
В целом, QuantConnect можно назвать инструментом для профессиональных трейдеров. Тестирование существенно упрощается по сравнению с чистым Python.
Типичные ошибки при бэктестинге
Независимо от рынка и конкретной стратегии можно выделить несколько самых часто встречающихся ошибок. К ним относятся:
- Переоптимизация. Подбираются параметры, при которых ТС отлично работает на истории, но в режиме реального времени результаты оказываются на порядок хуже. Стратегия слишком долго и тщательно оптимизируется, вместо поиска оптимальных настроек трейдер просто подгоняет ее результаты под историю.
- Пропуск этапа форвард-тестирования. После теста и оптимизации на истории нужно проверить как работает стратегия на другом участке истории (форвард-тест). Ключевое здесь то, что этот участок не должен быть задействован в оптимизации.
- Неудачный выбор отрезка истории, в идеале он должен включать разные состояния рынка. Здесь единого рецепта нет, все зависит от рабочего таймфрейма. Для М5-М15 можно рекомендовать тестирование на истории глубиной от 3-6 месяцев до 1-1,5 лет. При таймфреймах Н1-Н4 – до 3-5 лет, дневной таймфрейм – от 5-7 лет.
- Выбор слишком большого периода для бэктеста. Рынок изменчив, периодически стратегию нужно будет оптимизировать – это нормально. Если будете тестировать ТС на слишком большом отрезке истории, то скорее всего результат будет не лучшим.
- Игнорирование издержек. Такие факторы как спред, комиссия могут «съесть» большую часть прибыли.
- Игнорирование реального спреда и проскальзываний. У ряда брокеров спред может существенно расширяться, исполнение может быть неидеальным, особенно если сигнал возникает при всплеске волатильности. Эти факторы могут существенно повлиять на результат, но их сложно учесть при тестировании.
- Корректировка данных (они могут очищаться от ГЭПов и прочих аномалий). Встречается редко, чаще всего эта проблема не проявляется.
- Малое количество сделок. Встречается в специфических стратегиях с жесткими условиями отбора точек входа. Вы можете выбрать правильный отрезок истории для теста, но самих сделок может быть всего несколько десятков. Необходимый минимум – пара сотен.
Чтобы избежать этих ошибок придерживайтесь следующих правил:
- Не гонитесь за идеалом. Ваша цель – проверить стратегию на истории, а не подгонять ее под исторические данные.
- Всегда делайте форвард тест. Обычно используют соотношение 1 к 3 – 1 к 4. Если стратегия тестируется на истории в 3 года, то форвард тест должен занимать 9-12 месяцев.
- Оценивайте количество сделок – нужно как минимум 200-300 трейдов.
- Учитывайте тип стратегии, для некоторых спред, проскальзывания могут быть критически важны. Если тестер позволяет это, используйте рыночный спред, а не фиксированный.
- Не ждите мгновенный результат. Тестирование – это просто проверка торговой стратегии, результат вполне может оказаться отрицательным.
Пример тестирования торговой стратегии
В качестве примера используем стратегию Inner bar. ТС основана на одноименном паттерне Price Action, добавлен фильтр в виде индикатора Bollinger Bands.
Коротко о правилах стратегии:
- Торговля ведется только на отбой от границ полос Боллинджера.
- Входить в рынок можно, если был пробой или заброс цены за линию Bollinger Bands и сформировался внутренний бар. То есть свеча прокалывает границу ВВ или пробивает ее, следующая свеча остается в пределах диапазона предыдущей (Inner bar).
- Может использоваться и фиксированный тейк-профит, и трейлинг-стоп.
Стратегия адаптирована под USDJPY и AUDUSD.
По правилам этой стратегии написан советник, использовался язык MQL4, поэтому ТС можно протестировать в МетаТрейдере4. Так как рабочий таймфрейм М15 для теста выберем годовой отрезок, подберем оптимальные настройки и затем проведем форвард тест на 3-месячном отрезке истории.
Тест за год показал сравнительно низкую частоту торговли – всего 50 сделок. Это означает, что период тестирования нужно увеличить, с учетом количества сделок ТС придется тестировать на дистанции как минимум в 2-3 года. Форвард-тест при таком сценарии будет проводиться на дистанции в 6-9 месяцев.
В нашем примере уже при увеличении глубины истории до 2 лет видно, что стратегия перестает быть прибыльной. Первый год ТС стагнировала, вся прибыль получена на второй год.
Если результаты теста не устроили, можно выполнить оптимизацию, а затем и форвард-тест. В нашем примере оптимизация проводилась на дистанции с начала 2023 по апрель 2025 года, период с апреля по конец октября 2025 года можно использовать для форвард-теста.
Оптимизация не принесла особого успеха, результативность осталась примерно на том же уровне. Для наглядности выполнен и форвард-тестинг, ниже – основная статистика, показатели остаются без особых изменений.
Это универсальная схема, работает при тестировании/оптимизации любой стратегии без исключения.
Когда переходить на основной счет
В общем случае действия трейдера можно описать следующей блок-схемой.
Психологически легче организовать небольшой переходный период перед работой на основном счете. Может использоваться:
- Демо-счет.
- Центовый счет. Это реальные деньги, но каждый реальный цент в терминале выглядит как единица валюты.
Поработайте в таком режиме 2-4 недели (срок зависит от конкретной стратегии), наблюдайте за статистикой. Если все в порядке, то можно переходить на основной счет.
Заключение
Бэктестинг стратегий – обязательный этап, с которым сталкивался каждый без исключения зарабатывающий трейдер. Никто не использует новую стратегию на основном счете без проверки. Это логично – нельзя гарантировать прибыльность ТС, эту гарантию не дают и тесты, но после их проведения вы хотя бы убедитесь в том, что стратегия работала в прошлом. Высока вероятность, что и в будущем результаты будут схожими.
Любая новая стратегия должна тщательно тестироваться и только потом ее можно использовать. Практика неоднократно доказывала, что игнорирование этого правила приводит лишь к необязательным убыткам.



















