Одна из стержневых вещей моего подхода состоит в том, что я собираю библиотеку торговых систем и ранжирую их по успешности.
Подход до безобразия примитивен и потому эффективен.
Это отдельная тема — почему торговой системе не нужен высокий интеллект и сложные правила, об этом как-нибудь в другой раз. А теперь ближе к сути.
Из всего множества торговых систем, которые были, есть и будут когда-то на каком-то периоде и инструменте успешными, я собираю библиотеку.
Для каждой из торговых систем я проверяю, отработала ли она в плюс в каждом месяце доступной истории и на каждом инструменте.
В первом случае — это WFT (кстати, понятие WFO очень странно для меня звучит).
По сути, я беру ТС и торгую ей на истории с дискретизацией в 1 месяц. И получаю % её эффективности по времени:
- число месяцев, когда ТС отработала в "+" / общее число месяцев, за которые доступна история цен
Вот что имеем на выходе:
Это означает, что алгоритмы, найденные на каком-то одном месяце, показали на остальных месяцах "+", и доля таких месяцев из всей истории = %.
В данном случае, таблица отсортирована по этому значению в убывающем порядке.
Чтобы не возникло иллюзий, что идеальны все алгоритмы, покажу картинку без сортировки:
Во втором случае я делаю то же самое, только использую не тот инструмент, на котором была найдена ТС, а все остальные, которые выбрал для торговли на тех или иных рынках. Обращаю внимание, что тип инструмента значения не имеет. Алгоритм, найденный на Сбере, могу проверять на криптовалютном фьючерсе, и наоборот. Эффективность считаю так (для каждого периода):
- Число инструментов, на которых ТС показала "+" / общее число инструментов для тестирования
Вот что получается:
И без сортировки:
Далее, механизмом перекрёстного отбора,
который детально описывал для другого кейса тут, отбираю лучшие по некому порогу, например 5% лучших по каждому кортежу и исключаю непересекающиеся.
Получаю библиотеку ТС, из которой уже можно набирать портфель.
Отмечу, что я смотрю только на тот факт, была ли система профитной в конкретном периоде или нет, а на абсолютную прибыль не смотрю — она не очень важна для такого подхода, поскольку стабильность систем важнее. Как я излагал ранее,
кажется тут, если ТС перестала зарабатывать — то это не обязательно означает, что она сломалась — возможно, цена по инструменту вошла в долгий флэт, например.
Поэтому одна из задач моего списка TODO заключается в том, чтобы оценить, как связана динамика цены с положительной или отрицательной доходностью той или иной торговой системы. Результаты решения этой задачи должны, в идеале, дать ещё одну метрику, используя которую можно будет более обоснованно принимать решения о включении или отключении той или иной ТС.
Как умирают стратегии (smart-lab.ru)
Просто у меня другой подход. Я исхожу из того, что цикличность рынка это 3-5 лет, поэтому делаю тесты за 5 лет, потом торгую полгода — год. Для того, чтобы система могла адекватно переживать любые периоды.
Я искал стабильность на более коротких периодах, как у тебя, но я там не смог ничего найти.
1. Закрываешь ли ты всем системам в пятницу вечером все позы, невзирая, что у системы позиция уходит на понедельник, и в тестах будет работать след неделю.
2. Твой тестер на минутках может переваривать тысячи систем не за 2 нед, а может за 3-5 лет… (тут у меня узкое место, т.к. для прошивки систем я продублировал язык Метастока, что бы не зашивать их в код. Теперь я просто в тектовом файле пишу МА(20)>МА(200) и бот меня понимает) Но переход на язык мне дал существенное сокращение производительности тестов.
предметы ( индикаторы). Им трудно измениться к лучшему, тк они в зоне комфорта. Ломать себя очень трудно. Я сделал это в 2010 г. Я ушел от усреднения цены ( я читаю график глазами), тк это болезнь инд-в с периодом. Ищи — индикаторы без периода, типа с SIN угла или с перекрытием уровней или шагами объема, форму свечей толкающих цену… еще много — или…
www.youtube.com/watch?v=r4sfr2Dnrjg