Бэктестинг, оптимизация и проверка стратегии
Как рассчитываются результаты с учётом реальных издержек, как выбираются параметры вне выборки и как стратегия проходит отбор для продвижения.
Реальные комиссии и издержки бирж
В бэктестах учитываются опубликованные комиссии мейкера и тейкера для каждой площадки, выплаты за финансирование по бессрочным фьючерсам, стоимость заимствования при коротких позициях, спред и модель влияния на рынок при каждом исполнении. Стоимость портфеля переоценивается по рынку на каждом баре, а позиции с плечом могут быть ликвидированы при достижении поддерживающей маржи площадки. Результаты никогда не показываются без учёта издержек.
Размер позиции и кредитное плечо
Стратегии Forex рассчитывают размер позиции в целых единицах базовой валюты относительно капитала счета. Движок применяет заданное ограничение кредитного плеча FX, маржинальные требования и конвертацию валюты котировки. Для размеров лотов, принятых у брокера, требуется отдельное проверенное сопоставление.
Как работает оптимизация
При оптимизации используется вся доступная история стратегии. Последняя её часть откладывается как контрольная выборка. Остальная часть, период разработки, делится на последовательность окон скользящей проверки: параметры подбираются на обучающем отрезке каждого окна, а затем оцениваются на следующем за ним тестовом отрезке. Поэтому каждый результат вне выборки получен на данных, которых алгоритм подбора не видел.
Затем итоговые параметры выбираются один раз на всём периоде разработки и проверяются ровно один раз на контрольной выборке. Вместе с результатами приводятся статистики чувствительности, стабильности и значимости. Контрольные условия продвижения учитывают данные вне выборки и контрольной выборки, но никогда не подгонку на обучающих данных.
Контрольная выборка
Контрольная выборка — это последняя часть истории: не менее 20% истории, не менее 15 дней и достаточно длинная, чтобы ожидалось около 20 сделок, но не более 35% истории. Если контрольная выборка достигает предела в 35%, она помечается как недостаточно большая для надёжного вывода. Её никогда не используют для выбора параметров, а агенты видят результаты только до её начала, поэтому их решения нельзя подогнать под неё. Вы как владелец видите всю историю на странице стратегии.
Вложенные окна скользящей проверки
Размер окон скользящей проверки определяется числом сделок, а не только временем: каждое тестовое окно удлиняется, пока в нём не будет ожидаться около 20 сделок. Окна сдвигаются ежемесячно или ежеквартально для длинной истории; между обучением и тестом оставляется небольшой промежуток. Обучающий отрезок каждого окна разбивается повторно, в пропорции 70/30, чтобы вложенный поиск выбирал параметры на внутренних валидационных данных. Для однозначного результата нужны как минимум 3 окна и достаточный охват данных вне выборки; иначе результат помечается как неоднозначный из-за нехватки сделок.
Подбор параметров и итоговая перенастройка
Параметры подбираются методом байесовской оптимизации: примерно 30 испытаний на каждый настраиваемый параметр в каждом окне, от 30 до 150 испытаний. Вместо единственного лучшего результата метод отбора предпочитает параметры, у которых хорошие результаты показывают и соседние значения, при соблюдении ограничений риска стратегии. При итоговой перенастройке тот же метод применяется ко всему периоду разработки; затем на контрольной выборке проверяются именно эти параметры. Для каждой оптимизации выделяется время, а длительный поиск можно запускать на удалённых вычислительных ресурсах.
Чувствительность и плато
Каждый числовой параметр изменяется на 10%, 25% и 50% в обе стороны, а параметры с целыми значениями — на один и два шага. Плато показывает, насколько можно изменить параметр, прежде чем коэффициент Шарпа снизится больше, чем позволяет его статистическая неопределённость; более резкое падение обозначается как обрыв. Широкое плато — обнадёживающее свидетельство, обрыв — предупреждение. Это отчёт, а не критерий допуска.
Стабильность параметров
Стабильность показывает, насколько сильно выбранные параметры меняются от окна к окну по сравнению с ожидаемыми колебаниями при случайном выборе. Параметры, значения которых остаются близкими, помечаются как стабильные; параметры, значения которых сильно скачут, — как нестабильные. Это предупреждение в результатах, которое само по себе никогда не служит контрольным условием. Также приводится повторный прогон итоговых параметров по каждому окну с пометкой «частично на обучающих данных», поскольку эти параметры были выбраны на тех же данных.
Статистическая значимость и дефлированный коэффициент Шарпа
Доходности вне выборки проверяются t-критерием, допускающим автокорреляцию, а также с помощью дефлированного коэффициента Шарпа. Дефлированный коэффициент Шарпа отвечает на вопрос, превосходит ли результат то, что дала бы лучшая из множества случайных попыток, с учётом эффективного числа испытаний: фактически опробованных вариантов, проверенных на данных вне выборки, включая каждую дополнительную доработку после проверки. Внутренние поисковые испытания в расчёт стратегии не включаются, поскольку они не используют данные вне выборки.
Комбинаторная перекрёстная проверка и вероятность переобучения на бэктесте вычисляются на обучающих данных как диагностические показатели. Они помогают аналитику, но больше не определяют продвижение стратегии самостоятельно.
Окна доходности и проверка на разных рынках
Медленные стратегии могут совершать сделки слишком редко, чтобы набрать нужное число для окон по сделкам. В таком случае их оценивают по временным окнам доходности за период, используя тесты с учётом автокорреляции. Проверка по нескольким рынкам запускает неизменённое правило на 5 или более связанных рынках: согласованные результаты могут превратить неоднозначный итог в успешный, а неудача на другом рынке — заменить успешный итог предупреждением.
Результаты с низкой уверенностью
Если данных недостаточно для однозначного вывода, но явных провалов нет и аналитик по-прежнему рекомендует продвижение, стратегия может перейти к бумажной торговле с пометкой «низкая уверенность, статистически не доказано». Эта пометка отображается на странице стратегии, страницах бумажной торговли и в уведомлениях. Стратегия с низкой уверенностью не готова к реальной торговле, пока её собственная история бумажной торговли не станет статистически значимой.
Пороги для перевода на следующий этап
Минимальные пороги продвижения применяются в коде на основании опубликованного файла критериев. Жёсткие контрольные условия нельзя обойти: достаточная история; прибыльность в большинстве календарных лет при наличии экспозиции; средняя сделка покрывает стоимость полного цикла торговли; нет чрезмерного использования маржи; результаты вне выборки и на контрольной выборке представлены и статистически не отвергнуты; просадка в пределах установленного лимита; учёт полный и непротиворечивый.
Мягкие контрольные условия и исключения
Мягкие фильтры охватывают просадку относительно собственного лимита стратегии, коэффициент Калмара, профит-фактор, долю прибыльных сделок вместе с соотношением средней прибыли и среднего убытка, срок удержания, сравнение холдаута с результатами walk-forward, дефлированный коэффициент Шарпа, концентрацию прибыли в одном году, издержки, связанные с влиянием на рынок, и убытки в периоды высокой волатильности. Аналитик может снять мягкий фильтр только с письменным обоснованием, в котором назван соответствующий показатель; обоснование сохраняется в запуске, Директор по рискам может его отклонить, а Портфельный менеджер повторно проверяет его.
Как объективно оценить результаты тестирования
Сравните кривую капитала с просадкой, проверьте, на скольких сделках основан результат, и сопоставьте среднюю доходность сделки с издержками полного цикла. Высокая доходность на нескольких сделках или коэффициент Шарпа, исчезающий на вневыборочных данных, — это повод насторожиться, а не подтверждённый результат.