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

 
Dr.Trader:

Вторая часть эксперимента - 

У меня было 14 ранее отобранных предикторов, добавил к ним ещё 14 с рандомными значениями. Максимально допустимое число ForeCA компонент теперь 28.

Точность предсказания со всеми 28 компонентами на тренировочных данных в обоих случаях (с и без foreCA) 76%, точность на новых данных в обоих случаях 57%.

С мусором в предикторах foreCA по-моему не справился, ожидаемого чуда я не увидел.

 

Замечательно!

Спасибо, что уменьшили мой объем работы 

 
Заметил что на других данных мой пример ForeCA не сработал, из-за того что у предикторов слишком высокая ковариация.
Это можно решить таким кодом:
#это строки кода из примера:
targetName <- colnames(trainData)[ncol(trainData)]
predictorColnames <- colnames(trainData)[-ncol(trainData)]
#...
#это нужно добавить сразу после них:
while(TRUE){
        covMatrix <- cov(as.matrix(trainData[,predictorColnames]))
        covMatrixRank <- qr(covMatrix)$rank
        if(covMatrixRank == ncol(covMatrix)){
                break
        }else{
                eigenValues <- abs(eigen(covMatrix)$values)
                # eigenValuesLow <- order(eigenValues, decreasing=FALSE)[1:(ncol(covMatrix)-covMatrixRank)]
                # predictorColnames <- predictorColnames[-eigenValuesLow]
                eigenValuesHigh <- order(eigenValues, decreasing=TRUE)[1]
                predictorColnames <- predictorColnames[-eigenValuesHigh]
        }
}
Просто по одному убираются предикторы с высоким eigenvalue от ковариационной матрицы. Может быть стоит убирать предикторы наоборот с низким eigenvalue. Но это всё равно долго и неэфективно, но как сделать лучше - пока не знаю. 
 

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

 немножко про упоротость... :)

Мы все прекрасно знаем что рынки не стационарны,  но в подавляющем большинстве для анализа рынка мы используем инструменты именно для стационарных рядов  и я в том числе, не знаю почему так, в чем причина? мода? упертость? упоротость? 

Вот например есть устоявшийся алгоритмы для анализа нестационарных данных и их совсем не много это скрытые марковские модели  "HMM"  , метод группового учета аргументов "МГУА" и специально для ВР есть рекуррентные нейросети почему мы не используем эти алгоритмы??? ведь по логике ето первое с чего надо было начинать ... Но мы все используем всякие леса , обычные нейронки, кароч. самые тупые классификаторы задача которых вообще в другом

 Почему так? Почему даже я понимая все это , продолжаю тренировать RF... Что вообще с нами не так...  Напишите что думаете об этом..

 Теперь про индикаторы и опять немножко про упоротость... ;)

Зная что рынки нестационарны  мы пробуем найти какие то параметры индикаторов которые бы работали в будущем, как такое возможно если рынок меняется постоянно? да ответ очевиден никак!! или не все так однозначно?...

Мне кажется  есть способ быть более объективным к рынку применяя индикаторы, для иллюстрации мысли  нам поможет спектральный анализ, в данном случае вейвлет

w 

на картинке, слева есть шкала, на ней отмечены периоды, то есть  те периоды которые есть на рынке, чем краснее область на графике тем сильнее преобладает период, самый сильный период обводиться черным контуром как на картинке...

Пожалуйста НЕ читайте дальше пока не запустите код

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

install.packages("dplR")

hankel <- function(data, r=10) {
  do.call(cbind,
          lapply(0:(r-1),function(i) { data[(i+1):(length(data)-(r-1-i))]}))} #hankel matrx

price <- cumsum(rnorm(200))+1000    ;    plot(price,t="l")
H.price <- hankel(price,100)

library(dplR)
for(i in nrow(H.price):1 ){
  m <- morlet(y1 = H.price[i,] )
  wavelet.plot(m)
}

 Вы видите что периоды на рынке постоянно плывут как облака в небе, и теперь стает понятно что с фиксированным периодом на рынке делать нечего, НО можно же адаптироваться. Что если выявлять текущий сильный период на рынке и постоянно подстраивать индикатор именно под тот настоящий - объективный период который есть именно сейчас на рынке?

 

ссылки

https://cran.r-project.org/web/packages/dplR/vignettes/timeseries-dplR.pdf 

https://www.r-bloggers.com/wavelet-spectrogram-non-stationary-financial-time-series-analysis-using-r-ttrquantmoddplr-with-usdeur/ 

 

Для любителей НС здесь

Deep Learning Part 1: Comparison of Symbolic Deep Learning Frameworks

Deep Learning Part 1: Comparison of Symbolic Deep Learning Frameworks
Deep Learning Part 1: Comparison of Symbolic Deep Learning Frameworks
  • Joseph Rickert
  • www.r-bloggers.com
This blog series is based on my upcoming talk on re-usability of Deep Learning Models at the Hadoop+Strata World Conference in Singapore. This blog series will be in several parts – where I describe my experiences and go deep into the reasons behind my choices. Deep learning is an emerging field of research, which has its application across...
 
mytarmailS:

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

Мы все прекрасно знаем что рынки не стационарны,  но в подавляющем большинстве для анализа рынка мы используем инструменты именно для стационарных рядов  и я в том числе, не знаю почему так, в чем причина? мода? упертость? упоротость? 

Зная что рынки нестационарны  мы пробуем найти какие то параметры индикаторов которые бы работали в будущем, как такое возможно если рынок меняется постоянно? да ответ очевиден никак!! или не все так однозначно?...


А классификация, как о ней писал Саныч , не проканает?
 
Yuri Evseenkov:
А классификация, как о ней писал Саныч , не проканает?
давай более развернуто, а то я не вообще не понял о какой классификации речь
 
mytarmailS:
давай более развернуто, а то я не вообще не понял о какой классификации речь

L Да я что доктор? Вот Саныч писал:

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

Вот и думаю стоит копать в этом направлении : "классификация выловит такое изменение как таковое" .

 
Yuri Evseenkov:

L Да я что доктор? Вот Саныч писал:

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

Вот и думаю стоит копать в этом направлении : "классификация выловит такое изменение как таковое" .

эксперимент критерий истины - не думай, а делай

лично мне кажется что спектральный анализ более перспективный, но это лично мне...

 
Yuri Evseenkov:


Вот и думаю стоит копать в этом направлении : "классификация выловит такое изменение как таковое" .

Классификация не панацея и не инструмент по созданию граалей.

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

 

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

 

Третье. Классификация совершенно конкретно ставит вопрос: что мы прогнозируем. Сравним с ТА. Берем индикаторы. Всегда это бар [1]. Текущий бар не используется. Что означает для Н1? Мы используем для прогноза входа в рынок сведения часовой свежести! Это в лучшем случае. 

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

 

ПС.

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

 
DAFomenko:

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

????????????????????????

если у исследователя понятия о спектральном анализе заканчиваються  на статье в википедии то я согласен что он к рынку не применим:)

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