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

 
Dr. Trader:

Questo è nella RNN di Reshetov, il modello di probabilità.

E poi c'è jPredictor, che Mikhail usa. Il neurone di Reshetov, ci sono molti input, e un qualche tipo di addestramento invece della discesa del gradiente.


Ho provato a risolvere il problema dal primo post sul NS di Alglib. La rete è 20-5-1. Successo. Ma molto lungo, hai circa 2 sec di soluzione. I miei calcoli hanno una media di 10-20 min, ci sono varianti in 2 min da 1 ciclo, ma apparentemente inciampa per caso, devo impostare 20 cicli di allenamento per essere affidabile... O 100000 iterazioni, come nella variante qui sotto

Allarme: errore medio nell'addestramento (60.0%) sezione =0.000 (0.0%) nLearns=2 NGrad=68213 NHess=0 NCholesky=0 codResp=2
Allarme: errore medio nella validazione (20.0%) sezione =0.000 (0.0%) nLearns=2 NGrad=68213 NHess=0 NCholesky=0 codResp=2
Allarme: Errore medio sulla sezione di prova (20.0%) =0.000 (0.0%) nLearns=2 NGrad=68213 NHess=0 NCholesky=0 codResp=2

Tempo di calcolo=22.30 min
0 sum weight=3.2260
1 sum weight=0.0000
2 sum weight=3.2258
3 sum weight=0.0000
4 sum weight=8.7035
5 sum weight=0.0000
6 sum weight=3.2253
7 sum weight=0.0000
8 sum weight=3.2258
9 sum weight=0.0000
10 somma peso=3.2251
11 somma peso=0.0000
12 somma peso=0.0000
13 somma peso=0.0000
14 somma peso=0.0000
15 somma peso=0.0000
16 somma peso=0.0000
17 somma peso=0.0000
18 somma peso=0.0000
19 somma peso=0.0000

Voglio essere più veloce...
Se il compito non sarà con 20 ingressi, ma con 200, saranno decine di ore.
Setacciare le basse correlazioni con gli output o le alte correlazioni con altri input rimuove gli input importanti, anche provato la LDA di Fisher - rimuove anche gli input importanti. Quindi setacciare con questi metodi non aiuta, al contrario, ostacola.

Apparentemente rimane una soluzione lunga per tutti gli ingressi una volta, setacciando gli ingressi per somma di pesi e ottenendo un modello per uso futuro. Poi riqualificare una volta alla settimana, per esempio, sul numero troncato di input.

Ho pensato che per la velocità potrei dare questo compito a MS Azure per ottenere i pesi totali degli input e poi usarli nel mio modello. Ho sperimentato un po', ma non vedo da dove vengono presi i pesi...

 
Proprio così fratelli!!! Esatto, usando l'ottimizzatore di Resolute. Quindi vorrei eseguire i calcoli sulla GPU. Qualcuno ha mai fatto una cosa del genere? Dato che JPrediction è parallelizzato, è solo una questione di eseguire il programma sulla GPU. Qualcuno sa come eseguire un programma JAVA sulla GPU? Penso che la conoscenza utile sarebbe....
 
Mihail Marchukajtes:
Proprio così, fratelli!!! Io sì, uso l'ottimizzatore di Resolute. Quindi vorrei eseguire i calcoli sulla GPU. Chi farebbe questo? Dato che JPrediction è parallelizzato, è solo una questione di eseguire il programma sulla GPU. Qualcuno sa come eseguire un programma JAVA sulla GPU? Penso che la conoscenza utile sarebbe....

Puoi darmi un link a una versione funzionante e una descrizione?
 
Mihail Marchukajtes:
Ciao a tutti!!!! Sono contento che questo thread non sia morto e sia ancora vivo, quindi ho una domanda per il pubblico. Ho un set di dati per l'allenamento, ma purtroppo è diventato così grande che l'allenamento richiede troppo tempo. Qualcuno può costruire un modello con il proprio lavoro e poi vediamo come funziona insieme!!!!!.
Il tuo set, al contrario, è MOLTO piccolo con 111 caratteristiche, 452 punti. Ma se i dati sono corretti (il targeting non si confonde con i chip), allora c'è un vantaggio del 3-4% (precisione - 53,5%), se per un grande fondo d'investimento o una banca, nel trading a medio termine questo è sufficiente, per un intrade con una leva gigante e un paio di k$ di depo ovviamente no.
 
Aliosha:
c'è un vantaggio del 3-4% (precisione - 53,5%)
Quale modello è stato usato e in quale configurazione? Perché ha deciso che questo non è un risultato casuale, non sono d'accordo con questo set di dati, poi 47%, poi 50, poi 53
 
Aliosha:
Il tuo set, al contrario, è MOLTO piccolo con 111 caratteristiche, 452 punti. Ma se i dati sono raccolti in modo sensato (il targeting non si confonde con i chip), allora c'è un vantaggio del 3-4% (precisione - 53,5%), se per un grande fondo d'investimento o una banca, quando il trading a medio termine è sufficiente, per un intrade con leva gigante e un paio di k$ depo ovviamente no.

Penso che sarebbe sufficiente anche per un intraday, se entro 50 pip meglio del segnale. Penso che sarà sufficiente se entriamo per 50 pip meglio del segnale. Guadagnerete meglio dello spread.
 
Maxim Dmitrievsky:

Puoi darmi un link alla versione funzionante e una descrizione?

Cosa significa? Un link a JPrediction?
 
Aliosha:
Il tuo set, al contrario, è MOLTO piccolo con 111 caratteristiche, 452 punti. Ma se i dati sono raccolti in modo sensato (il targeting non si confonde con i chip), allora c'è un vantaggio del 3-4% (precisione - 53,5%), se per un grande fondo d'investimento o una banca, quando il trading a medio termine è sufficiente, per l'intraday con una leva gigante e un paio di k$ di deposito ovviamente no.

Non so per quanto riguarda la piccolezza. È come un intero contratto futures in 3 mesi. La domanda è diversa. Ho altre due settimane che non sono nella rete. Così ho pensato di costruire un modello ed eseguirlo su questo campione. Ma con JPrediction l'allenamento richiederà settimane, il che non è buono. Ecco perché volevo ottenere il modello usando altri algoritmi e vedere come funziona il modello.
 
Di nuovo, questo set è destinato alla classificazione. Cioè, la variabile di uscita porta già una previsione. Se usiamo un modello resiliente, non abbiamo bisogno di predire la variabile di uscita, dobbiamo solo delegare il modello ad essa, perché l'uscita è già nel futuro. Questo è tutto, se mi capite bene.
 

Un'altra cosa è eseguire il programma su una GPU e aumentare la velocità dei calcoli di almeno 10-20 volte. Penso che ci sarebbero dei progressi qui.... Ma le informazioni su Internet sono molto vecchie e non riesco a capire come fare. Non sono molto bravo a programmare. Sono un pollo :-)

L'idea dietro tutto questo trambusto è la seguente. Non importa quale algoritmo viene utilizzato (anche se mente, ovviamente è importante. È importante che la riqualificazione in esso sia ridotta al minimo) IMPORTANTE è il tipo di dati, come vengono raccolti e preparati per la formazione. Questo è quello che volevo controllare. Volevo verificare se ci sono davvero dei pesci nei dati che raccolgo. Ecco un esempio.