Недавно интересовался мнением смартлабовцев по поводу тестирования стратегий, удивился многообразию вариантов и мнений. Теперь хочу обобщить тему и обсудить элементы в целом “сферического торгового автомата в вакууме”.
Если цель торгового автомата: максимизация прироста капитала, за счёт совершения операций купли\продажи финансовых инструментов, то из этой цели следуют две функции:
Совершение операций купли/продажи (для приведения фактических позиций к целевым позициям).
Расчёт целевых позиций.
Таким образом, получаем два элемента: “привод” — реализует первую функцию и “советник” — реализует вторую функцию.
“Инструкцию” о том как получать целевую позицию задаёт “конфигурация” советника (т.е. конфигурация = признаки + алгоритм + параметры).
Логично использовать ту конфигурацию, по которой максимальный ожидаемый прирост капитала. Элемент осуществляющий выбор наиболее эффективной конфигурации назовём “селектор”.
Оценка ожидаемого прироста капитала при использовании некоторой конфигурации советника, выполняется с помощью тестирования на истории, значит, нужен ещё один элемент — “тестер”.
Возможных конфигураций советника бесконечное количество, невозможно их все протестировать, поэтому возникает потребность в определении конечного перечня конфигураций для тестирования, значит требуется ещё один элемент “эксперт”.
Таким образом в сухом остатке имеем (господа, с чем не согласны по сути?):
Элемент |
Функция |
Критерии качества |
Привод |
Совершение операций купли\продажи для приведения фактических позиций по инструментам к целевым позициям |
Максимальная оперативность, Максимальная надёжность, Минимальные “проскальзывания” |
Советник |
Получение целевой позиций по инструментам |
Максимальная оперативность, Максимальная надёжность |
Конфигурация |
Задаёт “инструкцию” о том как советнику получать целевую позицию по инструментам |
Максимальный ожидаемый прирост капитала |
Селектор |
Выбор конфигурации советника с наибольшим ожидаемым приростом капитала |
|
Тестер |
Оценка ожидаемого прироста капитала при использовании конкретной конфигурации советника |
Максимальная гибкость, Максимальная производительность |
Эксперт |
Генерация потенциально эффективных конфигураций |
Максимальная полнота Максимальная непохожесть Максимальная доля эффективных |
По теме: селектор — боюсь, задача сформулирована угрожающе некорректно) — вернее если говорить о прогнозной максимизации, то да, но для этого на исторических данных надо ориентироваться а т.ч. на критерии робастность стратегии, и скорее всего не самые доходный варианты будут самыми робастность.
1. Wealth-lab — буржуйская разработка
2. TSLab — Российский проект по типу Wealth-Lab
3. Python — язык программирования, много инфы на сайте www.quantopian.com/
Возможно есть что-то еще, но эти инструменты, особенно первые два, уже содержат в себе все пункты, которые Вы перечислили в списке. И они готовы для работы без навыков программирования.