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

 
Maxim Dmitrievsky #:

C'è una domanda come questa:

Vengono utilizzati due modelli. Uno predice di comprare o vendere, l'altro di commerciare o non commerciare.

Prima si addestra il primo modello, poi si guarda dove predice male, si segnano questi esempi come "non scambiare", gli altri buoni come "scambiare", si insegna questo al secondo modello.

Il primo modello è testato non solo nell'area di addestramento ma anche nell'area aggiuntiva e il secondo modello è addestrato in entrambe le aree.

Ripetiamo questa operazione diverse volte, riaddestrando entrambi i modelli sullo stesso set di dati. I risultati migliorano gradualmente sui campioni. Ma non sempre sul campione di controllo.

In parallelo a questo teniamo un registro di cattive transazioni cumulative per tutti i passaggi, tutte le transazioni "cattive" per "not to trade" sono raccolte in esso per l'addestramento del secondo modello e filtrate secondo un certo principio come più copie di cattive transazioni per tutti i passaggi, più possibilità di segnarle come "not to trade"

Per esempio, per ogni data viene accumulata una certa quantità di operazioni sbagliate per tutte le iterazioni di formazione, dove questo numero supera una soglia (media, media), quelle operazioni sono contrassegnate come "non negoziare". Gli altri trade sono saltati, altrimenti sarebbe possibile escludere tutti i trade se ci sono molte iterazioni di allenamento.

Il coefficiente permette di regolare il numero di compravendite all'uscita, più è basso, più le compravendite sono filtrate

... a questo punto sono già stanco di scrivere ...

Come si può migliorare una tale combinazione di modelli in modo che migliori i suoi risultati su una nuova trama indipendente?
C'è qualche filosofia sul perché questo possa funzionare? A parte il fatto che i modelli si migliorano naturalmente (l'errore scende) ad ogni giro di retraining, ma come liberarsi del fit?

Concetto interessante!

1. Come sbarazzarsi del montaggio. Non capisco molto di iterazioni. Perché non puoi semplicemente allenare il modello di filtraggio (secondo) una volta e valutare se migliora/non migliora le prestazioni del primo. Potresti semplicemente filtrare i segnali da 1 a 2, o alimentare l'uscita 2 all'ingresso 1.

2. Come migliorare.
2.1. Potresti provare a fare un partizionamento post-transazione in un partizionamento cluster. Sicuramente i cattivi segnali si accumulano. E quelli buoni. Marciamo i cluster. Possiamo allenarci con un approccio transazionale (chip sulla base di voci/candidati), targettizzando - trovarci in un cluster buono o cattivo. Oppure puoi allenarti per cluster (chips by clusters, un oggetto campione di allenamento - cluster), target - o lo stesso (la prossima candela nel cluster buono o cattivo) o il prossimo cluster - buono o cattivo (beh, probabilmente è la stessa cosa in sostanza).
2.2. Le descrizioni delle caratteristiche dovrebbero probabilmente essere diverse per questi modelli, altrimenti penso che l'utilità marginale del secondo modello sarebbe bassa.


3. Filosofia dietro il concetto. Chi ne ha bisogno, l'efficienza del modello, il profitto è il metro di misura. Sono gli esperimenti a governare, non la filosofia).

 
Replikant_mih #:

Concetto interessante!

1. Come sbarazzarsi del montaggio. Non capisco molto di iterazioni. Perché non puoi semplicemente allenare il modello di filtraggio (secondo) una volta e valutare se migliora/non migliora le prestazioni del primo. Potresti semplicemente filtrare i segnali da 1 a 2, o alimentare l'uscita 2 all'ingresso 1.

2. Come migliorare.
2.1. Potresti provare a fare un markup post-transazione in un markup cluster. Sicuramente i cattivi segnali si accumulano. E quelli buoni. Marciamo i cluster. Possiamo allenarci in modo transazionale (chip sulla base di entrate/tricks), mirando - trovarci in cluster buoni o cattivi. Oppure puoi allenarti per cluster (chips by clusters, un oggetto campione di allenamento - cluster), target - o lo stesso (la prossima candela nel cluster buono o cattivo) o il prossimo cluster - buono o cattivo (beh, probabilmente è la stessa cosa in sostanza).
2.2. Le descrizioni delle caratteristiche dovrebbero probabilmente essere diverse per questi modelli, altrimenti penso che l'utilità marginale del secondo modello sarebbe bassa.


3. Filosofia dietro il concetto. Chi ne ha bisogno, l'efficienza del modello, il profitto è il metro di misura. Gli esperimenti regnano, non la filosofia).

Vogliamo migliorare la generalizzabilità del primo modello (e anche del secondo). Se filtriamo semplicemente i suoi segnali con il secondo modello, l'errore di classificazione del primo modello non si ridurrà da solo. Quindi, in un certo senso, eseguiamo i due modelli addestrati sul set di dati e lasciamo cadere i cattivi esempi dall'addestramento del primo, in modo che l'errore diventi più basso. E anche l'errore sul secondo cade. E così lo ripetiamo diverse volte. Dovrebbe migliorare ogni volta. Ma voglio che migliori ogni volta sul campione di prova, ma c'è una grande variazione.

Quindi penso che cos'altro dovrei aggiungere lì, forse anche alcune riflessioni sono buone :)

 
Maxim Dmitrievsky #:

Vogliamo migliorare la capacità di generalizzazione del primo modello (e anche del secondo). Se filtriamo semplicemente i suoi segnali con il secondo modello, l'errore di classificazione del primo modello non si ridurrà al suo interno. Quindi, in un certo senso, eseguiamo i due modelli addestrati sul set di dati e lasciamo cadere i cattivi esempi dall'addestramento del primo, in modo che l'errore diventi più basso. E anche l'errore sul secondo cade. E così lo ripetiamo diverse volte. Dovrebbe migliorare ogni volta. Ma voglio che migliori ogni volta sul campione di prova, ma c'è una grande variazione.

Sto pensando a cos'altro dovrei aggiungere lì, forse anche solo qualche idea potrebbe funzionare :)

Sei sicuro di aver bisogno di 2 modelli, e che miglioreranno i risultati sul feedback?
Puoi semplicemente prendere il confine del primo modello non attraverso 0,5, ma attraverso 0,3 e 0,7 o anche 0,1 e 0,9 - così gli affari con bassa probabilità saranno eliminati e ce ne saranno meno e il modello sarà solo 1.
 
Aleksey Nikolayev #:

Non fraintendetemi... Pertanto, preferisco basarmi sulleaffermazioni del verificabile.

Non fraintendetemi. Stavo solo sottolineando l'inesattezza della tua costruzione logica: "non ci sono algoritmi a lunga durata sul mercato, altrimenti prima o poi sarebbero gli unici rimasti sul mercato". Vi ho mostrato esattamente in quale nicchia esistono. Perché esistono lì in modo isolato, piuttosto che catturare l'intero mercato. E ha dato un esempioverificabile.

Об авторе | QuantAlgos
  • www.quantalgos.ru
Приветствую вас в моем блоге. Меня зовут Виталий, занимаюсь написанием биржевых роботов c 2008 года. В 2009 и 2010 гг. участвовал в конкурсе ЛЧИ (лучший частный инвестор) под ником robot_uralpro, проводимом биржей РТС  (сейчас Московская биржа). Использовались HFT роботы, написанные на C#.  Результаты были следующие: В настоящее время продолжаю...
 
elibrarius #:
Sei sicuro che hai bisogno di 2 modelli e che miglioreranno il risultato su OOS?
Potresti semplicemente prendere il confine del primo modello non attraverso 0,5, ma attraverso 0,3 e 0,7 o anche 0,1 e 0,9 - in questo modo le offerte a bassa probabilità saranno eliminate e ce ne saranno meno e il modello sarà solo 1.

con 2 c'è più flessibilità, queste probabilità sono... solo il numero di scambi diminuisce, la stabilità no.

 
Maxim Dmitrievsky #:

con 2 flessibilità in più, queste probabilità sono... solo il numero di scambi diminuisce, la stabilità no.

Non si ha stabilità nemmeno con 2...
 
Dr #:

Non fraintendetemi. Stavo solo sottolineando l'inesattezza della tua costruzione logica: "non ci sono algoritmi a lunga durata sul mercato, altrimenti prima o poi sarebbero gli unici rimasti sul mercato". Vi ho mostrato esattamente in quale nicchia esistono. Perché esistono in modo isolato, ma non catturano l'intero mercato. E ha dato un esempioverificabile.

Verificare l'effettiva esistenza di una data affermazione non significa verificarne il contenuto.

Anche se assumiamo (anche se ci possono essere e spesso ci sono problemi con questo) che qualcuno stia facendo soldi costanti anno dopo anno, non è affatto chiaro come si possa dimostrare che questo sia fatto dallo stesso algoritmo. Mi piacerebbe vedere opzioni più sostanziali di "prendere per buona la tua parola" e "questo è quello che ti dico io ".

 
Maxim Dmitrievsky #:

con 2 flessibilità in più, queste probabilità sono... è solo che il numero di scambi diminuisce, la stabilità no.

è meglio con 3.

;)

 
elibrarius #:
Non si ha stabilità nemmeno con 2...

molte opzioni, è difficile confrontare

 
Maxim Dmitrievsky #:

molte opzioni, è difficile confrontare

Avete già un esempio di un bundle funzionante di 2 modelli. Una variante con il 1° modello (con un cutoff attraverso 0,1-0,9 o 0,2-0,8) è facile da fare di loro e confrontare la loro stabilità sull'OOS.
Motivazione: