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

 
Maxim Dmitrievsky:
Non vedo il quadro completo del perché questo potrebbe funzionare.

Supponiamo che ci siano predittori casuali nel campione, in realtà rumore, l'obiettivo è quello di pulire il rumore.

Pensi che non migliorerà i risultati?

 
Aleksey Vyazmikin:

Supponiamo che ci siano predittori casuali nel campione, di fatto rumore, lo scopo è quello di pulire il rumore.

Pensi che non migliorerà i risultati?

È più facile prendere qualsiasi combinazione chip-obiettivo e filtrare i segnali per tempo fino a trovare un segnale stabile. E costruire un bot da tali modelli
 
Maxim Dmitrievsky:
È più facile prendere qualsiasi fascio chip-obiettivo e filtrare i segnali per tempo fino a trovare un segnale stabile. E costruire un bot da tali modelli

O non capisco il punto, allora scrivi più in dettaglio, o non capisco come l'azione proposta sia diversa dall'aggiungere al predictor_1 un ulteriore predictor_2, contenente informazioni sul tempo?

 
Aleksey Vyazmikin:

Ho pensato a come migliorare il metodo di selezione dei predittori/attributi/caratteristiche attraverso l'analisi del modello risultante.

Ho alcune idee per l'implementazione dell'algoritmo, ma ho deciso di condividerle con la comunità rispettata, forse ci saranno alcune critiche costruttive o aggiunte/rifinanziamenti all'algoritmo prima di iniziare a lavorare sull'implementazione di questo algoritmo. È interessante pensare che niente funzionerà con la giustificazione.


Selezione dei predittori per frequenza d'uso (Feature importance) durante la creazione di un modello CatBoost
.

L'idea è che ogni algoritmo ha le sue peculiarità di costruzione degli alberi e noi selezioneremo quei predittori che sono usati più spesso dall'algoritmo, in questo caso CatBoost.

Tuttavia, per stimare l'uniformità sulla scala temporale, useremo più campioni e aggregeremo i loro dati in un'unica tabella. Questo approccio setaccerà gli eventi casuali che hanno una forte influenza sulla scelta del predittore in uno dei modelli. Le regolarità su cui il modello è costruito dovrebbero verificarsi in tutto il campione, il che può facilitare una corretta classificazione sui nuovi dati. Questa caratteristica è applicabile ai dati del mercato, cioè ai dati senza completezza, compresa la ciclicità nascosta, cioè non temporale, ma basata sugli eventi. Nel fare ciò, è auspicabile penalizzare i predittori che non sono nel top 30%-50% in uno dei grafici, il che permetterà la selezione dei predittori che sono più frequentemente richiesti per i modelli su diversi orizzonti temporali.

Inoltre, per ridurre il fattore di casualità dovremmo usare modelli con diversi valori di Seed, penso che ci dovrebbero essere da 25 a 100 modelli di questo tipo. Se il coefficiente debba essere aggiunto a seconda della qualità del modello ottenuto o solo per fare la media di tutti i risultati per predittori - non lo so ancora, ma penso che dovremmo iniziare con quello semplice, cioè solo per fare la media.

La questione dell'utilizzo di una tabella di quantizzazione è importante, può essere cruciale nella selezione dei predittori. Se la tabella non è fissa, ogni modello creerà la propria tabella per il sottocampione, rendendo impossibile confrontare i risultati, quindi la tabella deve essere comune a tutti i campioni.

È possibile ottenere una tabella di quantizzazione:

  1. Impostando iperparametri per CatBoost sul tipo e il numero di partizioni in quanti dell'intero campione di allenamento, e salvando i risultati in csv.
  2. Impostare gli iperparametri per CatBoost per tipo e numero di partizioni in quanti selezionando una delle aree campione, diciamo la migliore, e salvare i risultati in csv.
  3. Ottenere una tabella utilizzando uno script separato che seleziona le scelte migliori da un insieme di tabelle.
Le tabelle precedentemente ottenute sono utilizzate per ogni campione attraverso il caricamento forzato delle tabelle durante l'allenamento.

La quantizzazione può essere fatta da voi stessi prima di alimentare il booster - tutto sarà sotto il vostro controllo.
Da 0 a 0,00005 = 0,00005 da 0,00005 a 0,00010 = 0,00010, ecc.

 
elibrarius:

Puoi quantificare te stesso prima di alimentare la spinta - tutto sarà sotto il tuo controllo.
Da 0 a 0,00005 = 0,00005 0,00005 a 0,00010 = 0,00010 ecc.

La terza opzione per ottenere una tabella di quantizzazione include anche la valutazione di tabelle di quantizzazione personalizzate, che io pre-generano. Gli esperimenti dimostrano che questa non è sempre l'opzione migliore. A proposito, visto che stiamo parlando di sequenze numeriche, quali altri passi si possono usare oltre a lineare, Fibonacci, esponenziale?

 
Aleksey Vyazmikin:

La terza opzione per ottenere una tabella di quantizzazione comprende anche la valutazione di tabelle di quantizzazione personalizzate, che io pre-generano. Gli esperimenti dimostrano che questa non è sempre l'opzione migliore. A proposito, visto che stiamo parlando di sequenze numeriche, quali altri passi se non lineare, Fibonacci, esponenziale?

Non ti bastano 3? Ho già triplicato il numero di esperimenti)) dove altro?
 
Aleksey Vyazmikin:

O non capisco il punto, allora scrivi in modo più dettagliato, o non capisco in che modo l'azione proposta differisce dall'aggiungere un ulteriore predictor_2 contenente informazioni sul tempo al predictor_1?

Ci sono ragioni per non scrivere i dettagli, ma appariranno prima o poi. Parti dello schema sono già state descritte qui. La vedo come l'unica opzione sensata, non legata a una selezione di attributi. Idealmente, gli attributi possono essere qualsiasi cosa, così come i tag. Il compito dell'algoritmo è di calibrare per loro, tenendo conto della componente temporale (filtrando i luoghi dove questi attributi non funzionano). Prove - la meta-etichettatura di Prado con alcune messe a punto di questo approccio. Siete in una steppa completamente diversa, quindi la comprensione potrebbe non nascere.
 
elibrarius:
Tre non ti bastano? Il numero di esperimenti è già triplicato)) cosa c'è ancora da fare?

Naturalmente non abbastanza :) Infatti, sto selezionando la tabella ottimale per ogni predittore, e più non c'è campionamento, meglio è. L'ultima versione dello script seleziona i migliori intervalli da tutte le tabelle e li combina in una tabella per ogni predittore.

 
Maxim Dmitrievsky:
Ci sono ragioni per non scrivere ancora i dettagli, ma verranno un giorno. Parti dello schema sono già state descritte qui. La vedo come l'unica opzione sensata, non legata a un guscio di attributi selezionati. Idealmente, gli attributi possono essere qualsiasi cosa, così come i tag. Il compito dell'algoritmo è di calibrare per loro, tenendo conto della componente temporale (filtrando i luoghi dove questi attributi non funzionano). Pruffs - La meta-etichettatura di Prado con alcune messe a punto di questo approccio. Siete in una steppa completamente diversa, quindi la comprensione può non nascere.

Sì, riguardo alla calibrazione dell'algoritmo, non è davvero chiaro. Anche se avete filtrato i posti nella formazione, come riconoscere questi posti nell'applicazione non è chiaro.

 

Un fan del film The Matrix?

Cosa ha a che fare questo con la matrice?
Leggo gente intelligente, si possono ottenere più informazioni in un'ora di lettura che in 10 anni di lettura di tutti i tipi di gonfiature da parte degli underdog d'oltremare...
e non così tanto...