CloseToAlgoTrading
CloseToAlgoTrading личный блог
09 марта 2021, 12:54

Одна из многих причин, почему нейронные сети не способны предсказывать рыночную цену.

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

Вот простой пример предсказания функции синуса. y = sin(x)

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

На самом деле, мне кажется это довольно большая проблема в целом. 

Сварганил небольшое видео с несколькими различными эксперементами, кому интересно можно посмотреть. Код как обычно на гитхабе, ссылка в описании к видео. *Есть русские субтитры %)




Возвращаясь к подготовке данных, именно из-за таких, казалось бы мелочей, я прихожу к выводу, что подготовке данных и приведению их к одному виду стоит уделить много внимания.

37 Комментариев
  • ves2010
    09 марта 2021, 12:59
    нс должна распознавать а не предсказывать
      • Антон Б
        10 марта 2021, 10:59
        CloseToAlgoTrading, у тех кто получается они просто временно забирают деньги.
        пока не начинает получатся у всех.
        до компютеров обычные средние на дневках давали альфу.
        а теперь все кончилось.

        нейросети это такие-же средние на дневках.
        будут давать пока все не начнут пользоваться.

        по этому куча статей что это не работает )
    • 3Qu
      09 марта 2021, 13:20
      ves2010, НС может и то и другое. Эт как и на что обучать.
      Может ли она предсказывать рыночные ценовые ряды — это другой вопрос.)
  • drow
    09 марта 2021, 13:16
    Распознать или предсказать, значит фактически понять суть процесса или явления, когда нейросетки это смогут сделать, проект хомо сапиенс можно закрывать. Мне кажется народ из-за наличия дешевых вычислительных мощностей вконец обленился.
  • Сергей Андреев
    09 марта 2021, 13:18
    Ну, на вход можно подавать дофига всего. К примеру, вместо данных по цене можно подавать данные с индикаторов, у которых довольно ограниченный диапазон изначально. Хотя, грамотно спроектированная сеть сама может построить любой индикатор внутри себя. Можно падавать данные по изменению цены, а не саму цену.
  • svgr
    09 марта 2021, 13:21
    Так ты скажи ей: «си-инус», она коэффициенты лишь подберёт и ОК.
  • 3Qu
    09 марта 2021, 13:26
     Что касается масштабирования и приведения к конкретному диапазону — не вижу проблемы.
    Мы можем сфотографировать 2 разных дома — небоскреб и избушку, и оба изображения этих домов будут укладываться в наш стандартный кадр. С масштабированием и приведением к диапазону все аналогично. Никакой разницы, даже преобразования те же самые.
      • 3Qu
        09 марта 2021, 14:01
        CloseToAlgoTrading, скажем, есть евробакс (0..100) и есть фьючерс Si (0… 100,000). Si делим на 1000, и получаем тот же евробакс.
        Далее, нам не нужна вся история цен, а только на некотором интервале — {C}
        Хотим в диапазоне — {0,1}
        1. {C1} = {C} — Cmin
        2. {C2} = {C1}/C1max
        Все у вас в диапазоне {0,1}.
        Это как пример, можно и по другому — эт от конкретики зависит.
          • 3Qu
            09 марта 2021, 14:45
            CloseToAlgoTrading, не вижу проблем.
            Я работаю с 15 точками, и преобразование примерно такое, как я нарисовал. Немного по другому, у меня последняя точка всегда =0. Преобразуются только эти конкретны 15 точек. Это работает на любом интервале истории.

          • Антон Б
            10 марта 2021, 11:04
            CloseToAlgoTrading, там допущена масса ошибок.
            вот как поход за граблями.
            1) не нормализованы данные
            2) в том числе не нормализован вектор времени как написал 3qu точка предсказния это должна быть на графике нулевая точка.
            чтобы убрать эффекты памяти паразитические.

            там все видео состоит из сознательно допущенных ошибок.
            профессионально.
            с пониманием почему это ошибка.
            не случайно.
              • Антон Б
                10 марта 2021, 12:01
                CloseToAlgoTrading,
                если бы нормализация была не нужна то этого этапа не было бы.
                а этап есть.
                и во всех конкурсах во всех работах этот этап есть.
                потому что без него получается объективно и доказуемо хуже.

                проблема как получить денег из знаний конечно останется )

                но это не повод специально! в видео наступать на все грабли.
                по очереди.
                  • Антон Б
                    10 марта 2021, 12:16
                    CloseToAlgoTrading, 
                    1) это эксперимент
                    2) как в эксперименте все должно быть формально
                    3) в том числе метод применения сетей

                    если вы намешиваете все в кучу и у вас результаты получаются никакие то это не эксперимент.
                    а какая-то фигня.

                    я вам на это указываю.

                    нейросети это не магия.

                    у них есть методика ( в т.ч. нормализация).
                    граница применимости ( тоже завязана на анализ входящих данных — и тоже нормализация ).
                    методы верификации результата.
                    (и тут тоже важна нормализация)


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

                      • Антон Б
                        10 марта 2021, 13:20
                        CloseToAlgoTrading, там же просто синус зачем такие сложности )))

                        но там не синус. а предположение что на отрезке синус
      • ezomm
        09 марта 2021, 14:04
        CloseToAlgoTrading, предсказание возможно в пределах работы одного объема или одной группы участников типа в уникальные периоды времени.Весь график состоит из кусочков синусов разных периодов.Просто каждому среднему объему соотв-т свой период или частота перемен (свечной анализ).Сначала изучи сам волновой анализ, а потом обучай других.Прог дающих прогноз по волнам много, но и они дают сотни вар-в с разной вероятностью.Подсказка во фракталах типа Вильямса из 5-9-13-17 и тд  свечей .Объем \ время = обратная переменная.
      • VladMih
        09 марта 2021, 14:31
        CloseToAlgoTrading, всё это, как и сам пост — не повод категорично утверждать, что ЛЮБЫЕ
        нейронные сети не способны предсказывать рыночную цену

        Категоричность суждений — признак недалекости вообще и в данном случае в частности. Если б всё было НАСТОЛЬКО плохо, вы не писали бы этот пост.

        Лучше бы объяснили почему у кого-то, кто делает до 80% рыночного оборота, сети (и др. алго) всё-таки зарабатывают.
          • VladMih
            09 марта 2021, 20:35
            CloseToAlgoTrading, 
            объясняете какую-то херь — перечитайте название поста.

            Вашу позицию понял, от ваших субстанций ставлю защиту.
      • keekkenen
        09 марта 2021, 16:04
        CloseToAlgoTrading, вышенаписанное очень странно !

        дерьмо на входе — дерьмо на выходе
  • Sergey Pavlov
    09 марта 2021, 14:39
    всё же одна синосоида хорошо аппроксимируется линейным рекуррентным соотношением вида x[n]=a1*x[n-1]+a2*x[n-2]+a3*x[n-3]+...
    Для нейросети подобрать коэффициенты a1, a2, a3 всё же нетрудная задача.

      • Sergey Pavlov
        09 марта 2021, 14:47
        CloseToAlgoTrading, и любой полином также аппроксимируется такой же линейной зависимостью. Это обязано работать на модельных примерах при помощи нейросетей.
          • Sergey Pavlov
            09 марта 2021, 17:08
            CloseToAlgoTrading, рабочие примеры искать лень. Если в общем виде, то есть много доказательств обобщенных аппроксимационных теорем, в которых показывается про то, что перцептронами можно приблизить любую сложную функцию как линейную комбинацию гармоник, экспонент, полиномов. Разумеется, сетка это всё восстановит. Разумеется, она где-то сломается, но не так сразу развалится. Конкретно по аппроксимации синусоиды можно почитать гусеницу (SSA). Если перцептрону подать на вход предыдущие значения синусоиды, а на выходе одно следующее, то она восстановится почти идеально. Где-то далеко она разойдется в бесконечности, конечно, но это не будет так как у вас на картинке.
  • ch5oh
    09 марта 2021, 17:45
    Может быть, потому, что в псевдослучайной последовательности следующее число совершенно никак не зависит от предыдущего?
  • Roman Ivanov
    10 марта 2021, 01:04
    Но ведь научить торговать прибыльно нейросеть на таком графике будет не сложно. Тогда за что боремся? Нет ли тут подмены смыслов? Может быть для прибыльной торговли и не нужно такое предсказание как тут подано?
      • Roman Ivanov
        11 марта 2021, 00:31
        Ошибка в точном предсказании синуса на период и больше вперёд? Эта задача не имеет отношения к торговым алгоритмам.
        Хотя уверен, что и то что получилось, это просто результат не правильного использования сети.
  • mytarmail
    21 марта 2021, 18:07
    Автор полный профан в работе с сетями и данными

    Вот натренировал сеть, отлично учиться всего на 30 точках обучения
    prnt.sc/10ro2nd

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

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