Discussione sull’articolo "Come utilizzare i modelli ONNX in MQL5" - pagina 4

 
Grazie mille. Lo apprezzo molto. Vorrei che ci fossero molti più articoli al riguardo nel prossimo futuro.
 

c'è un problema con onyx lib qualche idea?

Durante l'installazione di onyx ho ricevuto un errore

ERRORE: Impossibile trovare una versione che soddisfi il requisito onyx (dalle versioni: 0.0.5, 0.0.17, 0.0.19, 0.0.20, 0.0.21, 0.1, 0.1.1, 0.1.3, 0.1.4, 0.1.5, 0.2, 0.2.1, 0.3, 0.3.2, 0.3.3, 0.3.4, 0.3.5, 0.3.6, 0.3.7, 0.3.8, 0.3.9, 0.3.10, 0.3.11, 0.3.12, 0.4, 0.4.1, 0.4.2, 0.4.4, 0.4.5, 0.4.6, 0.4.7, 0.5, 0.6.1, 0.6.2, 0.6.3, 0.6.4, 0.7.3, 0.7.4, 0.7.5, 0.7.6, 0.7.7, 0.7.8, 0.7.10, 0.7.11, 0.7.12, 0.7.13, 0.8.5, 0.8.7, 0.8.10, 0.8.11)

ERRORE: Nessuna distribuzione corrispondente trovata per onyx

poi quando si esegue t2fonnx

importare onyx

ModuleNotFoundError: Nessun modulo chiamato 'onyx'



 
È strano, la rete è addestrata su un periodo di un'ora, ma l'Expert Advisor alimenta dati giornalieri. Si tratta di un errore? O non capisco qualcosa?
 
donbar upbar #:

c'è un problema con onyx lib qualche idea?

Durante l'installazione di onyx ho ricevuto un errore

ERRORE: Impossibile trovare una versione che soddisfi il requisito onyx (dalle versioni: 0.0.5, 0.0.17, 0.0.19, 0.0.20, 0.0.21, 0.1, 0.1.1, 0.1.3, 0.1.4, 0.1.5, 0.2, 0.2.1, 0.3, 0.3.2, 0.3.3, 0.3.4, 0.3.5, 0.3.6, 0.3.7, 0.3.8, 0.3.9, 0.3.10, 0.3.11, 0.3.12, 0.4, 0.4.1, 0.4.2, 0.4.4, 0.4.5, 0.4.6, 0.4.7, 0.5, 0.6.1, 0.6.2, 0.6.3, 0.6.4, 0.7.3, 0.7.4, 0.7.5, 0.7.6, 0.7.7, 0.7.8, 0.7.10, 0.7.11, 0.7.12, 0.7.13, 0.8.5, 0.8.7, 0.8.10, 0.8.11)

ERRORE: Nessuna distribuzione corrispondente trovata per onyx

poi quando si esegue t2fonnx

importare onyx

ModuleNotFoundError: Nessun modulo chiamato 'onyx'



Ciao Donbar, sembra che tu stia cercando di installare il pacchetto sbagliato. Dovrebbe essere onnx, non onyx.
 

Ciao, grazie per l'articolo. Un'ottima guida su come costruire un modello ML e incorporarlo in un EA!

Ho provato a riprodurre i tuoi risultati, ma sto riscontrando alcuni problemi. Speravo che potessi aiutarmi a capirne il motivo.

Ho seguito attentamente l'articolo, ma ho ottenuto risultati radicalmente diversi nel tester della strategia. Capisco che questi algoritmi abbiano delle caratteristiche casuali, ma sono comunque sorpreso dalla differenza. Ho anche fatto attenzione a utilizzare gli stessi periodi di tempo, in modo che almeno i miei dati di formazione e di test fossero gli stessi ai fini della costruzione del modello, e il mio backtest MT5 si è svolto nello stesso periodo. Ho ottenuto risultati molto diversi.

Ho cercato di identificare le possibili cause e credo che la differenza più interessante inizi durante la costruzione del modello. Le mie funzioni di perdita suggeriscono che avete ottenuto una generalizzazione molto migliore quando avete esaminato le prestazioni sui dati di test/validazione. Le ho incluse alla fine di questo messaggio.

Potete suggerire le possibili cause di questo fenomeno? Il modello è così fragile da non essere inaspettato?

Il mio ultimo tentativo di riproduzione consisteva nel copiare il codice Python finale, inserendo alcune chiamate a Matplotlib per produrre i grafici delle perdite, ma ho ottenuto sostanzialmente gli stessi risultati. Può suggerirmi come riprodurre meglio i suoi risultati?

Grazie

File:
LOSS.png  99 kb
RMSE.png  120 kb
copypaste.py  5 kb
 
Vladimir Perervenko progetto di apprendimento automatico si compone di tre fasi:
  • preelaborazione (molte cose)
  • selezione del modello, addestramento, ottimizzazione, ecc.
  • implementazione

L'uso dei modelli ONNX in µl risolve il problema dell'implementazione. Tuttavia, non tutti i modelli e non sono del tutto semplici.

L'addestramento e l'ottimizzazione dei modelli sono risolti con un processo separato in Python.

Ma di tutto ciò, la prima fase è quella che richiede più tempo, più creativa e più importante. Ed è impossibile realizzarla su µl. Non consideriamo la scalatura primitiva come una preelaborazione. E la saggezza popolare dice: "Garbage in - rubbish out". C'è troppo da sviluppare e implementare in MCL per poter utilizzare appieno il MO solo su MCL. È impossibile abbracciare l'immenso, soprattutto perché è in continua espansione.

Pertanto, per eseguire un preprocesso, o lo si realizza in un altro linguaggio (chi ha padronanza di R/Python/Julia, ecc.) o si cerca di convertirlo in ONNX.

Il vantaggio dell'implementazione di ONNX per ora sta solo nell'imparare a convertire, creare, semplificare e ottimizzare i modelli ONNX. Potrebbe essere utile in futuro.

Non si potrebbe dire di meglio, tutto è preciso e al punto giusto.

 
Rorschach #:

Trasferire la preelaborazione a MT non è un problema, voglio davvero testare il sistema con il tester di MT, in python/R devo scrivere il mio tester, pieno di errori.

Esistono già molti tester, testati in R e python.

Ma trasferire la preelaborazione è solo un problema, la preelaborazione non è un banale calcolo scalare o stocastico.
 
Bill M tester della strategia. Capisco che questi algoritmi abbiano delle caratteristiche casuali, ma sono comunque sorpreso dalla differenza. Ho anche fatto attenzione a utilizzare gli stessi periodi di tempo, in modo che almeno i miei dati di formazione e di test fossero gli stessi ai fini della costruzione del modello, e il mio backtest MT5 si è svolto nello stesso periodo. Ho ottenuto risultati molto diversi.

Ho cercato di identificare le possibili cause e credo che la differenza più interessante inizi durante la costruzione del modello. Le mie funzioni di perdita suggeriscono che avete ottenuto una generalizzazione molto migliore quando avete esaminato le prestazioni sui dati di test/validazione. Le ho incluse alla fine di questo messaggio.

Potete suggerire le possibili cause di questo fenomeno? Il modello è così fragile da non essere inaspettato?

Il mio ultimo tentativo di riproduzione consisteva semplicemente nel copiare il tuo codice Python finale, inserendo alcune chiamate a Matplotlib per produrre i grafici delle perdite, ma ho avuto sostanzialmente gli stessi risultati. Può suggerirmi come riprodurre meglio i suoi risultati?

Grazie

Anche qui lo stesso problema.

Qualcuno può aiutarmi per favore?

 
Joseph #:

Anche qui si presenta lo stesso problema.

Qualcuno può aiutarmi per favore?

Continua la mia indagine sul problema che sto affrontando (probabilmente anche altri); e gli aggiornamenti dei miei risultati.

Prima di tutto, ringrazio MetaQuotes (l'autore) per aver condiviso questo articolo dettagliato. Ho imparato molto nella mia ricerca sul trading ML.

Eseguendo i file onnx originali dell'articolo sul mio conto MetaQuates-Demo, sono riuscito a riprodurre gli stessi risultati. Tuttavia, riqualificando il modello onnx con l'allegato ONNX.eurusd.H1.120.Training.py:

data start date = 2022-09-03 00:00:00
data end date = 2023-01-01 00:00:00

il modello (onnx allegato: ) ottiene un punteggio:

RMSE         : 0.005212606864326095
MSE          : 2.7171270322019527e-05
R2 score     : -3.478924709873314

e i risultati del backtest 1Gennaio2023-26Mar2023 in allegato: "backtest results.png"

MetaQuotes
  • 2023.11.23
  • www.mql5.com
Trader's profile
File:
 

Ho riqualificato l'allegato ONNX.eurusd.H1.120.Training.py con quanto segue:

data start date = 2022-11-28 12:28:00
data end date = 2023-03-28 12:28:00

il modello (onnx allegato:) ottiene un punteggio:

RMSE         : 0.0014680559413400179
MSE          : 2.155188246903726 e-06
R2 score     : 0.9699715149559284

e i risultati del bactest 1Gennaio2023-26Mar2023 in allegato: "risultato bacttest2.png"

Quindi, dagli esercizi di cui sopra, immagino che il modello utilizzato per produrre il risultato finale dell'articolo non sia stato addestrato con le seguenti date?

data start date = 2022-09-03 00:00:00
data end date = 2023-01-01 00:00:00
Sarei grato se qualcuno potesse commentare questi dati.
File: