Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 3169

 
fxsaber #:

Сталкивался с ситуациями, когда такой "никчемный" сет показывал великолепные ситуации через несколько месяцев.

Как будто на рынке есть рубильник включать/выключать долгосрочные стабильные рыночные закономерности.

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

Если вдруг найдется еще какой то признак, кроме графика, соответствия модели, то это уже хорошее подспорье)))

 
fxsaber #:

Такую картину видел почти каждый пользователь тестера. Мне интересно объяснение.

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

Если увидите ТОТ ЖЕ ефект(направленный слив на ООС) - то это ефект подгонки/переобучения вашей ТС/МО

Если же на ООС вы получите прибыль как на обучении, то значит этот ефект (направленный слив на ООС) присущь только  рынкам и дальше можно строить гипотезы

Имхо естественно.. 
 
fxsaber #:

Такую картину видел почти каждый пользователь тестера. Мне интересно объяснение.

На этой картинке просто стат. значимость нехилая: больше 3000 непересекающихся позиций.

Предполагаю, что это эффект изменения рынка внутри самого Sample. Например, в Sample вначале была реальная закономерность, а затем - ничего не было. Но подгонка произошла под весь Sample.

Надо как-то избегать таких сломов внутри Sample.


Бывает и обратный эффект: слева OOS - слив, справа - вверх. Т.е. в начальном куске Sample не было нащупана закономерность, а только подгонка.

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

Обычно пробую немного "пошевелить" задачу - слегка поменять все возможные параметры (и доступные метапараметры) и посмотреть как меняется результат. Иногда становится немного яснее.

 
mytarmailS #:
Если же на ООС вы получите прибыль как на обучении, то значит этот ефект (направленный слив на ООС) присущь только  рынкам и дальше можно строить гипотезы

Видно, что слева проходит OOS?

 
fxsaber #:

Видно, что слева проходит OOS?

Мы говорим про ефект справа

Полностью продублируйте експеримент но на синтетических данных


======================================

 OOS слева это тоже подгонка, только как бы второго порядка


представьте что у вас есть всего 1000 вариантов ТС, вообще


вашы шаги 1 и 2

1) Вы начинаете оптимизировать/искать   хорошую ТС , это трейн данные (подгонка/поиск/оптимизация)

допустим вы нашли 300 вариантов где ТС зарабатывает..

2) Теперь вы ищете ТС из этих 300 вариантов  которая пройдет  OOS это тест данные. Вы нашли скажем 10 ТС которые зарабатывают и на трейне и на тесте ( OOS )


Так что такое п.2 ?

Это  - то же самое продолжение подгонки , только ваш поиск  (подгонка/поиск/оптимизация)  стал немного глубже или сложней, потому что теперь у вас не одно условие оптимизации (пройти трейн), а два (проти тест + пройти трейн)

 
fxsaber #:

Такую картину видел почти каждый пользователь тестера. Мне интересно объяснение.

На этой картинке просто стат. значимость нехилая: больше 3000 непересекающихся позиций.

Предполагаю, что это эффект изменения рынка внутри самого Sample. Например, в Sample вначале была реальная закономерность, а затем - ничего не было. Но подгонка произошла под весь Sample.

Надо как-то избегать таких сломов внутри Sample.


Бывает и обратный эффект: слева OOS - слив, справа - вверх. Т.е. в начальном куске Sample не было нащупана закономерность, а только подгонка.

ООС всегда должна быть СПРАВА. 

Если ООС СЛЕВА, то невозможно гарантировать, что ТС НЕ переобучена и НЕ заглядывает вперед . Это первые главные проблемы, которые надо решать при тестировании ТС ДО всего остального.


Какая из них у Вас? Да какая разница! То, что либо одна из них либо обе - не имеет значения. Надо правильно тестировать и баста - ООС справа.

А лучше забыть про тестер и файлы для тестирования формировать следующим образом:


Имеем два файла.


Первый файл делим случайно выборкой по  sample на три части: обучения, тестирования и валидации. Учим на выборке (случайной) обучения, потом проверяем на  случайной выборке тестирования и валидации  - это все РАЗНЫЕ куски первого файла. Сравниваем результат. Примерно равны, то проверяем на втором файле "естественной последовательности". Если и здесь примерно равны, то получаем главный вывод: наша ТС НЕ переобучена и НЕ заглядывает вперед. Только имея этот вывод имеет смысл рассуждать о чем угодно еще: точности, прибыльности и прочем, все это ВТОРИЧНО.


Замечу, что других способов  проверки на заглядывание вперед и переобучение фактически нет. 

 
fxsaber #:

Вот такая ерунда бывает. Слева OOS проходит, справа - нет. Причем справа буквально сразу "ныряет".


Чаще всего такое.

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


Такое ощущение, что если после оптимизации запустить перевернутую ТС, то можно даже не слить.

P-hacking (или data-dredging) - это статистическая практика, при которой исследователь анализирует данные до тех пор, пока не найдет статистически значимый результат. Он может изменять параметры анализа, выбирать только определенные данные или проводить множественные сравнения, чтобы найти значимые связи или различия в данных. Это может привести к ложно-положительным результатам и искажению научных выводов. P-hacking является формой научной недобросовестности и может привести к неправильным рекомендациям и решениям на основе ложных предпосылок.


***как Вы правильно подметили, бывает и обратный эффект 
 
fxsaber #:

Видно, что слева проходит OOS?

Если уменьшить период обучения, то так же быстро произойдет перелом тенденции графика?

Мало что знаю про тиковые стратегии, но один из факторов такого поведения - отсутствие сопоставимых данных при обучении, к примеру - на обучении был в основном тренд вниз на каком то TF.

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

Возможна ситуация - дрейф данных и смещение распределения вероятностного исхода для фильтра/листа.

К примеру, когда я отбираю квантовые отрезки на выборке для обучения, и потом оцениваю их распределение (процент правильных и не правильных откликов на целевую 0||1) на двух других выборках, то отвечающих критерию стабильности на 3х выборках выявляется в пределах 25%-30% - понятно, что при таком раскладе модель имеет больше шансов выбрать нестабильный предиктор, который перестанет работать на одном из участков.

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

 
fxsaber #:

Видно, что слева проходит OOS?

а если сдвигать начало тестирования ещё назад? как долго система остаётся прибыльной?

я встречался с подобным поведением системы, когда на OOS справа происходит резкий слив, не думаю что это связано прям с резким 180 градусным разворотом найденных рыночных закономерностей (это бы свидетельствовало о причинах мистического характера, применений практик вуду и вообще чего угодно скорее, чем о каких то реальных проблемах наподобие переобучения или подгонки, ведь это по крайней мере странно, когда резкий слив происходит всегда именно после окончания обучения). обычно это связано с какими то ошибками в коде являющимися причиной ложно-положительных (или ложно-отрицательных) результатов как сказал выше Макс, исправление которых приводит к случайному поведению на ООS справа в худшем случае (переобучение) или постепенному угасанию прибыльности в лучшем случае (затухание найденных закономерностей и/или их постепенной сменой).

 
Andrey Dik #:

а если сдвигать начало тестирования ещё назад? как долго система остаётся прибыльной?

я встречался с подобным поведением системы, когда на OOS справа происходит резкий слив, не думаю что это связано прям с резким 180 градусным разворотом найденных рыночных закономерностей (это бы свидетельствовало о причинах мистического характера, применений практик вуду и вообще чего угодно скорее, чем о каких то реальных проблемах наподобие переобучения или подгонки, ведь это по крайней мере странно, когда резкий слив происходит всегда именно после окончания обучения). обычно это связано с какими то ошибками в коде являющимися причиной ложно-положительных (или ложно-отрицательных) результатов как сказал выше Макс, исправление которых приводит к случайному поведению на ООS справа в худшем случае (переобучение) или постепенному угасанию прибыльности в лучшем случае (затухание найденных закономерностей и/или их постепенной сменой).

А если у ТС много параметров или она очень хорошо подогнана, то свалы всегда резкие. Потому что она работала "на тоненького". Большое кол-во параметров приводит к нарастанию ошибок, они суммируются. Если даже просто огрубить ТС и сделать меньше параметров, она уже не такая красивая в тестере, но сваливается более плавно.

Можно привести аналогию с кочергой при мартингейле. Там большое кол-во нетудашных позиций. Заменить это на большое кол-во нетудашних параметров или еще чего-то. Результат такой же.

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