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
Bell'articolo. Il grafico di previsione sui dati di test è deludente. Potreste anche saltare tutta la modellazione/addestramento DNN e utilizzare semplicemente una previsione del prezzo successivo uguale all'ultimo prezzo noto. Scommetto che l'accuratezza della previsione di questo modello banale sarà superiore a quella del modello DNN. Suggerisco di confrontare queste due accuratezze e di mostrarle qui. In generale, l'uso di DNN per prevedere i prezzi è una cattiva idea. Sono più adatti per la classificazione dei modelli di prezzo (ad esempio, comprare, vendere, tenere). Inoltre, il numero di pesi nella vostra DNN è astronomico. Deve trattarsi di un overfitting.
Grazie Vladimir.
A titolo di discussione, quando il tempo lo permetterà, modificherò questo modello per effettuare una classificazione a scopo di confronto.
Fatemi sapere se avete idee.
Il tutorial fornisce un input di un batch SAMPLE_SIZE di input ravvicinati, mentre voi volete un batch di input_count di input.
Inoltre il vostro modello non usa i float come input, ma i double,
Nota del moderatore: questo post è fuori sequenza perché i post sottostanti sono stati spostati da un altro argomento. Si prega di vedere il post sottostante.
Salve comunità MQL5, ho cercato di seguire questo tutorial su come utilizzare ONNX nei vostri EA. Nel tutorial il modello scelto era una rete neurale, io ho usato un albero con gradiente boosted.
Ho costruito il modello utilizzando il pacchetto InterpretML di Python e l'ho esportato in ONNX utilizzando ebm2onnx.
Riassumerò il processo con cui è stato addestrato il modello.
1) Il modello è stato addestrato su 5 input, OHLC e Altezza, l'Altezza è calcolata come ((H + L) / 2) - C.
2) Il modello è un classificatore binario, con l'obiettivo di classificare la candela successiva come UP (1) o DOWN (0).
I dati utilizzati per addestrare il modello.
3) Il modello è stato poi esportato in formato ONNX.
Rappresentazione del modello ONNX.
Per far funzionare il modello, mi sono discostato dal codice del tutorial e ho continuato a modificare il codice per cercare di far funzionare il modello ONNX, ma ora non so davvero cosa sto sbagliando. Continuo a ricevere un errore che indica che l'handle del modello non è valido.
Ho allegato il codice MQL5 qui sotto.
Ora riepilogherò i passi che ho fatto nel mio codice e che si discostano da quanto riportato nel tutorial e spiegherò anche perché mi sono discostato dal tutorial.
1) LINEA 57: Impostazione della forma di ingresso del modello.
Nel tutorial sono state utilizzate 3 dimensioni per impostare la forma di ingresso e di uscita, ovvero {1,SAMPLE_SIZE,1}; tuttavia, quando ho seguito questo approccio ho continuato a ricevere un errore, in particolare l'errore 5808. Dopo il consueto processo di ricerca ed errore, ho capito che se utilizzavo solo una dimensione, il numero di ingressi, l'errore scompariva.
2) LINEA 68: Impostazione della forma di uscita del modello.
Stessa logica di cui sopra.
Le altre deviazioni che ho fatto non influiscono sul modello, ad esempio ho tenuto traccia del tempo usando una logica che ho trovato più intuitiva di quella implementata nel tutorial. Non ho avuto bisogno di normalizzare gli input perché si tratta di un modello ad albero.
Se riuscite a individuare altri errori che ho commesso, vi sarei grato se poteste darmi una risposta.
Forum sul trading, sui sistemi di trading automatico e sul test delle strategie di trading
Discussione dell'articolo "Come utilizzare i modelli ONNX in MQL5
Stian Andreassen, 2023.12.08 20:51
Il tutorial fornisce un input di un batch SAMPLE_SIZE numero di input ravvicinati, tu vuoi un batch di input_count input.
Inoltre il vostro modello non usa i float come input, ma i double,
Grazie per la condivisione di Sitan, ho applicato ciò che hai indicato ma l'errore è ancora presente.
Un lotto di ingressi input_count.

Impostare l'ingresso su doppio
Messaggio di errore.
Hello MQL5 community, I've been trying to follow this tutorial on how to use ONNX in your EA's. In the tutorial a neural network was the model of choice, I've used a gradient boosted tree.
Ho costruito il modello utilizzando il pacchetto InterpretML Python e l'ho esportato in ONNX utilizzando ebm2onnx.
Riassumerò il processo con cui il modello è stato addestrato.
1) Il modello è stato addestrato su 5 input, OHLC e Altezza, l'Altezza è calcolata come ((H + L) / 2) - C.
2) Il modello è un classificatore binario, con l'obiettivo di classificare la candela successiva come UP (1) o DOWN (0).
I dati utilizzati per addestrare il modello.
3) Il modello è stato poi esportato in formato ONNX.
Rappresentazione del modello ONNX.
Per far funzionare il modello, mi sono discostato dal codice del tutorial e ho continuato a modificare il codice per cercare di far funzionare il modello ONNX, ma ora non so proprio cosa sto sbagliando. Continuo a ricevere un errore che indica che l'handle del modello non è valido.
Ho allegato il codice MQL5 qui sotto.
Ora riepilogherò i passi che ho fatto nel mio codice e che si discostano da quanto riportato nel tutorial e spiegherò anche perché mi sono discostato dal tutorial.
1) LINEA 57: Impostazione della forma di ingresso del modello.
Nel tutorial sono state utilizzate 3 dimensioni per impostare la forma di ingresso e di uscita, ovvero {1,SAMPLE_SIZE,1}; tuttavia, quando ho seguito questo approccio ho continuato a ricevere un errore, in particolare l'errore 5808. Dopo il consueto processo di ricerca ed errore, ho capito che se utilizzavo solo una dimensione, il numero di ingressi, l'errore scompariva.
2) LINEA 68: Impostazione della forma di uscita del modello.
Stessa logica di cui sopra.
Le altre deviazioni che ho fatto non influiscono sul modello, ad esempio ho tenuto traccia del tempo usando una logica che ho trovato più intuitiva di quella implementata nel tutorial. Non ho avuto bisogno di normalizzare gli input perché si tratta di un modello ad albero.
Se riuscite a individuare altri errori che ho commesso, vi sarei grato se poteste darmi una risposta.
Grazie per la condivisione di Sitan, ho applicato ciò che hai indicato ma l'errore è ancora presente.
Un lotto di ingressi input_count.
Impostare l'ingresso su doppio
Messaggio di errore.
Sembra che MQL5 non supporti (o meglio ONNXMLTools non supporta ancora ONNX di EBM:
https://www.mql5.com/it/docs/onnx/onnx_conversion
Se si fa riferimento agli allegati ONNX (in particolare model.eurusd.D1.10.class.onnx che utilizza 4 input) da https://www.mql5.com/it/articles/12484; e si utilizza Netron(versione web) per visualizzare i file onnx, si noteranno le differenze.
Penso che anche i due articoli seguenti possano aiutarvi a capire meglio:
Modelli di regressione della libreria Scikit-learn e loro esportazione in ONNX
Modelli di classificazione della libreria Scikit-Learn e loro esportazione in ONNX
Ciao a tutti,
Stiamo cercando di utilizzare una rete neurale keras con 11 predittori in un momento (batch size 32) per fare previsioni su XauUsd (dove l'output è un numero singolare tra 0 e 1). In primo luogo, carichiamo da OnnxCreatefrombuffer (perché OnnxCreate stesso non funziona per noi), poi otteniamo sempre un errore nella fase OnnxRun, dove ho allegato entrambi gli errori qui sotto. Qualsiasi aiuto su quale dimensione rimodellare per l'input, in quale formato inserire il nostro vettore di predizione (se deve essere un vettore?), o semplicemente qualsiasi aiuto o suggerimento sulla sintassi per affrontare questi errori sarebbe fantastico. Abbiamo provato a rimodellare tutti i tipi di combinazioni di vettori 32,1,11 senza fortuna e non abbiamo idea dei prossimi passi da fare. Grazie mille a chiunque possa aiutarci!!! Ben.
' errore 5808'
ONNX: il parametro di input #0 del tensore ha una dimensione errata [0], provare a usare OnnxSetInputShape'.
ONNX: dimensione del parametro di input #0 non valida, previsti 1408 byte invece di 480".
Ciao, ho provato ad usare lo script
OnnxModelInfo.mq5ma non riesco a farlo funzionare, cosa sto sbagliando? Non può essere così complicato!
Ho copiato e incollato lo script OnnxModelInfo e l'ho salvato nella cartella de Files.
Ho un modello onnx (allegato)
e quando compilo lo script, appaiono 21 errori.
Qualcuno può aiutarmi? Per favore
È stato pubblicato il nuovo articolo Utilizzo dei modelli ONNX in MQL5:
Autore: MetaQuotes
Salve signori.
Qualcuno può aiutarmi, perché alla fine del processo in python, viene fuori il seguente errore: AttributeError: 'Sequential' object has no attribute 'output_names'. Non so molto di python o di programmazione. Quindi qualsiasi aiuto sarebbe apprezzato! Grazie.
Ciao Alberto, per favore pubblica la parte del tuo codice[usando il pulsanteCODICE (Alt -S)] in cui si verifica l'errore in modo che qualcuno che conosce Python(MetaTrader for Python | ONNX Models) possa indicare la soluzione...