Начинающие частные трейдеры чаще всего теряют деньги по следующим причинам:
- следуют чужим прогнозам;
- не придерживаются правил риск-менеджмента;
- не тестируют торговые стратегии в базовом виде на исторических данных — не проводят бэктесты.
Именно о важности последнего фактора мы и будем говорить в этой статье.
Что такое бэктест инвестиционного портфеля или отдельных стратегий, и в чем его ценность
Современные стартапы Кремниевой Долины имеют одну полезную привычку: тестировать сотни различных гипотез (пускай иногда и совершенно диких), выискивая в них эффективные закономерности для своих продуктов. Такой подход называется growth hacking, или “взлом роста”. Этот метод помогает протестировать сотни или тысячи идей, опираясь на качественные и количественные исследования. И чем больше и качественней команда проведет таких исследований, тем с большей вероятностью они найдут точки роста бизнеса.
Бэктестинг в трейдинге — что-то вроде growth hack у стартапов. Вы берете гипотезу (торговую стратегию, которую хотите запустить с реальными деньгами) и пропускаете через количественные и качественные исследования (тестируете стратегию на исторических котировках с разными настройками). Пускай изначально у вас может и не быть сотен идей торговых стратегий, но для начала и парочки будет достаточно.
Тестирование торговых стратегий — это как последовательные тренировки перед соревнованиями, или краш-тест автомобиля перед его официальным выпуском. Без этих последовательных действий невозможно ни победить соперников, ни выпустить нормальный автомобиль, который будет продаваться на рынке.
Финансовые рынки “вынуждают” действовать многих трейдеров и инвесторов иррационально. В это иррациональное поведение входит как раз и применение стратегий, которые не прошли ни одной “тренировки” перед соревнованиями. Шансы на получение какой-либо системной прибыли с такими стратегиями стремятся к 0.
За 1 час поможем разобраться с факторами успеха и причинами неудач на финансовых рынках. Бесплатно 📈📊
Преимущества тестирования торговых стратегий и важные этапы
Вот с чем поможет вам бэктест:
- Объективно оценить любую торговую идею или гипотезу — без эмоций и предубеждений.
- Выявить (или не выявить) статистическую ценность торговой стратегии.
- Оптимизировать и улучшить стратегию, которая заслуживает право на лайв-трейдинг.
- Увидеть сильные и слабые стороны стратегий.
- Получить опыт в процессе тестирования. Вы будете понимать, какие подходы имеют больше шансов на успех, а от каких лучше отказаться.
Разделим процесс тестирования торговых стратегий на несколько важных шагов:
- Фильтрация. На данном этапе вы формируете гипотезу стратегии, которую хотите проверить на работоспособность. Это можно делать хоть на бумаге.
- Моделирование. Теперь можно формировать выбранную гипотезу уже в стратегию, используя доступные программы и методы. Скоро об этом поговорим.
- Оптимизация. Любая стратегия имеет множество настроек — от различных параметров индикаторов, до уровней стоп-лосса и тейк-профита. Именно их и нужно оптимизировать, выявляя наиболее удачные настройки.
- Выявление. Теперь вы можете видеть результаты стратегии с различными параметрами на истории и выбирать наиболее оптимальную настройку.
В рамках бэктеста этих шагов достаточно. Для полного же цикла стратегию необходимо пропускать еще и через форвард-тест. Подробнее о форвард-тесте — в конце статьи в разделе “Материалы”.
Тестирования торговых стратегий на исторических данных содержат некоторые скрытые критерии, о которых поговорим дальше.
Как создавать торговые стратегии на основе статистики и данных, способных работать 24/5 — подскажет курс "Системный трейдинг" 📊
Как провести бэктест. Программы, которые понадобятся в ходе тестирования торговых стратегий
Если вы не владеете языками программирования, тогда можно использовать доступные визуальные конструкторы стратегий. Вот несколько из них:
- TSLab — наверное, один из самых популярных визуальных конструкторов в СНГ
- R Stocks Trader от брокера RoboForex
- Встроенный тестер стратегий в платформе MT4
Если же вы знакомы с языками программирования, можно использовать следующие:
- Python — язык программирования с огромной библиотекой данных. С этим языком можно создать любую стратегию, визуализацию, да и все, что душе угодно — ограничения лишь в вашей фантазии и навыках программирования. Считается одним из самых доступных языков в плане его изучения
- С++ — уже более сложный язык. Говорят, что C++ больше подходит для высокочастотных стратегий (HFT), так как он имеет очень высокую скорость исполнения любых алгоритмов
- MQL4 — сформировался в процессе роста популярности платформы MetaTrader 4. Трейдеры, активно торгующие на этой платформе, часто используют MQL4 для автоматизации стратегий
Также будет полезен Excel — бессмертный инструмент, благодаря которому можно получать кривые доходности и важные коэффициенты торговых стратегий. На практике алготрейдинга вы можете пользоваться нашими готовыми Excel-макросами для бэктестов. Эти инструменты сохранят десятки часов подготовительных работ при тестировании торговых стратегий.
Факторы, влияющие на успех бэктеста и будущих стратегий
Чтобы рационально подходить к тестированию торговых стратегий, нужно фокусироваться на 3-х критериях:
- Фактор оптимизации.
- Фактор “выживания” стратегии.
- Психологический фактор.
Пройдемся по списку.
Шпаргалка по историческим тестированиям есть в нашем Telegram 📊
Фактор оптимизации
Впервые получая результаты бэктеста, мы автоматически смотрим на доходность стратегии. Вот правда доходность — не самый важный показатель, на который надо обращать внимание.
Ниже бэктесты двух похожих стратегий. Доходность первой — 48% за год, доходность второй — 37%.
Если бы мы выбирали стратегию только по признаку доходности, тогда первая стратегия победила бы. Вот только вторая стратегия лучше адаптирована и оптимизирована под рыночные условия — ее кривая значительно плавнее, хоть и доходность ниже на 11%. Разумные инвесторы точно не выберут первый вариант в попытке заработать дополнительные 11%.
Фактор "выживаемости" торговой стратегии
Здесь нам важно протестировать торговую стратегию на длительном временном периоде. В нашем случае — это около 11-ти лет исторического тестирования.
Два важных параметра, на которые мы смотрим по завершению исторического тестирования:
- Максимальная просадка в % от капитала.
- Просадка по времени.
Максимальная просадка в % от капитала
Просадка от капитала — временный или зафиксированный убыток, который показала стратегия на историческом тестировании или в живом исполнении.
Просадки и финансовые рынки — две стороны одной медали. Кривая капитала никогда не будет расти под 45 градусов без каких-либо снижений. Все, что нужно делать трейдеру — контролировать максимально допустимый уровень просадки. Под “максимально допустимым” считаются разные параметры — у кого-то это 30%, у кого-то 50%, а кому-то сложно пережить и 10%. Здесь выбор субъективен и зависит от рисковых предпочтений самого трейдера.
Именно просадка может повлиять на финальный выбор стратегии. На примере ниже — неплохой бэктест, но просадка в конце исторического тестирования не позволила перевести стратегию в следующую фазу. И проблема тут не в самом размере просадки, которая составила 11,25% (что, в целом, вполне допустимо), а именно в резком снижении капитала.
Такое резкое снижение капитала может говорить о следующем:
- Стратегия начала ломаться под конец тестируемого периода
- Стратегия плохо проявляет себя именно в конкретные рыночные фазы (в таких случаях можно посмотреть, что там было на рынке в период просадки) и т. д.
Вариантов может быть много. Не стоит искать ответы на все вопросы, проще обращать внимание на такие вот бэктесты.
Просадка по времени
С просадкой по времени все проще. Бывает, что кривая капитала на бэктесте сильно не проседает в денежном эквиваленте, но стратегия стагнирует по времени. К примеру, как на рисунке ниже.
На первый взгляд вполне приемлемая кривая капитала. Но вот стагнация в течение 2-х лет смущает. Опять же, такое может быть и в живом трейдинге, но на бэктесте не всегда хочется пропускать подобные стратегии дальше.
Хуже, что может быть, это просадка по времени и просадка в денежном эквиваленте. Вот как на примере ниже.
Психологический фактор
Эмоциональные и психологические факторы будут преследовать инвесторов всегда. Пусть и у алгоритмических трейдеров уровень эмоций будет ниже, чем у “ручных” трейдеров, но все равно иногда это будет мешать рациональному восприятию. Вернемся к уже изученным историческим тестам.
В эмоциональном плане первая стратегия принесла бы всем нам много седых волос. Вторая стратегия же более спокойная и не такая нервная. Так что нужно выбирать более плавные кривые, которые не будут повышать наш уровень кортизола (гормон стресса). За плавность и красоту кривой отвечает коэффициент R-квадрат, он же коэффициент детерминации.
Заключение
Так как рынки имеют значительную долю неопределенности, мы не знаем, что на них будет происходить завтра. Все что у нас может быть — статистическая модель за прошлый период времени (те самые 10, 15 или 20 лет исторических тестов), риск-модель (заданный уровень максимальной просадки, риск на одну сделку) и “холодный” ум.
Бэктест не дает 100% гарантий, что стратегия будет вести себя именно так, как на историческом тестировании, но это лучшая статистическая основа, с которой нужно начинать.
Основные тезисы статьи:
- Внедрите тестирование торговых стратегий в свою практику уже сейчас. И неважно какие способы вы для этого будете использовать вначале, — даже если это простейший визуальный тестер — уже хорошо. В процессе вы обязательно освоите новые методы тестирования и увлечетесь этим.
- Стремитесь к объективной оценке стратегий и подходов. Часто бывает, что вроде как логичная стратегия не приносит результатов, тогда как примитивный метод позволяет получать системную прибыль. Финансовые рынки — область парадоксов. Иногда хорошие результаты находятся там, где меньше всего их ждешь.
- Настраивайте риски торговых стратегий так, чтобы они не приносили вам стресс и неуверенность. Мы рекомендуем настраивать максимально допустимую просадку в районе 15% на капитал.