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

 
Aleksey Vyazmikin:

Так CatBoost обучается на тесте, по их системе наименований выборок - ничего не напутали?

в смысле вообще новые данные, другой кусок истории. На трейне то так и должно быть примерно, а тест смутил. Может подглядывает где-то тестер

лес у меня обучается с 0.6-0.7 ошибка на примерно таких же данных и на трейне то же самое показывает, а тест не всегда хороший и почти всегда хуже трейна. Ошибка у буста получилась примерно такая же, но тест больно хорош, такого не бывает

у вас как успехи, намайнили листьев?
 
Maxim Dmitrievsky:

в смысле вообще новые данные, другой кусок истории. На трейне то так и должно быть примерно, а тест смутил. Может подглядывает где-то тестер

лес у меня обучается с 0.6-0.7 ошибка на примерно таких же данных и на трейне то же самое показывает, а тест не всегда хороший и почти всегда хуже трейна. Ошибка у буста получилась примерно такая же, но тест больно хорош, такого не бывает

у вас как успехи, намайнили листьев?

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

У меня результаты не очень меня радуют. Листья то я собрал прилично, но дальше встает вопрос - как их лучше заставить работать друг с другом. Дело в том, что часто они перекрываеют друг друга на 20%-50% и более процентов, и соответственно получается, что дают одинаковый сигнал, что не очень хорошо. Идея в том, что б их сгруппировать и делать на каждой группе порог активации - вот и думаю, как это лучше сделать.

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

Первый скрин без дерева, а второй с деревом. Период март-сентябрь текущего года.

 Конечно, кривая баланса не очень привлекательна, но это трендовая стратегия, суть которой не сливать во флете больше, чем зарабатывается в тренде, а рынок (Si) пока весь год флэтовал с редкими сильными движениями. Видно, что добавление дерева улучшило относительные показатели, сделаю чуть позже и для продажи такое же, если результат будет положителен, то это будет часть модели.

Вопрос отбора листьев до конца не решен, даже выбирая листья, что показывали хорошие результаты на каждом из 5 лет можно ожидать, что процентов 20%-40% перестанут работать, что ещё более печально, так это невозможность понять, стоит их отключать или нет - специально по кварталам делал тест, получилось, что убыточные в прошедшем квартале листья в последующих кварталах перекрывают убыток (многие).

Сам метод отбора листов кажется перспективным, но крайне медленно происходит процесс.

 
Aleksey Vyazmikin:

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

У меня результаты не очень меня радуют. Листья то я собрал прилично, но дальше встает вопрос - как их лучше заставить работать друг с другом. Дело в том, что часто они перекрываеют друг друга на 20%-50% и более процентов, и соответственно получается, что дают одинаковый сигнал, что не очень хорошо. Идея в том, что б их сгруппировать и делать на каждой группе порог активации - вот и думаю, как это лучше сделать.

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

Первый скрин без дерева, а второй с деревом. Период март-сентябрь текущего года.

 Конечно, кривая баланса не очень привлекательна, но это трендовая стратегия, суть которой не сливать во флете больше, чем зарабатывается в тренде, а рынок (Si) пока весь год флэтовал с редкими сильными движениями. Видно, что добавление дерева улучшило относительные показатели, сделаю чуть позже и для продажи такое же, если результат будет положителен, то это будет часть модели.

Вопрос отбора листьев до конца не решен, даже выбирая листья, что показывали хорошие результаты на каждом из 5 лет можно ожидать, что процентов 20%-40% перестанут работать, что ещё более печально, так это невозможность понять, стоит их отключать или нет - специально по кварталам делал тест, получилось, что убыточные в прошедшем квартале листья в последующих кварталах перекрывают убыток (многие).

Сам метод отбора листов кажется перспективным, но крайне медленно происходит процесс.

да, мульен на таком не заработаешь по быстрому, жаль

сделок очень мало, нерепрезентативно получается. И отфильтровать бы убыточные, они ведь все ранон не нужны
 
Maxim Dmitrievsky:

да, мульен на таком не заработаешь по быстрому, жаль

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

Да, тут как раз проблема в том, что на каждый сигнал листа выделяется 1 лот, соответственно если много листьев активировалось, то больше лотов надо - тут 71 лот бывает, но очень редко, а если держать деньги под 71 лот постоянно, то всего получится 25% годовых - ГО на бирже большое же, а это Si.

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

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

Не смотря на все недостатки, система не слилась на протяжении почти года, что может и говорит о верном направлении.

 
Aleksey Vyazmikin:

Да, тут как раз проблема в том, что на каждый сигнал листа выделяется 1 лот, соответственно если много листьев активировалось, то больше лотов надо - тут 71 лот бывает, но очень редко, а если держать деньги под 71 лот постоянно, то всего получится 25% годовых - ГО на бирже большое же, а это Si.

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

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

Не смотря на все недостатки, система не слилась на протяжении почти года, что может и говорит о верном направлении.

можно обучить 2-. модель поверх первой, на тех же фичах. Но только она будет просто корректировать входы по эквити, т.е. запрещать\разрешать торговать. По крайней мере лишних сделок не будет, дальше уже тесты

 
Maxim Dmitrievsky:

можно обучить 2-. модель поверх первой, на тех же фичах. Но только она будет просто корректировать входы по эквити, т.е. запрещать\разрешать торговать. По крайней мере лишних сделок не будет, дальше уже тесты

Или что-то на вроде портфеля из систем-листов со скользящим пересчётом.

 
Maxim Dmitrievsky:

можно обучить 2-. модель поверх первой, на тех же фичах. Но только она будет просто корректировать входы по эквити, т.е. запрещать\разрешать торговать. По крайней мере лишних сделок не будет, дальше уже тесты

Не совсем понял, как предлагаете менять целевую - сейчас же по сути и так у меня 3 целевые - покупка/продажа/не торговать. И, я отбираю листы на покупку/продажу, а потом к каждому такому листу ищу фильтр из листов "не торговать", аж 3 штуки (для некоторых этого достаточно, для некоторых мало - проводил тесты). После результатов этих пар - активационный лист + лист-фильтр, я ещё по итоговому сигналу построил дерево, которое учло ответы всех листьев и их взаимоисключение, т.е. получился дополнительный фильтр.

Вот дерево

Хочу вместо дерева попробовать модель на CB, может там обобщение всех используемых листов будет лучше, хотя и тут точность повышается на 1%, что конечно не много, но результат положительный.

 
Aleksey Vyazmikin:

Не совсем понял, как предлагаете менять целевую - сейчас же по сути и так у меня 3 целевые - покупка/продажа/не торговать. И, я отбираю листы на покупку/продажу, а потом к каждому такому листу ищу фильтр из листов "не торговать", аж 3 штуки (для некоторых этого достаточно, для некоторых мало - проводил тесты). После результатов этих пар - активационный лист + лист-фильтр, я ещё по итоговому сигналу построил дерево, которое учло ответы всех листьев и их взаимоисключение, т.е. получился дополнительный фильтр.

Вот дерево

Хочу вместо дерева попробовать модель на CB, может там обобщение всех используемых листов будет лучше.

Ну начать следует с теории. Например, какой смысл отбирать модели отдельно на продажу и на покупку?

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

Смысл второй модели заключается в том, что у 1-й будут ошибки 1-го и 2-го рода - false positive и false negative. Нас интересует убрать их. Для этого на вход 2-й модели подаете те же фичи, а на выход результат торговли первой модели, где 0 - сделка была прибыльной, 1 - сделка была убыточной. Обучаете второй классификатор и торгуете только тогда, когда он показывает 0, т.е. фильтрует сигналы 1-й модели. Убыточные сделки почти исчезнут на трейне, на тесте надо тестировать - это раз.

Можно обучать вторую модель не только на трейне, но и захватить ООС, тогда она скорректирует сделки и на новых данных - это два. Ну и потом тесты.

Можно разбить выборку на фолды, и обучать модели в шашечном порядке, через определенные куски. Например, 5 фолдов. Первая модель обучается сразу на 1,3,4 фолдах. Вторая корректирующая модель на 2,5. Это еще улучшит генерализацию.
 
Aleksey Nikolayev:

Или что-то на вроде портфеля из систем-листов со скользящим пересчётом.

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

 
Aleksey Nikolayev:

Или что-то на вроде портфеля из систем-листов со скользящим пересчётом.

тогда это мультикласс. Сделать 2-ю модель, которая будет выбирать каким листом в данный момент торговать лучше. Преимущества неочевидны и сложнее сделать.

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