Блог им. 3Qu
В прошлом топике [1] мы разобрались с тем, что и как подавать на входы нейросети (НС). Теперь надо как-то сказать НС — «Горшочек, вари», предварительно рассказав, что конкретно и как именно надо «варить». Мыслей, в общем, нет никаких. Потому, давайте обратимся к классикам — Саймону Хайкину [2,c.33]:
Вот так вот, сразу и на первых страницах — «не могут обеспечить готовые решения», необходимо интегрировать в сложные ситемы", «относительно простые задачи, часть из которых может решаться НС». Книга конечно старая, но и наш MLP (Multilayer perceptron) в составе scikit-learn новизной не отличается. Этому MLP еще и простую, да конкретную задачу подавай, и вокруг него «сложную систему» городи. Как-то энтузиазма поубавилось.
Ладно, коли на вход нашего MLP уже подается временной ряд, пусть он нам определяет, хотя бы приблизительно, моменты входа в Лонг. А мы потом его проверим, и уточним эти моменты.
Теперь нашу НС надо как-то научить находить Лонг — показать НС как правильно и как неправильно. А мы сами-то знаем как правильно? Учителя фиговы. Это с кошечками-собачками хорошо — показывай себе, и пусть учится.
А давайте что-нибудь предположим, назовем какие-то входы в Лонг правильными, а остальные неправильными. Если мы предположили какую-нибудь ерунду, то НС просто ничему разумному не научится, и при дальнейшей проверке это быстро выяснится. А что-то предположить нам поможет интернет.
Кстати, это свойство НС, отличать фантазии от действительных закономерностей, уже вполне можно использовать для проверки каких-либо наших педположений о поведении рынка. Надо только рассказать о них НС, и она скажет, есть там что-то, с чем следует работать, или выкинуть это и забыть.
Однако, обратимся к интернету. Несколько лет назад наш коллега по несчастью занимался методами Машинного обучения (МО) с целью победить рынок. Он строил массу предикторов, подавал их на входы различных систем МО, и обучал по разметке Зиг-Зага. А что, неплохая идея, входы — лучше не придумаешь.
Вообще, если на минимуме Зиг-Зага загородить правую часть графика, как-то сомнительно, что вообще можно что-то сказать о дальнейшем движении. Да, и по ходу пьесы этот минимум будет постоянно перемещаться. Да и наш коллега долго и упорно менял предикторы и системы МО, потом все реже, реже, и вообще пропал из поля зрения. А на истории, конечно, Зиг-Заг — лепота.
Давайте сдвинем точку входа в Лонг немного вправо от минимума Зиг-Зага, где цена уже начала расти. Мы получим некую U-образную кривую цены, на которой НС хотя бы cможет построить линию регрессии. Не говорю, что это хорошая идея, но мы с помощью НС попробуем ее проверить. Что получим? — понятия не имею, я это делаю по ходу написания материала.
Разметку правильных входов для обучения можно сделать по Зиг-Загу, установив какой нибудь разумный порог от его минимума.
А разметку неправильных входов кто сделает? Опять обращаемся к [2,c.60].
И где-то в дебрях книги, когда речь уже идет о конкретном обучении MLP, написано также, что соотношение положительных и отрицательных примеров должно соответствовать встречающимся при реальной работе. Это-ж, если у нас минимум один на 100, а то и 200 отсчетов (свечей), то наша НС будет в основном изучать отрицательные примеры. А наши «положительные примеры», которые около минимумов Зиг-Зага, они все действительно такие положительные или там тоже есть отрицательные, и это тоже еще предстоит выяснить?
Берем историю для обучения, 3 месяца, ТФ 1м, получаем где-то 50 тыс свечей, 250-500 предположительно положительных примера, и остальные отрицательные. Вероятность нахождения положительного < .5-1.е-2.
А мы вообще сможем при такой низкой вероятности события хоть что-то выделить? Каких размеров должна быть НС, и каких размеров должна быть обучающая выборка? Для гидролокатора подводной лодки это позволительно, а нам надо что-то попроще.
Вообще-то, это называется: сами создаем себе трудности, и сами же их успешно решаем. Но это вполне характерая проблема, которую действительно так или иначе приходится решать.
Понятно, что надо как-то обогатить данные, и сделать соотношение положительны/отрицательных событий более значительным. Для этого обычной логикой if-else ограничим область действия НС только областью в окрестностях минимумов нашего Зиг-Зага, будем обучать НС только на этих областях, а при штатной работе будем включать НС в работу только при вхождении в область за минимумом Зиг-Зага. Теперь количество отрицательных примеров явно сильно сократилось, НС для подобной задачи уже можно выбрать какую попроще, а обучающую выборку покороче.
Есть еще один нюанс, Зиг-Заг сильно перестраивающийся индикатор, и для его реального применения для обучении придется многократно все пересчитывать. Вместе с тем, Зиг-Заг может быть успешно и без изменения принципов работы заменен теми же двумя МА.
Теперь нам осталось выбрать критерий правильности решения. Мое предложение, выбрать критерием — прогноз прибыли в сделке, и обучать НС, подавая на входы временной ряд (см. [1]), и в качестве ответа прибыль в п.п., например, через 5 мин после входа в сделку, естественно, нормированную к динам диапазону выхода НС. Пусть наша НС попробует прогнозировать движение хотя бы на 5 мин.
Теперь мы, вроде, решили все орг. вопросы, и если других не возникнет, в следующий раз можно будет формировать обучающие последовательности.
PS. Кстати, если у кого есть конкретные предложения заняться не Зиг-Загами, а чем-то поинтереснее, то можно будет это рассмотреть. Единственное требование: система должна быть несложной в реализации. Для блога сложности не очень подходят.
Ссылки
1. Нейросети в торговых системах.1.
2. Хайкин Саймон. «Нейронные сети. Полный курс».
Можем просто сказать НС -ищи танец цены 3-2.
Полезно почитать VSA — объем, спред анализ.
в чем проблема? Формируете обучающую последовательность… И вперед. Если в этом действительно что-то есть, НС научится. Если нет, получится очередной тестовый Грааль.
Мое имхо, свечной анализ — это почти ни о чем.
по самому графику нс ничему не научится — обещаю. будет 50/50 в районе кандидата на минимум, случайное блуждание потому что. а если подключить объёмы, то научится. есть вполне определённые величины их изменения, после которых вверх становится заметно предпочтительнее.