Блог им. Nikitka

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

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

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

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

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

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

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

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

★9
Куда-кудой, коли сил невпроворот...
Ордерлог, куда, это все технические моменты. Технические моменты легко преодолеет более-менее подкованный ремесленник. Тем более, что не всегда нужно лезть так глубоко. В конце-концов, емкие системы по необходимомти медленные. 
А вот с мозгами и с нестационарностью ценовых рядов Вы все правильно отметили. Тут уже не только трясти, тут еще и думать придется. 
avatar

SergeyJu

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

Емкие, да медленные,  но там и доходность 20 годовых. Да  для  таких никакие сети и не нужны
Алексей Никитин, если не лезть в ХФТ (а я и не пытаюсь), то ордерлог легко можно сжать без особой потери информации, скажем, до средней частоты взятия отсчетов 1 раз в минуту. А это уже не слишком много.  Но и в этом случае, я уверен, что из дипленинга можно извлечь пользу. Другое дело, что тут нужна свежая постановка задачи, а не чистая мощь, техническая или вычислительная. 
avatar

SergeyJu

SergeyJu, я в своем проекте  беру  бид и офер, чтобы можно было хоть как  то исполнится поточнее. Раз в минуту  очень плохая точность, на  высокой волатильности  беда.
Алексей Никитин, если работать внутри спреда, то да, беда. Если же предполагать изначально, что в среднем на сделке (купил-продал) спред отдашь, то бид-аск дает достаточно инфы для исполнителя. А вот для анализа данных этой инфы может и не хватить, но не из-за медленного квантования, а из-за того что движение внутри не отражено. 
Теперь второе, я ведь не о минутных свечках написал, а о средней частоте квантования. У нас тут теорема Котельникова не при делах из-за нестационарности. Квантовать можно по уровням, например, тогда при резком движении отсчеты будут более частыми, а на спокойном рынке — редкими. 
avatar

SergeyJu

SergeyJu, Тут я  с  вами согласен, сам люблю квантовать не  по времени.
SergeyJu, На мой взгляд ХТФ сейчас это  быстрота торговли. Я думаю ХТФ сейчас крайне  актуальная тема  при наборе объема.  Грубо говоря торговля раз в  квартал, но дикая  куча инструментов в  портфеле, и все  нужно взять очень правильно,  чтобы портфель не перекосило. Вот таким я вижу сегодняшнее ХТФ.
Алго это в первую очередь набор поз. Здесь важны  максимальная  надежность и  точность.  По 1 контракту за  день легко можно позу в в мильен контрактов набрать, Никто и не  заметит.
Вот такое оно современное  ХТФ
Алексей Никитин, хороший исполнительный механизм, имхо, можно и нужно разрабатывать отдельно от разработки емких систем. Чтобы не мешать в кучу дикие внутрисекундные объемы ордеров, со скрытыми закономерностями, имеющими длительность от нескольких часов до месяцев и даже лет.
avatar

SergeyJu

SergeyJu, это уже архитектурные  изыски -))))
Алексей Никитин, просто декомпозиция сложной задачи. 
avatar

SergeyJu

Алексей Никитин, а где Вы берете ордерлоги, у Мосбиржи покупаете, от QScalp берете, или сами для себя пишете?
avatar

tranquility

tranquility, прямой коннект FIX  FAST  PLAZA  TWIME
Сам собираю все доступные рынки.
Весь софт свой


smart-lab.ru/blog/335782.php

smart-lab.ru/blog/310157.php

Алексей Никитин, это похоже серьезный проект, сам подобным занимаюсь, примерно представляю масштаб… А вопрос с объемом данных ордерлога как решили? По принципу что в qsh используется — (u)leb128 кодирование, сохранение только инкрементов и последующее zip-архивирование, или тоже как-то по-своему сделали? Если не стали использовать совместимый с qscalp формат, то по какой причине?
avatar

tranquility

tranquility, знать не  знаю про  qscalp, ни разу его не видел, и  задачу  посмотреть не ставил. Фаст декодер собственный, без известных опенсорс библиотек.  Все свое на с++. Размер логов  дикий -))

В боевом режиме с 2012 года.
Алексей Никитин, респект за труды, конечно… Если самому такое делать, без команды, шизануться можно, наверное. Я пока не дошел до такой стадии, но вполне ощущаю что она есть)) А вопрос как раз про дикий размер логов был. Я вот знаю, что день торгов по фьючу ртс в формате .csv от Мосбиржи в урезанном виде (только лучшие котировки и сделки) занимает в районе 100 Мб, сложно себе представить сколько тогда занимает полный лог за день. А вот полный ордерлог за тот же день в формате qsh занимает вего 20 Мб, а в заархивированном виде и того в 2 раза меньше. Я вот в текстовом файле сохранял данные по сделкам и стакану, но позже пришел к выводу, что в этом плане qsh заметно эффективнее и все же имеет смысл перейти на нечто подобное.
avatar

tranquility

все гораздо проще… у тя промеж ушей сеть с 12ярдами нейронов… поэтому гораздо проще научиться самому нежели дрессировать нейросет на компе
avatar

ves2010

ves2010, с этой сеткой ваще беда она не обучаема в принципе))
avatar

Spooke67

Spooke67, у кого как… имхо ее надо мотивировать правильно…
avatar

ves2010

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

avatar

Тихая Гавань

в итоге всегда упрешься сначала в недостаточность кол-ва уровней для достижения максимального качества исходящего прогноза, а при наращивании уровней в мощность машины с выбором или снижать качество или затрачивать несколько лет на обучение что по итогу так же убивает саму идею, ну и как вариант заплатить пару сотен тыс евро за мощности дата центра при неоднозначном результате) найди инфу про сетки для сетевого ритейла по предпочтениям покупателей,  историю создания, тестирования и эксплуатации, там помнится что то вменяемое у них на выходе появилось после повышения до 7-8 уровней, а 75% точности получили только при 9 -11.
avatar

Spooke67

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

Spooke67

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

Spooke67

Spooke67, даже сетки низкого уровня весьма эффективны, если «тыкать в правильные места». Eй-богу.
«применение сетей реально серьезная  софтовая  задача, придется  разработать очень серьезный  комплекс, внутри которого будет зашита сеть для обучения,  и отдельный  режим этого софта для  тестирования  полученных результатов»

что мешает использовать готовые комплексы? заточенные под определенные задачи, в том числе касаемо рынка?
avatar

aimaster

aimaster, да ничто не мешает, только думать надо, а люди этого очень не любят делать. 
avatar

SergeyJu

aimaster, готовых комплексов нет, есть готовые  сетевые библиотеки типа TensorFlow. Но вы должны  к ним еще кучу софта  своего добавить. чтобы все вместе работало
Алексей Никитин, нет или не может существовать? разница большая. в первом случае — это вопрос времени.
avatar

aimaster

aimaster, смотря что считать комплексом. Готовая библитека для сетевых расчетов есть, и использовать можно. Умника, который для всех желающих сделает содержательный комплекс, который будет интеллектуальной связкой между рыночными данными и библиотеками, нет и не будет. Зачем отдавать ноухау рынку?
avatar

SergeyJu

aimaster, Сетевые  пакеты известны  https://developer.nvidia.com/deep-learning-frameworks

Ну  а применить их к  рынку,  вопрос времени, опыта, и смекалки.
А чего значит нестационарные данные?
avatar

Андрей Казанов

Андрей Казанов, они меняются со временем непредсказуемым образом. 
avatar

SergeyJu

SergeyJu, Кто меняется? На вход же нейросети подаются формализованные значение, в большинстве случаем 0 и 1. То есть таким значениями могут быть, например, угол касательной > 45% = 0 1, меньше = 0 0, в отрицательную сторону 1 0 и 1 1. Что именно меняется? Нейросеть просто сравнивает входной сигнал с эталонами, если можно так выразится.
Андрей Казанов, характер движения цен  меняется, причем очень сильно. Стабильные правила могут один год нести прибыль, а другой — обнулить счет. 
avatar

SergeyJu

SergeyJu, Дак применительно к трейдингу нейросеть не саму же цену сравнивает, а параметры после некоторой обработки. Для этого можно и не нейросеть использовать, есть куча алгоритмов кластеризации. Можно заложить устаревание информации, кто мешает это сделать? Переобучай сеть, например, с начала тренда на Д1.
Андрей Казанов, пожалуйста, пожалуйста, делайте, как Вам нравится.
avatar

SergeyJu

Андрей Казанов, простым  языком непостоянные
1Непостоянные  по амплитуде колебаний.
2 По частоте/периоду колебаний.
 и тд  и тп.

Как  только мы  находим  постоянство хотя бы  1  параметра,  уже можно спокойно торговать.


Классический арбитраж  построен на  постоянстве амплитуты.  Точнее  на возврате  амплитуды к известному  значению
Алексей Никитин, Я вообще не понимаю тогда причем тут нейросети? Изображение тоже не постоянно, но нейросети распознают лица же?!
Андрей Казанов, лица очень даже стационарны. Хотя  как  пример нестационарного лица это  младенец взрослый и старик ( человек один, а  лица разные) Но если взять ваше лицо сегодня и год назад, все  будет крайне стационарно. 
Алексей Никитин, ну дак надо распознавать лица и вполоборота и с бородой и с другой прической.
1. Нестационарные данные можно сделать стационарными дифференцированием 
2. Разметить можно достаточно точно. ML не конечный результат — это инструмент поиска закономерностей. Далее можно протестировать, насколько неточная разметка и всякие технические моменты влияют на результат. 
3. ML принципиально не отличается от любого другого способа анализа рынка — везде путь от некой идеи до ее реализации достаточно сложный.

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

 
avatar

Михаил

Михаил, не все так просто. Разжевывать не хочу.
avatar

SergeyJu

Михаил, тема очень емкая, тут можно сразу  устраивать конференцию на  пару суток.
Михаил, по пункту 1 — не согласен. Процесс может не иметь единичного корня (например, log-returns), но автокорреляции могут зависеть не только от лага, но и от времени. Для такого нестационарного процесса дифференцированием вы ничего не добьетесь
avatar

Eugene Logunov

Eugene Logunov, понятно, что есть куча нюансов, та же гетероскедастичность в финансовых рядах, например. Но со многими проблемами можно пытаться бороться тем или иным способом. И в любом случае, если есть некая торговая система не на базе ML, используемые в ней индикаторы можно взять в качестве фич и сделать ML модель на ее базе, поэтому обобщенная критика ML мне кажется несколько странной. 
avatar

Михаил

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

SergeyJu

В чём суть данного опуса? У меня боты на нейросетях торгуют, более того, я им передал большую часть своего торгового капитала, т.к. они торгуют круче того, что я умею руками. А из пунктов (Вам потребуется) я разве что выделил бы то, что разработчик должен обладать комбинированными знаниями биржа+программирование, что само по себе встречается крайне редко.
avatar

Сергей Андреев

Сергей Андреев, буду очень рад посмотреть на вашу  эквити
Алексей Никитин, я не вываливаю такие вещи куда попало. Для примера могу показать расторговку боковика по одному торговому инструменту за последние полгода (таких инструментов у меня торгуется более 20). 



Сергей Андреев, картинка очень красивая. Срок маленький.
avatar

SergeyJu

Сергей Андреев, шикарный результат! Вы большой молодец!
Сергей Андреев, хороший результат. Не подскажите, что вы использовали в качестве классов или целевой переменной? Это чистые сетки или часть более сложной структуры, может RL?
avatar

Alex Hurko

Alex Hurko, это комплексная система. В лоб нейросетью такую задачу решить нельзя, во всяком случае я не знаю как.
Сергей Андреев, accumulated 
avatar

ПBМ

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


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


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

avatar

Zweroboi

Zweroboi, SVM делит пространство, радиальные функции делят пространство, вообще, наличие метрики (расстояния) в пространстве позволяет его шинковать как угодно. Научить систему принимать решения, которые зависят от области в пространстве признаков, мне кажется, обычное дело. У нас проблема не в методах разделения, а в том, что нет чистых паттернов, все перемешано и зашумлено.
avatar

SergeyJu

SergeyJu, нет метрики, не в кассу
avatar

Zweroboi

Zweroboi, Вы уверены? Не могли бы привести примитивный пример, когда есть глубокое обучение, а расстояние во входном пространстве ввести нельзя.
avatar

SergeyJu

SergeyJu, по одной оси — попугаи, по другой — апельсины )
avatar

Zweroboi

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

SergeyJu

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

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

Zweroboi

Zweroboi, смотря как вводить расстояние и для чего. Если Вы не можете сопостовлять попугаев с апельсинами в расстоянии, Вы их не сможете сопоставлять и в НС. Вообще — НС — очень неразборчивая мясорубка для чисел. 
Вот, навскидку,  про расстояние Махаланобиса и кластерный анализ.
www.isa.ru/aidt/images/documents/2012-01/81_89.pdf
avatar

SergeyJu

SergeyJu, да, неразборчивая очень, я об этом прям сам тоже и написал в первом же комментарии
avatar

Zweroboi

Zweroboi, слово одно, смысл разный. Вы писали, что она не умеет разделять области, а я — о том, что ей не важна природа чисел, а области умеет разделять иногда даже лучше, чем надо. К тому же, Вы, наверное, изначально имели в виду НС в самом узком смысле персептрона? А я думал, что дискуссия о спектре методов  дипленинга, НС в смысле широком.
avatar

SergeyJu

SergeyJu, нейросеть толком не умеет отделять более «нестационарные» области от менее «стационарных». То есть например котов находить можно научить легко, но если само понятие кота изменчиво во времени, нейросеть это не поймёт. Она даёт просто чиселку — приближённое значение функции в пространстве. На каких котах обучил — таких и будет искать. У нейросети нет понятия что в какой-то области функция не определена, тем более на основе каких-то вероятностных соображений
avatar

Zweroboi

Zweroboi, что человек туда засунет, то и будет. Если человек ничего, кроме кучи чисел туда не засунет, ничего, кроме числового фарша не получит. Если не уметь задавать правильные вопросы, нельзя расчитывать на удовлетворительные ответы. Это не только в НС. Если Вы попросите таксиста  отвезти Вас туда, не знаю куда, он легко накрутит счетчик и все. И проблема тут не в таксисте. Он, может, и водит хорошо, и город знает. Да вот с заказчиком беда.
avatar

SergeyJu

SergeyJu, человек в первую очередь выбирает куда засовывать ) к чему все эти общие слова? ) пишите конкретнее, если в теме или на форуме школьников
avatar

Zweroboi

Zweroboi,  я в теме, а Вы нет. Я пишу профессионально, как математик и человек, десятки лет занимавшийся прикладной математикой. В том числе именно в области применения современных методов анализа к рынку. А Вы не в силах отличить профессионала от школьника. Пока я применялся к Вашему уровню, пытался объяснять «на пальцах». Не поняли — мне не надо. 

avatar

SergeyJu

Не понял что хотел сказать афтар...
Подавай на вход разности между соседними барами. Будет тебе стационарный ряд.
avatar

ivanovr

ivanovr, нет.
avatar

SergeyJu

Дело даже не в нестационарности, хотя и это проблема. Вы не сможете ничего научить на данных близких к случайным. Ни нейросеткой, ни классическими методами ML. Используйте иную целевую переменную, тогда что-то начнет работать. 
avatar

Alex Hurko

Alex Hurko, можно научить, достаточно научиться определять, где случайность, а где, как говорят наши партнёры, хайли анлайкли
avatar

Zweroboi

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

Alex Hurko

Alex Hurko, давно придуманы статистические тесты для этого
avatar

Zweroboi

Zweroboi, тесты  для определения беременности тоже есть. Но они не помогают забеременеть тем, кто не может и не забеременеть, тем кто может.
Тесты — это про одно, а рост счета — это про другое.

avatar

SergeyJu

Alex Hurko, целевая переменая — это что? Какой-то индикатор, результат фильтрации, или нечто иное. 
avatar

SergeyJu

SergeyJu, то, что мы хотим предсказать нейросеткой иди другим методом. Например, размер или цвет свечи. 
avatar

Alex Hurko

Alex Hurko, Цвет свечи — бинарный индикатор. День недели — индикатор, имеющий 7 (или 5, в случае амерского рынка) значений. Ну и так далее.
avatar

SergeyJu


Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.

Залогиниться

Зарегистрироваться
....все тэги
Регистрация
UPDONW