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

 

Maxim Dmitrievsky:

3 settimane per andare fino al mio traguardo con il NS :))) o il graal o l'inferno con loro. Fate le vostre scommesse :))

Sarebbe bello sentire le probabilità di vincere all'inizio. Nessuno prende ordini qui ;)

 

Avevo urgente bisogno di trovare il minimo di una funzione liscia, così ho deciso prima di confrontare diversi pacchetti per vedere quale è più veloce. Per il test ho preso la funzione Rastrigin (la funzione più difficile da ottimizzare secondo alcuni professori).

Rastrigin <- function(x){
  return(sum(x^2 - 10 * cos(2 * pi * x)) + 10 * length(x))
}


Per il test l'ho preso con 4 parametri:

~ w^2 - 10 * cos(2 * pi * w)  +  x^2 - 10 * cos(2 * pi * x)  +  y^2 - 10 * cos(2 * pi * y)  +  z^2 - 10 * cos(2 * pi * z)   +  10 * 4


Derivati:

2 * w + 10 * (sin(2 * pi * w) * 2 * pi
2 * x + 10 * (sin(2 * pi * x) * 2 * pi
2 * y + 10 * (sin(2 * pi * y) * 2 * pi
2 * z + 10 * (sin(2 * pi * z) * 2 * pi


Ho confrontato GenSA, lbfgs, lbfgsb3, n1qn1 e vari metodi nella funzione standard optim().

Risultati:
pacchetto, il numero di chiamate alla funzione di fitness (e gradiente), i parametri trovati, e il risultato finale dove la ricerca si ferma.

n1qn1 fitness function calls: 448 ; parameters = 3.90227 e-18 3.90227 e-18 3.90227 e-18 3.90227 e-18 ; result = 0 
lbfgs fitness function calls: 14 ; parameters = -1.891749 e-10 -1.891749 e-10 -1.891749 e-10 -1.891749 e-10 ; result = 0 
lbfgsb3 fitness function calls: 12 ; parameters = -7.542216 e-15 -7.542216 e-15 -7.542216 e-15 -7.542216 e-15 ; result = 0 
GenSA fitness function calls: 66582 ; parameters = 1.517382 e-11 -5.657816 e-12 -2.292922 e-11 -3.257902 e-12 ; result = 0 
optim Nelder-Mead fitness function calls: 253 ; parameters = -2.981633 3.988813 0.9902444 -2.980489 ; result = 34.8497 
optim BFGS fitness function calls: 49 ; parameters = 8.731115 e-16 8.731115 e-16 8.731166 e-16 8.731157 e-16 ; result = 0 
optim CG fitness function calls: 918 ; parameters = 0.9949586 0.9949586 0.9949586 0.9949586 ; result = 3.979836 
optim L-BFGS-B fitness function calls: 81 ; parameters = 8.526118 e-13 8.526118 e-13 8.526118 e-13 8.526118 e-13 ; result = 0 
optim SANN fitness function calls: 10000 ; parameters = 750.3075 745.0596 743.626 753.8133 ; result = 2239327 

Le prime tre funzioni (n1qn1, lbfgs, lbfgsb3) usano un gradiente trovato analiticamente.

Il risultato = 0 è ideale, più è lontano da zero e peggio è.

Possiamo vedere che la conoscenza dei derivati è molto buona, lbfgsb3 ha raggiunto il risultato perfetto in 12 chiamate delle funzioni di fitness.
Il migliore di quelli che definiscono il gradiente numericamente era la funzione standard optim con il metodo BFGS, 49 chiamate della funzione fitness.

La conclusione è che i derivati sono molto buoni. Idealmente potremmo per esempio trovare le derivate per tutti i pesi e metterle in lbfgsb3 invece di backprops.
Ma tutto questo risultato si applica solo a funzioni lisce per le quali si possono trovare le derivate per tutti i parametri. Se avete parametri di funzione che cambiano casualmente il risultato anche al minimo cambiamento - la genetica, GenSA e altri algoritmi stocastici sono migliori lì.

Ho allegato un file con il codice, potete testarlo sulle vostre funzioni.

File:
n1qn1.txt  4 kb
 

Mi chiedo se una tale serie può essere prevista da qualche arima, o se lavorare indietro alla media è sufficiente... è riuscito ad ottenere risultati impressionantemente stabili (diagramma di cointegrazione), lavorando i ritorni su 2 spreads


 

Un ritorno alla media può anche essere scambiato con uno swing. Ma come possiamo determinare dove si trova il prezzo medio se la media si sposta con la tendenza? (La domanda è retorica - non si può).

 
Ildottor Trader:

Un ritorno alla media può anche essere scambiato con uno swing. Ma come possiamo determinare dove si trova il prezzo medio se la media si sposta con la tendenza? (La domanda è retorica - non si può).

La media qui è 0, è una strategia neutrale

dovremmo usare la statistica) ciò che viene spostato lì è impossibile da capire nella scatola nera

In breve, quasi finito 2 ° strategia del 3 previsto (i risultati del primo hanno già scritto, non vkatilo)

se questo non funziona - l'ultimo sarà lasciato )

e questa sarà la fine del MO

 
Maxim Dmitrievsky:

Mi chiedo se una tale serie può essere prevista da qualche arima, o è sufficiente lavorare per il ritorno alla media... è riuscito a raggiungere risultati impressionantemente stabili (diagramma di cointegrazione), lavorando rendimenti più di 2 spread


La cointegrazione è un termine e non ha niente a che vedere con la tua immagine.

L'applicabilità di arim è determinata da diversi test, il principale dei quali è arch, che determina se c'è un effetto arch nella serie temporale. Se non c'è l'effetto arco, che è circa il 20%, allora il commercio, ma ... sulla storia, dato che questa sezione è già passata o quasi passata o...

 
SanSanych Fomenko:

La cointegrazione è un termine e non ha niente a che vedere con la tua immagine.

L'applicabilità dell'aritmetica è determinata da diversi test, il principale dei quali è arch, che determina se c'è un effetto arch nella serie temporale. Se non c'è l'effetto arco, che è circa il 20%, allora il commercio, ma ... sulla storia, dato che questa sezione è già passata o quasi passata o...

definiamo la cointegrazione per la terza volta... che cos'è e perché non è rilevante per il mio quadro? :)

è una foto di un sito di prova, non guardo affatto la storia, lì è sempre tutto perfetto

o di cosa si tratta - sviluppo di strategie sul MO o analisi di diverse funzioni R, penso di essere l'unico che si è preoccupato di postare qualche risultato per alcuni mesi :)

 
Maxim Dmitrievsky:

la media qui è 0, è una strategia neutrale al mercato

Volete che il grafico verde stesso faccia trading? Poi vedo, all'inizio pensavo fosse un indicatore per il trading di eurusd.

Per prima cosa dobbiamo capire se si tratta di un processo casuale o se ha una memoria come una normale serie temporale.

Se ha una memoria, la mashka e l'arima possono essere utili.
Ma se il grafico è completamente casuale, allora abbiamo bisogno di modelli per processi markoviani. Non sono bravo, ma Alexander ha detto qualcosa sul modello Wiener, puoi iniziare con quello, per esempio.

 
Maxim Dmitrievsky:

definiamo per la terza volta la cointegrazione... cos'è e perché non si applica al mio quadro? :)

Questa è una foto già da una trama di prova, non guardo affatto la storia, lì è sempre tutto perfetto

Ci sono almeno due serie temporali in cointegrazione.

Ma non sono tutti.

Queste serie non sono stazionarie.

Ma questo non è tutto.

Queste serie non stazionarie devono essere collegate in modo tale che il risultato sia stazionario.

Le decisioni commerciali sono prese sulla base di questa serie STAZIONARIA che garantisce la possibilità stessa di fare una previsione.

 
Ildottor Trader:

Vuoi scambiare il grafico verde stesso? Poi vedo, all'inizio pensavo fosse un indicatore per il trading di eurusd.

Prima dobbiamo capire se è un processo casuale o se ha una memoria come una normale serie temporale.

Se ha memoria - allora sia mash che arima possono essere utili.
Ma se il grafico è completamente casuale, allora abbiamo bisogno di modelli per processi markoviani. Non sono bravo, ma Alexander ha detto qualcosa sul modello Wiener.

Quindi, dobbiamo determinare se ha una memoria, cioè è determinato dalle sue code?

Motivazione: