Блог им. SergeyJu

ПЕРЕПОДГОНКА ч.2

ПЕРЕПОДГОНКА ч.2

В предыдущей заметке https://smart-lab.ru/blog/628025.php

я описал пример применения метода Монте-Карло для оценки переподгонки на базе дневных данных по фьючерсу на индекс РТС. Поскольку мало кто понял, о чем я, собственно, веду речь, и зачем это вообще  нужно, продолжу.

Весь расчет был сделан для считающегося условно-безопасным случая 3 – х индикаторов (2^3=8 кластеров). Резонный вопрос, а если кластеров больше или меньше, что будет. Для начала провел моделирование для случая 2, 4, 8, 16, 32 кластеров и привел эмпирическую формулу, связывающую результат с числом степеней свободы (число коих на 1 меньше числа кластеров).

Число кластеров

Степеней свободы

Средний Шарп

Приведенный Шарп

2

1

0,214

0,214

4

3

0,375

0,216

8

7

0,573

0,217

16

15

0,836

0,216

32

31

1,191

0,214

 

Связь очень простая, средний финансовый результат (или Шарп, в данном случае это одно и тоже с точностью до множителя) от числа кластеров  подгонки пропорционален корню из числа степеней свободы. С точностью до 3 знака. Каждое измерение состояло из 100 000 случайных попыток построить эквити. Так что расхождения в 3 знаке трактовать как наличие более сложной зависимости нет оснований. Гистограмма распределения финрезов эквитей выглядит во всех случаях почти как гауссовский колокол. В общем, ничего удивительного, ЦПТ она такая, созданная из корня.

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

Число кластеров

Степеней свободы

Среднегодовая доходность

СКО среднегодовой доходности

2

1

8,8%

6,6%

4

3

15,1%

6,5%

8

7

23,1%

6,5%

16

15

33,6%

6,4%

32

31

48,0%

6,3%

 

Всего 32 кластера – и чудовищно высокая 1,48 ^ 13 > в 500 раз  за 13 лет доходность!  

А если мы имеем освященный временем индикатор, и замешаем его в подгонку? Возьмем в качестве такого индикатора экспоненциальное скользящее среднее, а в качестве порогового условия для него – сравнение с ценой закрытия дня. Больше или меньше. По формуле

S(i)=S(i-1)+(C(i)-S(i-1))*(1/P)

используем случайный вещественный параметр P в диапазоне 2-32. В стандартной терминологии это, примерно, от 4 до 64 дней. Среднегодовая  доходность 16,4%, её СКО 2,2%. То есть этот индикатор по потенциалу примерно соответствует двум случайным индикаторам.

Сразу тянутся руки добавить еще один простой индикатор – и вот оно, счастье. К сожалению, дальше все не так просто. Например, RSI вообще не имеет смысла.
Возможно продолжение...

★4
51 комментарий
по памяти годовую доходность  по индексу S&P  в 48%  имел Гэри Смит… правда, что такое кластеры  понятия не имел, а спрыгивали при малейшем шухере с взаимных фондов… 
все энто при наличие Мощнейшего бычьего тренда  с середины 80 до начала нулевых…

и вновь  входил, когда индикатор настроения очень умных и не очень… приходил в движение в их сторону…..
avatar
wistopus, у Гэри Смита интересная книга. Но совсем-совсем не о том, о чем тут пишу я.
avatar
WhalerMan, понимаете, я не строю новую систему, поэтому комисс и проскальзывание не интересны. Тем более, что речь идет о дневках и число сделок поневоле не очень большое. По порядку величины выходит 100 в год или чуть меньше. 
avatar
о чем Вы пишите я, естественно, не понимаю… возможно, что энто и к лучшему…
avatar
wistopus, я старался писать понятно. Но, вероятно, сам подход вызывает отторжение.
avatar
WhalerMan, на фьюче издержки много-много меньше. И всегда есть способ или сократить число сделок или просто снизить проскальзывание. Было бы за что бороться. 
avatar
нет  никакого отторжения… просто по большему счету математика бесполезна...

Ваша идея -  зеленая свеча  пересекает среднюю  — покупаем, красная пересекает среднюю — продаем… возможно энто и есть сермяжная правда трейдинга…
avatar

«Хотелось бы так сказать в общих чертах понять что ему нужно» ©

 

Почти ничего не понял).

1. Речь о том, что проверяется гипотеза о том, что чем больше степеней свободы, тем больше вероятность подгонки? — Или про другое?)

2. Это исследование ради исследования, как я понял, чисто теория, причем теория, не нарушающая представления автора о мире, т.е. ну так чисто поразвлечься. 

avatar
Тоже ничего не понял. Даже прочитал ч.1.
Но плюсы поставил. Оценка адекватности системы реальности вопрос интересный.
Вообще, имхо, если оптимальность системы оценивать не по Макс прибыли, или лучше вообще не по прибыли, то вопросы подгонки уже остро не стоят.
avatar
3Qu, намекните, как именно оценивать. 
avatar
SergeyJu, попробую топик с намеками написать ближе к вечеру, если со временем получится.
avatar
3Qu, Получилось?
avatar
bascomo, конечно, тогда же.
avatar
3Qu, 20 июня?
avatar
bascomo, не помню, м.б. немного позднее.
avatar
Прекрасное исследование!
Та простота, которая достигается только огромным усилием ума.
avatar
WhalerMan, тестировать систему надо более тщательно, спору нет.
avatar
WhalerMan, приходят люди с НС. В НС сотни нейронов… один нейрон — один индикатор. Казалось бы 10 нейронов ~10 индикаторов ~ 1000 кластеров — и все деньги мира Ваши. 
А эмпирики говорят о 2, максимум 3 индикаторах. Почему так выходит. Как можно наращивать сложность системы оптимизации, а как — нельзя. На самом деле ответов на эти вопросы ни у кого нет. Так, соображения…
avatar
SergeyJu, у людей, приходящих с компьютерными НС обычно спят собственные мозги. Они с детства учатся действовать по шаблону, поэтому втыкают на входы индикаторы или raw data. Отсюда — оптимизация, переподгонка, хаос рынка...
Их нужно долго уговаривать «включить воображение», чтобы осознать очевидное: огромную разницу между традиционными data sets и биржевыми данными.
старый трейдер, разница огромная, это и правда мало кто осознает.
avatar
SergeyJu, к НС это имеет крайне отдаленное отношение, скорее это пример работы одного изолированного решающего дерева, про которое известно, что оно имеет тенденцию страшно переподгоняться. Проблема понятная, но не уникальная для рынка. Одно из решений — случайный лес. Если я правильно понял постановку эксперимента, то он у вас достаточно быстро сойдется к константному значению — при в среднем растущем рынке просто все время держать. 
Мне кажется, случайный лес дает очень дельный способ защититься от переподгонки — строить много существенно разных моделей. 
avatar
Михаил, я когда-то потратил изрядно времени на случайные леса. В общем, мой вывод простой, какие фичи — такой и результат. Нового качества в системы не привносит. 
avatar
SergeyJu, согласен. Просто разумные метод поиска зависимости и тестирование out-of-sample могут в определенной степени снизить риски переподгонки. Лес имеет некую встроенную защиту от дурака (хотя и не 100%), а изолированное решающее правило нет.
avatar
Михаил, для человека, который варится в рынке, защита более чем условная. У нас немного более-менее пригодных к использованию фич. И эти фичи, явно или неявно, все равно уже проверены на рынке. Поэтому то, что в лесах идет деление на ин-сэмпл и аут оф сэмпл, только кажется полноценной проверкой. А по сути повторение уже пройденного.
В том числе и поэтому все простые штучки по учебнику ML  буксуют на рыночных данных. 
avatar
SergeyJu, я брал 70 разных индикаторов и сплошным перебором (правда без перебора параметров) тестировал результаты систем:
1. Из одного индикатора 70 шт
2. Из двух индикаторов 70х70
3. Из трех 70х70х70

Пришел к выводам:
1. Из трех индикаторов системы были не лучше, чем из двух
2. Из одного также проигрывали системам из двух (видимо оттого, что были слишком примитивны, а второй индикатор давал некую подстраховку)
3. Многие классические индикаторы это абсолютное г..., и с ними ничего не работает

Выбрал такой подход:
1. Прогоняю системы из одного индикатора, чтобы отсеять г...
2. Оставляю из нескольких рабочих переборы из 2х индикаторов 70х70
3. Дальше в интересных комбинациях перебираю индикаторы и оцениваю пятно параметров

Ну и еще конечно это отбор инструментов, периодов тестов и пр…
avatar
Что то до меня не доходит:). Вы методом Монте карло коэффициент пытаетесь добыть который улучшит торговлю? И чем оптимизация от переподгонки отличается, это как оптимизировали по волатильности, а потом уже полученное число оптимизировали по отрасли.

Как не переоптимизировать движение пьяного который каждый два квартала поворачивает либо налево либо направо. Все равно кругами ходить будет.
avatar
Jkrsss, нет, попробую объяснить по аналогии. Математики используют оценки сверху и снизу, когда не могут получить точный результат. Все умные торговцы строят системы так, чтобы их можно торговать. Я подошел со стороны таких систем, которые в принципе нельзя торговать.  
avatar
SergeyJu, Тогда может это ошибка второго рода. Применять системы которые в принципе торговать нельзя.
avatar
Jkrsss, нельзя применять к чему? 
avatar
SergeyJu, к статистическим методам, в частности к подобному с монте карло методу последовательного анализа(это тоже числовой(статистический метод)). Так в учебниках пишется. А вообще если бы графически показали результат нагляднее было бы. 
avatar
Спасибо!
Получается довольно пессимистично?
Оценка сверху показывает, что большие доходности будут почти наверное жуткой переподгонкой.
Оценка снизу, где подгонка разумна, говорят, что на интересные доходности рассчитывать не приходится.

За что зацепиться оптимисту?
Полагать, что есть некие рыночные индикаторы и нерыночные.
Из нерыночных (тупое преобразование временного ряда) ничего не соорудить.
Получается, чтобы дойти до рыночных (которые не любое преобразование данных), нужен опыт торговли и съесть тот самый пуд говна. Что по итогу вряд ли стоит делать тому, кто еще в это не вляпался.
avatar
Sergey Pavlov, мне кажется один из выводов, что не стоит ожидать чудес от направленной торговли на одном инструменте. Очень хочется большей доходности — нужно глядеть в сторону большего числа инструментов или того или иного вида арбитража (который не рассмотрен в этой симуляции).
avatar
Михаил, один инструмент, это совсем не то, что портфель. Совершенно согласен. Что касается арбитража, то вопрос в том, что Вы под ним понимаете. Простые методы арбитража, типа парной торговли, имхо, тупик. 
avatar
SergeyJu, я не имею практического опыта в арбитраже, но по ощущениям, это требует серьезных усилий в плане скорости инфраструктуры, и у таких стратегий мало емкости. Насколько понимаю, есть успешные арбитражёры, но с наскока там точно не получится. 
avatar
Михаил, классический арбитраж — это заработок на препятствии, которое непреодолимо для других. Допустим, арбитраж между российскими акциями и АДР на них в США и Лондоне раньше был доступен только очень немногим. И потому очень выгоден. 
Для обычного торговца сейчас, имхо, почти нет простого доступного арбитража, который лучше торговли линейных инструментов. Но возможен арбитраж так сказать портфельный. Когда разные активы и системы «тянут в разные стороны». Условно, портфель акций, управляемый моментумом и шортовая система на фьючерсе на индекс. 
avatar
Sergey Pavlov, доля просто условно-стабильных положительных торговцев очень мала. А успешных просто ничтожно мала. 
avatar
SergeyJu, а деньги куда деваются? Где эти триллионеры?
avatar
bascomo, деньги прожирает индустрия и инфляция. 
avatar
SergeyJu, брокеры и биржи?
avatar
bascomo, и управляшки, и НПФ, и депозитарии. 
avatar
То есть этот индикатор по потенциалу примерно соответствует двум случайным индикаторам.

SergeyJu, я правильно понимаю, Вы построили индикатор степени случайности индикаторов и теперь с помощью него можно отделять зерна от плевел?
avatar
Sergey_B, пока не построил. Скорее, ищу подходы. 
avatar
Я изучал сотни индикаторов в Метастоке 7.2.Тестировал и оптимизировал, сочинял свои.Один на РАОЕЭС  оказался удивительно доходным, но работал только на РАО.Он был сформирован из нескольских средних, причем некоторые отличались на 1 шаг периода.С  2008г я торгую без прог и индикаторов.Ставлю одну сдвинутую среднюю типа красного аллигатора. 
Торгую на раз-два — сделка.Типа считаю углы до 2х или до 5ти ( 2я или 5я свеча фрактала Вильямса. У меня есть сборник гениальных индюков на языке Метастока (вижел бейсик ). Средние на синусах -это чтото особенное. Могу подарить.

PI:=3.1415926;
SD:=180/6;
S1:=Sin(1*180/6)*C;
S2:=Sin(2*180/6)*Ref(C,-1);
S3:=Sin(3*180/6)*Ref(C,-2);
S4:=Sin(4*180/6)*Ref(C,-3);
S5:=Sin(5*180/6)*Ref(C,-4);
Num:=S1+S2+S3+S4+S5;
Den:=Sin(SD)+Sin(2*SD)+Sin(3*SD)+Sin(4*SD)+Sin(5*SD);

Num/Den

avatar
Sergдобрый вечер. Я недавно написал пост на сайте и мне посоветовали с вами поговорить. Я инвестирую в рыночно-нейтральные торговые стратегии и в моменте ищу новые стратегии для инвестиции.
avatar
Вы принимаете капитал под управления?
avatar
Ilan Malkin, у меня нет хороших рыночно-нейтральных стратегий. ДУ-это бизнес, я сейчас вне бизнеса. Можете обратиться к сыну. 
hamster-invest.ru/
avatar
Это про поиск настроек индикатора? Есть один интересный подход…
avatar

теги блога SergeyJu

....все тэги



UPDONW
Новый дизайн