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

 
Maxim Dmitrievsky #:

Qual è il modo giusto di usare i risultati del CV dopo?

Ottimizzo gli iperparametri del modello (profondità dell'albero di apprendimento o numero di esempi nella foglia, numero di alberi, ecc.) e del dataset (numero di righe, combinazioni di caratteristiche possibili)

Eseguo tutte queste varianti e poi seleziono la migliore variante del modello e dei parametri del dataset in base al miglior risultato totale di valutazione in avanti. Penso che la convalida incrociata sia peggiore, mentre il rolling forward è una copia di ciò che accadrà nella realtà: commercio per una settimana, riallenamento per un'altra settimana, riallenamento di nuovo, ecc.

prendere i migliori parametri di modello trovati e poi addestrarli sull'intero set di dati

Non è logico allenarsi sull'intero set di dati.
Qual è la migliore profondità della storia, dovremmo continuare ad allenarci sulla stessa profondità. Il mio modello addestrato N volte su 50 000 linee di M5 (quasi un anno) può mostrare il 52% per la somma di tutti gli avanzamenti, se usiamo gli stessi parametri, ma con una differenza solo nella profondità della storia, cioè 70 000 o 30 000 linee, sarà meno del 50% per la somma di tutti gli avanzamenti.

La ragione è che le foglie non conterranno gli stessi esempi. Gli alberi possono avere più o meno foglie, ecc. Penso che per insiemi di dati di dimensioni diverse si dovrebbe cambiare la profondità o il numero di esempi nella foglia.

 
elibrario #:

Ottimizzo gli iperparametri del modello (profondità di formazione dell'albero o numero di esempi nella foglia, numero di alberi, ecc.) e del dataset (numero di righe, combinazioni di caratteristiche possibili)

Eseguo tutte queste varianti e poi seleziono la migliore variante del modello e dei parametri del dataset in base al miglior risultato totale di valutazione in avanti. La convalida incrociata è peggiore secondo me, valking forward è una copia di come sarà nella realtà: scambiato per una settimana - riqualificato, un'altra settimana, un altro riqualificato, ecc.

Sull'intero set di dati - illogico.
Qual è la migliore profondità della storia che hai, continuerai ad allenarti alla stessa profondità. Il mio modello addestrato N volte su 50 000 linee di M5 (quasi un anno) può mostrare il 52% della somma di tutti gli avanzamenti. Se usiamo gli stessi parametri, ma con una differenza solo nella profondità della storia, cioè 70 000 o 30 000 linee, sarà meno del 50% della somma di tutti gli avanzamenti.

La ragione è che le foglie non conterranno gli stessi esempi. Gli alberi possono avere più o meno foglie, ecc. Penso che per insiemi di dati di dimensioni diverse sia necessario cambiare la profondità o il numero di esempi nella foglia.

Beh, secondo me, il cv è necessario per valutare la qualità del dataset, non la robustezza di un particolare modello. Se l'errore medio su k-fold è accettabile, allora possiamo addestrare un modello su questo dataset e sarà anche buono. Possiamo prendere in prestito i parametri mediati dai modelli usati per il cv.
 
Maxim Dmitrievsky #:
Beh, a mio parere, cv è necessario per valutare la qualità del dataset, non la robustezza di un particolare modello. Se l'errore medio su k-fold è accettabile, allora possiamo addestrare il modello su questo set di dati e sarà anche buono. È possibile prendere in prestito i parametri mediati dai modelli utilizzati per il cv.
Dal set di dati prenderemo sempre pezzi diversi. Ottimizzerò sia il dataset (numero di linee e caratteristiche) che i parametri del modello.
 
Aleksey Nikolayev #:

È probabilmente possibile controllare ogni osservazione del test per vedere se è un outlier in qualche senso rispetto all'esame.

Ecco cosa sarebbe interessante sapere!

Il mio punto è che il mercato è volatile e ciclico, e in teoria qualsiasi modello, assumendo che gli eventi si ripetano (altrimenti non ha senso allenarsi), avrà un'alta precisione in diversi periodi della sua esistenza, ed è probabile che nelle sezioni di test ci sarà semplicemente un altro mercato, un'altra onda. L'allenamento viene fatto sui modelli più pronunciati, ma abbiamo il diritto di supporre che saranno altrettanto stabili! Penso che la qualità di un modello dipenda dai predittori che descrivono modelli stabili e quindi dovremmo allenarci su quegli esempi che sono tipici dei risultati in diverse parti del campione.

 
mytarmailS #:
È possibile farlo tramite modelli di legno...
Scomporre il modello in regole, analizzare le regole per le statistiche desiderate (ripetibilità, ecc...), vedere se la regola appare sui nuovi dati...

Il pacchetto "intrees" 5 righe di codice e vai

L'ho fatto per molto tempo con le foglie, ma non è del tutto corretto - non permette di rilevare esempi atipici in un campione.

 
Vladimir Perervenko #:

PacchettoNoiseFiltersR. Date un'occhiata all 'articolo.

Guardato l'articolo, per quanto ho capito questo pacchetto non dà risultati significativi - aumento di circa il 3%, ma è interessante - puoi spiegare il principio del suo lavoro?

 
elibrarius #:
Prenderemo sempre pezzi diversi dal dataset. Ottimizzo sia il dataset (numero di linee e caratteristiche) che i parametri del modello.

Dimenticavo, avete un colore/tipo di obiettivo della candela dell'ora corrente?

 
Aleksey Nikolayev #:

Mentre i predittori di rumore sono più o meno chiari, gli esempi di rumore non sono così buoni. Mi piacerebbe sapere di più su come sono definiti (in termini di teoria, non di nomi di pacchetti/funzioni utilizzati, anche se naturalmente ci sono sempre riferimenti ad articoli in R). È chiaro che ci dovrebbe essere una classe "non fare trading" quando si classifica, dato che sforzarsi di essere sul mercato tutto il tempo è considerato un errore. Ma non è molto chiaro come descrivere correttamente questa classe in forma più o meno formale.

Ci sono tre opzioni per elaborare gli esempi rumorosi: cancellare, ri-partizionare (correggere la marcatura) e creare una classe separata per gli esempi rumorosi. Dalla mia esperienza, circa il 25% del campione è "rumore". Il miglioramento della qualità è di circa il 5%, dipende dai modelli e dalla preparazione dei dati. Lo applico di tanto in tanto.

C'è un altro problema quando si usano i predittori: la loro deriva. E questo problema deve essere identificato e preso in considerazione sia nei test che nel funzionamento. Nell'appendice c'è una traduzione dell'articolo (cercatene altri in rete) e c'è un pacchetto di drifter. Non è l'unico. Ma il punto è che quando si selezionano i predittori bisogna considerare non solo la loro importanza ma anche la loro deriva. Per le alte derive scartare o trasformare, per le basse derive tenerne conto (fare delle correzioni) durante i test e il lavoro.

Buona fortuna

File:
Drift1.zip  2238 kb
 
Aleksey Vyazmikin #:

Dimenticavo, stai puntando al colore/tipo della candela oraria corrente?

Il colore della candela anche con un errore del 30% può essere perdente. Non sappiamo quanto profitto possiamo ottenere da esso... il colore è di solito ben indovinato nei movimenti lenti del prezzo (overnight), e 1 candela giornaliera forte mancata può valere 10 piccole candele overnight. Penso che indovinare il colore dei candelieri sia di nuovo un'uscita casuale (a causa delle dimensioni casuali).
Ecco perché ho fatto la classificazione con TP, SL. Se sono uguali, allora il 52% dei trade di successo sono già redditizi. Se TP=2*SL. Allora >33% delle operazioni di successo saranno redditizie. Il meglio che ho avuto è il 52-53% di trade di successo con TP=SL in 2 anni. Ma in generale, sto pensando di usare la regressione con TP/SL fisso. Più precisamente, sto pensando di fare una classificazione basata sulla regressione.
 

Non sono stato sul forum per alcuni anni ed è ancora lì, come nella canzone: "Quello che eri, quello che sei rimasto, aquila della steppa, cosacco focoso...".

La statistica inizia con un assioma che, essendo un assioma, non viene discusso:


"Entrano i rifiuti, escono i rifiuti".


In linea di principio, non ci sono e non possono esserci metodi matematici che possono fare un dolce dalla spazzatura. O c'è un insieme di predittori che PREVENGONO l'insegnante, o non c'è.

E i modelli non giocano praticamente nessun ruolo, né le convalide incrociate e altre perversioni ad alta intensità di calcolo.


PS.

A proposito, l'"importanza" dei predittori nel modello non ha niente a che vedere con la capacità di prevedere l'insegnante.