в Алготрейдинг

Почему вам не стоит покупать торговые системы

Вы должны избегать покупки торговых систем, потому что обычно нет способа точно знать, как они были разработаны. Есть множество средств для разработки торговых систем, которые используют дата майнинг (data mining), чтобы сгенерировать торговые системы, и которые они заявляют как устойчивые (robust). Однако, в зависимости от того, как это делается, тесты на устойчивость могут быть частью процесса дата майнинга с сильной предвзятостью (bias).

Есть множество веб-сайтов, которые продают торговые системы или их сигналы. Все больше появляются каждый месяц, позиционируя себя как количественные (quant) разработки. Вы также можете купить программное обеспечение, которое тестирует или даже генерирует торговые системы. Стоят ли чего-нибудь эти системы? В 99.99% случаев (и сколько хотите 9 дальше) эти системы ничего не стоят. Примеры:

– Внутридневные и свинговые торговые системы, основанные на индикаторах.

Тренд-следящие системы, основанные на индикаторах и/или фундаменте.

– Схемы ротации ETF и акций на любом методе.

Если вы не знаете, как эти системы в точности были сгенерированы, тогда вам лучше не рассматривать их, потому что они могут быть результатом взлома статистической значимости (p-hacking, слепое прочесывание данных). И вот что я имею в виду.

Даже если разработчик заявляет, что системы были разработаны на одной выборке данных, а затем протестированы вне-выборки и даже протестированы на форвардных данных, правда заключается в том, что любой может найти систему, которая удовлетворяет этим требованиям, позволив алгоритму прочесывать исторические данные, пока желаемый результат не будет достигнут. Система, которая показывает отличные результаты, выбирается из большого, иногда огромного, числа кандидатов, и, хотя их результаты выглядят значительными вне-выборки, статистическая значимость была существенным образом взломана.

Однако, статистический тест применим только когда задействована единственная, и часто уникальная, гипотеза. Если задействовано множество гипотез, их значимость должна быть скорректирована на число, которое выходит довольно большим. В результате, значимости больше не остается.

Даже если разработчик не использовал одну из тех генетических программ, которые генерируют торговые системы тоннами, вы не можете знать, какое число параметров было оптимизировано явно или неявно. Переподгонка под данные имеет множество неприятных аспектов. Есть разные типы переподогнанных систем и разные способы придти к ним, например:

– Прямая оптимизация параметров.

– Косвенная оптимизация параметров.

В случае прямой оптимизации параметров разработчик, или генетический алгоритм, прямо корректирует параметры индикаторов таким образом, чтобы оптимизировать метрику результатов. Это наиболее опасный способ разработки торговых систем, поскольку безжалостно подгоняет результаты под исторические данные.

В случае косвенной оптимизации параметров, рынки, конкретные акции, исходная выборка, данные вне-выборки и данные форвардного теста перебираются, пока желаемые результаты не будут достигнуты. В большинстве случаев это не делается намеренно с целью кого-то обмануть, но таковы последствия неосведомленности о влиянии подгонки под данные и многочисленных выборов на значимость финального результата. Хотя опасность прямой оптимизации сейчас понятна многим квантам (quants), косвенная оптимизация остается темной зоной.

Какие тесты вы можете сделать

Давайте предположим, что вам предложили систему для торговли SPY и сказали, что она была прибыльной на выборке и вне-выборки. По причинам, изложенным выше, рассматривать эту систему было бы не очень хорошей идеей, если вы не можете сделать следующее:

1. Протестировать систему на всех имеющихся исторических данных. Вам нравятся результаты системы? Достаточно ли высок коэффициен Шарпа? Видите ли вы более высокую максимальную просадку, чем было заявлено?

2. Проверьте число параметров системы. Там больше двух параметров? Систему, имеющую много параметров, легко подогнать так, чтобы она показывала хорошие результаты и на выборке, и вне-выборки.

3. Возьмите какую-нибудь хорошо коррелированную со SPY акцию и протестируйте систему на ней. Результаты значительно ухудшились или даже стали негативными? Если да, это может значить, что система использует специфическую динамику своего рынка и не основана на оригинальной гипотезе о торговле на этом рынке. Хотя и нет ничего плохого в том, чтобы эксплуатировать специфическую для рынка динамику, но когда она меняется – система взрывается. Пример будет ниже.

Если вы не можете провести никаких тестов

В этом случае, может быть это не очень хорошая идея покупать систему, и вы должны вести свои собственные анализы и делать свои домашние задания. Включая случаи, когда код системы недоступен или нет возможностей провести эти тесты. Заметим, что на некоторых сайтах, продающих торговые сигналы, есть некоторые системы, показывающие уникальные результаты в реальном времени. Так было и в случае с одной форекс системой до того, как Швейцарский центробанк отменил привязку к евро. Система показывала исключительные результаты в реальном трейдинге, но использовала специфические для рынка свойства – привязку к евро. Прибыль многих месяцев или даже лет исчезла в течение одного часа, превращая очень прибыльную систему в очень убыточную. Можно было определить зависимость от специфических свойств рынка с помощью теста на аналогичных форекс парах.

Наконец, заметим, что суть этого поста не в том, что все торговые системы на продажу бесполезны, а в том, что ваши способы узнать как они разработаны очень ограничены. Например, они могут быть артефактами беспрерывного дата майнинга. Игнорируйте все заявления по поводу того, что предвзятости (bias) дата майнинга были измерены и скорректированы. Они обычно результат большого недопонимания того, что такое есть предвзятости дата майнинга. Предвзятости дата майнинга не могут быть измерены, потому что относятся к качеству очень сложного процесса, а не к специфическому количественному свойству.

Автор: Michael Harris

Источник: Why You Should Avoid Purchasing a Trading System

Комментарии:

EdgeStone: Хорошая статья.
Если системы полученны в результате того самого прочесования, т.е. перебора данных – всё понятно.
Но вот вопрос, а если я не генетическим алгоритмом генерировал системы, а проверил некую свою идею, и она подтвердилась, прошла кросс-валидацию и т.д. У меня вроде как должно быть больше доверия к такой системе, но почему?

Kent: больше
потому, что вероятность подгонки меньше

чтобы повысить доверие системе, которая была сгенерирована в реззультате многократного прочесывания данных, следует понят, какой эффект лежит в основе работы системы, если поняли что работа основана на реальном эффекте (типа придумали достоверную легенду) то вполне можно поопробовать

mehanizator: если идея уникальная и логически обоснованная то да, доверия больше. а если это под-идея из набора 100500 похожих идей, которые автоматически перебираются, то будет подгонка.

EdgeStone: Ну а какие вообще могут быть реальные эффекты?

Momentum – оно же тренды, инерционность, персистентность.
Mean Reversion – возврат к среднему, антиперсистентность.
Стат. Арбитраж – коинтеграции, корреляции разные.
Некие паттерны -фигуры, уровни, линии,
возможно фракталы и самоподобия некие

Есть что-то еще в теории?

EdgeStone: Свойство например – SnP больше чем на 5% за неделю падает крайне редко.
Почему, как обосновать такой эффект? Просто волатильность такая на инструменте, была на истории и наблюдается в текущем рынке.
Почему она сохранится в будущем -непонятно.

Kent: паттерны, которые не фигуры уровни, а в виде комбинации измеримых факторов

Kent: очевидным образом, что нейросеть может находить иные закономерности чем человек глазками (паттерны которые фигуры уровни)

Lev: Kak nashot Data mining bias ipraverki tipa “White reality check” , “SPA”?

mehanizator: если существует неограниченный цикл (генерация гипотезы) -> (проверка гипотезы), то никакие тесты в принципе не помогут, потому что рано или поздно будет выкопана гипотеза, которая случайным образом удовлетворит всем тестам.

Lev: Kent: kak ti praveraish rezultati neural net padgonka ili net? (cross validation, data minning bias)

ya sravnivau raspredeleniya na “bootstrap with replacement data” na 100 – 200 vibarak.

VNIK: То, что описано в статье, вполне может быть на самом деле. Но это только один из возможных сценариев, и в этом случае обобщать и делать выводы о не возможности покупки ТС с вероятность провала 99,9…% – это глупость, граничащая с шизой.
Думаю, что название статьи, да и содержание, лучше было бы привязать к правильному алгоритму приобретения ТС.