Марат
Марат личный блог
12 октября 2020, 10:16

О тех индикаторах с точки зрения нейросетей.

Что если в качестве лейблов на выход подавать не рост/падение рынка завтра, а срабатывание каких то техиндикаторов? Есть несколько классических правил торговли. Ну например пробой снизу вверх Close BolingerUpperband это к покупке, и сверху вниз BolingerDownperband к шорту. Или дивергенция MACD. Или Close пробивает SMA. Ну а че вы смеетесь? Когда я работал в представительстве Финама, мы предлагали клиентам следовать корпоративной стратегии, а вся стратегия это пробои Болинджеров. Я, как человек который вообще тогда не понимал как это все делается, готовился услышать какую то хитрую систему для зарабатывания денег, от московских экспертов, а когда услышал «тайну», я такой «эээээ....». Или вот дивергенция MACD, открываешь википедию и там прямо «это сильнейший технический индикатор, если дивергенция то вот прям точно точно!». 
Месяц назад я пробовал подать на вход CNN+GramianAngular падение/рост рынка,  без каких то видимых успехов. Может тут проблема в инструменте?  Попробуем спрогнозировать с помощью нейросети срабатывание этих самых техиндикаторов, подав цены накануне. Причем усложним задачу, будем подавать не точное число баров, а фиксированное, скажем 30. То есть нейросетка получает избыточные данные: мы хотим предсказать пересечение Close c SMA(25) а мы ей 30 баров предлагаем. 
Сразу скажу, что результаты хорошие. Особо я не утруждался долгим обучением, но видно как сетка очень шустро, от эпохи к эпохе улучшает показатели точности. Ине суть что мы предсказываем — Bolinger, MACD, SMA, результаты примерно одинаковы, или их можно сделать одинаковыми обучив нейросеть чуть подольше. И на test выборке все хуже не становится.
Архитектура такая:

О тех индикаторах с точки зрения нейросетей.

Угадывает она срабатывание тех индикаторов с точностью на test 85-90%.
Для любителей усваивать информацию зрительно, взял котировку какой то фишки, наложил на нее SMA25 и красными стрелками указал пересечение ее Close. Красные черточки сверху это пересечение сверху вниз, нижние-наоборот. Ну а зеленые это прогнозы. Как видим угадываем с высокой точностью.    

О тех индикаторах с точки зрения нейросетей.

Ну и некоторые циферки

О тех индикаторах с точки зрения нейросетей.
Если сеть не путать и подавать точно число баров, то сеть начинает чуть быстрей обучаться, а так разницы нет, что позитивненько. Приятная инвариантность. И для смеха я сделал наоборот, дал сети недостаточное число данных (10 баров для пересечения с SMA(25)) — выкручивайся мол. Опять не стал долго обучаться, 10 минут и будя. Тем более что обучение застряла на определенной отметке, без какого то улучшения (что логично, как говорится иди незнаю куда, принеси то незнамо что-это трудно). Ну и на прогнозе чуда не произошло 

О тех индикаторах с точки зрения нейросетей.

Если вместо 25 необходимых подать 20 баров, то результаты будет получше:

О тех индикаторах с точки зрения нейросетей.

Ну и если кто то дочитал до этого момента, вполне возможно задастся вопросом, что то типа «а зачем вообще все это нужно?!». Где профит?! Мани где?! Нет тут профитов и нет мани, мы ответили на вопрос-может ли CNN получив на выход сырой ряд ряд цен, спрогнозировать срабатывание тех индикаторов. То есть по сути, может ли CNN улавливать сложные конфигурации time series. Ответ — да, может. Ура товарищи. Вот вы можете по одному виду временного рядка сказать будет на следующем баре дивергенция MACD, или пересечение Bolinger или SMA? А моя нейросеть может.
Хотя одно практическое применение я могу придумать-ну вот например вы нашли какое то чудесное сочетание тех индикаторов, которые приносят профит. И хотите это показать публике. Но засвечивать Грааль не хотите. Ну так проставьте лейблы, и обучаете нейросеть по ним, и вот можете совать свою систему в продакшн, она еще и выглядеть будет круче, ибо «торговая система на основе нейросеть» звучит в наше время интересно, а кому нужна система на техниндикаторах?!   
Для справедливости сеть все таки получила не сырой ряд данных, а предобработанный, будет интересно глянуть на сеть, если подать ей именно сырой. 1CNN. Вот этим я и займусь дальше. 
А практический вывод из всего этого я вынес что надо поработать с lebeling.
Таки дела.

И коды
https://github.com/Taram1980/finance_ML/tree/master/2D_CNN_forec_SMA
17 Комментариев
  • Winch
    12 октября 2020, 10:24
    Приветствую. Как предобрабатывали ряд, если это не секрет, конечно?
  • SergeyJu
    12 октября 2020, 10:27
    Все эти индикаторы обладают инерцией. Её-то Вы и предсказываете.
      • SergeyJu
        12 октября 2020, 10:39
        Марат, главное отличие рынка от основных областей применения нейросетей — отсутствие устойчивых соотношений. Вы ищете детерминированные формулы (инерция) и Вы их находите. Если Вы будете решать задачу AR или MA аппроксимации этих формул, Вы их получите быстрее и эффективнее. Но это нимало не продвинет Вас к поиску рыночных неэффективностей. Во всяком случае, в лоб это не работает.
  • ezomm
    12 октября 2020, 11:14
    Желания рынка разные.типа растем 1 день или растем 2 дня подряд или 3 дня.И так во всех таймах.В этом и есть неэффективность.Приметить накопление желания в 1й и 2й волне.Это просто фрактал Вильямса(Эллиота) в идеале из 5 ти свечей.Но углы могут быть и из 1й -3х-7-9 и тд свечей.Умение видеть в любых углах танец цены 3-2 и есть грааль.Все остальное в циклах времени 1\4 и амплитудах волн 1\2 .
    Читаем книгу Патрик Микула -5 новых техник Эндрюса.В основе графика цены простые зигзаги с разными время циклами.

  • ves2010
    12 октября 2020, 11:21
    тут вся проблема не в предсказании а в профите… я делал 99.7% точность предсказаний… но сливался на оставшихся 0.03%

    как пример… только лонг если свеча часовая растущая, то по закрытию часа покупаем и тейк ставим 50 пунктов… стопов понятное дело нет

    • Мольберт Чебурага
      12 октября 2020, 11:24
      ves2010, стопов понятное дело нет

      Вот это как раз непонятно. Вы что именно «предсказывали»?
      • ezomm
        12 октября 2020, 11:51
        Мольберт Чебурага, Они предсказывали 2го(В волна ) и 3го солдата(5я волна Эла).Это верно если 1й солдат = 1я волна Эла или А волна.Обычно 1й солдат беременный те имеет в откате внутренние свечи(2я волна).



    • ezomm
      12 октября 2020, 11:48
      ves2010, это верно если свеча солдат, те тело больше суммы теней. Но лучше если внутри свечи импульс, но не зигзаг.Иначе такой солдат развернет цену .2й вариант -солдат импульс, но это 5я волна те 3й солдат подряд и есть расхождение с объемом.
  • Diamond
    12 октября 2020, 12:11
    На истории всё круто. На живом рынке не сломается?
    • ezomm
      12 октября 2020, 12:25
      Diamond, на истории Сипи 500 тоже циклы 9-18-36 лет.Надо вглядываться в график и вычислять время циклы.
  • Свин Копилкин (Дмитрий)
    12 октября 2020, 12:12
    Добрый день. нейронные сети не очень хорошо работают со стохастическими системами. По сути то что вы нарисовали не сильно отличается от работы ПИД регулятора с реакцией по отклонению. Увеличение Д составляющей создает иллюзию «предсказательности» но в итоге это лишь снижает устойчивость системы (расколбас системы в целом, ложные срабатывания).
    В локальном случае, когда вы анализируете лишь 1 случайную бумагу вы работаете со стохастической системой, и вам удачи не видать (уж простите).
    Но, согласно теории управления, если вы повысите порядок системы у вас, возможно получиться проанализировать систему. Но в этом случае вам придется проявить аналитические способности.
    Как пример: Есть бумага Сургутнефтегаз Преф. можно до посинения анализировать цену и индикаторы, но по факту это вторая производная от цены а нефть и цены на доллар. Заведите на вход вашей нейронной сети цены/индикаторы на доллар и нефть (в идеале не то что на бирже, а то что цена реализации купажа сургутнефтегаза) и цену бумаги и пробуйте анализировать так. По идее чем больше входных данных реально влияющих на цену вы сможете завести тем более точный результат вы сможете получить. А вот выбор весов — уже доверьте нейросети они явно будут переменные и нелинейные относительно друг друга. 
    • ezomm
      12 октября 2020, 12:21
      Свин Копилкин (Дмитрий), все активы функции чего то или желания хозяина (мажора).Но в целом рынок цикличен во времени на 4 , а в амплитуде на 2. 
  • Paulmarko
    12 октября 2020, 15:44
    еще есть проблема инструментов, по сберу у меня предсказательная вероятность более 80%, а вот по гмк больше 60% получить не получилось, слишком много манипуляций в нем.
  • Jkrsss
    12 октября 2020, 21:14
    Текст хороший +. 

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

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