Как протестировать торговую стратегию
Главная
Статьи
Как протестировать торговую стратегию

Как протестировать торговую стратегию

Продвинутый
Опубликовано Dec 17, 2020Обновлено Jun 21, 2023
7m

Осторожно! Много текста.

У вас есть отличная торговая стратегия, но вы не знаете, как ее проверить, не рискуя при этом своим капиталом? Хороший трейдер должен уметь тестировать стратегии с помощью исторических данных.

Основная идея тестирования состоит в том, что, если какая-либо стратегия сработала в прошлом, значит, она может сработать и в будущем. Но как выполнить тестирование? И как оценить полученные результаты? Давайте подробнее рассмотрим процесс базового тестирования торговых стратегий.


Введение

Тестирование торговых стратегий, или бэктест (от англ. backtesting), – один из ключевых процессов разработки торговой стратегии и построения графиков торговли. Оно производится путем получении информации о прошлых сделках с помощью изучения исторических данных. Бэктест дает общее представление об эффективности выбранной торговой стратегии.

Для тестирования стратегий можно использовать Binance Futures. Чтобы получить доступ к историческим данным платформы, заполните форму заявки.


Что такое бэктест?

Подробную информацию о тестировании торговых стратегий можно найти в нашей статье Что такое бэктест?

Если кратко, то основная цель бэктеста – демонстрация эффективности торговых стратегий. Чтобы увидеть, сработала ли подобная стратегия в прошлом, используются исторические данные рынка. И на основе полученной информации делается вывод о том, насколько перспективна выбранная стратегия для применения в реальных рыночных условиях.


Перед выполнением бэктеста

Прежде всего нужно определить, к какой группе трейдеров вы относитесь: к дискреционным или систематическим.

Дискреционный трейдинг основан на принятии решений о входах и выходах из сделок. Эта стратегия считается относительной свободной, поскольку большинство решений зависит от оценки трейдером текущих условий. Следовательно, бэктест менее актуален для дискреционного трейдинга, так как не подразумевает четкого выбора стратегии.

Однако это не означает, что если вы дискреционный трейдер, то вам вообще не следует учитывать исторические данные или заниматься торговлей. Это означает, что результаты бэктеста могут быть не такими надежными, как в случае с системным трейдингом.

Наша тема более применима к системному трейдингу, поскольку системные трейдеры полагаются на торговую систему, от которой зависит время входа и выхода из сделок. И хотя в этом случае трейдеры также полностью контролируют ситуацию, моменты входа и выхода из сделки определяются выбранной ими стратегией. Простая систематическая стратегия выглядит так:

  • Когда А и В происходят одновременно, это сигнализирует о необходимости входа в сделку. 
  • Появление Х сигнализирует о необходимости выхода.

Некоторые трейдеры предпочитают именно этот подход, поскольку он позволяет исключить принятие эмоциональных решений и обеспечивает относительную уверенность в прибыльности торговой системы. Но, разумеется, он не дает никаких гарантий.

Вот почему важно установить конкретные правила, определяющие время входа или выхода из позиций. При этом четкое определение стратегии повышает надежность полученных результатов. Данный вид трейдинга особенно широко используется в алгоритмической торговле.

Также существует программное обеспечение, позволяющее тестировать стратегии при помощи исторических данных. Его можно приобрести для проведения автоматического бэктеста. Вы просто вводите свои данные, и программа выполняет тестирование за вас. Однако наша статья посвящена бэктесту, выполняемому вручную. И хотя этот процесс занимает больше времени, его преимуществом является то, что он абсолютно бесплатен.


Как протестировать торговую стратегию

Шаблон доступен в электронной таблице Google Sheets по данной ссылке. Это базовый шаблон, который вы можете использовать для создания своего собственного. Он дает общее представление о том, какую информацию может содержать таблица для бэктеста. Некоторые трейдеры предпочитают Excel или кодирование на Python – это исключительно дело вкуса. Вы можете добавить большее количество данных и все, что посчитаете нужным.
Дата
Рынок
Направление
Вход
Стоп-лоссТейк-профитРискНаградаPnL

12/08

BTCUSD

Длинная позиция

$18 000

$16 200

$21 600

10%

20%

3 600

12/09

BTCUSD

Короткая позиция

$19 000

$20 900

$13 300

10%

30%

-1 900


Давайте протестируем простую торговую стратегию. Для этого представим следующую ситуацию:

  • Мы покупаем один биткоин при первом суточном закрытии после появления золотого креста, то есть когда 50-дневная средняя скользящая пересекает 200-дневную среднюю скользящую.
  • Мы продаем один биткоин при первом суточном закрытии после появления креста смерти, то есть когда 200-дневная средняя скользящая пересекает 50-дневную среднюю скользящую.

Как видите, мы также обозначили временной интервал реализации стратегии.И это значит, что мы не будем воспринимать появление золотого креста на 4-часовом графике в качестве сигнала к действию.

В данном примере мы рассмотрим только период времени до начала 2019 года. Для более точного и надежного результата вы можете проследить и более ранее движение цены биткоина.

Теперь давайте проанализируем сигналы, которые наблюдаются в торговой системе за обозначенный период:

  • Купить @ ~$5 400
  • Продать @ ~$9 200
  • Купить @ ~$9 600
  • Продать @ ~$6 700
  • Купить @ ~$9 000


На графике эти сигналы выглядят следующим образом:

Стратегия «золотой крест-крест смерти». Источник: TradingView.


Наша первая сделка принесла бы прибыль в размере около $3 800, в то время как в результате второй сделки мы потеряли бы около $2 900. Это означает, что наш реализованный PnL в настоящее время составляет $900. 

Мы также наблюдаем активный трейдинг, который по состоянию на декабрь 2020 года принес около $9 000 нереализованной прибыли. Если мы будем придерживаться нашей изначальной стратегии, сигналом выхода из позиции будет служить появление креста смерти. 



Оценка результатов бэктеста

Итак, что показывают результаты? Благодаря нашей стратегии мы получили бы некоторую прибыль, однако выдающихся результатов она бы не принесла. Мы могли бы реализовать текущую открытую сделку, чтобы значительно увеличить наш реализованный PnL, но это лишило бы цели наш бэктест. Если мы не будем придерживаться выбранного плана, мы не получим надежных результатов.

Несмотря на то, что эта стратегия является систематической, ее также стоит рассматривать в контексте. Убыточная сделка от $9 600 до $6 700 была совершена во время кризиса из-за COVID-19 в марте 2020 года. Такой «Черный лебедь» может оказать огромное влияние на любую торговую систему. Это еще одна причина, по которой стоит выполнять бэктест и проверять, является ли полученный результат следствием обвала рынка или побочным эффектом выбранной стратегии.
Мы показали, как может выглядеть простой бэктест. Выбранная стратегия может оказаться более прибыльной, если выполнить тестирование повторно, добавив большее количество данных или другие технические индикаторы и усилив таким образом сигналы, наблюдаемые в стратегии.

Что еще могут показать результаты бэктеста?

  • Волатильность: максимальные взлеты и падения.
  • Риски: размер капитала, который необходимо выделить для исполнения стратегии.
  • Годовая доходность: процентная доходность стратегии за год.
  • Соотношение выигрышей и проигрышей: какая часть сделок в системе приводит к выигрышу, а какая – к проигрышу.
  • Средняя цена исполнения: средняя цена выполненных входов и выходов в стратегии.
Мы представили лишь несколько примеров применения бэктеста. Какие показатели вы будете анализировать, зависит только от вас. В любом случае, чем больше данных о стратегии вы учитываете, тем более эффективный результат получаете. Некоторые трейдеры относятся к выполнению тестирования очень серьезно, и это также может отражаться на их результатах.
Последний аспект, который мы рассмотрим, – оптимизация. Если вы прочитали нашу статью о бэктесте, то уже знаете разницу между бэктестом и форвардтестом, или бумажной торговлей. Тестируйте и оптимизируйте стратегии в реальных торговых условиях с помощью тестовой сети Binance Futures.


Резюме

Мы рассмотрели базовое тестирование торговой стратегии, выполняемое вручную. Помните, что срабатывание какой-либо стратегии в прошлом не дает никаких гарантий ее эффективности в будущем. 

Условия рынка постоянно меняются, и необходимо уметь адаптироваться к этим изменениям, чтобы вести прибыльную торговлю. Тем не менее, оценивая результаты тестирования, полезно руководствоваться не только цифрами, но и здравым смыслом.