트레이딩의 머신러닝: 이론, 모델, 실전 및 알고리즘 트레이딩 - 페이지 265

 
산산이치 포멘코 :
나는 그것을 시도했지만 빨리 무너졌습니다. 주말에 구멍으로 무엇을해야할지 명확하지 않습니다.

홀은 주말 디스코장에서 촬영합니다 :)

Sanych 언제 정상적으로 인용하는 법을 배울 수 있습니까? 세 단어를 쓰기 위해 포럼의 반 페이지를 인용할 필요가 없습니다 ...

이제 주제에 대해 자세히 알아보기

나는 촛대 패키지를 사용하여 다양한 촛대 조합 및 기타 것들을 만들었습니다. MO를 훈련시키려고 할 때 훈련과 새 데이터 모두에서 해당 오류 0의 모든 100%에 대해 훈련하는 것으로 나타났습니다. 미래를 내다보는 데이터는 각 기능을 이해하지 못하기 위해 숲에 따르면 가장 중요하고 다른 예측 변수보다 강하게 눈에 띄는 처음 6개의 예측 변수를 제거했습니다. 미래를 내다보고 MO를 다시 훈련하는 사람들이 되십시오. 오류는 약 3 %였습니다. karoch 나는 도대체 무엇인지, 왜 그런 멋진 결과, 아마도 내 코드의 실수 ...

분류에 관심이 있는 Karoch는 내가 선택한 방법의 코드입니다. 내가 가진 대상은 "촛불 색상"이었습니다.

코드에서 선택 자체, 대상 및 기타 조작만 원하는 대로 수행

모델에 30개의 추가 기능이 있는 것과 같기 때문에 시도하고 실험해 보세요.

library (rusquant)
# загружаю последние 500 дней котировок индекса ртс
getSymbols( "SPFB.RTS" ,src = "Finam" ,period= "5min" ,from = Sys.Date()- 500 )
chart_Series(  tail(SPFB.RTS, 100 )  )

D <- SPFB.RTS

# cчитаем функции по свечным формациям и прочим добром
library (candlesticks)

X29<- TrendDetectionSMA(D)  
X28<- TrendDetectionChannel(D)  
X27<- nextCandlePosition(D)  
X26<- CSPThreeOutside(D)
X25<- CSPThreeMethods(D)
X24<- CSPThreeInside(D)
X23<- CSPTasukiGap(D)
X22<- CSPStomach(D)
X21<- CSPStar(D)
X20<- CSPShortCandleBody(D)
X19<- CSPShortCandle(D)
X18<- CSPPiercingPattern(D)
X17<- CSPOutsideDay(D)
X16<- CSPNLowerClose(D,N = 3 )
X15<- CSPNHigherClose(D,N = 3 )
X14<- CSPMarubozu(D)
X13<- CSPLongCandleBody(D)
X12<- CSPLongCandle(D)
X11<- CSPKicking(D)
X10<- CSPInvertedHammer(D)
X9 <- CSPInsideDay(D)
X8 <- CSPHarami(D)
X7 <- CSPHammer(D)
X6 <- CSPGap(D)
X5 <- CSPEngulfing(D)
X4 <- CSPDoji(D)
X3 <- CSPDarkCloudCover(D)
X2 <- CandleLength(D)
X1 <- CandleBodyLength(D)


dat <- cbind.data.frame(D, X1,X2,X3,X4,X5,X6,X7,X8,X9,X10,
                        X11,X12,X13,X14,X15,X16,X17,X18,X19,
                        X20,X21,X22,X13,X24,X25,X26,X27,X28,X29)


# true , false заменяю на 1 и - 1 а NA-шки на 0
dat[dat== TRUE ]     <- 1
dat[dat== 0 ]        <- - 1
dat[is.na(dat)]    <- 0

# пишем все в файл с которым удобно работать в будущем
save(dat,file = "D:/R/candles_lib/candle_dat.RData" )   # ваш путь

 
mytarmailS :

Sanych 언제 정상적으로 인용하는 법을 배울 수 있습니까?

예측자는 미래를 내다보지 않고 목표를 반복합니다.

전방 테스트는 어디에 있습니까? 체 훈련에 대해 논의?

추신

요청 시 모두

 
산산이치 포멘코 :

예측자는 미래를 내다보지 않고 목표를 반복합니다.

전방 테스트는 어디에 있습니까? 체 훈련을 논의?

그냥 스스로 가르치고 무슨 일이 있었는지 쓰려고 노력하십시오. 그러면 이미 토론 할 것이있을 것입니다. 바랍니다.
 
mytarmailS :
그냥 스스로 가르치고 무슨 일이 있었는지 쓰려고 노력하십시오. 그러면 이미 토론 할 것이있을 것입니다. 바랍니다.

나는 그 이유를 이해했다.

이제 새로운 가격이 왔고 모든 예측자가 그것을 계산한 다음 이러한 예측자를 사용하여 동일한 가격이 계산되었습니다. 우리는 아무 것도 예측하지 않습니다. 피팅 오류는 0입니다. 나는 놀라운 것을 보지 못했습니다.

예측이 흥미롭다면 D를 왼쪽으로 한 단계 이동합니다. 이 모델은 한 단계 앞서 예측합니다. 아마도 몇 가지

 
산산이치 포멘코 :

나는 그 이유를 이해했다.

이제 새로운 가격이 왔고 모든 예측자가 그것을 계산한 다음 이러한 예측자를 사용하여 동일한 가격이 계산되었습니다. 우리는 아무 것도 예측하지 않습니다. 피팅 오류는 0입니다. 나는 놀라운 것을 보지 못했습니다.

예측이 흥미롭다면 D를 왼쪽으로 한 단계 이동합니다. 이 모델은 한 발 앞서 예측합니다. 아마도 몇 가지

새로운 가격 을 의미합니까?

내가 준 코드는 금융 사이트에서 다운로드한 가격에서 예측 변수를 만듭니다.

그런 다음 데이터가 저장됩니다

# пишем все в файл с которым удобно работать в будущем
save(dat,file = "D:/R/candles_lib/candle_dat.RData" )   # ваш путь

그런 다음 우리는 이미 새 스크립트에서 이 candle_dat.RData 데이터를 엽니다. 우리는 이미 대상을 만들고 MO를 훈련합니다.   새로운 가격이 도착했습니다

그녀는 올 곳이 없습니다. 자연스럽게 목표를 한 단계 이동시켰는데, 그것들은 예상보다 낮았어, 내가 가르치는 것은 이번이 처음이 아니다.

그래서 다른 것이 있습니다

아니면 내가 당신을 이해하지 못했나요?
 
mytarmails :

새 가격 을 의미합니까?

내가 준 코드는 금융 사이트에서 다운로드한 가격에서 예측 변수를 만듭니다.

그런 다음 데이터가 저장됩니다

# пишем все в файл с которым удобно работать в будущем
save(dat,file = "D:/R/candles_lib/candle_dat.RData" )   # ваш путь

그런 다음 우리는 이미 새 스크립트에서 이 candle_dat.RData 데이터를 엽니다. 우리는 이미 대상을 만들고 MO를 훈련합니다.   새로운 가격이 도착했습니다

그녀는 올 곳이 없습니다. 자연스럽게 목표를 한 단계 이동시켰는데, 그것들은 예상보다 낮았어, 내가 가르치는 것은 이번이 처음이 아니다.

그래서 다른 것이 있습니다

아니면 내가 당신을 이해하지 못했나요?
그리고 목표는 무엇입니까?
 
산산이치 포멘코 :
그리고 목표는 무엇입니까?

이전 종가보다 위에서 종가

load(file = "D:/R/candles_lib/candle_dat.RData" )

Y <- diff(dat$SPFB.RTS. Close )
Y[Y>= 0 ] <- 1
Y[Y< 0 ] <- 0

dat <- dat[-nrow(dat),]
Y <- as.factor(Y)

tr <- 1 : 10000
ts <- 10001 : 15000


library (randomForest)
cm <- colnames(dat)
colnames(dat) <- paste0( "var_" , 1 :ncol(dat))

model <- randomForest(Y[tr]~., dat[tr,]  , ntree= 100 , mtry= 10 )

layout( 1 : 2 )
plot(model)
varImpPlot(model,type = 2 )

pr <- predict(model,dat[ts,])


library (caret)
confusionMatrix(Y[ts] , pr)
 
mytarmailS :

이전 종가보다 위에서 종가

목표 이동이 어디에 있는지 이해할 수 없습니까? 차별화할 때? 그러나 2에서 빼서 얻은 예측 변수의 첫 번째 배열에는 목표의 첫 번째 값이 할당됩니다. 인덱스가 2인 대상에 대해 다음 값을 알고 있습니다.
 
산산이치 포멘코 :
목표 이동이 어디에 있는지 이해할 수 없습니까? 차별화할 때? 그러나 2에서 빼서 얻은 예측 변수의 첫 번째 배열에는 목표의 첫 번째 값이 할당됩니다. 인덱스가 2인 대상에 대해 다음 값을 알고 있습니다.

미분할 때 시프트는 자동으로 진행됩니다. 계열이 한 요소만큼 짧아지기 때문에 필요한 것은 마지막 요소만큼 표본(관측값이 있는 테이블)을 줄이는 것뿐입니다.

여기 예가 있습니다

SomeData <- c( 10 , 20 , 30 , 20 , 10 , 20 , 30 , 40 , 50 , 40 )

Y <- diff(SomeData)

cbind.data.frame(  Y , SomeData[-length(SomeData)])


우리는 얻는다

   Y                   SomeData[-length(SomeData)]
1    10                            10
2    10                            20
3 - 10                            30
4 - 10                            20
5    10                            10
6    10                            20
7    10                            30
8    10                            40
9 - 10                            50
 
mytarmailS :

미분할 때 시프트는 자동으로 진행됩니다. 시리즈가 한 요소만큼 짧아지기 때문에 필요한 것은 마지막 요소만큼 선택을 줄이는 것뿐입니다.

예측변수가 아닌 타겟 을 왼쪽으로 이동해야 합니다.

나는 다시 설명하려고 노력할 것이다.


인덱스가 1인 예측 변수 행은 SECOND와 예측 변수의 첫 번째 행에서 얻습니다. 결과는 인덱스가 1인 위치에 기록됩니다.

대상은 모두 인덱스 = 1이었고 가지고 있습니다. 그러나 우리는 두 번째 줄인 FUTURE의 예측 변수 정보를 기반으로 그 값을 예측합니다.

대상을 1만큼 이동합니다. Y[1:n] 대신 Y[2:n]을 사용하여 계산합니다.

사유: