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

 
fxsaber #:

Varia, ovviamente. Ma molto spesso si può notare un crollo subito dopo il Campione. Forse si tratta di una distorsione cognitiva, quando si presta maggiore attenzione a qualcosa e si ha l'impressione che si verifichi troppo spesso.

Se si verifica spesso, allora non ci dovrebbe essere alcun problema di cambiamento dei modelli globali, altrimenti il punto di rottura sarebbe intorno alla stessa data.

Ma forse, a livello puramente statistico, la frequenza del loro verificarsi cambia. Cioè, i vecchi modelli continuano a funzionare, ma ce ne sono di nuovi per il modello, che non sono stati incontrati in precedenza per una serie di motivi - soprattutto, non erano presenti durante l'addestramento. Ad esempio, la volatilità è cambiata in modo significativo e il codice (predittori condizionali) ha alcuni valori fissi, oppure ci sono poche osservazioni per tale volatilità - era stabile per tutto il tempo durante l'addestramento o in altri intervalli. In altre parole, nuove osservazioni crescono nel campione (se vengono raccolti nuovi dati): in questo caso abbiamo bisogno di un meccanismo per rilevare la comparsa di tali eventi.

Può accadere anche il contrario: quando una strategia è costruita su eventi rari e il trend dura più di un anno. Recentemente mi è stato mostrato un tale miracolo di costruzione di un EA.

La persona aveva visto solo la storia del comportamento dell'EA dal 2016 inizialmente (crescita dell'oro) e si lamentava che qualcosa si era rotto e che era necessario ottimizzare la giusta ripartizione del grafico con l'aiuto di MO.

Sotto il cofano si è scoperto che una dozzina di indicatori, ognuno dei quali dava una media di 100 segnali, cioè in realtà si trovavano emissioni rilevate da diversi indicatori sulla storia e combinate in un gruppo comune. Questi outlier continueranno a ripetersi nella storia con lo stesso esito probabilistico?

Sì, ci sono outlier che non sono outlier, anche se statisticamente lo sono, ma come separarli dagli altri è un problema.

fxsaber #:

Il grafico mostra tre anni di trading giornaliero.

Per i tick, sembra molto, ma io uso un intervallo più ampio - da 10 anni sui minuti e i segnali inizialmente non sono così frequenti - c'è un segnale di base.

fxsaber #:

Quello che non ho fatto è stato creare un grafico per ogni intervallo. Ho contato i dati statistici, ma non ho guardato il grafico in sé.

Osservate la dinamica dei pattern - spesso possono essere dei grumi che si sono verificati in un intervallo di tempo relativamente breve - rispetto al campione, è positivo se le osservazioni del pattern tendono a ripetersi per l'intero intervallo.

Un'altra sfumatura, con lo stesso CatBoost - circa il 50% delle foglie muore con i nuovi dati, cioè i modelli smettono di verificarsi su cui è stato costruito il modello.

fxsaber #:

Non ho capito l'evidenziazione.

Gli altri due campioni sono il test e l'esame, successivi al campione su cui è stato effettuato l'addestramento.

Poi hai chiesto perché usarli: inizialmente il test era usato per controllare l'overtraining in CatBoost, cioè quando i nuovi modelli non danno miglioramenti sul campione di test - le iterazioni sul miglioramento vengono interrotte. E l'esame - solo un test indipendente del modello. Idealmente, si dovrebbe imparare a selezionare un modello che avrà successo all'esame tramite l'addestramento e il test: questo è un argomento a parte.

E, naturalmente, se il compito di selezionare il modello è risolto, allora il campione per l'addestramento può essere aumentato, se necessario, o almeno spostare i campioni di addestramento e di test più vicino alla data corrente.

 
Aleksey Vyazmikin #:

Quali test di significatività propone? Non sto dicendo che l'algoritmo di selezione dei segmenti quantistici sia perfetto, al contrario - molti rifiuti entrano e voglio migliorarlo.

Non capisco, in base a quali indizi hai deciso che si tratta di una sorta di "pi-hacking" - e quale parte esattamente, la selezione dei segmenti quantici o la selezione delle stringhe, che sono ben schermate e senza addestramento dai segmenti quantici (cioè i grafi che ho costruito)? Sì, il metodo è un po' diverso dall'approccio comune alla costruzione di modelli di legno, ma non molto, il concetto rimane.

Per quanto riguarda l'esempio su SB, ci sono due considerazioni da fare:

1. Se il processo è sconosciuto, e ci sono solo dati, allora si può prendere come modello che c'è qualche ora migliore per fare trading. Oppure c'è una considerazione da fare per respingere questa ipotesi?

2. Se queste osservazioni sono state distribuite in modo relativamente uniforme nel tempo (cronologia degli eventi), allora si tratta piuttosto di un errore del generatore di numeri casuali.

Nell'addestramento, utilizzo campioni su un lungo periodo di tempo, di solito almeno 10 anni.

Posso suggerire di modificare il mio esperimento. Facciamo in modo che ci siano dieci scatole con numeri da 1 a 10, cento palline bianche e cento nere (i numeri 10 e 100 sono presi in modo condizionato). Le palline vengono disposte in qualche modo nelle scatole, poi si guarda quante palline ci sono in ogni scatola e si cerca di capire se c'è una regolarità nell'algoritmo di disposizione - nelle scatole con quali numeri c'è una predominanza di palline di qualche colore.

Quindi, se ogni pallina (di entrambi i colori) viene messa a caso e con uguale probabilità 0,1 in uno dei cassetti, alla fine non ci sarà uniformità nel rapporto tra i colori! Quasi sempre ci sarà un cassetto quasi tutto bianco e uno quasi tutto nero. E il problema non è affatto la qualità del DSP, si può prendere un vero DSP quantistico e tutto sarà uguale. Si tratta della natura stessa della casualità probabilistica. Ci sarà sempre un'irregolarità, ma il numero di caselle in cui si troverà al prossimo layout è assolutamente imprevedibile. È lo stesso nell'esempio precedente con l'ora della settimana (l'ora della settimana è l'analogo del numero di casella).

Ci sono due modi per farlo. O si cerca di dimostrare che l'ineguaglianza nella pratica è molto maggiore di quella che si avrebbe a parità di probabilità. Questo si ottiene con qualche tipo di test statistico. Oppure essere sicuri che la non uniformità, anche se piccola, sia dovuta a qualche regolarità che si manifesta solo debolmente a causa del rumore. Ma questa è una questione di fede e di pratica e se funziona, ok.

Spero sia chiaro che i numeri della scatola (ora della settimana) sono un'analogia con i vostri quanti.

 
Aleksey Nikolayev #:

Posso suggerire di modificare il mio esperimento. Facciamo che ci siano dieci scatole con numeri da 1 a 10, cento palline bianche e cento palline nere (i numeri 10 e 100 sono presi convenzionalmente). Le palline vengono disposte in qualche modo nelle scatole, poi si guarda quante palline ci sono in ogni scatola e si cerca di capire se c'è una regolarità nell'algoritmo di disposizione - nelle scatole con quali numeri c'è una predominanza di palline di qualche colore.

Quindi, se ogni pallina (di entrambi i colori) viene messa a caso e con uguale probabilità 0,1 in uno dei cassetti, alla fine non ci sarà uniformità nel rapporto tra i colori! Quasi sempre ci sarà un cassetto quasi tutto bianco e uno quasi tutto nero. E il problema non è affatto la qualità del DSP, si può prendere un vero DSP quantistico e tutto sarà uguale. Si tratta della natura stessa della casualità probabilistica. Ci sarà sempre un'irregolarità, ma il numero di caselle in cui si troverà al prossimo layout è assolutamente imprevedibile. È lo stesso nell'esempio precedente con l'ora della settimana (l'ora della settimana è un analogo del numero di casella).

Ci sono due modi per farlo. O si cerca di dimostrare che l'ineguaglianza nella pratica è molto maggiore di quella che si avrebbe a parità di probabilità. Questo si ottiene con qualche tipo di test statistico. Oppure essere sicuri che la non uniformità, anche se piccola, sia dovuta a una qualche regolarità, che si manifesta solo debolmente a causa del rumore. Ma è già una questione di fede e di pratica e se funziona, ok.

Spero sia chiaro che i numeri della scatola (ora della settimana) sono un'analogia con i vostri quanti.

Se stiamo parlando di SB, allora di che tipo di modelli possiamo parlare, perché l'essenza dei modelli (lignei o neurali) è trovare modelli nei dati.

Per quanto riguarda il fatto che ci può essere una maggioranza di palline dello stesso colore in una scatola - quindi faccio l'esperimento 10 volte e ogni volta ottengo i risultati (divido il campione in 10 parti), e solo se la maggior parte di esse sono simili nel risultato, seleziono un segmento quantistico. Qual è la probabilità che dopo aver fatto l'esperimento 10 volte si trovino più palline di un certo colore nella stessa scatola che in altre?

Conoscete qualche altro test statistico che si adatti a questo caso?

Non si può essere sicuri di nulla, in più su SB tho....

Sto cercando metodi che aumentino la certezza.

Inoltre, presumo che il segmento quantistico selezionato abbia ancora un potenziale maggiore di suddivisione non casuale rispetto all'altra parte del predittore - non so come esprimerlo come formula o qualche tipo di stima. Percepisco tale segmento astrattamente come una vena di minerale/metallo prezioso all'interno di un ciottolo.....

 

Non so come renderlo più chiaro, quindi sto mostrando due alberi divisi in modo schematico.

Le due barre sono due predittori - le barre verticali simboleggiano il tempo (ma non ne ho fatto una riproduzione esatta).

La linea spessa è il luogo standard di suddivisione dei predittori da parte del modello ad albero.

Il secondo predittore (a sinistra nella figura) mostra che l'intervallo da 2 a 3 incluso ha il maggior accumulo di unità, che ho evidenziato a colori.

Dopo la prima divisione, ho evidenziato in colore bluastro le figure che sono rimaste dalla prima divisione (diciamo che è la parte destra, dove le unità sono andate lungo il ramo).

Quindi, se contiamo le unità totali rimaste dopo la prima divisione, la divisione dovrebbe essere fatta esattamente al centro e dividere da 1 a 2 compreso, ma la prima colonna contiene gli indici statistici più deboli sulle risposte in termini assoluti, così come la 4 - solo 8 ciascuna, mentre quelle centrali contengono 10 e 12. Il cutoff quantistico può spostare le colonne 1 e 4 da un lato e le colonne 2 e 3 dall'altro, per un totale di una sola unità in meno rispetto a quanto avviene senza il cutoff quantistico, ma inizialmente si osservano 8 unità in più in questo intervallo, il che sembra significativo. Si prevede cioè che questo intervallo continuerà a contenere più unità rispetto ai due vicini.

È riuscito a spiegare l'essenza dell'idea di selezione quantistica dei segmenti?

Aggiungo: si tratta di una convenzione, che ammette errori aritmetici; ciò che conta è il testo e la logica, non i numeri.
 

In termini quotidiani, abbiamo un predittore con un intervallo di -162 e +162 che invia segnali.

Con l'aiuto del rilevamento dei segmenti quantici possiamo trovare gli intervalli di livelli, quando i colpi che si verificano più spesso, ad esempio, rimbalzano ai livelli inferiori. Le sezioni rimanenti che non sono vicine a un livello possono essere semplicemente classificate in ordine. E si scopre che un predittore, ma ci sono due modi di rappresentare i dati per scopi diversi - come opzione.


 
Aleksey Vyazmikin #:

Conosce qualche altro test statistico che si adatti a questo caso?

Il più universale è probabilmente Monte Carlo. Simulare ripetutamente la situazione di classi ovviamente inseparabili e vedere come si comportano in media i quanti. Se trovano qualcosa, allora la situazione è autodistruttiva.

Le classi plausibilmente indivisibili possono essere ottenute prendendo campioni generati con la stessa distribuzione delle caratteristiche.

 
Aleksey Nikolayev #:

Il più universale è probabilmente Monte Carlo. Simulare ripetutamente la situazione di classi ovviamente inseparabili e vedere come si comportano in media i quanti. Se trovano qualcosa, allora si tratta di autoinganno.

Le classi plausibilmente indivisibili possono essere ottenute prendendo campioni generati con la stessa distribuzione delle caratteristiche.

Monte Carlo consiste nel mescolare sequenze e ottenere casualmente stringhe: come può essere utile? E probabilmente non è corretto mescolare le sequenze se si assume che non siano casuali..... e non è casuale nelle serie temporali. Non capisco l'idea, se potete descriverla in modo più dettagliato.

Puoi creare un campione per il test in csv? Penso che sia abbastanza veloce in R. Altrimenti passerò un altro giorno a scrivere codice e non so se riuscirò a farlo bene.

 
Aleksey Vyazmikin #:

Monte Carlo consiste nel mescolare sequenze e ottenere stringhe in modo casuale: come può essere utile? E probabilmente non è corretto mescolare le sequenze se assumiamo che non siano casuali.... e non è casuale nelle serie temporali. Non capisco le idee, se può descriverle in modo più dettagliato.

Puoi creare un campione per il test in csv? Penso che sia abbastanza veloce in R. Altrimenti passerò un altro giorno a scrivere codice e non so se riuscirò a farlo bene.

Puoi farlo in MT5, la libreria statistica ha funzioni per generare campioni per diverse distribuzioni. Ad esempio, è possibile generare un campione normale di 200 come segno nella prima colonna, e nella seconda colonna è possibile fare dei segni con una selezione casuale con una probabilità di 0,5.

Sarebbe meglio se automatizzaste questa operazione in qualche modo all'interno del vostro pacchetto, dato che dovete farlo molte volte e calcolare qualcosa ogni volta - solo voi sapete cosa.

 
Aleksey Nikolayev #:

È possibile farlo in MT5, la libreria statistica ha funzioni per generare campioni per diverse distribuzioni. Ad esempio, generare un campione normale di 200 come segno nella prima colonna, e nella seconda colonna creare dei segni con una selezione casuale con una probabilità di 0,5 ciascuno.

Sarebbe meglio se automatizzaste in qualche modo questa operazione all'interno del vostro pacchetto, dal momento che dovete farlo molte volte e calcolare qualcosa ogni volta - solo voi sapete cosa.

Non ho mai utilizzato questa funzione prima d'ora.

Si tratta di questa funzione?

Генерирует псевдослучайные величины, распределенные по нормальному закону с параметрами mu и sigmа. В случае ошибки возвращает false. Аналог rnorm() в R. 



bool  MathRandomNormal( 
   const double  mu,             // математическое ожидание 
   const double  sigma,          // среднеквадратическое отклонение 
   const int     data_count,     // количество необходимых значений 
   double&       result[]        // массив для получения псевдослучайных величин 
   );
 
 
Aleksey Vyazmikin #:

Proprio come ho scritto su come il superamento casuale sia un approccio improduttivo.

Uso il sovracampionamento con l'elemento di casualità della selezione dei predittori quando verifico il potenziale di campionamento, e lo uso da molti anni in CatBoost.

La randomizzazione non giustifica l'aspettativa che il modello continui a funzionare, perché le risposte dei predittori sono state randomizzate.

C'è il rischio di impantanarsi di nuovo in un'inutile disputa. Che differenza c'è tra un insieme trovato a caso che funziona su oos e uno che è stato inventato attraverso la più dura sofferenza mentale, ma anche senza una giustificazione fondamentale? Quando il metodo di validazione è lo stesso. Domanda retorica.

Qual è la differenza tra una ricerca casuale e una ricerca con un elemento di casualità di scelta? ))