Abel
Abel личный блог
02 марта 2021, 16:36

Machine learning: сколько могут заработать алгоритмы?

Как думаете, сколько может принести алгоритмическая торговля? 10% годовых? 100%? Или больше?

Все мы знаем, что machine learning может делать множество крутых вещей. А уж применить его в трейдинге для анализа графиков и прочих цифр — эта идея вообще очевидная. Почему же в публичном пространстве почти не встречается историй успеха? Не знаю, возможно потому что деньги любят тишину.

Однако я точно знаю что machine learning работает! На самом деле очень многие его применяют. Да я сам занимаюсь этим для прогноза движений по индексу S&P 500. Я также общался с человеком, который за год заработал $5млн от стартового депозита в $300 тыс. Буквально вчера общался с другим человеком, который подтвердил, что легко можно делать 300%-500% на американских индексах. Врут? Думаю что нет.

С помощью ML я и сам смог заработать +45.9% к счету только за февраль, а депозит у меня не маленький. Ниже приведены результаты по моим сделкам в феврале на реальном счете. Для сравнения в скобках указано значение тех же метрик за тот же период по самому индексу S&P 500.

Feb 2021 assets change: +45.9% (S&P 500 Feb: +2.6%)
Average daily return: 2.07% (S&P 500 Feb: 0.14%)
Annualized return: 14918.8% (S&P 500 Feb: 40.7%)
Annualized volatility: 57.1% (S&P 500 Feb: 14.3%)
Maximum drawdown: 1.6% (S&P 500 Feb: 3.2%)
Annualized Sharpe ratio: 9.12 (S&P 500 Feb: 2.46)

Повезло? Может быть. Однако все цифры в целом совпадают с бэктестами за предыдущие периоды. Это позволяет мне оставаться оптимистом и думать, что это не случайность.

Честно говоря, могло бы быть даже лучше. Я пару раз открывал сделки без рекомендаций от ML моделей. И оба таких раза пришлось закрывать пусть с небольшим, но с убытком. На диаграмме ниже приведены изменения депозита на реальном счете по сравнению с идеальным, если бы я торговал исключительно по рекомендациям. Ну что ж, выводы сделаны, буду больше доверять моделям и своим алгоритмам.

Machine learning: сколько могут заработать алгоритмы?

К сожалению (или к счастью?) искусственный интеллект и в трейдинге справляется гораздо лучше человека. Человек просто не способен анализировать огромное количество разных параметров и движений на рынке, а машины с этим уже справляются. Продолжаю развивать проект, теперь у меня еще больше идей и планов.

Телеграм канал проекта - https://t.me/right_side_vision

88 Комментариев
  • Чёрный Трейдер
    02 марта 2021, 16:44
    Без ссылки на гитхаб этот текст не имеет смысл.
  • 3Qu
    02 марта 2021, 16:54
    Что-то не встречал я людей, зарабатывающих торговлей по ML, но обсуждающих эту тему годами, как грязи.
      • 3Qu
        02 марта 2021, 17:10
        Abel, Ну эт как в анекдоте:
        — сосед в 75 лет говорит, что может 5 раз, а я ни разу.
        Врач: Ну, и вы говорите.
  • Олег Коробкин
    02 марта 2021, 16:54


  • VladMih
    02 марта 2021, 16:59
    Почему же в публичном пространстве
    почти не встречается историй успеха?
    Во, наконец-то появилась… история )))

    Уважаемый, какие нах истории, если уже даже на ру-рынках через 70% переваливает объём торгов, совершаемый роботами. На Западе так и через 80 давно перевалил.
    Сколько вам еще историй нужно?

    Ну и на смартлабе каждый месяц многие постят отчеты алготрейдинга.
    Желающий глаза да увидит, желающий прихвастнуть даже не посмотрит
    • 3Qu
      02 марта 2021, 17:05
      VladMih, речь, воще-то, о ML, а не об алго вообще. Алго весь MQL.com забит под завязку.
  • SergeyJu
    02 марта 2021, 17:06
    Ну понятно, Вы наловчились увеличивать счет в 10 раз за каждый год. И хотите порадовать дальних. 
    Еще 3 года и будет тысяча немаленьких депозитов. И форбс у Ваших ступней. 
      • 3Qu
        02 марта 2021, 17:25
        Abel, кстати уж, опишите вкратце принципы построения своей ML. Know how раскрывать не надо.
          • 3Qu
            02 марта 2021, 17:31
            Abel, Tensorflow, что именно? — нейросеть, леса-деревья, Байес? Прогнозирование или классификация?
              • CloseToAlgoTrading
                02 марта 2021, 17:37
                Abel, а говорите ничего не продаете? :) вот сразу и чатик ))
                  • CloseToAlgoTrading
                    02 марта 2021, 17:49

                    Abel, да я просто над вами немножечко подшучиваю. Все мы что то да продаем. 

                    Было бы интересно узнать детали, но переходить для этого в телегам чатик не хочется. 

                    У вас 13 сделок судя по графику за месяц было, зачем вам инфляция в фичах? как часто вы вообще сделки совершаете?

                    • 3Qu
                      02 марта 2021, 17:53
                      CloseToAlgoTrading, 
                      Было бы интересно узнать детали, но переходить для этого в телегам чатик не хочется. 
                      Я не поленился, сходил-почитал — никакой конкретики там тоже нет. Все как и в любых других темах/обсуждениях по ML.
                      • CloseToAlgoTrading
                        02 марта 2021, 18:09
                        3Qu, меня вот последнее время волнуе тема приведения цены к одному диапазону, и мне кажется, лучшее что я пока нашел :) это графической представление )). Ибо как нам известно, все нейросети очень чувствительны к входным данным.
                          • CloseToAlgoTrading
                            02 марта 2021, 18:36
                            Abel, я чет сегодня плохо мысли выражаю, я про распределение наверное больше.
                        • 3Qu
                          02 марта 2021, 18:16
                          CloseToAlgoTrading, оч. просто делается. Пусть цена C[i]. Тогда для приведения интервала:
                          с[i] =(C[i] -C[0])/C[0] или с[i] =(C[i] -C[I])/C[I] — это по последнему значению I. Можно это на константу умножить, чтобы значения не слишком маленькими были.
                          Я так делаю.
                          • CloseToAlgoTrading
                            02 марта 2021, 18:34

                            3Qu, хмм… ну вот смотрите, может я туплю конечно, но допустим у нас есть цены и мы их приводим к одному диапазону, как ниже Abel спрашивал, нормализацуем от 0 до 1. Без всякого рода преобразований, нам надо знать диапазон входных данных и если новое значение будет выходить из этого диапазона мы не сможем его использовать, ну или сможем приравнять к 1. Что ж, так себе вариант. Далее мы возмем и будем приобразовывать скажем по вашей формуле, или можно по процентному изменению, или логорифмическими процентами, или еще как то. Получаем вроде бы более менее приемлимые одинаковые данные, но опять таки сталкиваемся с проблемой, что в обучающей выборке у нас будет минимум и максимум. Я имею ввиду, если у нас скажем все наши данные в выборке для обучения болтаются в каком то диапазоне, а потом этот диапазон меняется, но мы больше не можем доверять модели.

                            однако глядя на график 80х120 пикселей мы всегда имеем один и тот же диапазон для обучения, и использования в будущем :)… вопрос конечно что именно мы видим на картинке, и какие пиксели задействованы.. 

                            • bstone
                              02 марта 2021, 18:44
                              CloseToAlgoTrading, график 80х120 пикселей будет эквивалентен вполне себе случайному масштабированию входных данных :)
                              • CloseToAlgoTrading
                                02 марта 2021, 18:56
                                bstone, возможно, но мы получим другое их представление. Хотя вполне вероятно, что это тоже самое только вид сбоку ). Если будет какой то вразумительный результат, сообщу. 
                            • Михаил
                              02 марта 2021, 19:07
                              CloseToAlgoTrading, подход взять просто доходность, как написал 3Qu, вполне адекватный. Можно еще BN сразу после входа поставить. Если вас беспокоит вопрос оценки достоверности на данных сильно отличающихся от обучающих примеров, то есть целый ряд приемов.
                              Наиболее рабочий из offline RL — делается несколько прогнозов и смотрится их дисперсия. На данных близких к обучающей выборке дисперсия разных прогнозов будет небольшая, а за пределами большая. В офлайн RL обычно не используют прогнозы в области большой дисперсии. Если модели легкие, то можно учить сразу несколько, если тяжелые, то обычно берут общюю основу и несколько легковесных голов. 
                              • SergeyJu
                                02 марта 2021, 19:16
                                Михаил, не могли бы намекнуть, как приспособили RL к ценовым данным? 
                                • Михаил
                                  02 марта 2021, 19:21
                                  SergeyJu, а в чем проблема? Мне кажется, для классического трейдинга одной позицией все делается прямолинейно.

                                  Я торгую портфелями, вот тут пока не придумал, как RL приспособить, поэтому не использую. 
                              • CloseToAlgoTrading
                                02 марта 2021, 19:18
                                Михаил, дабы уточнить, offline RL (offline reinforcement learning)? если да, то что то не улавливаю идею зачем тут RL. 
                                • Михаил
                                  02 марта 2021, 19:25
                                  CloseToAlgoTrading, я вас не призываю RL использовать. Просто в offline RL проблема, что обучающие примеры сильно могут отличаться от реальных является ключевой. Там эта тема широко исследована. Основной приём борьбы на пальцах описал — много моделей и оценка их разброса. Если он большой, то мы понимаем, что видимо попали в область непознанного и не пользуемся прогнозами. Если разброс не большой, то пользуемся средним прогнозом. Ничего не мешает делать это для обычного DL или ML.
                                  • CloseToAlgoTrading
                                    02 марта 2021, 19:27
                                    Михаил, благодарю за разъяснение, теперь я понял вашу мысль. 
                            • 3Qu
                              02 марта 2021, 20:10
                              CloseToAlgoTrading, если так хотите, то можно делить на Сmax на интервале анализа. Мне кажется, что это не оч рулит, тогда флет на интервале будет аналогичен по диапазону большим движениям.
                              В моем случае, относительный диапазон более-менее сохраняется.
                              ЗЫ Кстати, на приведенной мной нормализации НС и леса-деревья вполне сносно прогнозируют, при условии, что прогнозируется не каждый чих, а заранее отобранные области.
                          • ch5oh
                            02 марта 2021, 23:21

                            3Qu, это же просто приращения цен, пересчитанные в проценты? Вроде, есть инттегральное ощущение, что так вот «в лоб» не работает...

                            • 3Qu
                              02 марта 2021, 23:25
                              ch5oh, типа того, только приращения относительно 0-го или последнего отсчета в выборке. Это просто нормирование.
                              В лоб это действительно не работает, но самому ML действительно больше ничего не нужно.
                              Там ниже есть коммент немного развивающий тему.
                        • SergeyJu
                          02 марта 2021, 18:46
                          CloseToAlgoTrading, а зачем вообще приводить к одному диапазону? Мне не кажется, что это правильно. Я просто логарифмирую и привожу к нулю всех в один и тот же момент времени.  
                          • CloseToAlgoTrading
                            02 марта 2021, 18:51
                            SergeyJu, да просто это какое-то империческое наблюдение что ль, или внутреннее убеждение, что это лучше работает с нейросетями.
                            • SergeyJu
                              02 марта 2021, 18:56
                              CloseToAlgoTrading, имхо, мое эмпирическое наблюдение состоит в том, что многие обычные «привычки» программистов, наловчившихся дергать ML за усы, мешают им работать с ценовыми рядами. 
                              • CloseToAlgoTrading
                                02 марта 2021, 19:06

                                SergeyJu, ох, боюсь есть большая доля правда в ваших словах. 

                                Однко, не спора ради, но мы ведь видим, что стандартные методы работы с ценовыми рядами, часто не дают никакого значимого улучшения и в итоге получаем фичи которые на самом деле не несут в себе никакой предстказалетной силы. Поэтому приходится применять воображение и магию ), но и конечно не стоит отметать метод работы с ценовыми и временными рядами.

                                • 3Qu
                                  02 марта 2021, 21:12
                                  CloseToAlgoTrading, да, не нужны ML никакие фичи. Подаем на ML ценовой ряд, а нужные фичи, при необходимости, ML сама построит. Если есть что строить.))
                                  • CloseToAlgoTrading
                                    02 марта 2021, 21:15
                                    3Qu, это точно нет :)
                                    • 3Qu
                                      02 марта 2021, 21:18
                                      CloseToAlgoTrading, это точно, да! )) С фичами уже оч мало кто работает, предпочитают работать с подготовленными данными напрямую. Если в данных есть что обнаруживать — ML это обнаружит. Если нет — никакие фичи это не исправят.
                                    • 3Qu
                                      02 марта 2021, 21:23
                                      Abel, смотря чему и как учить. Часто и одного ценового ряда достаточно, в смысле данных, но не в смысле обучения. Для обучения неплохо бы знать — чему именно учишь.))
                                    • 3Qu
                                      02 марта 2021, 21:56
                                      Abel, 
                                      ЗЫ Вот, кстати, от старых экспериментов картинка сохранилась по прогнозированию котировок:

                                      По х — прогнозируемое значение, по У — реальное значение через время Т. Для прогноза используется толко и непосредственно используется ценовой ряд, ничего больше.
                                      Все значения нормированы к некоторому диапазону. При прогнозе >1.5 почти все будет в плюс. При прогнозе в окрестностях нуля, естественно, ничего интересного мы не увидим.

                                      А вы говорите — фичи.))
                                      • SergeyJu
                                        03 марта 2021, 10:19
                                        3Qu, Ваш прогноз и есть то, что обычно называют фичей. Если найти еще что-нибудь независимое от него, вторую фичу, то Вы вообще — король. 
                                        • 3Qu
                                          03 марта 2021, 11:45
                                          SergeyJu, это не фича, а уже результат работы МО непосредственно с ценовым рядом.
                                          • SergeyJu
                                            03 марта 2021, 12:00
                                            3Qu, это как поглядеть.
                                        • 3Qu
                                          04 марта 2021, 18:42
                                          SergeyJu, уж коли старый график вылез, задумался, и, вроде, пришло в голову как это реально использовать. Возможно и удастся ее применить.
                                          Раньше метода с НС не пошла, т.к. оказалось, что она не эффективней существующей стратегии.
          • ch5oh
            02 марта 2021, 23:18
            Abel, нужны, конечно, подробности. Без них весь пост — обычное «ля-ля» на завалинке. =)
              • ch5oh
                02 марта 2021, 23:31

                Abel, какими «подробностями»? Что Вы использовали Tensorflow? =)

                 

                ПС Телеги нет и не будет, звиняйте. Мне СЛ хватает.

      • SergeyJu
        02 марта 2021, 18:39
        Abel, более-менее объективный срок для оценки работы управляющего в мире измеряется не месяцем, а годами. И люди смотрят не на голую доху, а на то, как она достигнута. Какие риски, какие издержки и так далее. 
        Вы сказали, что за месяц у Вас волшебный результат, а бэктест за годы еще более волшебный по дохе. Про риски ничего не сказали, про издержки тоже. То есть подход явно дилетантский. Возможно, Вы нашли жемчужину в куче навоза. Но верится в это с трудом.
        P.S. А ходить по чатикам и телегам как-то не принято тут. Всегда можно ответить прямо и по существу. 
  • Replikant_mih
    02 марта 2021, 18:18

    Вижу легкую внутреннюю несогласованность в посте).


    С одной стороны имеем результаты за февраль, которые, как вы говорите, соответствуют бэктестам, т.е. типа норма. А за февраль видим шарп 9 и прочие вещи. Т.е. между строк читаем: модель феерическая.

     

    И далее вы пишете, что руками два раза торговали и пишете так неуверенно, что становится понятно, что вы не особо руками торгуете.

     

    И возникает резонный вопрос, какого лезть руками, если руками не умеешь и знаешь, что у тебя феерическая модель). Нипаняятна.

    Направшиваются выводы: модель не феерическая или её феерические результаты ближе к случайным.

      • Replikant_mih
        02 марта 2021, 18:35
        Abel, А понял. Спасибо.
  • bocha
    02 марта 2021, 18:51
    Запах телеграм-заманухи в посте сильнее запаха торговли. 
  • svgr
    02 марта 2021, 19:39
    Почему же в публичном пространстве почти не встречается историй успеха? Не знаю, возможно потому что деньги любят тишину.

    Потому что использование ML лишь упрощает перебор в большинстве случаев. В рамках заданных условий и направления поиска.
    А если за этими условиями ничего позитивного и реально существующего нет?
    Нужна идея, которая может что-то дать. Это должно быть интуитивно понятно. И эту идею нужно суметь передать ML.
  • ELab
    02 марта 2021, 20:16
    13 сделок за месяц? К ML отношусь скептически — упираюсь в стат. арбитраж. 
    PS. На финише алго, который будет делать 500+ сделок @ES в день.
      • ELab
        02 марта 2021, 21:00
        Abel, 1 usd на круг на лот
          • ELab
            02 марта 2021, 21:08
            Abel, у компаний у которых есть членство на бирже. Можно еще в лизинг взять место на бирже. но с такими оборотами нет смысла.
              • ELab
                02 марта 2021, 21:17
                Abel, посмотрите сколько платят члены биржи. по компании не помогу (как вы и сказали — деньги любят тишину). стоит ли заморачиваться ради 10-20 сделок этим всем?
                  • ELab
                    02 марта 2021, 21:58
                    Abel, советую написать своему брокеру и рассмотреть вопрос лизинга членства на СМЕ — они с радостью ответят и помогут
                      • ELab
                        02 марта 2021, 22:10
                        Abel, любой каприз за ваши деньги. Да и брокера можно на 1-2-3 сменить. Google «cme membership lease»
    • Schurik
      02 марта 2021, 22:03
      ELab, так Вы подошли уже к финишу? Я помню, у Вас были посты, в которых Вы рассказывали о том, что начали торговать на CME, но потом я так понял, что не пошло и закруглились.
      • ELab
        02 марта 2021, 22:05
        Schurik, те попытки были смешные ;) сейчас другой алго
        • Schurik
          02 марта 2021, 22:15
          ELab, ну так он работает уже этот новый алгоритм?
          • ELab
            02 марта 2021, 22:45
            Schurik, на финишной прямой. Осенью обкатал на «бюджетном окружении». Есть надежда, что прокатит ©
            • Schurik
              02 марта 2021, 22:55
              ELab, на обычном сервере или на сетевой карте с FPGA будете работать?
              • ELab
                02 марта 2021, 23:03
                Schurik, на сервер будет крутиться. это стат. арбитраж с традиционными элементами кодинга — «гавно и палки»… ;)
                • Дмитрий Овчинников
                  02 марта 2021, 23:44
                  ELab, 
                  не хотел бы портить ваш мимимшный диалог, но гавна в вашем арбитраже существенно больше, чем палок. Так что, в таком виде, как в публикациях на смартлабе, это до продакшна не дойдет.
              • ELab
                02 марта 2021, 23:03
                Abel, да, как запуск будет — в общих чертах поделюсь. надеюсь, что успехом
  • Машковский Евгений
    02 марта 2021, 23:00
           Важен не нейросетевой инструмент, а идея, что думать(что искать), вот тут миллион проблем и всплывают, начиная с «проклятия размерности». Всё равно, что с электронным микроскопом ползать по лесу и искать где север. Когда знаешь, что ищешь, есть модель, можно и с сеткой и без строить прогнозы. А так, простите, каша из топора, лично моё мнение.
  • sis12qw
    03 марта 2021, 12:56
    а я готов поучаствовать ) пустите меня в чатик
    в свое время всякие нейросети на дельфях и сиплюсплюсах делал
  • Stas Dzyuba
    04 марта 2021, 12:05
    Блин ML работает конечно — на растущем рынке он работает как и все другое, это такой вариант не париться с составление портфеля,  ARIMA-GARCH + пара фильтров — пожалуйста — thefinefolio.com/ — до сих пор сижу фиттингом занимаюсь, зарабатывает хорошо при ребалансировке каждую неделю
  • Stas Dzyuba
    04 марта 2021, 12:08
    что будет с ML стратегией, когда рынок упадет? Ее нужно будет остановить и вернуться к Мартышкам на боковике?

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

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