Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 2121
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Максим, а можете сравнить, где скорость обучения больше, на питоне или в консольной версии CatBoost?
Странно... Ладно, я еще посмотрю эту тему - потом отпишусь.
Сначала высказался из воспоминаний и оказался не прав.
Проверил только что с кросс валидацией. Время все таки дает прирост на 1-2% на новых данных. При том что всего преобладание успешных предсказаний над неуспешными около 5% при ТП=СЛ. Т.е. от 10 до 30% вклада в успех идет от времени.
Впрочем это проверка на 2-х месячном куске истории. На другом участке все может измениться.Время подаю в виде косинуса и синуса. Это обсуждалось тут https://www.mql5.com/ru/forum/212376#comment_5983502
Просто в виде 0...5 (день недели) или 0...23 (час) или 0...59 (минута) подавать тоже можно, но как категориальную переменную.
Синус и косинус - это уже числовые, любой алгоритм примет.
есть относительно новое направление, называется active learning. Которое может само размечать данные наилучшим образом. Вроде как для моего подхода годится (случайный семплинг). Пока не углублялся
https://libact.readthedocs.io/en/latest/overview.html
https://medium.com/towards-artificial-intelligence/how-to-use-active-learning-to-iteratively-improve-your-machine-learning-models-1c6164bdab99
По ходу плывут частоты и возможно фазы.. Амплитуды держаться ...
Вот прогноз на 500 точек подогнаной модели на истории 10к из 4 гармоник
Видно что прогноз актуален все 500 точек, но плывут частоты, причем плывут по непонятному алгоритму
и это еще наглядный пример, бывает вообще жесть
На приращениях пробовал?
" Одним из полезных свойств ряда приращений является большая устойчивость спектра по сравнению с исходным процессом. " .Это Goodman пишет.
Время подаю в виде косинуса и синуса. Это обсуждалось тут https://www.mql5.com/ru/forum/212376#comment_5983502
Просто в виде 0...5 (день недели) или 0...23 (час) или 0...59 (минута) подавать тоже можно, но как категориальную переменную.
Синус и косинус - это уже числовые, любой алгоритм примет.
Можете функцию конвертации времени в синус\косинус опубликовать? Я бы так же попробовал этот метод. В статье, что я опубликовал, там значимым предиктором оказался порядковый номер часа. Интересно, подходит ли этот метод для деревянных моделей или больше для нейросетей.
На приращениях пробовал?
" Одним из полезных свойств ряда приращений является большая устойчивость спектра по сравнению с исходным процессом. " .Это Goodman пишет.
нет
Интересно, подходит ли этот метод для деревянных моделей или больше для нейросетей.
а если просто подумать, разве ответ не очевиден?
Можете функцию конвертации времени в синус\косинус опубликовать? Я бы так же попробовал этот метод. В статье, что я опубликовал, там значимым предиктором оказался порядковый номер часа. Интересно, подходит ли этот метод для деревянных моделей или больше для нейросетей.
//день недели, час = ввести через 2 предиктора sin и cos угла от полного цикла 360/7, 360/24
if(nameInd[nInd]=="Hour") {CopyTime (sim,per,startDt,n_bar+1,dtm);TimeToStruct(dtm[0],dts);ArrayResize(tmp,1);tmp[0]=(double)(dts.hour*60+dts.min)*360.0/1440.0;tmp[0]=(buf==0?MathSin(tmp[0]*pi/180.0):MathCos(tmp[0]*pi/180.0));}// для увеличения точности добавлены минуты 360/24 = 360/24/60 = 360/1440
if(nameInd[nInd]=="WeekDay") {CopyTime (sim,per,startDt,n_bar+1,dtm);TimeToStruct(dtm[0],dts);ArrayResize(tmp,1);tmp[0]=(double)(dts.day_of_week*1440+dts.hour*60+dts.min)*360.0/10080.0;tmp[0]=(buf==0?MathSin(tmp[0]*pi/180.0):MathCos(tmp[0]*pi/180.0));}// для увеличения точности добавлены часы и минуты 360/7 = 360/7/24/60 = 360/10080
По коду, если buf==0, то в него синус, иначе ( buf==1 ) косинус.
Деревянные модели все переваривают.
Синус и косинус для НС хороши тем, что уже нормированы к -1...+1
Если этот вариант сравните с нумерованным временем - отпишитесь что лучше. Что-то мне кажется что должно на 100% совпадать, если подать день недели, час и минуту.