3Qu
3Qu личный блог
25 июня 2020, 22:59

Нейросети в торговых системах. 1.

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

И второе, мы будем далее для построения систем использовать пакет scikit-learn для Python. рекомендую ознакомиться. Есть и более продвинутые пакеты, скажем, TensorFlow и др., но их использовать мы не будем, и ограничимся более простым scikit-learn.
Теперь о том, чего здесь не будет. Здесь не будет теории НС, разве эпизодически и оч кратко. Здесь не будет описания пакетов Python, работы с графикой и пр. Обо всем этом вы можете прочесть в интернете, книгах, и документации Python.
В топике мы будем обсуждать только применение НС к ТС и их построению.
Так как тема достаточно велика, в один топик не влезет, сегодня мы займемся самыми общими вопросами. Следующая часть будет недели через две, раньше не получается.

Применением НС в ТС я заинтересовался года три назад. Интерес был достаточно абстрактным, и я эпизодически почитывал в инете сайты, типа, Хабр и прочую популярщину. Я ранее немного сталкивался с НС и МО, и, в общем, ничего нового это мне не дало, разве, посмотрел какие-то простые реально работающие экземплы, что, в общем тоже неплохо.
Потом нашел книгу Хайкина, и месяца три ее читал, поняв наконец, что и как делают нейросети, как это работает и как НС обучаются. Книга замечательная, но как применить это в ТС осталось загадкой.
Стал смотреть в инете, как люди применяют МО к рыночным данным. Подбираются некие предикторы, с помощью них строятся модели, выясняется, что модели ничего не дают, после чего выбираются другие предикторы. И так до бесконечности.
Теперь разберемся — что есть предиктор. Предиктор — это некая предобработка рыночных данных, а по простому, это всего навсего индикатор, пусть даже сложный, но все равно индикатор. Если мы вспомним, что нейрон НС представляет собой сумматор с коэффициентами, типа y = a0x1 + a1x2 +… + anxn, а выход нейрона нелинеен, т.к. на выходе стоит сигмоид или другая нелинейная функция, т.е. выход нейрона Y = Fnl(y), то совокупность таких нейронов вполне может при обучении самостоятельно построить любой даже очень сложный предиктор. Т.е. предикторы, как таковые, не нужны. Можно просто добавить к НС немного нейронов или слоев нейронов, и нейросеть прекрасно самостоятельно справится с построением предикторов.
Так родилась идея подавать на входы НС непосредственно значения ценового ряда.
Скажем, для обработки НС нам нужно n отсчетов истории. Формируем вектор C =[c0,c1,c2,....,cn] отсчетов, берем НС с n входами, и подаем на них наш вектор. Вроде все.
Однако не все Сегодня цена актива 100р, завтра 130р, послезавтра уже 200р. НС обученная на 100р не сможет адекватно реагировать на 130, а тем более на 200р. Это уже другой диапазон значений. Стало быть, не зависимо от цены актива, значения ценового ряда должны всегда находиться в одном диапазоне.
Делаем просто. Пусть c0 — текущая цена актива. Преобразуем наш вектор к виду: xi = (ci — c0)/c0, получим новый вектор X =[x0,x1,x2,.....xn], который мы и будем подавать на входы НС. Это всего навсего нормирование. Теперь все изменения цены лежат в одном диапазоне и считаются относительно текущего значения. Можно все значения нашего вектора умножить на какой либо постоянный коэффициент, чтобы привести его значения к динамическому диапазону нейрона. Вот теперь точно все!
Ан нет, опять не все. Допустим в ценовом ряду появилась «шпилька» — резкий выброс значения. Теперь на протяжение времени n эта шпилька будет попадать на входы нейронов и засвечивать их, примерно аналогично пересвету при фотографировании. С одной стороны, шпильку надо убрать, с другой стороны лучше бы оставить, причем, таким образом, чтобы шпилька лежала в динам диапазоне НС. Имхо, шпильки, да и вообще, выбросы, лучше ограничивать тем же сигмоидом, пропустив через него все компоненты вектора Х.
Вот теперь точно все. Мы знаем что и как подавать на входы НС. Правда, что с этим делать дальше пока неизвестно, и пока мы эти вопросы не решим к НС близко можно не подходить — без толку.

89 Комментариев
  • Kot_Begemot
    25 июня 2020, 23:12
    Не обязательно нелинейная функция. Первые мои нейронки были всецело из линейных нейронов и решали задачу восстановления линейной регрессии на зашумленных детерминированных рядах. С точки зрения взаимосвязи методов МО и мат. подходов — очень полезное упражнение.
      • Kot_Begemot
        25 июня 2020, 23:19
        3Qu, так и есть. Но если вы напишите, что NN это всего лишь нелинейный фильтр, построенный методом градиентного спуска — сразу же набегут Гуру и расскажут вам, что вы — дурак. 
        • Roman Ivanov
          26 июня 2020, 00:40
          Kot_Begemot, а в каком смысле фильтр? Что фильтрует?
          • Kot_Begemot
            26 июня 2020, 01:05
            ivanovr, шум, побочные компоненты — всё. Почему фильтр? Потому что оставляет только некоторую, определенную часть сигнала (обычно описываемую AR уравнениями вроде скользящей средней). SMA(p), например, известно, что режет стохастические шумы и гармоники с периодом p — всё остальное в полосу пропускания.
            • Roman Ivanov
              29 июня 2020, 12:01
              Kot_Begemot, все что в пример привели, это все линейное. Нейросеть сильно нелинейная. Сравнивать нельзя. Если уж проводить параллели, то нелинейности обычно расширяют спектр сигнала (если уж про полосу пропускания начали).
              • Kot_Begemot
                29 июня 2020, 18:08
                ivanovr, Вы должно быть шутите) 
  • Пафос Респектыч
    25 июня 2020, 23:22
    Это так не работает от слова совсем, но вы продолжайте )))
      • Пафос Респектыч
        25 июня 2020, 23:42
        3Qu, вы просто кладёте болт на инжиниринг фич. Это может прокатывать, если есть произвольное неограниченное количество тренировочных данных, но на рынке такой халявы нет к сож.
          • Пафос Респектыч
            26 июня 2020, 00:44

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

            Большая сетка многослойная просто радостно и легко это всё запомнит, а небольшая и немногослойная тоже попытается запомнить, только плохо ))

              • Осень
                26 июня 2020, 01:23
                3Qu, а вы пробовали подсчитать нарастание требуемых мощностей ну или нарастание времени обучения с увеличением кол-ва уровней сетки? Давно уже есть работы по прогностической ценности нс в зависимости от кол-ва уровней и менее 7 левелов считается слабо эффективными сетями, ну вот посчитайте затраты на обучение 7-12 уровневой сеточки на выбор денежные ( при условии что надо быстро а это аренда мин дата центра) или временные если денажек нет и учить скотинку придется на паре башенок где то лет 20) все остальное это как тетрис на 486ом по сравнению вр играми.
                  • Осень
                    26 июня 2020, 09:20
                    3Qu, если даже у вас нс просто статистику собирать будет все равно встанет вопрос о качестве собранной даты, сразу отвечу тут следующему писателю насчет 100 слоев, как, это понятно, непонятно зачем ) если отрезок лежащий горизонтально переместить в вертикальную плоскость он своих свойств не изменит)
                • Михаил
                  26 июня 2020, 08:03
                  Spooke67, я использую сети глубиной около 100 слоев. Учатся они вполне за обозримое время. 
                  • Осень
                    26 июня 2020, 09:25
                    Михаил, даже федеральные сетки производя сбор и анализ метаданных по таким вещам как прогностическое моделирование предпочтений клиентов используют сети из 16-22 уровней обученных на мощностях дата центров гугл или яндекс за несколько млн дол арендной платы в течение пары месяцев, но видимо вы великий и ужасный волшебник изумрудного города, правда возникает вопрос почему вы до сих пор не богаче маска и бафета вместе взятых))
                    • Михаил
                      26 июня 2020, 09:41
                      Spooke67, не говорите чушь:

                      ResNet50 — очень простая сеть по сегодняшним меркам, учится дома на GTX1080 и состоит из 50 слоев.

                      Учат в облаке, потому-что это часто дешевле арендовать компьютер под обучение, которое длится не так долго, чем покупать и постоянно держать свой комп.

                      Не стоит аренда компьютера миллионов долларов в месяц. Зайдите на Яндекс облако и посмотрите, сколько стоит аренда компьютера с Tesla v100 — 130 тыс рублей в месяц. 

                      Но и последний важный момент, что количество слоев очень мало говорит, об времени обучения — кроме количества слоев играет роль архитектура и количество параметров и обучающих примеров. У меня сети глубокие, но достаточно легковесные до 1 млн параметров. В том же ResNet50 25 млн параметров.
                      • Осень
                        26 июня 2020, 09:48
                        Михаил, вы просто играете терминами видимо, хотя в первом коменте я писал о прогностичекой ценности, колхоз дело добровольное в итоге, можете и дальше махать вашими ниточками называя их модным словом и наверное они даже будут иметь на это право) правильно говорят не стоит тешить чужое самолюбие за свой счет.
                        • Ынвестор
                          26 июня 2020, 10:09
                          Spooke67, товарищ неисправим. У нас уже с ним была дискуссия. Похоже впрок она не пошла. Ржунимогу как говорится.
                        • Михаил
                          26 июня 2020, 10:15
                          Spooke67, я вам не возражал, про прогностическую точность.

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

                          Будет ли из этого толк — сильно зависит от обучающего, как и при использовании любого другого метода. Нейронные сети совсем не панацея и не гарантирует толкового результата.
                          • Осень
                            26 июня 2020, 10:31
                            Михаил, ткните пальцем пжлст где написано что это сложно? дорого, затратно и неокупаемо да, и прошу вас перестаньте тыкать мне вашей линейкой для уроков информатики,
                            • Михаил
                              26 июня 2020, 10:40
                              Spooke67, вы много чего говорили, том числе «сети из 16-22 уровней обученных на мощностях дата центров гугл или яндекс за несколько млн дол арендной платы в течение пары месяцев» — хотя аренда мощного GPU сервера в реальности обходится в 130 тыс в месяц, а обучение сети такой глубины на нем может потребовать от нескольких минут до пару суток времени в зависимости от сложности. 
                              • Осень
                                26 июня 2020, 11:13
                                Михаил, «досадно баобабом быть» © Семеныч
                              • Осень
                                26 июня 2020, 11:23
                                Михаил, я правильно вас понимаю ничего не путаю? вы говорите что можете без проблем обучить 22 уровневую сетку для Х5 Retail Group на одной машине за пару дней и за 130 тыс рублей до эффективной прогностической ценности скажем хотя бы 52%? серьезно? а жопа не треснет вместе с харей?
                                • Михаил
                                  26 июня 2020, 11:44
                                  Spooke67, вы смешиваете два вопроса — создание рабочей модели для конкретной предметной области и обучение.

                                  Создать не готов, так как не эксперт в ретейле. Обучить готов, если это не NLP на трансформерах.

                                  Вот вам пример от очень известных людей в этой области  
                                  www.fast.ai/2018/08/10/fastai-diu-imagenet/

                                  ResNet 50 учится за 18 минут на 16 серверах с 8 Теслами за 40 долларов. 

                                  Но на самом деле учить с нуля многие сетки не нужно, за счет transfer learning можно обучить ResNet 50 под свою задачу за несколько минут на консьюмерском GPU.
                                  • Осень
                                    26 июня 2020, 11:55
                                    Михаил, т.е. вот такую последовательность по уровням 2........1,415461031044954789001553027745e+9864 (15 уровень всего) вы обучите за 40 долларов и 18 минут) точно волшебник ) завтра очередь из ритейла под дверями подьезда) да еще если до уровня предиктора хоть чуть превышающий 50% онир еще и в жопу целовать будут с утра до вечера))  ладно понял голова — яйцо)
  • Andy20
    25 июня 2020, 23:23
    Интересная тема. Ждём продолжения.
  • Replikant_mih
    25 июня 2020, 23:40

    >>«Так родилась идея подавать на входы НС непосредственно значения ценового ряда.»

     

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

     

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

    • Пафос Респектыч
      25 июня 2020, 23:43
      Replikant_mih, «куйня на входе — куйня на выходе», да.
      • Replikant_mih
        25 июня 2020, 23:47
        3Qu, Но идея, что бездушная машина сама за тебя все сделает и заработает хулиард, конечно, будоражит)).
    • Михаил
      26 июня 2020, 08:08
      Replikant_mih, прослушайте классический курс по DL Andrew Ng — он на этом вопросе останавливается. Вся сила DL в том, что начиная с какого-то объема данных не нужен фичеинжиниринг. Нет его в современно распозновании образов и NLP. Но данных нужно много — задачи компьютерно зрения обучаются примерно на 1 млн примеров, а для NLP часто ближе к 1 млрд. Если данных нет, то нет большого смысла и в DL обычно
      • Replikant_mih
        26 июня 2020, 08:46
        Михаил, Понял. А вам приходилось нейросети а трейдинге применять/пробовать?
        • Михаил
          26 июня 2020, 08:51
          Replikant_mih, применяю. Важная идея — нужно искать больше обучающих примеров. По моему опыту ML и DL начинает заводиться от 100 тыс обучающих примеров. Обычно сложно найти достаточно обучающих примеров в рамках одного инструмента. Я стараюсь создать единую модель для большого числа инструментов — в результате имеется больше обучающих примеров и, есть надежда, что создается модель с большей обобщающей способностью.
          • Replikant_mih
            26 июня 2020, 09:11
            Михаил, Ясн. Речь о числе объектов или о положительном классе? Потому что минуток уже прилично, а если стаканов и и.д. и того больше. Идея слеплять у меня тоже есть, тем более многие закономерности многие работают на широком пуле инструментов.
            • Михаил
              26 июня 2020, 09:18
              Replikant_mih, я так понимаю, вы хотите решать задачу классификации. Я больше через задачу регрессии работаю, поэтому не подскажу. И сам работаю на дневках, поэтому мой опыт не совсем может быть релевантен.

              Могу высказать только чисто теоретические соображения — доходность скейлится пропорционально времени, а СКО, как корень времени, поэтому на более коротких интервалах соотношение шум к сигналу хуже примерно, как корень времени. Из этого я бы предположил, что данных нужно больше, чтобы чему-то научиться на минутках. Грубо если у меня завелось на 100 тыс, то тут бы я ожидал бы результата в районе 2 млн примеров.

              Про долю положительных примеров ничего из общих соображений в голову не лезет, кроме обще известного, что сильный дисбаланс классов вызывает кучу проблем:)
              • Replikant_mih
                26 июня 2020, 09:31

                Михаил, А, ну вообще регрессия в общем смысле видится уместней, конечно, просто у меня с регрессией не получилось вменяемых результатов, а с классификацией что-то есть. Правда я пока простые методы ML использую. Модели у меня на вскидку более менее одинаково хорошо обучаются на минутках и на дневках, видимо из-за описанного вами критерия про объем данных, но на маленьких TF кроме, как вы сказали, более высокой доли шума ещё более высокая доля издержек на трейд в средней сделке, поэтому там идти против ветра сложнее при прочих равных — ветер сильнее)).

                 

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

                • Михаил
                  26 июня 2020, 09:53
                  Replikant_mih, могу подсказать идею, как сблизить регрессию и классификацию. У сети может быть несколько выходов. Один может прогнозировать ожидаемое значение, а второй, степень его неопределенности (например, ско). Как следствие вы можете посчитать вероятность, что значение индикатора будет выше 0, или например транзакционных издержек (по сути из регрессии вы получаете классификацию или некий механизм более содержательных предположений относительно точности прогноза). 
                  Подсмотреть реализацию можно здесь:

                  arxiv.org/abs/1906.05264
                  gluon-ts.mxnet.io

                  Но в любом случае сети не панацея, если работают более простые методы, то смысла лезть в сети нет. Область быстро развивается и надо прикладывать много усилий, чтобы следить за последними достижениями. 
                  • Replikant_mih
                    26 июня 2020, 10:24
                    Михаил, Спасибо, поизучаю это направление.
              • Kot_Begemot
                26 июня 2020, 20:22
                Михаил, по-моему для ваших чисто статистических соображений нейронные сети не совсем годятся. Проще обойтись чем-то другим, более простым. 
                • Михаил
                  26 июня 2020, 20:34
                  Kot_Begemot, мне кажется, соображение о большей сложности прогнозирования на коротком фрейме не привязано к методу прогнозирования и носит достаточно общий характер. А использовать сети или нет, каждый сам выбирает — всех проблем магическим способом они не решат. Это еще один инструмент, инструмент сложный и требующий специальных знаний. Если удается решать задачу более простым способом и все устраивает, то лезть в сети смысла нет.
                  • Kot_Begemot
                    27 июня 2020, 07:01
                    Михаил, да, не привязано, но если мы считаем данные сильно зашумленными, то применимы ли к ним (сырым, зашумленным данным) сети вообще? С их-то нелинейным усилителем шума?
                    • Михаил
                      27 июня 2020, 07:52
                      Kot_Begemot, я не понимаю почему не применимы. Сети очень часто применяют к прогнозированию вероятностных процессов (собственно ссылка выше на пример вероятностного прогнозирования с помощью сетей). Почти все функции потерь, используемые для обучения, имеют вероятностную интерпретацию — в большинстве своем эта та или иная функция правдоподобия. 

                      Тут скорее вопрос не принципиальной применимости, а реальных преимуществах и недостатках  по сравнению с какими-то другими методами в конкретных условиях.

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

                      Есть и преимущества — основное, что отсутсвует потребность в фичеинжиниринге. 

                      Тут каждый сравнивает и выбирает. 
                      • Kot_Begemot
                        27 июня 2020, 08:07
                        Михаил, а как неполносвязные сети собираются без фичинжиниринга. Random Subspace? 
                        • Михаил
                          27 июня 2020, 08:29
                          Kot_Begemot, не очень понял постановку вопроса.

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

                          В компьютерном зрении ключевая архитектура ResNet (есть другие варианты, но они по сути какие-то мелкие твики по верх идей ResNet). Тут можно глянуть достаточно подробный разбор, как устроен ResNet 
                          towardsdatascience.com/an-overview-of-resnet-and-its-variants-5281e2f56035

                          В NLP — ключевые архитектуры основаны на сетях внимания/трансформерах. 
                          medium.com/inside-machine-learning/what-is-a-transformer-d07dd1fbec04
                          jalammar.github.io/illustrated-transformer/
                          • Kot_Begemot
                            27 июня 2020, 08:58
                            Михаил, связь соседних точек? Типа свертки этим… ядром? ( Я просто не в теме уже очень давно). И так свертка за сверткой до изображения размером 1X1, принимающим бинарное значение соответствующее изображенному объекту?
                            • Михаил
                              27 июня 2020, 09:10
                              Kot_Begemot, в изображениях обычно первый слой какая-нибудь большая свертка типа 7х7 (основная ее цель снизить размерность, чтобы понизить вычислительную сложность). Потом идет несколько десятков — сотня слоев легких сверток 3х3. Так как делается паддинг эти сверки не меняют размер тензора. Между ними вставляются несколько пулингов 2х2 — которые собственно понижают размерность в два раза. Обычно около пулинга производят увеличение числа каналов — если на входе сети три  цветных канала, то ближе к выходу их может быть тысяча и более. 
                              В конце стоит глобальный пулинг, который свертывает тензор до размера 1х1хчисло каналов на выходе (грубо тысяча). После которого стоит софтмакс слой, который собственно выдает решение сети. Стандартный сет, на котором сейчас учат ImageNet содержит 1000 классов предметов. Соответсвенно должно быть 1000 выходов с вероятностью принадлежности к классу.

                              То есть по мере погружения в глубь постепенно уменьшаются физические размеры тензора в итоге до 1х1, но растет число каналов с 3 до сотен или тысяч. 

                              Это грубо — в ResNet присутствуют скип-соеденения для лучшего протекания градиентов сквозь десятки слоев и вместо сверток 3х3 используются трехслойные миниблоки из сверток 1х1+3х3+1х1 и везде используется мини-батч нормализация.
  • trader_95
    25 июня 2020, 23:44
    Какова Ваша доходность при использовании НС?
  • Roman Ivanov
    26 июня 2020, 00:41
    было время когда НС работали, сейчас рынки перестроились и нивелировали преимущество
  • Винни Пух
    26 июня 2020, 02:06
    Не мое дело конечно и тарелка тоже, но будущее за квантовыми системами и точка.
    А по статье так и не понял как применять сие ноу-хау в трейдинге. Это сколько ж ценовых данных нужно скормить, чтобы хоть что-то похожее на реальную торговлю получилось на выходе? Или можно на генератору случайного блуждания научить? 

    Причем по факту опять пляшем от цены, жуя и пережевывая её вдоль и поперек, пытаясь найти… что? А, точно, Грааль.
  • sis12qw
    26 июня 2020, 06:17
    Что 10-15 лет назад читал что счас — ожидания от нейросетей не изменились. Делаем сеть пораскидистее, кидаем туда историю поглубже, да всяких околоценовых рядов, вплоть до положения планет и гороскопов авось найдет закономерности какие нибудь )
  • nbvehrfr
    26 июня 2020, 06:20
    Хахаха!!!
  • Михаил К.
    26 июня 2020, 07:29
    Я, конечно, не специалист в нейросетях, но мнение свое (как в таких случаях полагается) имею… Насколько я понимаю, принцип работы нейросетей таков: входным данным, путем перебора, присваиваются оптимальные «веса», чтобы в итоге получился искомый результат (который при тренировке сети известен заранее). То есть, другими словами, мы имеем оптимизатор торговой системы, без известных правил, с неизвестным (но огромным) количеством оптимизируемых элементов. В результате мы получаем до нельзя заоптимизированную торговую систему, которая идеально работает на данных, использованных при обучении сети, но очень плохо — с новыми данными. 
    • Александр non
      26 июня 2020, 08:44
      Михаил К., +1
      была у меня дипломная работа — тоже нейросеть обучал, простую в 2 слоя всего. Обучал по результатам мат.модели одной. Скормил ей пару сотен расчетов с небольшим шагом изменений входных данных. Модель стала устойчиво показывать верный результат: такой же как выдавала сама мат.модель. Но как только входные результаты сущ. изменились, нейросеть стала выдавать ерунду сильно отличную от результата мат.модели эталона. Итого как в примере с котятами модель говорит что это «Котенок» видя белую рамку монитора, т.к. всех котят до этого видела на рабочих столах белых мониторов и обучалась на этом.
      Имхо. Загоняя цену в качестве исходной информации мы заранее обречены на провал, т.к. цена это всегда следствие — результат а НС нужны причины для расчета связи между вход-выход.
  • Ынвестор
    26 июня 2020, 07:31
    «Не понимая теорию нейросетей (НС) у вас вряд ли получится построить на ней ТС»
    НУ зачем вы это делаете?
    Судя по тексту вы ооочень далеки от этого понимания. Вы пишете чтобы вам указали путь для дальнейшего движения?
    В качестве топика — как пустить народ по ложному следу — он прекрасен.
    • cybertruck
      26 июня 2020, 15:10
      Ынвестор, какой след не ложный?
      • Ынвестор
        26 июня 2020, 16:41
        cyb650, автомагистралей нет нигде. Есть заросшие тропинки в джунглях. Готов делиться мачете и необходимыми запасами с теми кто готов продираться вместе по этим джунглям.
        • Пафос Респектыч
          26 июня 2020, 16:46
          Ынвестор, хм, а у меня есть карта )
          • Ынвестор
            26 июня 2020, 18:09
            Пафос Респектыч, напишу в личку)
  • Носорог
    26 июня 2020, 08:03
     Тема сисек не раскрыта. В итоге — есть прибыльные примеры или нет? Какая-либо сеть уже купила себе яхту? 
  • Врач-бондиатОр
    26 июня 2020, 08:31
    Пробовал когда-то играться в сетью в программе Statistica.
    На истории результаты были очень неплохие; в реале принцип прогнозирования — завтра будет то же что сегодня ))
    На тренде такой подход работает, на флэте жестко сливает...

    • Александр non
      26 июня 2020, 08:47
      Врач-бондиатОр, ага, на тренде все что угодно работает: ТА, мометум, скользящие средние.
  • sis12qw
    26 июня 2020, 08:49
    Основной принцип нейросети это из большого количества маленьких деталек (элементарных базовых функций нейрона) собрать большую и сложную штуку (непонятную функцию изменения цены)
    Что то типа как в 3д графике из полигонов треугольников строится любая фигура
  • Dmitryy
    26 июня 2020, 10:41
    Вообще есть такая интересная книга про ML от одного известного кванта https://www.amazon.co.uk/gp/product/1916081606/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1 (если не читали, рекомендую ознакомиться).

    Так вот, не возможно сделать ТС чисто на сетях. Необходимо применять смешанные подходы.

    Никто же не учил самолеты летать нейронными сетями? А металлы смешивать, чтобы искать оптимальную прочность и гибкость? Ракеты запускать? Это всё уже давно описано формулами, и эти формулы работают, так надежно как молоток и гвозди. И они на 100% применимы на финансовых рынках.
    • Пафос Респектыч
      26 июня 2020, 11:59
      Dmitryy, справедливости ради F-117A именно что учили летать нейронными сетями, потому что без их помощи человек-пилот стабильно пилотировать этот многоугольник был неспособен )
      • Александр non
        26 июня 2020, 13:02
        Пафос Респектыч
        «низкополигональным» рубленым он был потому что мощностей тогдашних компов не хватало на нормальный расчет поверхностей
        ?t=328
        • Пафос Респектыч
          26 июня 2020, 13:09
          Александр non, да ладно вы сами-то в это верите? Низкополигональным рубленым он был потому что приоритетная задача была сделать его малозаметным, а потом то что получилось уже учили летать.

          В любом случае, учили летать его с помощью нейросетки, и таки да, для этого даже оказались не нужны какие-то очень мощные компы, как мы видим и тогдашних хватило.
          • Dmitryy
            26 июня 2020, 13:18
            Пафос Респектыч, учили то на симуляторах, а чтобы эти симуляторы напоминали реальный мир, использовали те самые формулы.
            • Пафос Респектыч
              26 июня 2020, 13:23
              Dmitryy, ага, симулятор называется аэродинамическая труба )))
          • Александр non
            26 июня 2020, 13:31
            Пафос Респектыч, это не вопрос веры, это факт, посмотрите видео. А по поводу мощности вы просто забыли что могли компы того времени. Я помню на ночь запускал просчет коэффициентов излучения шахты печи на ночь оставляя расчет на первом пне, потому что один прогон занимал 10 часов
      • Dmitryy
        26 июня 2020, 13:11
        Denis, спасибо, добавил себе. Но в той, что я скинул, раскрывается именно причастность к финансовым рынкам.
  • CloseToAlgoTrading
    26 июня 2020, 11:07
    Хотелось бы все же уточнить, нейронные сети или машинное обучение.
    ибо тут мне кажется допущена опечатка
    И второе, мы будем далее для построения систем использовать пакет scikit-learn для Python.
    Данный пакет только ML реализует. 
  • Vladimir Diaditchev
    26 июня 2020, 11:30
    Мой опыт применения НС для прогнозирования цены отрицательный. В лучшем случае в результате получается  кривуля, напоминающая мувинг.  На вход можно подавать цену, доходности, ОИ, объемы, любые производные от этих величин. Результат не впечатляет. Хотя, если во временном ряде  есть закономерности, то прогнозы таких временных рядов будут впечатляющими.
    Вот простой пример: предположим, есть временной ряд ts=(1,4,7,2,5,8,3,6,9,4,7,10,5,8,11,6,9) Обучим НС на кусочке этой последовательности  с 1 по 7 член ряда.  Потом используем  другую часть этой последовательности с 8 по 14 член, в качестве теста.




    На графике показаны: ts – временной ряд.
    P1 — single-step predictions, P2 — multi-step predictions, горизонт прогнозов 7
    Выглядит красиво, а если продолжить с ценовым рядом, то НС анализирует ценовой ряд, строит какую- то модель, но для другого участка цены эта модель не будет  подходить, там совершенно другая модель будет. В результате предсказания не сответствуют реальности.  Правильно замечено: мусор на входе, мусор на выходе.
    • CloseToAlgoTrading
      26 июня 2020, 12:10
      Vladimir Diaditchev, Это вполне нормальная ситуация, если распределение в данных поменяется вы ничего и не получите. Другое дело что вы ищите в этих данных.
      Если я правильно помню, вроде бы Михаил использует сети для долгосрочных прогнозов и отбора наилучших кандидатов. 
      Опять же, можно не только предсказывать будущую цену, можно кластерезировать или находить паттерны. Стоит так же покопать в обучение с подкреплением, но во всем этом как не крути мы всегда зависим от данных.
  • Vladimir Diaditchev
    26 июня 2020, 12:27
    С получением разнообразных данных — проблема, особенно это касается РФ. В забугорных источниках больше интересного.    Поэтому строить глубокие нейросети возможно, но нужных данных мало. Либо надо заморачиваться с выкачиванием из интернета огромного количества мусора и из него фильтровать крохи нужных данных. И не факт, что это серьезно улучшит прогнозы.
     
    • CloseToAlgoTrading
      26 июня 2020, 12:30
      Vladimir Diaditchev, Если вы о котировках, то к буржуйским рынкам их полно, дневные в свободном доступе имеются. Кроме того всякие рейтинги аналитиков, сантименты и тд… тоже есть. Взгляните например на квантопиан. Если же нужны тиковые данные, то их можно купить :) стоят денег, но если уж серьезно этим заниматься, то можно и инвестировать пару тыщ :). Русский рынок конечно мал… тут уж в мировом масштабе надо смотреть ). 
  • Vladimir Diaditchev
    26 июня 2020, 13:31
    С котировками проблем нет, я могу запустить НС или любую другую штуковину в реал тайм, хоть с биржи РФ, хоть  с американского рынка. А вот, например, данные об открытых позициях  МосБиржи по физ и юр лицам доступны, но их формат неудобен, надо городить кучу строк кода, чтобы превратить в то что надо и так практически с большинством данных.
     

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

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