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

 
Aleksey Vyazmikin:

Не знаю, я на это внимание не обращаю, смотрю в ускоренном режиме обычно.

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

на гитхабе наверное

 
Maxim Dmitrievsky:

на гитхабе наверное

Там все прям такие англоязычные - куда мне там :)

 
Aleksey Vyazmikin:

Там все прям такие англоязычные - куда мне там :)

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

т.е. катбуст можно будет запускать в 1 строку из мт5

 
Maxim Dmitrievsky:

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

т.е. катбуст можно будет запускать в 1 строку из мт5

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

 

Завершил исследование влияния разбивки выборки на учебную и валидационную (ту по показателям которой происходит остановка обучения и отбор модели).

Использовалась выборка с 2014 по 2018 год, каждые 20% равны примерно 1 году. Методика такая, взял общую выборку и стал увеличивать валидационную выборку на 10 процентов, уменьшая учебную выборку на те же 10%, получилось 9 наборов выборок. На каждую выборку создавалась модель с Seed от 1 до 200, т.е. всего 200 моделей на выборку, итого 1800 моделей.

Тестирование моделей проводилось на фиксированной выборке - 2018 год, не участвующей в обучении.

Инструмент - склейка фьючерсного контракта Si.

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

Ниже метрические показатели моделей

 

По результатам отчетливо видно, что обучение на 2014 году (80%-90%) дало самые плохие результаты, при этом провал с 70% значительный, а это скорей говорит не о том, что объем выборки был мал, а том, что закономерности 2014 года более почти не встречаются, т.е. рынок существенно изменился, а значит теоретически этот период можно вообще убрать из обучения.

Сейчас для отбора моделей на тестовой(экзаменационной) выборке я использую следующий критерий

if(t==2)if (FinRez>1000 && DD_Balans_Proc_DMM<30 && Proc_Max_Balans>70 && Proc_Min_Balans<30 && Pribolnost_Balans>10 && ProfitFaktor_Balans>1.2)Filter_03=1;

Вот данные по числу моделей, удовлетворяющих этому критерию

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

if(t==0)if (FinRez>10000 && DD_Balans_Proc_DMM<30 && Proc_Max_Balans>70 && Proc_Min_Balans<30 && Pribolnost_Balans>10 && ProfitFaktor_Balans>1.2)Filter_01=1;
if(t==1)if (FinRez>3000 && DD_Balans_Proc_DMM<30 && Proc_Max_Balans>70 && Proc_Min_Balans<30 && Pribolnost_Balans>10 && ProfitFaktor_Balans>1.2)Filter_02=1;
if(t==2)if (FinRez>1000 && DD_Balans_Proc_DMM<30 && Proc_Max_Balans>70 && Proc_Min_Balans<30 && Pribolnost_Balans>10 && ProfitFaktor_Balans>1.2)Filter_03=1;


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

И какой можно сделать вывод? Кажется, что оптимальным является объем 60%-70% валидационной выборки, т.е. обучение должно происходить на меньшей выборке, чем проверка модели. Но нельзя не выделить разбивка на 30%, там так же результат по всем показателям не плохой, и провальные совсем рядом 40% и 50%. Даже не знаю, что больше влияет объем выборки или её содержания, и как это установить...

А какое у Вас мнение о результатах этого эксперимента, может я не верно интерпретирую результаты? Есть идеи по внесению изменения в методику или ещё какие либо предложения по разрешению этого вопроса о пропорции выборок обучения и отбора?

Добавлено:

Относительно средних показателей на 80%-90%, то там очень много нулей(не было сигналов на вход вообще у моделей) и из-за этого есть искажение, это видно на примере показателя StDV_K_Korrekt_Balans

гистограмма для StDV_K_Korrekt_Balans 90%


гистограмма для StDV_K_Korrekt_Balans 70%


гистограмма для StDV_K_Korrekt_Balans 30%

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

30%


40%


50%


60%

 

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

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

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

 
Aleksey Vyazmikin:
И ещё отмечу, что обучение идет всегда на данных которые старей, чем те, на которых идет контроль обучения - возможно их следует поменять местами, и посмотреть что будет...

Все что было выше, круто и очень информационно, но вот "контроль обучения", что это значит???

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

 

Если исходить из практического применения МО в вашем случае, то надо исходить по моему мнению из следующего.

Так как получить 100% вероятность истинного исхода просто не реально, то идти по простому методу, к примеру соотношение истинных результатов к ложным, если оно в районе 50/50, то опять же надо понять, какие профиты вам дают этим результаты, если 50% профита это в среднем 100 пунктов, а остальные 50% потерь в среднем 50 пунктов, то думаю ваша система уже пригодна к практическому применению.

 
Farkhat Guzairov:

Все что было выше, круто и очень информационно, но вот "контроль обучения", что это значит???

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

Я использую для обучения CatBoost, там есть возможность останавливать обучение по контрольной (валидационной) выборке, т.е. параллельно происходит уменьшение ошибки на учебной выборке и сразу проверка на контрольной выборке как изменился результат на ней, если результат не улучшается на контрольной выборке заданное число деревьев, то обучение прекращается и все деревья до последнего улучшения отсекаются. Да хронология такая - обучаю 2014, а контроль обучения с 2015 до 2018, проверка результата на 2018. Поменять местами может и есть смысл, так-как выявляемые закономерности при обучении, все ж таки могут прекращать работать во времени и может лучше обучаться на данных, которые ближе к применению в реальности - вопрос открытый.

 
Farkhat Guzairov:

Если исходить из практического применения МО в вашем случае, то надо исходить по моему мнению из следующего.

Так как получить 100% вероятность истинного исхода просто не реально, то идти по простому методу, к примеру соотношение истинных результатов к ложным, если оно в районе 50/50, то опять же надо понять, какие профиты вам дают этим результаты, если 50% профита это в среднем 100 пунктов, а остальные 50% потерь в среднем 50 пунктов, то думаю ваша система уже пригодна к практическому применению.

Точность классификации в таблице это метрический показатель Precision - там в районе 60% (у лучших моделей) правильных входов получается, в тестере будет больше, так-как некоторые позиции должны вытягиваться в безубыток, но не достигать цели по тейк профиту.

Применять пока рано, надо готовиться к следующей стадии - потрошению моделей на гербарии :)