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

 
Maxim Dmitrievsky:

Il forward è quello con il fattore di profitto più alto, e il backtest dovrebbe essere circa lo stesso, il che significa che la griglia è in grado di fare previsioni normali sulla base di questi parametri.

No, non lo è. Forward sta solo mostrando il profitto potenziale nel trading reale. Prendete il miglior risultato di un backtest e guardate il suo fronttest - è quello che guadagnereste.
Si può anche ottenere almeno un profitto in avanti per un EA usando l'ottimizzazione, ma un tale EA andrà in crash non importa quanto intensamente sia ottimizzato. La genetica fa più di 10000 selezioni di parametri e alcuni di essi sono sempre redditizi sia nel backtest che nel fronttest ma è solo un caso.

Il forward può essere usato come controllo per creare/modificare l'EA - sostituire quei tre parametri rsi con qualcos'altro, trovare geneticamente i nuovi valori migliori dei parametri e vedere cosa è successo sul forward. Se i migliori risultati di backtest corrispondono a buoni risultati di forward e questo accade durante l'ottimizzazione su diversi intervalli di tempo - allora l'EA è OK. Il forward non è troppo lungo, quasi tutti gli EA perdono sull'intervallo lungo senza ulteriore ottimizzazione. Per esempio, 2 mesi di backtest, una settimana di fronttest è sufficiente.


Maxim Dmitrievsky:

Non ho ancora capito bene se è meglio che la funzione di normalizzazione prenda l'array di 5000 barre invece di 50, in modo da trovare più correttamente max e min dall'inizio e non aggiornarli con il tempo, perché all'inizio dei test riceveremo valori normalizzati non proprio correttamente per l'entrata, ma più tardi sempre più accuratamente

Sì, sarà più preciso con 5000. Inoltre, nel trading reale dopo il lancio dell'Expert Advisor, il riavvio del terminale, ecc. i valori di min e max saranno resettati. Tutta l'ottimizzazione sarà persa. Il deposito sarà distrutto.
Cerco anche di cambiare qualcosa nel codice per profitto. Per esempio, ho semplicemente preso un risultato di regressione lineare pura senza aggiunte e moltiplicato per 1000, poi ho aggiunto 0,5. Il risultato sarà quasi sempre in [0;1] (se è fuori dai limiti - stampo l'errore nel log e riduco il moltiplicatore più tardi), il centro sarà sempre in 0,5, e non fallirà mai.


Maxim Dmitrievsky:

Non sono ancora sicuro di come migliorare, per esempio, la pendenza di regressione e l'autocorrelazione di una serie stazionaria, dato che non sono molto bravo in econometria, ora guardo solo video clip

La pendenza della regressione sulle serie stazionarie sarà zero, non c'è bisogno di cercarla. In generale, se volete trovare la pendenza del trend corrente sulle ultime N barre - allora la regressione lineare è OK, nel codice tutto è già a posto.
L'autocorrelazione sarebbe un po' oscura perché non è un singolo valore ma un lungo vettore (correlazione con lag 1, correlazione con lag 2, correlazione con lag 3, ecc.) Tutti questi valori non si adattano alla RNN.

 
Ildottor Trader:

La pendenza della regressione sulla serie stazionaria sarà zero, non c'è bisogno di cercarla. In generale, se si vuole trovare la pendenza del trend corrente sulle ultime N barre, allora la regressione lineare è OK, tutto è già buono nel codice.
L'autocorrelazione sarebbe un po' oscura perché non è un singolo valore ma un lungo vettore (correlazione con lag 1, correlazione con lag 2, correlazione con lag 3, ecc.) Tutti questi valori non entreranno nella RNN.


No, no, calcoliamo la pendenza dei reg usando grafici normali e cerchiamo l'autocorrelazione usando il detrend, o forse trasferiamo la periodicità del ciclo da 0 a 1, come nella fase del ciclo in cui siamo

Cioè all'ingresso abbiamo una direzione nella forma della pendenza di regressione e la ciclicità all'interno di questa direzione

 
Maxim Dmitrievsky:

E cosa ne pensi dell'idea di usare la RNN come una sorta di autocodificatore per MLP?

C'è qualcosa di sbagliato in questa frase :)


Un autocodificatore è un neurone che può:
1) prendere un vettore (per esempio una serie di vertici) e produrre un altro vettore di lunghezza inferiore. Un tipo di compressione dei dati con poche perdite.
2) Prendere il vettore breve di dati precedentemente ottenuto e ricostruire da esso i dati originali (quasi originali, a seconda delle perdite del primo passo). Questa è la decompressione.

Esempio di vita reale: avete un'immagine in formato BMP, formato che occupa molto spazio su disco. Autoencoder prende i suoi pixel e ci restituisce un nuovo vettore di pixel - i pixel dell'immagine in formato JPG. Stessa immagine, ma occupa meno spazio su disco ed è un po' torbida.
E poi si può se si vuole da un JPG tornare a un BMP, ma la luminosità e la vivacità originali non vengono restituite.
Non credo che si possa mettere l'algoritmo JPG in neuronica; l'esempio è solo per chiarezza.


RNN non prende serie temporali ma RSI in questo caso e restituisce solo un valore secondo il quale i prezzi originali non possono essere ripristinati.



Maxim Dmitrievsky:

No, no, la pendenza reg è calcolata usando i grafici normali e l'autocorrelazione è cercata usando il detrend, può essere la periodicità del ciclo da 0 a 1 come in quale fase del ciclo siamo ora

Cioè l'uscita avrà la direzione nella forma della pendenza di regressione e la ciclicità all'interno di questa direzione

Ah, capito.
 
Ildottor Trader:

C'è qualcosa di molto sbagliato in questa frase :)

Bene, la RNN non prende prima la serie temporale, ma l'RSI in questo caso e restituisce solo un valore, per cui i prezzi originali non possono essere ripristinati.

ma possiamo ricostruire le 3 letture rsi :) le ha solo compresse e ha dato una probabilità, no? )

Autoencoder ha anche una perdita di informazioni... Non capisco ancora la differenza. Mb la differenza è puramente nell'architettura, abbiamo una specie di versione semplificata

 
Yuriy Asaulenko:
Ha anche dato un'occhiata. Imho, questo non è il nostro campo.


Ho visto pubblicazioni per EURUSD per M1.

Dovete guardare il rugarch

Ci sono molti di questi GARCN. Hanno tre gruppi di parametri: il modello stesso, il tipo di media e il tipo di distribuzione dei residui. Per ognuno dei tipi di parametri, gli ultimi sbirciatori. Il detrending è discusso sopra. Quindi in GARCH detrendiamo usando ARFIMA, cioè con differenziazione frazionaria (Hurst).

 
SanSanych Fomenko:


Beh, perché, ho visto le pubblicazioni per EURUSD per M1, quanto oltre.

Dovete guardare il rugarch

Ci sono molti di questi GARCN. Hanno tre gruppi di parametri: il modello stesso, il tipo di media e il tipo di distribuzione dei residui. Per ognuno dei tipi di parametri, gli ultimi sbirciatori. Il detrending è discusso sopra. Così in GARCH il detrending è usando ARFIMA, cioè con differenziazione frazionaria (Hurst).


Ebbene, come si può inserire il garch nella griglia? Nello stesso modo in cui si inseriscono alcuni indicatori. Dopo tutto, la griglia stessa dovrebbe creare il modello al suo interno
 
Maxim Dmitrievsky:

Beh, come si fa a mettere la spazzatura in una griglia? Dopo tutto, la griglia stessa dovrebbe creare il modello al suo interno.

Non ficcare le cose decenti in quelle decenti.
 
SanSanych Fomenko:

Sputare sulle reti e non ficcare cose decenti in quelle sgradevoli

No, dovresti farlo per divertimento, è sicuramente possibile trovare un uso per le reti
 
Maxim Dmitrievsky:

No, è solo una questione di interesse, ed è chiaramente possibile pensare ad applicazioni per le reti.
Tutti i modelli di apprendimento automatico e NS sono estremamente dipendenti dai predittori che devono essere adattati alla funzione obiettivo. Tutto questo è stato discusso molte volte sopra. Lo sforzo principale è sul dataminig, e la griglia stessa non ha molta importanza.
 
SanSanych Fomenko:
Tutti i modelli di apprendimento automatico e NS sono estremamente dipendenti dai predittori che devono essere adattati alla funzione obiettivo. Tutto questo è stato discusso molte volte sopra. Lo sforzo principale è sul dataminig, e la griglia stessa non ha molta importanza.

Stavo solo cercando di discutere le varianti dei predittori sopra :) ci proverò, che