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

 
Andrey Dik #:

Sì, la questione è sempre quella di garantire la robustezza del modello su nuovi dati. Per questo ho detto che trovare un criterio di questo tipo è uno dei più importanti e difficili.

Intendo dire che le metriche di valutazione dei risultati che siamo abituati a utilizzare nel trading e nell'apprendimento automatico sono solo una parte della valutazione della qualità del modello/tuning/approssimazione risultante.

L'importante è capire in quali condizioni abbiamo ottenuto questo risultato. Quante informazioni sono state necessarie per ottenerlo. Dobbiamo valutare la stabilità delle osservazioni nel tempo. Il contributo di ciascun predittore.

Il problema dei modelli complessi con un gran numero di predittori e regole decisionali (che siano alberi o neuroni) è che creano modelli complessi che difficilmente si ripetono nella loro interezza, da cui la distorsione della probabilità di assegnazione a una delle classi. In precedenza ho pubblicato un'immagine di "ciò che gli alberi stanno ronzando" che mostrava che la maggior parte delle foglie semplicemente non si attiva su nuovi dati.

Tutto ciò deriva dal fatto che abbiamo a che fare con una "funzione" (in realtà la loro somma) che non può essere completamente esplorata per approssimarla. Ciò significa che dobbiamo prestare particolare attenzione solo a quelle che sono più comprese/conosciute. È meglio lasciare che il modello "taccia" sui nuovi dati, poiché non conosce la situazione, piuttosto che operare su singoli casi del passato.

Si pone quindi la questione di come far tacere il modello se non è sicuro e dare fiducia se la probabilità di eventi favorevoli è alta.

Abbiamo bisogno di metodi per correggere i modelli già pronti. Questi possono essere implementati influenzando il modello dopo l'addestramento, oppure applicando modelli di due classi - uno del tipo bousting e l'altro del tipo nearest neighbours.

 
Aleksey Vyazmikin #:

Il punto è che le metriche di valutazione dei risultati che siamo abituati a usare nel trading e nell'apprendimento automatico sono solo una parte della valutazione della qualità del modello/tuning/approssimazione risultante.

Ciò che è importante è in quali condizioni abbiamo ottenuto questo risultato. Quante informazioni sono state necessarie per ottenerlo. Dobbiamo valutare la stabilità delle osservazioni nel tempo. Il contributo di ciascun predittore.

Il problema dei modelli complessi con un gran numero di predittori e regole decisionali (siano essi alberi o neuroni) è che creano modelli complessi che difficilmente si ripetono nella loro interezza, da cui la distorsione della probabilità di assegnazione a una delle classi. In precedenza ho pubblicato un'immagine di "ciò che gli alberi stanno ronzando" che mostrava che la maggior parte delle foglie semplicemente non si attiva su nuovi dati.

Tutto ciò deriva dal fatto che abbiamo a che fare con una "funzione" (in realtà la loro somma) che non può essere completamente esplorata per approssimarla. Ciò significa che dobbiamo prestare particolare attenzione solo a quelle che sono più comprese/conosciute. È meglio mantenere il modello "silente" sui nuovi dati, poiché non conosce la situazione, piuttosto che operare su singoli casi del passato.

Si pone quindi la questione di come rendere il modello silenzioso se non è sicuro, e dare fiducia se la probabilità di eventi favorevoli è alta.

Abbiamo bisogno di metodi per correggere i modelli già pronti. Questo può essere attuato attraverso l'impatto sul modello dopo l'addestramento, oppure applicando modelli di due classi - uno del tipo bousting e l'altro del tipo K nearest neighbours.

Ho realizzato modelli precedenti che hanno semplicemente smesso di fornire segnali di trading nel corso del tempo. E sì, questo è meglio che spostare la probabilità di risposte corrette a 50/50 sui nuovi dati. Il punto è che quando ci si allena per ottenere le risposte della griglia in un intervallo ristretto di numeri, col tempo le risposte iniziano a uscire dall'intervallo e i segnali scompaiono. Si tratta di un processo molto laborioso, non sono riuscito ad automatizzare l'addestramento e il successivo trading.

Questo è uno degli approcci, probabilmente ce ne sono altri, è necessario studiare questo argomento.

 
Andrey Dik #:

L'essenza: durante l'addestramento per ottenere le risposte della griglia in un intervallo ristretto di numeri, col tempo le risposte iniziano a uscire dall'intervallo e i segnali scompaiono. Si tratta di un processo molto laborioso, non sono riuscito ad automatizzare completamente l'allenamento e il trading successivo.

Ho implementato questa idea con l'aiuto dell'ottimizzatore MT5:

ho impostato una condizione per il mio pseudo-neurone: "Aprire BUY se il risultato del set dà un numero nell'intervallo Close[1] +/- 0,00050 pips."
Input - un solo numero - Close[2];

L'ottimizzatore inizia a cercare intensamente le operazioni redditizie, ma invece ordino i set in base al numero di operazioni.

Quando l'ottimizzatore ha finito, si sceglie il set più drenante con il maggior numero di operazioni - naturalmente significa che l'Expert Advisor ha indovinato il numero massimo di prezzi futuri.

Poi passo alla modalità di test, dove la condizione è già stata modificata:"Aprire BUY se il risultato dell'insieme dà un numero superiore a Close[1] di N punti"

Voilà: il forward è redditizio in un anno.

Un problema: ha funzionato solo con una candela oraria alle 2 del mattino. Chiusura - all'apertura dell'ora successiva.

In qualche modo ho trovato un modello simile. Ha funzionato su EURUSD, USDCHF e EURGBP in un'altra ora del mattino.

 
Andrey Dik #:
risposte della griglia in un intervallo ristretto di numeri

Stiamo parlando di NS o di un'altra griglia?

Andrey Dik #:
Nel corso del tempo le risposte iniziano a uscire dall'intervallo e i segnali scompaiono.

È a causa della variazione dei totali dei predittori, o forse solo uno ha smesso di mostrare il risultato "desiderato"?

In generale, la domanda sul perché qualcosa si è rotto può essere molto importante per ulteriori idee.

 
Aleksey Vyazmikin #:

1. Stiamo parlando di NS o di una griglia diversa?

2. È a causa della variazione dei punteggi totali dei predittori, o forse solo uno di essi ha smesso di mostrare il risultato "desiderato"?

In generale, la domanda sul perché qualcosa si è rotto può essere molto importante per ulteriori idee.

1. Sì, naturalmente.

2. Forse non mi sono espresso nel modo giusto. No, si trattava solo di un effetto positivo: il trade si sarebbe gradualmente annullato con l'arrivo di nuovi dati. Non appena il numero di operazioni scendeva al di sotto di un determinato livello per unità di tempo, era necessario allenarsi di nuovo. Cioè, non una diminuzione dell'efficienza del trading su OOS come segnale di riqualificazione, ma una diminuzione del numero di operazioni.

In altre parole, invece di dire sciocchezze sulle perdite del trading su OOS, il NS risponde con il silenzio su dati sconosciuti.

 
Aleksey Nikolayev #:
Il tuo link parla anche di collegare il "profilo" alla convalida incrociata, per la quale potrebbe essere più facile trovare pacchetti.

Non vedo il collegamento qui. Da quali parole deriva?

 
Forester #:

Il lavoro è sperimentale. Ecco una citazione da http://www.ccas.ru/frc/papers/students/VoronKoloskov05mmro.pdf

È improbabile che ogni esperimento sia stato creato come un pacchetto.

Oh, e l'esperimento è artificiale. Il rumore è stato aggiunto alla serie di dati chiaramente separati per classi. E la chiara separazione è solo per una caratteristica: l'asse Y. Se rimuoviamo il rumore (tutti i dati da 0,2 a 0,8), si scopre che rimangono solo gli esempi con una distanza da un'altra classe non inferiore a 0,6. Intendo la terza variante più complicata dell'immagine:


Andate nella vita reale e aggiungete i vostri 5000 predittori che saranno rumore a questa singola scheda di lavoro. Nel clustering si calcola la distanza totale tra i punti in questo spazio dimensionale di 5001. 0,6 non sarà mai trovato in questo caos.

Penso che qualsiasi classificatore lo farà meglio, lo stesso albero troverà questa singola caratteristica e la dividerà, prima attraverso 0,5 e poi raggiungerà spaccature di 0,2 e 0,8 seguite da foglie con il 100% di purezza.

Si sostiene che con questo algoritmo sia stato possibile conquistare i primi posti su kagle, non credo che ci siano stati compiti semplici....

Vogliamo provare a capirlo? Non capisco le formule - con mio grande dispiacere.

 
mytarmailS #:
Uno degli articoli di Vladimir Perervenko descriveva questo metodo, e c'era un esempio con un codice, naturalmente.

Ho imparato a conoscere questo algoritmo dal video, ci sono alcune formule sulla slade - è difficile chiamarlo codice.

Dove hai visto un esempio di codice?

 
Andrey Dik #:

1. Sì, certo.

2. Forse non mi sono espresso in questo modo. No, si trattava solo di un effetto positivo: il trade si sarebbe gradualmente annullato con i nuovi dati. Non appena il numero di trade scendeva al di sotto di un determinato livello per unità di tempo, era necessario allenarsi di nuovo. In altre parole, non si tratta di una diminuzione dell'efficienza del trading su OOS come segnale di riqualificazione, ma di una diminuzione del numero di operazioni.

In altre parole, invece di dire sciocchezze sulle perdite del trading su OOS, il NS risponde con il silenzio su dati sconosciuti.

Questo è ciò che ho capito. Chiedo solo se la causa di ciò è stata identificata. Non si tratta di cosa sia rotto, ma del motivo per cui i segnali mancano.

 
Aleksey Vyazmikin #:

Ho imparato a conoscere questo algoritmo dal video, ci sono alcune formule sulla slade - è difficile chiamarlo codice.

Dove hai visto un esempio di codice?

È una trollata?