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

 
Aspetto che CC chiarisca come vuole fare.

Ancora una volta, penso che prevedere i trade con un'uscita da una semplice condizione potrebbe non essere ottimale.

E se addestriamo un'altra macchina che impara il momento di chiusura da operazioni già aperte? Lasciatemi spiegare. Un affare dovrebbe chiudersi in un'ora - abbiamo addestrato la macchina ad aprire gli affari in questo modo.

Per ogni affare aperto, ci saranno 60 record (linee) con fiches - per ogni minuto, iniziando da 31 minuti e finendo a 90 minuti. Circa la metà di queste entrate sarà segnata 1 come una buona uscita intorno al 60° minuto.

Questa è quella che io chiamo una spiegazione dettagliata di come il problema dovrebbe essere risolto.

Cosa ne pensate?
 
Alexey Burnakov:

È un'idea interessante, anch'io ho degli EA che funzionano. Forse penserò a come aggiornarli. Ma non mi è chiaro cosa esattamente deve essere migliorato? Di cosa avete bisogno per insegnare alla macchina?

L'Expert Advisor ha una logica rigida per l'apertura e la chiusura delle posizioni. Nell'apprendimento automatico, la decisione viene presa in un modo leggermente diverso.

Cioè, non è del tutto chiaro cosa farete esattamente.

Qui potete vederlo dal mio post sopra:

Sto prendendo la direzione generale dalla barra alta. Ma quando si guarda da vicino il tempo, c'è un ritardo mostruoso in termini di barre inferiori soprattutto. Quindi se è D1 ma faccio trading su M5, risulta che prendo quasi il giorno prima i dati di ieri per la direzione. Anche prevedere un passo avanti per D1 con un errore del 30% ha migliorato radicalmente la redditività di EA, e soprattutto ha aumentato la fiducia che non si venderà.

Nel mio caso userò i dati ritardati degli indicatori per un'appropriata predizione R.

 
SanSanych Fomenko:

Ecco una nota del mio post sopra:

La direzione generale è presa dalla barra alta. Ma quando si guarda da vicino il tempo, c'è un ritardo mostruoso in termini di barre inferiori soprattutto. Quindi se è D1 ma faccio trading su M5, risulta che prendo quasi il giorno prima i dati di ieri per la direzione. Anche prevedere un passo avanti per D1 con un errore del 30% ha migliorato radicalmente la redditività dell'Expert Advisor, e soprattutto ha aumentato la fiducia che non si venderà.

Nel mio caso particolare sto percorrendo la strada di usare i dati ritardati degli indicatori sulle previsioni corrispondenti di R.

Ok, ho capito approssimativamente l'idea.
 

Ho direttamente una grande notizia.

Durante un viaggio di lavoro, la sera ho fatto funzionare le macchine di apprendimento sui miei dati. Ha provato diverse combinazioni di approcci. E sembra che un fiore di pietra sia uscito - all'improvviso.

Così, ho usato i miei dati dal link che ho citato per eseguire sempre più allenamenti, provando cose che sono già state descritte nel mio blog. Ma ho aggiunto un paio di altri trucchi. Per esempio, ho selezionato quei parametri di addestramento dove c'è più profitto sulla crossvalidazione, piuttosto che sulla precisione astratta di indovinare.

Per questo naturalmente ho dovuto scrivere la mia funzione di fitness.

Sul grafico ci sono coppie di valori di aspettativa su Training e Validation per diversi orizzonti di predizione e parametri di allenamento. Ho anche usato l'idea di una "zona grigia", cioè uno spazio di previsione dove non succede niente.

Come potete vedere, ho ottenuto valori MO abbastanza sani su entrambi gli allenamenti e valori correlati sulla validazione! Si noti che la simulazione ha utilizzato uno spread di 0,00020 (venti scelte).

Ho anche calcolato il commercio totale incluso lo spread. Anche i valori sono molto belli. Il massimo profitto si ottiene con un certo rapporto tra il numero di operazioni e il MO dell'operazione, il tutto su un orizzonte di pianificazione di 12 ore. Sul grafico c'è un run-through di tutti gli orizzonti di pianificazione, tutti i valori dell'area grigia e i migliori parametri di apprendimento del modello. Vedi sotto:


Bene, e per diffondere questa conoscenza, allego un file con tutti i risultati, compresi anche i parametri di allenamento dell'impalcatura. Ma senza gli ingressi. Gli input dei miei dati sono selezionati. Questo sarà un piccolo segreto. Penserò al codice completo dell'esperimento o no. Ora voglio fare l'integrazione con MT di questa macchina, perché il risultato mi sembra già abbastanza funzionante.

Alexey

 
Alexey Burnakov:

Ho direttamente una grande notizia.

Durante un viaggio di lavoro, la sera ho fatto funzionare le macchine di apprendimento sui miei dati. Ha provato diverse combinazioni di approcci. E sembra che un fiore di pietra sia uscito - all'improvviso.

Comunque, sui miei dati dal link che ho dato, ho eseguito l'allenamento più e più volte, provando cose che sono già state descritte sul mio blog. Ma ho aggiunto un paio di altri trucchi. Per esempio, la selezione di quei parametri di addestramento dove c'è più profitto sulla crossvalidazione, piuttosto che la precisione astratta di indovinare.

Per questo naturalmente ho dovuto scrivere la mia funzione di fitness.

Sul grafico ci sono coppie di valori di aspettativa su Training e Validation per diversi orizzonti di predizione e parametri di allenamento. Ho anche usato l'idea di una "zona grigia", cioè uno spazio di previsione dove non succede niente.

Come potete vedere, ho ottenuto valori MO abbastanza sani su entrambi gli allenamenti e valori correlati sulla validazione! Si noti che la simulazione ha utilizzato uno spread di 0,00020 (venti scelte).

Ho anche calcolato il commercio totale incluso lo spread. Anche i valori sono molto belli. Il massimo profitto si ottiene con un certo rapporto tra il numero di operazioni e il MO dell'operazione, il tutto su un orizzonte di pianificazione di 12 ore. Sul grafico c'è un run-through di tutti gli orizzonti di pianificazione, tutti i valori dell'area grigia e i migliori parametri di apprendimento del modello. Vedi sotto:


Bene, e per diffondere questa conoscenza, allego un file con tutti i risultati, compresi anche i parametri di allenamento dell'impalcatura. Ma senza gli ingressi. Gli input dei miei dati sono selezionati. Questo sarà un piccolo segreto. Penserò al codice completo dell'esperimento o no. Ora voglio fare l'integrazione con MT di questa macchina, perché il risultato mi sembra già abbastanza funzionante.

Alexey

Il profitto totale in pip non è un indicatore. È il rapporto tra questo profitto totale e il numero di barre di storia, su cui è ottenuto, che è il fattore di qualità indicativo. Lo dico da molto tempo e lo uso solo per l'ottimizzazione e la stima dei modelli.

Il duro lavoro dà risultati.

Buona fortuna

 
Vladimir Perervenko:

Il profitto totale in pip non è l'indicatore. È il rapporto tra questo profitto totale e il numero di barre di storia, su cui è guadagnato, che è il fattore di qualità indicativo. Lo dico da molto tempo, e lo uso solo per l'ottimizzazione e la stima dei modelli.

Il duro lavoro ottiene risultati.

Buona fortuna

Per come la vedo io, una non esclude l'altra.

Alexey ha superato l'ovvio svantaggio di tutte le valutazioni delle previsioni di classificazione: è ovvio che il valore di una previsione corretta di una barra da 1 pip e il valore di una previsione di una barra da 10 pip sono completamente diversi.

Congratulazioni a te Alexey!

 
Vladimir Perervenko:

Il profitto totale in pip non è un indicatore. È il rapporto tra questo profitto totale e il numero di barre di storia su cui è ottenuto - questo è il coefficiente di qualità che è indicativo. L'ho detto da tempo e lo uso solo per l'ottimizzazione e la stima del modello.

Il duro lavoro ottiene risultati.

Buona fortuna

Lasciatemi spiegare.

Previsione 12 ore avanti (724 minuti per essere esatti).

Il numero di scambi è superiore a 5000 per ciascuno dei campioni di convalida. Il risultato è una media su 49 campioni di convalida. Gli scambi all'interno di ogni campione avvengono in incrementi di circa 12 ore, cioè non c'è una dipendenza evidente e nessuna sovrapposizione di risultati. Tra poco posterò altri grafici della simulazione di trading. I risultati sono troppo buoni. Ma finora tutto conferma.

 

Dati finali del mio esperimento:

Simulazione dei segnali di trading di una macchina addestrata su 49 campioni di convalida (in pip):

Distribuzione del risultato del trade in pip per 49 campioni:

Ed eseguendo test di ipotesi di una differenza significativa tra la media (mediana) MO di ogni campione di convalida e lo zero:

campione di validazione
Test di Shapiro normalità p-value
test p-value per la differenza da zero
media
mediana
media dist superiore 99%-coda
media dist inferiore 99%-coda
1
1.11E-65
0
0.000139
0.000095
0.000146
0.000133
2
8.55E-64
0
0.000139
0.000096
0.000145
0.000133
3
8.24E-63
0
0.000137
0.000096
0.000143
0.000131
4
3.31E-66
0
0.000139
0.000095
0.000146
0.000133
5
4.64E-66
0
0.000142
0.000097
0.000149
0.000136
6
7.08E-63
0
0.000141
0.000097
0.000147
0.000135
7
8.72E-65
0
0.000135
0.000096
0.000141
0.000129
8
4.52E-65
0
0.000139
0.000096
0.000145
0.000132
9
4.31E-64
0
0.000143
0.000102
0.000149
0.000137
10
4.53E-66
0
0.000141
0.000099
0.000147
0.000134
11
8.97E-67
0
0.000143
0.000098
0.000149
0.000136
12
2.21E-63
0
0.000139
0.000102
0.000145
0.000133
13
1.16E-63
0
0.000142
0.000099
0.000148
0.000135
14
7.82E-64
0
0.000138
0.000097
0.000144
0.000132
15
1.41E-65
0
0.000146
0.000103
0.000152
0.000140
16
8.17E-63
0
0.000135
0.000097
0.000140
0.000129
17
6.54E-65
0
0.000143
0.000099
0.000149
0.000136
18
6.70E-66
0
0.000138
0.000096
0.000144
0.000132
19
1.86E-65
0
0.000143
0.000099
0.000149
0.000136
20
1.79E-66
0
0.000142
0.000098
0.000148
0.000135
21
2.37E-62
0
0.000136
0.000099
0.000142
0.000131
22
5.51E-65
0
0.000141
0.000100
0.000147
0.000135
23
7.15E-67
0
0.000142
0.000097
0.000149
0.000136
24
1.06E-65
0
0.000144
0.000102
0.000150
0.000137
25
4.01E-65
0
0.000147
0.000101
0.000153
0.000140
26
2.33E-64
0
0.000141
0.000098
0.000147
0.000135
27
7.85E-65
0
0.000141
0.000100
0.000147
0.000134
28
2.07E-64
0
0.000141
0.000098
0.000147
0.000134
29
2.01E-63
0
0.000140
0.000098
0.000146
0.000134
30
2.77E-64
0
0.000139
0.000098
0.000145
0.000133
31
1.43E-66
0
0.000145
0.000098
0.000151
0.000138
32
1.08E-65
0
0.000141
0.000098
0.000147
0.000134
33
3.47E-62
0
0.000136
0.000099
0.000141
0.000130
34
6.04E-67
0
0.000140
0.000096
0.000147
0.000134
35
2.32E-65
0
0.000145
0.000100
0.000152
0.000139
36
6.39E-65
0
0.000143
0.000098
0.000149
0.000137
37
1.10E-61
0
0.000141
0.000103
0.000147
0.000135
38
6.74E-63
0
0.000142
0.000100
0.000148
0.000136
39
2.54E-64
0
0.000141
0.000098
0.000147
0.000135
40
2.45E-64
0
0.000139
0.000098
0.000145
0.000133
41
6.25E-66
0
0.000141
0.000099
0.000148
0.000135
42
3.99E-66
0
0.000141
0.000097
0.000147
0.000135
43
1.35E-66
0
0.000142
0.000098
0.000148
0.000135
44
1.01E-63
0
0.000134
0.000097
0.000140
0.000128
45
1.56E-64
0
0.000139
0.000097
0.000145
0.000133
46
3.11E-66
0
0.000145
0.000103
0.000152
0.000139
47
6.11E-66
0
0.000138
0.000099
0.000144
0.000131
48
2.99E-66
0
0.000146
0.000101
0.000152
0.000139
49
1.84E-63
0
0.000138
0.000098
0.000144
0.000131

La distribuzione all'interno dei campioni non è normale. Il test di Wilcoxon mostra che il MO è significativamente diverso da zero.

A proposito, il cambiamento nel modello di crescita della curva della somma dei punti nelle ultime 3/5 parti dei campioni di convalida è spiegabile.

Ho circa lo stesso numero di osservazioni per le 5 major all'interno dei campioni e vanno nel seguente ordine:

dat_eurusd 
dat_audusd 
dat_gbpusd 
dat_usdcad 
dat_usdchf

Sono sicuro che per le ultime tre coppie la volatilità è più alta e lo spread è più alto (dovremmo prendere 25-30 pips invece di 20 pips). Quindi il loro risultato lordo e la percentuale di direzioni indovinate è migliore. Ma l'inserimento di uno spread aumentato non renderà comunque nulle le statistiche. Solo per capire cosa sta succedendo.

PM.

 
SanSanych Fomenko:

Per come la vedo io, uno non esclude l'altro.

Alexey ha superato l'ovvio svantaggio di tutte le valutazioni di classificazione delle previsioni: ovviamente, il valore di una previsione corretta di 1 pip bar e il valore di una previsione di 10 pip bar sono completamente diversi.

Congratulazioni a te Alexey!

Grazie SanSanych. Tutto funziona. Proverò a farlo funzionare su MT4 per cominciare.
 

Attenzione. Ho trovato un bug nel codice, che ha causato grandi risultati. Tutte le mie ottimizzazioni sono annullate fino all'analisi dettagliata!

Ho realizzato un Expert Advisor su MT4 in relazione ad Arom. Ho visto alcune differenze nei risultati, quindi ho fatto una revisione dettagliata del codice e ho trovato un errore grossolano. Non ho ancora trovato nulla di redditizio. L'esperimento continua.