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

 
mytarmailS:

У вас долго обучалась модель ? эта последняя 

Не знаю, я просто на ночь оставил компьютер включенным чтоб модель обучалась. С утра уже было готово, обучение шло не больше 7 часов, на деле наверное гораздо меньше.
 

в функции  newConfigNEAT по дефолту такие настройки

newConfigNEAT(numInputs = 14 ,numOutputs = 1,maxNumOfNodes =500 ,speciesPopulation = 50)

сейчас я на 32-ой  генерации

generation minFitness maxFitness meanFitness medianFitness
32         32   82.23862   150.0092    140.4628      145.5368
[1] "Starting simulations..."
[1] "1.59 % Finished simulation of species 1 / 44 genome 1 / 6 with fitness 146.091452597612"
[1] "3.17 % Finished simulation of species 1 / 44 genome 2 / 6 with fitness 146.091452597612"
[1] "4.76 % Finished simulation of species 1 / 44 genome 3 / 6 with fitness 146.091452597612"
[1] "6.35 % Finished simulation of species 1 / 44 genome 4 / 6 with fitness 146.091452597612"
[1] "7.94 % Finished simulation of species 1 / 44 genome 5 / 6 with fitness 146.091452597612"
[1] "9.52 % Finished simulation of species 1 / 44 genome 6 / 6 with fitness 146.091452597612"
[1] "11.11 % Finished simulation of species 2 / 44 genome 1 / 2 with fitness 145.536759116526"
[1] "12.7 % Finished simulation of species 2 / 44 genome 2 / 2 with fitness 145.536759116526"

 сколько всего должно быть этих генераций 50 или 500?

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

завершалось на 35 генерации , почему именно на 35?  хз..  спасибо Dr.Trader

и что то пошло не так, на OOS почему то еквити посчитало не до конца

а 

 
Там будет всего 36 поколений, столько, сколько раз в коде вызывается NEATSimulation.RunSingleGeneration(tradingSimulation) (1 раз таксамо, и потом 35 раз в цикле)
 
mytarmailS:

и что то пошло не так, на OOS почему то еквити посчитало не до конца

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

Как только S&P упал - вся стратегия рухнула, у меня такой-же результат был. Автору статьи или очень повезло (вряд ли), или он специально ради красивых OOS картинок перебирал разные полученные торговые модели.

 
Dr.Trader:

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

Как только S&P упал - вся стратегия рухнула, у меня такой-же результат был. Автору статьи или очень повезло (вряд ли), или он специально ради красивых OOS картинок перебирал разные полученные торговые модели.

Selection Bias for OOS. sic
 
Dr.Trader:

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

Как только S&P упал - вся стратегия рухнула, у меня такой-же результат был. Автору статьи или очень повезло (вряд ли), или он специально ради красивых OOS картинок перебирал разные полученные торговые модели.

хз, вот Vladimir Perervenko говорит что все довольно  оптимистично, да и сеть не сливает жестко сразу, как все что я раньше видел, и тренировалась сеть на даун тренде а на oos тренд валит вверх, нужно пробовать на своих данных и со своими предикторами и на меньшем тайме, но я в коде пока совсем не разбираюсь, да и учиться сеть будет наверное недели 
 
 

Ещё раз попытался в то что описал Vizard_

2 индикатора это очень мало, не могу даже найти что-нибудь подходящее. В общем получилась так себе, иллюстрация на тему "мусор на входе -> мусор на выходе".

Координаты - это значения двух индикаторов. Синий цвет - точки относящиеся к классу "купить", красный - "продать".

6 моделей тренируются на точках "Train Data", и потом используются для предсказания множества точек в координатах (-2;-2)->(2;2), видно как именно модели запомнили данные, и что получилось на предсказании на новых для модели координатах.


 
Dr.Trader:

Ещё раз попытался в то что описал Vizard_

2 индикатора это очень мало, не могу даже найти что-нибудь подходящее. В общем получилась так себе, иллюстрация на тему "мусор на входе -> мусор на выходе".

Координаты - это значения двух индикаторов. Синий цвет - точки относящиеся к классу "купить", красный - "продать".

6 моделей тренируются на точках "Train Data", и потом используются для предсказания множества точек в координатах (-2;-2)->(2;2), видно как именно модели запомнили данные, и что получилось на предсказании на новых для модели координатах.


Красиво, и познавательно.. спасибо  вам за это

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

 Dr.Trader по моему мнению вся проблема в том что мы пытаемся заставить МО разделить на классы всю выборку, а что если объективно разделить можно только ~3% от выборки, а мы говорим нет МО ты могуч давай разделяй все, мне пофиг :) , вот он и разделяет неразделимое с известным результатом...

Понимаете? мы пытаемся разделить всю выборку на классы бай и сел, и тем самым мы хотим предсказать абсолютно каждое движение на рынке, но наши предикторы на столько галимые что объективно могут предсказать только  ~3% от всех движений, так что нам нужно? нам нужно попытаться забрать хотя бы эти 3% а все остальное неразделимое просто выкинуть потому что это и есть тот самый мусор на входе/шум который надо отсеять/причина переобучения итп... называйте как хотите, все будет правильно...

Пока я еще не написал как это вижу я, может у кого то есть предложения как делать такую селекцию?  

p.s. Саныч прошу,только не надо опять про РСА рассказывать, это вооообще не то пальто ;) 

 
mytarmailS:

Красиво, и познавательно.. спасибо  вам за это

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

 Dr.Trader по моему мнению вся проблема в том что мы пытаемся заставить МО разделить на классы всю выборку, а что если объективно разделить можно только ~3% от выборки, а мы говорим нет МО ты могуч давай разделяй все, мне пофиг :) , вот он и разделяет неразделимое с известным результатом...

Понимаете? мы пытаемся разделить всю выборку на классы бай и сел, и тем самым мы хотим предсказать абсолютно каждое движение на рынке, но наши предикторы на столько галимые что объективно могут предсказать только  ~3% от всех движений, так что нам нужно? нам нужно попытаться забрать хотя бы эти 3% а все остальное неразделимое просто выкинуть потому что это и есть тот самый мусор на входе/шум который надо отсеять/причина переобучения итп... называйте как хотите, все будет правильно...

Пока я еще не написал как это вижу я, может у кого то есть предложения как делать такую селекцию?  

p.s. Саныч прошу,только не надо опять про РСА рассказывать, это вооообще не то пальто ;) 

Я же ранее описывал свой подход по разделению на 3 класса (sell, забор, buy). К классу "забор" относятся все случаи, которые противоречат друг другу или не могут быть разделены по классам buy и sell. Получается как раз 3-10% приходятся на buy и sell. Прелесть этого подхода в том, что при работе на незнакомых данных (реал) со временем сеть перестаёт распознавать рыночные ситуации, начинает всё чаще относить их к "забор", то есть постепенно перестаёт торговать. Это лучше во сто крат, чем начинать ошибаться со входом всё больше и больше со временем.

Но всё без толку, никому не надо, никто не слушает.  

Причина обращения: