L'apprendimento automatico nel trading: teoria, modelli, pratica e algo-trading - pagina 74
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Yuri, ho deciso di usare il santo dei santi e fare un graal, ma ho un'iscrizione che dice che i valori previsti non possono essere più di 10. Si tratta di una restrizione deliberata o di un limite dell'algoritmo ???? Perché più di 10 è estremamente rilevante così....
Dopo 10 ci può essere un overflow di tipo int, e ha solo 32 bit, cioè prima dell'overflow può contenere numeri che non superano il valore 2^32=2147483648. Sono poco più di due miliardi. Naturalmente, è possibile implementare contatori con una capacità di cifre più alta, ma la velocità di calcolo sarà diverse volte più lenta.
Questo è il motivo per cui Dr.Trader non può eseguire l'intera libVMR riscritta in R - troppi calcoli e mangia molta memoria.
Dopo 10 ci può essere un overflow di tipo int, e ha solo 32 bit, cioè si adatta a numeri senza un overflow non superiore a 2^32=2147483648. Sono poco più di due miliardi. Naturalmente, è possibile scrivere contatori con una profondità di bit maggiore, ma la velocità di calcolo sarà diverse volte più lenta.
Dopo 10 ci può essere un overflow di tipo int, e ha solo 32 bit, cioè prima dell'overflow contiene numeri che non superano il valore 2^32=2147483648. Sono poco più di due miliardi. Naturalmente, è possibile scrivere contatori con una capacità di cifre più alta, ma la velocità dei calcoli diminuirà di diverse volte.
Questo è il motivo per cui il Dr. Trader non poteva eseguire l'intera libVMR riscritta su R - troppi calcoli e troppo dispendiosi in termini di memoria.
Lascia che ti racconti una storia - mi ricordo, ti ho chiesto dei calcoli in parallelo. Per poter contare più ingressi sul coprocessore matematico. È arrivato uno stronzo che ha riscritto LibVMRx in C++ e l'ha messo in parallelo in qualche modo. Aveva un computer molto potente e ci ha messo circa 40 minuti per elaborare 8 colonne, come ha detto. Non mi ha nemmeno mandato il programma o altro, mi ha solo afflitto con scuse e stronzate. Anche se gli ho fornito tutti i dati ed era pronto a condividere il sistema e le considerazioni per costruire il modello. Ma si è rifiutato di aiutarmi. Ci sono persone così. Soffia dentro e fuori ....
Ho messo tutto in parallelo nell'ultima versione 6.01. Non funziona nient'altro. Se fosse stato possibile, l'avrei messo in parallelo ancora un po'. Lo facevo per me stesso, cioè ho bisogno che tutto sia calcolato più velocemente.
Ora ho inventato un algoritmo per calcolare i predittori deboli in modo da poterli rimuovere. Ci vorrà molto tempo per calcolarlo, ma ne varrà la pena, perché invece di un predittore debole, potrete sostituirlo con uno più forte. Oppure sbarazzarsi dei predittori deboli, aumentando sia la velocità di calcolo che la capacità di generalizzazione. Perché, per il trading, è necessario eseguire costantemente un ricalcolo dei modelli non appena il mercato inizia ad andare a tradimento. E questo è il modo in cui il mercato è, non appena gli altri trader si fondono, cambiano le loro strategie e tu devi adattarti di nuovo a loro.
Ho messo tutto in parallelo nell'ultima versione 6.01. Non funziona nient'altro. Se fosse stato possibile, l'avrei messo in parallelo ancora un po'. Lo stavo facendo per me stesso, cioè ho bisogno di calcolare tutto più velocemente.
Ora ho trovato un algoritmo, come calcolare i predittori deboli, in modo che possano essere rimossi. Ci vorrà molto tempo per calcolarlo, ma ne varrà la pena, perché invece di un predittore debole, possiamo sostituirlo con uno più forte. Oppure sbarazzarsi dei predittori deboli, aumentando sia la velocità di calcolo che la capacità di generalizzazione. Perché, per il trading, è necessario eseguire costantemente un ricalcolo dei modelli non appena il mercato inizia ad andare a tradimento. Questo è il modo in cui il mercato è, non appena gli altri commercianti si fondono, cambiano le loro strategie e tu devi adattarti di nuovo a loro.
Questo è tutto. Non vedo l'ora di vedere i cambiamenti.
È possibile passare manualmente attraverso i predittori uno per uno, ma è lungo e doloroso, sebbene sia anche la direzione giusta. Avete bisogno di molto tempo, ma dovrebbe essere automatico e in un tempo ragionevole e non così straziante.
Mihail Marchukajtes:
Siamo dalla stessa parte della barricata, anch'io credo che il mercato sia in continuo cambiamento e deve essere regolato ogni volta che succede qualcosa o vengono rilasciate notizie. Non cercate un graal in 5 anni, come fanno alcune persone. Questa è utopia, ma sono già esausto di spiegarlo...È possibile trovare dei graal deboli di lunga durata. Ne ho avuti alcuni. Ma il mio profitto è al limite del fallo, il mio profitto è da un centesimo anche se ho un buon deposito.
Teoricamente è possibile trovare un forte graal di lunga durata, ma la probabilità è probabilmente zero virgola zero?
Il modo più sicuro:
HM... Guarda, ora ho addestrato il modello, entrambi i modelli hanno ottenuto gli stessi valori di livello di generalizzazione, cioè il segmento di mercato è segato allo stesso modo da entrambi i modelli. Penso che questa sia la chiave per scegliere il modello appropriato. Continuo ad allenarmi, a cercare input, ecc.
Guarda nel file java. Se ci sono linee "Variabile ottenuta sotto riduzione", indicano predittori deboli. Tali predittori sono esclusi dal codice del modello - non sono calcolati da nessuna parte nel codice del classificatore binario.
È vero, se tutti i predittori sono approssimativamente uguali, tali linee non appaiono.
Ecco un esempio (evidenziato in grassetto). Il sesto predittore v5 (contato da zero) - la settima colonna in CSV può essere sostituita da qualche altro più forte:
Guarda nel file java. Se ci sono linee "Variabile ottenuta sotto riduzione", indicano predittori deboli. Tali predittori sono esclusi dal codice del modello - non sono calcolati da nessuna parte nel codice del classificatore binario.
È vero, se tutti i predittori sono approssimativamente uguali, tali linee non appaiono.
Ecco un esempio (evidenziato in grassetto). Il sesto predittore v5 (contato da zero) - la settima colonna nel CSV può essere sostituita da qualche altro più forte:
doppio getBinaryClassificator1(doppio v0, doppio v1, doppio v2, doppio v3, doppio v4, doppio v5) {
doppio x0 = 2,0 * (v0 + 1,0) / 2,0 - 1,0;
doppio x1 = 2,0 * (v1 + 1,0) / 2,0 - 1,0;
doppio x2 = 2,0 * (v2 + 1,0) / 2,0 - 1,0;
doppio x3 = 2,0 * (v3 + 1,0) / 2,0 - 1,0;
doppio x4 = 2,0 * (v4 + 1,0) / 2,0 - 1,0;
/La variabile v5 ha subito una riduzione
doppia decisione = -0.23641879194630872 -0.10890380313199105 * x2
-0.14546040268456376 * x0 * x2
+ 0,07270693512304251 * x1 * x2
-0.07182997762863534 * x3
-0,07383982102908278 * x0 * x1 * x2 * x3
-0.4362541387024608 * x4
;
decisione di ritorno;
}