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

 
Aleksey Mavrin:

Che argomenti, se fai così, significa che o tu non capisci qualcosa o io sì.

Il punto della mia sorpresa è che un modello addestrato, di cui stiamo parlando qui, deve essere addestrato sui dati grezzi.

Se ci sono correlazioni nei dati di input, devono essere ridotte a quelle non correlate.

Ecco un esempio: insegniamo al modello a classificare le tonalità di colore in base a 3 cifre - RGB. Tre cifre, questo è il puro dato grezzo!!! Nel vostro approccio avete bisogno di fare dei predittori come:

1- R 2-G 3-B - 4 Più rosso 5 - Più verde 6- Più rosso che verde e blu insieme .... 100500 Non così rosso come sarebbe se il verde fosse rosso come il blu. ))

Il modello non deve imparare da solo, ha i dati grezzi ed è a questo che serve!


E voi fate il contrario: moltiplicate i dati grezzi, che sono correlati tra loro.

Forse mi sbaglio, ma mi sembra che si possa ottenere un modello chiaro solo dividendo i segni in parti elementari (come le regole di registrazione). Torniamo allo stesso esempio con le candele

Abbiamo 45 possibilità che se il modello puro e unico è

open[-1]<low

e questo è tutto, non c'è altro in quelle 45 scelte. Ho fatto l'enumerazione, ho scelto una regola (una correzione) e la uso.

Tu suggerisci di prendere la "serie originale" perché "la rete la troverà", come capisco che nel tuo caso sarebbe :

open[1:2] ; high[1:2] ; low[1:2] ; close[1:2]

Quindi in poche parole,

Ho una cosa, un modellopulito sotto forma di una regola, un valore, nessun rumore.

Avete 4 righe (OHLC) con due valori per un totale di 8 valori, + rumore

Domanda: chi ha un campione più ridondante e correlato?

 
mytarmailS:


Ma voi state facendo il contrario - generando dati grezzi, correlati tra loro.

Forse mi sbaglio, ma mi sembra che si possa tirare fuori un modello puro solo rompendo i segni in parti elementari (per esempio regole di log). Torniamo allo stesso esempio con le candele

Abbiamo 45 possibilità che se il modellopuro e unico è

e questo è tutto, non c'è altro in quelle 45 scelte. Ho fatto l'enumerazione, ho scelto una regola (una correzione) e la uso.

Tu suggerisci di prendere la "serie originale" perché "la rete la troverà", come capisco che nel tuo caso sarebbe:

Quindi in poche parole,

Ho una caratteristica, un modellopulito sotto forma di una regola, un valore, nessun rumore.

Avete 4 righe (OHLC) con due valori per un totale di 8 valori, + rumore

Domanda: chi ha un campione più ridondante e correlato?

1. Probabilmente vi sbagliate.

2.3 Questo non accade perché la serie non è stazionaria. Hai appena adattato il modello alla serie, non è nemmeno chiaro cosa c'entri MO se si suppone che tu abbia "isolato un modello puro". Se ci fosse una regolarità così pura, il MO non sarebbe nemmeno inventato, si trova con altri metodi elementari.

4. Se come dici tu ha individuato una caratteristica - hai un modello al 100% sovra-addestrato=sotto-addestrato, al 100% cieco, che non vede nulla, e quindi al 100% "stupido", scusa la franchezza)

S.s. Viva il MO alle masse! )))

 
Aleksey Mavrin:

1. Probabilmente ti sbagli.

Ok, molto probabilmente hai ragione, ma penso che tu capisca che tutta questa descrizione con una regola era solo un esempio, per un'espressione più chiara del pensiero, naturalmente dovremmo fare un insieme di regole... Ed è interessante cosa è meglio, un insieme di 100 regole dure (statisticamente) o un insieme di 3000 regole più deboli (probabilistiche). Penso che se risolviamo il problema in modo diretto, cioè se ci alleniamo sui dati di input, la seconda variante è migliore a causa della stessa non stazionarietà, ma se vogliamo costruire un modello di mercato con proprietà stazionarie dovremmo probabilmente preferire la prima variante, anche se non necessariamente... Comunque, non voglio più discutere, mi hai convinto più che altro...

 
Aleksey Vyazmikin:

Non sono molto contento dei risultati. Ho raccolto una quantità decente di foglie, ma la prossima questione è come farle funzionare al meglio tra loro. Il fatto è che spesso si sovrappongono del 20%-50% o più, e quindi danno lo stesso segnale, che non è molto buono. L'idea è quella di raggrupparli e impostare una soglia di attivazione per ogni gruppo, e sto cercando di capire come farlo meglio.

La questione della selezione delle foglie non è risolta fino alla fine, anche selezionando le foglie che hanno mostrato buoni risultati in ciascuno dei 5 anni ci si può aspettare che il 20%-40% smetta di funzionare, il che è ancora più triste è l'incapacità di capire se spegnerle o meno - soprattutto per trimestri ha fatto il test, si è scoperto che le foglie non redditizie nel trimestre passato compensano la perdita nei trimestri successivi (molti).

Il metodo di selezione delle foglie sembra promettente, ma il processo è estremamente lento.

Un po' di necroposting per chiedere - perché non si può inizialmente costruire un albero basato sulla condizione di ottimalità di un portafoglio dalle sue foglie (più o meno come nella teoria di Markowitz)? Forse questo è già stato discusso da qualche parte, ma non l'ho visto.

 
Aleksey Nikolayev:

Un po' di necroposting per chiedere - perché non si può inizialmente costruire un albero basato sulla condizione di ottimalità di un portafoglio dalle sue foglie (più o meno come nella teoria di Markowitz)? Forse questo è già stato discusso da qualche parte, ma non l'ho visto.

Ho già scritto molte volte che gli algoritmi di costruzione di modelli MO disponibili non sono adatti al trading, per il motivo che non tengono conto delle sfumature delle serie temporali rumorose. Questo è evidente, per esempio, quando si usa un valore predittivo per la divisione, che dà una distribuzione preferenziale aggregata della probabilità di classificazione corretta su tutto il campione, ma questa distribuzione può essere causata solo da un evento raro che è raggruppato in una parte del campione. Ho esaminato le foglie campionate per la frequenza di attivazione e questo mi è apparso evidente.

Quindi sì - è possibile costruire inizialmente quello che ti serve, ma per farlo devi cambiare l'algoritmo di apprendimento (non ho abbastanza competenza nella programmazione qui), o stimare la casualità con metodi diversi, che è quello che faccio io. Anche se non capisco cosa si intende per"condizioni ottimali di portafoglio".

C'è un'altra variante - per selezionare gli intervalli di valori predittori che migliorano lo spostamento della probabilità di classificazione dell'obiettivo relativamente all'intero campione e fare predittori separati per loro - questa idea la sto implementando proprio ora, ma non so ancora quale sarà il risultato.

A proposito, non ricordo che ci sia stata alcuna discussione sulla suddivisione a griglia di un predittore in intervalli per un ulteriore uso nella costruzione di modelli ad albero, mentre mi sembra che questo argomento abbia aspetti importanti da discutere e influenzi direttamente la costruzione del modello e quindi il risultato finale.

 
Aleksey Vyazmikin:

Ho scritto molte volte che gli algoritmi di modellazione MO disponibili non sono adatti al trading

Devi intendere che la rappresentazione standard dei dati per i MO non è adatta al trading... Non è colpa di IR.

Aleksey Vyazmikin:


A proposito, non ricordo che ci sia stata alcuna discussione sul banding di una griglia di predittori da utilizzare successivamente nella costruzione di modelli ad albero

Cosa intendi per griglia di partizionamento?

 
Aleksey Vyazmikin:

Anche se non capisco cosa si intende per"condizioni di ottimalità del portafoglio".

Massimizzazione dei rendimenti del portafoglio ad un livello fisso (accettabile) di rischio (volatilità o drawdown).

Apparentemente sì, gli algoritmi dovranno cambiare. Si dovranno calcolare molte correlazioni tra le azioni di diverse foglie e potrebbe diventare molto costoso in termini di tempo.

Ho solo pensato che un tale argomento potrebbe essere stato discusso sul forum prima.

 
Aleksey Vyazmikin:

A proposito, non ricordo che ci sia stata alcuna discussione su una griglia di predittori per lo scoping nei modelli ad albero, che mi sembra un importante argomento di discussione e influisce direttamente sulla costruzione del modello e quindi sul risultato finale.

L'albero fa proprio questo, prende un range diverso da ogni predittore e controlla quale è migliore.

Il primo si divide a metà, il migliore a metà di nuovo, il migliore a metà di nuovo, ecc. e così via con ogni predittore. Il nodo diventa la migliore divisione di tutti questi pezzi su tutti i predittori.
Lo stai facendo manualmente? L'algoritmo lo fa perfettamente e rapidamente.

Aleksey Vyazmikin:

Ma questa distribuzione può essere causata solo da un fenomeno raro che è raggruppato in una parte del campione. Ho esaminato le foglie campionate per la frequenza di attivazione e mi è diventato ovvio.

È necessario cercare dei predittori che permettano di individuare questo raro fenomeno. Se ci sono predittori, allora i modelli standard più semplici troveranno tutto.

 
mytarmailS:

Probabilmente volevi dire che i tipi standard di presentazione delle informazioni per i MO non sono adatti al trading... Non è colpa del MO).

Ho detto quello che volevo dire - ci sono molte sfumature che non sono prese in considerazione nell'allenamento con i metodi comuni di costruzione dei modelli. Il problema può essere risolto affinando questi metodi, selezionando i risultati delle prestazioni e addestrando ulteriormente i predittori, forse ci sono altre opzioni, ma finora non le conosco.


mytarmailS:

Cosa significa griglia divisoria?

È un algoritmo che controlla la gamma di valori predittivi per la capacità predittiva e cerca di partizionare le parti della gamma in modo da allocare meglio la capacità predittiva. Supponiamo che ci sia un campione con 3 obiettivi, il campione è distribuito come 1 - 24%, 2 - 50%, 3 - 26%, e c'è qualche predittore con una gamma di valori, quindi l'obiettivo della griglia è quello di trovare aree di valori del predittore dove, diciamo l'obiettivo 1 sarà "predetto" da più del 24%, e la divisione evidenzierà questa area. Ci sono diverse varianti di algoritmi per costruire tali griglie.


Aleksey Nikolayev:

Massimizzazione dei rendimenti del portafoglio ad un livello fisso (accettabile) di rischio (volatilità o drawdown).

Apparentemente sì, gli algoritmi dovranno cambiare. Si dovranno calcolare molte correlazioni tra le azioni di diverse foglie e potrebbe diventare molto costoso in termini di tempo.

Mi è appena venuto in mente che un argomento simile potrebbe essere stato discusso prima sul forum.

Ora si tiene conto della correlazione delle attivazioni, le foglie condizionatamente correlate vanno nello stesso gruppo, ed è così che si crea un portafoglio. Ma un portafoglio ha una strategia di fondo, e bisogna farne molte per la stabilità. Le strategie semplicemente non dovrebbero sovrapporsi nell'attivazione sull'orizzonte temporale se vengono utilizzati gli stessi predittori. Questa è generalmente una cosa realistica da fare.


elibrario:

L'albero fa esattamente questo, prende un range diverso da ogni predittore e controlla quale è migliore.

La prima si divide a metà, la migliore metà ulteriormente a metà, il miglior quarto ulteriormente a metà, e così via con ogni predittore. Il nodo diventa la migliore divisione di tutti questi pezzi tra tutti i predittori.
Lo stai facendo manualmente? L'algoritmo lo fa perfettamente e rapidamente.

Dobbiamo cercare dei predittori che permettano di individuare questo raro fenomeno. Se ci sono predittori, allora i modelli MO standard più semplici troveranno tutto.

Cosa vuol dire che lo fa perfettamente? Non lo sto facendo manualmente, sto scrivendo uno script che lo farà come lo vedo ora.

Nel mio caso, l'ideale sarebbe una valutazione separata di ogni variante del valore del predittore. E, voglio unire gli intervalli di attivazione di un predittore che amplifica un obiettivo in un predittore, cosa che le maglie che conosco non fanno dividendo gli intervalli in modo sequenziale, allo stesso modo unendo il predittore nella classifica a spar (costruendo un nodo) con un altro predittore. In teoria, finora.

La figura qui sotto mostra il solito predittore per tempo - registrando letteralmente l'orologio, ho filtrato le attivazioni del predittore meno del 10% di deviazione di ogni obiettivo dell'intero campione. Risulta che per l'obiettivo Minus sono favorevoli le ore 18 e 19 e non favorevoli l'ora 15, otterrò un nuovo predittore con valore campione 1 - combinando i valori del predittore 18 e 19, -1 - valore 15 e 0 - tutti gli altri valori nell'output.

Che tipo di griglia di partizionamento aggregherebbe gli intervalli di split in un unico split, eliminando i valori intermedi, come nella figura sottostante i valori 1 e 4?


 
Aleksey Vyazmikin:

Ora si tiene conto della correlazione delle attivazioni, i fogli condizionatamente correlati vanno nello stesso gruppo, ed è così che si crea un portafoglio. Ma il portafoglio ha una strategia di fondo, e abbiamo bisogno di farne molte per la stabilità. Le strategie semplicemente non dovrebbero sovrapporsi nell'attivazione sull'orizzonte temporale se vengono utilizzati gli stessi predittori. Generalmente è realistico farlo.

Se, per esempio, tutte le strategie fanno solo BUY, si tratterà probabilmente di minimizzare la loro sovrapposizione nel tempo (minimizzazione delle correlazioni che sono sempre positive). Se BUY e SELL sono permessi, gli incroci temporali possono essere utili per compensare reciprocamente le parti cattive delle strategie (le correlazioni negative sono solitamente buone per il portafoglio).

Probabilmente, la correlazione può essere definita semplicemente attraverso il tempo di esecuzione delle strategie e il tempo della loro intersezione.