L'apprendimento automatico nel trading: teoria, modelli, pratica e algo-trading - pagina 265
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Provato, ma si è rapidamente rotto: non è chiaro cosa fare con i fori di uscita.
I buchi si prendono nelle discoteche nel fine settimana :)
Quando imparerai a citare correttamente? Non c'è bisogno di citare mezza pagina del forum per scrivere tre parole...
Ora sul tema
Ho fatto varie combinazioni di candele e altre cose con l'aiuto di Ho provato a insegnarlo con lecandele, si è rivelato essere 100% formazione ed errore 0 sia sui dati di formazione che su quelli nuovi, è ovvio che ci sono alcuni predittori nei dati che guardano al futuro, quindi non ho dovuto esaminare ogni funzione ho solo rimosso i primi 6 predittori che secondo la versione di forrest erano più importanti e si distinguevano dagli altri, speravo che tra loro ci fossero quelli che guardano al futuro e ho allenato di nuovo il MO, l'errore era circa il 3%, insomma non so cosa diavolo, perché risultati così favolosi, forse l'errore è nel mio codice...
Karoch che vuole capire questo è il codice come ho fatto il campione, il mio obiettivo era "colore della candela".
Nel codice, solo la selezione stessa, l'obiettivo e altre manipolazioni fanno quello che vuoi.
Provatelo, sperimentate perché è come 30 caratteristiche in più per il vostro modello
# загружаю последние 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") # ваш путь
Sanych, quando imparerai a citare correttamente?
I predittori non guardano al futuro - ripetono l'obiettivo.
Dov'è il test in avanti? Che senso ha parlare di formazione?
PS
Tutti su richiesta
I predittori non guardano al futuro - ripetono l'obiettivo.
Dov'è il test in avanti? Cosa c'è da discutere sulla formazione?
Provate da soli e scrivete quello che ottenete, e poi ci sarà qualcosa da discutere, si spera...
Capisco la ragione.
Ora è arrivato un nuovo prezzo, tutti i predittori sono stati calcolati su di esso, e poi lo stesso prezzo è stato calcolato su quei predittori - non prevediamo proprio nulla. L'errore di adattamento è zero. Non vedo nulla di sorprendente.
Se la previsione è interessante, allora D si sposta di un passo a sinistra. Questo modello prevede un passo avanti. è possibile prevedere diversi
Capisco la ragione.
Ora è arrivato un nuovo prezzo, tutti i predittori sono stati calcolati su di esso, e poi lo stesso prezzo è stato calcolato su quei predittori - non prevediamo proprio nulla. L'errore di adattamento è zero. Non vedo nulla di sorprendente.
Se la previsione è interessante, allora D si sposta di un passo a sinistra. Questo modello prevede un passo avanti.
Cosa vuol dire che è arrivato il nuovo prezzo?
Il codice che ti ho dato fa solo dei predittori dai prezzi che vengono scaricati da finam.
poi i dati vengono salvati.
save(dat,file = "D:/R/candles_lib/candle_dat.RData") # ваш путь
Poi apriamo questi datinel nuovo script, impostiamo ilprezzo target e insegniamo il MO.
Non ha un posto da cui venire. Naturalmente, ho spostato il prezzo obiettivo di un passo, secondo le previsioni, non è la prima volta che lo insegno
quindi c'è qualcos'altro
O non ti capisco?Cosa vuol dire che è arrivato il nuovo prezzo?
il codice che ho dato fa solo i predittori dai prezzi scaricati da finam
poi i dati vengono salvati
save(dat,file = "D:/R/candles_lib/candle_dat.RData") # ваш путь
Poi apriamo questi daticandle_dat.RData in un nuovo script, facciamo un obiettivo e insegniamo il MO.
Non ha un posto da cui venire. Naturalmente, ho spostato l'obiettivo in modo graduale, secondo le previsioni.
quindi non è la prima volta che lo faccio.
O ho capito male?Qual è l'obiettivo?
cloze è superiore al precedente cloze
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)
il cloze di cui sopra è inferiore al cloze precedente
Non riesco a capire dove sia lo spostamento dell'obiettivo? Quando si differenzia? Ma nella prima linea di predittori, che si ottiene sottraendo da 2, mettiamo il 1° valore del target, cioè conosciamo i valori successivi per il target con indice 2.
Quando si differenzia, lo spostamento è automatico, poiché la serie diventa un elemento più corta, quindi tutto ciò che serve è accorciare il campione (tabella con le osservazioni) dell'ultimo elemento
Ecco un esempio
Y <- diff(SomeData)
cbind.data.frame( Y , SomeData[-length(SomeData)])
otteniamo
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
Quando si differenzia, lo spostamento è automatico, poiché la fila diventa un elemento più corta, e allora tutto ciò che serve è accorciare il campione dell'ultimo elemento
Non sono i predittori che devonoessere spostati a sinistra, ma l'obiettivo.
Lasciatemi provare a spiegarlo ancora una volta.
La stringa di predittori con indice 1 si ottiene = dalla SECONDA e dalla prima stringa di predittori. Il risultato viene scritto al posto dell'indice 1.
L'obiettivo ha indice =1 e ce l'ha ancora. Ma il suo valore lo prevediamo in base alle informazioni del FUTURO, seconda linea di predittori
Spostare l'obiettivo di 1, cioè invece di Y[1:n] prendere Y[2:n] e calcolare