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

 

Из разряда идей:

Пытался делать чисто на MQL4 такую систему:

формировал вектор входов (просто разницы между ценами с лагом)

формировал идеальные входы и выходы (методов много, я взял один, который мне приглянулся)

Все это для 5-ти минутных, например, баров.

 

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

 

Хочу как-нибудь попробовать еще раз такое исследование в R провести. То есть, это поиск входа и выхода по эвклидову расстоянию. 

 
mytarmailS:

Кластера это немного не то, ну скажем сейчас рынок соответствует кластеру №5 следующая свеча уже будет кластером №18 ,это ничего нам не даст ведь мы не успеем поторговать кластер №5, а в СММ есть понятие состояния , состояние может продлиться какое то время 

Или может я не понял вашей мысли? 

Кластеризуются длинные последовательности ряда (хоть 100 свечей). Можно составить кучу входов на основе этих длинных последовательностей. И в какой то момент система переходит из кластера 5 в кластер 45, но происходит это так сказать плавно.
 
Alexey Burnakov:

Из разряда идей:

Пытался делать чисто на MQL4 такую систему:

формировал вектор входов (просто разницы между ценами с лагом)

формировал идеальные входы и выходы (методов много, я взял один, который мне приглянулся)

Все это для 5-ти минутных, например, баров.

 

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

 

Хочу как-нибудь попробовать еще раз такое исследование в R провести. То есть, это поиск входа и выхода по эвклидову расстоянию. 

тоже делал похожую вещь, тоже близость искал через евклид и корреляцию пирсона , евклид должен был быть меньше 0.27 а корреляция больше 0.97, то есть паттерны находило практически один в один, схожести искались в ряде с трех свечей по всем 4 ценам OHLC + volume + volatility , цены обычные не разницы, просто скалированы и центрированы (scale, center) результат как и писал ранее, цена ходит против своих же прогнозов с обратной кореляцыей -0,6  -0,9, боюсь тут даже и кросвалидацыя ничем не поможет, по крайней мере в близостях в евклидовом пространстве, возможно это ответ почему 99% сливают свои деньги
 
Alexey Burnakov:
Кластеризуются длинные последовательности ряда (хоть 100 свечей). Можно составить кучу входов на основе этих длинных последовательностей. И в какой то момент система переходит из кластера 5 в кластер 45, но происходит это так сказать плавно.
Там такая штука получается что если кластера делаем на последовательности в 100 свечей то и то что это кластер №5 мы узнаем на 101 свече кластера №5 , то есть 100 свечей мы профукали) , а в СММ будучи на кластере 45 мы уже знаем что вероятносно мы перейдем на кластер №5
 

И еще вопрос к знатокам R 

 

library(kza)

DAT <- rnorm(1000)

KZP <- kzp(DAT,m=100,k=3)

      summary(KZP, digits=2, top=3)


 как мне из "summary"  вытащить это http://prntscr.com/bhtlo9 что бы можно было работать с этими цыфрами 

Скриншот
Скриншот
  • prnt.sc
Снято с помощью Lightshot
 
Dr.Trader:


Пробую сегодня тестить вашу функцию по отбору предикторов,  я пробовал читать статью на р-блогерс но из за  не знания англ. ничего толком не понял, можете мне понятным языком объяснить  какова суть этого метода отбора, как он работает?

 

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

 первый тест , была выборка из 30 предикторов , тренировал RF ошибка получилась     Accuracy : 0.6511 

потом с вашим методом сделал отбор

получилось 14 предикторов  ошибка получилась     Accuracy : 0.6568 

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

буду пробовать другие наборы данных.....

 

И еще такой вопрос, почему если те же данные погрузить в  rattle  то ошибка там 3-6% на проверочных данных, как это понять?

 
mytarmailS:
Там такая штука получается что если кластера делаем на последовательности в 100 свечей то и то что это кластер №5 мы узнаем на 101 свече кластера №5 , то есть 100 свечей мы профукали) , а в СММ будучи на кластере 45 мы уже знаем что вероятносно мы перейдем на кластер №5
Ничего не профукали. На первом же замере и узнаем кластер. далее будет череда смены кластеров. На точках переходов из кластера в кластер можно построить квадратную матрицу и поменять МО торговли: входим в бай на кластере n, закрываем сделку на кластере m. Затем такую же матрицу для селл. Все варианты просто перебираем. И можно варьировать параметры кластеризации и смотреть на результат в цикле.
 
mytarmailS:

Пробую сегодня тестить вашу функцию по отбору предикторов,  я пробовал читать статью на р-блогерс но из за  не знания англ. ничего толком не понял, можете мне понятным языком объяснить  какова суть этого метода отбора, как он работает?

 

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

 первый тест , была выборка из 30 предикторов , тренировал RF ошибка получилась     Accuracy : 0.6511 

потом с вашим методом сделал отбор

получилось 14 предикторов  ошибка получилась     Accuracy : 0.6568 

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

буду пробовать другие наборы данных.....

 

И еще такой вопрос, почему если те же данные погрузить в  rattle  то ошибка там 3-6% на проверочных данных, как это понять?

1. Используется именно метод главных компонент с некоторой модификацией.

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

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

3. Ошибка менее 10% а тем более 5% - это явное доказательство переобученности модели. А переобученность модели обусловлена набором входных предикторов, а не самой моелью. 

 
СанСаныч Фоменко:


3. Ошибка менее 10% а тем более 5% - это явное доказательство переобученности модели. А переобученность модели обусловлена набором входных предикторов, а не самой моелью. 

Вопрос не в том, вопрос почему разные результаты в R и rattle на тех же данных и той же модели

Вопрос второй : какой смысл проверять модель "вне выборки" на  rattle если она показывает черти что 

 
mytarmailS:

Вопрос не в том, вопрос почему разные результаты в R и rattle на тех же данных и той же модели

Вопрос второй : какой смысл проверять модель "вне выборки" на  rattle если она показывает черти что 

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

И у вас в rattle ошибка 34% на тренировочных данных, и 3% на проверочных? Что-то не так с проверочными данными, либо они каким-то образом уже существовали в тренировочных данных, либо у вас очень маленький набор данных, и так случайно сложилось.

Причина обращения: