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

 
Alexey Burnakov:

C'è una cimice in quello che state facendo.

Tuttavia, si dovrebbe anche provare il campionamento ritardato. Questo è un classico. Addestrare, testare, convalidare.

E rendere la procedura ancora più complicata. Per ogni modello che funziona bene in termini di addestramento e test, chiamiamolo modello X, fate una convalida sui dati ritardati. Si ottiene così un'idea se si sta scegliendo il modello correttamente o meno, utilizzando solo l'allenamento e il test. Fai molti modelli con diversi parametri, scegli i migliori (10, 100, 1000). Fallire. Capirete se la vostra metrica "migliore" si riflette nei dati futuri oppure no. Solo dopo andare in battaglia.

Se ci sono molti valori della stessa variabile casuale, si possono contare gli intervalli di confidenza e poi invece di "valori vicini" operare su "intersezione/convergenza degli intervalli di confidenza".
 
mytarmailS:

puoi vedere il risultato del trading di ieri?

E questo è per oggi. Non senza errori, naturalmente, ma alla fine anche....

 
Mihail Marchukajtes:

E questo è per oggi. Non senza errori, naturalmente, ma alla fine è abbastanza anche....

Non male, cosa sono i cerchi verdi e cosa significano le frecce?

 
SanSanych Fomenko:
Se ci sono molti valori della stessa variabile casuale, si possono contare gli intervalli di confidenza e poi invece di "valori vicini" operare "intersezione/convergenza degli intervalli di confidenza".

SanSan, lasciami spiegare di nuovo. E penso che sarà più chiaro per tutti.

La tabella qui sotto è un registro dell'esperimento. Ogni esperimento è scritto in una tabella. Prima della colonna J ci sono le variabili. Modello, formazione della funzione di perdita, strumento, orizzonte di previsione, parametri del modello (GBM), parametri che non sono ottimizzati in caret, ma li ottimizzo anche in loop: numero di falli crossvalidi, numero di predittori selezionati per la formazione, randomizzazione dell'albero, taglio di una parte delle previsioni che sono nella zona grigia di incertezza.

Poi vengono le mie metriche di qualità: sulla formazione (intera matrice di 10 anni), sui fallimenti dei test crossvalid, e sui campioni ritardati. Ha segnato in rosso le colonne più interessanti.

Il prossimo. Posso mostrarvi i migliori modelli che hanno fatto una grande differenza sui campioni in differita. Ma - è una misura difficile!

Con dati coerenti e un metodo di allenamento adeguato, mi aspetto semplicemente di ottenere una relazione tra la metrica sui campioni differiti e la metrica sulla crossvalidazione (test). Vediamo cosa ho ottenuto:

Oggettivamente - la qualità dei modelli selezionati sul campione differito (che emula un periodo di trading reale) è quasi estranea alla metrica di qualità sul test (falli del test di crossvalidazione).

Conclusione, amici: se scelgo il modello migliore secondo la seguente euristica "il modello deve essere migliore sul test", ottengo zero certezze su come il modello si comporterà in futuro.

Questa definizione si estende a tale scenario: scelgo un modello secondo l'euristica "il modello migliore mostrerà una buona qualità su un campione in ritardo"; tale scelta, amici, porterà anche all'incertezza. Tutto è probabilistico, certo, si può essere fortunati, ma non si può imbrogliare la statistica.

Questo e solo questo è il vantaggio del campionamento ritardato. Controllo delle prestazioni del modello, controllo dell'euristica di selezione del modello migliore.

PS: Sto pensando a come migliorare il risultato. In senso buono, avete bisogno di una nuvola inclinata elittica. Da esso si possono prendere commissioni dal bordo destro, ecc. e in media funzionerà.

 

Bel toolkit che hai sviluppato per valutare l'euristica, solido. Avete dimostrato che il modo che avete sviluppato per addestrare il modello (comitato) non è adatto al forex, ma poi?

È necessario trovare un modo per costruire un modello in modo che ci sia una correlazione tra i risultati sui dati di allenamento, i risultati sul test e i risultati sul campione in sospeso.

Ho una situazione simile, per esempio sto provando diversi modi di preprocessing dei dati, diversi pacchetti per l'addestramento/predizione, diverse funzioni per valutare la qualità della predizione. È tutto importante, e ci sono infinite combinazioni di tutto questo. Cerco di attenermi alla regola del rasoio di Occam: meno predittori sono necessari e meno parametri ha un modello, meglio è.

 

Anche la mia opinione soggettiva è che i tuoi predittori non possono essere usati per prevedere i tuoi valori target. Almeno lavorando con il tuo file dat_train_final_experimental1.csv - non posso ottenere un risultato positivo per la mia funzione di fitness quando si adattano i parametri gbm. Cioè, qualunque modello, con qualunque parametro io costruisca - non sono soddisfatto dei risultati sulla crossvalidation. Non posso provarlo, è solo la mia opinione personale, consiglio di prendere più predittori e cercare di diminuire il loro numero quando si costruisce un modello.

Per esempio nella mia tabella di allenamento ci sono 150 predittori per ogni barra, 100 barre in totale, il totale di 15000 predittori. Poi uso la genetica per cercare i predittori e i parametri del modello cercando il miglior risultato della funzione fitness. In questo modo seleziono quei predittori che sono legati ai valori target e sui quali il modello può prevedere. Alla fine della selezione mi rimangono solo 10-20 predittori. Il risultato della funzione di fitness è necessariamente leggermente ridotto per ogni predittore utilizzato. Ieri ho scritto il codice R approssimativo della funzione di fitness qui sul forum, è più chiaro lì.

 
mytarmailS:

non male, cosa sono i cerchi verdi e cosa significano le frecce?

I punti verdi mostrano che il segnale sarà, ogni serie di punti verdi termina con un punto blu o rosso, il che significa che i Sequents segnalano di comprare o vendere in modo corrispondente. Bene, le frecce sono il lavoro del classificatore di Reshetov, che dice vero segnale o falso uno....

A proposito, Sequenta è atacha, usalo a tuo vantaggio....

File:
 
Dr.Trader:

È anche la mia opinione soggettiva che i vostri predittori non possono essere utilizzati per prevedere i vostri valori target.

Mi sembra di essere stato in grado di articolare meglio questo -

I risultati di predizione sui campioni di addestramento stessi sono scarsamente correlati, in media, con i risultati sui campioni di test.

C'è un pacchetto ForeCA, e ha una funzione Omega che stima la "prevedibilità" del segnale. Se stima il 100% - il segnale soddisfa alcuni requisiti ed è facile da prevedere. Un punteggio di 0% significa che il segnale è solo rumore e impossibile da prevedere.

Ho ancora la tua tabella dat_test_features_experimental.RData, dove l'ultima colonna è l'aumento di prezzo. Per esempio la stima per eurusd = 0,83% (non 83%, esattamente 0,83%, meno di uno). Secondo ForeCA è impossibile prevedere questa serie temporale. Non che mi fidi molto di questo pacchetto, ma il suo autore ovviamente capisce qualcosa, lo ascolterei.

Omega(dat_test_features[dat_test_features[,109] == "eurusd", 110])

Non ricordo il timeframe con cui stai lavorando, ma se è M1 - c'è una buona ragione per provare di più, H1 per esempio.

 
Dr.Trader,

Ho capito. Sto lavorando con un orizzonte di alcune ore.

Sulle minute la regressione funziona bene, ma manca il MO del mestiere. All'ora la differenza assoluta di prezzo è di circa 8 pip. Che diamine.... Vedi? Hai bisogno di una precisione di indovinare del 65_70%. E alle 9 il 53-53% è sufficiente per sovrastare lo spread.
 
Dr.Trader:

...

C'è un pacchetto ForeCA, e ha una funzione Omega che valuta la "prevedibilità" del segnale. Se stima il 100% - il segnale soddisfa alcuni requisiti ed è facile da prevedere. Un punteggio di 0% significa che il segnale è solo rumore e impossibile da prevedere.

...

Cosa significa "prevedibilità" in questo pacchetto? Pensavo che intendesse la capacità di estrapolare (è la parola giusta) i valori precedenti. Se prendiamo gli incrementi, allora il più ampio strumento applicabile, molto ben elaborato con un sacco di sfumature: ARIMA, se questo modello non passa, allora tutti i tipi di ARCH. E il pacchetto ForeCA deve essere confrontato con questi modelli.

In generale mi sembra che l'idea originale si sia persa. Per me l'idea originale era che abbiamo bisogno di metodi che NON dipendono dal modello per determinare la capacità di ciascuno dei predittori usati per predire la variabile obiettivo. Assicuratevi di farlo nel nesso predittore(i)/variabile obiettivo. E quando abbiamo schermato il rumore, usiamo i modelli o i loro comitati ..... Ma solo dopo che il rumore è stato eliminato. E il fatto che non ci sia rumore è determinato dall'invarianza approssimativa delle prestazioni del modello attraverso i campioni. Non il valore assoluto dell'errore di predizione, ma il fatto dell'uguaglianza approssimativa degli indicatori di prestazione, che (l'uguaglianza) può essere interpretata come la prova dell'assenza di sovrallenamento del modello. L'assenza di sovrallenamento è il nostro tutto. Se il modello è sovrallenato su un dato insieme di predittori, allora tutto il resto è un gioco di numeri. Solo i modelli che non sono stati riqualificati sono interessanti.