Многоликость подстройки ч.1

Многоликость подстройки ч.1

AlgoFox

Что такое подстройка?

Подстройка — это неправильно выполненная оптимизация. С технической точки зрения подстройка или «чрезмерная оптимизация» торговой модели означает нахождение параметров, которые очень хорошо согласуются с прошлыми ценовыми данными, но не имеют прогностической способности.

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

Для верного понимания интуитивно ощущаемого смысла подстройки требуется некоторое разъяснение. Чтобы понять значение слова overfit (досл. — чрезмерно соответствовать), сначала необходимо определить и понять слово fit (соответствовать) в контексте разработки торговых моделей.

Одно из определений слова «fit» в словаре Вебстера: «Быть годным к или соответствовать чему-либо».

Согласно данному определению, настроить (to fit) торговую модель на ценовые данные — значит сделать ее пригодной или соответствующей целям трейдинга. Для создания торговой модели требуются параметры, которые необходимо адаптировать к ценовым данным таким образом, чтобы моделью можно было торговать, а для этого необходим действенный метод определения этих параметров по ценовым данным.

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

Другое определение слова fit в словаре Вебстера: «Быть под ходящего размера или формы для чего-либо».

Параметры торговой модели, настроенной на тестовые ценовые данные, на которых они были протестированы, имеют «подходящий размер и форму» для получения прибыли в реальной торговле.

Определение приставки «over» в словаре Вебстера — «чрезмерно»: следовательно, подстроенная торговая модель — это модель, «настроенная чрезмерно». Распространив это значение «чрезмерной настройки» на первое определение слова fit, мы получим, что подстроенная торговая модель не является подходящей или соответствующей целям реальной торговли. Адаптируя эту идею ко второму определению слова fit, получаем, что параметры подстроенной торговой модели не соответствуют подходящим размерам и форме, необходимым для прибыльной торговли.

Подстроенная торговая модель имеет параметры, не соответ ствующие правильной настройке на ценовые данные. Если посмотреть на это немного с другой стороны, подстроенная торговая модель имеет параметры, не соответствующие цели получения прибыли в реальном трейдинге.

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

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

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

Мы используем термин «подстройка» для указания на неправильно выполненную оптимизацию, посредством которой выделены параметры модели, неспособные обеспечить получение прибыли в реальной торговле.

Мы применяем термин «оптимизация», указывая на правильное выполнение тестовых процедур, посредством которого выделяются параметры торговой модели, подходящие или наиболее приемлемые для получения прибылей в реальном трейдинге.

Пример подстроенной прогнозной модели

Рассмотрим статистика, который строит модель прогнозирования фондового рынка. Один из самых распространенных и эффективных методов решения этой задачи — строить модель с помощью регрессионного анализа. В рамках этого метода статистик «настраивает» прямую линию на данные фондового рынка. После того как это сделано, для получения прогноза вычисляется следующая точка на линии регрессии. Такая модель будет давать прямолинейную проекцию. Хотя эта проекция может не быть очень точной с точки зрения трейдинга, это нормальная статистическая процедура.

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

Если немного — это хорошо, то больше — лучше, поэтому статистик решает использовать уравнение кривой, описывающей каждый пик и впадину ценовых данных. Обычно это уравнение называют уравнением «более высокого порядка». Полученная в результате прогностическая модель ближе соответствует историческим ценовым данным, чем две предыдущие модели. Видя это, статистик уже подбирает себе особняк и цвет Мерседеса, на котором будет ездить в свою торговую фирму.

Особняк сгорает, а Мерседес разбивается, когда статистик начинает торговлю своей прогностической моделью. Прогнозы, которые она делает в реальном времени, гораздо более ошибочны, чем было подсчитано в процессе тестирования. Модель оказалась намного менее точной, чем первая прогностическая модель.

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

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

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

Последняя прогнозная модель была жестко настроена на ценовые данные. Однако прогнозы этой модели подтвердили свою несостоятельность. У этой модели нет статистической валидности, так как она была создана с небольшим количеством степеней свободы и слишком большим количеством ограничений(т.е. правил или переменных). Эта модель никогда не тестировалась на произвольных данных.

Статистик уделил внимание лишь тому, как «замечательно» модель соответствовала прошлым ценовым данным. Такое отношение возникло в результате ложной веры в то, что близость соответствия прогнозной модели прошлым ценовым данным есть показатель ее предсказательной ценности. При построении прогностической модели необходимо всегда строго соблюдать правильные процедуры статистического моделирования, как точно так же при построении торговой модели должны соблюдаться правильные процедуры оптимизации.

Среди тех, кто занимается моделированием временных рядов, ходит поговорка: «При достаточном числе переменных кривая может идеальным образом соответствовать любому временному ряду». Однако будет ли эта прекрасно настроенная кривая иметь хоть какую-то предсказательную ценность? Вероятно, нет, если правилам построения модели не было уделено должного внимания. Слишком много ограничений и слишком мало данных приводят к плохой модели.

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

В качестве примечания запомните, что вопрос случайного и неслучайного ценового движения в целом представляет очень сложную в содержательном и техническом плане и противоречивую область. Величина случайной ценовой активности по отношению к неслучайной — единственный предел эффективности моделей. Неспособность прогнозной или торговой модели точно предсказывать или торговать рынком также бывает вызвана естественными пределами, свойственными правилам данной модели. «Разрешение» этих инструментов может быть слишком «грубым» для измерения и предсказания определенных типов ценового поведения с заданным уровнем точности.

Пример подстроенной торговой модели

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

Рассмотрим аналогичный пример, в котором трейдер оптимизирует торговую систему построенную на одной скользящей средней. Скользящая средняя сканируется на диапазоне значений от 3 до 15 дней с шагом 1 день на ценовых данных за два года. В результате этой оптимизации трейдер находит, что один набор параметров данной модели принес за два года $10,000 при проседании $5,000. Далее модель была протестирована вперед на 6-месячном периоде. За этот период система принесла $2,000. Это хороший результат. Система работала при форвардной торговле с результатом, примерно сопоставимом с ее годо вой нормой прибыли $5,000 за время оптимизации. Пока все хорошо.

Однако чрезмерно увлекшийся теперь торговлей трейдер нео смотрительно потерял бдительность. В качестве измерителя более длинного тренда он добавил в модель вторую скользящую среднюю и просканировал ее от 10 до 100 дней с шагом 5 дней. Первую скользящую среднюю он просканировал от 1 до 31 дня с шагом 2 дня. Теперь трейдер нашел область, в которой оптимизационная прибыль за двухлетний период подскочила до $25,000 при том же проседании $5,000. В свете такого фантастического повышения эффективности трейдера начинает лихорадить. В своем ажиотаже он забывает о вневыборочном тесте данной оптимизации.

Объясняя скачок эффективности более чем на 150% добавлением в модель второй переменной, трейдер решает добавить еще пару переменных. Скользящие средние он сканирует таким же образом, как во втором тесте. Но на этот раз он еще сканирует полосу покупки волатильности и полосу продажи волатильности от 0 до 5% с шагом 0.25%. В конце этой оптимизации прибыль за двухлетний период взлетает до $65,000 при проседании всего $7,500.

В этот момент трейдер просто теряет самообладание. Он не может дождаться понедельника (к счастью, сегодня суббота), чтобы начать делать деньги. Разочарованный, он усаживается за вневыборочный тест. К его великому удивлению, данная торговая система на 6-месячном вневыборочном тесте теряет $15,000. И тем не менее, последняя оптимизация была более чем на 600% лучше первой.Что было сделано неправильно? То же самое, что и в примере составителя прогнозов. Трейдер не уделил должного внимания степеням свободы, продолжительностям сканирований переменных, объему выборки данных и вне выборочному форвардному тестированию. К счастью, он провел один форвардный тест, и тайное стало явным до начала торговли по системе в реальном времени, когда убытки стали бы больше, чем страдания его самолюбия.

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

(1) достаточное число данных;

(2) достаточное число рынков;

(3) степени свободы;

(4) все правила оптимизации;

(5) распределение сделок и прибылей и

(6) форвардная проверка.

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

Симптомы подстроенной торговой модели

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

В более тонких случаях результаты реальной торговли могут отличаться от тестового профиля в различной степени. Например, средняя проигрышная серия тестового профиля может составлять 3 проигрыша подряд на общую сумму $4,000. Средняя выигрышная серия может составлять 2 сделки подряд на сумму $6,500. В реальной же торговле средняя проигрышная серия может составить две сделки подряд на сумму $4,000. Безусловно, что это не есть катастрофа; однако это может быть симптомом того, что не все так хорошо.

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

Другой тонкий симптом подстройки можно определить только путем сравнения форвардного показателя эффективности торговой модели с ее доходностью в реальной торговле. Вспомните, что форвардный показатель эффективности — это отношение средней годовой форвардной прибыли к средней годовой оптимизационной прибыли. Реальная доходность должна быть сравнительно близка к форвардной доходности. Если она кардинально отличается от последней в течение достаточно продолжительного периода времени, то скорее всего это симптом подстройки. Однако, обычно ситуации такого рода поправимы. Если модель прошла форвардный тест, то по всей вероятности она работоспособна. Работоспособная модель может быть слегка подстроенной, если возникают небольшие расхождения в результатах реальной и тестовой торговли. Например, возможно, недостаточно большой была выборка данных, число степеней свободы было на пределе возможного или диапазоны сканирования переменных были слишком короткими. Такие ошибки могут быть исправлены, а исходные тестовые процедуры — модифицированы и выполнены заново.

часть 2


#algofoxtelegram




Report Page