Блог им. Division_by_zero

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

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

в последние несколько месяцев я изучал машинное обучение, точнее, в основном, классификаторы на основе supervised learning

и я понял одну вещь — весь этот ручной трейдинг, соблюдение дисциплины, философия трейдинга, 30 гуру трейдинга и «к нам приехал Ларри Вильямс дорогой, сейчас он нас научит как жить» — все это туфта.
Если в поведении акций и других фин инструментов есть какие то закономерности, которые позволяют выцарапать из торговли хоть какой то risk-adjusted return — то это можно сделать только с помощью машинного обучения.
Точнее, сделать это можно, наверное, многими способами, но только машинное обучение предоставляет научный метод, оптимизирующий результат.  
Почему ? 
Потому что Машинное обучение (а оно бывает разное, я говорю в данном случае о supervised learning ) — оно тем и занимается, что строит модель на основе эмпирических данных, причем там есть методы типа adaboost, которые позволяют залить в модель десятки параметров и выжать из каждого их них хоть какую то кроху закономерностей, если она вообще там есть.
Я уверен, что в этот момент много умных людей пытаются на этом заработать. 

Все эти технические индикаторы, какие то роботы на основе скользящих  средних — все это вчерашний день по сравнению с хорошим алгоритмом машинного обучения, все равно что арифмометр по сравнению с айпадом. Я последние несколько дней провел (убил ?) в экспериментах по применению adaboost + decision trees к торговле. 
Работает медленно, зараза, плюс Питон толком не поддерживает многоядерные процессоры, поэтому после каждого изменения параметров приходится ждать нового пересчета классификатора несколько минут.
Там есть способы ускорить все это дело, пользуясь всякими Apache Spark, но начинать надо с малого.Будучи полным лохом в алготрейдинге, пока только гоняю код, но хочу попробовать сделать функционирующую торговую приблуду на основе машинного обучения... 
Охренительно интересная тема, скажу я вам.
Следите за апдейтами.
★8
38 комментариев
=)
Что на входе? Какими данными вы кормите «машинку»?

Знаете, арифмометр в умелых руках, когда на него подаются адекватные данные и решается красивая задача, несоизмеримо лучше, чем айпэд у 99,9% владельцев «чуда техники».
Fry (Антон), пока кормлю бесплатными данными из yahoo finance, то есть модель получается с торговлей, покрывающей несколько дней (не intra-day)
avatar
Андрей Л (division_by_zero), не серьёзно.

Логарифмическая линейка действительно миру уже не нужна, достаточно айпэда и софта для дебилов из эпстора.
Множество исследований ведется вокруг цены и объема по той причине, что сейчас, в век компьютеров, по ним имеются практически бесконечные объемы данных. Не обязательно такие исследования имеют какую-то полезность, просто данные есть, а ученые много времени потратили на развитие математических способностей с ними манипулировать. Раз уж эти способности приобретены, грех не использовать их, даже если такое использование не имеет никакой полезности или полезность отрицательна. Как говорится, если у человека в руке молоток, все вокруг выглядит как гвоздь." — W.Buffett, The Superinvestors of Graham-and-Doddsville

Потырено с long-short.ru
avatar
ab_trader, да уж, про молоток — хорошая фраза, люблю ее
avatar
ab_trader, подгонка модели под тестовый набор (overfitting) — это одна из основных проблем конечно
Но она решается использованием разных наборов данных для обучения и тестирования. Это не очень сложно сделать, вопрос гигиены
avatar
Андрей Л (division_by_zero), это да.
avatar
ab_trader, отправился незпконченный коммент. Должно было быть так — это да, но скорее всего нет. Формально out of sample это 2-ой этапа курва фитттнга.
avatar
ab_trader, на каждый оверфитинг должна быть отложенная выборка. На каждый вывод, сделанный по отложенной выборке, должно быть подтверждение по еще одной отложенной выборке.

Иначе получается так: я нашел на отложенной выборке хорошие варианты работы модели и эти же модели идут в работу, предполагая, что полученного знания на отложенной выборке достаточно. А в реальности я подогнал модели под отложенную выборку.
avatar
напишите снова когда заработаете этим пониманием, сколькие уже понявшие потратили годы на это до вас. вы ищете не связанные причинами закономерности. такой же фарс как датамайнинг. знаете какой лучший предиктор ввп сша? уровень наводнения в бангладеше. а в следующем году окажется высота апельсиновых деревьев в никарагуа. вот так и вы
avatar
Дар Ветер, я не утверждаю, что трейдинг на машинном обучении будет работать. Мой пост не об этом
Просто, с точки зрения здравого смысла, мне он показался наиболее оптимальным способом нахождения закономерностей, которые можно использовать, ЕСЛИ они там вообще есть
Это все равно, что копать клад лопатой вместо зубочистки — клада там может и не быть, но лопатой намного удобнее
avatar
Дар Ветер, я напишу в любом случае — даже если не заработаю (что гораздо более вероятно :-))
почти дописал весь софт и интеграцию с брокером, скоро включаю рубильник
avatar
Биржа тщательно следит за тем, чтобы менять параметры не реже чем каждые полгода. То ГО, то тариф, то ещё ченибудь. У меня нейросети дольше 3 мес не жили. Это муторно. Хотя эффективность их очень высокая была, но просто она совпала с супертрендом.
avatar
С периодичностью раз в полгода появлялись (и будут появляться) и исчезали подобные граалеписатели.
Грешен, сам через это прошел (smart-lab-а еще не было).
Зато могу теперь сказать: «плавали, знаем».
Люди, НС сильны в области распознавания образов.
Для трейдинга они применимы с весом не более единиц процентов.
Терминами овладеете, это да.
«Вечного двигателя» не существует.
avatar
Щас автор познакомится с оверфиттингом и успокоится :)
avatar
Выдумывай выдумывай себе ))  пройдет время поймешь что все это ерунда )) торгуй нормально по человеческий и будет тебе счастье ))
avatar

Машинное обучение — это хороший метод. Но, увы, это только метод. Чтобы что-то получить адекватное, надо скормить качественные предикторы… И их так или иначе надо искать и оценивать. По своей сути ML это лишь способ оптимизации и поиска лучшей области использования предикторов. 
По своему опыту могу сказать, что на больших выборка (от 20К случаев) при 3-4 предикторах без оверфитинга на тестовой выборке нормально работает только классификатор на основе naive bayes. Но предикативный результат редко больше 53-54%. K Means, Decision Trees имеют очень большую склонность к оверфитингу, увы. Про SVM трудно говорить, ибо он работает очень медленно на больших выборках. 

К чему я это… Основное это предикторы, а не методы. Если есть эйдж, то его можно вычленить и без ML. Хотя ML, конечно, приятней, ибо более формализовано. 

avatar
Alex Hurko, Вы говорите о  предикторах с бинарными значениями, дискретными или непрерывными?
avatar
SergeyJu, стандартизованные непрерывные. 

avatar
Alex Hurko, стандартизованные, это приведенные к диапазону (-1,1) или Вы приводите к распределению с нулевым выборочным средним и единичной выборочной дисперсией?

avatar

SergeyJu, обычно, но не всегда делаю так
StandartValue = (Real — Mean)/Std

Увы, такая стандартизация не всегда робаста. Особенно в случае портфелей. 

avatar
Alex Hurko, я этот прием не использую в первую очередь потому, что при каждом новом поступлении данных изменяются и оценка среднего, и дисперсии. 
По честному, надо заново все пересчитывать на каждом такте.
Проще работать с дискретными переменными. Есть перекупленность/перепроданность — нету. Три состояния -1, 0, 1.
Быстрая скользяшка выше/ниже медленной. 2 состояния 1, -1.
Ну и так далее. 

avatar

SergeyJu, да, это не везде применимо, конечно. Дискретизация — это то же не панацея. Очень много зависит от входящих данных. 

Главная проблема — это внутренняя корреляция выборки предикторов. Т.е. если мы имеем, например, в качестве предиктора количество std от мувинга до цены, то значение в точке N будет сильно коррелировано со значением в точке N+1, N-1. В случае, если мы обучаемся на единственном инструменте, дискретизация частично уберет эффект корреляции с предыдущим семплом, но если мы работаем с портфелем стаков, это не будет работать нормально из-за взаимной корреляции между стаками. Поэтому под каждый предиктор приходится икать форму, в которой эти эффекты будут нивелированы. Иногда помогает ранжирование по портфелю, ранжирование по историческому окну и тд. 

avatar
Alex Hurko, Вы строите торговую систему сразу на группе активов?
Не вполне понимаю, чем Вам мешают корреляции. Ясно же, что любой взвешенный по временному окну индикатор имеет по построению связи между предыдущим и последующим значением. 

avatar
SergeyJu, да, я работаю только с большими портфелями бумаг. Корреляции искажают обучение, алгоритм учится, но немного не тому. Т.е. если, например, на порфеле 90% бумаг давали плюс при одном диапазоне предиктора, то алгоритм научится искать это состояние. Но оно не будет являться достоверным, из-за скоррелированности результата и самих значений предиктора. Когда диапазон значений предикторов равномерен по всем сочетаниями обучающая/торговая выборка, то результаты куда лучше, чем когда есть смещения центров предикторов.  
avatar
Alex Hurko, неужели временная изменчивость не выправляет это дефект?
Тогда логично было бы попробовать вычленить главную компоненту, которая отвечает за коррелированность отдельных активов. 
avatar
SergeyJu, PCA и подобные методы на порфелях отрабатывают плохо. Ими не удается нейтрализовать временные корреляции между значениями предикторов и результатами. 
В моем случае пришлось перейти от оценки результата сделки, к оценке результата всего портфеля. Т.е. грубо говоря, в качестве Y выступает не профит/лосс по сделке, а, например, коэффициент шарпа портфеля. Поэтому скорость обучения выросла в сотни раз. Но результаты получаются более адекватные. 
avatar
Alex Hurko, я не имел в виду собственно метод главных компонент. Я имел в виду более простую конструкцию, с одним общим компонентом, типа индекса, который примет на себя равнодействующую движения, и остатки на каждом активе. 
Я также оптимизирую не результаты сделок, а интегральную характеристику эквити типа средняя доходность/оценка риска. Но не Шарп, мне в нем оценка риска не нравится.
Верно ли я понял, что Вы строите единую торговую систему для каждой акции из набора акций, но оптимизируемый параметр — Шарп эквити портфеля.
avatar
Все это не совсем так. Что вы хотите предсказать? Куда пойдет цена линейного актива? Можно построить график распределения приращения цены и увидеть что он симметричен — значит в среднем цена ходит вверх и вниз примерно с одинаковой вероятностью. «Тупой» дата майнинг из цен — это как предсказывание следующей картинки из телешума. Это может быть очень сложная и медленная математика, но гораздо эффективней использовать случайные числа.
avatar
Можно, я попиарюсь http://smart-lab.ru/blog/257872.php
avatar
нет логики — нет смысла — нет системы
avatar
Просто, с точки зрения здравого смысла, мне он показался наиболее оптимальным способом нахождения закономерностей, которые можно использовать, ЕСЛИ они там вообще есть
Вся трудность в том, что понимать под закономерностью?
Что является закономерным продолжением ряда чисел 1,2,3,4,5,6,7,… ??
Туда можно поставить и восьмерку и девятку и даже минус тысячу и всё это можно будет одинаково описать закономерностью. Когда вы скажете, что закономернее туда впихнуть восьмерку ну или хотя бы девятку, то это означает, что закономерность сидит в вашей голове, а не найдена в наборе данных. Строго говоря, совсем формально, в данных закономерностей нет… как бы ни было это печальным. Но можно проверить, насколько данный набор соответствует разным закономерностям из головы… правда для этой проверки придется в голове отыскать мерки… по большому счету, всё это сильно походит на чукчу: что вижу, о том пою.
avatar
Sergey Pavlov, даже если Вы возьмете 1000 чукчей, ни один не споет на суахили.
Мы живем в условиях относительно низкого отношения сигнал/помеха. Поэтому приходится искать очень простые и устойчивые статистические связи. По сути базовый инструмент — примитивные условные вероятности. ИМХО.
avatar
SergeyJu, я не предлагал взять 1000 чукчей:) Но, как вы верно заметили, ничего кроме примитивных условных вероятностей у нас нет из того, о чем мы можем говорить объективно и формально. Кто его знает, может нам наш опыт дается свыше магически-мистическим путем? Может всё, где мы добиваемся успеха, дается через озарение? Но это другая тема.

С другой стороны,
Мы живем в условиях относительно низкого отношения сигнал/помеха
Но откуда у нас в этом такая уверенность? 
Конечно, опыт подсказывает, что одно событие связано с другим — так возникают устойчивые стат. связи. Но ведь человек это не тысяча и не миллион «чукч». Видимо, важную роль играет наша субъектность, когда мы можем связывать причину и следствие не отстраненно, а сами являясь причинами. В случае с рынком это почти невозможно для маленького трейдера — тут он выглядит как чукча, связывая события в близком к случайному потоке данных. Но в целом вы правы. Набор условных вероятностей, байесовский подход — по сути, больше у нас ничего нет. Остается лишь правильно дальше из этого построить предикторы-классификаторы.
avatar
Sergey Pavlov, наш главный источник данных, цена совершает за день, условно, колебания по 100 пунктов в минуту каждую минуту. А средний доход, также условно, 100 пунктов в день. Значит, мы берем 1/500 от величины движения. 
Вот это я имею в виду, когда говорю о низком отношении сигнала к помехе.


avatar
SergeyJu, я вас не так сперва понял:) С этим я солидарен.
avatar
Над МЛ и АИ в области биржевых разработок бьются уже с два десятка лет. Начиналось все с нейронных сетей, а сейчас и вовсе DeepMind над этим работает. Но воз и ныне там. Если бы идея была такой же прорывной, каким был арифмометр и каковой она пытается казаться, то на рынке исчезли бы все неэффективности, любое движение можно было бы просчитать (как это делают алгоритмы МЛ и АИ с движениями человека к примеру в приставке xBox), и профессора больших научных степеней разбогател бы за один сезон. Основная проблема в том, что ученые придумали много чего для изучения явлений, которые сами они породить не могут. Если бы взяли тысяч пять трейдеров, и подключили МЛ к ним, то возможно, чисто гипотетически, алгоритмы МЛ и АИ что-то бы нашли. Возможно… В остальном — МЛ и АИ пока что не более чем супернавороченный молоток для забивания гвоздей, пытающийся найти точный метод для точного удара. 
avatar

теги блога Гуру Хренов

....все тэги



UPDONW
Новый дизайн