Le mystérieux numéro 63 :)
J'ai choisi la même date et les mêmes paramètres, mais les résultats sont différents.
Résultats des tests du premier modèleRésultats des tests du deuxième modèle
Tout d'abord, merci beaucoup d'avoir préparé ce document, c'est bien de pouvoir regarder dans différentes directions. C'est facile à suivre et bien conçu.
En ce qui me concerne, j'obtiens des taux de réussite similaires et un nombre de transactions légèrement inférieur avec le compte de démonstration, mais lorsque j'utilise le compte de démonstration de meta trader. Avec mon compte de trading, il n'y a qu'une seule transaction. Je suppose que c'est le fuseau horaire du courtier, mon courtier est en Australie (GMT+10). La première transaction du compte démo est ; Core 1 2023.01.02 07:02:00 deal #2 sell 1 EURUSD at 1.07016 done(based on order #2)
La première transaction de My Broker Australia (GMT+10) est ; Core 1 2023.01.03 00:00:00 failed market sell 1 EURUSD [Market closed] et je ne sais pas exactement comment résoudre ce problème. Il est possible que l'ensemble du modèle dépende du fuseau horaire. Si c'était le cas, les heures devraient être exprimées en heures entières ? mais comment la transaction de départ 2023.01.02 07:02:00 devient-elle 2023.01.03 00:00:00 ?
J'apprécierais toute suggestion sur la cause de ce problème.
trade serve
Même chose ici, j'ai réussi à reproduire des résultats très similaires avec les fichiers onnx originaux sur mon compte MetaQuates-Demo.
Ensuite, j'ai réussi à ré-entraîner les MLs Python jusqu'à la fin ; bien qu'avec les avertissements/erreurs suivants qui peuvent être ignorés :
D:\MT5 Demo1\MQL5\Experts\article_12433\Python>python ONNX.eurusd.D1.10.Training.py 2023-11-19 18:07:38.169418: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'cudart64_110.dll'; dlerror: cudart64_110.dll not found 2023-11-19 18:07:38.169664: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine. data path to save onnx model 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 5187/5187 [00:00<00:00, 6068.93it/s] 2023-11-19 18:07:40.434910: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'nvcuda.dll'; dlerror: nvcuda.dll not found 2023-11-19 18:07:40.435070: W tensorflow/stream_executor/cuda/cuda_driver.cc:263] failed call to cuInit: UNKNOWN ERROR (303) 2023-11-19 18:07:40.437138: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:169] retrieving CUDA diagnostic information for host: WIN-SSPXX7BO0B0 2023-11-19 18:07:40.437323: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:176] hostname: WIN-SSPXX7BO0B0 2023-11-19 18:07:40.437676: I tensorflow/core/platform/cpu_feature_guard.cc:193] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX AVX2 To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags. Epoch 1/50 111/111 - 1s - loss: 1.6160 - mae: 0.9378 - val_loss: 2.7602 - val_mae: 1.3423 - lr: 0.0010 - 1s/epoch - 12ms/step Epoch 2/50 111/111 - 0s - loss: 1.4932 - mae: 0.8952 - val_loss: 2.4339 - val_mae: 1.2412 - lr: 0.0010 - 287ms/epoch - 3ms/step ...
les deux scripts ML se terminent par :
111/111 - 0 s - loss: 1.2812 - mae: 0.8145 - val_loss: 1.2598 - val_mae: 0.8142 - lr: 1.0000 e-06 - 366 ms/epoch - 3 ms/step Epoch 50/50 111/111 - 0 s - loss: 1.3030 - mae: 0.8203 - val_loss: 1.2604 - val_mae: 0.8143 - lr: 1.0000 e-06 - 365 ms/epoch - 3 ms/step 33/33 [==============================] - 0 s 1 ms/step - loss: 1.1542 - mae: 0.7584 test_loss=1.154 test_mae=0.758 2023-11-19 18:07:57.480814: I tensorflow/core/grappler/devices.cc:66] Number of eligible GPUs (core count >= 8, compute capability >= 0.0): 0 2023-11-19 18:07:57.481315: I tensorflow/core/grappler/clusters/single_machine.cc:358] Starting new session 2023-11-19 18:07:57.560110: I tensorflow/core/grappler/devices.cc:66] Number of eligible GPUs (core count >= 8, compute capability >= 0.0): 0 2023-11-19 18:07:57.560380: I tensorflow/core/grappler/clusters/single_machine.cc:358] Starting new session 2023-11-19 18:07:57.611678: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:354] MLIR V1 optimization pass is not enabled saved model to model.eurusd.D1.10.onnx
24/24 - 0 s - loss: 0.6618 - accuracy: 0.6736 - val_loss: 0.8993 - val_accuracy: 0.4759 - lr: 4.1746 e-05 - 37 ms/epoch - 2 ms/step Epoch 300/300 24/24 - 0 s - loss: 0.6531 - accuracy: 0.6770 - val_loss: 0.8997 - val_accuracy: 0.4789 - lr: 4.1746 e-05 - 39 ms/epoch - 2 ms/step 11/11 [==============================] - 0 s 682 us/step - loss: 0.8997 - accuracy: 0.4789 test_loss=0.900 test_accuracy=0.479 2023-11-19 18:07:19.838160: I tensorflow/core/grappler/devices.cc:66] Number of eligible GPUs (core count >= 8, compute capability >= 0.0): 0 2023-11-19 18:07:19.838516: I tensorflow/core/grappler/clusters/single_machine.cc:358] Starting new session 2023-11-19 18:07:19.872285: I tensorflow/core/grappler/devices.cc:66] Number of eligible GPUs (core count >= 8, compute capability >= 0.0): 0 2023-11-19 18:07:19.872584: I tensorflow/core/grappler/clusters/single_machine.cc:358] Starting new session saved model to model.eurusd.D1.63.onnx
Ensuite, je recompile le fichier original ONNX.Price.Prediction.2M.D1.mq5 pour utiliser les nouveaux MLs que j'ai entraînés.
Les résultats du backtest avec le même compte MetaQuates-Demo étaient très différents de l'original ; ce qui ne semble pas bon.
J'aimerais vraiment savoir ce qui n'a pas fonctionné ?
Merci beaucoup.
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Vous acceptez la politique du site Web et les conditions d'utilisation


Un nouvel article Un exemple d'assemblage de modèles ONNX dans MQL5 a été publié :
ONNX (Open Neural Network eXchange) est un format ouvert conçu pour représenter les réseaux neuronaux. Dans cet article, nous allons montrer comment utiliser simultanément 2 modèles ONNX dans un Expert Advisor.
Pour un trading stable, il est généralement recommandé de diversifier à la fois les instruments négociés et les stratégies de trading. Il en va de même pour les modèles d'apprentissage automatique : il est plus facile de créer plusieurs modèles simples qu'un seul modèle complexe. Mais il peut être difficile d'assembler ces modèles en un seul modèle ONNX.
Mais il est possible de combiner plusieurs modèles ONNX entraînés dans un programme MQL5. Dans cet article, nous examinerons l'un de ces ensembles, appelé le classificateur par vote. Nous allons vous montrer comment il est facile de mettre en œuvre un tel ensemble.
Résultats des tests du premier modèle
Testons maintenant le second modèle. Voici les résultats du test du deuxième modèle.
Le deuxième modèle s'est avéré beaucoup plus solide que le premier. Les résultats confirment la théorie selon laquelle les modèles faibles doivent être assemblés. Toutefois, cet article ne porte pas sur la théorie de l'assemblage, mais sur son application pratique.
Auteur : MetaQuotes