Когда имеется большое число торговых систем, которые потенциально можно использовать для торговли, возникает проблема отбора лучших из них — релевантных целевым показателям трейдера и ситуации на рынке.
Расскажу о том, как это делаю я. Подход очень простой. Это текст
в продолжение этого поста.
У каждой системы существует определённое количество метрик.
Эти метрики могут быть как стандартными, так и кастомными, которые я сам придумал.
Чтобы отобрать из всего множества систем те, которые мне лучше всего подходят, я делаю следующее:
- Определяю существенные, на мой взгляд, метрики. Несущественные отбрасываю. Как я это делаю — описано тут, а по сути — строю точечные диаграммы рассеивания метрики А от метрики Б для каждой пары метрик. Такой подход позволяет интуитивно и легко отсеять бестолковые метрики, которые в отборе систем ничем не помогут. Это самый простой и наглядный способ выявить корреляции между различными метриками, чем я тут и занимаюсь.
- Для каждой из отобранных метрик я определяю порядок сортировки от лучшего к худшему значению и, опционально, границы интервалов, в которых эта метрика должна находиться для систем, которые считаю приемлемыми. Границы интервалов так же легко выявляются из диаграмм, построенных на шаге 1. Абсолютная точность там не нужна, границы могут быть приблизительными, взятыми с запасом. Вот пример на скриншоте:
Тут перечислены метрики, по которым будет осуществляться отбор, порядок их сортировки и интервалы. Интервалы в данном случае совпадают, поскольку не используются. Если интервалы не используются, то число стратегий для соответствующего подмножества определяется некой константой первых лучших значений по указанному принципу сортировки, к которой я вернусь в конце описания этого алгоритма, назовём её «число выборки». - Отбираю подмножества стратегий, соответствующих каждой строке с нужной сортировкой по метрике. Получается 8 подмножеств для данного кейса.
- Выполняю операцию логического И между всеми подмножествами. Это означает, что в конечный набор стратегий попадут только те, которые есть во всех подмножествах.
- Вуаля. Получаю наиболее релевантные моим убеждениям системы, отобранные из общего множества, не на глазок или интуицией, а формальными правилами. Если их недостаточно — то я увеличиваю значение «Число выборки», если слишком много — уменьшаю его, пока не получу целевое значение систем в конечной выборке.
Реализации алгоритма могут быть осуществлены на чём угодно, а я использую T-SQL, который с помощью ключевого слова INTERSECT позволяет быстро и эффективно отобрать пересекающиеся системы из нескольких множеств.
Мне проще — всего одна стратегия, и я ее мучаю.
Немного не так. Раньше я строил облако из параметров, сейчас из стратегий. Поэтому вопрос не в том что именно торговать, а в какой пропорции.
Многократно сталкивался с тем, что системы, построенные разными людьми, на разных принципах и в разных таймфреймах в одни и те же периоды времени теряли деньги и в одни и те же зарабатывали. Иногда говорят о корреляции систем, хотя корреляция как мера сходства в данном случае, имхо, не вполне адекватна.
Поэтому я обычно задаюсь простым вопросом, добавление этой системы к этому портфелю улучшит ли характеристики портфеля. И бывает, что лучше добавить средненькую систему, нежели хорошую.
1. Как я сейчас собираю портфель? Руками и глазами.
2. Как я буду собирать портфель? Писал тут Диверсификация портфеля (smart-lab.ru)