Алексей Никитин
Алексей Никитин личный блог
17 сентября 2018, 11:50

Нейросети и рынок

Упростим  тему  по максимуму.
Возьмем  данные,  10 входных точек. Неважно чего, неважно каких.
Возьмем  1  нейрон, который  видит эти 10 точек,  а  значит  у него есть 10 весов  которые  нужно найти.
Процесс нахождения  весов и есть обучение.

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

И это не  работает потому  что:

1.  Когда мы  подаем нестационарные  данные,  ответы  так же будут нестационарны, какую бы математику  мы  не  применили. Не существует математики корректно описывающей  нестационарные  процессы.  Сети инструмент стационарный!!!!!  Это означает что необходимо подавать стационарные  данные  на вход. Самый  яркий  пример синусоида,  идеал стационарности и по амплитуде, и по частоте.
2. Метод обучения  на  примерах,  применять нельзя. Потому что для  любого набора  данных невозможно разметить данные 100% правильно. Потому  что у вас в реальном рынке есть куча  факторов задержка, скорость расчетов, скорость выставления  и получения  данных, точность этих данных, ликвидность,  набрал позу или нет,  и в  каком объеме и  тд и тп.
3. Таким образом применение сетей реально серьезная  софтовая  задача, придется  разработать очень серьезный  комплекс, внутри которого будет зашита сеть для обучения,  и отдельный  режим этого софта для  тестирования  полученных результатов.

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

И сами сети здесь в общем то вторичны, по сравнению  задачей  по разработке всего комплекса софта в  целом.

Вам потребуется:
1. Данные  в виде ордерлога  из которых вы будете  нарезать модели данных для сети.
2. Видеокарта с CUDA + ваш супер софт.
3. Крайне необычно мыслящий мозг, который будет способен решать такую исследовательскую задачу.

82 Комментария
  • SergeyJu
    17 сентября 2018, 11:57
    Куда-кудой, коли сил невпроворот...
    Ордерлог, куда, это все технические моменты. Технические моменты легко преодолеет более-менее подкованный ремесленник. Тем более, что не всегда нужно лезть так глубоко. В конце-концов, емкие системы по необходимомти медленные. 
    А вот с мозгами и с нестационарностью ценовых рядов Вы все правильно отметили. Тут уже не только трясти, тут еще и думать придется. 
      • SergeyJu
        17 сентября 2018, 12:18
        Алексей Никитин, если не лезть в ХФТ (а я и не пытаюсь), то ордерлог легко можно сжать без особой потери информации, скажем, до средней частоты взятия отсчетов 1 раз в минуту. А это уже не слишком много.  Но и в этом случае, я уверен, что из дипленинга можно извлечь пользу. Другое дело, что тут нужна свежая постановка задачи, а не чистая мощь, техническая или вычислительная. 
          • SergeyJu
            17 сентября 2018, 12:52
            Алексей Никитин, если работать внутри спреда, то да, беда. Если же предполагать изначально, что в среднем на сделке (купил-продал) спред отдашь, то бид-аск дает достаточно инфы для исполнителя. А вот для анализа данных этой инфы может и не хватить, но не из-за медленного квантования, а из-за того что движение внутри не отражено. 
            Теперь второе, я ведь не о минутных свечках написал, а о средней частоте квантования. У нас тут теорема Котельникова не при делах из-за нестационарности. Квантовать можно по уровням, например, тогда при резком движении отсчеты будут более частыми, а на спокойном рынке — редкими. 
          • SergeyJu
            17 сентября 2018, 13:06
            Алексей Никитин, хороший исполнительный механизм, имхо, можно и нужно разрабатывать отдельно от разработки емких систем. Чтобы не мешать в кучу дикие внутрисекундные объемы ордеров, со скрытыми закономерностями, имеющими длительность от нескольких часов до месяцев и даже лет.
              • SergeyJu
                17 сентября 2018, 13:17
                Алексей Никитин, просто декомпозиция сложной задачи. 
      • tranquility
        18 сентября 2018, 12:25
        Алексей Никитин, а где Вы берете ордерлоги, у Мосбиржи покупаете, от QScalp берете, или сами для себя пишете?
          • tranquility
            18 сентября 2018, 17:57
            Алексей Никитин, это похоже серьезный проект, сам подобным занимаюсь, примерно представляю масштаб… А вопрос с объемом данных ордерлога как решили? По принципу что в qsh используется — (u)leb128 кодирование, сохранение только инкрементов и последующее zip-архивирование, или тоже как-то по-своему сделали? Если не стали использовать совместимый с qscalp формат, то по какой причине?
              • tranquility
                18 сентября 2018, 19:44
                Алексей Никитин, респект за труды, конечно… Если самому такое делать, без команды, шизануться можно, наверное. Я пока не дошел до такой стадии, но вполне ощущаю что она есть)) А вопрос как раз про дикий размер логов был. Я вот знаю, что день торгов по фьючу ртс в формате .csv от Мосбиржи в урезанном виде (только лучшие котировки и сделки) занимает в районе 100 Мб, сложно себе представить сколько тогда занимает полный лог за день. А вот полный ордерлог за тот же день в формате qsh занимает вего 20 Мб, а в заархивированном виде и того в 2 раза меньше. Я вот в текстовом файле сохранял данные по сделкам и стакану, но позже пришел к выводу, что в этом плане qsh заметно эффективнее и все же имеет смысл перейти на нечто подобное.
  • ves2010
    17 сентября 2018, 12:03
    все гораздо проще… у тя промеж ушей сеть с 12ярдами нейронов… поэтому гораздо проще научиться самому нежели дрессировать нейросет на компе
    • Осень
      17 сентября 2018, 12:10
      ves2010, с этой сеткой ваще беда она не обучаема в принципе))
      • ves2010
        17 сентября 2018, 12:11
        Spooke67, у кого как… имхо ее надо мотивировать правильно…
      • старый трейдер
        17 сентября 2018, 15:14
        Spooke67, применительно к рынку — эффективнее этой сетки нет.  Все, что что тут понаписал топикстартер и что обычно запихивают в «книжки про трейдинг» — абсолютнейший мусор по сравнению с необычно мыслящим мозгом.
  • Тихая Гавань
    17 сентября 2018, 12:07
    спасибо, понял что лучше мне в это не лезть.. 

  • Осень
    17 сентября 2018, 12:07
    в итоге всегда упрешься сначала в недостаточность кол-ва уровней для достижения максимального качества исходящего прогноза, а при наращивании уровней в мощность машины с выбором или снижать качество или затрачивать несколько лет на обучение что по итогу так же убивает саму идею, ну и как вариант заплатить пару сотен тыс евро за мощности дата центра при неоднозначном результате) найди инфу про сетки для сетевого ритейла по предпочтениям покупателей,  историю создания, тестирования и эксплуатации, там помнится что то вменяемое у них на выходе появилось после повышения до 7-8 уровней, а 75% точности получили только при 9 -11.
    • старый трейдер
      17 сентября 2018, 15:26
      Все описанное относится к случаю с необученной сеткой в голове. Если же человек четко понимает, что, где и при каких условиях нужно искать, то задача упрощается на много порядков.
      • Осень
        17 сентября 2018, 15:50
        старый трейдер, это вряд ли) если ты понимаешь четко тогда зачем тебе нейросеть?) пиши сразу алго и пускай в бой) сетка то и нужна для постоянного поиска новых идей а не для трейдинга как такового.
        • старый трейдер
          17 сентября 2018, 17:39
          Spooke67, поскольку ситуации почти никогда не повторяются в точности (иначе многие находили бы), нужен какой-то метод их сопоставления с эталоном и коррекции самого эталона. Сетки вполне годятся и даже выигрывают в гибкости.
          • Осень
            17 сентября 2018, 17:58
            старый трейдер, я с вами и не спорю о годности сеток) я говорю о бессмысленности создания и использования низкоуровневых сетей и практической недоступности для простого человека высокоуровневых.
            • старый трейдер
              17 сентября 2018, 18:35
              Spooke67, даже сетки низкого уровня весьма эффективны, если «тыкать в правильные места». Eй-богу.
  • aimaster
    17 сентября 2018, 12:24
    «применение сетей реально серьезная  софтовая  задача, придется  разработать очень серьезный  комплекс, внутри которого будет зашита сеть для обучения,  и отдельный  режим этого софта для  тестирования  полученных результатов»

    что мешает использовать готовые комплексы? заточенные под определенные задачи, в том числе касаемо рынка?
    • SergeyJu
      17 сентября 2018, 12:35
      aimaster, да ничто не мешает, только думать надо, а люди этого очень не любят делать. 
      • aimaster
        17 сентября 2018, 12:45
        Алексей Никитин, нет или не может существовать? разница большая. в первом случае — это вопрос времени.
        • SergeyJu
          17 сентября 2018, 12:56
          aimaster, смотря что считать комплексом. Готовая библитека для сетевых расчетов есть, и использовать можно. Умника, который для всех желающих сделает содержательный комплекс, который будет интеллектуальной связкой между рыночными данными и библиотеками, нет и не будет. Зачем отдавать ноухау рынку?
  • Bigorent.Ru
    17 сентября 2018, 12:52
    А чего значит нестационарные данные?
    • SergeyJu
      17 сентября 2018, 13:01
      Андрей Казанов, они меняются со временем непредсказуемым образом. 
      • Bigorent.Ru
        17 сентября 2018, 13:08
        SergeyJu, Кто меняется? На вход же нейросети подаются формализованные значение, в большинстве случаем 0 и 1. То есть таким значениями могут быть, например, угол касательной > 45% = 0 1, меньше = 0 0, в отрицательную сторону 1 0 и 1 1. Что именно меняется? Нейросеть просто сравнивает входной сигнал с эталонами, если можно так выразится.
        • SergeyJu
          17 сентября 2018, 13:14
          Андрей Казанов, характер движения цен  меняется, причем очень сильно. Стабильные правила могут один год нести прибыль, а другой — обнулить счет. 
          • Bigorent.Ru
            17 сентября 2018, 13:32
            SergeyJu, Дак применительно к трейдингу нейросеть не саму же цену сравнивает, а параметры после некоторой обработки. Для этого можно и не нейросеть использовать, есть куча алгоритмов кластеризации. Можно заложить устаревание информации, кто мешает это сделать? Переобучай сеть, например, с начала тренда на Д1.
            • SergeyJu
              17 сентября 2018, 14:24
              Андрей Казанов, пожалуйста, пожалуйста, делайте, как Вам нравится.
      • Bigorent.Ru
        17 сентября 2018, 13:09
        Алексей Никитин, Я вообще не понимаю тогда причем тут нейросети? Изображение тоже не постоянно, но нейросети распознают лица же?!
          • Bigorent.Ru
            17 сентября 2018, 13:33
            Алексей Никитин, ну дак надо распознавать лица и вполоборота и с бородой и с другой прической.
  • Михаил
    17 сентября 2018, 13:07
    1. Нестационарные данные можно сделать стационарными дифференцированием 
    2. Разметить можно достаточно точно. ML не конечный результат — это инструмент поиска закономерностей. Далее можно протестировать, насколько неточная разметка и всякие технические моменты влияют на результат. 
    3. ML принципиально не отличается от любого другого способа анализа рынка — везде путь от некой идеи до ее реализации достаточно сложный.

    Плюс ML — в том, что в нем изначально решается задача избежать переподгонки по возможности. 

     
    • SergeyJu
      17 сентября 2018, 13:16
      Михаил, не все так просто. Разжевывать не хочу.
  • SergeyJu
    17 сентября 2018, 13:10
     Классический арбитраж — это торговля одним активом на разных уровнях, чтобы собирать разницу цен либо на разных торговых точках, либо на разных категориях торговцев. 
    А то, что Вы написали — статарбитраж, то есть, арбитраж частичный. 
  • Сергей Андреев
    17 сентября 2018, 14:54
    В чём суть данного опуса? У меня боты на нейросетях торгуют, более того, я им передал большую часть своего торгового капитала, т.к. они торгуют круче того, что я умею руками. А из пунктов (Вам потребуется) я разве что выделил бы то, что разработчик должен обладать комбинированными знаниями биржа+программирование, что само по себе встречается крайне редко.
      • Сергей Андреев
        17 сентября 2018, 15:35
        Алексей Никитин, я не вываливаю такие вещи куда попало. Для примера могу показать расторговку боковика по одному торговому инструменту за последние полгода (таких инструментов у меня торгуется более 20). 



        • SergeyJu
          17 сентября 2018, 16:00
          Сергей Андреев, картинка очень красивая. Срок маленький.
        • day0markets.ru
          17 сентября 2018, 20:57
          Сергей Андреев, хороший результат. Не подскажите, что вы использовали в качестве классов или целевой переменной? Это чистые сетки или часть более сложной структуры, может RL?
          • Сергей Андреев
            18 сентября 2018, 10:06
            Alex Hurko, это комплексная система. В лоб нейросетью такую задачу решить нельзя, во всяком случае я не знаю как.
        • П М
          17 сентября 2018, 23:45
          Сергей Андреев, accumulated 
  • Пафос Респектыч
    17 сентября 2018, 18:22
    Упростим  тему  по максимуму.Возьмем  данные,  10 входных точек. Неважно чего, неважно каких.Возьмем  1  нейрон, который  видит эти 10 точек,  а  значит  у него есть 10 весов  которые  нужно найти.Процесс нахождения  весов и есть обучение.


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


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

    • SergeyJu
      17 сентября 2018, 21:42
      Zweroboi, SVM делит пространство, радиальные функции делят пространство, вообще, наличие метрики (расстояния) в пространстве позволяет его шинковать как угодно. Научить систему принимать решения, которые зависят от области в пространстве признаков, мне кажется, обычное дело. У нас проблема не в методах разделения, а в том, что нет чистых паттернов, все перемешано и зашумлено.
      • Пафос Респектыч
        18 сентября 2018, 05:47
        SergeyJu, нет метрики, не в кассу
        • SergeyJu
          18 сентября 2018, 06:23
          Zweroboi, Вы уверены? Не могли бы привести примитивный пример, когда есть глубокое обучение, а расстояние во входном пространстве ввести нельзя.
          • Пафос Респектыч
            18 сентября 2018, 08:02
            SergeyJu, по одной оси — попугаи, по другой — апельсины )
            • SergeyJu
              18 сентября 2018, 09:39
              Zweroboi, в чем бы Вы их ни измеряли, в штуках, в дюймах, в литрах, никто не мешает посчитать расстояние между точкой (Х попугаев, Y апельсинов) и точкой (А попугаев, В апельсинов). 
              • Пафос Респектыч
                18 сентября 2018, 13:21
                SergeyJu, посчитать-то можно, только смысла в этом может не быть никакого, особенно если измерений десятки или сотни. Попугаи, апельсины, мартышки, дюймы, тесты на беременность и.т.д ))

                Там не то что евклидово расстояние, правило треугольника работать не обязано )
                • SergeyJu
                  18 сентября 2018, 13:45
                  Zweroboi, смотря как вводить расстояние и для чего. Если Вы не можете сопостовлять попугаев с апельсинами в расстоянии, Вы их не сможете сопоставлять и в НС. Вообще — НС — очень неразборчивая мясорубка для чисел. 
                  Вот, навскидку,  про расстояние Махаланобиса и кластерный анализ.
                  www.isa.ru/aidt/images/documents/2012-01/81_89.pdf
                  • Пафос Респектыч
                    18 сентября 2018, 19:41
                    SergeyJu, да, неразборчивая очень, я об этом прям сам тоже и написал в первом же комментарии
                    • SergeyJu
                      18 сентября 2018, 19:51
                      Zweroboi, слово одно, смысл разный. Вы писали, что она не умеет разделять области, а я — о том, что ей не важна природа чисел, а области умеет разделять иногда даже лучше, чем надо. К тому же, Вы, наверное, изначально имели в виду НС в самом узком смысле персептрона? А я думал, что дискуссия о спектре методов  дипленинга, НС в смысле широком.
                      • Пафос Респектыч
                        18 сентября 2018, 19:56
                        SergeyJu, нейросеть толком не умеет отделять более «нестационарные» области от менее «стационарных». То есть например котов находить можно научить легко, но если само понятие кота изменчиво во времени, нейросеть это не поймёт. Она даёт просто чиселку — приближённое значение функции в пространстве. На каких котах обучил — таких и будет искать. У нейросети нет понятия что в какой-то области функция не определена, тем более на основе каких-то вероятностных соображений
                        • SergeyJu
                          18 сентября 2018, 20:07
                          Zweroboi, что человек туда засунет, то и будет. Если человек ничего, кроме кучи чисел туда не засунет, ничего, кроме числового фарша не получит. Если не уметь задавать правильные вопросы, нельзя расчитывать на удовлетворительные ответы. Это не только в НС. Если Вы попросите таксиста  отвезти Вас туда, не знаю куда, он легко накрутит счетчик и все. И проблема тут не в таксисте. Он, может, и водит хорошо, и город знает. Да вот с заказчиком беда.
                          • Пафос Респектыч
                            18 сентября 2018, 22:02
                            SergeyJu, человек в первую очередь выбирает куда засовывать ) к чему все эти общие слова? ) пишите конкретнее, если в теме или на форуме школьников
                            • SergeyJu
                              18 сентября 2018, 22:12
                              Zweroboi,  я в теме, а Вы нет. Я пишу профессионально, как математик и человек, десятки лет занимавшийся прикладной математикой. В том числе именно в области применения современных методов анализа к рынку. А Вы не в силах отличить профессионала от школьника. Пока я применялся к Вашему уровню, пытался объяснять «на пальцах». Не поняли — мне не надо. 

  • Roman Ivanov
    17 сентября 2018, 19:50
    Не понял что хотел сказать афтар...
    Подавай на вход разности между соседними барами. Будет тебе стационарный ряд.
    • SergeyJu
      17 сентября 2018, 21:23
      ivanovr, нет.
  • day0markets.ru
    17 сентября 2018, 20:46
    Дело даже не в нестационарности, хотя и это проблема. Вы не сможете ничего научить на данных близких к случайным. Ни нейросеткой, ни классическими методами ML. Используйте иную целевую переменную, тогда что-то начнет работать. 
    • Пафос Респектыч
      17 сентября 2018, 20:54
      Alex Hurko, можно научить, достаточно научиться определять, где случайность, а где, как говорят наши партнёры, хайли анлайкли
      • day0markets.ru
        17 сентября 2018, 21:01
        Zweroboi, научится определять где случайность, а где нет — это сама по себе задача непростая. На очищенных данных результаты должны быть лучше, вы правы
        • Пафос Респектыч
          17 сентября 2018, 21:15
          Alex Hurko, давно придуманы статистические тесты для этого
          • SergeyJu
            17 сентября 2018, 21:22
            Zweroboi, тесты  для определения беременности тоже есть. Но они не помогают забеременеть тем, кто не может и не забеременеть, тем кто может.
            Тесты — это про одно, а рост счета — это про другое.

    • SergeyJu
      17 сентября 2018, 21:37
      Alex Hurko, целевая переменая — это что? Какой-то индикатор, результат фильтрации, или нечто иное. 
      • day0markets.ru
        18 сентября 2018, 07:00
        SergeyJu, то, что мы хотим предсказать нейросеткой иди другим методом. Например, размер или цвет свечи. 
        • SergeyJu
          18 сентября 2018, 07:12
          Alex Hurko, Цвет свечи — бинарный индикатор. День недели — индикатор, имеющий 7 (или 5, в случае амерского рынка) значений. Ну и так далее.

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

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