Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 433

 

Помнится раньше такие сверточные "паттерны" казались мне ни чем иным как граалем, hrenFx даже индюк такой выкладывал лет 10 назад, я тоже сделал себе свой вариант, но... как то не очень оно работает, по крайнеймере простые варианты с голосованием сверток разных ТФ.

 
-Aleks-:

 

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

Про ЗЗ, не понял - обычный ЗЗ показывает текущий экстремум...

И опять же ЗЗ для генерации сигнала, а не его подтверждения - т.е. сигнал всегда есть - продавать при растущем рынке, но НС должна его подтвердить, исходя из картины прошлых вариантов.

Я правильно же понимаю, что преимущество у НС в том, что сигнал может быть подтвержден или опровергнут рядом паттернов, которые собираются на истории, не должны противоречить друг другу и проверяются при поступлении торгового сигнала?



Долго объяснять, вообщем ЗЗ не подходит. Это я Вам точно говорю. И ещё:

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

Взгляните ещё раз на статью. Базовая стратегия нужня лишь для определения момента времени, когда мы анализируем рынок. Тоесть свершилось событие, мы приступаем к анализу. Событием может быть что угодно.

Предположим пересеклись машки, событие свершилось, приступили к анализу.

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

 
elibrarius:
Вначале загружаю историю 375000 баров (для М1 это год) в массив, т.е. в ОЗУ (около 30-60 сек), потом проход по ней занимает от 30 до 700 мс в зависимости от глубины шаблона.

Я ещё раз говорю как нужно подойти к решению этой задачи. Мне кажется там рыба есть....

 
Mihail Marchukajtes:

Но тренировать сеть мы будем для одного патерна. Те  патерны которые привели к росту рынка, мы обозначим 1, те кто к снижению обозначим 0. Останется натренировать НС.

По моим опытам так делать лучше не стоит. Если известны приросты цены за следующий бар, то лучше их и использовать как цель для нейронки. Всёж приросты это тоже какая-то информацию которая может пригодится при обучении, по сравнению с всего двумя классами 0 и 1. Даже если потом предсказкания регрессии всё равно приводить к двум классам (купить/продать), то лучше округлить результат регрессии чем выкинуть часть информации ещё на стадии обучения.

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

 
elibrarius:

Сделал индикатор, который ищет похожие шаблоны в истории, вот текущие показания на М1 EURUSD. 10 самых похожих за год. Чуть переделал пример из статьи https://www.mql5.com/ru/articles/197 - там вместо одного самого похожего варианта беру N самых похожих и усредняю ответ по-барно. Использую для поиска шаблона не одну цену Close, а канал, где цена была, за это время, т.е. Low и High. Low поднимаю на величину спреда.

Как видно, этот шаблон в истории давал движение как вниз, так и вверх (серые и темно-красные линии). Усредненное движение цены (белая и красная линии) почти нулевое (чуть шире спреда), торговать с таким прогнозом нельзя, спред, своп и комиссия выведут торговлю в убыток. Иногда находятся шаблоны с хорошим предсказанием в одну из сторон, но на след. баре прогноз может стать обратным. Если в данном случае делать первоорот позиции, то спред и комиссия опять сделают первую сделку убыточной.
Прогноз индикатора можно сравнить с регрессионной НС, но из регрессии легко можно сделать классифиатор. В дополнение к Low и High можно добавить любые индикаторы.

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

Есть ли смысл пользоваться НС, если можно поступить проще - просто пройтись по истории? В чем их преимущество?

ПС

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

Паттерны по корреляции ищутся? если да то пустое

текущая неделя торговли моей НС (тесты), еще около месяца тестов и можно будет переносить на норм деньги. Итого: простая робастная НС написана за месяц.


 
Maxim Dmitrievsky:

Паттерны по корреляции ищутся? если да то пустое

По корреляции, а именно по разнице между ценой на каждом баре искомого шаблона. Назовем это ошибкой на баре, затем суммируются ошибки для всех баров, по итоговой ошибке сортируем и находим N лучших, - самых похожих вариантов.
Других вариантов сравнения 2-х ценовых графиков не вижу. Какие еще есть варианты...?
 
Vasily Perepelkin:

Это главное чему я учу своих учеников, мужчина принципиален, не сгибаем, если решил то насмерть. Это самое сложное в обучении, был у меня один ученик(Максим) он не выдержал нагрузки, не хватило характера, слишком женственен, дрогнул мальчик, но у Вас получится Вы мужик!



 
elibrarius:
По корреляции, а именно по разнице между ценой на каждом баре искомого шаблона. Назовем это ошибкой на баре, затем суммируются ошибки для всех баров, по итоговой ошибке сортируем и находим N лучших, - самых похожих вариантов.
Других вариантов сравнения 2-х ценовых графиков не вижу. Какие еще есть варианты...?

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

Я хотел поэксперементировать, но до этого пока не добрался.

 
Mihail Marchukajtes:

По поводу предсказания тема довольнотаки интересная. Итак, мы имеем патерн, найдены на задворках истории. Точно такой же как и сейчас. Однако реакция рынка на этот патерн не однозначна. Есть и вверх, есть и вниз.

Причём насколько видно из графиков, один и тот же патерн был найден несколько раз, соотвественно у нас есть несколько вариантов развития события. Именно тут нужно включить Классификацию. Но тренировать сеть мы будем для одного патерна. Те  патерны которые привели к росту рынка, мы обозначим 1, те кто к снижению обозначим 0. Останется натренировать НС. И при появлении этого патерны, мы подадим входные значения в этот момент, и НС скажет какой это патерн, для роста или для падения рынка.

Разделить полученные N шаблонов из истории уже не получится, т.к. они максимально похожи на искомый шаблон и между собой имеют минимальные отличия.
Если вы хотите минимизировать отличия - то надо искать не 10 , а 2-3 самых похожих шаблона, но предсказание по 3-м вариантам будет иметь ошибку предсказания = 33%, для 10 шаблонов 10%, для 100 шаблонов 1% примерно (думаю в расчет ошибки надо включить и степень ошибки каждого найденного шаблона от оригинала.)

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

 
elibrarius:

Разделить полученные N шаблонов из истории уже не получится, т.к. они максимально похожи на искомый шаблон и между собой имеют минимальные отличия.
Если вы хотите минимизировать отличия - то надо искать не 10 , а 2-3 самых похожих шаблона, но предсказание по 3-м вариантам будет иметь ошибку предсказания = 33%, для 10 шаблонов 10%, для 100 шаблонов 1% примерно (думаю в расчет ошибки надо включить и степень ошибки каждого найденного шаблона от оригинала.)

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

Это бесперспективный подход если применять в текущем виде, посмотрите в сторону масштабной инвариантности (скейлинга) и аффинных преобразований. Сам тот факт что паттерны похожи еще ни очем не говорит, нужно учитывать взаимное расположение нескольких патттернов, эдакая кроссвалидация, плюс смотреть их позицию в паттерне на порядок крупнее. Я делал это все, но мне не очень понравилось - ибо корреляция учавствует, от нее нужно избавляться и передавать поиск сверточной НС.
Причина обращения: