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

 
Mihail Marchukajtes:

Mescolando tutti i dati, stiamo cercando di ottenere il vero potenziale da questo insieme, piuttosto che una fortunata coincidenza di ordine. Quando si mischiano i dati, si vede davvero cosa possono fare i dati... So....

Il punto è che il modello si adatta troppo se non si separano l'allenamento e il test nel tempo. Un esempio esagerato ma illustrativo: gli incrementi assoluti senza trasformazioni sono usati come predittori. Usiamo una finestra scorrevole di larghezza 15, cioè ogni volta che alimentiamo 15 predittori incrementali, e spostiamo un valore a destra. È più probabile che le classi delle stringhe vicine del dataset coincidano piuttosto che differiscano, cioè se la nesima stringa ha classe 1, allora la stringa n+1 avrà molto probabilmente classe 1. Le stringhe possono differire solo leggermente l'una dall'altra, la stringa n+1 differisce dalla nesima solo per un valore. Ci sono 14 valori corrispondenti. Quindi, se si prende la prima linea da tale set di dati per allenarsi, e la seconda per testare, la terza per allenarsi ecc., allora il modello funzionerà molto bene, perché ci sono molte linee in test che coincidono effettivamente con i valori su cui il modello è stato allenato in train. Solo l'OOS del modello farà schifo (se intendi l'OOS reale, che non include il test).
 
Vladimir Perervenko:

Quando si tratta di stimare i predittori utilizzando modelli, penso che il pacchetto più avanzato sia RandomUniformForest. Tratta in modo molto dettagliato l'importanza dei predittori da diversi punti di vista. Vi consiglio di dargli un'occhiata. In uno dei miei articoli l'ho descritto in dettaglio.

Ho rifiutato di usare la selezione dei modelli di predittori. Limitato alle specifiche del modello utilizzato.

Buona fortuna

Continuo a scrivere su qualcosa di completamente diverso: NON sono interessato all'intensità dell'uso dei predittori quando si costruisce un modello, poiché credo che il predittatore più "conveniente" per costruire un modello sia uno che ha poca relazione con la variabile obiettivo, poiché si possono sempre trovare valori "convenienti" in un tale predittatore e alla fine l'importanza dei predittori rifletterà la "convenienza" del modello quando lo si costruisce

Scrivo continuamente sulla capacità predittiva, l'impatto di ... del predittore sulla variabile obiettivo. Una delle idee è stata espressa sopra (informazione reciproca), ho espresso la mia idea su questo molte volte. Queste sono idee matematiche. Molto più efficaci sono le idee economiche, perché lì si possono scegliere predittori per la variabile obiettivo che sono in anticipo sulla variabile obiettivo.


Quindi di nuovo: non mi interessa l'IMPORTANZA della variabile per il modello, mi interessa l'IMPATTO del predittore sulla variabile obiettivo


PS.

Ho controllato il tuo pacchetto raccomandato: il risultato è quasi lo stesso.

 
Slasher111:
Il punto è che il modello si adatta troppo se non si separano il training e il test in base al tempo. Un esempio esagerato ma illustrativo: abbiamo incrementi assoluti come predittori, senza alcuna trasformazione. Usiamo una finestra scorrevole di larghezza 15, cioè ogni volta che alimentiamo 15 predittori incrementali, e spostiamo un valore a destra. È più probabile che le classi delle stringhe vicine del dataset coincidano piuttosto che differiscano, cioè se la nesima stringa ha classe 1, allora la stringa n+1 molto probabilmente avrà classe 1. Le stringhe possono differire solo leggermente tra loro, la stringa n+1 differisce dalla nesima solo per un valore. Ci sono 14 valori corrispondenti. Quindi, se si prende la prima linea da tale set di dati per allenarsi, e la seconda per testare, la terza per allenarsi ecc., allora il modello funzionerà molto bene, perché ci sono molte linee in test che coincidono effettivamente con i valori su cui il modello è stato allenato in train. Solo l'OOS del modello farà schifo (se intendi l'OOS reale, che non include il test).

Questa è un'ottima osservazione. Quell'incredibile, graal risultato che ho postato sopra a proposito del campionamento casuale per i test di apprendimento e le convalide è esattamente ciò che lo spiega. E se si escludono le osservazioni ravvicinate che si trovano in serie diverse, si ottiene tutto come ho fatto io: un disastro.

 
Mihail Marchukajtes:

Ricordate che ho detto che ho ricevuto un modello che ha guadagnato dal 31.01.2018 ad oggi, e questo è come questo modello si è comportato in queste due settimane dal 03.05.2018 ad oggi. Risultato del tester.

Abbastanza bene per una vecchia signora addestrata con 40 punti e che è stata in OOS per circa 1,5 mesi.

E questo è il suo OOS completo dal 31.01.2018

E tu pensi ancora che sia un fit???? Solo un promemoria che gli screenshot mostrano la sezione OOS.

Beh, dov'è il backtest normale? Hai colpito un trend rialzista in 3 mesi, sulle pause soffrirai

Dovresti prendere qualche cosa di semplice, come comprare ogni lunedì, ed essere sorpreso che funzionerà meglio del tuo quando il mercato sale.

 

Si controlla tutto per l'overtraining e per gli errori nel campione stesso, è ovviamente interessante per la statistica e per capire cosa fa l'algoritmo. ma l'idea finale è quella di prendere i soldi. quindi perché non controllare la prevedibilità nel test immediatamente? .... nel mio test risulta essere 50/50, ma a causa del fatto che ho impostato la variabile target nelle classi in cui l'alce è inferiore al profitto, risulta una crescita abbastanza regolare nel test. e a proposito, nel test è solo un solido avanti, la macchina è stata addestrata sui dati prima dell'inizio del trading.... Dovrei aggiungere che i più importanti sono i predittori di input, il loro numero e la loro reale capacità di descrivere l'obiettivo.

ecco un'immagineprova

 
Molti degli approcci discussi sono terribilmente superati, erano rilevanti negli anni '80...
 
Anatolii Zainchkovskii:

Si controlla tutto per l'overtraining e per gli errori nel campione stesso, è ovviamente interessante per la statistica e per capire cosa sta facendo l'algoritmo. ma l'idea finale è quella di prendere i soldi. quindi perché non controllare la prevedibilità nel test? .... nel mio test risulta essere 50/50, ma a causa del fatto che ho impostato la variabile target nelle classi in cui l'alce è inferiore al profitto, risulta una crescita abbastanza regolare nel test. e a proposito, nel test è solo un solido avanti, la macchina è stata addestrata sui dati prima dell'inizio del trading.... Dovrei aggiungere che i più importanti sono i predittori di input, il loro numero e la loro reale capacità di descrivere l'obiettivo.

Tuttavia il retraining è molto importante, perché per esempio nel boosting (foreste a gradiente) si può ottenere un modello con grande successo, ma in avanti sarà inutile, ma lo sapete voi stessi.

 
Laselezione dei predittori è importante, ma l'impalcatura non sa come modellare i fattori di relazione tra di loro, quindi è un adattamento muto, e una modellazione intelligente con variazioni nella forma delle relazioni variabili è purtroppo molto dispendiosa in termini di tempo
 
transcendreamer:

Il retraining è ancora un punto importante, perché, per esempio nel boosting (foreste a gradiente) si può ottenere un modello stupefacente, ma in avanti si otterrà una dissolvenza, ma si sa da soli

nessuno dice di usare per sempre, c'è un periodo in cui si può riqualificare e andare di nuovo)))

 
transcendreamer:
La selezione dei predittori è importante, ma le foreste non sanno come modellare i fattori di relazione tra di loro, quindi è un adattamento stupido, e la modellazione intelligente con la variazione in forma di relazioni variabili è purtroppo un affare che richiede molto tempo

E queste connessioni non possono essere trovate matematicamente, quindi è un adattamento stupido o uno studio di mercato :)

L'adattamento stupido è anche una cosa bella, in realtà, se si usa la generalizzazione.

Motivazione: