Блог им. zzznth

Машинное обучеине и трейдинг

    • 10 марта 2021, 12:30
    • |
    • zzznth
  • Еще
Проявлением наибольшего милосердия в нашем мире является, на мой взгляд, неспособность человеческого разума связать воедино все, что этот мир в себя включает. Мы живем на тихом островке невежества посреди темного моря бесконечности, и нам вовсе не следует плавать на далекие расстояния.

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

Предположим есть задача: зная силу, с которой ударяют по мячику и его массу описать его движение. Можно ли эту задачу решить методами ML? Ну, наверное можно, но не нужно :) Классическая механика сделает это куда быстрее, надежнее, точнее. Или же пример поближе: зная себестоимость, среднюю цену продажи и объем продаж можно предсказать валовую прибыль.

А что если мы не знаем массу мячика? Ну, можно провести один или несколько опытов, а по ним уже, зная (из механики) уравнения движения, её определить, чтобы в дальнейшем использовать для предсказаний. Опять пример поближе: узнав маржу по первому кварталу, и зная производственные планы, можно прикинуть прибыль за год (привет, СарНПЗ)!

Однако, у примеров выше есть особенность: 1) количество неизвестных параметров невелико, и, что еще более важно 2) функциональная зависимость от параметров примерно понятна. Впрочем, существует множество задач, где и число параметров, которые нужно варьировать велико и/или где функциональную зависимость так просто не описать. Вот именно для таких задач и нужно машинное обучение!

Например, чтобы выиграть в шахматы надо не иметь больше фигур на доске, а поставить сопернику мат. Однако, число возможных вариантов развития событий — последовательностей ходов, относительно невелико. Поэтому, успешно реализовав алгоритм «брутфорса», компьютер уже давно стал выигрывать у человека. Но например в го, цель игры проще — иметь больше очков на конец игры. Только вот вариантов на порядки больше — создать алгоритм игры так, чтобы машина выигрывала у человека не получалось. Однако методами ML это сделать получилось — смогли придумать как возможным ходам приписать функцию «полезности» которая каким-то сложным образом зависит от каких-то других известных параметров и подобрать в этой сложной функции нужные коэффициенты. Разумный вопрос: а почему обычными методами то не получалось? Потому что все попытки описать «полезность» хода через какие-то разумные функциональные зависимости терпели крах. Ну на островке невежества живем, ничего с этим поделать нельзя. Пришлось уплывать туда, что и описать никаким человеческим языком то нельзя.

Резюмируя эту часть поста: отнюдь не верно считать, что «машина умеет думать». Не умеет. Компьютер лишь умеет осуществлять математические операции; точно и куда быстрее человека. А то что суслика не видно, не означает, что его нет :)) Грубо говоря, методы машинного обучения о том, как из множества параметров составить сложного вида функцию, подобрать к ней коэффициенты так, чтобы на выходе получался хороший результат. Сложная многомерная оптимизация одной фразой.

Вернемся к трейдингу :) Можно ли делать деньги на бирже с помощью создав методами машинного обучения алгоритм совершения сделок? Ответ на этот вопрос напрямую зависит от другого вопроса: можно ли делать деньги теханализом? Если да — то тогда вполне возможно создать торговую стратегию, основанную на методах машинного обучения. Более того, их со временем станет все больше, да и предсказывать рынок они научатся куда лучше людей.

Тебе не придется описывать монстров, если ты назовешь их неописуемыми

В заключение, необходимо отметить, что главная сила машинного обучения является же и его главной слабостью. Ежели при анализе обычными методами надо думать о том: разумны ли предположения, что функциональная зависимость носит такой вот характер; разумны ли параметры; где и как это будет, а где не будет работать и т.д., то с ML все просто: машина обучилась делать так и всё. А как влияет тот или иной параметр на результат (и влияет ли вообще) вам никто не скажет, да и проанализировать это по сути невозможно.

Иными словами: совершили вы убыточную сделку, или лучше ряд убыточных сделок. Что это? Просто «человеческая» оплошность? Полоса неудач? Неправильный выбор стратегии? И если последнее, то можно ли этого избежать подкорректировав стратегию? Обычными методами эти вопросы как минимум можно обдумать (а возможно и получить правильный ответ). Используя алгоритмы на основе машинного обучения вам останется только надеяться, что все ок.
★1
26 комментариев
Можно ли делать деньги на бирже с помощью создав методами машинного обучения алгоритм совершения сделок? Ответ на этот вопрос напрямую зависит от другого вопроса: можно ли делать деньги теханализом? Если да — то тогда вполне возможно создать торговую стратегию, основанную на методах машинного обучения.
К сожалению ТА не работает, не работал, и не может работать.
Как написано в одной из книг по ТА — ТА это не наука, а искусство. ТА — кисти и краски — бери, и рисуй что хошь. Результат не от красок зависит, а от художника.
Т.е., работоспособность или неработоспособность ТА ничего не говорит о работоспособности МО.
Скорее всего, работоспособность МО будет также зависеть только от художника.
avatar
3Qu, вы удивитесь, но решения задач многомерной оптимизации (неважно традиционными ли методами или методами МО — тоже искусство) :)))
avatar
zzznth, воще-то, я это и написал.))
avatar
В принципе на циклических рынках работает стратегия — покупай внизу, продавай там где жадность позволяет.
Но просто цикл очень долгий, глупо для этого держать робота.
А роботы хорошо работают на HFT- та же стратегия возврата к среднему.
Всё прочее — это фантастика
avatar
Simix,
У Вас mean reversion работает в настоящее время?
На каком инструменте?
avatar
_sg_, На синтетическом. Состав ингредиентов — увы секрет ;)
avatar
Simix,
сколько средняя сделка в комиссиях? ( мы на активных стратегиях среднюю сделку в комиссиях измеряли).
На синтетике большая комиссия будет.
Трудно выживать на активных стратегиях в таких условиях.
avatar
_sg_, 
ответа не будет, видимо <=1
_sg_, Чойта не будет? Комиссия «на сделку» составляет 10%, но это только комиссия.
Не считаем здесь всякие прочие накладные потери.
avatar
Грубо говоря, методы машинного обучения о том, как из множества параметров составить сложного вида функцию, подобрать к ней коэффициенты так, чтобы на выходе получался хороший результат.
Чем больше параметров вы задействуете, тем больше вы получите курвафитинг(подгонку под данные). То есть, если в начале и заработаете, то потом неминуемо сольетесь, ну или стоп сработает. 
avatar
chizhan, спорное суждение.
да и неразумность результатов зависит не столько от количества параметров (хотя и от них тоже), сколько от вида целевой функции
avatar
> А как влияет тот или иной параметр на результат (и влияет ли вообще) вам никто не скажет, да и проанализировать это по сути невозможно.

Это прямо скажем не так — практически все классические ML можно проанализировать и понять, что и как повлияло на результат. С DL посложнее, но и тут часто возможна понять, что повлияло на результат. 
avatar
Михаил, это прямо скажем так :) вернее так: в случаях, где это так, куда проще обойтись без машинного обучения :)
avatar
zzznth, ну не так это, деревянные модели (GBM и RF) интерпретируются с помощью с помощью Shapley Values и решают очень сложные задачи, где без машинного обучения не обойтись. 
avatar
Михаил, вы что именно хотите сказать? Что можно определить, что параметр «а» имеет бОльшую важность, чем параметр «б»?

Ну да, я с этим и не спорю. Проблема в том, что оценить насколько велика зависимость ответа от параметра «а» и какова она (условно: линейна, квадратична, ступенчата и т.д.) — крайне затруднительно. Ибо если бы это было не так, то была бы доступна разумная аналитическая апроксимация целевой функции.
avatar
zzznth, Shapley Values позволяет разложить любое предсказание на сумму вкладов значений отдельных признаков. Собственно это обычно и называют интерпретацией результата. 

Если вас интересует форма зависимости, то есть partial dependence plot — для деревьев его опять же достаточно легко можно построить.
avatar
Михаил, окей, дальше то что будете делать?
Если можно зависимость свести к условно:
изменение цены = вторая производная динамики объемов бинов * скорость изменения
то отлично!
Получаем аналитическую форму и её анализировать как раз возможно. Таким образом, методы МО по сути оказались способом получения инсайта о функциональной формы зависимости.

Если к аналитической форме свести нельзя, то как вы анализировать то планируете?
avatar
zzznth, у вас почему-то весь анализ сводится к аналитической форме — это очень узкая интерпретация и к деревьям не сильно применимая — они строятся на дискретных признаках, там производной и быть не может. Да и наличие аналитической формы тоже очень мало дает, если у вас пространство признаков достаточно многомерное — все равно человек не сильно адекватно воспринимает такие функции. 

Вот строите вы зависимость вероятности рака легких от много факторов и получаете. В среднем по популяции вероятность рака 1%. А вот Shapley Values для признака курит +20%, бегает два раза в неделю -5% итого 16%. Вполне понятный инсайт — курить не надо вы очень сильно повышаете вероятность рака, бегать надо, но это не перекроет ваше курение.
avatar

Михаил, окей, я наверное не совсем корректно изначально выразился.
«все равно человек не сильно адекватно воспринимает такие функции» именно об этом и речь, да.

Вот скажем, получили мы что динамика объемов очень важный параметр. Построили модель, обучили етц. Работает. И тут начинается: объемы меняются, а цена не в ту сторону идет. Что тут не так? Как проанализировать?

А никак не получится, я вот об этом.

avatar
zzznth, да примерно так же как, это делается для не ML моделей — часто это определенное искусство нарабатываемое с опытом, но есть и вполне формальные приемы.

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

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

В более сложных ситуациях часто применяют критерий Колмогорова-Смирнова для анализа распределения признаков у сильно ошибочных прогнозов и в обучающей выборке.
avatar
Михаил, угу. Вот такой вот итерационный подход то и происходит.
Только вот с тезис о том, что часто можно глазами определить что не так верен пожалуй для начальных этапов.

avatar
Тема интересная. Подскажите, Вы уже экспериментировали с ML?
avatar
Seroja, в трейдинге или вообще?
В трейдинге мне в принципе не нравится концепция теханализа — я адепт фундаментального.
Если вообще — то по работе, лично я использовал методы многомерной оптимизации (правда более классического подхода) для научных задач. Коллеги же и ML активно используют
avatar
С временными рядами лучше регрессии ещё ничего не придумали (в той или иной интерпретации), на кэгл кстати не так давно был конкурс, как раз по трейдингу, от какой то солидной компашки с уол стрит, с хорошими призовыми. Это показывает, что даже с большими бабками они не сильно далеко продвинулись в предсказаниях
Причем DL применительно к трейдингу зачастую так и сводится к авторегрессии временных рядов.
avatar
Любая проверка гипотезы устойчивости (например, cross validation) ставит на ML крест
avatar

теги блога zzznth

....все тэги



UPDONW