Одна из стержневых вещей моего подхода состоит в том, что я собираю библиотеку торговых систем и ранжирую их по успешности.
Подход до безобразия примитивен и потому эффективен.
Это отдельная тема — почему торговой системе не нужен высокий интеллект и сложные правила, об этом как-нибудь в другой раз. А теперь ближе к сути.
Из всего множества торговых систем, которые были, есть и будут когда-то на каком-то периоде и инструменте успешными, я собираю библиотеку.
Для каждой из торговых систем я проверяю, отработала ли она в плюс в каждом месяце доступной истории и на каждом инструменте.
В первом случае — это WFT (кстати, понятие WFO очень странно для меня звучит).
По сути, я беру ТС и торгую ей на истории с дискретизацией в 1 месяц. И получаю % её эффективности по времени:
- число месяцев, когда ТС отработала в "+" / общее число месяцев, за которые доступна история цен
Вот что имеем на выходе:
Это означает, что алгоритмы, найденные на каком-то одном месяце, показали на остальных месяцах "+", и доля таких месяцев из всей истории = %.
В данном случае, таблица отсортирована по этому значению в убывающем порядке.
Чтобы не возникло иллюзий, что идеальны все алгоритмы, покажу картинку без сортировки:
Во втором случае я делаю то же самое, только использую не тот инструмент, на котором была найдена ТС, а все остальные, которые выбрал для торговли на тех или иных рынках. Обращаю внимание, что тип инструмента значения не имеет. Алгоритм, найденный на Сбере, могу проверять на криптовалютном фьючерсе, и наоборот. Эффективность считаю так (для каждого периода):
- Число инструментов, на которых ТС показала "+" / общее число инструментов для тестирования
Вот что получается:
И без сортировки:
Далее, механизмом перекрёстного отбора,
который детально описывал для другого кейса тут, отбираю лучшие по некому порогу, например 5% лучших по каждому кортежу и исключаю непересекающиеся.
Получаю библиотеку ТС, из которой уже можно набирать портфель.
Отмечу, что я смотрю только на тот факт, была ли система профитной в конкретном периоде или нет, а на абсолютную прибыль не смотрю — она не очень важна для такого подхода, поскольку стабильность систем важнее. Как я излагал ранее,
кажется тут, если ТС перестала зарабатывать — то это не обязательно означает, что она сломалась — возможно, цена по инструменту вошла в долгий флэт, например.
Поэтому одна из задач моего списка TODO заключается в том, чтобы оценить, как связана динамика цены с положительной или отрицательной доходностью той или иной торговой системы. Результаты решения этой задачи должны, в идеале, дать ещё одну метрику, используя которую можно будет более обоснованно принимать решения о включении или отключении той или иной ТС.