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

 
Aleksey Vyazmikin:

Что именно пересчитывать?

Как обычно в портфеле - веса (активов, систем). В вашем случае это могут быть, например, 0 - виртуальная торговля по сигналу листа, 1 - реальная и можно добавить -1 - переворот сигнала. Каждый портфель соответствует вектору длиной в число листов из 0, 1 или -1. Оптимизация идёт, например, за каждый последний месяц по прибыли со штрафами за просадку и объём портфеля. 

 
Maxim Dmitrievsky:

датасет разбить на равные участки, допустим 5 штук

объединить 1,3,4 и обучить на них основную модель

объединить 2,5. Прогнать на них 1-ю модель, получить результаты.

Обучить 2-ю модель на этих 2,5 на результатах 1-й, скорректировать убыточные сделки.

прогнать обе модели на всем датасете и новых данных и посмотреть результат

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

 
Aleksey Nikolayev:

Как обычно в портфеле - веса (активов, систем). В вашем случае это могут быть, например, 0 - виртуальная торговля по сигналу листа, 1 - реальная и можно добавить -1 - переворот сигнала. Каждый портфель соответствует вектору длиной в число листов из 0, 1 или -1. Оптимизация идёт, например, за каждый последний месяц по прибыли со штрафами за просадку и объём портфеля. 

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

 
Maxim Dmitrievsky:

Вроде починил тестер, никуда не подглядывает, результаты:

EURUSD train+valid, 10k баров


EURUSD тест 50k баров

Та же модель, обученная на EURUSD, но тест на GBPUSD, 50к баров

Та же модель на USDCHF

Ну вроде есть смысл. Есть тенденция к росту, так сказать )

Может чего-то не учел, но, с ходу, явно лучше чем лес алглиб (хотя туда я добавлял еще много чего для улучшения)

Бегает бодро, сигналов много, можно пробовать делать портфель. А временной диапазон то какой выборки?

 
Aleksey Vyazmikin:

Бегает бодро, сигналов много, можно пробовать делать портфель. А временной диапазон то какой выборки?

полтора года на 15-минутках примерно

ну это пробник, надо убирать просадки и все остальное, чем и займусь

 
Maxim Dmitrievsky:

полтора года на 15-минутках примерно

ну это пробник, надо убирать просадки и все остальное, чем и займусь

Кажется, что сделок очень много, как бы спред все не отъедал... в любом случае, потенциал есть - удачи!

 

Решил немного посмотреть динамику изменения метрических показателей моделей при расщеплении, взял 1, 20 и 48 шаг (последний обработанный), получилась такая сводная таблица.

Показатели с выборки, на которой производилось обучение.

Результаты мне кажутся интересными, во первых стоит обратить внимание, что работа ведется с деревьями, дающими Accuracy всего 52%-53%, что как бы очень мало для модели в целом.Однако, вся модель нас мало интересует, ведь для трейдинга важней войти в нужном направлении, чем пропустить вход, а значит нас должна интересовать в первую очередь точность классификации и тут видно, что точность классов "-1" и "1" в определенной момент достигла значения на 4% и 3% больше, чем в изначальном варианте, а класс "0" утратил точность всего на 1-2%, однако в то же время сокращается полнота классов "-1" и "1", но растет вместе с этим полнота класса "0".

На данном этапе примерно из выборки убрано 10% корневых предикторов - на каждом шаге по одному, однако модель не развалилась и даже отдельные, важные для нас показатели, стали лучше.

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

Ну и как я ранее показал, дерево по листьям, и мой метод отбора по листьям, повышает точность классификации на выборке обучения, по сравнению с обычной моделью, на 20%-25%.

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

 
Aleksey Vyazmikin:

Решил немного посмотреть динамику изменения метрических показателей моделей при расщеплении, взял 1, 20 и 48 шаг (последний обработанный), получилась такая сводная таблица.

Показатели с выборки, на которой производилось обучение.

Результаты мне кажутся интересными, во первых стоит обратить внимание, что работа ведется с деревьями, дающими Accuracy всего 52%-53%, что как бы очень мало для модели в целом.Однако, вся модель нас мало интересует, ведь для трейдинга важней войти в нужном направлении, чем пропустить вход, а значит нас должна интересовать в первую очередь точность классификации и тут видно, что точность классов "-1" и "1" в определенной момент достигла значения на 4% и 3% больше, чем в изначальном варианте, а класс "0" утратил точность всего на 1-2%, однако в то же время сокращается полнота классов "-1" и "1", но растет вместе с этим полнота класса "0".

На данном этапе примерно из выборки убрано 10% корневых предикторов - на каждом шаге по одному, однако модель не развалилась и даже отдельные, важные для нас показатели, стали лучше.

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

Ну и как я ранее показал, дерево по листьям, и мой метод отбора по листьям, повышает точность классификации на выборке обучения, по сравнению с обычной моделью, на 20%-25%.

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

так у вас логлосс ~1, т.е. модель вообще в афиге от происходящего

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

класс "не делать нифига" явно несбалансирован относительно других, о чем выше и писал, что может быть такая проблема из-за 3-класс модели. Остальные показатели то удручающие

 
Aleksey Vyazmikin:

Показатели с выборки, на которой производилось обучение.

А на выборке вне обучения что? Следующие полгода например?

 
Maxim Dmitrievsky:

так у вас логлосс ~1, т.е. модель вообще в афиге от происходящего

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

Maxim Dmitrievsky:

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

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

Maxim Dmitrievsky:

класс "не делать нифига" явно несбалансирован относительно других, о чем выше и писал, что может быть такая проблема из-за 3-класс модели. Остальные показатели то удручающие

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