Если потестировать робота в 1,000,000 комбинациях, то можно найти прибыльную настройку. Проблема — после запуска в боевой режим робот почти всегда ломается и приносит неожиданные убытки. Полностью эта проблема не решается, но есть методы, которые повышают уверенность алготрейдера в том, что его робот в реальном времени будет держаться молодцом. Рассмотрим один из таких способов.
В качестве подопытного алгоритма возьмем робот с индикатором MACD в основе. Он протестирован на небольшом историческом окне в 9 месяцев (с марта 2019). Однако этого окна хватает, чтобы судить о возможностях нашей стратегии, т.к. в среднем каждая модификация этого робота делает по 7 сделок в месяц — это почти 2 в неделю.
Всего протестировано 168 модификаций. Никакого «дата-майнинга»! Из изученных 168-ми настроек более четверти прибыльные, неплохо.
Что это за робот: он торгует глядя на линию MACD (выше или ниже нуля) и разворот гистограммы. На самом деле в роботе предусмотрена как трендовая торговля, так и «перевертыш», который торгует ровно наоборот по тем же сигналам. Однако нас больше всего интересует не торговый алгоритм, а то, как каждая настройка робота влияла на его доходность и как из этих настроек выбрать что-то для реальной торговли.
Настройки робота состоят из:
- входы: трендовые и «перевертыш»;
- размер стоп-лосса: измеряется в ATR от 1.5 до 4 с шагом 0.5;
- размер тейк-профита: измеряется в тейк-профитах от 1 до 4 с шагом 0.5
Так получаем 2 * 2 * 6 * 7 = 168 конфигураций робота.
Как создавать торговые стратегии на основе статистики и данных, способных работать 24/5 — подскажет курс "Системный трейдинг" 📊
Подбор идеальной настройки робота. Часть 1
Сперва мы можем просмотреть, как меняется доходность, если варьировать каждую настройку в отдельности. Перед нами несколько диаграмм, где показана сама настройка робота и его доходность на 70% тестового участка. Т.е. выбрав что-то понравившееся, мы можем узнать, как эта конфигурация робота вела себя на 30% остального времени — такой себе форвард-тест.
Сначала рассмотрим «трендовый» (1) и «контртрендовый» (2) вариант робота.
Судя по рисунку, у трендового (1) варианта небольшое преимущество. Отрицательная и положительная доходность чуть получше, чем у «перевертыша». Возможно, это подтверждение, что трендовые стратегии лучше. Но не будем загадывать заранее.
Смотрим, как стоп-лосс определяет доходность.
Стоп-лосс в этом роботе измеряется ATR’ами. Выбрать его можно только исходя из системы ценностей каждого трейдера. Кому-то нужно сократить отрицательную часть (точки слева от вертикальной черты), кому-то — положительную улучшить. Для первого случая подходят крупные стоп-лоссы, по 4 АТR’a. Для второго — в районе 2.5.
Как тейк-профит определяет доходность?
Это снова зависит от системы ценностей трейдера. Сократить отрицательную часть можно выбрав ТП в районе «2». Увеличить положительную — только увеличением тейк-профита. Кстати, здесь тейк-профит измеряется в стоп-лоссах.
Теперь таймфрейм, как он предопределяет доходность?
1-часовой таймфрейм дает больше точек как слева, так и справа от вертикальной оси. 4-часовой фрейм чуть более стабильный и стремится к вертикальной оси.
Какой итог? Предположим, мы выбираем каждую настройку исходя из максимальной прибыльности. Тогда это робот такой:
- трендовый;
- стоп-лосс = 2.5;
- тейк-профит = 4;
- таймфрейм 1-часовой.
Как он повел себя на остальных 30% времени? Итог = -14.52% годовых. См. ту часть кривой капитала, что справа от красной линии.
Метод пока не претендует на то, чтобы давать полную уверенность. Он делает лишь то, что в нем заложено: выбрать ту настройку, которая дает больше положительных доходностей.
Переходим ко второй части, где мы более полно используем идею форвард-теста, т.е. будем подбирать настройки так, чтобы они и в условном «будущем» давали лучший результат. Опытный алготрейдер/математик назовет это оверфитом (подгонкой под историю), но, применив этот метод, мы посмотрим, как отобранная настройка отработала 3 недели реальных торгов, которые не входили в исторический период, на котором тестировался робот.
Статистика алгоритмического трейдинга + новые статьи и новости финансовых рынков в нашем Telegram канале ➡️
Подбор идеальной настройки робота. Часть 2
Посмотрим, насколько стабильной остается доходность робота в «прошлом» (это первые 70% исторического периода — с марта 2019 года) и в «будущем» (остальные 30% в сентябре-ноябре 2019), если варьировать 4 настройки робота.
Так выглядят все доходности в «прошлом» против «будущего» — оси Х и Y соответственно.
Смотрим, как они меняются, если выбирать между трендовым и контртрендовым вариантом робота.
Отлично видна разница: 2-я диаграмма более стабильна — это контртрендовый подход.
Теперь таймфреймы: 1-часовой и 4 часовой.
Выигрывает снова 4-часовой.
Теперь поварьируем стоп-лосс от 1.5 до 4.0 с шагом 0.5.
Поскольку здесь замешаны остальные настройки, выбрать один вариант сложновато!
Теперь варьируем тейк-профит от 1.0 до 4.0 с шагом 0.5.
Снова нет однозначного ответа, т.к. замешаны все таймфреймы и оба подхода.
Вернемся к тому, что контртрендовый подход оказался лучше, и выберем настройки там.
Поварьируем таймфреймы: 1 или 4?
Выигрывает 2-я диаграмма с 4-часовым таймфреймом. Теперь осталось подобрать стоп-лосс и тейк-профит.
Варьируем стоп-лосс от 1.5 до 4.0 с шагом 0.5.
Неплохо выглядят все. (Забегая наперед, скажем, что после теста стратегии в конце ноября 2019 мы остановились на настройке 1.5. Не спрашивайте, уже не помню, почему, возможно, из-за количества сделок в месяц.)
Теперь варьируем тейк-профит от 1.0 до 4.0 с шагом 0.5.
Самым симпатичным оказался короткий тейк-профит в районе 1.0-1.5. Короткий. Поскольку на 1.0 некоторые точки в правой части диаграммы уходят вниз, остановимся на 1.5.
Итого, в конце ноября 2019 года получаем робота, готового к живой торговле с настройками:
- контртрендовый;
- 4-часовой таймфрейм;
- стоп-лосс 1.5;
- тейк-профит 1.5.
Проверим его на декабре месяце. На скриншоте — бэктест за конец ноября и декабрь.
В реальном времени с конца ноября сделки этого робота выглядят так — отмечены на скриншоте желтыми стрелками, т.к. с ним торговал еще один робот.
Заключение
Можно ли объяснить успешную работу этого алгоритма только магией оптимизации и методом выбора настройки для лайва? Думаю, что нет, поскольку этот робот фундаментально настроен на работу во флэтах. Евро в этом году — как раз флэтовый рынок.
С помощью описанного метода отбора нам удалось отбросить заведомо плохие настройки. В дальнейшем мы планируем применять и развивать этот метод.
Если вы занимаетесь алгоритмической торговлей или только думаете об автоматизации вашего трейдинга, напишите в комментариях, насколько полезными оказались предложенные в статье методы, а также поделитесь вашим опытом или задайте интересующие вас вопросы.