Блог им. afecn19

О тех индикаторах с точки зрения нейросетей.

Что если в качестве лейблов на выход подавать не рост/падение рынка завтра, а срабатывание каких то техиндикаторов? Есть несколько классических правил торговли. Ну например пробой снизу вверх Close BolingerUpperband это к покупке, и сверху вниз BolingerDownperband к шорту. Или дивергенция MACD. Или Close пробивает SMA. Ну а че вы смеетесь? Когда я работал в представительстве Финама, мы предлагали клиентам следовать корпоративной стратегии, а вся стратегия это пробои Болинджеров. Я, как человек который вообще тогда не понимал как это все делается, готовился услышать какую то хитрую систему для зарабатывания денег, от московских экспертов, а когда услышал «тайну», я такой «эээээ....». Или вот дивергенция MACD, открываешь википедию и там прямо «это сильнейший технический индикатор, если дивергенция то вот прям точно точно!». 
Месяц назад я пробовал подать на вход CNN+GramianAngular падение/рост рынка,  без каких то видимых успехов. Может тут проблема в инструменте?  Попробуем спрогнозировать с помощью нейросети срабатывание этих самых техиндикаторов, подав цены накануне. Причем усложним задачу, будем подавать не точное число баров, а фиксированное, скажем 30. То есть нейросетка получает избыточные данные: мы хотим предсказать пересечение Close c SMA(25) а мы ей 30 баров предлагаем. 
Сразу скажу, что результаты хорошие. Особо я не утруждался долгим обучением, но видно как сетка очень шустро, от эпохи к эпохе улучшает показатели точности. Ине суть что мы предсказываем — Bolinger, MACD, SMA, результаты примерно одинаковы, или их можно сделать одинаковыми обучив нейросеть чуть подольше. И на test выборке все хуже не становится.
Архитектура такая:

О тех индикаторах с точки зрения нейросетей.

Угадывает она срабатывание тех индикаторов с точностью на test 85-90%.
Для любителей усваивать информацию зрительно, взял котировку какой то фишки, наложил на нее SMA25 и красными стрелками указал пересечение ее Close. Красные черточки сверху это пересечение сверху вниз, нижние-наоборот. Ну а зеленые это прогнозы. Как видим угадываем с высокой точностью.    

О тех индикаторах с точки зрения нейросетей.

Ну и некоторые циферки

О тех индикаторах с точки зрения нейросетей.
Если сеть не путать и подавать точно число баров, то сеть начинает чуть быстрей обучаться, а так разницы нет, что позитивненько. Приятная инвариантность. И для смеха я сделал наоборот, дал сети недостаточное число данных (10 баров для пересечения с SMA(25)) — выкручивайся мол. Опять не стал долго обучаться, 10 минут и будя. Тем более что обучение застряла на определенной отметке, без какого то улучшения (что логично, как говорится иди незнаю куда, принеси то незнамо что-это трудно). Ну и на прогнозе чуда не произошло 

О тех индикаторах с точки зрения нейросетей.

Если вместо 25 необходимых подать 20 баров, то результаты будет получше:

О тех индикаторах с точки зрения нейросетей.

Ну и если кто то дочитал до этого момента, вполне возможно задастся вопросом, что то типа «а зачем вообще все это нужно?!». Где профит?! Мани где?! Нет тут профитов и нет мани, мы ответили на вопрос-может ли CNN получив на выход сырой ряд ряд цен, спрогнозировать срабатывание тех индикаторов. То есть по сути, может ли CNN улавливать сложные конфигурации time series. Ответ — да, может. Ура товарищи. Вот вы можете по одному виду временного рядка сказать будет на следующем баре дивергенция MACD, или пересечение Bolinger или SMA? А моя нейросеть может.
Хотя одно практическое применение я могу придумать-ну вот например вы нашли какое то чудесное сочетание тех индикаторов, которые приносят профит. И хотите это показать публике. Но засвечивать Грааль не хотите. Ну так проставьте лейблы, и обучаете нейросеть по ним, и вот можете совать свою систему в продакшн, она еще и выглядеть будет круче, ибо «торговая система на основе нейросеть» звучит в наше время интересно, а кому нужна система на техниндикаторах?!   
Для справедливости сеть все таки получила не сырой ряд данных, а предобработанный, будет интересно глянуть на сеть, если подать ей именно сырой. 1CNN. Вот этим я и займусь дальше. 
А практический вывод из всего этого я вынес что надо поработать с lebeling.
Таки дела.

И коды
https://github.com/Taram1980/finance_ML/tree/master/2D_CNN_forec_SMA
17 комментариев
Приветствую. Как предобрабатывали ряд, если это не секрет, конечно?
avatar
Winch, какие секреты? я выложил полный код. про использованное мной преобразование тут почитайте https://pyts.readthedocs.io/en/latest/auto_examples/image/plot_gaf.html#sphx-glr-auto-examples-image-plot-gaf-py
avatar
Все эти индикаторы обладают инерцией. Её-то Вы и предсказываете.
avatar

SergeyJu, все тех индикаторы рассчитываются по точных формулам. и вот эти формулы я вытаскиваю из временного ряда с помощью нейросети. ну например-допустим лицо человека можно описать какой то то точной формуле (что кстати вполне возможно, антропологи на этом и сидят). но вы формулу не знаете. зато есть картинки лиц. и вот суем картинку в нейросеть и она эти формулы конечно не прописывает, но определяет что вот эта картинка создана по формуле 1, а это по формуле 2

 

avatar
Марат, главное отличие рынка от основных областей применения нейросетей — отсутствие устойчивых соотношений. Вы ищете детерминированные формулы (инерция) и Вы их находите. Если Вы будете решать задачу AR или MA аппроксимации этих формул, Вы их получите быстрее и эффективнее. Но это нимало не продвинет Вас к поиску рыночных неэффективностей. Во всяком случае, в лоб это не работает.
avatar
SergeyJu, так и есть, кто же спорит

avatar
Желания рынка разные.типа растем 1 день или растем 2 дня подряд или 3 дня.И так во всех таймах.В этом и есть неэффективность.Приметить накопление желания в 1й и 2й волне.Это просто фрактал Вильямса(Эллиота) в идеале из 5 ти свечей.Но углы могут быть и из 1й -3х-7-9 и тд свечей.Умение видеть в любых углах танец цены 3-2 и есть грааль.Все остальное в циклах времени 1\4 и амплитудах волн 1\2 .
Читаем книгу Патрик Микула -5 новых техник Эндрюса.В основе графика цены простые зигзаги с разными время циклами.

avatar
тут вся проблема не в предсказании а в профите… я делал 99.7% точность предсказаний… но сливался на оставшихся 0.03%

как пример… только лонг если свеча часовая растущая, то по закрытию часа покупаем и тейк ставим 50 пунктов… стопов понятное дело нет

avatar
ves2010, стопов понятное дело нет

Вот это как раз непонятно. Вы что именно «предсказывали»?
Мольберт Чебурага, Они предсказывали 2го(В волна ) и 3го солдата(5я волна Эла).Это верно если 1й солдат = 1я волна Эла или А волна.Обычно 1й солдат беременный те имеет в откате внутренние свечи(2я волна).



avatar
ves2010, это верно если свеча солдат, те тело больше суммы теней. Но лучше если внутри свечи импульс, но не зигзаг.Иначе такой солдат развернет цену .2й вариант -солдат импульс, но это 5я волна те 3й солдат подряд и есть расхождение с объемом.
avatar
На истории всё круто. На живом рынке не сломается?
avatar
Diamond, на истории Сипи 500 тоже циклы 9-18-36 лет.Надо вглядываться в график и вычислять время циклы.
avatar
Добрый день. нейронные сети не очень хорошо работают со стохастическими системами. По сути то что вы нарисовали не сильно отличается от работы ПИД регулятора с реакцией по отклонению. Увеличение Д составляющей создает иллюзию «предсказательности» но в итоге это лишь снижает устойчивость системы (расколбас системы в целом, ложные срабатывания).
В локальном случае, когда вы анализируете лишь 1 случайную бумагу вы работаете со стохастической системой, и вам удачи не видать (уж простите).
Но, согласно теории управления, если вы повысите порядок системы у вас, возможно получиться проанализировать систему. Но в этом случае вам придется проявить аналитические способности.
Как пример: Есть бумага Сургутнефтегаз Преф. можно до посинения анализировать цену и индикаторы, но по факту это вторая производная от цены а нефть и цены на доллар. Заведите на вход вашей нейронной сети цены/индикаторы на доллар и нефть (в идеале не то что на бирже, а то что цена реализации купажа сургутнефтегаза) и цену бумаги и пробуйте анализировать так. По идее чем больше входных данных реально влияющих на цену вы сможете завести тем более точный результат вы сможете получить. А вот выбор весов — уже доверьте нейросети они явно будут переменные и нелинейные относительно друг друга. 
Свин Копилкин (Дмитрий), все активы функции чего то или желания хозяина (мажора).Но в целом рынок цикличен во времени на 4 , а в амплитуде на 2. 
avatar
еще есть проблема инструментов, по сберу у меня предсказательная вероятность более 80%, а вот по гмк больше 60% получить не получилось, слишком много манипуляций в нем.
avatar
Текст хороший +. 
avatar

теги блога Марат

....все тэги



UPDONW
Новый дизайн