5.6. Построение эффективной системы бэктестинга: вызовы и компромиссы
Первый вызов, с которым сталкивается разработчик при тестировании торговой системы, это необходимость поддержания базы исторических данных, содержащей максимально полную информацию для торгуемых стратегий и инструментов. Эта информация должна быть надежной, без неточностей и ошибок. Два требования к базе данных – полнота информации и надежность – в определенной степени противоречат друг другу. При стремлении включить в базу данных максимум информации, разработчик неизбежно сталкивается с проблемой контроля ее надежности. Соответственно, чем больше разнотипной информации подлежит накоплению, тем выше вероятность попадания в базу ошибочных и неточных данных. Поэтому при создании базы данных стремление к максимальной полноте накапливаемой информации должно регулироваться возможностями ее верификации.
Фильтрация нежелательных сигналов, производимая на основе различных индикаторов, является продуктом компромисса между стремлением к максимальной строгости фильтрации, с одной стороны, и стремлением не отбросить потенциально прибыльные торговые варианты, с другой стороны. Чем строже фильтрация, тем выше вероятность отказа от потенциальных торговых возможностей. Моделирование цены и объема исполнения сигналов также основано на компромиссе. Чем более консервативный подход используется при моделировании (объемы и цены исполнения хуже, чем те, которые использовались при генерировании сигналов), тем ниже оценочная эффективность стратегии и тем выше вероятность того, что результаты реальной торговли не окажутся хуже результатов бэктестинга.
Одним из самых трудноразрешимых компромиссов при создании системы бэктестинга является распределение исторического периода, покрываемого базой данных, между in-sample и out-of-sample периодами. Чем больше in-sample период, тем меньше данных остается для out-of-sample периода (и наоборот). В общем виде можно утверждать, что разработчик должен стремиться к максимально возможному увеличению протяженности out-of-sample периода. Это позволяет протестировать стратегию в разных фазах рынка, используя данные, незадействованные при оптимизации стратегии. Однако удлинение out-of-sample периода неизбежно ведет к сокращению in-sample периода. Это чревато тем, что оптимизация стратегии будет недостаточно надежной, поскольку in-sample период не будет включать все возможные типы рыночной динамики.
Главный вызов, стоящий перед разработчиком, заключается в опасности заоптимизировать стратегию. Эта проблема обостряется тем больше, чем больше параметров используется при создании стратегии. Соответственно, уменьшить вероятность заоптимизированности можно путем сокращения количества оптимизируемых параметров. Однако и в этом случае необходим разумный компромисс, поскольку чрезмерное сокращение параметров приводит к тому, что стратегия утрачивает свою гибкость. В результате может быть упущен потенциально прибыльный вариант торговой стратегии.