silentium
silentium личный блог
09 июня 2016, 10:37

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

Silentium est aurum.

Молчи, пока ты не в состоянии сказать нечто такое, что полезнее твоего молчания. 

                                                                                      (кто-то умный и известный сказал)

 

 

     В продолжение  «Не нравятся нейронные сети? Вы просто не умеете их готовить. Рецепт. Ингредиенты, специи и прочее» http://smart-lab.ru/blog/327789.php и «Нейронные сети. Послевкусие. Заблуждения, ошибки, косяки. Первые 15 месяцев эксплуатации бота на нейронных сетях»  http://smart-lab.ru/blog/329272.php

 

     Я почему-то решила, что мои слова будут полезнее моего молчания на Смарт-Лабе. Только, когда я представляла эту пользу для себя, я имела в виду возникновение каких-то полезных связей и взаимовыгодного сотрудничества с другими трейдерами, работающими над созданием торговых алгоритмов на основе нейронных сетей. Этого пока по разным причинам не получилось. В качестве «побочного», но весьма приятного эффекта, получилось добавить заинтересованную аудиторию нашему «продажному» проекту – на сайте появилось … новых подписчиков. Хотя может так совпало – невозможно идентифицировать со СЛ эти люди или нет. Во всяком случае, это те, кто имеет желание зарабатывать на бирже, и имеет понимание, что в такой конкурентной среде идет борьба технологий.

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

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

     Стратегии могут работать в двух режимах: боевой – формирует входы, подает их на НС и на основании ответа НС совершает сделку (этот режим нужен для тестирования готовых нейронок).

    Второй режим – формирование примеров для обучения нейронной сети. Все то же самое, но пишет примеры сделок в файл. Пример состоит из набора  входных данных  (создается в платформе) и правильного ответа  — buy или sell (создается в Матлабе). 

 

 

Входы. Не могу я взять и просто выложить список наших входов. Это предмет долгих поисков. Каждый, кто хочет этим заниматься, должен сам определить свои данные, которые будут подаваться на входы НС. Могу сказать, что используются не абсолютные значения, а относительные (например, не цена, а отклонение от текущей цены).

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

     Выгружаем данные входов в Матлаб (файл примеров – входная информация). В Матлаб формируем выходы. Примеры должны быть строго сбалансированными (сигналов buy и sell должно быть приблизительно одинаково), иначе у НС будет склонность к определенным сделкам (перекос).

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

Все тайные знания – в деталях. Если Вы будете этим заниматься, найдете свое «золотое сечение», возможно, лучше нашего.

Итак, сформированы варианты правильных ответов для обучения сетей, buy или sell. И создано множество нейронных сетей.

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

Каждый набор параметров (хромосома) оценивается методом кросс-валидации (CV). Для этого по одной хромосоме создается множество сетей, которые обучаются и тестируются на разных периодах. Все это выполняет генетический алгоритм автоматически.

О CV можно почитать, например, здесь http://www.machinelearning.ru/wiki/index.php?title=CV

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

Генетический алгоритм есть в Матлабе (GATool), но у нас – конечно же, свой.

Вообще в Матлабе есть библиотека NNTool, которая использовалась вначале. Она универсальна, но отстает от жизни – новых, необходимых вещей в ней нет, а дорабатывать ее сложно. Поэтому сейчас используется библиотека DeepLearnToolbox https://github.com/rasmusbergpalm/DeepLearnToolbox. Она была взята за основу и также доработана.

 

     Далее сети проверяются в Матлабе на тестовом периоде, который не совпадает с периодом обучения. Для этого тоже написан свой тестер. Ну, Вы уже поняли, что у нас все свое.

     В разных источниках разночтения по названиям периодов – период обучения, период тестирования, период валидации… Слава богу, что нет общепринятой терминологии. А то бы уже все давно понаделали своих сеток и разбогатели…

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

     Есть еще интересная вещь – мы можем объединять разные сети в портфель. Например, выбрать из генерации 10 сетей с близкими значениями по прибыли и просадке, с минимальной корреляцией времени просадок. Тогда на периоде получаем результат со средним значением прибыли и просадкой, ниже среднего значения по сетям. Это возможность при сохранении выбранного уровня риска в % получить больший доход.

     Мы не останавливаемся, а идем дальше. Запущено тестирование сетей для других инструментов. Рассчитываются новые сети по новым технологиям.  Цель – повышение доходности и уменьшение просадок. Надо же когда-нибудь соответствовать уровню ЛЧИ (это ж показатель, наверное). Хотя, если честно, просто хочется чтобы рутинную и нервную работу на рынке выполнял ИИ.

P.S. Чуть не забыла про картинки – их же все любят так. Смотрите — два предыдущих дня работы робота. Когда многие (и я в том числе) шортили рынок и лонговали доллар… Что она (EVA все-таки девочка) знала о вышках, пэйролзах, госпоже Йеллен? Да ничего. Просто у нее в «голове» на немаленьком сроке обучения было всЁ и всE: протоколы и минутки ФРС, Бернанке с куями, землетрясения и наводнения, военные конфликты и терракты. И она в плюсе. А мы все помним, как двигался рынок в эти моменты? Так зачем нам все это? Пусть работает робот! А мы будем работать над созданием более совершенных роботов!

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

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

 

 

 

 

106 Комментариев
  • SergeyJu
    09 июня 2016, 11:12
    Мне понравилось. 
    Позвольте пару-тройку вопросов. 
    1. Сколь часто во времени расположены «точки принятия решений».
    2. Нельзя ли «на пальцах» пояснить, как скрещиваются НС.
    3. При кросс-валидации, у Вас на каждом шаге разбиение обучение/контроль одно и то же, или Вы делаете новое разбиение.
      • SergeyJu
        09 июня 2016, 12:06
        silentium, у меня ум за разум заходит, когда я пытаюсь осмыслить Ваш ответ по п.2.
        По пункту 3. 
        В динамике получается, что один и тот же кусок данных на одном этапе обучения входит в контрольную выборку, а на другом — в обучающую. То есть, имеет место процесс перемешивания. И если на одном шаге можно говорить о независимом контроле, то в целом процесс использует всю выборку как обучающую и риск переоптимизации возникает вновь, как ни крути.
        • Тирпиц. Das Boot.
          09 июня 2016, 12:25
          SergeyJu, ум за разум заходит по пункту 2 потому что вам налили воды.
          Что касается пункта 3 — ключевое это в каком виде и какие данные подаются для обучения. НС прекрасны в теории, на практике очень многое зависит именно от исчерпывающих данных на входе. Так как рынки очень сильно зависят друг от друга (тот же Си от нефти), остается большим вопросом, можно ли полноценно в НС учесть все ньюансы поведения инструмента, не обучая ее на ВСЕЙ совокупности аффилированных инструментов. В полную самодостаточность и замкнутость отдельно взятого инструмента я не верю.
          • SergeyJu
            09 июня 2016, 12:36
            Лыцарь печального образа, все нюансы учесть нельзя. Но, как правило, и не нужно!
            Исчерпывающие данные на входе — тоже недостижимая вещь. 
            Я вообще сторонник минималистских подходов. Поскольку ценовой ряд обладает очень низким соотношением сигнала к помехе, только очень грубые, обладающие малым числом факторов модели, имхо, должны устойчиво на нем работать. Когда я читаю автора, я понимаю, что они делают что-то совсем не такое. Но я также понимаю, что они это действительно делают. Возможно, что автор сам не до конца понимает, что делают другие участники коллектива. 
            • Тирпиц. Das Boot.
              09 июня 2016, 12:42
              SergeyJu, 
              так именно малая составляющая сигнала к помехе и есть основная причина. НС в первую очередь должно на исторических корреляциях отсеивать «посторонние» шумы, и вычленять чистый сигнал, чистый моментум движения цены.

              Иначе будут либо длинные стопы, либо постояннный стопосъем.

              Например РИ в моменте зависит от 10ков акций (через мамбу) и от нефти с ЕД (через СИ).
              Часть движения РИ — это ее собственный ТА, а часть вибраций в моменте — это отражение вибраций в других инструментах. Так вот, НС должна их эффективно отсеивать, если она не только трендовая (что сделать легко и без НС) но и контртрендовая и вообще запильная (что и сложнее всего).

              Для этого НС должна обучаться на всем массиве коррелирующих данных.
              • SergeyJu
                09 июня 2016, 12:54
                Лыцарь печального образа, я не поклонник НС и, более того, не собираюсь их обучать или использовать в качестве торговых систем. Хотя бы потому, что я не доверяю «черным ящикам». И от идеи «поженить» множество ценовых рядов в одном алгоритме меня в первую очередь отталкивает мысль о временной изменчивости связей между ними. Оценки корреляций, например, нестационарны. 
                • Тирпиц. Das Boot.
                  09 июня 2016, 12:56
                  SergeyJu, НС отличается от алгоритмов про которые Вы говорите прежде всего именно способностью неформализованного учета ряда факторов. В том числе и всевозможных корреляций.

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

                  Потому что рынок это нерегулярный сигнал, не осциллятор в чистом виде
                  • SergeyJu
                    09 июня 2016, 12:57
                    Лыцарь печального образа, и мы получаем неконтролируемое нарастание сложности.
                    • Тирпиц. Das Boot.
                      09 июня 2016, 13:09
                      SergeyJu, да, но НС под это и предназначено. Чем более сложные массивы мы анализируем, тем на выходе более высокое матожидание
                      • SergeyJu
                        09 июня 2016, 13:10
                        Лыцарь печального образа, это Ваш символ веры, или Вы на самом деле это торгуете?
                        • Тирпиц. Das Boot.
                          09 июня 2016, 13:28
                          SergeyJu, нет, это мое отношение к применению НС в многовекторном поле движения котировок
                • Тирпиц. Das Boot.
                  09 июня 2016, 13:30
                  silentium, все может быть. Не вижу смысла дальше этот вопрос обсуждать, может все так и есть, а может есть и лукавство.
                  При предсказании более вероятного движения и его диапазона вопрос со стопами остается насущным.
                • Тирпиц. Das Boot.
                  09 июня 2016, 13:30
                  silentium, что касается флета, то там вообще непонятно о каких предсказаниях более вероятных движений и диапазонах может идти речь кроме как бегания от краев диапазона
                    • Тирпиц. Das Boot.
                      09 июня 2016, 13:38
                      silentium, на все это могу сказать только одно
                      Настоящему Мидасу нет смысла продавать свой дар за копейки..

                      Надеюсь вы поймете аллегорию
                        • Тирпиц. Das Boot.
                          09 июня 2016, 13:57
                          silentium, потому что картины художника не зарабатывают ему сами на хлеб насущный.

                          Даже 10 контрактов в РИ будут на таком роботе приносить больше каждый день, чем вы выручите за продажи. Другое дело, если эти 10 контрактов совершенно не гарантированны — но тогда и зачем покупать этот продукт?
                            • Тирпиц. Das Boot.
                              09 июня 2016, 14:22
                              silentium, о какой максимальной просадке вы говорите? Что это за бот, который грозит безумными просадками при риске всего 10%?


                              Что за расчеты? Откуда доходность 70% годовых? Почему не 60%, и не 120%?
                              А то что успешная торговля наращивает депозит в этих 70% учитывается?

                              Вы ловко жонглируете математикой. Но если ваш бот ловит не только тренд, но и флэт, целевые показатели 70% годовых не так уж и много.
                              В общем лирика от тех, кто устраивает платные семинары. Типа рынок кормит нас хорошо. ей-богу. Но вот семинарские деньги не повредят. чито на мороженное.
                            • SergeyJu
                              09 июня 2016, 14:29
                              silentium, соотношение 70% годовых при максимуме ДД 10% — это очень хорошо. Но откуда тогда требование такого большого обеспечения? 

                                • SergeyJu
                                  09 июня 2016, 15:06
                                  silentium, значит, Вы можете существенную часть от названой суммы разместить, например, в облигациях. Но далее вступает в силу портфельный подход. Предположим, за 3 месяца заработали 16% на сетке. Можно увеличить риск, из той концепции, что прибыль не так жалко, а можно перевести часть денег снова в облигации и восстановить соотношение рисковой и консервативной части. 
                                    • SergeyJu
                                      09 июня 2016, 15:17
                                      silentium, смотрите на ОФЗ, нет риска эмитента и ликвидность в известном смысле максимальна. И еще — некоторые брокеры учитывают их в качестве обеспечения. 
                                      Я сейчас торгую Ри и Си в активной части, акции и облиги — в пассивной части портфеля. надеюсь, что комплексный подход понравится и Вашим инвесторам. 
                                        • SergeyJu
                                          09 июня 2016, 15:40
                                          silentium, можно. Но, если у Вас вопрос будет по облигациям — рекомендую billikid'а, он профессионально работает на этом рынке много лет и все время держит руку на пульсе. А я в этом деле давно уже не профи, а любитель.
                        • Тирпиц. Das Boot.
                          09 июня 2016, 14:00
                          silentium, а что тема обсуждения??? )))) никакой конкретики в топике нет, обсуждать технологически тут нечего.

                          обсуждать как вы в процессе тестирования НС отсеиваете ошибки второго рода? Или как избегаете накопления статистической погрешности (генетического мусора), которая со временем может начать портить анализ? Так вы же сами признались, что вы не специалист
          • SergeyJu
            09 июня 2016, 12:56
            silentium, а потом наступает этап скрещивания и получения новых «гибридных» НС. И Вы перемешиваете контроль и оптимизацию заново, не так ли?
              • SergeyJu
                09 июня 2016, 14:01
                silentium, и, тем самым, вопрос переоптимизации снова встает во весь рост. 
                • Тирпиц. Das Boot.
                  09 июня 2016, 14:09
                  SergeyJu, типа того.
                  Получается НС не полностью динамические, а статические структуры, которые периодически перестраивают «фитнес-функциями». Отсюда либо рынок такой лабильный и постоянно меняется в структуре и движении, либо НС не совсем НС
      • Тирпиц. Das Boot.
        09 июня 2016, 12:07
        silentium, 
        «2. На пальцах можно, конечно. Применяется много методов скрещивания для разных типов данных. Для одного типа данных тоже несколько вариантов скрещивания. Там очень серьезные модификации ГА. Например, типы скрещивания так же эволюционируют наряду со значениями.»:

        На пальцах вы налили воду.
        В:«Как скрещиваются НС»
        О: «Как-то скрещиваются. Много вариантов. Серьезные модификации. Они эволюционируют»

        Нехотите отвечать по существу — ну так и напишите, ноу-хау.
          • Тирпиц. Das Boot.
            09 июня 2016, 12:26
            silentium, Мне-то все понятно. Мне единственно непонятно зачем наливать человеку воды в уши вместо того чтобы ответить 6ю буквами.

            Обычно воду наливают те, кто сам недопонимает как работает то что он продает/рекламирует или те, кто продает фуфел, но стремится запутать покупателя. Это сейчас не лично против вас, а наблюдения вообще.
              • Тирпиц. Das Boot.
                09 июня 2016, 13:35
                silentium, так вы и определитесь, вы тут покупателей ищете которым не интересно КАК устроено, или единомышленников. А то вы то одно пишете, то другое.

                Статьи о технологии тут нет, вы уж извините. Тут есть рекламный проспект
                -Мы много работали
                -Нашли специалистов
                -Уникальная технология
                -Мы берем и смешиваем, потом замешиваем, потом ибридинг
                -Число интересующихся растет в… степени
                -Все тесты положительны
                -Мы продолжаем развиваться дальше

                Я долгое время занимался продажами сложнейших програмных и аппаратных комплексов, так вот все рекламные проспекты «купите» были приблизительно такие… причем там хоть поподробнее была детализация )
          • SergeyJu
            09 июня 2016, 12:41
            silentium, я иду отчасти перпендикулярным путем. В каждом отдельном классификаторе (=торговой системе) должно быть мало как индикаторов, так и решающих правил. Меньше, чем пальцев на руке. В чем сила, брат? А сила в портфеле.
              • Тирпиц. Das Boot.
                09 июня 2016, 14:04
                silentium, ну хоть какая-то конкретика, про градиентный спуск
                А почему не полноценный метод сопряженных градиентов?
                • SergeyJu
                  09 июня 2016, 14:11
                  Лыцарь печального образа, Ньютона-Рафсона :)

              • Тирпиц. Das Boot.
                09 июня 2016, 14:07
                silentium, "То есть, они показывали профит только на интервале обучения, а вне его — хаос."

                Жуть какая.Это как сформирована НС, что на подаче тестовых данных она показывает профит, а на подаче свежих — хаос???
                Какой же диапазон тестовых данных на вход подавался?

                Не могу поверить, что на тестовых данных допустим за 2 месяца при прогоне — профит, а на текущих тут же хаос. Не меняется так быстро рынок и его структура
                • SergeyJu
                  09 июня 2016, 14:12
                  Лыцарь печального образа, обычная переподгонка. Прямое следствие низкого отношения сигнала к помехе.
                  • Тирпиц. Das Boot.
                    09 июня 2016, 14:16
                    SergeyJu, хорошо, давайте определимся, откуда по вашему берутся помехи?
                    • SergeyJu
                      09 июня 2016, 14:25
                      Лыцарь печального образа, такова природа более-менее свободных  рынков, я полагаю. Не зря же движение цен сильно похоже на фрактальное.
              • SergeyJu
                09 июня 2016, 14:07
                silentium, вот так мне понятнее. Спасибо.
                Спросите Вашего кодера, а он не пробовал радикально упрощать работающую сеть? То есть решить в каком-то смысле задачу понижения размерности.
                  • SergeyJu
                    09 июня 2016, 14:57
                    silentium, я не имел в виду какой-то конкретный стандартный механизм. Просто, общее направление поиска. Ответ понял, спасибо.
        • nbvehrfr
          10 июня 2016, 18:09
          Лыцарь печального образа, это просто один из вариантов эволюции архитектуры и фичер инжиниринга (если абстрактно, некая метаоптимизация) с тем чтобы выбранная сеть нашла лучший суб оптимальный оптимум
          обычная многослойка тем и страдает что очень зависит от фич (входных данных) я предлагал использовать ConvNet, но судя по объему вычислений (перебора моделей) не потянут 
      • SergeyJu
        09 июня 2016, 11:59
        silentium, Вы не поверите, мой плюсик был первым. 
  • Тирпиц. Das Boot.
    09 июня 2016, 12:11
     Все вышеописанное нормально и функционирует, вне зависимости от способа формирования НС только при исходном предположении, что рынок полностью замкнутая и независимая от внешнего мира система, или наоборот полноценная транзитивная система от внешнего мира.

    Т.к. было упомянуто что НС учитывают все выступления и прочие ЧС то варианта 2.

    1) Психология рынка не зависит от ЧС, и ЧС — просто реперная точка чтобы случилось то что должно было случиться по любому
    2) Психология рынка зеркальна к внешнему миру и можно по рынку ПРЕДСКАЗЫВАТЬ черные лебеди во внешнем рынке.

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

    Но это опять допущения.
  • Чужой
    09 июня 2016, 14:16
    Результаты то какие? Какая доходность? Кака просадка?
  • Quant-Invest
    09 июня 2016, 17:37
    У меня сложилось ощущение, что ваши НС — просто автомат для алгоритмизации ваших торговых идей, подаваемых для обучения.
    Что на самом деле там в основе все просто, а НС — просто удобная маркетинговая обертка — что, кстати, хороший ход, возьму на вооружение.
      • Quant-Invest
        09 июня 2016, 18:25
        silentium, Я так и подумал, что ошибся, но всегда лучше переспросить, верно? Кстати, если ваши НС такие прям прибыльные, подумайте насчет таких информеров на своем сайте:



  • technic
    09 июня 2016, 19:15
    ЛЧИ 2008 :
    1
    eva  * ЗАО «ИК „Ай Ти Инвест“  12.09.2008 87 463,00 1382 0,19 6 179,15 
    какое отношение ваши поделки имеют отношение к этой легенде лчи? 
  • technic
    09 июня 2016, 19:32
    Наблюдал в живую этого робота в том году, поэтому название режет слух. типа такой брэнд уже был рвал всех и вся… данные с бирже из архива конкурсов.  
      • technic
        09 июня 2016, 19:41
        silentium, Если ваш робот попадет в топ10 ЛЧИ то его наверняка будут сравнивать с evoй 2008 ну те кто вспомнит но наверно таких немного) если он будет под ником eva
          • Quant-Invest
            09 июня 2016, 21:32
            silentium, может, Availability ?
  • SciFi
    10 июня 2016, 15:02
    Смотрите — два предыдущих дня работы робота. Когда многие (и я в том числе) шортили рынок и лонговали доллар… 

    1 реальная сделка за 1 день не репрезентативна, нужно штук 20, а лучше 50.
  • Андрей К
    10 июня 2016, 15:04
    Если возможно, на пальцах, какая роль матлаба в этой цепи? Почему именно он.
  • Prophetic
    10 июня 2016, 15:46
    Почитал (в том числе все комменты)
    Ну, для начала стоит поблагодарить автора за то, что не пропал(а), и какая-то информация все же была дана.
    Однако:
    1. Судя по всему авторы ищут скорее покупателей, чем единомышленников (чисто IMHO), а для них глубокие подробности действительно не обязательны.
    2. НС, которая тут описана, на мой взгляд слишком сложна. Я представлял себе торговые НС несколько проще, а учитывая особенности создания данной конкретной НС, мне проще написать вполне четкий алгоритм для обычного робота, с набором параметров, которые с определенной периодичностью будут проверяться и пересчитываться. В конце концов задача НС получить на входе набор параметров, совместить их между собой по определенному алгоритму (для НС, как я понимаю, это объединить разрозненные нейроны связями с определенными весами), далее получить на выходе вероятность и потенциал движения цены в определенную сторону в течение определенного периода времени. Обучение НС сводится к подаче тестовых наборов сигналов, которые должны быть взяты из реальных данных и провести сравнение выходного сигнала с результатами тестовых данных. На основании отклонений результатов должна быть произведена корректировка весов. Ну, дальше все понятно… Так вот, если я правильно понял автора, то данная НС не только веса корректирует в процессе обучения, но и позволяет себе изменять связи между нейронами. Возможно я ошибаюсь, но такой подход кажется мне весьма рискованным, и больше похожим на игру хаотического совмещения случайных данных. А учитывая трудозатраты на построение и реализацию такой НС, эффективность такого подхода также начинает вызывать сомнения.
    3. Не смотря на написанное выше. Каждый из вариантов торговли имеет право на существование (в конце концов даже по астрологическим прогнозам торгуют). Пожелаю авторам успехов работе, а сам пожалуй еще больше отдалюсь от темы НС (ну не вижу я большого смысла на столько усложнять процесс покупки-продажи).
  • baron_samedi
    10 июня 2016, 16:16
    сложный подход.
    Желаю авторам сторицей оправдать затраты.
    Чудовищно тяжелый труд!
  • chizhan
    10 июня 2016, 17:16
    Рад снова Вас читать! Как все-таки подкупает энтузиазм Вашей команды. Жаль, что у меня сейчас мало времени на погружение и дискутирование. Предмет все же требует повышенного внимания, и я бы даже сказал отречения от других мирских дел)
  • nbvehrfr
    10 июня 2016, 17:56
    Спасибо за материал, 
    Я одного понять не могу, вы используете DL библиотеку на просто громадном количестве сетей ( 50 хромосом * несколько сетей для каждой для CV * etc ) Какие у вас ресурсы вычислительные? DL по опыту работает только на больших количествах данных (от сотни тысяч примеров) Если я правильно помню у вас обычная многослойка, каков порядок количества нейронов, слоев, и связей?
    Используете ли L2? Добавьте dropout если действительно DL, посмотрите как отразится на устойчивости результатов. 
    Может вопросы уже задавал (интервал между постами большой, память успевает забиться текущим проектом :)), сорри 

  • nbvehrfr
    10 июня 2016, 17:58
     используется только цена/объем (или их производные, индикаторы) и ничего больше? (новости, срез по позициям участников и пр?) 
  • nbvehrfr
    10 июня 2016, 18:27
    Некое общее вью для всех, в данной области есть два подхода к работе:
    — старый, когда ведется подбор архитектуры сети (архитектура может фиксироваться или развиваться, эволюционировать) и подбор параметров (или их комбинаций и пр) В качестве nn обычно используются многослойные сети с небольшим числом параметров (весов и нейронов) Бич многослойных сетей прямого распространения — сильно зависит от качества feature engineering.
    — новый (deep learning), когда изначально сеть состоит из двух (или более) подсетей — одна для поиска лучших параметров (из существующих, желательно брать необработанный низкоуровневый сигнал), следующая за ней для решения основной задачи. Те задача перебора параметров методом ГА или др здесь проводится самой сетью. Ошибка распространяется по всей сети и вся сеть подстраивается одновременно. Количество параметров (нейроны и связи) здесь громадные. Количество слоев может исчисляться десятками и сотнями (последние исследования от microsoft research). Проблема переобучения здесь решается просто — dropout'ом — часть нейронов просто отключается и проверяется устойчивость сети (так исключается переобучение). Новый подход на практике нереально реализовать без GPU — неэффективно (в $) и затраты времени будут очень большие.

    Авторы топика как я понял используют первый подход. 
      • nbvehrfr
        10 июня 2016, 21:08
        silentium, btw, я не говорю что он плохой :) а что за третий (в общих чертах)

  • Mr_X
    10 июня 2016, 18:58
    Хорошая статья. Самое главное конечно — что подавать на вход. Теоретически если подаётся цена (изменение цены), то индикаторы там не нужны.
  • Sergey Pavlov
    11 июня 2016, 05:27
    Обсуждать технологию построения как и идею использования НС в алготрейдинге пустое дело, поскольку, если там и есть ноу-хау, то об этом не расскажут, а что такое нейросети… ведь нейросетями можно назвать что угодно… с одной стороны, авторегрессия (ЛРФ) это та же нейросеть, принятие решений по индикатору это та же нейросеть… и т.д.

    Немного по существу.
    Пара цитат с вашего сайта:

    • Среднее количество сделок в день 4.2, что соответствует значению в тестовом периоде.

     

    • Прибыль за период с 01.10.2015 по 31.03.2016 составила 41500 пунктов на 1 контракт, в том числе, за 2016 год – 16730 пунктов.


    Получается 6 месяцев по 4.2 сделки в день, т.е. всего было 504 сделки,
    т.е. средняя сделка это 41500/504=82.3 пукта на 1 сделку.
    Т.е. средняя сделка на тестовом периоде всего лишь восемь шагов цены? Это очень мало к сожалению… Пойдет для 1 контракта… пойдет для 10… но уже с трудом. фРТС не такой супер ликвидный как это принято о нем говорить. Т.е. 1-2-3 шага цены вы будете терять на входе и потом на выходе из сделки при торговле от 10 до 100 контрактов… Итого, после этого средняя сделка у вас упадет более чем в два раза. Если я неверно интерпретировал показатели вашей системы, поправьте меня. А пока совершенно понятен смысл, почему вы это продаете:) Молодцы:)

      • Sergey Pavlov
        13 июня 2016, 17:42
        silentium, в реальных торгах не имеет значения, сколько пунктов у вас пришлось на прибыльные, а сколько на убыточные сделки и в каком количестве штук. Средняя сделка есть средняя сделка. Неважно, какой окажется данная сделка в итоге (прибыльной или убыточной), она в среднем проскальзывает одинаково. Поэтому, если средняя в 82 пункта это именно 8 шагов цены, то это очень мало. Как вы меняете текущую позицию? Рыночной заявкой? Лимитной? Как поступаете с неисполненной заявкой?
          • Sergey Pavlov
            13 июня 2016, 18:02
            silentium, благодарю за разъяснения:) а отступ лимитной заявки от open в какую сторону, в лучшую или в худшую и на сколько шагов цены?
  • waldhaber
    13 июня 2016, 23:56

    Сложнова-то. Как я понял, а я старался, но скорее всего не помогло, принцип этой нейросети, многокртное «усреднение» входных параметров… да и вобще не по мне это, как тут есть коммент надо попроще алгоритмы… они надёжней в том плане что если что-то пойдёт не так диагностировать где и что давольно просто… если же что-то пойдёт не так в этом алгоритме… даже лучше не начинать разбираться где это случилось..

    Но для общего развития было интересно ознакомиться, спасибо!

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

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