L'apprendimento automatico nel trading: teoria, modelli, pratica e algo-trading - pagina 2630

 
Maxim Dmitrievsky #:
Un po' creativo, non si sa in anticipo.
I trade di un TS redditizio dovrebbero indicare un modello. Se usa solo prezzo/tempo, allora la selezione/approssimazione sembra possibile
Tutto può essere approssimato, e TS è una logica chiara nel codice, senza approssimazioni
 
mytarmailS #:
Tutto può essere approssimato, ma TC è una logica chiara nel codice, senza approssimazioni.
Non conosciamo la logica esatta, a pensarci bene... non è la decompilazione. Questo lascia confuso, "a immagine e somiglianza". formatori abibas
 
Maxim Dmitrievsky #:
Non conosciamo la logica esatta, sai... non è la decompilazione. Questo lascia confuso, "a immagine e somiglianza". formatori abibas

Quindi, se si prende la strategia di intersezione di due auto e non si dà un segno diretto dell'intersezione al modellatore.

È abbastanza buono, sono persino sorpreso, ma è un algoritmo primitivo...

blu per il segnale originale, rosso per il prefisso.

Reference
Prediction   0   1
         0 106   4
         1   1  89
                                          
               Accuracy : 0.975           
                 95% CI : (0.9426, 0.9918)
    No Information Rate : 0.535           
    P-Value [Acc > NIR] : <2 e-16          
                                          
                  Kappa : 0.9496     


E se non lo si normalizza...

Prediction   0   1
         0  96   0
         1   0 104
                                     
               Accuracy : 1          
                 95% CI : (0.9817, 1)
    No Information Rate : 0.52       
    P-Value [Acc > NIR] : < 2.2 e-16  
                                     
                  Kappa : 1          
x <- cumsum(rnorm(10000))

m5 <- TTR::SMA(x,5)
m15 <- TTR::SMA(x,15)

X <- matrix(ncol = 20,nrow = length(x))

for(i in 20:length(x)){
  ii <- (i-19):i
  X[i,] <- m5[ii] - m15[ii]
}


Yn <- (m5>m15)*1
Y <-  as.factor(Yn)

tr <- 50:9800
ts <- 9801:10000

library(randomForest)
rf <- randomForest(Y[tr]~., X[tr,])
pr <- predict(rf ,X[c(tr,ts),])

prN <- as.numeric(as.character(pr))

par(mar=c(2,2,0,0))
layout(1:3, heights = c(10,1,1)) #  Heights of the two rows
      
plot(tail(x,200),t="l",col=8)
lines(tail(m5[c(tr,ts)],200),col=2,lwd=1)
lines(tail(m15[c(tr,ts)],200),col=4,lwd=1)
plot(tail(Yn,200),t="h",col=4,lwd=2)
plot(tail(prN,200),t="h",col=2,lwd=2)


caret::confusionMatrix(predict(rf ,X[ts,]) , Y[ts])
 
mytarmailS #:

Quindi, se si prende la strategia di intersezione di due auto e non si dà un segno diretto dell'intersezione al modellatore.

È abbastanza buono, sono persino sorpreso, ma è un algoritmo primitivo...

blu per il segnale originale, rosso per il prefisso.


E se non lo normalizzi...

Quindi va bene, abbiamo bisogno di capire come analizzare i rapporti e provare a fare un semplice TC su di loro come i vostri MA, sì. Sono un po' occupato al momento, ma è un argomento divertente.
 
mytarmailS #:

Quindi, se si prende la strategia di intersezione di due auto e non si dà un segno diretto dell'intersezione al modellatore.

È abbastanza buono, sono persino sorpreso, ma è un algoritmo primitivo...

blu per il segnale originale, rosso per il prefisso.


E se non lo si normalizza...

Non è possibile sapere in anticipo quale MA Expert Advisor utilizza e quali periodi ha. O si usano altri indicatori.
Prova ad allenare il modello non sulla MA (X) ma sulle quotazioni grezze (x) per esempio su 100 barre (non conosci i periodi della MA dalla scatola nera, puoi solo indovinare quante barre possono essere state utilizzate).

Beh, la Y è quella data dal vostro esaminatore.

 
elibrarius #:

Non si può sapere in anticipo cosa, esperto MA sta usando e quali periodi. O qualsiasi altro indicatore utilizzato.

Non dirmi cosa posso o non posso fare, dimmi "non so come puoi farlo". Questo è più onesto.

 
elibrarius #:


Prova ad addestrare il modello sulle quotazioni grezze (x) invece di MAhs (X)

Anche il crudo non è male.

 Reference
Prediction   0   1
         0  72   2
         1   5 121
                                          
               Accuracy : 0.965           
                 95% CI : (0.9292, 0.9858)
    No Information Rate : 0.615           
    P-Value [Acc > NIR] : <2 e-16          
                                          
                  Kappa : 0.9255     
 
mytarmailS #:

non male nemmeno su raw

Questo è più interessante...
 
mytarmailS #:

Non male nemmeno su quelli crudi.

Ha davvero bisogno di MO?

 

I miei risultati. Chi riesce a decifrarlo, ben fatto, ho dimenticato cosa è cosa.

Un altro esempio di test, incrocio di ma e prezzo. L'input è incrementi di diverse ultime barre, l'output è la direzione del trade (1-bay, 0-sell). Parametri della rete sottostante: 1 strato denso con tanh. 1 epoca, batch=32. win - numero di ingressi, per - periodo MA, totale - dimensione del campione di allenamento. La rete è addestrata in 1 epoca in modo che non ci siano campioni ripetuti durante l'addestramento. La convalida si basa sul campione di allenamento invertito verticalmente (*-1). Il test viene eseguito su un campione indipendente separato. Tutti sono uguali al totale. A per<=win la rete mostra un'alta accuratezza, che era necessaria per dimostrare che la rete è in grado di cercare modelli nascosti.

Per piccole reti (<1000 neuroni) il calcolo su cpu è più veloce che su gpu. Con batch=8192 il calcolo richiede la stessa quantità di tempo. Questo test case con 1 e 100 neuroni nascosti è calcolato nello stesso tempo. Per i conteggi della cpu a doppia e singola precisione nello stesso tempo, i risultati sono comparabili. I diversi tipi di attivazione contano per circa lo stesso tempo e hanno dato risultati comparabili. La dimensione del win non influenza molto il tempo. total=10^6 a batch=1 conta per 18 minuti. La relazione tra lotto e tempo è lineare.

Precisione della dimensione del campione. batch=1 , per=100, win=100. Prima colonna - dimensione del campione (totale), 2 - tempo min.sec, 3 - precisione sul test, 4 - precisione sul treno, 5 - precisione sulla validazione.
1м 18.49 99. 98,7 99.
100k 1,54 98,5 97,3 98,6
10k 0,11 97,8 88,4 98,1
1k 0,01 71,2 62,1 66,5

Aggiunta di rumore all'input. total=10^6, batch=32 , per=10, win=10. Prima colonna - frazione di rumore dall'input, 2 - precisione sul test, 3 - precisione sulla traccia, 4 - precisione sulla validazione.

0,001 99,8 98,1 99,8
0,01 99,6 98,2 99,6
0,1 96,8 96,1 96,8
1 74,9 74,2 75,1

Numero di input ed errore. totale=10^6, batch=32 , per=100. accuratezza su test, accuratezza su train, accuratezza su validazione.

vittoria=150: 99.5 98.7 99.5

vittoria=100: 99.6 98.8 99.6

vittoria=90: 98.9 98.2 98.9

vittoria=80: 97.2 96.6 97.2

vittoria=70: 94.8 94.3 94.8

vittoria=60: 92.0 91.6 91.9

vittoria=50: 88.6 88.2 88.6

vittoria=20: 74.7 74.4 74.7

Grafici dei pesi. 1 neurone di ingresso. ma(100) 100 ingressi a sinistra, ma(50) 100 ingressi a destra