Блог им. Empirix
Алготрейдинг действительно освобождает время и концентрацию любого ручного трейдера. Тем не менее время, концентрация и внимание будут необходимы в другом векторе — векторе обработки данных. Это не менее важная часть алготрейдинга, как и поиск рыночных неэффективностей.
Запуск торговых алгоритмов в live-режим возможен только после множества бэктестов и оптимизаций. Пройдя эти этапы, трейдер выбирает наилучшие параметры торговой системы (ТС). Статья расскажет, по каким критериям оценивать успешность той или иной тестовой серии, а также разберемся с различными настройками алгоритма при запуске на реальном счете.
Полезные материалы, которые хорошо бы изучить перед продолжением:
Результативность любого исторического теста можно оценить более чем по 40 параметрам. Рассмотрим несколько ключевых из них, которые помогут получить полную картину. Для примера возьмем один (случайно выбранный) исторический тест на часовом графике EUR/USD длительностью чуть более года.
Первое, что мы получаем после проведенного теста — отчет в формате html.
Отчет в сыром виде. Требует тщательной обработки напильником.
Отчет содержит все необходимое о бэктесте, информация по каждой сделке подробно предоставлена. Однако, его надо существенно довести до ума — в изначальном виде отчет выглядит сложно и не наглядно.
Из отчета с помощью Excel макросов можно извлечь огромное количество данных, после чего сделать из них конфетку. Ниже на изображении выделены базовые данные: окно тестирования, таймфрейм, валютная пара.
Алготрейдинг. Результативность ТС на бэктесте. Общий вид.
Окно тестирования — это исторический период, на котором проводился тест.—
Есть универсальное мнение, что величина окна тестирования должна зависеть от “скорострельности” торговой системы, а также ее рабочего таймфрейма.
Например, если система разработана для дневных графиков и совершает в год 20 трейдов, то тест необходимо проводить более чем на 5-ти годах исторических котировок. Внутридневные “высокоскорострельные” торговые системы редко тестируют более чем на 3-6 месяцах истории.
Авторитет в области оптимизаций торговых систем Роберт Пардо (Robert Pardo) приводит цифру 35 как минимальное количество трейдов для оценки способностей вашей ТС, так как на таком количестве сделок начинают себя проявлять статистические закономерности вашей системы.—
Окно тестирования и количество позиций.
Еще на окно теста влияет количество параметров, которые вы тестируете в своей стратегии.
Чем больше параметров участвует в тесте, тем длиннее должен быть исторический период.—
Об этом пишет в своих работах еще один не менее уважаемый человек в области финансовых рынков — Маркос Лопес де Прадо. Взаимосвязь исторического окна к количеству параметров можно изучить на картинке ниже.
По оси Х — количество параметров стратегии, по оси У — минимальное время теста (в годах).
Для чего нужно увеличивать историческое окно теста при увеличении параметров? Чтобы снизить вероятность переоптимизации стратегии (он же оверфиттинг).
Переоптимизированные стратегии на истории с большей вероятностью сломаются при живой торговле.—
А мы совсем не хотим, чтобы наши стратегии ломались и вели себя хуже, чем при тестах.
Любая система совершает убыточные трейды. Можно воспринимать их как плату за участие в деле — это часть бизнеса, некая издержка.
Общий доход, убыток. Профит-фактор.
Отношение общего дохода к общему убытку (без знака минус) дает профит-фактор.
Если ваша система имеет профит-фактор выше 1, она способна зарабатывать. В нашем примере это 1.37, что очень неплохо.
Казалось бы, тут можно остановиться, но нет: одного только профит-фактора “>1” недостаточно. Нужно знать, что происходит внутри. Быть может, только 1 сделка определила всю доходность, а большинство времени система была в просадке.
Любая система переживает просадки. В прошлых статьях мы уже изучали данный аспект, но стоит еще раз дать определение.
Просадка (англ. drawdown) — убыток, полученный за время от достижения исторического пика кривой доходности до исторического минимума кривой доходности.—
Графически это выглядит так:
Просадка — от максимума до минимума кривой доходности.
Перед запуском алгоритма в живом режиме трейдер определяет для себя величину максимальной просадки, которую он готов выдержать психологически. Эта цифра варьируется у разных людей. Кто-то не готов уступить более 15%, но есть те, кто допускает волатильность и до 50%.
Просадка, в процентах и днях.
У нас система допустила максимальную просадку 21.2%. Также 165 календарных дней потребовалось, чтобы обновить один из исторических максимумов кривой доходности. Эти две просадки — максимальная в процентах и в днях — необязательно должны совпадать. Также можно вычислить среднюю просадку. В нашем случае это 1.4% и 24 календарных дня.
Необходимо уточнить, что при каждой сделке в случае срабатывания стоп-лосса теряется 1% капитала.
После просадки можно перейти к годовому доходу. В нашем случае это шикарные 53.6%. В среде управляющих даже 30% или 40% среднегодовых — очень хорошие показатели. Например, у одного из самых высокодоходных хедж-фондов мира — Ren Tech — среднегодовая доходность около 40%.
Средний годовой доход на историческом тесте
Средний годовой доход лучше вычислять, если окно тестирования больше одного года. Хотя можно привести к такому виду любой тест алготрейдинга.
Коэффициент восстановления (англ. recovery factor) — выражает отношение между средней годовой доходностью и максимальной просадкой.
Коэффициент восстановления.
Если коэффициент восстановления равен 1, то это означает, что система после просадки, например, в 15% смогла ее перекрыть и дать сверху 15% дохода.
Улучшенная, и более полезная версия коэффициента восстановления. По той причине, что коэффициент Шарпа учитывает еще и волатильность торговой стратегии или портфеля, а не только просадку и доходность.
Формула Шарпа, которую используем мы:
Где:
Чем больше значение Шарпа, тем лучше себя проявляет инвестиционный портфель. Например, Шарп между 0,5 и 1 — хороший результат, 1-2 — отличный, а все, что выше 2 — вообще супер.
Коэффициент Шарпа — один из самых важных показателей эффективности управляющего или фонда.—
Ок, теперь переходим к более точечному анализу — к анализу торговых сделок.
Оценить результативность ТС можно только в комплексе. Одного профит-фактора или средней годовой доходности недостаточно. Нужно смотреть сделки.
Прибыльные и убыточные сделки. Количество, процент.
Известно, что система совершила 252 трейда, из которых только 91 — прибыльны. Или 36.1%.
Психологически довольно сложно работать с такой системой. Особенно трудно свыкнуться с этим начинающим трейдерам. Но с этим придется свыкаться — это еще одни реалии трейдинга, и в особенности трендоследящих подходов.
Приведенная ТС ставит ограничения как на стоп-лосс, так и на тейк-профит. Поэтому максимальная прибыль и убыток почти не превышают заданной нормы (исключение — проскальзывания).
Максимальная прибыль и убыток — в пунктах.
Мы предпочитаем выражать максимум в пунктах, поскольку по мере изменения капитала меняются и максимальные прибыли/убытки. Еще один вариант — выражать их в процентах от капитала.
Этот показатель также можно выражать в пунктах, в валюте депозита, либо в проценте от капитала. На изображении — средние сделки в пунктах.
Алготрейдинг. Средние сделки.
Если средний трейд выше нуля (в нашем случае 5.35 пп), система имеет право перейти на следующий этап отбора. При этом нужно помнить о комиссиях и прочих расходах на сделки.
Хорошим тоном также считается, когда средняя прибыльная сделка больше средней убыточной.
В нашем примере одна средняя положительная сделка перекрывает 2.42 средние отрицательные, что очень неплохо.
Средняя прибыльная сделка делится на среднюю убыточную.
Однако этого может оказаться недостаточно, если количество убыточных зашкаливает.
Не менее интересным штрихом к картине ТС являются серии сделок.
Положительные и отрицательные серии сделок.
Обращает на себя внимание серия из 14-ти отрицательных трейдов. С нее начинается самая крупная просадка в этом тесте. Выход из просадки начался с еще одной самой крупной серии — 7 положительных сделок подряд.
Самая крупная отрицательная серия.
Как видно, система редко дает 2 прибыльные сделки подряд. Средняя отрицательная серия состоит из 3-х трейдов.
Время сделки: среднее, минимальное, максимальное
ТС практически внутридневная, поскольку средний трейд закрывается в течение одного дня. Касаемо самой продолжительной сделки нужно отметить, что в расчеты включены все календарные дни. Поэтому в 121 час самой продолжительной входят выходные дни.
Среднее время прибыльных и убыточных сделок.
Очень интересная статистика, которая подтверждает истину всех времен:
Прибыльной сделке нужно дать больше времени.—
А убытки резать наповал — без сожалений или сомнений.
По этой статистике смотрят, есть ли у системы так называемый market bias (т.е. склонность зарабатывать только на определенной стороне рынка). Если соотношение длинных и коротких сделок стремится к 50%, такая ТС считается сбалансированной.
Соотношение длинных и коротких позиций.
В приведенном примере 49.6% лонгов, что свидетельствует о сбалансированности. Однако дальше видим, что положительных лонгов 40.8%, а шортов — лишь 31.5%.
Положительные покупки и продажи.
Значит ли это, что короткие трейды нужно исключить из алгоритма? Нет, поскольку в чистом итоге они принесли прибыль.
Один образ достоин тысячи слов… или цифр. Вид кривой доходности зачастую позволит понять систему гораздо быстрее, чем самая изысканная статистика в алготрейдинге.
Кривая доходности. Логарифмическая шкала.
Год и месяц теста произвели положительный результат.
Кривая доходности. Обычная шкала.
Да, на коротком промежутке разницы между логарифмической и обычной шкалой почти не видно. Однако она станет заметна на больших исторических окнах, поэтому лучше привыкать к логарифмической шкале.
Ниже пример 15-летнего теста. Логарифмическая шкала хорошо показывает начало (малые числа) и не так размашиста в конце (крупные числа).
Вверху — логарифмическая шкала, внизу — обычная.
На обычной шкале положительная кривая доходности идет вверх как бы по параболе. На логарифмической — по прямой линии.
Вернемся к примеру: полученная кривая, несмотря на высокий годовой доход и хороший коэффициент просадки, не внушает 100% доверия, поскольку видно:
Здесь включаются личные предпочтения трейдеров и инвесторов, можно ли работать с ТС с данными настройками. Поскольку человеку хочется видеть линейный рост своих доходов (что, конечно же, не случается в реальности), большинство трейдеров может отказаться от этой стратегии. Но есть и те, кто хорошо понимает, как трудно добиться прибыльности, распределенной во времени линейно.
Таково устройство рынков: долгие промежутки спокойствия, сменяемые промежутками взрывной волатильности. Это демонстрируют как графики финансовых инструментов, так и графики кривых доходностей.
Напоследок критерий красоты кривой доходности, или ее плавности. Это R-квадрат, или коэффициент детерминации. С его помощью можно отфильтровать неугодные настройки ТС, оставив себе только те, где коэффициент “красоты” стремится к 1.
Приведем несколько примеров R-квадрат прямо на графиках.
Кривая доходности из рассматриваемого примера.
Систему с коэффициент около 0.7 вполне можно допустить в дальнейшую разработку.
Доход есть, но плавность кривой не удовлетворяет требованиям.
Высокий R-квадрат.
Последняя кривая доходности — хороший кандидат для запуска в live-режиме.
Все приведенные кривые — одна и та же система с немного отличающимися настройками.
Мы рассмотрели несколько ключевых критериев, по которым оценивается пригодность торговой системы для ее дальнейшего использования.
Подобных критериев десятки, но, как и в создании торговых алгоритмов, нельзя перемудрить. Если сомневаетесь, смотрите на кривую доходности и ее плавность — она скажет больше, чем вся статистика вместе взятая.—
В комментариях напишите, какие критерии вы используете на практике для оценки ваших торговых систем, какие из них вы считаете самыми надежными и почему.