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

 
Aleksey Nikolayev:

O qualcosa come un portafoglio di fogli di sistema con un ricalcolo continuo.

Cosa dovrei ricalcolare esattamente?

 
Aleksey Nikolayev:

O qualcosa come un portafoglio di sistema con ricalcolo a scorrimento.

Allora è un multiclasse. Fate un 2° modello che scelga quale foglio è meglio scambiare al momento. I vantaggi non sono evidenti e sono più difficili da realizzare.

 
Maxim Dmitrievsky:

Beh, bisogna iniziare con la teoria. Per esempio, che senso ha selezionare i modelli separatamente per la vendita e per l'acquisto?

Tutto ciò che non è comprare è vendere, e viceversa.

La mia ideologia è il miglioramento della strategia di trading di base, la strategia è trend following; quindi non prevede i lanci a vuoto -entrate a mercato dal piatto, e il "Do Not Enter" elimina essenzialmente le false rotture di flop.

Inoltre, ho sperimentato modelli per la chiusura di posizioni redditizie vicino ai picchi ZZ lunghi e il risultato non è stato soddisfacente, cioè o la capacità predittiva è inferiore lì o i miei predittori non funzionano bene lì, o forse sono entrambi, quindi non uso la strategia di inversione. Al contrario, penso che sia meglio allenare due modelli diversi.

Maxim Dmitrievsky:

Quando puoi semplicemente filtrare le voci attraverso una soglia più alta. Alla classe "non commerciare" può essere dato un peso eccessivo dal modello, facendo diminuire l'errore del modello e la capacità predittiva (generalizzazione) in generale.

Quasi questo approccio, con classificazione binaria per commerciare/non commerciare dove è specificato da una soglia del modello, lo uso nei miei esperimenti con CatBoost, ma il problema è che il modello è costruito come un aspirapolvere che aspira tutto ciò che è buono e cattivo e l'output è un modello veloce ma con un basso numero di input.

Maxim Dmitrievsky:

Il punto del secondo modello è che il primo avrà errori del 1° e 2° tipo - falso positivo e falso negativo. Siamo interessati a rimuoverli. Per farlo, si inseriscono le stesse caratteristiche nell'input del secondo modello e nell'output del commercio del primo modello, dove 0 - il commercio era redditizio, 1 - il commercio era in perdita. Addestrare il secondo classificatore e fare trading solo quando mostra 0, cioè filtrare i segnali del 1° modello. Le transazioni in perdita quasi spariranno sul vassoio, devi testarlo sul test - questo è uno.

Puoi addestrare il secondo modello non solo su un vassoio, ma anche catturare OOS, poi correggerà i trade sui nuovi dati - sono due. E poi i test.

Questo è esattamente quello che ho fatto, solo che non ho usato predittori non collegati, ma già fogli come predittori, dove 1 è il segnale dal foglio nel predittatore, e le risposte di classificazione corrette nel target. Naturalmente, il mio metodo non permette di trovare nuove relazioni di predittori, ma permette di cercare relazioni tra relazioni esistenti.

Proverò anche il tuo metodo, grazie. Tuttavia è possibile realizzarlo in questo concetto solo come modello CatBoost, per risparmiare tempo, ma ho paura che possa tagliare di nuovo tutto troppo.

 
Maxim Dmitrievsky:

allora è una multiclasse. Fate un 2° modello che scelga quale foglio è meglio scambiare al momento. I vantaggi non sono ovvi e più difficili da realizzare.

No, ci sono troppi fogli, tale classificazione non funziona...

 
Aleksey Vyazmikin:

La mia ideologia è il miglioramento della strategia di trading di base, mentre la strategia è trend following, quindi non prevede capovolgimenti in un posto vuoto - entrate nel mercato da piatto, e "Do Not Enter" elimina essenzialmente le false rotture piatte.

Inoltre, ho sperimentato modelli per la chiusura di posizioni redditizie vicino ai picchi ZZ lunghi e il risultato non è stato soddisfacente, cioè o la capacità predittiva è inferiore lì o i miei predittori non funzionano bene lì, o forse sono entrambi, quindi non uso la strategia di inversione. Al contrario, penso che sia meglio allenare due modelli diversi.

Quasi questo approccio, con classificazione binaria per commerciare/non commerciare dove è specificato da una soglia del modello, uso nei miei esperimenti con CatBoost, ma il problema è che il modello è costruito come un aspirapolvere che aspira buoni e cattivi e l'output è un modello intelligente con un numero troppo piccolo di voci.

Quindi questo è esattamente quello che ho fatto, solo che non ho usato predittori disaggregati, ma fogli come predittori, dove 1 è il segnale del foglio nel predittatore, e le risposte di classificazione corrette sono nel target. Naturalmente, il mio metodo non permette di trovare nuove relazioni di predittori, ma permette di cercare relazioni tra relazioni esistenti.

Proverò anche il tuo metodo, grazie. Tuttavia, è possibile realizzarlo nel concetto dato solo come modello CatBoost, probabilmente, per risparmiare tempo, ma ho paura che taglierà fortemente tutto di nuovo.

Le inversioni non dovrebbero essere tali, saranno solo filtrate dai falsi segnali del 2° modello. Beh, dipende dall'implementazione e da ciò che si vuole.

Allora è strano perché ci sono molti trade perdenti, o è un'immagine OOS? Sì, per usare il 2° modello ci dovrebbero essere molte offerte da filtrare, si possono anche aggiungere artificialmente delle offerte per questo (oversampling)

 
Maxim Dmitrievsky:

Non ci dovrebbero essere inversioni in quanto tali, si limita a filtrare i falsi segnali con il 2° modello. Beh, dipende dall'implementazione e da ciò che si vuole.

Allora è strano perché ci sono molti trade perdenti, o è un'immagine OOS? Sì, dovremmo avere un sacco di trade per filtrare il 2° modello, possiamo anche aggiungere artificialmente dei trade per questo (oversampling)

Le schermate di cui sopra erano test su dati che non sono stati coinvolti in alcun modo nella formazione del modello.

Ecco i risultati della formazione, screenshot - il primo è la mia compilazione di fogli sui dati che sono stati utilizzati per la formazione (solo 1/5 sezione è stata presa)

Notate che ci sono 52,86% di operazioni lunghe redditizie

Abbiamo aggiunto un albero basato sulle risposte di altri fogli.

E i risultati sono migliorati, le operazioni lunghe redditizie sono diventate il 79,56%.

Per riassumere, l'approccio funziona nel complesso, ma l'output quando viene applicato nella vita reale non è così grande - il motivo è che probabilmente alcuni dei fogli usati per l'apprendimento non portano connessioni stabili o queste connessioni sono poche. Ogni foglio ha un tasso di risposta nella regione dell'1%-3% per campione.

 
Un'altra opzione penso sia provare la regressione piuttosto che la classificazione, e isolare esattamente le combinazioni di foglie ad alto rendimento, forse ci sarà un effetto migliore in termini monetari.
 
Aleksey Vyazmikin:

Le schermate di cui sopra erano test su dati che non sono stati coinvolti in alcun modo nell'addestramento del modello.

Ecco i risultati dell'addestramento, gli screenshot sono il mio primo layout dei fogli sui dati su cui è stato addestrato (è stato preso solo il segmento 1/5)

Notate che ci sono 52,86% di operazioni lunghe redditizie

Abbiamo aggiunto un albero basato sulle risposte di altri fogli.

E i risultati sono migliorati, le operazioni lunghe redditizie sono diventate il 79,56%.

Per riassumere, l'approccio funziona nel complesso ma l'output quando viene applicato nella vita reale non è così grande - il motivo è che probabilmente alcuni dei fogli usati per l'apprendimento non portano connessioni stabili o queste connessioni sono poche. Ogni foglio ha un tasso di risposta nell'ordine dell'1%-3% per campione.

Beh, se si cerca solo di migliorare quello che si ha, questa è l'opzione Folds. Suddividetelo in diversi pezzi e allenate il 1° su alcuni pezzi e il 2° sul resto. Ho fatto fino a 500 falli. Si può fare meno, naturalmente. Una sorta di miglioramento.

 
Maxim Dmitrievsky:

Beh, se si cerca solo di migliorare quello che si ha, questa è l'opzione con i falli. Suddividetelo in diversi pezzi e allenate il 1° su alcuni pezzi e il 2° su altri. Ho fatto fino a 500 falli. Si può fare meno, naturalmente. Dà qualche miglioramento.

Dividere il campione in pezzi e addestrare più modelli, o cosa?

Anche se il mio campione è solo di circa 14 000 linee...

 
Aleksey Vyazmikin:

Dividere il campione in parti e addestrare più modelli, o cosa?

Ho solo un campione di circa 14.000 linee, però...

Ho scritto sopra. Il modello di base su una metà dei pezzi, il secondo modello correttivo sull'altra

5-10 falli saranno sufficienti, forse di più
Motivazione: