Блог им. SergeyJu

Как оценить количественно переподгонку

Мы знаем, что любую простую меру качества торговой системы можно за счет подгонки загнать высоко вверх. Беда в том, что это утверждение верно в отношении прошлого и не опрокидывается в будущее. Переподогнанные системы разваливаются при реальной торговле. С другой стороны, алготорговцы верят, что в ценах есть скрытые закономерности, которые позволяют строить устойчивые торговые системы.
Практики обычно стараются упростить свои системы, чтобы минимизировать именно ПЕРЕподгонку. В математическом смысле сокращают число степеней свободы, число параметров, по которым ведется оптимизация. Не всегда эти параметры такие очевидные, как, например, число баров в алгоритме канала Дончиана. 
Или, для примера,  при подгонке RSI мы видим уже 3 параметра — переменная сглаживания, порог перекупленности, порог перепроданности. Те, кто используют стандартные настройки, начинают играть в интерпретации, что тоже может иметь смысл подгонки, но я сейчас не об этом. 
Хочется иметь какую-то меру, которая скажет нам, вот за введение дополнительного параметра подгонки мы получим вот такой выигрыш фиктивный (ПЕРЕ...), а все что свыше нам  скажет, что мы цепанули реальную закономерность. 
Для затравки, опишу, очень грубо, модельный пример. 
Я взял дневки на американские отраслевые ЕТФ акций серии XL (XLI, XLK, XLU и так далее) в количестве 9 штук плюс SPY, MDY, DIA — ЕТФ акций, соответствующие общим индексам.  Итого 12 штук, период времени с конца 1998 года. Примерно по 6500 точек на каждой или чуть больше 25 лет истории. Три одинаковых индикатора, в каждом по 1 подбираемому параметру =порогу. 
В качестве меры качества системы — сортино. 
Если подобрать три параметра для каждого ЕТФ независимо, мы получим, что ТС даст примерно троекратный выигрыш по Сортино против исходного ряда.  Равномерно взвешенный портфель (тут уж нет подгонки) из 12 систем даст выигрыш к среднему Сортино еще в 2 раза. 
Если же я буду подбирать все 3 порога одинаковыми для всех ЕТФ, то я потеряю примерно в 1,5 раза по Сортино для каждой системы и суммарный портфель даст выигрыш по сортино против среднего не в 2 раза, как первом случае, а в 1,5 раза. 
Внимание, вопрос. 
Можно ли количественно оценить, насколько велика доля переподгонки, когда я использую раздельную настройку индикаторов и вообще, будет ли реальный выигрыш от торговли раздельно подогнанного портфеля  от портфеля с 3 общими порогами.  
★7
82 комментария
Переподгонка определяется простым методом — это раздельное тестирование входов и выходов. Результаты статистики поведения входов показывают средний потенциал требуемого положительного смещения цен после входов. Результаты статистики поведения выходов показывают средний положительный потенциал удержания позиции.
Их совокупность и есть результативность алгоритма вход-выход.
 
А вот как проводить раздельное тестирование? — это уже правильный вопрос.
Сергей Сергаев, пробовал, по мне, это не удобно, во первых, и не отвечает на мой вопрос, во вторых. 
Посудите сами. Вот протестировал я только входы. И задался вопросом, то преимущество от входов, что я вижу, результат ПЕРЕподгонки, или я ухватил реальную закономерность в ценах? 
Нет ответа.
avatar
SergeyJu, ответ есть, он заключается в подходе как производится оценка раздельных входов. не каждому дано понять что один из параметров любой системы это нахождение в позиции или вне позиции. входы можно тестировать лишь понимая что в данный момент мы вне позиции. то есть не просто записать условие входа и кинуть его на график, нет, надо так записать чтобы условие входа учитывало что в данный момент мы вне позиции, а уж как это сделать — это очень интересный вопрос
Сергей Сергаев, у меня возникает подозрение, что мы друг друга не понимаем. 
avatar
SergeyJu, раздельное тестирование условий переподогнанной системы невозможно произвести по причине жесткой зависимости правил входа и выхода подобной системы. вот это и есть критерий проверки переподгонки…
Сергей Сергаев, точно, полное взаимное непонимание. 
avatar
SergeyJu, ладно кину последний шар, может достучусь.
Переподгонка сама по себе включает в себя переподгонку входов и переподгонку выходов.
Если ваше условие выхода невозможно проверить на случайных входах, то значит условие выхода уже переподогнанно.

Сергей Сергаев, О, а этот шар я поймал)), хотя предыдущие комменты тоже не сильно понимал).

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

 

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

avatar
Сергей Сергаев, проверили выходы на случайных входах, и что, это нас как-то защитит от ПЕРЕподгонки? 
Все что мы делаем, так или иначе подгонка. Вопрос же, как измерить, насколько она ПЕРЕ
P.S. Я понимаю, что ценовые ряды не симметричны относительно покупки/продажи. Даже если учесть инфляцию. Однако же некое подобие симметрии в виде более — менее торгуемых реверсивных систем наблюдается. И в них выход лонга есть вход шорта и наоборот. Как тут быть с упором на выходы? 
avatar
SergeyJu, сама идея что выход лонга это вход шорта является противоречивой факту наличия бокового движения на рынке, она упрощает движение цен только к лишь трендам вверх и трендам вниз. А куда вдруг пропало боковое движение, которое составляет довольно значительную долю?
Сергей Сергаев, падение не торгуем, есть правило «пусть полежит», на боровике рынка спокойно перекладываемся между локальными лидерами 
avatar
Сергей Сергаев, подгонка «лежит» исключительно в выборе параметров с лучшим по мнению разработчика показателем и без анализа параметров системы с худшими показателями.
avatar
А. Г., я веду Коллекцию заблуждений А.Г., добавлю туда и этот коммент )
Сергей Сергаев,  ну только уточните, что я говорил об одной системе с разными параметрами.
avatar
У меня есть подобные меры — они полностью кастомные — сама логика, вычисление. Хотя, вряд ли я один такое юзаю, но у трейдеров не встречал.

Но у меня парадигмально немного не так работает. В приведенном же контексте что имеем: исходно дурацкий флоу, которому мы не даём баловаться за счет снижения степеней свободы, дальше пытаемся оценить: а потенциал идеи, помноженный на уменьшение степеней свободы приемлемую переподгонку дают в итоге? У меня по-другому: сам флоу так работает, что переподгонка не является естественным результатом, но даже в таком флоу на выходе я делаю оценку, но скорее не на переподгонку, скорее это ближе к оценке положения на шкале случйность-закономерность.
avatar
Replikant_mih, а нельзя ли как-то поконкретнее. Я как как-то путаюсь, ЕТФ это и есть дурацкий флоу, или Вы о другом. 
Также не понимаю, как подбор параметров может уклониться от проклятия ложной тревоги на шуме. 
avatar

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

Дурацкий флоу — сама концепция генерации прогонов с разными параметрами и выбор значений из одного прогона, когда на соседние прогоны мы смотрим только на предмет больше/меньше — т.е. для ранжирования. Подгонка зашита в сам подход). Т.е. что мы делаем: мы зашили подгонку в саму суть подхода, а дальше пытаемся её контролировать затягиванием гаек по типу «убрать нахрен все параметры».


> подбор параметров может уклониться от проклятия ложной тревоги на шуме

 

Ну, если я в пределах описанного в посте подхода остаюсь, или где-то рядом (т.е. сильно саму парадигму не меняю), нужно смотреть на прогоны шире чем просто лучше-хуже, потому что лучше-хуже имеет несколько групп факторов — случайные и закономерные. Если просто смотреть лучше-хуже, случайные-то поволатильней будут — ты на них и зафитишься (фиттинг на белый шум :) ). Надо фититься на закономерные факторы. Можно просто задаться вопросом/вопросами: если тут есть закономерность в этом факторе и в этом, то как должны/могут выглядеть результаты разных прогонов при таких-то изменениях значения параметра, параметров. Это вектор, по направлению этого вектора можно придумать конкретные флоу, метрики и т.д.)

Ну а если я вернусь в свою парадигму, то максимум, что я могу сказать: а не надо вообще параметры подбирать).

avatar
Replikant_mih, ну так обычно и обсуждают привходящие обстоятельства. Как-то, например, пологий максимум или нет, можно торговать портфедь близких по параметрам систем или нет. Будет ли система работать на схожих данных. Скажем, можно ли систему с Си просто переставить на рубль-юань или ЕУ. Таких костылей есть у каждого, только какое-то все это… больше напоминает кулинарию, чем матстатистику. 
avatar
SergeyJu, У меня нет цели использовать матстатистику, у меня цель иметь рабочий инструмент — флоу, меры. Критерий рабочести для флоу — в среднем даёт ощутимо лучшие результаты по мере случайность-закономерность относительно бейзлайн флоу, критерий рабочести для меры: значение меры хорошо коррелирует с положением на шкале случайность-закономерность, тут уже посложнее — большим количеством телодвижений, кросс-проверок убеждаешься, что мера валидная как инструмент, дальше ей просто уже на этом основании доверяешь и пользуешься ей.
avatar
Replikant_mih, да что же такое флоу? 
avatar
SergeyJu, Ну набор действий, процесс, что именно ты делаешь (или автоматика, или вы на пару) начиная с момента написания стратегии до момента когда определился с «эту стратегию торгую таким-то способом (облаком или набором значений параметров) с такими-то набором значений». 
avatar
Replikant_mih, вот умеете Вы так написать, что нифига не понятно. 
avatar
SergeyJu, Видимо, талант).
avatar
Replikant_mih, давний)
avatar
SergeyJu, это дар 
avatar

      Прямого решения тут нет, зачастую всё зависит от самих параметров подгонки, может и с одним быть переподгонка, а может и с 5-ю быть робастной системой. Как оценить тут вопрос.

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

Лучший ученик В..., от объема использованных данных какую-то зависимость усматриваете? 
avatar
SergeyJu, не очень понял вопрос объем данных параметров оптимизации или речь о котировках?
Лучший ученик В..., исходный мой вопрос о числе параметров при фиксированных входных данных (котировках). 
Стандартный ход — взять систему с 98 года и прогнать её на данных до 98 года. Или взять ЕТФ на канадские акции и там пошуршать. То есть, расширить диапазон входных данных. В принципе умею, но это опять костыль.
avatar
SergeyJu, другая математика нужна, классика с этим не справляется.
Лучший ученик В..., а что такое классика, каждый понимал по своему. 
avatar
Каменный век. Никто давно не занимается подгонкой параметров стандартных индикаторов типа RSI и подобных. Это напрасная трата времени. Эти индюки усложняют, добавляя в них визуализацию трендов, поддержек и сопротивлений.
Салтыков, вы напрасно тратите время.
avatar
Ju, намекните нам тогда, куда копать?
Ju, я примеры привел, чтобы понятно было. А не для того, чтобы обсуждать выбор мною индикаторов. Об этом я вообще ни полслова не написал. 
Кстати, приведите пример чего-нибудь современного, даже интересно стало, чего я не знаю. 
avatar
По моему ситуация очень похожа на интерполяцию данных нейронной сетью. Только в Вашем случае все делается ручками...
Так вот, при обучении нейронной сети на исторических данных с каждым следующим этапом обучения ошибка уменьшается, но существует общеизвестный порог обучения, за которым возникает так называемое «переобучение» нейронной сети. Это когда наша сеть все лучше интерполирует исторические данные, но в то же время все хуже — данные из той же выборки, но не участвующие в обучении...
Поэтому, мне кажется, чтобы получить действительно объективный взгляд на «ценность» инструмента — нужно проверять его при подгонке на нескольких независимых выборках, не участвующих в обучении…
avatar
Sergerk, в том-то и дело, что все эти разделения на выборки для того, для другого, лукфорварды и прочие ухищрения из арсенала нейронок плохо работают в наших условиях. То есть в ситуации низкого отношения сигнала к шуму, отсутствие  опорной модели сигнала, отсутствия адекватной модели шума, нестационарности процесса. 
Поэтому практики обычно разрабатывают системы минимизируя параметры. Некоторые вообще считают, что у них нет оптимизируемых параметров, хотя это иллюзия. 


avatar
SergeyJu, не совсем согласен с тем, что плохо работают в наших условиях...
Может Вы неправильно их готовите? 
Мне кажется, что можно получить ответ только на правильно задаваемый вопрос. Дело в том, что «оптимизируя» параметры всяческих ТС мы как-бы в лоб ставим задачу, аналогичную той, что для нейронной сети — найти зависимости (грааль) по исходным данным. По мне — это тупиковый путь — ответ Вашей ТС или нейронной сети будет аналогичным. Нельзя по предыдущим следам (историческим данным) спрогнозировать дальнейшие шаги. ТС или нейронка может быть только инструментом. Нужно рассматривать не следы системы, а ее состояние в данный момент. Ведь именно состояние определяет ее дальнейшую эволюцию...
Все — глубоко ИМХО…
avatar
Sergerk, состояние в смысле марковской цепи, или Вы о чем-то другом? 
avatar
SergeyJu, Не, я больше со стороны физики процесса. Состояние как процессы взаимодействия внутри системы типа диссипации, самоорганизации и пр. (Пригожин, Хакен и др.), свойственные подобным явлениям. В этом смысле что рынки, что погода или явления попроще -  как Ячейки Бенара, реакция Белоусова-Жаботинского, имеют одну, в общем уже довольно хорошо известную, природу…
avatar
Sergerk, все нейросети, имеющие разные СКО ошибок на обучающей выборке и тестирующей — подгонка. А вот со статистически одинаковым СКО уже не подгонка, а найденная статзакономерность.
avatar
А. Г., На стационарных данных. Но тут не такие, или нужно дополнительно специально сильно постараться, чтобы такие выборки подобрать. И это кстати отдельное направление исследований — на чем обучаться, на чем тестировать, как понять, различия связаны с различием в данных или модель хреновая и т.д.
avatar
Replikant_mih, да нейросети из нестационарных могут преобразованием выделять стационарность. А мой топик лишь о том, как это проверить правильно.
avatar

А. Г., Если мы возьмём размеченные фото кошек и собак, поделим на 2 выборки рандомом, на одной выборке обучим нейросеть, заметим, когда ошибка на тесте закончит падать, начнёт подрастать — в этом месте остановим обучение. 

Хотя не, в предыдущем сообщении я наврал, при любом раскладе ошибка не будет равна на трейне и на тесте. 

Вернемся к примеру — да, будет некоторая небольшая разница между ошибкой трейна и теста.

 

Теперь гипотетическая ситуация: возвращаемся в прошлое на несколько миллионов лет назад (или сколько там), отматываем эволюцию назад и фоткаем кошек и собак того времени. Обучаемся на тех фотках, а в качестве тестовой выборки даём фотки современных. Будет разница в ошибках больше — да, почти наверняка.

«Закономерность» это абстракция, чисто понятие для человеков, модель обучается на тех данных, которые есть, с теми их особенностями, которые есть.

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

avatar
Replikant_mih, вот про собачек кошек и сто миллионов фоточек не надо. Точно не наш вариант. 
avatar
SergeyJu, Я знаю, что не наш, я довел пример до крайности для того, чтобы он стал более «нашим».
avatar
Replikant_mih, да все проще. Если прогнозируемых точек в тесте N, а прогнозная функция имеет степень больше N. То оптимальный «прогноз» на тесте будет иметь ошибку «нуль», но и его ценность тоже нуль.
avatar
А. Г., Это для вас проще)), а для меня когда вы перешли на язык математики сразу стало сложнее).
avatar
А. Г., Все персонажи и события в моем посте являются вымышленными, любые совпадения — случайны...  
А если серьезно — целью было через грубую аллегорию сравнить природу процессов. Нисколько не претендую при этом на точность их описания…
avatar
А. Г., нестационарность бывает разная. А ценовых данных почти всегда мало. Бывают нестационарности простые, типа меняется масштабирующий параметр (хоть бы СКО, для примера), а бывают сложные, когда меняется все поведение системы. 
avatar
Переподгонка оценивается через проверку на других инструментах на том же периоде и через проверку на других периодах не участвующих в обучении(подгонке). Если при проверке результат значительно не улучшаются значит уходишь в лишнюю переподгонку.
avatar
Т.к. пост был написан отчасти по мотивам моего — надо что-то ответить.
Пробуем.

1. Я не знаю, как оценить переподгонку между индивидуальной оптимизацией и оптимизацией портфеля. Т.к. как по мне, объединение активов в портфель (равномерный) улучшает результат только в случае однородных активов (акции и отраслевые индексы одной страны).
2. Зато я знаю, как оценить переподгонку на одном активе — и уже писал об этом ранее. Надо просто увеличить окно в N раз (проще всего N=2). Если подгонка даст результат больше, чем sqrt(N), к предыдущему, то это, скорее, некая закономерность. Если меньше — шум.
3. Но я в своем посте писал вообще не об этом. Попробую тезисно.
3.1. Под индикатором я понимаю не индикатор ТА, но любую функцию от предыдущих приращений цен, которая дает нам сигнал на покупку (значение положительно) или на продажу (значение отрицательно). Неважно, аналитическая это функция или кусок программы. Я называю это плоский реверсивный индикатор (или торговая система).
3.2. Любая система, которая может стоять в сквере (не покупать или не продавать) — это портфель из 2-х реверсивных систем, так что претензии в адрес реверсивных систем не принимаются — это хорошие кирпичики.
3.3. Простейшая процедура продолжения индикатора в будущее — это подгон параметров на интервале, а затем периодический (раз в день, раз в неделю) очередной подгон.
3.4. Масса успешно работающих индикаторов (например, наилучший МНК-прогноз будущего приращения цены) при такой процедуре периодической подгонки никак не улучшают свой результат.
3.5. Некоторые хитрые индикаторы при такой процедуре периодической подгонки улучшают свой результат на 30-40-50%
3.6. Пост был написан про то, что при «антиподгонке» (выбираем параметры, которые хуже всего работали на интервале обучения) некоторые индикаторы улучшают свои результаты в разы (на 100-200-300%). И это в самом деле удивительно

С уважением
avatar
Мальчик buybuy, (1) я в другом контексте натыкался на ситуацию «худший стал лучшим». Но у меня получалось, что этот эффект слишком неустойчив. 
(2) совсем не обязательно, что для построения индикатора для какого-то ценового ряда надо использовать данные именно с этого ценового ряда. Чисто навскидку. Может ли цена золота или нефти быть, при некоторой обработке индикатором для цен акций золотодобытчиков или нефтяных компаний? Имхо, стоит пробовать. 

avatar
SergeyJu, ну такое...

1. Посмотрите, плз, на 2-й из приведенных графиков. Там не только эквити красивая длиной 1900000 баров, там и E/DD практически не меняется при перемещении слева направо окна выборки. Так что результат кажется очень устойчивым.
2. Наличие хороших линейных прогнозов для будущего приращения цены (они есть) означает, что цена подчиняется чему-то вроде стохастического дифференциального уравнения (не Ито, конечно, т.к. приращения цен не образуют мартингал, скорее это интегральное СУ Стратоновича).
Вопрос: насколько очевидно, что эти уравнения будут одинаковы или похожи для нефти и нефтедобывающих компаний? Для золота и золотодобывающий компаний?

С уважением

P.S. Так то я пробовал. Но это не более, чем торговля в треугольнике активов, 2 из которых сильно коррелируют. Вместо золота и нефти могу предложить EURUSD и USDCHF. Смысл в этом есть, гигантская прибыль там не растет. Просто красивая версия портфельной задачи.
avatar
SergeyJu, может
avatar
Мальчик buybuy, добрый

1 — ложно, противоположное истинно
2 — ложно, параметры конкретного актива — не стационарны

3.2 — ложно, не обязательно реверс-система
3.5 — истинно

3.6 — тему прочёл
причины, не выделены

 
avatar

А что насчет форвард-тестов 3+1 год, там должно быть видно, как сильно скачут коэффициенты для максимизации ф-ции прибыли из года в год.

avatar
Denis, 3+1 мало. 10+1 уже лучше. Я такое делаю тоже. Результат, как по мне, не очевиден. 
Даже из логики. На интервале с 1998 года были следующие  события падений рынка. Кризис доткомов. Ипотечный кризис, перешедший банковский  2008 год. Башни близнецы. Ковид. Эти потрясения во первых все разные, во вторых происходят реже, чем раз в 3 года. 
avatar
SergeyJu, 

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

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



avatar
Sergerk, и кто-то научился торговать этот график? Сорнетте предложил некую параметрическую модель, Вы об этом? 
avatar
SergeyJu, Да, если Вы имеете в виду, что Сорнетте рассматривает явление как самоорганизующуюся систему. А в части «торговать график» — с самого начала хотел сказать — торговать не график, а состояние системы, рассчитанное на основании графика…
avatar
Sergerk, и как, получается? 
Гудылин рассказывал, что он строит как-то секретные фракталы и рассчитывает, куда должна придти цена. У меня не получается. 
avatar
SergeyJu, Гудылина читал... 
Оставляет впечатление неординарной личности. Читать интересно, но в процессе ощущается привкус неадекватности, что, в общем, бывает свойственно одаренности. Но я не поверил — идея, что фракталы на разных таймфреймах должны быть подобны, мягко говоря, не обоснована...
Возвращаясь к нашим баранам — торговать состояние системы — работаю с этим уже несколько лет. Задача не из простых — общеизвестными являются только общие принципы существования таких систем. Т.е. приходится «изобретать» какие-то способы расчета характеристик системы, а, затем, использовать их же для изучения конкретики поведения таких систем. Результаты есть, но пока скромные...
avatar
Sergerk, ну, что же Вы замолчали?




avatar
Дед Нечипор, отходил от монитора...   )))
avatar
С другой стороны, алготорговцы верят, что в ценах есть скрытые закономерности, которые позволяют строить устойчивые торговые системы.
ИМХО — ключевая фраза. Так не надо верить, надо проверять и выявлять эти закономерности в явном виде. А не заниматься мастурб оптимизацией.
avatar
Synthetic, то есть, не веря в то, что закономерности есть, не используя матаппарат, просто так вот взять и выделить? 

avatar
На kaggle.com периодически бывают задачки на поиск закономерностей в предложенных ценовых данных. Причем с солидным призовым фондом от какой-нибудь инвестиционной компании. Бывает так, что в этих данных нет никаких закономерностей ( что подтверждает подозрение в дефиците по настоящему умных людей в финансовых компаниях). Что и подтверждают получаемые  результаты. Но все равно у кого-то score выше на ничтожную величину и они получают приз...
А вот про матаппарат я ничего плохого не говорил.
avatar
Synthetic, это доказывает только одно. Ценовые данные значимо отличаются от того, с чем обычно имеют дело NN-оптимизаторы и отойти  шаблона они не могут.
Есть, конечно, вариант маловероятный. Те, кто получили сильный результат, решили сами доить свою корову и на приз не зарятся. 
avatar
Может бутстрапом?
1. Сгенерировать случайное блуждание того же кол-ва баров(можно перетасовать приращения исходного ряда)
2. Оптимизировать на нём ТС
3. Посчитать и сохранить все метрики(сортино)
4. Повторить процедуру N раз, мин. 100, лучше 1000 и более
5. По результатам будет распределение значений сортино, можно посчитать дов. интервал, СКО.
Чем сильнее отличается значение сортино на раельных данных от симуляции на случайных данных, тем сильнее данная ТС.  Например, на сколько сигм далее от центра, если система с 2 параметрами 3.5 сигмы, а с 10 — 4 сигмы, то чуть лучше(но статистически не значимо).
avatar
kostay_scr, бутстреп уничтожает скрытые связи между барами. 
avatar
SergeyJu, в этом весь смысл. Если система даёт больше, чем тест( с оптимизацией) на случайных данных, то можно оценить, насколько больше.
Бутстрап в данном случае это повторение всей процедуры N раз, чтобы получить оценку распределения результатов оптимизации некой ТС на случайных данных.
avatar
kostay_scr, в общем-то я делал что-то похожее. 
smart-lab.ru/blog/630447.php
Там же ссылка на первую часть.

avatar
SergeyJu, Да, это можно назвать и монте карло. Только вроде наоборот — там случайные системы на реальных данных. Суть в том, что получится распределение оптимизации именно реальной системы с реальными индикаторами, а не случайной. И по нему можно сравнивать разные системы, с разным кол-вом параметров и логикой.
Будет как-раз количественная оценка подгонки — результат системы, с поправкой на случайный результат(на случайных данных, без зависимостей).
avatar
Леха «my-trade», требует регистрацию, увы
avatar

SergeyJu, для чего? нажимай «Download This Paper» и открывай PDF. Или в нём не всё? Там на 34 страницы фаил, никаких регистраций не требует.

Вот, закачал себе на гугл-драйв:
drive.google.com/file/d/1hrVLz8_irCZ9Nr053PJziZ9XTp-45sjB/view?usp=sharing

Леха «my-trade», спасибо
avatar
У Прадо книжка есть на русском (2019г). Там есть глава про бэктестинг и оценку результатов.
avatar
Практически, это возможно.

Стратегия такая:
1. нормализуете цены каждого инструмента в портфеле minmax.

Нормализация min-max является одним из наиболее распространенных способов нормализации данных . Для каждого признака минимальное значение этого признака преобразуется в 0, максимальное значение преобразуется в 1, а каждое другое значение преобразуется в десятичное число от 0 до 1.

В этом кейсе минимальное значение должно быть у вас 0,25, а максимальное 0,75. Это нужно для того, чтобы будущие цены гарантированно не вышли за диапазон 0 — 1, поскольку мы тут предсказанием занимаемся.
Таким образом, сводите OHLC всех инструментов к одному диапазону.
2. И уже на таком ценовом ряде считаете все свои показатели.
3. Количественно долю переподгонки можно посчитать в таком случае, разделив число успехов на общее число вариантов.
4. Разумеется, чем больше инструментов — тем выше достоверность.
5. Всё описанное выше не сработает, если у вас 3-4-10-15 инструментов. Нужно существенно больше.
6. Радость в том, что вы ценовой диапазон любых из них можете привести к 0,25 — 0,75.

avatar

теги блога SergeyJu

....все тэги



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