Svips
Svips личный блог
20 февраля 2013, 09:10

Учим нейросеть угадывать закрытие часа фьючерса РТС


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

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

79 Комментариев
  • inc
    20 февраля 2013, 10:37
    а как осуществлено преобразование цен во входные биты?
      • inc
        20 февраля 2013, 14:08
        Svips, только «програмист» а не «инженерный»
  • BiTrader
    20 февраля 2013, 10:51
    Правильно я ли я понял что у вас по сути она подобрала коэффициенты к уравнению вида F(X) = k1*x1 + k2*x2 + k349*x349 +k350*x350? Очень похоже это curve fitting
        • krasoffka
          20 февраля 2013, 11:40
          Svips, оч интересно, пишите еще! спасибо
  • Александр Дрозд
    20 февраля 2013, 11:37
    последний раз подобные окошки видел лет 10 назад
      • krasoffka
        20 февраля 2013, 12:01
        Svips, 350 входов на нейрон, повторяются ли входы у нейронов, или другими словами одни и те же данные поступают на несколько нейронов? просто не думал что их может быть настолько много, и правильно ли я понимаю что обучение сети это некий алгоритм оптимизации позволяющий найти такие коэффициенты, при которых сеть будет давать безошибочные ответы нейросети на обучаемых данных, потому как прямым перебором все растянулось бы на значительно долгий период?
          • krasoffka
            20 февраля 2013, 12:17
            Svips, эмммм… например на 1 вход 1 нейрона подается значение выражения a>b, в других нейронах есть ли на входе это же значение выражения a>b. извиняюсь за может не корректную формулировку
  • habanera
    20 февраля 2013, 11:47
    Хочу разочаровать.

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

    В вашем случае сеть просто запомнила все образцы.
    Это легко проверить подав на вход сети данные которые не использовались в обучении.
      • habanera
        20 февраля 2013, 12:33
        Svips, Забыл добавить. Информация в нейронной сети запоминается не в нейронах, а в синапсах.
        В вашей сети 320*4 = 1280 синапсов.
  • Joystick
    20 февраля 2013, 12:04
    Лучшая нейронная сеть — это твоя голова!
    • krasoffka
      20 февраля 2013, 12:11
      Joystick, но с токой головой соревноваться почти не реально=(
  • Александр Шевчунов
    20 февраля 2013, 12:24
    Svips, скажите, а если скормить сети данные не за 2 месяца за более? Есть в этом толк?
  • astic
    20 февраля 2013, 12:35
    Очередная наука про подгонку исторических данных под реальность :)
      • astic
        20 февраля 2013, 12:39
        Svips, не занимайся ерундой не для того они предназначены :)
  • Андрей Хомич
    20 февраля 2013, 12:43
    Какие имеются статистические доказательства того, что представленная нейросеть способна работать на новых данных?
  • Андрей Хомич
    20 февраля 2013, 12:51
    Это не доказательство. Как минимиум слишком короткий период наблюдений. Случайный (random, броуновское блуждание) алгоритм вполне может и не такие графики сделать на коротком периоде. Я надеюсь это не результаты исторического моделирования хотя-бы?
      • Алексей Каленкович
        20 февраля 2013, 14:09
        Svips, т.е. сеть уже больше трех месяцев работает без переобучения, я правильно понял? это принципиальная позиция или просто экперимент? т.е. в реальной работе вы планируете постоянное переобучение или все-таки фиксацию обученной сети на какие-либо промежутки времени?
  • Андрей Хомич
    20 февраля 2013, 14:25
    Просто понимая, насколько сложна задача, которую вы пытайтесь решить, хотелось бы получить более-менее адекватное доказательство успешности системы в будущем (как доказывают статистические гипотезы, не обязательно академически строго, но хотя-бы увидеть попытку).
      • Андрей Хомич
        20 февраля 2013, 14:52
        Svips, а как вы определите, какой срок наблюдений будет достаточным? Почему год, а не меньше или больше?

        Не слишком ли вы легко расстрачиваете собственные ресурсы на эксперимент длинною в год, не имея предварительных вероятностных оценок того, что нейросеть способна работать на новых примерах (обобщать)? Ну типа того, что с надежностью 0.95 доходность системы лежит в границах (-5%,+15%) при следующих допущениях… Допущения можно обсуждать, критиковать, но это уже хоть какая-то опора.

        Расскрою «страшный» секрет, из-за того, что на рынках существуют кросс-зависимости между инструментами и времеенные зависимости (все-таки рынок это временной ряд) мы имеем реально примерно 12 независимых испытаний. Именно 12 (группируем результаты по месяцам), а не столько, сколько совершено сделок. Внутри месяца зависимости нельзя игнорировать.
  • kashtan1
    20 февраля 2013, 15:27
    Интересно, а почему часовики? 10-ти минутки, например, не пробовали монетизировать?
    • Alximik (Игорь Васёв)
      21 февраля 2013, 00:17
      kashtan1, не то что бы 10-минутки, но и часовики для нейросети на данных OHLC слишком примитивны. Я вот буквально на выходных гонял нейросети для вычисления закрытия на понедельник фьючерса S&P500 и вот что получилось:

      Немного поясню: 9 секторов (через биржевые фонды) и биржевой фонд на выходе (как аналог фьючерса S&P500)…
      Как итог — ошибки порядка 0.5-1.5% для дневных данных
  • kashtan1
    20 февраля 2013, 16:40
    Ну, как я понимаю, алгоритму все равно 10 мин или час, если OHLC на вход подается, но при таком же %% удачных предсказаний на 10 мин кривая доходности еще красивее была бы
      • Владимир С.
        21 февраля 2013, 00:14
        Svips, Сеть угадывает направление. А какие особенности стратегии робота, результаты торговли которого выложены на сайте? Открывается в начале дня, закрывается вечером? Оптимизируются стопы, размер позиции и как она набирается? Что еще кроме направления «считает» сеть?
          • Владимир С.
            21 февраля 2013, 09:12
            Svips, А вероятность определения цены актива сетью низкая? Пытались это делать? Какие результаты? Пару лет назад видел простую сеть, которая определяла close следующего часа на акциях Газпрома. Фикция это или нет сказать не могу точно)
          • Владимир С.
            21 февраля 2013, 09:27
            Svips, Смотрели ли вы на софт по сетям? Он не пригоден в принципе, поэтому написали свой?
      • Владимир С.
        21 февраля 2013, 09:24
        Svips, Что еще подаете на вход?) Объем, сантимент? Намекните хотя бы)
  • KMiNT21
    22 февраля 2013, 21:37
    Да, очень интересное видео. :) Никогда не писал ничего на основе нейронных сетей, но всегда было интересно попробовать. Кто его знает даст ли это стабильные прибыли в трейдинге, но все равно ж интересная штука. :)
      • KMiNT21
        23 февраля 2013, 14:12
        Svips, а что, если нацелится на другой конечный результат? Не 1/0, а на вероятный процент изменения цены? Т.е., пусть первый бит — это будет знак + или -, а остальные Х бит — это коэффициент? Правда, как это «в лоб» сделать — я пока не представил.

        Или, как вариант, высчитывать коэффициент итерациями по минутным данным. Пример:

        В текущем варианте часовых данных получили ответ из «черного ящика» 1 или 0. Далее — через минуту берем новую порцию данных и снова получаем 1/0 (например, для второго сети, которая обучена на минутах). Через минуту — еще. И в реал-тайм пересчитываем вероятность и выдаем пользователю результат. А он — или ждет дальнейших итераций, или принимает решение… как-то примерно так, что ли…
          • Финансовый трутень
            30 августа 2013, 22:02
            Svips, первое, что приходит в голову глядя на вашего робота — надо на выходе выдавать не 0 или 1, а хотя бы 3 значения 0, 1 и скажем 2 — это находиться вне рынка, т.к. есть моменты на рынке когда лучше не торговать (если велика вероятность ошибки или высока цена ошибки)

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

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