При перепечатке материалов просим публиковать ссылку на портал Finversia.ru с указанием гиперссылки.
Можно ли прогнозировать финансовый рынок?
Яндекс запустил на Курсере курс по машинному обучению и работе с большими данными. Курс, несомненно, полезный для получения технических навыков в профессии 21-го века — дата сайнса (ученого по данным). Однако меня зацепила в нем одна вещь. В 5-м блоке курса авторы обещают пример по прогнозированию финансового рынка («Combined, this data will be used to build a predictive model for a financial market (as an example»). Что? Рынок невозможно прогнозировать. Он эффективный. Лишь где-то можно проехаться на автокорреляции, которая бывает в моменты трендовых участков рынка. Флэт, как правило, это полнейший хаос. Но для работы с автокорреляциями хватило бы и стандартных эконометрических процедур (экспоненциальное сглаживание, AR и MA модели). Здесь не нужны были бы «большие данные» или «машинное обучение». Автокорреляционные процессы хорошо работают на рынке процентных ставок и слабо применимы к другим финансовым рынкам (поймете, когда посчитаете автокорреляцию процентных ставок ЦБ РФ или построите ее коррелограмму за последние 3 года).
Однако понимают ли молодые ребята, составители курса (пруф) Яндекса (у всех отличный научный и технический бэкграунд, но полное отсутствие опыта на финансовых рынках), невозможность его прогнозирования? Вряд ли. Поэтому они приводят пример ради примера. Если бы умели прогнозировать рынок, то сидели бы не в Яндексе на зарплате, а торговали бы сами или работали в иностранном хедж-фонде.
Рынок невозможно прогнозировать. Работает лишь информационная теория рынка (об информированных и неинформированных трейдерах). Как жить с этим? Обрадую вас, его можно классифицировать! Да, если работать с временными рядами как с обычными переменными (по оcи x — время, по оси y — цена или ее производные), то можно классифицировать временные участки на фазы (растущий, падающий или боковой тренд). То же самое можно сделать и с волатильностью (фаза высокой и низкой волатильности). По сути, временную шкалу рынка мы разбиваем на классы исходя из наших признаков.
Сегодняшнее утро я начал с построения регрессии методами глубокого обучения, чтобы себе еще раз доказать данный факт (о невозможности прогнозирования рынка). На входе производная от цены (3 входных признака). В скрытом слое нейроны 20 на 20. На выходе прогноз цены на валидационном участке выборки (основной набор данных разбит на тренировочный и тестовый). В качестве функции активации использован выпрямитель ReLU. С каждым запуском нейронки будет происходить переобучение и прогноз цены смещается вертикально вдоль оси y.
При этом ошибка на валидационном фрейме меньше, чем на тестовом. Вроде бы красиво все. Но лишь в теории.
Когда мы сравниваем фактические точки на тестовом наборе данных с прогнозными, то понимаем, что модель непригодна для практического использования.
Конечно же стоит оговориться, что кластеризационная или классификационная модели также могут иметь характер прогностических. Что покажет в своем курсе Яндекс в качестве примера, пока точно не ясно.
Заметка создана для авторского блога о машинном обучении QRG: Машинное обучение в действии http://quantresearchgroup.ru/
обсуждение