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

 
Mihail Marchukajtes:
Saluti!!!! Uso LibVMR ma sembra una versione vecchia, perché appare l'errore "Bad Data". Ho capito che c'è una nuova versione. Dove posso scaricarlo? Se è possibile?

I prodotti freschi e i download sono ora distribuiti attraverso il repository di BitBucket all'indirizzo: https://bitbucket.org/jprediction/jprediction/downloads

Anche il nome del progetto è cambiato da libVMR a jPrediction

 
Yury Reshetov:

Non è abbastanza chiaro? Stai prendendo i prezzi come OHLC per i modelli o qualche trasformazione di essi?

Il punto è che se prendiamo l'OHLC così com'è, un modello simile 1000 punti più alto o più basso di quello confrontato sarà più diverso per la distanza euclidea che un modello totalmente diverso 10 punti più alto o più basso di quello confrontato. E la differenza sarà di due ordini di grandezza e quindi anche l'errore di confronto sarà di due ordini di grandezza.

Quando ho misurato con Euclid, tutti i vettori sono stati normalizzati e censurati
 
mytarmailS:
Quando ho misurato con Euclid, tutti i vettori sono stati normalizzati e censurati
Come si fa?
 
mytarmailS:

La soluzione è stata trovata.....

Se si applica l'analisi dello spettro al vettore corrente (prezzi correnti) e lo si scompone in componenti più semplici, tali componenti possono essere trovati più facilmente nella storia a causa della loro struttura semplice

s

price <- cumsum(rnorm(200))+1000

library(Rssa)
s <- ssa(price)
r <- reconstruct(s)

par(mfrow=c(1,2))
plot(price,t="l")
plot(r$F2,t="l")
for(i in 3:50) {lines(r[[i]],col=i)}

Ho usato il metodo "caterpillar" o "ssa"http://www.milanor.net/blog/wp-content/uploads/2014/07/SingularSpectrumAnalysisWithRssa.pdf per la decomposizione.

Cerchiamo degli analoghi nella storia e vediamo come vanno a finire, ma non cerchiamo gli analoghi dei prezzi, ma per ogni singola componente spettrale, e poi li colleghiamo e otteniamo una semplice previsione

A giudicare dai primi test, il tema è abbastanza promettente se prevediamo ogni suo componente separatamente. La previsione è spesso corretta, ma raramente non è di parte...

ss

Il colore nero indica una delle componenti attuali, il colore blu mostra la componente analogica trovata nella storia dopo che la linea verticale nera è un nuovo dato sconosciuto all'algoritmo - in effetti, la previsione - come si può vedere abbastanza efficacemente

Ma come vedete c'è sempre una distorsione nella previsione, e non sempre una buona naturalmente, la vicinanza tra gli analoghi cercando la vecchia via attraverso la correlazione, capisco che questo è uno dei modi più inadatti, così ho voluto sostituire l'algoritmo che avrebbe cercato somiglianze nell'ampiezza, fase, frequenza. Ora capite cosa intendo quando parlo di Fourier?

 

Il dottor Trader

come è addestrata la tua rete neurale?

RNeat? No, l'addestramento è molto lento, il fitness del modello è ora 0,018, che cresce di un centesimo al giorno. La precisione sui dati di addestramento e di convalida è ora di 0,52, molto bassa, ma almeno è sul lato positivo senza riqualificazione.
 
Yury Reshetov:
Come si fa?

Beh, è solo che prima di confrontare i due vettori, li ho scalati con la funzione "scale"

scala(x = dati , centro = TRUE, scala = TRUE )

 
Yury Reshetov:
Come?
È interessante notare che ho scaricato la versione 6.0 perché la 5.0 non salva e non crea un file di testo, quindi non è chiaro perché durante l'allenamento uno sbaglia i valori, ma nel file di testo i valori sono completamente diversi?
 
Mihail Marchukajtes:
Mi chiedo perché ho scaricato la versione 6.0 perché la 5.0 non salva e non crea un file di testo, quindi non è chiaro perché durante l'allenamento i valori di un errore e nel file di testo sono completamente diversi?
Nel file di testo, le caratteristiche per il classificatore binario e dopo l'allenamento per quello ternario. Ci sono due griglie e se le loro letture coincidono, si ottiene una risposta affermativa, se differiscono, si ottiene un trattino. I classificatori binari danno sempre solo risposte affermative, indipendentemente dal fatto che i dati di modelli simili nel campione siano simili o meno. I classificatori ternari a volte non riescono a dare una risposta affermativa se il campione di allenamento non contiene modelli simili.
 
Dr.Trader:
RNeat? No, l'addestramento è molto lento, il fitness che definisce il modello è ora 0,018, crescendo un centesimo al giorno. La precisione sui dati di allenamento e di convalida è ora di 0,52, molto bassa, ma almeno è in positivo e senza riqualificazione.
Ooh 52 è meglio di 50 , come si può ricordare l'ultima volta era 0,017 così un centesimo può aumentare la precisione del 2% ), penso che se la rete è necessaria sarebbe meglio riscriverla per SI, tienimi aggiornato, sono molto interessato ...
 
mytarmailS:
Ooh 52 è già meglio di 50 , come ricordo l'ultima volta era 0.017 quindi un centesimo aumenta l'accuratezza della previsione del 2% ), penso che se la rete vale l'attenzione è meglio riscriverla su SI , tienimi aggiornato, sono estremamente interessato ...

La fitness può salire semplicemente perché il modello ha migliorato la sua topologia e abbandonato un paio di neuroni, a parità di precisione.
Per quanto ho capito dai commenti nel codice - è un porting da Lua. E anche Lua è un port, perché l'originale era già in c++:http://nn.cs.utexas.edu?neat
Port from port è sfortunato, un sacco di azioni inutili, sarebbe meglio se l'autore di RNeat prendesse il codice C++ come base, e applicasse i pacchetti genetici R esistenti per far evolvere la rete.