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

 

Я немного со свёрточной нейронкой поигрался. Покачто вышло никак, но хотяб разобрался как её готовить и предсказывать с ней. Вот простенький код с комментами, и таблица для теста.

Там два свёрточных слоя и один обычный скрытый. Обученная модель в итоге просто выдаёт всегда "1" на выходе (покупай). По идее нужно не 2 свёрточных слоя, а десятки, и потом недели на обучение, и гарантий что будет успех вообще нету. Но попробовать стоит.

 

Переатачил forex_mxnet.txt, там была ошибка, для софтмакс функции число выходов на последнем слое должно равняться числу классов. Вариант с регрессией в таком случае отпадает совсем.

Файлы:
eurusd_h1.zip  30 kb
forex_mxnet.txt  20 kb
 
Dr.Trader:

1) Не совсем понял что вы имеете ввиду под "кластеризация". Обычно кластеризуют не один конкретный предиктор, а наоборот берут их какойнибудь десяток, и находят области в пространстве где эти точки группируются. Вот например на нижней картинке, имея два предиктора, кластеризация на 2 кластера даст как раз синий и красный кластеры.

2) Может быть вы про паттерны говорите? Зелёный паттерн - цена падает вниз и потом вверх. Жёлтый - растёт снизу вверх. Красный: вверх->вниз. Угадал?


Изначально мы не знаем какие предикторы хорошие а какие плохие, если мы кластеризируем их всех сразу в одну модель (стохастик+рси+масд.......)  = кластера 1,2,3,4,5.....  то мы будем учитывать и не нужные предикторы, мы даже не узнаем что они не нужные...

Нужно кластеризировать каждый предиктор  

 

К1 = (стохастик)  = кластера 1,2,3,4,5....

К2  = (рси)  = кластера 1,2,3,4,5....

К3  = (масд.)  = кластера 1,2,3,4,5.... 

 потом ищем комбинации по номерах кластеров между комбинацыями моделей

К1

К1 и К2

К2 и К3 

К1 и К3

К1 и К2 и К3... 

 

2) Верно, В данном контексте, кластера и паттерны это одно и то же 

 
mytarmailS:

Кластеры и паттерны это разное. Кластеры на одном векторе это интервалы, т.е. список всех допустимых значений индикатора поделен на несколько зон. Но в таком случае интервалы 2 и 3 с вашей картинки это одно и тоже.

Но если у вас второй и третий кластеры это всё-таки обязательно разные вещи, то это уже никак не кластеры, а паттерны.

 
Dr.Trader:

Кластеры и паттерны это разное. Кластеры на одном векторе это интервалы, т.е. список всех допустимых значений индикатора поделен на несколько зон. Но в таком случае интервалы 2 и 3 с вашей картинки это одно и тоже.

Но если у вас второй и третий кластеры это всё-таки обязательно разные вещи, то это уже никак не кластеры, а паттерны.

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

Так что ето кластер или паттерн ? по моему и то и то будет верно...

Я ответил на ваш вопрос или я не понял вопроса? :) 

 
mytarmailS:

Я ответил на ваш вопрос или я не понял вопроса? :) 

Это да, вполне кластеризация, тогда всё норм. 
 

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

Бай немного вырывается вперед на этой выборке.  

 

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

Соотнесение со схемой, которую я приводил:

 

 
Alexey Burnakov:

Бай немного вырывается вперед на этой выборке.  

Если график цены на том временном интервале идёт вверх, то статистически будет выгодней иногда просто открыть buy сделку, подержать, и закрыть. Не то чтоб "выгодно", просто потерей будет меньше по сравнению если также случайно открывать sell сделки и держать их некоторое время. Поэтому buy-only и sell-only так красиво симметричны вокруг рандомных сделок. Это не модель сама вырывается вперёд, а всего лишь цена ей удачно сопутствует.
 
Dr.Trader:
Если график цены на том временном интервале идёт вверх, то статистически будет выгодней иногда просто открыть buy сделку, подержать, и закрыть. Не то чтоб "выгодно", просто потерей будет меньше по сравнению если также случайно открывать sell сделки и держать их некоторое время. Поэтому buy-only и sell-only так красиво симметричны вокруг рандомных сделок. Это не модель сама вырывается вперёд, а всего лишь цена ей удачно сопутствует.
Я про это и говорю. Что селл, что бай и рандом совершены без модели... Но тренд шел вверх и бай получше на фоне остального рандома.

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

PS ) Все с учетом спреда. Поэтому рандом распределен ниже нуля.
 

Вообще хорошо выглядит, интересно что получится в конце.

 

Насчёт комитета - я какие-то примеры выкладывал, но есть модели которые при классификации используют регрессию с округлением, и там не всё так однозначно. Я пробовал два разных способа объединения голосов:

1) округлить всё к классам, взять тот класс за который будет больше голосов.
Т.е. имея прогноз на 4 бара от трёх моделей
c(0.1, 0.5, 0.4, 0.4)   c(0.6, 0.5, 0.7, 0.1)   c(0.1, 0.2, 0.5, 0.7)   я дальше округлил бы это к классам
c(0, 1, 0, 0)       c(1,1,1,0)     c(0,0,1,1) , и финальный вектор с прогнозами был бы   c(0, 1, 1, 0) по количеству голосов.

2) другой вариант, это сразу найти средний результат, и только потом округлить его к классам
результат будет c((0.1+0.6+0.1)/3, (0.5+0.5+0.2)/3, (0.4+0.7+0.5)/3, (0.4+0.1+0.7)/3)
или (0.2666667, 0.4000000, 0.5333333, 0.4000000), или
c(0, 0, 1, 0)

Видно что результат разный, и зависит от того на каком шаге округлять. Не знаю что из этого стандартней, но мне кажется второй способ лучше работает на новых данных.
 
Alexey Burnakov:

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

Бай немного вырывается вперед на этой выборке.  

 

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

Соотнесение со схемой, которую я приводил:

 

Поддержу разговор, дело в том что Моя Базовая ТС Секвента Демарка, обладает дастаточно интересными свойствами одно из которых. Сигналов на покупку больше, и модель на них тренируется лучше, сигналов на продажу меньше и тренируется на них хуже. Думаю это говорит о глобальной тенденции вниз, когда картина изменится в противоволожную, будут предпосылки покупать, я фунта конечно же имею ввиду, да и на евре подобное тоже видно сразу....
Причина обращения: