Поиск произвольного паттерна с помощью нейросети

 

Подскажите какие-нибудь идеи для поиска паттерна на графике. Например "голова-плечи".

Не могу понять какие именно данные лучше подавать на вход и как обучать, ведь паттерн может занимать разное кол-во баров и иметь различные формы.

На ум приходит только свёрточная сеть. Но что именно сворачивать и как, пока не понятно.

 
Anton_M:

Подскажите какие-нибудь идеи для поиска паттерна на графике. Например "голова-плечи".

Не могу понять какие именно данные лучше подавать на вход и как обучать, ведь паттерн может занимать разное кол-во баров и иметь различные формы.

На ум приходит только свёрточная сеть. Но что именно сворачивать и как, пока не понятно.

Как альтернативный вариант могу предложить следующее. 

Сначала мы с помощью обычной математики и условий стараемся максимально чисто определять этот патерн на графике. Естественно что даже при максимальном приближении у нас получится выборка где будут истинные патерны, а также ложные патерны, которые не смогла отсечь обычная математика и логика. Тем самым получили так называемую грязную выборку и вот тут уже нежно использовать сети классификации чтобы до конца вычистить выборку. Вернее обучить сеть так чтобы она из грязной выборки могла делать чистую, оставляя только истинные голову и плечи в работу, а мусор в карзину. Как вариант...

 
Anton_M:

Подскажите какие-нибудь идеи для поиска паттерна на графике. Например "голова-плечи".

Не могу понять какие именно данные лучше подавать на вход и как обучать, ведь паттерн может занимать разное кол-во баров и иметь различные формы.

На ум приходит только свёрточная сеть. Но что именно сворачивать и как, пока не понятно.

Можно сделать модель фигуры,  и проверять обычной корреляцией.  Правда для паттерна голова плечи модель сложная,  состоит из 6 отрезков,  и каждый отрезок может быть разной длины(количества баров)  .  Но это вполне возможно сделать на автомате.  Конечно гораздо удобнее собирать из портфеля такой паттерн с помощью регрессии,  но тут уже друшая тема.  Всё зависит от количества искомых паттернов. Ну и как говорится не факт что оги дадут преимуществт в отработке. 
 
Mihail Marchukajtes:

Как альтернативный вариант могу предложить следующее. 

Сначала мы с помощью обычной математики и условий стараемся максимально чисто определять этот патерн на графике. Естественно что даже при максимальном приближении у нас получится выборка где будут истинные патерны, а также ложные патерны, которые не смогла отсечь обычная математика и логика. Тем самым получили так называемую грязную выборку и вот тут уже нежно использовать сети классификации чтобы до конца вычистить выборку. Вернее обучить сеть так чтобы она из грязной выборки могла делать чистую, оставляя только истинные голову и плечи в работу, а мусор в карзину. Как вариант...

Такая идея была. Но здесь есть нюанс, как я понял, нужно на вход подавать некоторое окно данных (допустим 200 баров, чтобы наверняка паттерн целиком в него помещался), тогда:

1) паттерн может находиться в разных частях окна и классификатор этого не сможет понять, из-за чего окно с паттерном в левой части будет отличаться от окна с паттерном в правой части;

2) классификатор должен быть самоорганизующимся, т.к. строгая мат. модель, кроме ложных паттернов также отсечёт и часть верных;

3) самоорганизация не гарантирует, что будет классифицирован какой-либо конкретный паттерн.

 
Anatolii Zainchkovskii:
Можно сделать модель фигуры,  и проверять обычной корреляцией.  Правда для паттерна голова плечи модель сложная,  состоит из 6 отрезков,  и каждый отрезок может быть разной длины(количества баров)  .  Но это вполне возможно сделать на автомате.  Конечно гораздо удобнее собирать из портфеля такой паттерн с помощью регрессии,  но тут уже друшая тема.  Всё зависит от количества искомых паттернов. Ну и как говорится не факт что оги дадут преимуществт в отработке. 

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

 
Anton_M:

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

Вот и здорово. Примеры таких ломанных линий(моделей) можете увидеть в моем аккаунте,  я публиковал скрины. Как раз увидете на сколько отличактся найденный рыночный график от модели. 
 
Anton_M:

Подскажите какие-нибудь идеи для поиска паттерна на графике. Например "голова-плечи".

Не могу понять какие именно данные лучше подавать на вход и как обучать, ведь паттерн может занимать разное кол-во баров и иметь различные формы.

На ум приходит только свёрточная сеть. Но что именно сворачивать и как, пока не понятно.

Есть законченная система для классификации (распознавания) паттернов. Написана полностью на MQL5.

Если интересно, могу выложить в маркет. Иначе, лень возиться.

 
Dmitriy Skub:

Есть законченная система для классификации (распознавания) паттернов. Написана полностью на MQL5.

Если интересно, могу выложить в маркет. Иначе, лень возиться.

Выкладывайте в маркет.

Но лично я покупать не буду. Интересует сам принцип. Топикстартер задал правильный вопрос и мне интересный.

Вы уверены что ваш классификатор удовлетворяет запросам топикстартера и моим интересам?

 
Sergey Chalyshev:

Выкладывайте в маркет.

Но лично я покупать не буду. Интересует сам принцип. Топикстартер задал правильный вопрос и мне интересный.

Вы уверены что ваш классификатор удовлетворяет запросам топикстартера и моим интересам?

Вообще, у меня нет задачи удовлетворять ваши запросы) Для сравнения используется метод DTW. Данный метод инвариантен к "искажениям" паттернов по вертикали/горизонтали по сравнению с оригиналом.

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

Более ничего не помню - давно делал)

 
Dmitriy Skub:

Вообще, у меня нет задачи удовлетворять ваши запросы) Для сравнения используется метод DTW. Данный метод инвариантен к "искажениям" паттернов по вертикали/горизонтали по сравнению с оригиналом.

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

Более ничего не помню - давно делал)

Про метод DTW не знал, спасибо!

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

 
Anton_M:

Подскажите какие-нибудь идеи для поиска паттерна на графике. Например "голова-плечи".

Не могу понять какие именно данные лучше подавать на вход и как обучать, ведь паттерн может занимать разное кол-во баров и иметь различные формы.

На ум приходит только свёрточная сеть. Но что именно сворачивать и как, пока не понятно.

Для поиска паттерна не нужна нейросеть. Искать можно в обычном советнике. Накиньте зигзаг. Для определения наличия паттерна голова-плечи нужно в условии контролировать 1) положение экстремумов относительно друг друга (выше-ниже)  и 2) (дальше ближе относительно нулевого бара).

И совсем не важно сколько баров длится паттерн, достаточно контролировать положение экстремумов относительно друга по вертикали и горизонтали.