Проявлением наибольшего милосердия в нашем мире является, на мой взгляд, неспособность человеческого разума связать воедино все, что этот мир в себя включает. Мы живем на тихом островке невежества посреди темного моря бесконечности, и нам вовсе не следует плавать на далекие расстояния.
На Смартлабе что-то активизировались дискуссии о возможности использования методов машинного обучения (нейронных сетей как их частный случай) в трейдинге. У меня сложилось ощущение, что дискутирующие совсем не понимают что это за зверь такой — машинное обучение (ML) и зачем он нужен.
Предположим есть задача: зная силу, с которой ударяют по мячику и его массу описать его движение. Можно ли эту задачу решить методами ML? Ну, наверное можно, но не нужно :) Классическая механика сделает это куда быстрее, надежнее, точнее. Или же пример поближе: зная себестоимость, среднюю цену продажи и объем продаж можно предсказать валовую прибыль.
А что если мы не знаем массу мячика? Ну, можно провести один или несколько опытов, а по ним уже, зная (из механики) уравнения движения, её определить, чтобы в дальнейшем использовать для предсказаний. Опять пример поближе: узнав маржу по первому кварталу, и зная производственные планы, можно прикинуть прибыль за год (привет, СарНПЗ)!
Однако, у примеров выше есть особенность: 1) количество неизвестных параметров невелико, и, что еще более важно 2)
функциональная зависимость от параметров примерно понятна. Впрочем, существует множество задач, где и число параметров, которые нужно варьировать велико и/или где функциональную зависимость так просто не описать. Вот именно для таких задач и нужно машинное обучение!
Например, чтобы выиграть в шахматы надо не иметь больше фигур на доске, а поставить сопернику мат. Однако, число возможных вариантов развития событий — последовательностей ходов, относительно невелико. Поэтому, успешно реализовав алгоритм «брутфорса», компьютер уже давно стал выигрывать у человека. Но например в го, цель игры проще — иметь больше очков на конец игры. Только вот вариантов на порядки больше — создать алгоритм игры так, чтобы машина выигрывала у человека не получалось. Однако методами ML это сделать получилось — смогли придумать как возможным ходам приписать функцию «полезности» которая каким-то сложным образом зависит от каких-то других известных параметров и подобрать в этой сложной функции нужные коэффициенты. Разумный вопрос: а почему обычными методами то не получалось? Потому что все попытки описать «полезность» хода через какие-то
разумные функциональные зависимости терпели крах. Ну на островке невежества живем, ничего с этим поделать нельзя. Пришлось уплывать туда, что и описать никаким человеческим языком то нельзя.
Резюмируя эту часть поста:
отнюдь не верно считать, что «машина умеет думать». Не умеет. Компьютер лишь умеет осуществлять математические операции; точно и куда быстрее человека. А то что суслика не видно, не означает, что его нет :)) Грубо говоря, методы машинного обучения о том, как из множества параметров составить сложного вида функцию, подобрать к ней коэффициенты так, чтобы на выходе получался хороший результат. Сложная многомерная оптимизация одной фразой.
Вернемся к трейдингу :) Можно ли делать деньги на бирже с помощью создав методами машинного обучения алгоритм совершения сделок? Ответ на этот вопрос напрямую зависит от другого вопроса: можно ли делать деньги теханализом? Если да — то тогда вполне возможно создать торговую стратегию, основанную на методах машинного обучения. Более того, их со временем станет все больше, да и предсказывать рынок они научатся куда лучше людей.
Тебе не придется описывать монстров, если ты назовешь их неописуемыми
В заключение, необходимо отметить, что главная сила машинного обучения является же и его главной слабостью. Ежели при анализе обычными методами надо думать о том: разумны ли предположения, что функциональная зависимость носит такой вот характер; разумны ли параметры; где и как это будет, а где не будет работать и т.д., то с ML все просто:
машина обучилась делать так и всё. А как влияет тот или иной параметр на результат (и влияет ли вообще) вам никто не скажет, да и проанализировать это
по сути невозможно.
Иными словами: совершили вы убыточную сделку, или лучше ряд убыточных сделок. Что это? Просто «человеческая» оплошность? Полоса неудач? Неправильный выбор стратегии? И если последнее, то можно ли этого избежать подкорректировав стратегию? Обычными методами эти вопросы как минимум можно обдумать (а возможно и получить правильный ответ). Используя алгоритмы на основе машинного обучения вам останется только надеяться, что все ок.
Как написано в одной из книг по ТА — ТА это не наука, а искусство. ТА — кисти и краски — бери, и рисуй что хошь. Результат не от красок зависит, а от художника.
Т.е., работоспособность или неработоспособность ТА ничего не говорит о работоспособности МО.
Скорее всего, работоспособность МО будет также зависеть только от художника.
Но просто цикл очень долгий, глупо для этого держать робота.
А роботы хорошо работают на HFT- та же стратегия возврата к среднему.
Всё прочее — это фантастика
У Вас mean reversion работает в настоящее время?
На каком инструменте?
сколько средняя сделка в комиссиях? ( мы на активных стратегиях среднюю сделку в комиссиях измеряли).
На синтетике большая комиссия будет.
Трудно выживать на активных стратегиях в таких условиях.
ответа не будет, видимо <=1
Не считаем здесь всякие прочие накладные потери.
да и неразумность результатов зависит не столько от количества параметров (хотя и от них тоже), сколько от вида целевой функции
Это прямо скажем не так — практически все классические ML можно проанализировать и понять, что и как повлияло на результат. С DL посложнее, но и тут часто возможна понять, что повлияло на результат.
Ну да, я с этим и не спорю. Проблема в том, что оценить насколько велика зависимость ответа от параметра «а» и какова она (условно: линейна, квадратична, ступенчата и т.д.) — крайне затруднительно. Ибо если бы это было не так, то была бы доступна разумная аналитическая апроксимация целевой функции.
Если вас интересует форма зависимости, то есть partial dependence plot — для деревьев его опять же достаточно легко можно построить.
Если можно зависимость свести к условно: то отлично!
Получаем аналитическую форму и её анализировать как раз возможно. Таким образом, методы МО по сути оказались способом получения инсайта о функциональной формы зависимости.
Если к аналитической форме свести нельзя, то как вы анализировать то планируете?
Вот строите вы зависимость вероятности рака легких от много факторов и получаете. В среднем по популяции вероятность рака 1%. А вот Shapley Values для признака курит +20%, бегает два раза в неделю -5% итого 16%. Вполне понятный инсайт — курить не надо вы очень сильно повышаете вероятность рака, бегать надо, но это не перекроет ваше курение.
Михаил, окей, я наверное не совсем корректно изначально выразился.
«все равно человек не сильно адекватно воспринимает такие функции» именно об этом и речь, да.
Вот скажем, получили мы что динамика объемов очень важный параметр. Построили модель, обучили етц. Работает. И тут начинается: объемы меняются, а цена не в ту сторону идет. Что тут не так? Как проанализировать?
А никак не получится, я вот об этом.
Во-первых любой прогноз имеет некую точность. И нет проблем ее оценить — в большинстве случаев в процессе обучения вы получает оценку неточности. Если цена идет не туда, но это в пределах ошибки модели, то тут и анализировать нечего.
Если же она как-то сильно вышла за пределы ошибки, то обычно выделяют из общей совокупности прогнозов наиболее ошибочные и смотрят их более пристально. Во многих случая человек просто глазами видит, что не так с этими случаями и может придумать как улучшить прогноз — обычно добавляются те или иные признаки, которые отражают не учтенные факторы.
В более сложных ситуациях часто применяют критерий Колмогорова-Смирнова для анализа распределения признаков у сильно ошибочных прогнозов и в обучающей выборке.
Только вот с тезис о том, что часто можно глазами определить что не так верен пожалуй для начальных этапов.
В трейдинге мне в принципе не нравится концепция теханализа — я адепт фундаментального.
Если вообще — то по работе, лично я использовал методы многомерной оптимизации (правда более классического подхода) для научных задач. Коллеги же и ML активно используют