L'apprendimento automatico nel trading: teoria, modelli, pratica e algo-trading - pagina 412
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
Le mie soluzioni erano inizialmente basate su OpenNN (C++).
Ora ho imparato molte cose e sono passato a Keras (Python).
Principalmente mi occupo dell'apprendimento profondo della previsione dei problemi di classificazione.
Quindi abbiamo a che fare con la stessa area di MO. Keras è un buon pacchetto, specialmente da quando è stato portato in R.
Solo che non capisco la domanda di cosa?
Buona fortuna
Quindi abbiamo a che fare con la stessa area di MO. Keras è un buon pacchetto, specialmente da quando è stato portato in R.
Solo che non capisco la domanda di cosa?
Buona fortuna
Ora questo è interessante... significa che dovranno essere fatti ulteriori test, forse questa rn non è così significativa come si pensava prima
L'unico vantaggio è la selezione dei pesi nell'ottimizzatore allo stesso tempo degli altri parametri del sistema
Attualmente sto cercando di scoprire quanto bene calcola in una gamma di dati conosciuti. Tavola della moltiplicazione per esempio.
Aggiornamento.
Ulteriori esperimenti dopo aver cambiato l'Expert Advisor hanno mostrato i seguenti risultati rispetto al normale MLP 3-5-1.
Sono state usate diverse formule per i test:
//double func(double d1,double d2,double d3 ){return d1*d2;} //l'errore è 0-2%, perché la moltiplicazione è inerente alle formule. 2% è ottenuto perché l'ottimizzatore genetico non si ferma sempre ad una soluzione ideale. Ma esiste anche una soluzione assolutamente esatta con errore = 0.
La conclusione è che l'MLP regolare ha 2-3 volte meno errori del RNP di Reshetov. Forse parte di questo errore è dovuto al fatto che l'ottimizzatore genetico del terminale MT5 non si ferma ad una soluzione ideale.//double func(double d1,double d2,double d3 ){return d1*d2*d3;}// errore 0-2% moltiplicazione è nelle formule, su MLP 1%
//double func(double d1,double d2,double d3 ){return MathSin(d1);}// errore 2-6%, su MLP 0,1%
//double func(double d1,double d2,double d3 ){return MathSin(d1)*MathSin(d2)*MathSin(d3);}// errore 2%, su MLP 1%
//double func(double d1,double d2,double d3 ){return MathSin(d1)*MathSin(d2)*MathSqrt(d3);}// 3-4% errore, su MLP 1%
//double func(double d1,double d2,double d3 ){return MathSin(d1)*MathPow(d2,.33)*MathSqrt(d3);}// errore 8-4%, a MLP 1.5%
//double func(double d1,double d2,double d3 ){return MathPow(d1,2)*MathPow(d2,.33)*MathSqrt(d3);}// errore 8-4%, a MLP 1.5%
Attualmente sto cercando di scoprire quanto bene conta all'interno di una gamma di dati conosciuti. Una tabella di moltiplicazione, per esempio.
Aggiornamento.
Ulteriori esperimenti dopo aver cambiato l'EA hanno mostrato i seguenti risultati, rispetto al normale MLP 3-5-1.
Sono state usate diverse formule per i test:
//double func(double d1,double d2,double d3 ){return d1*d2;} //l'errore è 0-2%, perché la moltiplicazione è inerente alle formule. 2% è ottenuto perché l'ottimizzatore genetico non si ferma sempre ad una soluzione ideale. Ma esiste anche una soluzione assolutamente esatta con errore = 0.
In sintesi, possiamo concludere che la MLP regolare ha 2-3 volte meno errori della RNN di Reshetov. Forse parte di questo errore è dovuto al fatto che l'ottimizzatore genetico del terminale MT5 non si ferma ad una soluzione ideale.//double func(double d1,double d2,double d3 ){return d1*d2*d3;}// errore 0-2% la moltiplicazione è inerente alle formule, a MLP 1%
//double func(double d1,double d2,double d3 ){return MathSin(d1);}// errore 2-6%, a MLP 0,1%
//double func(double d1,double d2,double d3 ){return MathSin(d1)*MathSin(d2)*MathSin(d3);}// errore 2%, a MLP 1%
//double func(double d1,double d2,double d3 ){return MathSin(d1)*MathSin(d2)*MathSqrt(d3);}// 3-4% errore, a MLP 1%
//double func(double d1,double d2,double d3 ){return MathSin(d1)*MathPow(d2,.33)*MathSqrt(d3);}// errore 8-4%, a MLP 1.5%
//double func(double d1,double d2,double d3 ){return MathPow(d1,2)*MathPow(d2,.33)*MathSqrt(d3);}// errore 8-4%, a MLP 1.5%
Sì, risultati interessanti, forse un'enumerazione completa sarebbe più accurata
Sì, risultati interessanti, forse un superamento completo sarebbe più accurato
Lo sarebbe, ma dopo qualche settimana o mese... 8 coefficienti selezionabili con passo 1% 1008= 10000000000000000 iterazioni, e il terminale stesso passa alla genetica, con quel numero.
Potete dirmi, classificando MLP da alglib capisco che richiede almeno 2 uscite, come lavorare con questo? nessun aiuto o descrizione da nessuna parte... tinny )
Posso chiedere, classificare MLP da alglib capisco, richiede almeno 2 uscite, come lavorare con esso?)
Sì 2, dall'aiuto http://alglib.sources.ru/dataanalysis/neuralnetwo rks.php
Un caso speciale sono le reti neurali con strato di uscita lineare e normalizzazione SOFTMAX delle uscite. Sono utilizzati per i problemi di classificazione, in cui le uscite della rete devono essere non negative e la loro somma deve essere strettamente uguale a uno, il che permette di utilizzarle come probabilità di assegnare il vettore di input a una delle classi (nel caso limite le uscite della rete addestrata convergono a queste probabilità). Il numero di uscite di una tale rete dovrebbe essere sempre non inferiore a due (limitazione imposta dalla logica elementare).
Sì, da http://alglib.sources.ru/dataanalysis/neuralnetworks.php riferimento
Un caso speciale sono le reti neurali con strato di uscita lineare e normalizzazione SOFTMAX delle uscite. Sono utilizzati per i problemi di classificazione, in cui le uscite della rete devono essere non negative e la loro somma deve essere strettamente uguale a uno, il che permette di utilizzarle come probabilità di assegnare il vettore di input a una delle classi (nel caso limite le uscite della rete addestrata convergono a queste probabilità). Il numero di uscite di una tale rete è sempre almeno due (limitazione dettata dalla logica elementare).
Ah, bene, cioè, alimentiamo la probabilità di uno o un altro risultato, per esempio probabilità di comprare 0,9, poi probabilità di vendere 0,1, un array servirà come buffer per le probabilità di comprare, un altro per vendere, li riempiamo con questi valori e dopo l'allenamento saranno usati per scaricare separatamente le probabilità di comprare e vendere, capisco, giusto?
Bene, in altre parole alimentiamo la probabilità di uno o un altro risultato, per esempio la probabilità di acquisto è 0.9, e per la vendita - 0.1. Una matrice servirà come buffer per le probabilità di acquisto, e l'altra per le probabilità di vendita e dopo la formazione in loro scarterà le probabilità separatamente, presumo corretto?
E da quello che ho letto - ho la stessa opinione.
Anche se non so quale sia il suo vantaggio... avendo 1 uscita, otteniamo anche delle probabilità - circa 0 (o -1) Buy, e circa 1 Sell. (o viceversa, a seconda di come ci si allena).
Può essere utile se ci sono 3 o più uscite? Dopo tutto, 1 uscita sarebbe difficile da usare.... per 3 o 4 compiti (sebbene si possano usare anche 0, 0,5 e 1 come classi Comprare, Aspettare, Vendere)
E da quello che ho letto - ho la stessa opinione.
Anche se non so quale sia il suo vantaggio... avendo 1 uscita, otteniamo anche delle probabilità - circa 0 (o -1) Buy, e circa 1 Sell. (O viceversa, a seconda di come ci si allena).
Potrebbe essere utile se ci sono 3 o più uscite? Allora 1 uscita sarebbe difficile da usare.... per 3 o 4 compiti (sebbene si possano usare anche 0, 0,5 e 1 come classi Comprare, Aspettare, Vendere)
Sì, probabilmente l'hanno fatto in modo che sia possibile avere più di 2 classi... allora probabilmente ci sarà più clustering e si potranno usare altri metodi come k-means :)