3Qu
3Qu личный блог
10 июля 2020, 15:35

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

В прошлом топике [1] мы разобрались с тем, что и как подавать на входы нейросети (НС). Теперь надо как-то сказать НС — «Горшочек, вари», предварительно рассказав, что конкретно и как именно надо «варить». Мыслей, в общем, нет никаких. Потому, давайте обратимся к классикам — Саймону Хайкину [2,c.33]:
Нейросети в торговых системах. 2.
Вот так вот, сразу и на первых страницах — «не могут обеспечить готовые решения», необходимо интегрировать в сложные ситемы", «относительно простые задачи, часть из которых может решаться НС». Книга конечно старая, но и наш MLP (Multilayer perceptron) в составе scikit-learn новизной не отличается. Этому MLP еще и простую, да конкретную задачу подавай, и вокруг него «сложную систему» городи. Как-то энтузиазма поубавилось.

Ладно, коли на вход нашего MLP уже подается временной ряд, пусть он нам определяет, хотя бы приблизительно, моменты входа в Лонг. А мы потом его проверим, и уточним эти моменты.
Теперь нашу НС надо как-то научить находить Лонг — показать НС как правильно и как неправильно. А мы сами-то знаем как правильно? Учителя фиговы. Это с кошечками-собачками хорошо — показывай себе, и пусть учится.
А давайте что-нибудь предположим, назовем какие-то входы в Лонг правильными, а остальные неправильными. Если мы предположили какую-нибудь ерунду, то НС просто ничему разумному не научится, и при дальнейшей проверке это быстро выяснится. А что-то предположить нам поможет интернет.
Кстати, это свойство НС, отличать фантазии от действительных закономерностей, уже вполне можно использовать для проверки каких-либо наших педположений о поведении рынка. Надо только рассказать о них НС, и она скажет, есть там что-то, с чем следует работать, или выкинуть это и забыть.
Однако, обратимся к интернету. Несколько лет назад наш коллега по несчастью занимался методами Машинного обучения (МО) с целью победить рынок. Он строил массу предикторов, подавал их на входы различных систем МО, и обучал по разметке Зиг-Зага. А что, неплохая идея, входы — лучше не придумаешь.
Вообще, если на минимуме Зиг-Зага загородить правую часть графика, как-то сомнительно, что вообще можно что-то сказать о дальнейшем движении. Да, и по ходу пьесы этот минимум будет постоянно перемещаться. Да и наш коллега долго и упорно менял предикторы и системы МО, потом все реже, реже, и вообще пропал из поля зрения. А на истории, конечно, Зиг-Заг — лепота.
Давайте сдвинем точку входа в Лонг немного вправо от минимума Зиг-Зага, где цена уже начала расти. Мы получим некую U-образную кривую цены, на которой НС хотя бы cможет построить линию регрессии. Не говорю, что это хорошая идея, но мы с помощью НС попробуем ее проверить. Что получим? — понятия не имею, я это делаю по ходу написания материала.
Разметку правильных входов для обучения можно сделать по Зиг-Загу, установив какой нибудь разумный порог от его минимума.
А разметку неправильных входов кто сделает? Опять обращаемся к [2,c.60].
Нейросети в торговых системах. 2.
И где-то в дебрях книги, когда речь уже идет о конкретном обучении MLP, написано также, что соотношение положительных и отрицательных примеров должно соответствовать встречающимся при реальной работе. Это-ж, если у нас минимум один на 100, а то и 200 отсчетов (свечей), то наша НС будет в основном изучать отрицательные примеры. А наши «положительные примеры», которые около минимумов Зиг-Зага, они все действительно такие положительные или там тоже есть отрицательные, и это тоже еще предстоит выяснить?

Берем историю для обучения, 3 месяца, ТФ 1м, получаем где-то 50 тыс свечей, 250-500 предположительно положительных примера, и остальные отрицательные. Вероятность нахождения положительного < .5-1.е-2.
А мы вообще сможем при такой низкой вероятности события хоть что-то выделить? Каких размеров должна быть НС, и каких размеров должна быть обучающая выборка? Для гидролокатора подводной лодки это позволительно, а нам надо что-то попроще.
Вообще-то, это называется: сами создаем себе трудности, и сами же их успешно решаем. Но это вполне характерая проблема, которую действительно так или иначе приходится решать.
Понятно, что надо как-то обогатить данные, и сделать соотношение положительны/отрицательных событий более значительным. Для этого обычной логикой if-else ограничим область действия НС только областью в окрестностях минимумов нашего Зиг-Зага, будем обучать НС только на этих областях, а при штатной работе будем включать НС в работу только при вхождении в область за минимумом Зиг-Зага. Теперь количество отрицательных примеров явно сильно сократилось, НС для подобной задачи уже можно выбрать какую попроще, а обучающую выборку покороче.
Есть еще один нюанс, Зиг-Заг сильно перестраивающийся индикатор, и для его реального применения для обучении придется многократно все пересчитывать. Вместе с тем, Зиг-Заг может быть успешно и без изменения принципов работы заменен теми же двумя МА.
Теперь нам осталось выбрать критерий правильности решения. Мое предложение, выбрать критерием — прогноз прибыли в сделке, и обучать НС, подавая на входы временной ряд (см. [1]), и в качестве ответа прибыль в п.п., например, через 5 мин после входа в сделку, естественно, нормированную к динам диапазону выхода НС. Пусть наша НС попробует прогнозировать движение хотя бы на 5 мин.
Теперь мы, вроде, решили все орг. вопросы, и если других не возникнет, в следующий раз можно будет формировать обучающие последовательности.

PS. Кстати, если у кого есть конкретные предложения заняться не Зиг-Загами, а чем-то поинтереснее, то можно будет это рассмотреть. Единственное требование: система должна быть несложной в реализации. Для блога сложности не очень подходят.

Ссылки
1. Нейросети в торговых системах.1.
2. Хайкин Саймон. «Нейронные сети. Полный курс».

10 Комментариев
  • ezomm
    10 июля 2020, 16:23
    НС надо учить принципу свечей.Но книг по торговле свечами нет.Есть только жалкие ошметки в виде отдельных свечей, годящихся только на подсказку разворота. Сам принцип торговли основан не на прибыли, а малом убытке.Стоит заставить НС поискать точки наименьшего убытка с вероятным разворотом.Сигналом в волновом анализе является поглощение 5й волны от С или 5й от 5й от С.Я называю эту точку 5й точкой фрактала.Проги по ВА уже есть, но они работают не правильно тк не видят циклов… вибраций цены.Вообще магических точек на графике много.Точки вращения… разворота… симметрии… регрессии… поглощения… отклонения  и тд  Правильная логика такая. 1-ищем циклы времени они кратны 4м для тренда и 3м для боковика. Далее размечаем волнами Эла или просто цифрами 1-2-3-4-5 те только вперед без коррекций. Далее смотрим свечи в нашем тайме.Сделка в ЦЗ свечи лучшая.Далее точка минимального убытка и прибыль… если получится.Прибыль защищаем частично типа 1\2я от вероятной.Расчет участия тоже отдельное искусство .
    Можем просто сказать НС -ищи танец цены 3-2.
    Полезно почитать VSA — объем, спред анализ.
  • MS
    10 июля 2020, 16:56
    около моих мыслей 2015-го.
    по самому графику нс ничему не научится — обещаю. будет 50/50 в районе кандидата на минимум, случайное блуждание потому что. а если подключить объёмы, то научится. есть вполне определённые величины их изменения, после которых вверх становится заметно предпочтительнее.
  • trader_notes
    10 июля 2020, 16:59
    ссылка в начале циклическая )
  • CloseToAlgoTrading
    10 июля 2020, 17:53
    Давече я на ютубе по похожему принципу видюшки делал… пока правда времени нехватает продолжить :). Известный и действительно ожидаемый результат — ничего не выйдет если делать в лоб. Однако улучшение самих входов можно конечно добиться. 
    Если мы предположили какую-нибудь ерунду, то НС просто ничему разумному не научится, и при дальнейшей проверке это быстро выяснится.
    Вот это, на мой взгляд, самое важное в данной вашей статье :). Использование сетей для проверки каких либо зависимостей хорошая тема, помогает нам, людям не имеющих докторских степеней в статистике, понять стоит ли там вообще рыться.  

    • SergeyJu
      10 июля 2020, 21:49
      Denis, проверить зависимости без использования сетей не просто можно, а обычно гораздо проще и содержательней. Лишь бы было понятно, что именно проверяем. 
        • SergeyJu
          10 июля 2020, 23:17
          3Qu, MO это что? 

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

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