Гуру Хренов
Гуру Хренов личный блог
03 октября 2016, 06:41

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

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

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

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

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

    Знаете, арифмометр в умелых руках, когда на него подаются адекватные данные и решается красивая задача, несоизмеримо лучше, чем айпэд у 99,9% владельцев «чуда техники».
      • Антон Денисков (Fry)
        03 октября 2016, 07:12
        Андрей Л (division_by_zero), не серьёзно.

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

    Потырено с long-short.ru
      • ab_trader
        03 октября 2016, 07:25
        Андрей Л (division_by_zero), это да.
        • ab_trader
          03 октября 2016, 07:34
          ab_trader, отправился незпконченный коммент. Должно было быть так — это да, но скорее всего нет. Формально out of sample это 2-ой этапа курва фитттнга.
          • ALEXEY BURNAKOV
            11 октября 2016, 14:50
            ab_trader, на каждый оверфитинг должна быть отложенная выборка. На каждый вывод, сделанный по отложенной выборке, должно быть подтверждение по еще одной отложенной выборке.

            Иначе получается так: я нашел на отложенной выборке хорошие варианты работы модели и эти же модели идут в работу, предполагая, что полученного знания на отложенной выборке достаточно. А в реальности я подогнал модели под отложенную выборку.
  • Дар Ветер
    03 октября 2016, 07:51
    напишите снова когда заработаете этим пониманием, сколькие уже понявшие потратили годы на это до вас. вы ищете не связанные причинами закономерности. такой же фарс как датамайнинг. знаете какой лучший предиктор ввп сша? уровень наводнения в бангладеше. а в следующем году окажется высота апельсиновых деревьев в никарагуа. вот так и вы
  • П М
    03 октября 2016, 10:00
    Биржа тщательно следит за тем, чтобы менять параметры не реже чем каждые полгода. То ГО, то тариф, то ещё ченибудь. У меня нейросети дольше 3 мес не жили. Это муторно. Хотя эффективность их очень высокая была, но просто она совпала с супертрендом.
  • XXM
    03 октября 2016, 10:13
    С периодичностью раз в полгода появлялись (и будут появляться) и исчезали подобные граалеписатели.
    Грешен, сам через это прошел (smart-lab-а еще не было).
    Зато могу теперь сказать: «плавали, знаем».
    Люди, НС сильны в области распознавания образов.
    Для трейдинга они применимы с весом не более единиц процентов.
    Терминами овладеете, это да.
    «Вечного двигателя» не существует.
  • QJGlXS3Ars
    03 октября 2016, 12:16
    Щас автор познакомится с оверфиттингом и успокоится :)
  • Aleks Golendukhin
    03 октября 2016, 12:48
    Выдумывай выдумывай себе ))  пройдет время поймешь что все это ерунда )) торгуй нормально по человеческий и будет тебе счастье ))
  • day0markets.ru
    03 октября 2016, 13:18

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

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

    • SergeyJu
      03 октября 2016, 19:26
      Alex Hurko, Вы говорите о  предикторах с бинарными значениями, дискретными или непрерывными?
      • day0markets.ru
        03 октября 2016, 20:07
        SergeyJu, стандартизованные непрерывные. 

        • SergeyJu
          04 октября 2016, 10:33
          Alex Hurko, стандартизованные, это приведенные к диапазону (-1,1) или Вы приводите к распределению с нулевым выборочным средним и единичной выборочной дисперсией?

          • day0markets.ru
            04 октября 2016, 11:39

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

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

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

              • day0markets.ru
                04 октября 2016, 12:30

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

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

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

                  • day0markets.ru
                    04 октября 2016, 12:51
                    SergeyJu, да, я работаю только с большими портфелями бумаг. Корреляции искажают обучение, алгоритм учится, но немного не тому. Т.е. если, например, на порфеле 90% бумаг давали плюс при одном диапазоне предиктора, то алгоритм научится искать это состояние. Но оно не будет являться достоверным, из-за скоррелированности результата и самих значений предиктора. Когда диапазон значений предикторов равномерен по всем сочетаниями обучающая/торговая выборка, то результаты куда лучше, чем когда есть смещения центров предикторов.  
                    • SergeyJu
                      04 октября 2016, 12:56
                      Alex Hurko, неужели временная изменчивость не выправляет это дефект?
                      Тогда логично было бы попробовать вычленить главную компоненту, которая отвечает за коррелированность отдельных активов. 
                      • day0markets.ru
                        04 октября 2016, 13:02
                        SergeyJu, PCA и подобные методы на порфелях отрабатывают плохо. Ими не удается нейтрализовать временные корреляции между значениями предикторов и результатами. 
                        В моем случае пришлось перейти от оценки результата сделки, к оценке результата всего портфеля. Т.е. грубо говоря, в качестве Y выступает не профит/лосс по сделке, а, например, коэффициент шарпа портфеля. Поэтому скорость обучения выросла в сотни раз. Но результаты получаются более адекватные. 
                        • SergeyJu
                          04 октября 2016, 13:17
                          Alex Hurko, я не имел в виду собственно метод главных компонент. Я имел в виду более простую конструкцию, с одним общим компонентом, типа индекса, который примет на себя равнодействующую движения, и остатки на каждом активе. 
                          Я также оптимизирую не результаты сделок, а интегральную характеристику эквити типа средняя доходность/оценка риска. Но не Шарп, мне в нем оценка риска не нравится.
                          Верно ли я понял, что Вы строите единую торговую систему для каждой акции из набора акций, но оптимизируемый параметр — Шарп эквити портфеля.
  • akuloff
    03 октября 2016, 14:27
    Все это не совсем так. Что вы хотите предсказать? Куда пойдет цена линейного актива? Можно построить график распределения приращения цены и увидеть что он симметричен — значит в среднем цена ходит вверх и вниз примерно с одинаковой вероятностью. «Тупой» дата майнинг из цен — это как предсказывание следующей картинки из телешума. Это может быть очень сложная и медленная математика, но гораздо эффективней использовать случайные числа.
  • ELab
    03 октября 2016, 16:01
    Можно, я попиарюсь http://smart-lab.ru/blog/257872.php
  • kvazar
    03 октября 2016, 22:55
    нет логики — нет смысла — нет системы
  • Sergey Pavlov
    04 октября 2016, 12:10
    Просто, с точки зрения здравого смысла, мне он показался наиболее оптимальным способом нахождения закономерностей, которые можно использовать, ЕСЛИ они там вообще есть
    Вся трудность в том, что понимать под закономерностью?
    Что является закономерным продолжением ряда чисел 1,2,3,4,5,6,7,… ??
    Туда можно поставить и восьмерку и девятку и даже минус тысячу и всё это можно будет одинаково описать закономерностью. Когда вы скажете, что закономернее туда впихнуть восьмерку ну или хотя бы девятку, то это означает, что закономерность сидит в вашей голове, а не найдена в наборе данных. Строго говоря, совсем формально, в данных закономерностей нет… как бы ни было это печальным. Но можно проверить, насколько данный набор соответствует разным закономерностям из головы… правда для этой проверки придется в голове отыскать мерки… по большому счету, всё это сильно походит на чукчу: что вижу, о том пою.
    • SergeyJu
      04 октября 2016, 12:24
      Sergey Pavlov, даже если Вы возьмете 1000 чукчей, ни один не споет на суахили.
      Мы живем в условиях относительно низкого отношения сигнал/помеха. Поэтому приходится искать очень простые и устойчивые статистические связи. По сути базовый инструмент — примитивные условные вероятности. ИМХО.
      • Sergey Pavlov
        04 октября 2016, 12:37
        SergeyJu, я не предлагал взять 1000 чукчей:) Но, как вы верно заметили, ничего кроме примитивных условных вероятностей у нас нет из того, о чем мы можем говорить объективно и формально. Кто его знает, может нам наш опыт дается свыше магически-мистическим путем? Может всё, где мы добиваемся успеха, дается через озарение? Но это другая тема.

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


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

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн