Пришлось мне провести некоторое исследование, чтобы собрать мысли в кучку, и систематизировать в голове подход в выборе лучших торговых систем из некоторого множества. Кстати, так или иначе — методами математики.

Постановка задачи
Итак, допустим, у нас есть некое множество торговых систем, и какие-то из них — лучше, а какие-то хуже. Мы не очень хорошо понимаем, лучше ли та система, у которой больше прибыль, ведь у неё может быть больше просадка и ниже фактор восстановления. Или лучше та, у которой просадка минимальна? Но прибыль такой системы тоже может быть низкой. И это я назвал три метрики. А их может быть куда больше. Например:
- соотношение приведённой к году прибыли на тесте и на проверке
- доля использованного торгового времени от общего, например, доля дней, в которые совершались сделки, по отношению к общему числу торговых дней
- доля времени торговой системы в рынке — время, в течение которого капитал был занят позицией по отношению к общему торговому рыночному времени
- максимальная, средняя и минимальная длины сделки — в барах, минутах, часах или днях
- среднее число сделок в единицу времени, например, в час или в день или в неделю
- среднее число сделок в торговый день и среднее число сделок в календарный день
- максимальная длина серии прибыльных сделок и то же для убыточных сделок
- доходность, приведённая к году
- доля комиссий в сделке, доля комиссий в итоговой прибыли, размер комиссии на пункт дохода
- максимальная достигнутая реализованная прибыль
- средняя прибыль в час, день, месяц
- фактор восстановления
- всевозможные MAE, MAPE, SMAPE, RMSE, MSPE и прочее
- квадрат отклонений и квадрат отрицательных отклонений, а по аналогии -
- коэффициент Шарпа и коэффициент Сортино
- математическое ожидание
- максимальная реализованная просадка, относительная реализованная просадка, максимальная нереализованная просадка
- максимальная нереализованная потенциальная прибыль
- число прибыльных / убыточных сделок, суммарная прибыль и убыток по прибыльным и убыточным сделкам
- финансовый результат по длинным и коротким сделкам
- корреляция между кривой доходности и рыночной ценой актива
- бенчмарк прибыли / просадки для случая «купить и держать» для данного актива за тот же период в относительных единицах к соответствующим показателям самой системы
- бенчмарк прибыли по оптимальному пути — максимальной теоретической возможной прибыли с учётом комиссий по данному активу
Пусть у вас есть матрица, где каждой торговой системе соответствует строка, а каждому из показателей выше — столбец. Хотелось бы ранжировать торговые системы каким-то образом, чтобы отобрать лучшие, но для ранга желательно иметь непрерывный диапазон значений, который можно уже разбить на квантили, квартили и так далее. А у нас тут набор разношёрстных метрик.
История поисков
- Сначала я делал это вручную — буквально накладывая фильтр на примерно такую вот матрицу, которая описана выше, а используемая методика была «мне так кажется».
- Потом я автоматизировал это, но суть не изменилась, это было решение «наверное, это должно быть так», но уверенности не было.
- Далее я натравил на эту матрицу простенькую нейронную сеть и получил воодушевляющие результаты, и я писал об этом ранее.
- Теперь я хочу подойти к этому процессу с ещё более формальной точки зрения: по сути, это, похоже, и делала созданная мной нейронная сеть, а теперь будет математический метод.
Формулирование проблемы
Нам предстоит, используя множество критериев — метрик тестирования торговых систем — найти одну или несколько лучших. Такие задачи являются задачами класса многокритериальной оптимизации. Об этом и пойдёт речь ниже. Нам нужно сконструировать метрики идеальной торговой системы и найти расстояние до такой идеальной системы от всех прочих. Это расстояние и будет являться значением для отбора систем.
Найденные решения
Итак, задавшись вопросом, какие для этого существуют инструменты, я накопал нижеизложенное.
Во-первых, классы методов:
- методы, основанные на искусственном интеллекте, такие как нейронные сети, генетические алгоритмы, нечеткая логика и т.д. Эти методы позволяют создавать сложные и гибкие модели, которые способны обучаться на данных, выявлять закономерности и прогнозировать поведение рынка;
- методы, основанные на оптимизации, такие как симплекс-метод, градиентный спуск, метод Ньютона и т.д. Эти методы позволяют находить оптимальные значения параметров стратегий, которые максимизируют или минимизируют заданную целевую функцию, такую как прибыль, риск, отношение Шарпа и т.д.
- Методы, основанные на статистике, такие как регрессионный анализ, тестирование гипотез, анализ временных рядов и т.д. Эти методы позволяют проверять статистическую значимость и надежность стратегий, а также оценивать их риски и доходность.
- Искусственный интеллект для трейдинга | Polygant
- Как я сделал тестер-оптимизатор для нахождения прибыльных стратегий
А вот какие, в частности, методы, попались мне во время поисков:
- одним из популярных методов многокритериального отбора торговых стратегий является метод ELECTRE (Elimination Et Choix Traduisant la REalité), который основан на попарном сравнении стратегий и исключении тех, которые доминируются другими по одному или нескольким критериям. Данный метод позволяет учитывать не только количественные, но и качественные критерии, а также веса критериев и пороги принятия решений;
- другим распространенным методом многокритериального отбора торговых стратегий является метод TOPSIS (Technique for Order of Preference by Similarity to Ideal Solution), который основан на вычислении расстояний между стратегиями и идеальными точками, соответствующими максимальному и минимальному значению каждого критерия. Данный метод позволяет определить наилучшую и наихудшую стратегию, а также рассчитать относительную близость каждой стратегии к идеальному решению;
- еще одним интересным методом многокритериального отбора торговых стратегий является метод ML-LDM (Multi-Lingual Linguistic Decision Making), который основан на использовании лингвистических переменных для описания критериев и оценок стратегий. Данный метод позволяет учитывать неопределенность и нечеткость данных, а также различные области экспертизы и предпочтения участников процесса принятия решений;
- следующим будет метод AHP (Analytic Hierarchy Process), который основан на построении иерархии критериев и альтернатив, а также на определении приоритетов с помощью попарного сравнения элементов иерархии;
- метод PROMETHEE (Preference Ranking Organization METHod for Enrichment Evaluations), который основан на вычислении степени предпочтения одной альтернативы над другой по каждому критерию, а также на агрегации этих степеней с учетом весов критериев;
- Метод VIKOR (VIseKriterijumska Optimizacija I Kompromisno Resenje), который основан на определении наилучшей и наихудшей альтернативы по каждому критерию, а также на вычислении расстояний между альтернативами и этими опорными точками.
- Сравнительный анализ методов многокритериального принятия решений
- Статистический анализ: методы оценки торговых стратегий
- Многокритериальный отбор: рафинирование модели
Выбранное решение
Мне приглянулся метод TOPSIS, который был упомянут выше. Его я и буду использовать. Графически решение задачи можно представить, в каком-то приближении в виде диаграммы типа «радар», где на окружности нанесены метрики торговых систем, а по осям от них к центру — значения этих метрик. А по сути — мы будем искать сначала идеальную систему (которой нет), можно назвать её идеальной точкой или даже утопической торговой системой. А потом расстояния до неё от всех прочих.
Относительная близость алгоритмической (но не обязательно) торговой стратегии к идеальному решению — это мера, которая показывает, насколько данная стратегия близка к лучшей возможной стратегии по всем критериям. Одним из способов рассчитать относительную близость является использование метода TOPSIS. Суть этого метода заключается в следующем:
- сформировать матрицу решений, в которой строки соответствуют альтернативным стратегиям, а столбцы — критериям оценки (например, прибыль, риск, стабильность — как было показано выше);
- нормализовать матрицу решений, чтобы привести все значения к одному масштабу и устранить влияние единиц измерения (помним, что у нас где-то доли, где-то проценты, где-то количества и суммы);
- умножить нормализованную матрицу на вектор весов критериев, чтобы учесть их относительную важность. Это самое слабое место — нужно определить вес каждого критерия, но тут можно пойти итерационно, корректируя их в процессе исследования;
- определить идеальное решение как вектор, состоящий из лучших значений по каждому критерию (метрике), и анти-идеальное решение как вектор, состоящий из худших значений по каждой метрике;
- вычислить евклидово расстояние между каждой альтернативой и идеальным решением, а также между каждой альтернативой и анти-идеальным решением. Можно, кстати, использовать не обязательно евклидово пространство, а, например, чебышевское, манхэттенское или другое, но это усложнит задачу. Хотя для нескоррелированных метрик они бы подошли лучше. Но я не математик, для меня это слишком сложно (пока);
- рассчитать относительную близость каждой альтернативы к идеальному решению как отношение расстояния до анти-идеального решения к сумме расстояний до идеального и анти-идеального решений. Это значение будет лежать в интервале от 0 до 1, где 0 означает полное несоответствие идеальному решению, а 1 — полное соответствие;
- ранжировать альтернативы по убыванию относительной близости и выбрать ту, которая имеет наибольшее значение, как наилучшую стратегию (или топ лучших).
Звучит сложновато, но на деле довольно простые формулы — суммы квадраты и не более того.
Как вам идея?
Для любителей теории вот ссылка: тыц
Заключение
Наконец, ушат холодной воды: идеальное решение в алгоритмическом трейдинге — это такая стратегия, которая максимизирует прибыль и минимизирует риск и другие нежелательные факторы. Однако, в реальности такое решение может быть недостижимо или не существовать, поскольку существует множество неопределенностей и ограничений на рынке. Поэтому, вместо поиска идеального решения, целесообразнее искать наиболее приемлемое или оптимальное решение, которое удовлетворяет заданным критериям и ограничениям. Для этого можно использовать различные методы оптимизации, такие как симплекс-метод, градиентный спуск, метод Ньютона и т.д. Эти методы позволяют находить оптимальные значения параметров стратегий, которые максимизируют или минимизируют заданную целевую функцию, такую как прибыль, риск, отношение Шарпа и т.д.
Зачем я напрягаю свой мозг такими упражнениями?
- Верю в тысячи процентов годовых :) ваши жалкие 20-30-40 — не то, зачем я пришёл на рынок :)
- Тренирую мозг и развиваюсь в самых разных, как оказалось, областях
- Страхую себя от рисков деменции в старости :)
Это один из главных факторов, которые делают нас счастливыми :)
Всем удачи, текст вычитывать не буду, и так еле осилил :)
Подробнее https://smart-lab....