C'è uno schema nel caos? Proviamo a trovarlo! Apprendimento automatico sull'esempio di un campione specifico. - pagina 17

 
Valeriy Yastremskiy #:

A parte l'ora di inizio di qualcosa e l'ora di fine (sessioni, calendario), non mi viene in mente nulla. Che cosa intendi?

Perché, sono solo i più ovvi possibili. La volatilità era nella figura, ci sono altri fattori da considerare.

Grosso modo, bisogna prendere qualche metrica di mercato e succhiarla, credo. Non in un mucchio. Tutti volevano fare una pila, ma si è scoperto che non funziona così.
 
Maxim Dmitrievsky #:
Perché, è solo il più ovviamente possibile. La volatilità era nella cifra, ma ci sono altri fattori da considerare.

In linea di massima, dovremmo prendere una qualche metrica di mercato e succhiarla, credo. Non in un mucchio. Tutti volevano fare una pila, ma si è scoperto che non funziona così.
Con metriche di prezzo discrete non è facile fare tutto, separatamente si perde spesso connessione e significato. Larghezza del canale o volatilità e velocità di variazione dei prezzi. Sembra semplice, ma nella mia testa non c'è un concetto ())))).
 
Valeriy Yastremskiy #:
Con le metriche di prezzo discrete, non tutto è semplice, e nell'isolamento si perde spesso la connessione e il significato. Larghezza del canale o volatilità e velocità di variazione dei prezzi. Sembra semplice, ma non c'è un concetto)))) nella mia testa))

Dobbiamo prima definire cosa vogliamo dal MO. Solo la classificazione o qualche selezione, cioè per fare uno strumento come un ottimizzatore standard, dove sono impostate diverse funzioni target.

Poi lo usiamo per manipolare gli indicatori (attributi). Spesso in modo stupido, con la forza bruta, finché non viene in mente qualcosa di interessante (come il Graal).

Una volta imparato qualcosa, iniziamo a scavare più a fondo.

Credo di pensare di scrivere cose ovvie, ma che si rivelano tali solo per me :D

 
Renat Akhtyamov #:

La questione del ramo è certamente interessante....

Ecco perché mi chiedevo.

Forse è possibile individuare uno schema.

Suggerisco di analizzare più barre di seguito, ad esempio 3-4.

Quindi spostatevi di una barra dall'inizio di questo campione di 3-4 barre e analizzate nuovamente.

Come se si sovrapponesse un campione a un altro.

È possibile trovare uno schema

Come questo:


A cosa serve? Le barre saranno sempre diverse. A meno che non le si leghi alla scala corrente. Penso che l'approccio dovrebbe essere una teoria leggermente diversa, ad esempio il colore (polarità). La stazionarietà si verifica, ma in modo leggermente diverso ed è anche facilmente distrutta.
 

Nel frattempo, ho ottenuto questo modello dal primo campione in questo thread.

Equilibrio

Sfortunatamente, non funziona sul campione di prova - ovviamente i campioni sono diversi.

 

Nel processo di ricerca di un modo per addestrare un modello, sono stati testati diversi approcci, sono stati creati più di 100 mila modelli e sono stati inventati nuovi approcci che in precedenza avevano mostrato un buon potenziale. Sono stati utilizzati diversi metodi di trasformazione dei campioni e di selezione dei predittori. Questi metodi sono stati combinati tra loro.



Metodi di trasformazione dei campioni e di selezione dei predittori.

Trasformazione del campione:

  • 1. Nessuna trasformazione.
  • 2. Selezione delle transazioni per tipo di direzione (vettore) - senza selezione, acquisto, vendita - con salvataggio in campioni separati.
  • 3. Spostamento della funzione target in base al risultato finanziario.
  • 4. Metodo "Drop" - esclusione di righe dal campione in base a un forte quantum del predittore di tipo FP - 10-30 iterazioni consecutive di stima dei quantum del campione con modifica del campione a ogni iterazione:

( a) Esclusione mediante il miglior quantum senza tenere conto del vettore sul treno di campioni se questo è maggiore di una determinata percentuale di deviazione dalla media del target nel campione, altrimenti viene valutato in aggiunta sui campioni tenendo conto del vettore e viene selezionata la variante migliore.

b) Come "a", ma i segmenti quantici che hanno mostrato sul campione di prova una deviazione nella direzione della probabilità decrescente per TN non vengono presi.

c) Come "a", ma la selezione della stima viene effettuata sul campione"test".

Selezione del predittore:

  • 1. metodo di quantizzazione :

(a) Selezione dei predittori mediante statistiche con selezione di tabelle di quantificazione per ciascun predittatore.

( b) Selezione dei quantili mediante statistiche con campionamento binario.

(c) Combinazione di segmenti di quantili da sottocampioni con vettori diversi per formare un campione binario raggruppato.

d) Selezione dei predittori mediante statistica con selezione di tabelle quantili basate su quanti binari.

  • 2)Esclusione dei predittori con forte correlazione.
  • 3) Raggruppamento dei predittori per campo di risposta simile con selezione del predittatore dominante per campo - solo dopo la conversione dei predittori in binari.
  • 4. Selezione in base alla frequenza media di utilizzo dei predittori nei modelli CatBoost su un campione di allenamento suddiviso in 8 parti. Utilizziamo 5 strategie di apprendimento e più di 20 metodi di selezione dei predittori in base alle statistiche ottenute.
  • 5. Selezione sommaria dei predittori per ogni campione dopo aver eseguito il metodo"Drop".
 

Un nuovo record, e questa volta anche il campione di prova è in positivo.

Equilibrio

Modello

 

Scriverò come è stato ricavato il modello - probabilmente per me stesso, dato che nessuno è interessato a come ottenere qualcosa da un campione complesso.

Quindi, la prima cosa che ho fatto è stata quella di spostare l'obiettivo secondo il principio che se il profitto è inferiore a 50 pips, è un risultato negativo, cioè "0" invece di "1" prima. Sono rimasti meno del 20% di segni positivi, ma ciò ha permesso di selezionare movimenti di tendenza più pronunciati.

Poi ho selezionato gli split dalle tabelle quant per ciascun predittore. Abbiamo utilizzato circa 900 tabelle per il campionamento, selezionato gli split spostando la probabilità dal 5% e valutato la stabilità della generazione del segnale nello split quantistico.

Il passo successivo consiste nel combinare i segmenti quantistici selezionati. Ho usato l'approccio con elementi casuali e ho valutato il risultato in base al criterio "più segmenti ci sono, meglio è" - non sono sicuro che il metodo sia perfetto e forse dovrebbe essere migliorato - devo pensare all'algoritmo.

In questo modo ho ottenuto una tabella quantistica combinata per i predittori. I predittori senza segmenti di successo hanno ottenuto solo un separatore "0,5" nella tabella dei quanti.

Ho addestrato 100 modelli con Seed da 8 a 800 in passi da 8.

Dalle varianti ottenute ho selezionato il modello migliore e ho analizzato i predittori da esso utilizzati: ne sono risultati 77.

Ho provato ad addestrare altri 100 modelli, ma solo su questi predittori, sempre con Seed da 8 a 800 a passi di 8. Il risultato dei modelli migliori è stato leggermente inferiore a quello dei modelli migliori. Il risultato dei modelli migliori è stato leggermente peggiore dell'ultimo modello. Questo mi ha lasciato perplesso.

Ho deciso di provare Seed con un passo più piccolo e con un volume maggiore, perché i loro predittori possono ottenere risultati migliori - è dimostrato. Ho addestrato 10000 modelli, con Seed da 1 a 10000 con passo 1.

Il grafico seguente mostra i risultati finanziari dei modelli, ordinati dal migliore al peggiore.

Circa il 25% dei modelli non è stato redditizio, il che non è poi così male, e il profitto medio è di 2116,65. Il 38% dei modelli ha un profitto superiore o uguale a 3000 punti.

Non è del tutto chiaro il motivo per cui i risultati del campione di prova non sono correlati con i campioni d'esame: si tratta di una peculiarità del sottocampione o potrebbero esserci altre ragioni?

Il grafico seguente mostra i risultati del campione d'esame, ordinati come in precedenza, in base al risultato finanziario del campione d'esame.

Per chiarezza, il grafico a dispersione sembra casuale.

Pensavo si trattasse di indicatori - punti, non di indicatori statistici binari, ma come si può vedere nel grafico sottostante, anche l'indicatore di precisione tra i due campioni è indipendente.


Senza identificare la dipendenza dei risultati del campione d'esame dai campioni di prova e di addestramento, è difficile selezionare un modello - penso che dobbiamo sviluppare ulteriori criteri di valutazione - metriche il modello può.

Il nuovo modello (ne ho notati due) ha utilizzato meno di 50 predittori. Penso che ripetendo il processo, alla fine rimarranno abbastanza predittori per costruire un modello.

Cosa fare allora: possiamo addestrare il modello sull'intero campione utilizzando solo i predittori selezionati e poi vedere come si comporterà il loro aggregato sui nuovi dati.

Inoltre, vorrei cercare di trovare alcune caratteristiche speciali nei predittori selezionati che aumentino la probabilità della loro selezione senza addestramento - per analogia, come è stato fatto con la selezione dei segmenti quantistici dalle tabelle.

 
Aleksey Vyazmikin #:

Poi ho selezionato gli split dalle tabelle quantistiche per ogni predittore. Abbiamo utilizzato circa 900 tabelle per il campionamento, abbiamo selezionato gli split spostando la probabilità dal 5% e abbiamo valutato la stabilità della generazione del segnale nello split quantistico.

Il passo successivo consiste nel combinare i segmenti quantistici selezionati. Ho utilizzato l'approccio con elementi casuali e ho valutato il risultato in base al criterio "più segmenti ci sono, meglio è" - non sono sicuro che il metodo sia perfetto e forse dovrebbe essere migliorato - dobbiamo pensare all'algoritmo.

Si tratta essenzialmente di selezionare le foglie con una probabilità >55%?

Aleksey Vyazmikin #:

Ho provato ad addestrare altri 100 modelli, ma solo su questi predittori, anche con Seed da 8 a 800 con passo 8. Il risultato dei modelli migliori è stato leggermente peggiore dell'ultimo modello. Questo mi ha lasciato perplesso, ovviamente.

A quanto pare il random di Seed-a non coincideva completamente con la variante del random del campione migliore. Da qui i risultati diversi/peggiori.

Aleksey Vyazmikin #:

Non è chiaro perché i risultati sul campione di prova non siano correlati con i campioni d'esame: si tratta di una peculiarità del sottocampione o ci possono essere altre ragioni?

Il grafico seguente mostra i risultati del campione d'esame - ordinati come prima - in base al risultato finanziario del campione d'esame.

È come nel caso di un normale allenamento che viene riaddestrato/adattato alla traina. In questo caso, avete fatto un adattamento all'esame. Qualsiasi adattamento, sia per il test che per l'esame, come possiamo vedere nel tuo test, porta a un risultato casuale.

Non credo che dovresti prendere i migliori treni o esami. Hai bisogno di qualcosa di stabile, anche se con un risultato molto peggiore del miglior treno o esame-e.

Quando lavoravo con Darch, c'era una selezione su entrambi i campioni err = err_ oob * k+ err_trn * (1 - k); dove k=0,62 (consigliato, ma può essere cambiato)
Cioè err = err_ oob * 0,62+ err_trn * 0,38;
Ma questo è un parametro non necessario per la selezione con un tempo di calcolo crescente.

Secondo i miei esperimenti con il campionamento su H1 - c'era qualcosa di stabile, ma con pochi guadagni. 10000 operazioni, ma solo 0,00005 per operazione. Anche questo non è interessante, poiché gli spread/slippage, ecc. consumeranno questi 5 punti nel trading regolare.

Avete 400 operazioni ma 40 punti all'esame. E all'esame, come me, quasi 0 (a caso).

Ci sono molti approcci, ma nessuno ha trovato quello che funziona.
 
elibrarius #:

Si tratta fondamentalmente di una selezione di foglie con una probabilità >55%?

No, si tratta, per così dire, dell'intervallo numerico di un predittore che viene selezionato. Il 5% è relativo al valore della percentuale "1" nel treno campione.

elibrarius #:

A quanto pare il random di Seed-a non corrispondeva completamente al random della variante del campione migliore. Da qui i risultati diversi/peggiori.

Il random è stato corretto :) Sembra che questo seme sia calcolato in modo complicato, cioè tutti i predittori consentiti per la costruzione del modello sono probabilmente coinvolti, e cambiando il loro numero cambia anche il risultato della selezione.

elibrarius #:

È come con il normale apprendimento che viene riqualificato/adattato alla linea. In questo caso, hai fatto un adattamento all'esame. Qualsiasi adattamento, sia per il test che per l'esame, come vediamo nel tuo test, porta a un risultato casuale.

Perché si tratta di un adattamento, o meglio, cosa vedi come adattamento? Tendo a pensare che il campione del test differisca dall'esame più che l'esame dal treno, cioè che ci siano distribuzioni di probabilità diverse dei predittori. E questo può essere trattato sia selezionando i predittori più stabili - che danno risultati accettabili su tutti i campioni - sia cambiando la distribuzione di probabilità con una caratteristica esterna (cioè un altro predittore) - non conosco modelli di questo tipo, ma mi piacerebbe provare. Un effetto simile potrebbe essere ottenuto utilizzando l'addestramento ricorrente su foglie selezionate di alberi diversi o addirittura su interi modelli. Forse i neuroni ricorrenti possono fare questo - non ne conosco.

Finora ho trattato questo metodo come un modo per selezionare i predittori su cui costruire il modello combinato, e come benchmark per identificarne altri efficaci prima dell'addestramento vero e proprio.

elibrarius #:

Non credo che si debbano prendere i migliori treni o esami. Avete bisogno di qualcosa di stabile, anche se con un risultato molto peggiore del miglior treno o esame.

Quando lavoravo con Darch, c'era una selezione su entrambi i campioni err = err_ oob * k+ err_trn * (1 - k); dove k=0.62 (consigliato, ma si può cambiare)
Cioè err = err_ oob * 0.62+ err_trn * 0.38;
Ma è un parametro non necessario per la selezione con un tempo di calcolo crescente.

Qual è la metrica che err_ è?

elibrarius #:

Hai 400 operazioni, ma con 40 punti all'esame. Beh, all'esame, come me - vicino a 0 (casuale).

Ci sono molti approcci, ma nessuno ne ha ancora trovato uno produttivo.

L'asse X è il valore della matrice di aspettativa sul campione di prova, cioè in generale sì, ma ci sono alcuni casi di successo.