L'apprendimento automatico nel trading: teoria, modelli, pratica e algo-trading - pagina 14
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
OK, si potrebbe pensare. Immaginate per esempio che ad ogni iterazione la rete neurale non faccia una propagazione a ritroso dell'errore standard basata sulla deviazione del target dalla previsione, ma ottenga dati che alla versione precedente di pesi il commercio reale differisce dall'ideale di tanti punti. E aggiorna i pesi in base a queste informazioni. Cioè, le informazioni dovrebbero essere un flusso parallelo alla macchina. Forse, si può fare.
Perché avete bisogno di pesi? Perché parli di loro in primo luogo?
Ho capito che avete bisogno di pesi precedenti, ora capisco che non capisco niente)
Perché avete bisogno di pesi? Perché parli di loro in primo luogo?
Ho capito che avete bisogno di pesi precedenti, ora capisco che non ho capito niente)
Beh, sembra che sia così ))
Non abbiamo bisogno dei pesi. Li ho menzionati solo per renderlo chiaro a VOI. Abbiamo bisogno di sapere come il sistema ha scambiato i pesi precedenti. Abbiamo bisogno del risultato dello scambio in qualche modo integrato. Tutto.
I pesi sono aggiornati dall'algoritmo.
Qui, una semplice funzione funziona. Bisogna provarne uno più complesso. Deve ancora essere differenziato, questo è il trucco.
library(neuralnet)
y <- as.data.frame(matrix(runif(n = 10000, min = -15, max = 15), ncol = 2))
y$V3 <- runif(n = 5000, min = -15, max = 15)
y$V4 <- runif(n = 5000, min = -15, max = 15)
y$V5 <- runif(n = 5000, min = -15, max = 15)
y$V6 <- runif(n = 5000, min = -15, max = 15)
y$V7 <- runif(n = 5000, min = -15, max = 15)
y$V8 <- y$V1 ^ 2 + y$V2 ^ 2
colnames(y) <- c('input_1', 'input_2', 'noise_1', 'noise_2', 'noise_3', 'noise_4', 'noise_5', 'output')
f_f <- function(x, y){
1/2*(y-x)^2
}
print(
nn_model <- neuralnet(formula = output ~ input_1 + input_2 + noise_1
, data = y
, hidden = 1
, threshold = 0.01
, stepmax = 1e+05
, rep = 100
, startweights = NULL
, learningrate.limit = NULL
, learningrate.factor = list(minus = 0.5, plus = 1.2)
, learningrate=NULL
, lifesign = "none"
, lifesign.step = 10
, algorithm = "rprop+"
, err.fct = f_f #"sse"
, act.fct = "logistic"
, linear.output = F
, exclude = NULL
, constant.weights = NULL
, likelihood = FALSE
)
)
f_f <- funzione(x, y) 1/2*(y-x)^2
f_f - conta l'errore per la rete giusto?
x è il valore che dovrebbe essere (curva ideale)
y è come dovrebbe essere (la curva reale)
La differenza tra loro è l'errore
Ho bisogno di un vettore di commercio da candele precedenti, ho bisogno delle regole per aprire le operazioni, ho bisogno dei dati di ingresso del commercio
f_f <- funzione(x, y) 1/2*(y-x)^2
f_f - conta l'errore per la rete giusto?
x è il valore che dovrebbe essere (curva ideale)
y è come dovrebbe essere (la curva reale)
La differenza tra loro è l'errore
Penso di aver bisogno di un vettore di trade per candele, ma non capisco come aprire trade con quali regole, come dovrebbero essere questi dati di input
Un collega mi ha mandato un link a un corso sull'apprendimento automatico, ti piacerebbe dargli un'occhiata? È gratuito, ma è in Python per qualche motivo ((
https://www.udacity.com/course/machine-learning-for-trading--ud501
Un collega mi ha mandato un link a un corso sull'apprendimento automatico, ti piacerebbe dargli un'occhiata? È gratuito, ma è in Python per qualche motivo ((
https://www.udacity.com/course/machine-learning-for-trading--ud501
Il più efficace:
1. si mette in R - 5 minuti.
2. Scaricate il pacchetto rattle, che è progettato come una GUI, quindi non richiede alcuna conoscenza di R.
3. Per ridurre i vostri costi di avviamento potete usare il mio articolo. Contiene spiegazioni e, cosa più importante, ha un file pronto in allegato. Una volta che hai visto il mio file puoi facilmente preparare il tuo.
4. Si ottengono sei modelli.
5. La cosa principale in rattle è che puoi vedere il ciclo completo dell'apprendimento automatico:
Tutto questo vi darà delle basi senza lacune, e soprattutto una concreta esperienza di apprendimento automatico legata al forex.
PS.
Il sonaglio vi sarà molto utile non solo ai primi passi, ma anche in seguito: costi minimi, per valutare qualcosa, per sperimentare...
PSPS
Naturalmente, non si può fare a meno dei libri. Ce ne sono molti qui. La ricerca funziona perfettamente.
Grazie per il chiarimento dettagliatoDr.Trader!
Sai, probabilmente la cosa migliore e più corretta sarebbe insegnare le inversioni stesse, anche lo stesso zigzag, cioè dare tre stati 1) inversione a U verso l'alto
2) inversione verso il basso
3) non un'inversione a U
Ma se per insegnarlo, è abbastanza difficile da catturare inversioni, più l'asimmetria nel numero di osservazioni, classi "non inversione" sarà decine o forse centinaia di volte più
E quali predittori usate e quali sono i risultati?
Ho appena iniziato a usare l'analisi spettrale, i primi test si sono rivelati molto meglio che con gli indicatori, l'ho eseguito attraverso rattle, l'errore di formazione e test era circa il 6%, ma quando ho iniziato a usare R l'errore è salito al 30% se non sbaglio, San Sanich dice che è riqualificazione, quindi ancora non capisco molto
C'è anche un modo per scoprire quali periodi dominano nel mercato attraverso l'analisi spettrale e poi è possibile utilizzare questi periodi negli indicatori. Otterrò indicatori adattivi, non regolati alla storia.
Uso indicatori standard come base per la creazione di predittori. Io stesso sto ancora sperimentando con loro, provando le idee di questo thread del forum.
L'ho fatto per le ultime settimane, ora il miglior risultato è il seguente: (un sacco di calcoli, sto cercando di usare il timeframe D1 per un calcolo più veloce, più tardi userò timeframe più piccoli)
1) esportare da mt5 a csv: ohlc, tempo, indicatori, tutti per le ultime 10 barre. Recentemente ho iniziato a prendere il tempo solo dalla barra più recente, credo che il tempo delle altre barre sia calcolabile e quindi non porta nessuna nuova informazione. Stanno uscendo diverse centinaia di predittori "primari". Il risultato richiesto dell'apprendimento è "1" o "0" - aumento o diminuzione del prezzo nella prossima barra. Il mio metodo con gli zigzag non è stabile e complesso, ora sono più bravo a lavorare con i prezzi vicini. Quando avrò elaborato un algoritmo completo per l'addestramento dei modelli da zero, potrei iniziare a lavorare sugli zigzag e sulla previsione delle tendenze.
2) In R sto facendo diverse operazioni matematiche con i dati disponibili - aggiunta, delta, min, max, ecc. Esce già più di mille predittori.
3) Ovviamente c'è più spazzatura dopo il secondo passo di quella necessaria. Lo sto setacciando con il metodo dell'articolo sui componenti di basehttp://www.r-bloggers.com/principal-components-regression-pt-2-y-aware-methods/, SanSanych l'ha scritto prima. Non sto insegnando il modello PCR in sé e ho deciso di utilizzare la funzione di pre-screening dei predittori per ora:
srcTable è una tabella con predittori, l'ultima colonna dovrebbe essere il risultato di formazione richiesto.pruneSig è meglio lasciare -1.
Come risultato, la funzione restituirà una lista con i nomi delle colonne della tabella che portano alcune informazioni utili. O una lista vuota se non si trova nulla di utile. Questo metodo è menzionato nell'articolo come poco significativo, ma si rivela abbastanza adeguato, setaccia molto bene la spazzatura. Inoltre, l'elenco dei risultati sarà ordinato per rilevanza, dal più utile al meno utile.
4) Se la funzione restituisce una lista vuota - eseguo di nuovo il secondo passo, genera di nuovo diverse combinazioni matematiche sui dati disponibili, poi il terzo passo per setacciare. Devo ripeterlo 3-4 volte. Il volume dei dati cresce ad ogni ripetizione, quindi è meglio limitare il volume dei nuovi dati generati in qualche modo. Possiamo cambiare questa funzione per il vaglio, in modo che se la lista è vuota, restituisca cento o due risultati migliori e generi nuovi predittori solo da questi.
5) Successivamente, secondo l'articolo, dobbiamo addestrare il modello del componente principale stesso. Ho problemi con esso - finora il miglior r-squared per il modello addestrato è 0.1, non è abbastanza, l'articolo dice che ho bisogno di almeno 0.95. Ma posso allenare qualche altro modello R sui predittori ottenuti e darà un risultato migliore. Ho più esperienza con la neuronica, il miglior risultato in fronttest con essa esce con un errore di circa 37%. Il modello PCE dovrebbe essere più stabile, senza retraining, ecc., ma finora non riesco a trovare alcun predittore per esso.
Se hai un errore del 30% nel fronttest allora è un modello abbastanza redditizio, fai Expert Advisor per mt5 e controllalo in strategy tester.
Un collega mi ha mandato un link a un corso sull'apprendimento automatico, ti piacerebbe dargli un'occhiata? Il corso è gratuito, ma è in Python per qualche motivo ((
https://www.udacity.com/course/machine-learning-for-trading--ud501