15 важнейших параметров, которые отвечают за качество торговых стратегий
Алготрейдинг действительно освобождает время и концентрацию любого ручного трейдера. Тем не менее время, концентрация и внимание будут необходимы в другом векторе — векторе обработки данных. Это не менее важная часть алготрейдинга, как и поиск рыночных неэффективностей.
Запуск торговых алгоритмов в live-режим возможен только после множества бэктестов и оптимизаций. Пройдя эти этапы, трейдер выбирает наилучшие параметры торговой системы (ТС). Статья расскажет, по каким критериям оценивать успешность той или иной тестовой серии, а также разберемся с различными настройками алгоритма при запуске на реальном счете.
Полезные материалы, которые хорошо бы изучить перед продолжением:
- Тестирование торговых стратегий на исторических данных (бэктест) — почему это так важно?
- В чем потенциал системных трейдеров и как его развивать.
- Торговый робот для Форекс или биржевой торговли — 6 плюсов и 4 минуса автоматизации трейдинга.
- Как использовать математику в трейдинге, если вы вообще не математик.
- Эпоха больших данных и как к ней адаптироваться нам — частным трейдерам?
Содержание
- Видео.
- Какой софт используется.
- Показатели результативности торговой системы.
- Сделки: величина и время.
- Количество прибыльных и убыточных сделок
- Максимальный прибыльный и убыточный трейд
- Средняя сделка, средняя прибыльная, средняя убыточная
- Соотношение средней прибыльной и средней убыточной
- Положительные и отрицательные серии трейдов — максимальные и средние
- Среднее, максимальное, минимальное время трейда
- Среднее время положительной и отрицательной сделки
- Количество Long/Short трейдов, % положительных
- Кривая доходности.
- Заключение.
Видео
Какой софт используем
Все бэктесты мы проводим на платформе JForex от Dukascopy банка. Алгоритмы изначально разрабатывались в визуальном конструкторе Visual JForex, сейчас же стали использовать Java код напрямую. Результаты тестов алготрейдинга оценивались с помощью Microsoft Excel. Попутно как вспомогательный софт использовался Total Commander для быстрой переработки отчетов в нужный формат.
Использование одной платформы для создания алгоритмов, тестирования, оптимизаций и, наконец, запуска на реальном счете — очень удобно. Это существенно повышает качество теста, а также вероятность того, что в live-торговле результаты автоматизированного трейдинга будут максимально приближены к историческим.
Прибыльные торговые стратегии, кейсы и исследования — в нашем Telegram 📈
Показатели результативности торговой системы
Результативность любого исторического теста можно оценить более чем по 40 параметрам. Рассмотрим несколько ключевых из них, которые помогут получить полную картину. Для примера возьмем один (случайно выбранный) исторический тест на часовом графике EUR/USD длительностью чуть более года.
Первое, что мы получаем после проведенного теста — отчет в формате html.
Отчет содержит все необходимое о бэктесте, информация по каждой сделке подробно предоставлена. Однако, его надо существенно довести до ума — в изначальном виде отчет выглядит сложно и не наглядно.
Из отчета с помощью Excel макросов можно извлечь огромное количество данных, после чего сделать из них конфетку. Ниже на изображении выделены базовые данные: окно тестирования, таймфрейм, валютная пара.
Окно тестирования и количество закрытых позиций
Окно тестирования — это исторический период, на котором проводился тест.
Есть универсальное мнение, что величина окна тестирования должна зависеть от “скорострельности” торговой системы, а также ее рабочего таймфрейма.
Например, если система разработана для дневных графиков и совершает в год 20 трейдов, то тест необходимо проводить более чем на 5-ти годах исторических котировок. Внутридневные “высокоскорострельные” торговые системы редко тестируют более чем на 3-6 месяцах истории.
Авторитет в области оптимизаций торговых систем Роберт Пардо (Robert Pardo) приводит цифру 35 как минимальное количество трейдов для оценки способностей вашей ТС, так как на таком количестве сделок начинают себя проявлять статистические закономерности вашей системы.
Еще на окно теста влияет количество параметров, которые вы тестируете в своей стратегии.
Чем больше параметров участвует в тесте, тем длиннее должен быть исторический период.
Об этом пишет в своих работах еще один не менее уважаемый человек в области финансовых рынков — Маркос Лопес де Прадо. Взаимосвязь исторического окна к количеству параметров можно изучить на картинке ниже.
Для чего нужно увеличивать историческое окно теста при увеличении параметров? Чтобы снизить вероятность переоптимизации стратегии (он же оверфиттинг).
Переоптимизированные стратегии на истории с большей вероятностью сломаются при живой торговле.
А мы совсем не хотим, чтобы наши стратегии ломались и вели себя хуже, чем при тестах.
Общий доход, общий убыток и профит-фактор
Любая система совершает убыточные трейды. Можно воспринимать их как плату за участие в деле — это часть бизнеса, некая издержка.
Отношение общего дохода к общему убытку (без знака минус) дает профит-фактор.
Если ваша система имеет профит-фактор выше 1, она способна зарабатывать. В нашем примере это 1.37, что очень неплохо.
Казалось бы, тут можно остановиться, но нет: одного только профит-фактора “>1” недостаточно. Нужно знать, что происходит внутри. Быть может, только 1 сделка определила всю доходность, а большинство времени система была в просадке.
За 1 час поможем разобраться с факторами успеха и причинами неудач на финансовых рынках. Бесплатно
Просадка: максимальная, средняя, в процентах, днях
Любая система переживает просадки. В прошлых статьях мы уже изучали данный аспект, но стоит еще раз дать определение.
Просадка (англ. drawdown) — убыток, полученный за время от достижения исторического пика кривой доходности до исторического минимума кривой доходности.
Графически это выглядит так:
Перед запуском алгоритма в живом режиме трейдер определяет для себя величину максимальной просадки, которую он готов выдержать психологически. Эта цифра варьируется у разных людей. Кто-то не готов уступить более 15%, но есть те, кто допускает волатильность и до 50%.
У нас система допустила максимальную просадку 21.2%. Также 165 календарных дней потребовалось, чтобы обновить один из исторических максимумов кривой доходности. Эти две просадки — максимальная в процентах и в днях — необязательно должны совпадать. Также можно вычислить среднюю просадку. В нашем случае это 1.4% и 24 календарных дня.
Необходимо уточнить, что при каждой сделке в случае срабатывания стоп-лосса теряется 1% капитала.
Средний годовой доход
После просадки можно перейти к годовому доходу. В нашем случае это шикарные 53.6%. В среде управляющих даже 30% или 40% среднегодовых — очень хорошие показатели. Например, у одного из самых высокодоходных хедж-фондов мира — Ren Tech — среднегодовая доходность около 40%.
Средний годовой доход лучше вычислять, если окно тестирования больше одного года. Хотя можно привести к такому виду любой тест алготрейдинга.
Коэффициент восстановления
Коэффициент восстановления (англ. recovery factor) — выражает отношение между средней годовой доходностью и максимальной просадкой.
Если коэффициент восстановления равен 1, то это означает, что система после просадки, например, в 15% смогла ее перекрыть и дать сверху 15% дохода.
Коэффициент Шарпа
Улучшенная, и более полезная версия коэффициента восстановления. По той причине, что коэффициент Шарпа учитывает еще и волатильность торговой стратегии или портфеля, а не только просадку и доходность.
Формула Шарпа, которую используем мы:
Где:
- CAGR (compound annual growth rate) — средний годовой доход
- σ (сигма) — стандартное отклонение; в знаменателе — среднегодовое стандартное отклонение
Чем больше значение Шарпа, тем лучше себя проявляет инвестиционный портфель. Например, Шарп между 0,5 и 1 — хороший результат, 1-2 — отличный, а все, что выше 2 — вообще супер.
Коэффициент Шарпа — один из самых важных показателей эффективности управляющего или фонда.
Ок, теперь переходим к более точечному анализу — к анализу торговых сделок.
Сделки: величина и время
Оценить результативность ТС можно только в комплексе. Одного профит-фактора или средней годовой доходности недостаточно. Нужно смотреть сделки.
Количество прибыльных и убыточных трейдов
Известно, что система совершила 252 трейда, из которых только 91 — прибыльны. Или 36.1%.
Психологически довольно сложно работать с такой системой. Особенно трудно свыкнуться с этим начинающим трейдерам. Но с этим придется свыкаться — это еще одни реалии трейдинга, и в особенности трендоследящих подходов.
Максимальная прибыльная и убыточная сделки
Приведенная ТС ставит ограничения как на стоп-лосс, так и на тейк-профит. Поэтому максимальная прибыль и убыток почти не превышают заданной нормы (исключение — проскальзывания).
Мы предпочитаем выражать максимум в пунктах, поскольку по мере изменения капитала меняются и максимальные прибыли/убытки. Еще один вариант — выражать их в процентах от капитала.
Средняя сделка, средняя прибыльная и средняя убыточная
Этот показатель также можно выражать в пунктах, в валюте депозита, либо в проценте от капитала. На изображении — средние сделки в пунктах.
Если средний трейд выше нуля (в нашем случае 5.35 пп), система имеет право перейти на следующий этап отбора. При этом нужно помнить о комиссиях и прочих расходах на сделки.
Хорошим тоном также считается, когда средняя прибыльная сделка больше средней убыточной.
Соотношение средней прибыльной и убыточной
В нашем примере одна средняя положительная сделка перекрывает 2.42 средние отрицательные, что очень неплохо.
Однако этого может оказаться недостаточно, если количество убыточных зашкаливает.
Положительные и отрицательные серии трейдов — максимальные и средние
Не менее интересным штрихом к картине ТС являются серии сделок.
Обращает на себя внимание серия из 14-ти отрицательных трейдов. С нее начинается самая крупная просадка в этом тесте. Выход из просадки начался с еще одной самой крупной серии — 7 положительных сделок подряд.
Как видно, система редко дает 2 прибыльные сделки подряд. Средняя отрицательная серия состоит из 3-х трейдов.
Среднее, максимальное и минимальное время сделки
ТС практически внутридневная, поскольку средний трейд закрывается в течение одного дня. Касаемо самой продолжительной сделки нужно отметить, что в расчеты включены все календарные дни. Поэтому в 121 час самой продолжительной входят выходные дни.
Среднее время положительной и отрицательной сделки
Очень интересная статистика, которая подтверждает истину всех времен:
Прибыльной сделке нужно дать больше времени.
А убытки резать наповал — без сожалений или сомнений.
Количество Long, Short трейдов, % положительных
По этой статистике смотрят, есть ли у системы так называемый market bias (т.е. склонность зарабатывать только на определенной стороне рынка). Если соотношение длинных и коротких сделок стремится к 50%, такая ТС считается сбалансированной.
В приведенном примере 49.6% лонгов, что свидетельствует о сбалансированности. Однако дальше видим, что положительных лонгов 40.8%, а шортов — лишь 31.5%.
Значит ли это, что короткие трейды нужно исключить из алгоритма? Нет, поскольку в чистом итоге они принесли прибыль.
Кривая доходности
Один образ достоин тысячи слов… или цифр. Вид кривой доходности зачастую позволит понять систему гораздо быстрее, чем самая изысканная статистика в алготрейдинге.
Год и месяц теста произвели положительный результат.
Да, на коротком промежутке разницы между логарифмической и обычной шкалой почти не видно. Однако она станет заметна на больших исторических окнах, поэтому лучше привыкать к логарифмической шкале.
Ниже пример 15-летнего теста. Логарифмическая шкала хорошо показывает начало (малые числа) и не так размашиста в конце (крупные числа).
На обычной шкале положительная кривая доходности идет вверх как бы по параболе. На логарифмической — по прямой линии.
Вернемся к примеру: полученная кривая, несмотря на высокий годовой доход и хороший коэффициент просадки, не внушает 100% доверия, поскольку видно:
- Более чем полгода кривая доходности находилась во флэте.
- Основная прибыль была получена за 2 месяца.
Здесь включаются личные предпочтения трейдеров и инвесторов, можно ли работать с ТС с данными настройками. Поскольку человеку хочется видеть линейный рост своих доходов (что, конечно же, не случается в реальности), большинство трейдеров может отказаться от этой стратегии. Но есть и те, кто хорошо понимает, как трудно добиться прибыльности, распределенной во времени линейно.
Таково устройство рынков: долгие промежутки спокойствия, сменяемые промежутками взрывной волатильности. Это демонстрируют как графики финансовых инструментов, так и графики кривых доходностей.
R-квадрат
Напоследок критерий красоты кривой доходности, или ее плавности. Это R-квадрат, или коэффициент детерминации. С его помощью можно отфильтровать неугодные настройки ТС, оставив себе только те, где коэффициент “красоты” стремится к 1.
Приведем несколько примеров R-квадрат прямо на графиках.
Систему с коэффициент около 0.7 вполне можно допустить в дальнейшую разработку.
Доход есть, но плавность кривой не удовлетворяет требованиям.
Последняя кривая доходности — хороший кандидат для запуска в live-режиме.
Все приведенные кривые — одна и та же система с немного отличающимися настройками.
Заключение
Мы рассмотрели несколько ключевых критериев, по которым оценивается пригодность торговой системы для ее дальнейшего использования.
Подобных критериев десятки, но, как и в создании торговых алгоритмов, нельзя перемудрить. Если сомневаетесь, смотрите на кривую доходности и ее плавность — она скажет больше, чем вся статистика вместе взятая.
В комментариях напишите, какие критерии вы используете на практике для оценки ваших торговых систем, какие из них вы считаете самыми надежными и почему.
Материалы
- Pseudo-Mathematics and Financial Charlatanism: The Effects of Backtest Overfitting on Out-of-Sample Performance. Notices of the American Mathematical Society, 61(5), May 2014.
Как создавать торговые стратегии на основе статистики и данных, способных работать 24/7
Не упустите возможность получить прибыльные торговые стратегии.
Поделиться статьей
С радостью ответим на ваши комментарии
Читайте также
Роман Молодяшин
Сооснователь Empirix. Алгоритмический трейдер, автор 11 курсов и 80+ статей о трейдинге. На форекс с 2008 года. Исследует микроструктуру финансовых рынков, разрабатывает торговые алгоритмы, управляет системным фондом. E-mail для связи: roman@empirix.ru