Владислав Кузьменков
Владислав Кузьменков личный блог
30 ноября 2019, 16:16

Машинное обучение — будущее всего алготрейдинга?

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

Основное отличие машинного обучения от традиционного программирования состоит в том, что в задачах классического программирования вы знаете некие правила и жестко программируете их в поведении программы; в задачах машинного обучения вы не знаете по каким конкретно правилам должна работать программа и позволяете моделям машинного обучения самим найти их. Если вы хотите создать торгового робота, обычно, вы сами ищете некоторые правила (например, пересечение скользяшек, MACD>80 при убывающей луне — покупаю 2 лота) и жестко задаете такое поведения в роботе, тестируете и, возможно, оптимизируете некоторые параметры, но почему бы не поручить само придумывание правил машине? Методы машинного обучения, в теории, могут сами выбрать индикаторы, разработать правила входа, выхода и оптимальный размер позиций. Да чего уж… они могут сами придумать индикаторы, паттерны, которые могут быть гораздо лучше чем то, что придумали до этого люди. Ведь так и случилось в сфере обработки изображений, нейронные сети научились выделять значимые признаки из изображений гораздо лучше, чем алгоритмы, придуманные людьми. Компьютер обыгрывает людей в шахматы — игру, знания для которой люди накапливали ни одну сотню лет. Станет ли алготрейдинг следующей сферой, где будет господствовать нейронные сети или какой другой метод машинного обучения?

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

Вот вам цитата из заслуживающей прочтения книги Шолле «Глубокое обучение на Python»:

«Некоторые читатели наверняка захотят воспользоваться приемами, представленными здесь, для прогнозирования стоимости ценных бумаг на фондовом рынке (обменных курсов валют и т. д.). Рынки имеют совершенно иные статистические характеристики, чем природные явления, такие как погода. Использование машинного обучения для предсказания поведения рынков, когда имеются только общедоступные данные, — сложная задача, и вы, скорее всего, просто потратите силы и время, так ничего и не добившись.»

Я торгую на рынках уже почти десяток лет и последние 2 года я очень много занимаюсь анализом рыночных данных, в том числе методами машинного обучения и, в частности, нейронными сетями. Несмотря на то, что у меня есть доступ к различным платформам начиная от всем известного блумберга до совсем нового ICE Connect, Python настолько полезен для меня, что остается вне конкуренции. Но я соглашусь с Ф. Шолле о том, что если вы попробуете применить нейронные сети для трейдинга, то, скорее всего, вас ждут только боль и страдания. Но у меня есть кое-что специально для тебя, дорогой читатель. Нет, не грааль, приносящая миллионы, а кое-что получше, то, что может избавить тебя от первоначальной боли и страданий — базовое решение. Это простое решение, в котором есть масса возможностей для улучшений и с которого можно начать. Это простое решение, несмотря на то, что основано на сырых общедоступных данных, использует очень простые методы, вдруг оказалось способно выдавать net+ на тесте (что для меня, на самом деле, было неожиданно). Вот чего может достичь базовое решение на тесте (но, похоже, для базового решения это максимум):
Машинное обучение — будущее всего алготрейдинга?

Данные взяты с финама Экспорт (МосБиржа фьючерсы RTS) получасовики (собранные из 5-ти минуток)

Для обучения: с 2009-08-18 до 2016-10-13

Для валидации: с 2016-10-13 до 2018-03-19

Для теста: с 2018-03-19 до 2019-08-13

На картинках результаты теста (результат в пунктах, комиссия 10п).

Сложно ли понять как это работает и как это запрограммировать? Нет, достаточно двух дней вот этого курса https://red-circule.com/courses/11710, если же вы понятия не имеете, как эти сверточные сети работают или хотите получить очень простой ликбез по машинному обучению, вначале зайдите вот сюда, это бесплатно: https://red-circule.com/courses/11709

От двухдневного курса не следует ожидать готового торгового робота, которого можно сразу запустить в реал, на нем не будет и разбора того, как keras модель запустить торговать на реале. Этот курс — моё руководство к тому, с чего лучше начать свой путь создания робота на основе нейронной сети. Я расскажу пару «фишечек», которые могут быть полезны и в обычной торговле, но бОльшая часть информации не секретна, и её можно найти в свободном доступе. Кроме того, вот вам даже функция генерации этой самой нейронной сети.


def get_policy_model(lr,dimen=(38,4)):

   num_actions = 3

   inp = layers.Input(shape=(38,4),name=«input_x»)

   adv = layers.Input(shape=[1], name=«advantages»)

 

   x = layers.Conv1D (12,3,activation='relu')(inp)

   x = layers.Conv1D (24,3,activation='relu')(x)

   x = layers.MaxPool1D(2)(x)

 

   x = layers.Conv1D (32,5,activation='relu')(x)

   x = layers.MaxPool1D(2)(x)

 

   x = layers.Flatten()(x)

   x = layers.Dense(50,activation='relu')(x)

   out = layers.Dense(3,activation='softmax')(x)

 

 

   def custom_loss(y_true, y_pred):

      log_lik = K.log(y_true * (y_true — y_pred) + (1 — y_true) * (y_true + y_pred) + K.epsilon())

      return K.mean(log_lik * adv, keepdims=True)

 

   model_train = Model(inputs=[inp, adv], outputs=out)

   model_train.compile(loss=custom_loss, optimizer=Adam(lr))

   model_predict = Model(inputs=[inp], outputs=out)

   return model_train, model_predict


Надеюсь, это никого не отпугнуло, код гораздо проще, чем может показаться. Метод обучения — Policy Gradient, выход соответствует трем действиям: шорт, нет позиции, лонг. Открытие позиции происходит по цене открытия следующего бара, закрытие — по цене закрытия бара. Gym-окружение я выложу чуть позже.

И пока на этом всё, успейте заработать, пока всю прибыль ещё не забирал ИИ.

 

*но автор данной статьи этого гарантировать не может





100 Комментариев
  • aqr
    30 ноября 2019, 16:23
    Жаль нельзя минусовать
  • chizhan
    30 ноября 2019, 16:41
    Так что да, можно гордиться, что у нас (трейдеров) очень сложная профессия.
    Давайте будем реалистами. Мы ищем золото в почти пустой породе, где его почти нет. Вместо того чтобы ехать на Клондайк и столбить участок там. Сами подумайте, если толпы домохозяек на доступных платформах начнут применять нейросети, то никаких закономерностей не будет вообще. Фактически так и есть, нейросетям сто лет в обед, а все более менее богатые инвест банки могут позволить себе и вычислительные ресурсы и квалифицированный персонал для них.
  • ezomm
    30 ноября 2019, 17:42
    Открытие сделки проявляет в авторе мастера торговли.Но закрытие в прибыль  можно делать по любому поводу.Закрытие сделки в убыток -средний размер свечи тайма. Про вход в сделку знают волновики. Мораль- учим волновой анализ Эллиота и торгуем свечной график.
  • А. Г.
    30 ноября 2019, 18:07
    Да уж сколько раз писалось, что современное машинное обучение — это лишь метод поиска нелинейной регрессии. Для нестационарных рядов, каковыми являются приращения цен, использование постоянной нелинейной регрессии — это изначально ошибка. А для статистически достоверного периодического перестроения нелинейной  регрессии явно не хватит отрезка почти стационарности в данных цен. Если и применять нейросети на рынке, то явно не для задачи построения систем по прошлым ценам. 
    • Kot_Begemot
      30 ноября 2019, 18:50
      А. Г., линейная регрессия, вероятно, для нестационарных рядов подходит куда лучше? 
      • А. Г.
        30 ноября 2019, 19:07
        Kot_Begemot, не знаю, но когда я «учил» перцептроны в далёком 1997-м году и брал только те нейросети, у которых СКО ошибки на обучающей выборке статистически не отличалась от СКО на тестирующей, то лучшая такая нейросеть практически совпала с обычной линейной регрессией.
        • Kot_Begemot
          30 ноября 2019, 19:52
          А. Г., линейной регрессией? Занятно.

          Таким образом, получается, что ВР всё же стационарен, если сама линейная регрессия — стационарна в широком смысле.

          Вероятно, если бы цены были нестационарны, то нейросети нашли бы что-то получше, я правильно вас понимаю?
          • А. Г.
            30 ноября 2019, 19:57
            Kot_Begemot, если участки стационарности коротки, то использование нелинейностей ни к чему не приведёт. А предикативность у всех регрессий была не ахти. На обучающей выборке получались шикарные нейросети, только на тестирующей они ничего путного не показывали. 
            • Николай Скриган
              02 декабря 2019, 17:57
              А. Г., наблюдал похожее. Коллега в 2006 году с нейросетями возился. Результаты на тестирующей выборке были хуже графического анализа.
        • Mackenna
          01 декабря 2019, 06:41
          А. Г.,  Подтверждаю! Я изучал перцептроны в этом году — результат тот же, RMSE нейросети практически совпадает с ошибкой линейной регрессионной модели.
      • А. Г.
        30 ноября 2019, 21:51
        Владислав Кузьменков, для того, чтобы качественно обучить сеть на паттерны для торговли, Вам сначала их придётся формализовать в конечное множество с числом исходов в разы меньше длины обучающей выборки. Ведь любую последовательность длины n можно точно «описать» многочленом с максимальной степенью n. Только толку от этого для прогноза n+1 члена нуль.
        • Replikant_mih
          30 ноября 2019, 23:54
          А. Г., Сначала формализовать паттерны это если мы знаем паттерны и учим находить их, а если мы не знаем паттерны и нахождение паттернов это и есть результат обучения, то ничего формализовывать на входе не надо, разве нет?
          • А. Г.
            01 декабря 2019, 10:36
            Replikant_mih,  Вы говорите о нейсети для формализации паттернов. Тут обратная задача: её выход должен быть конечен и формализован. Ну двухэтапно можно попробовать: сначала нейросеть для формализации, потом результат формализации на нейросеть для сигналов.

            Но в любом случае надо предварительно корректно решить задачу конечной формализации до обучения нейросетей. 
            • Replikant_mih
              01 декабря 2019, 12:17

              А. Г., Может из-за того, что я не шарю в нейросетях (а я не шарю), может из-за того, что мы где-то понятийно разошлись...

              В общем, о чем говорю я: обучение любой модели — это уже то самое выявление паттернов, для каких-то типов моделей это самые что ни на есть типичные паттерны, которые трейдер имеет в виду, для каких-то что-то что можно назвать паттернами только если сильно обобщить это понятие. Например, дерево решение, на выходе каждый путь, ведущий к True по сути это паттерн, т.е. паттерн_1: a>5, b<3.5, c>9 — вполне себе паттерн, разве нет? Нейросети, подозреваю, тоже в процессе обучения выявляют паттерны, используемая модель, её тип и признаковое пространство определяет характер паттернов — это да. Соответственно, обучение модели — выявление паттернов, использование поиск выявленных.

              • А. Г.
                01 декабря 2019, 13:14
                Replikant_mih,  сами по себе они ничего не выявят, если не задать обучающую выборку «вход-выход». И одна из составляющих этой пары должна быть формализована до обучения. 
                • Replikant_mih
                  01 декабря 2019, 13:51
                  А. Г., Выход в смысле разметка данных? — Ну берешь в качестве таргета приращение цены через некоторое вол-во свечей в будущем.
                  • А. Г.
                    01 декабря 2019, 16:33
                    Replikant_mih,  да про это я уже писал. Ничего путного нейросети в этой задаче не дают. 
                    • Replikant_mih
                      01 декабря 2019, 16:35
                      А. Г., Ну, давайте добавим чуть конкретики и постулат изменится) — ничего путного нейросетевые модели уровня 1997 года не дают) — достоверно ведь вы можете только это утверждать. Там же много чего появилось за эти десятилетия. 
                      • А. Г.
                        01 декабря 2019, 17:20
                        Replikant_mih, я говорил о перцептроне. Если с ним ничего не изменилось, то ничего и не изменилось и сегодня. Тем более только выше в ответе мне было рассказано о современных исследованиях. 
                        • Replikant_mih
                          01 декабря 2019, 18:37
                          А. Г., Перцептрон, может, и не изменился, но там много всяких типов сетей появилось. По поводу «рассказано», ну вот вспомните, что «рассказывают» про известные вам истины — всегда то, что рассказывает соответствует действительности?)
                          • А. Г.
                            01 декабря 2019, 19:58
                            Replikant_mih, да все нейросети — нелинейные функции. Перцептроны интересен тем, что им можно приблизить любую нелинейную функцию в поле действительны чисел. Поэтому, если у перцептрона не получилось нормально предсказать будущее приращение цены по прошлым ценам, то не получится и у других.

                            Формализация в конечное множество (уход от поля действительны чисел в другую структуру) может дать результат, но без неё ничего не получится. 
                            • Михаил
                              01 декабря 2019, 22:38
                              А. Г., в 1997 году перцептроном не получалось классифицировать изображения совсем. Современный RezNet делает это лучше человека. 
                              • Replikant_mih
                                01 декабря 2019, 22:45
                                Михаил, Ага, согласен, это как примерно увидеть первую в мире мобилу и забраковать весь будущий класс устройств на основе первого впечатления.
                              • А. Г.
                                01 декабря 2019, 23:41
                                Михаил,  так это совсем разные задачи — случайные нестационарные временные ряды и изображения. Перцептрон без внешних формализаций — это лишь инструмент построения многомерной нелинейной регрессии в поле действительных чисел. Для задачи распознавания образов лучше было использовать сеть Кохонена.
                                • Михаил
                                  02 декабря 2019, 00:11
                                  А. Г., никто не использует перцептрон на практике, как и сети Кохонена. В современных сетях либо нет, либо 1-2 из сотни полносвязный слоев, поэтому разговоры об перцептроне и его пользе просто смешно вести. Да, они не работают для решения большинства практических задач. С 1997 года много чего напридумывали, что действительно работает, в том числе для анализа временных рядов, изображений, звука, для совсем нестационарный игры в го.
                                  • А. Г.
                                    02 декабря 2019, 00:23
                                    Михаил, игра в ГО, изображения, звуки — это все конечные вариации. А насчёт нестационарных временных рядов ссылками не поделитесь? 
                                    • Михаил
                                      02 декабря 2019, 09:56
                                      А. Г., с практической точки зрения даже изображение в современных задачах по распознанию это пространство хоть и конечное, но имеющее размер порядка 256^3^(500 * 500), что можно считать вполне бесконечным с практической точки зрения. В звуке еще больше.
                                      Базовые архитектуры сетей для вероятностного анализа временных рядов можно посмотреть в этой библиотечке https://gluon-ts.mxnet.io/index.html
                                      Про конкретное применение ML для предсказания будущих котировок по динамике стакана слушал только в эти выходные (видио):
                                      Победителем было построено 50 моделей с помощью градиентного бустинга (на базе LightGBM)
                                      Предсказание этих моделей было объединено с помощью ElasticNet (на базе sklearn)
                                      • А. Г.
                                        02 декабря 2019, 10:35
                                        Михаил, пространство то может быть большим, но в распознаваемых данных есть четкие закономерности. Это как открытый текст в множестве всех последовательностей из букв, знаков препинания и пробела.
                                        • Михаил
                                          02 декабря 2019, 11:04
                                          А. Г., вы смогли найти закономерности, насколько я понимаю, значит они есть. Ну и сеть найдет — сделайте нормальную архитектуру, а не пару банальных dense слоев. Заложите в нее туже логику, которая есть в вашем подходе. Нужно заглядывать в историю на десятки шагов (GRU, LSTM), на сотни (attention, conv), на тысячи (dilated conv), нужно добавить возможность учитывать особенность отдельных бумаг (embedding), хотите, чтобы сеть научилась включать условный «фильтр пилы» (gated unit), хотите чтобы сеть выбирала между несколькими сигналами в зависимости от обстоятельств (attention, softmax, squeeze and excitation). Современные работающие сети эта кропотливая работа над архитектурой, а не пару dense слоев. 
                                          • А. Г.
                                            02 декабря 2019, 13:45
                                            Михаил, чем больше слоев, тем больше вероятность найти то, чего нет. В задаче поиска закономерностей во временных рядах не может быть число степеней свободы больше числа испытаний. И вообще первое должно быть, как минимум, на порядок меньше второго.
                                            • Михаил
                                              02 декабря 2019, 14:18
                                              А. Г., в современных сетях обычно делается много слоев (от десятков до пары сотен), но слои очень легковесные. Собственно поэтому избегают полносвязный слои, так как в них крайне много параметров. Если вы забубните слой 3х500х500 после слоя 3х500х500 для анализа картинок, то будет иметь 3^2 * 500^4~600 млрд параметров,  а 200 слойном DenseNet всего 20 млн. параметров. 
                                              Это характерный пример, как сильно современные архитектуры отличаются от  перцептрона. Ну и да нужно много данных.
                                              • А. Г.
                                                02 декабря 2019, 14:28
                                                Михаил, да у нас данных цен нет длинной 200 млн. тактов. Разве что тики. 
                                                • Михаил
                                                  02 декабря 2019, 14:50

                                                  А. Г., во-первых ваше допущение о соотношении количества данных и параметров не совсем верно. Оно работает для классических статистических методов, но не действует для сетей — DenseNet тренировали на в 1 млн изображений, то есть параметров в нем в 20 раз больше, чем обучающих примеров. Если грубо, то там зашито очень много регулиризации (за счет Batch Normalization, DropOut, Weight Sharing, Residual connection и прямой L2 регуляризации на веса), потому эффективное количество параметров существенно меньше.

                                                  Во-вторых, вас никто не заставляет делать сеть такого размера. Допустим вы захотите заглянуть в историю на 3 сотни значений котировок назад, допустим вы еще объем подтяните — входной вектор данных у вас 300х2 = 600, а у DenseNet около 150 тысяч, то есть в 250 раз меньше — параметров у вас будет не 20 млн, а 80 тысяч при сопоставимой архитектуре.

                                                  • А. Г.
                                                    02 декабря 2019, 14:56
                                                    Михаил, оно не зависит от методов, а зависит от задачи. Если мы ищем статзакономерность, про которую ничего априори не предполагаем, то без этого соотношения ничего путного не найдем. Ведь любую последовательность из n точек можно точно приблизить многочленом степени n (n+1 степень свободы с учетом свободного члена).  Только толку от этого нуль.
                                                    • Михаил
                                                      02 декабря 2019, 15:03
                                                      А. Г., но если вы наложите достаточно серьезную L2 регуляризацию на коэффициенты многочлена, то провести точно не сможете, и вполне можете получить разумное приближение с помощью этого многочлена. 
                                                      • А. Г.
                                                        02 декабря 2019, 15:12
                                                        Михаил, а смысл?
                                                        • Михаил
                                                          02 декабря 2019, 15:25

                                                          А. Г., в вашем экстремальном примере большого смысла нет, кроме как поизвращаться и показать, как работают некоторые методы ML. 

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

                                                          Если посчитать количество параметров в каком-нибудь GBM, то там легко окажется около 10 тысяч решающих деревьев и порядка 1000 листьев в каждом, для задания которых потребуется порядка 10 млн параметров. Но GBM отлично работает всего на нескольких тысячах примеров.

                                                          • А. Г.
                                                            02 декабря 2019, 15:31
                                                            Михаил, я показал, что чисто математически число параметров больше числа измерений может приводить к абсолютно неверным выводам и заблуждениям. Отдельные удачные примеры не могут опровергнуть этого в общем случае. Потому что такие примеры могут быть только для структурированных данных. Какие? Ну изображения, открытые тексты, игры с конечным числом вариантов. Но все это «страшно далеко» от ценовых рядов.
                                                            • Михаил
                                                              02 декабря 2019, 15:48
                                                              А. Г., ну точно так же Тихонов чисто математически показал, что с помощью регуляризация вполне можно решать плохо поставленные задачи и обходить указанное вами ограничение на число параметров. Разработчики алгоритмов градиентного бустинга, современных сетей творчески развили эти подходы и предложили множество других способов регуляризации. 

                                                              Эти методы вполне применяются для прогнозирования цен, в том числе при недостатке данных. На последнем конкурсе Сибура нужно было прогнозировать цены на сырье по очень коротким рядам порядка 100 точек — обычные регрессии, ARIMA и т.д. как-то быстро ушли на второй план уступив место градиентному бустингу (лучшее решение было на catboost).
                                                              • А. Г.
                                                                02 декабря 2019, 15:53
                                                                Михаил, 100 точек и ARIMA c максимум 10 параметрами — вполне разумный вариант.

                                                                А насчет Тихонова, дайте ссылку на эту его теорему, чтобы понять что там математически.
                            • Replikant_mih
                              01 декабря 2019, 22:43
                              А. Г., Нет, неверные логические выводы (безотносительно истинности посылов) при не гарантированно достоверных посылах. Логик внутри меня негодует)). Ладно, в любом случае тут надо рисечить).
        • primat.kz
          01 декабря 2019, 17:22
          А. Г., интересно, а можно формализовать или оцифровать человеческую интуицию?
          • А. Г.
            01 декабря 2019, 17:39
            pammkz, откуда я знаю. Я же специалист в прикладной статистике, а она работает с рядами данных. Как интуицию разложить в ряд данных, я не представляю. 
    • Сергей Подоляк
      01 декабря 2019, 10:29
      А. Г., стоимость этого Вашего поста примерно 10000 USD. Большинство тут даже не представляет сколько времени, нервов и денег Вы им только что сэкономили. Но некоторые так и будут долбиться головой в стену по следу хайпа вокруг нейронок, поднятого журналистами.
      Давно (лично я) не видел чтобы вот так, двумя фразами, да ещё и «просто по ходу», можно было описать проблему, которую большинство принимает за «успех».
    • ves2010
      01 декабря 2019, 12:40
      А. Г.,  это верно если рассматривать цены как случайный процесс... 
      • А. Г.
        01 декабря 2019, 13:15
        ves2010,  а любой процесс, будущее которого нельзя предсказать точно — случаен. 
        • ves2010
          01 декабря 2019, 13:54
          А. Г., а как же тогда деньги делать, если нельзя будущее предсказать? мы оба торгуем ботами = вполне успешно предсказываем будущие ценовые ряды
          • А. Г.
            01 декабря 2019, 16:30
            ves2010, статистически предсказывает, т. е.  с ошибками. То же бросание монетки с вероятностью орла 0,55 — случайно, но ставя на орла, через 1000 испытаний мы будем в выигрыше с вероятностью больше 0,99.
            • ves2010
              01 декабря 2019, 19:10
              А. Г., при чисто случайном процессе было бы 50 на 50… и кроме того не было бы трендов — толстых хвостов…
              • А. Г.
                01 декабря 2019, 19:55
                ves2010,  Вы путаете случайность и непредсказуемость. Случайность — это невозможность точного прогноза, а непредсказуемость — это независимость прогнозируемой величины от известных на момент совершения прогноза. 
  • Максим Барбашин
    30 ноября 2019, 18:26
    Просто интересно.
    На этих машинных моделях автор уже в Форбс?
  • Антон Иванов
    30 ноября 2019, 19:00
    Эквити и результаты системы отвратительные. Никто такое не торгует в реале.
  • Vladimir Diaditchev
    30 ноября 2019, 19:09
    В ценах нет устойчивых закономерностей и сетки начинают «фантазировать» и на выходе  выдают черти что. Можно на одних и тех же входных данных, используя одну и ту же сетку несколько раз, получить разные прогнозы. Но если на вход этой же сетки подать временной ряд, описываемый какой либо формулой, то результат будет превосходный. Стоит только внести во входные данные  какие либо случайные изменения, результаты будут весьма далеки от идеальных. На Пайтоне не пробовал, на R результат негативный.
    Прогнозы и реальные цены выглядят примерно так и не важно какими методами они осуществляются. 
    • Врач-бондиатОр
      30 ноября 2019, 20:42
      Vladimir Diaditchev, такой же график был на MLP в Statistica.
      Принцип получился «Завтра будет то же, что и сегодня»
      • Vladimir Diaditchev
        30 ноября 2019, 21:58
        Врач-бондиатОр, У меня сохранились графики  с  прогнозами, полученные разными методами, на разных акциях. Там и сетки и Аримы и т.п Результаты примерно такие, как на представленном рисунке.  
  • Replikant_mih
    30 ноября 2019, 19:27
     И только тот, кто уже пробовал применять машинное обучение к рынкам, способен восхититься такими 'скромными' результатами модели.


    Пока учусь в данной области, пока простые модели использую, скоро и нейронные сети будут. Что-нить наобучаю интересного, думаю. Но ожидания все больше сдвигаются в сторону реалистичных), что хорошо.
      • Replikant_mih
        30 ноября 2019, 23:57
        Владислав Кузьменков, Ну я учу ML на другом, а к рынку хочу применить когда уже буду обучен, щас там просто иногда пробую натягивать ML на рынок без особых надежд.
      • ch5oh
        16 декабря 2019, 12:02

        Владислав Кузьменков, наверное, поэтому платный «околорынок» так не любят. Потому что априорно ожидается, что ничего путного прибыльного никто не расскажет. Одно дело встретиться на бесплатном вебинаре и «просто потрындеть», обменяться мнениями и т.п. Другое дело, когда Автор просит деньги за право послушать свой скучный голос, который ещё и не окупится никогда с высокой вероятностью.

         

        Ладно, это всё лирика.

        Курс начинается уже завтра надеюсь.
        Репозиторий доделали?
        Уже можно скачать GYM-окружение и т.д.?


        Хотелось бы не в последний момент бегать и судорожно устанавливать зависимости. Опять же чем более подготовленные будут слушатели, тем больше идей и полезной пользы прилетит Вам лично.

         

        Кстати, при том, что график эквити отвратителен, он явно построен в программе типа TSLab или велса.

        Хотелось бы одним из пунктов программы услышать, как Вы состыковали нейронку с торговой программой.

        Ведь не просто же забили в шарпном коде "В этот день покупаю, в этот день продаю"?..

  • Сергей Симонов
    30 ноября 2019, 19:42
    очередной инфоцыган...




  • Dmitryy
    30 ноября 2019, 23:50
    Мне кажется, сверточные сети — это не то что стоит применять на рынке. Имхо нужно смотреть в сторону построения случайных лесов, там вроде как статистика впечатляет.
    • Replikant_mih
      30 ноября 2019, 23:58
      Dmitryy, Что надо подавать в качестве пространства признаков чтобы статистика на лесах впечатляла? — Уверен, на приращениях она вас не впечатлит)).
      • Dmitryy
        01 декабря 2019, 00:18
        Replikant_mih, я пока сам озадачен этим вопросом, просто довелось как-то видеть презентацию одного фонда, и там была сравнительная таблица бектестов моделей статистических методов и деревьев, деревья выигрывали. Презентацию не найду…
  • alpet
    01 декабря 2019, 11:58
    Очень похоже, что это системы первого порядка, которые вырабатывают решение по большой выборке за прошлое, и пытаются использовать результат в будущем. Стоит-ли на этом останавливаться, сумневаюсь, возможно действительно результативной будет система второго порядка, которая обучается каждый день по разным ТФ, и использует результат обучения в течении следующего дня. Что-то такое я хотел сделать ещё до популяризации глубокого обучения, в формате автоматического подбора параметров индикаторов каждый день и использования их на следующий. Однако задачка оказалась слишком сложной…
    • SergeyJu
      01 декабря 2019, 13:12
      alpet, дообучаться можно с получением каждой новой порции рыночных данных, никакой технической проблемы, кроме более высокой трудоемкости, я тут не наблюдаю. Но такой процесс, к сожалению, менее устойчив и трудноконтролируем. 
      • Replikant_mih
        01 декабря 2019, 13:53
        SergeyJu, Ну да, автоматизировать обучение не проблема, получать максимальные показатели скорее всего можно только в ручную, автоматизировать получится получение хороших показателей. Но чтобы хорошие были тоже приемлемыми это должен быть приличный запас прочности в модели, а как показывает практика, даже просто плюсящую модель не так просто получить.
        • SergeyJu
          01 декабря 2019, 13:56
          Replikant_mih, если «модель» имеет 1-2 параметра, это одно. Но если на каждом такте получения данных заново запускать какую-нибудь сеточку, результат может быть воистину чудесатым.
          • Replikant_mih
            01 декабря 2019, 13:58
            SergeyJu, Не, ну должна быть в самом подходе и т.д. заложена устойчивость, т.е. если руками оно бы у тебя обучилось второй раз во что-то нормальное, то можно автоматизировать обучение, если не обучилось бы руками, то автоматизация ничего волшебного, конечно, сама по себе не внесет))
            • SergeyJu
              01 декабря 2019, 14:05
              Replikant_mih,  я о степенях свободы при дообучении. 
  • Replikant_mih
    01 декабря 2019, 14:00
     Кста, это ж TSLab, как к нему сетку прикрутить?) — кубики — нейроны, связи между кубиками — связи между нейронами? И при обучении конструкция начинает эволюционировать)).
  • Иван Файртрейдов
    01 декабря 2019, 16:47
    как вариант можно делать ряд более стационарным с помощью фильтров типа высокой волы, все равно с одного ценового ряда далеко не уедешь..
    главная доступная аномалия рынка в трендах связанных с распространением информации, но для этого вся эта машин леня не нужна…
    • Replikant_mih
      01 декабря 2019, 22:53
      Иван Файртрейдов, Хм, любопытная идея, а когда мы ряд сделаем более стационарным и, допустим, это позволить лучше делать прогнозы — потом обратно можно декомпозицию делать? — Ведь нам надо делать прогнозы в изначальной системе координат.
      • Иван Файртрейдов
        02 декабря 2019, 00:44
        Replikant_mih, да я попроще тему имел ввиду, начать с того почему рынки не стационарные? потому что… длинный список..
        но когда начинается  фукусима, горелкин или еще какой нибудь кипиш, в это достаточно короткий промежуток времени цена становится более стационарной и тогда можно включать молотилку. все это моя фантазия так, что без претензий…
        • ch5oh
          16 декабря 2019, 12:07

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

           

          Вопрос только, чтобы она не слила депозит пока ждет своего счастья.

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

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