суббота, 16 мая 2020 г.

Машинное обучение торгового советника

На телеграм-канале @TrendRadar бот в автоматическом, real-time режиме ведёт публикации графических паттернов, по которым торгуются почти все самые ликвидные инструменты российского рынка. На его радаре отслеживается весь спектр акций, бондов, деривативов и индексов, по которому есть возможность идентифицировать направленное движение в самом его зачатке и много другой полезной трейдеру информации. А с недавних пор сообщения включают ещё и генерируемые роботом-адвайзером рекомендации, сигнализирующие тенденцию в индексе РТС. Там же отображается и посчитанный Machine Learning алгоритмом 🎲score и вероятность 🔻перекупленности / 🔺перепроданности как показатель достоверности предсказания падения рынка в целом.


Эксперимент проводится на базе ML.NET под .NET Framework (пока не Core). После 14 часового обучения на исторических данных фьючерса RI с 2009 года получилась модель, имеющая точность более 70%. Из трёх алгоритмов бинарных деревьев LightGbm, FastForest и FastTree лучшим оказался последний из них.


Структура данных для обучения и предсказания включает 64 признака. Если их разрядить по методу One Hot Encoding, чтобы включить дополнительный набор алгоритмов, то количество фичей вырастит до более чем 360, но это не даёт прироста в перфомансе.



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

В завершение пост на Хабре Машинное обучение на C#: введение в ML.NET о том фреймворке, который послужил мне опорой в Data Science процессе.