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

 
Dr. Trader:

Для последнего файла у меня так вышло с деревом :

2016, тренировка


y_pred

y_true-101
-113392388444472
010803767146029
17413376787415


2015, тест:


y_pred

y_true-101
-19552392625429
011495721317509
18581403776835

при предсказании "-1": -1 фактически будет встречаться немного чаще чем 1. Но 0 будет чаще всех, и наверное это всё закончится убытками. Аналогично для класса "1".


С деревом вышла беда. Генетика выбрала параметр дерева ср = 0, а это даёт дереву разрешение на кучу ветвей. Неудачно вышло, нужно было ограничить этот параметр каким-то малым ненулевым значением.

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

Dr. Trader:

Я думаю что в данных недостаточно предикторов для классификации "0". Нужны какие-то индикаторы флэта например. 

В общем плохо с деревом. У СанСаныча с лесом вот гораздо круче вышло. 


Плохие настройки модели, и как следствие - переобучение.

Он брал только один файл 2016 год (кстати в 2015 на 1 предиктор меньше оказалось - я исправил, могу перезалить), и в этом 2016 году был тренд вверх!

Дерево цепляется на данные с верхних ТФ, а по ним по сути статистики мало и из-за этого может происходить казун на истории, когда сменяется глобальный вектор движения (2015 вверх, а 2016 вниз) или наступает тотальный флэт (2017 год).

Насчет флэта, у нас получаются целевые которые отрабатывают вход в рынок как из флэта, так и на разворот, может попробывать их разделить каким то образом?

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

 

Вы же там прибыльного робота сделали :)

Вход в лонг будет только при предсказании "1" (синеньким цветом), из них в >90% будет прибыль (зелёненькое).
Вход в шорт - только при предсказании "-1" (красненьким), из них опять >90% будет прибыль (зелёненькое).
Предсказания "0" означают не открывать новые позиции и ждать лучшего времени, так что вообще неважно какая там фактическая точность пре предсказании такого класса.

Но лучше например обучить лес на файле 2015 года, и проверить на файле 2016 года. Там только одной колонки нехватает в 2015, её нужно и из 2016 года удалить чтоб rattle не путалось.

 
Aleksey Vyazmikin:

Можно ли рисунок представить в виде вероятностей, как раньше?

Нет, это другой режим обучения дерева, подходит только для 2 классов. Или для регрессии.

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

Какая там крутизна - переобучение и больше ничего, у него нет НИ одного предиктора, который бы относился к его целевой переменной - сплошной шум. Причем сидит в rattle и вместо того чтобы проверить на шум, выкладывает здесь файлы с мусором.

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

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

 
Aleksey Vyazmikin:

Дерево цепляется на данные с верхних ТФ, а по ним по сути статистики мало и из-за этого может происходить казун на истории, когда сменяется глобальный вектор движения (2015 вверх, а 2016 вниз) или наступает тотальный флэт (2017 год).

Насчет флэта, у нас получаются целевые которые отрабатывают вход в рынок как из флэта, так и на разворот, может попробывать их разделить каким то образом?

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

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

У меня ещё вчера были результаты почти такиеже по точности, но с меньшим числом входов в сделки. То что получил сегодня - не особо и лучше-то стало. Что-то пошло не так, подумаю какие настройки можно подправить.

 
Aleksey Vyazmikin:

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

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

Причем тут мое мнение: мусор на входе - мусор на выходе! Это первые строчки в учебниках статистики.

 
Dr. Trader:

Вы же там прибыльного робота сделали :)

Вход в лонг будет только при предсказании "1" (синеньким цветом), из них в >90% будет прибыль (зелёненькое).
Вход в шорт - только при предсказании "-1" (красненьким), из них опять >90% будет прибыль (зелёненькое).
Предсказания "0" означают не открывать новые позиции и ждать лучшего времени, так что вообще неважно какая там фактическая точность пре предсказании такого класса.

Но лучше например обучить лес на файле 2015 года, и проверить на файле 2016 года. Там только одной колонки нехватает в 2015, её нужно и из 2016 года удалить чтоб rattle не путалось.

Ничего я не сооружал - взял готовы файл и построил randomForest, а брать делить на два файла было лень. Это за меня сделал Алексей и показал убийственный результат, который полностью закрывает мои "достижения".

 
Dr. Trader:

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

У меня ещё вчера были результаты почти такиеже по точности, но с меньшим числом входов в сделки. То что получил сегодня - не особо и лучше-то стало. Что-то пошло не так, подумаю какие настройки можно подправить.

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

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

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

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

Причем тут мое мнение: мусор на входе - мусор на выходе! Это первые строчки в учебниках статистики.

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

 

Вот все мы ищем точки для входа, а может попробовать поискать флэт?

Может у кого есть индикатор/скрипт для определения флэтов на истории?

Я думаю, что можно взять канал регрессии с диапазоном 100, сдвигать его на каждом баре, и если наклон будет больше/меньше X, то считать участок, описываемый каналом - флэтом. Как думаете?

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