Sistemi Esperti: Esempi tratti dal libro "Reti neurali per il trading algoritmico con MQL5" - pagina 3
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
Da quale script devo generare questo studio_data_not_norm.csv? Ho provato lo script create_initial data ma non ha funzionato. Ho ottenuto un intervallo fuori dai limiti quando ho eseguito lo script gpt_test_not_norm.mq5.
Cari amministratori,
Grazie mille per l'opportunità di imparare in un campo così unico!
Vorrei tornare sui post precedenti riguardo all'errore 5008.
Anche io non sono riuscito a caricare il tester della strategia per il modello addestrato gpt_not_norm.net con errore 5008, il file del modello non viene caricato.
Allo stesso tempo, quando si esegue su un grafico, il robot si comporta correttamente, il file del modello raccoglie valori adeguati dopo un passaggio diretto, li ho visualizzati sul grafico, tutto va bene.
Il file del modello, come dovrebbe essere, si trova nella directory secondo il flag True per Common \Terminal\Common\Files .
Inoltre, quando ho eseguito la stessa cosa su un altro computer, sul mio portatile, il tester della strategia si è avviato senza errori.
Potrebbe essere qualche impostazione di sistema che impedisce al tester di strategia di funzionare?
1.Strategy Tester non funziona su un computer con
processore Intel Core i5-9400F 2.90GHz, 16295 MB
Windows 10 home.
2.Strategy Tester funziona su un computer portatile con
processore Intel Core i7-2760QM 2 ,40GHz, 12238 MB
Windows 10 Pro.
Per favore aiutatemi a risolvere questo problema.
Ho davvero bisogno di impegnare il computer, ha una scheda video ed è sicuramente più veloce.
Durante l'esecuzione dello script gpt_test_not_norm.mq5, ho ottenuto un'uscita fuori campo.
Nella 40a riga del programma:
if(!loss_history.Resize(0,Epochs))
Modificare in:
if(!loss_history.Resize(Epochs))
Ciao. Ho scritto molto, è diventato un libro. Ho iniziato a leggerlo, ho pensato di scrivere qualcosa per il mercato.
È un buon lavoro. Perché non c'è nient'altro di così universale che spieghi come approcciare il machine learning con gli strumenti mql5.
Tuttavia.
Il campione è diviso in 3 parti: 60% di formazione, 20% di validazione e 20% di test. Su 40 barre di ogni catena di barre, 35 barre sono ripetute. Morale: allenatevi e convalidate utilizzando gli stessi dati. Ho fatto un disegno. Questo non è solo il problema di questo libro, lo riscontro continuamente.
All'inizio pensavo che l'indicatore Zigzag fosse l'ideale per evidenziare i movimenti non ripetitivi. Come il top to trough, il trough to trough, il trough to top. Si tratterebbe di pattern unici, come vengono chiamati nel libro. Invece no, l'autore costruisce i pattern barra per barra, e questo è ovviamente un errore grossolano. E non c'è bisogno di uno Zigzag per questo. Basta guardare avanti di 10 barre e calcolare dove è andato il mercato.
Questo è il primo punto - pratico. Il secondo punto è tecnico, anch'esso sbagliato. L'autore fornisce una formazione con convalida solo in Tensorflow? Va bene, Tensorflow è una libreria di apprendimento automatico prodotta da Google. Ma lo scopo di questo lavoro era mostrare come farlo con gli strumenti mql5, giusto?
Non ci sono esempi di apprendimento con validazione in mql5. Non ho ancora trovato esempi di validazione. Li scriverò più tardi, se volete. Naturalmente, si dovrebbe provare a farlo da soli. Certo che si dovrebbe. C'è molto lavoro da fare per preparare la storia e selezionare i parametri di addestramento. Tensorflow sembra avere tutto, ma c'è molto da fare. E qui si scopre che la parte tecnica non è finita.
È questo il 95% che perde valore senza il 5%?
Mi fermo al fatto che si tratta di un buon lavoro. Perché non c'è nient'altro di simile.
Il metodo di ottimizzazione di Adam non regola il learning_rate in base al tasso di apprendimento? Utilizza anche un "tetto" piuttosto che un valore costante.
Se si fa una rete ricorrente, perché aggiungere strati nascosti full-link? Il tema del full-link distrugge il tema dell'lstm. Naturalmente, alla fine della rete è necessario un neurone full-link da attivare.
Il dropout è una proprietà dello strato in qualsiasi rete neurale. Per esempio, in lstm la proprietà dropout è un must, altrimenti si abitua ai dati per diverse epoche. So che in pytorch la proprietà dropout può essere utilizzata solo in una transizione tra due strati identici, quindi sono necessari 2 strati ricorrenti. In tensorflow, invece, ogni livello può avere il dropout. Un vantaggio evidente di tensorflow rispetto a pytorch.
Elaborazione batch nella back propagation. Perché l'autore ha un batch è un numero qualsiasi! Si scopre che a ogni epoca sceglie una quantità casuale di dati da addestrare. Un batch è una quantità! Ad esempio, se si prendono in considerazione 1000 elementi, si ottengono 10 pacchetti di 100 valori ciascuno. Ogni epoca è un pacchetto diverso, ma ci sono sempre 100 valori. Eseguo l'addestramento pacchetto per pacchetto e regolo i pesi alla fine di ogni pacchetto. In questo modo posso assicurarmi di non rimanere bloccato su un minimo locale. Inoltre, utilizzo tutti i dati del campione, non solo alcuni.
L'ottimizzazione del commercio non funziona ancora. Viene visualizzato uno strano errore nella finestra di dialogo. Il computer si è spento una volta. Cioè, se si addestra la rete e poi si cerca di ottimizzare il trade con essa.
A mio parere, è sbagliato utilizzare uno stimolatore grafico per il forex. Da qualsiasi punto di vista lo si guardi, non ci sono molti dati. A mio parere, sarebbe più corretto utilizzare gli agenti di metatrader nell'ottimizzatore per eseguire flussi di formazione diversi per reti diverse. Per esempio, in tensorflow sto addestrando 7 flussi. Uno si esaurisce, se ne aggiunge un altro. E così via in ordine di 100 varianti. Poi le eseguo sulla storia.
Il punto è che una rete neurale può essere buona. Ma non tutte le reti neurali sono in grado di superare la storia dell'addestramento. Ecco perché servono molte varianti di reti.
ChatGPT suggerisce che il modo migliore per classificare tra i due è utilizzare una sigmoide. Ed è proprio quello che non sono riuscito a trovare. E le funzioni di attivazione sono diverse. Ma la funzione di perdita è la stessa: MSE?
La tangente è ancora una regressione, non una classificazione. Da -1 a 1 non è una probabilità, ma un calcolo del valore.
In breve, va bene. Non c'è altro da fare. Quindi il lavoro è sicuramente buono. Lo userò.
LG 2 10:07:44.216 Core 1 disconnesso
KP 0 10:07:44.216 Core 1 connessione chiusa
Hai avuto fortuna nel trovare una soluzione? Se la trovo, la posterò.
Non c'è nessun file"our_model.net " IMO