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

 
mytarmailS #:
Чего готового нет? 

Привязки к графику котировки.

 
СанСаныч Фоменко #:

Привязки к графику котировки.

ну торговля то хоть какая велась? или все на уровне тестов в р-ке?

 
mytarmailS #:

ну торговля то хоть какая велась? или все на уровне тестов в р-ке?

Только R

 

я в МО далеко не профи, поэтому хотелось бы узнать как можно решить одну задачу. 

как известно, для перевода температуры из Фаренгейта в Цельсия используется стандартная формула: C = (F-32)*5/9 

градиентный бустинг показывает отличные результаты в выборке in-sample, но за ее пределами ошибка сразу увеличивается. 

почему? ведь формула очень простая. что тогда говорить о сложной связи на валютном рынке)

как сделать так, чтобы этот алгоритм показывал хорошие результаты на OOS?

 
Evgeni Gavrilovi #:

я в МО далеко не профи, поэтому хотелось бы узнать как можно решить одну задачу. 

как известно, для перевода температуры из Фаренгейта в Цельсия используется стандартная формула: C = (F-32)*5/9 

градиентный бустинг показывает отличные результаты в выборке in-sample, но за ее пределами ошибка сразу увеличивается. 

почему? ведь формула очень простая. что тогда говорить о сложной связи на валютном рынке)

как сделать так, чтобы этот алгоритм показывал хорошие результаты на OOS?

Нужно нормировать все данные в диапазон, либо оос из того же диапазона значений взять 

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

Разве не лучший выход - оптимизировать в тестере стратегий количество нейронов, слоёв и видов функций (в первых одни, в последнем - другие) активации? А в качестве изменения весов использовать обратное распространение ошибки?

Решил проверить идею. Однослойная сеть (количество слоёв не умею расширять), функция тангенс (не умею менять) у нейронов, на выходе функции нет (не умею ставить). Обратное распространение ошибки. обучаемый период: год - 2021/08/01—2022/08/01

Оптимизация заключалась в подборе следующих параметров:

- количество входных данных (циклом посылал на вход запрашиваемое количество разниц цен закрытия N0-N1, можно и другое, но руки не дошли) - от 1 до 999 (больше переменная массива не дала сделать), шаг 1.
- количество нейронов - от 1 до 99 999 (не смейтесь), шаг 1. 
- количество сетов (Bar++[количество входных данных]) - 9 999, шаг 1. Поскольку обучение производилось на часовом графике, то в году 6500 баров. В итоге почти до полутора года, думаю, нормально. 
- коэффициент обучения на выходе : от 0 до 1 с шагом 0.00001. 
- коэффициент обучения на входе: от 0 до 1 с шагом 0.00001
- количество эпох - от 1 до 1000, шаг 1. 


Так вот, сразу скажу про количество эпох - не получилось что-то изменить, что 1-на эпоха, что 1000, разницы особо не заметил, наверное какие-то ошибки есть. 

НО! Интересные наблюдения:

- чем больше количество нейронов, тем больше сделок (почти каждую свечку, если они прогнозируются в разные направления)
- коэффициент обучения на входе в первой 10-ке лучших результатов чаще всего близится к 0.7
- коэффициент обучения на выходе в первой 10-ке лучших результатов чаще всего близится к 0.07
- самые лучшие результаты показывает формула: кол-во входных данных < количество нейронов < количество сетов. Самый лучший результат (насколько хватило терпения ждать) было примерно так: около 200 входных данных, около 300 нейронов и около 400 сетов. Почему лучший результат? Потому что на бэктесте - волнообразный планомерный рост, на форварде 2 месяца -  волнообразный планомерный рост и... на периоде перед бэктестом около 2-х месяцев -  волнообразный планомерный рост.

Ради интереса 99 999 нейронов - 50 на 50, но, закономерно - самая высокая прибыль - или самая высокая просадка. При этом, кол-во входов делал не больше 100, кол-во сетов - не больше 100. Ждать долго. Но, неизвестно, что показали бы результаты с 1000 входными данными и 1000 сетами, либо 10 000. 
 
Evgeni Gavrilovi #:

я в МО далеко не профи, поэтому хотелось бы узнать как можно решить одну задачу. 

как известно, для перевода температуры из Фаренгейта в Цельсия используется стандартная формула: C = (F-32)*5/9 

градиентный бустинг показывает отличные результаты в выборке in-sample, но за ее пределами ошибка сразу увеличивается. 

почему? ведь формула очень простая. что тогда говорить о сложной связи на валютном рынке)

как сделать так, чтобы этот алгоритм показывал хорошие результаты на OOS?

Учить АМО надо на трейн выборке,  а выбирать нужно модель по тест выборке.. 
Гугли кроссвалидация
 
СанСаныч Фоменко #:

Только R

Тогда есть вероятность ошибки в коде,  нужно делать тесты либо с реал котировками либо симулировать... 

У меня вот совсем недавно было, признак заглядывал на +1 бар, совсем не явная была ошибка, пол часа разбирался.. 
 
Ivan Butko #:
Постоянно удивлялся, почему веса подбираются в тестере стратегий? Это же подгонка... 

Разве не лучший выход..... 
И первое и второе есть подгонка,  она же поиск неизвесных параметров, она же оптимизация
 И не важно что ты подбираешь,  веса, кол. Нейронов,  фун. Активации,  кол.  Яблок в корзине
 
mytarmailS #:
И первое и второе есть подгонка,  она же поиск неизвесных параметров, она же оптимизация
 И не важно что ты подбираешь,  веса, кол. Нейронов,  фун. Активации,  кол.  Яблок в корзине

Грусть приходит после этих слов. Не уж то жить с этим.. че делать то

Вроде основные варианты, куда еще смотреть...
Причина обращения: