Часто приходится слышать/читать, что желательно оптимизировать сразу несколько целевых функций, обычно таких:
Доходность стратегии, ожидаемая в будущем,
Риск, т.е. ожидаемая вариация будущей доходности стратегии.
Проблема в том, что любая задача оптимизации требует только одну целевую функцию. Решение состоит в том, чтобы рассматривать доходность капитала, а не доходность стратегии, тогда единая целевая функция формулируется как:
ожидаемая в будущем доходность капитала, при торговле по данной стратегии
Действительно, доходность капитала зависит не только от доходности торгуемой стратегии, но и от риска стратегии. Зависимость следующая: снижение риска стратегии приводит к росту доходности капитала, при прочих равных. Покажем это на примере. Допустим:
Недавно интересовался мнением смартлабовцев по поводу тестирования стратегий, удивился многообразию вариантов и мнений. Теперь хочу обобщить тему и обсудить элементы в целом “сферического торгового автомата в вакууме”.
Если цель торгового автомата: максимизация прироста капитала, за счёт совершения операций купли\продажи финансовых инструментов, то из этой цели следуют две функции:
Совершение операций купли/продажи (для приведения фактических позиций к целевым позициям).
Расчёт целевых позиций.
Таким образом, получаем два элемента: “привод” — реализует первую функцию и “советник” — реализует вторую функцию.
“Инструкцию” о том как получать целевую позицию задаёт “конфигурация” советника (т.е. конфигурация = признаки + алгоритм + параметры).
Логично использовать ту конфигурацию, по которой максимальный ожидаемый прирост капитала. Элемент осуществляющий выбор наиболее эффективной конфигурации назовём “селектор”.