L'apprentissage automatique dans la négociation : théorie, modèles, pratique et algo-trading - page 2938

 
Mikhail Mishanin #:

2023.02.28 05:27:35.269 Stockage a rejoint avec succès le projet 'ONNX.Price.Prediction'

2023.02.28 05:27:56.191 Stockage Stockage MQL5 activé

2023.02.28 05:27:56.191 Stockage checkout démarré pour MQL5

2023.02.28 05:27:56.635 Stockage Impossible de trouver le système de fichiers SVN demandé (720003)

2023.02.28 05:28:32.432 Stockage Propriétaire du stockage MQL5 est 'dinpae@gmail.com', changer le compte MQL5

Qu'est-ce que cela signifie ? Impossible de se connecter.

On - Connecter le stockage MQL5. donne 2023.02.28 05:36:25.147 Stockage Propriétaire Le stockage MQL5 est 'dinpae@gmail.com', changer le compte MQL5.


Quel compte avez-vous utilisé pour vous connecter à MQL5 Storage ?

Avez-vous spécifié votre email ou votre login exact sensible à la casse ?

L'email n'est pas accepté.

 
Aleksey Nikolayev #:

Cliquez avec le bouton droit de la souris sur le nom du projet. Il doit ressembler à ceci :


Oui, cela existe, mais il y a une erreur
2023.02.28 13:05:45.151 Storage checkout started for MQL5\Shared Projects\ONNX.Price.Prediction
2023.02.28 13:05:45.667 Storage Not authorized to open root of edit operation  (220000)
Il y a une sorte d'autorisation quelque part
 
Evgeny Dyuka #:
Oui, cela existe, mais il y a une erreur
Il y a une sorte d'autorisation quelque part.

Je ne sais pas. Essayez de quitter et de supprimer le projet, puis rejoignez-le, et obtenez une mise à jour du référentiel.

Lorsque vous quittez un projet dans le journal :

2023.02.28 16:31:47.481 Storage successfully left the project 'ONNX.Price.Prediction'

Lors de la suppression, rien n'est écrit. Lorsque vous rejoignez un projet :

2023.02.28 16:31:59.970 Storage successfully joined to the project 'ONNX.Price.Prediction'

Lors de la réception d'une mise à jour :

2023.02.28 16:41:43.985 Storage checkout started for MQL5\Shared Projects\ONNX.Price.Prediction
2023.02.28 16:41:44.750 Storage added MQL5\Shared Projects\ONNX.Price.Prediction\Python
2023.02.28 16:41:44.750 Storage added MQL5\Shared Projects\ONNX.Price.Prediction\Python\PricePredictionTraining.py
2023.02.28 16:41:44.750 Storage added MQL5\Shared Projects\ONNX.Price.Prediction\Python\PricePrediction.py
2023.02.28 16:41:44.750 Storage added MQL5\Shared Projects\ONNX.Price.Prediction\Python\model.onnx
2023.02.28 16:41:44.750 Storage added MQL5\Shared Projects\ONNX.Price.Prediction\ONNX.Price.Prediction.mq5
2023.02.28 16:41:44.750 Storage added MQL5\Shared Projects\ONNX.Price.Prediction\ONNX.Price.Prediction.mqproj
2023.02.28 16:41:44.784 Storage checkout completed successfully in 797 ms

L'autorisation ne s'est faite que lors de la connexion au dépôt - il est impossible de rejoindre le projet sans elle.

Je ne peux plus vous aider. A moins que vous n'ayez une ancienne version - je l'ai fait avec la dernière (beta et release).

 
Aleksey Nikolayev #:

Je ne sais pas. Essayez de quitter et d'effacer le projet, puis de le réintégrer, et enfin d'obtenir une mise à jour du dépôt.

Lorsque vous quittez un projet dans le journal :

Lors de la suppression, rien n'est écrit. Lorsque vous rejoignez un projet :

Lors de la réception d'une mise à jour :

L'autorisation n'était nécessaire que lors de la connexion au référentiel - sans elle, il est pratiquement impossible de rejoindre le projet.

Je ne peux pas vous aider pour le reste. A moins que vous n'ayez une ancienne version - je l'ai fait avec la dernière (beta et release).

Je l'ai fait, merci
 
Evgeny Dyuka #:
J'ai compris, merci.

Juste au cas où, je poste le projet dans les archives.

Dossiers :
 
Renat Fatkhullin #:

Quel compte avez-vous utilisé pour vous connecter à MQL5 Storage ?

Avez-vous spécifié votre email ou un login exact sensible à la casse ?

L'email n'est pas accepté.

sur le login login, seul mon login est tordu au départ, avec des points dr.mr.mom, je l'ai depuis longtemps, pouvez-vous changer le login ?

 

Publication de la version bêta 3589, sur laquelle vous pouvez tester le fonctionnement des modèles ONNX.

Etapes :

  1. Mettre à jour vers la version 3589 via Aide -> Vérifier les mises à jour du bureau -> Dernière version bêta

  2. Activez MQL5 Storage en spécifiant le login MQL5 correct (pas l'email) en respectant les majuscules et les minuscules :






  3. Si vous avez une configuration corrompue et que MQL5 Storage ne fonctionne pas, ouvrez l'explorateur via Fichier -> Ouvrir le dossier de données, allez dans le répertoire MQL5 et supprimez les fichiers suivants :


    . Passez ensuite à l'étape 2.

  4. Rejoignez le projet ONNX.Price.Prediction à partir du menu contextuel en utilisant la commande Join.



  5. Ouvrez le Navigateur, la section Projets partagés et sur le projet ONNX.Price.Prediction appelez Update from Storage depuis le menu contextuel :



    Le projet sera téléchargé depuis MQL5 Storage (Subversion).

  6. Ouvrez le projet et cliquez sur ONNX.Price.Prediction.mqproj - c'est le fichier du projet.



  7. Copiez le projet et exécutez-le sur EURUSD, H1.

  8. Obtenez le résultat :
    2023.02.28 21:54:43.316 Scripts script ONNX.Price.Prediction (EURUSD,H1) loaded successfully
    2023.02.28 21:54:43.348 ONNX    initialized [API version 1.14.0]
    
    в журнале Experts: важны две последние строки, а остальное - специально включенные отладочные логи по флагу ONNX_DEBUG_LOGS
    
    2023.02.28 22:11:53.441 ONNX.Price.Prediction (EURUSD,H1)       ONNX: Creating and using per session threadpools since use_per_session_threads_ is true
    2023.02.28 22:11:53.441 ONNX.Price.Prediction (EURUSD,H1)       ONNX: Dynamic block base set to 0
    2023.02.28 22:11:53.442 ONNX.Price.Prediction (EURUSD,H1)       ONNX: Initializing session.
    2023.02.28 22:11:53.442 ONNX.Price.Prediction (EURUSD,H1)       ONNX: Adding default CPU execution provider.
    2023.02.28 22:11:53.442 ONNX.Price.Prediction (EURUSD,H1)       ONNX: Total shared scalar initializer count: 0
    2023.02.28 22:11:53.443 ONNX.Price.Prediction (EURUSD,H1)       ONNX: Total fused reshape node count: 0
    2023.02.28 22:11:53.443 ONNX.Price.Prediction (EURUSD,H1)       ONNX: Total shared scalar initializer count: 0
    2023.02.28 22:11:53.443 ONNX.Price.Prediction (EURUSD,H1)       ONNX: Total fused reshape node count: 0
    2023.02.28 22:11:53.444 ONNX.Price.Prediction (EURUSD,H1)       ONNX: Use DeviceBasedPartition as default
    2023.02.28 22:11:53.444 ONNX.Price.Prediction (EURUSD,H1)       ONNX: Saving initialized tensors.
    2023.02.28 22:11:53.444 ONNX.Price.Prediction (EURUSD,H1)       ONNX: Done saving initialized tensors
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: Session successfully initialized.
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: Number of streams: 1
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: Begin execution
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 0
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: ort value 1 released
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 1
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: ort value 2 released
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 3
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: ort value 6 released
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 4
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: ort value 8 released
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 5
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: ort value 9 released
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 6
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 7
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 2
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: ort value 3 released
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: ort value 11 released
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 8
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 9
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: ort value 16 released
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 10
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 11
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: ort value 22 released
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 12
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: ort value 25 released
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 13
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: ort value 27 released
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 27
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 17
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 18
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: ort value 28 released
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 28
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: ort value 30 released
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 26
    
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       [-1.5921557]
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       predicted 1.0591759612759748
    
  9. Si cela ne fonctionne pas, cela signifie que la version d'ONNX Runtime est ancienne ou qu'il manque

    Dans ce cas, téléchargez l'archive ONNX Runtime 1.14, signée par Microsoft, étendez-la dans le répertoire racine du terminal à côté de terminal64.exe et redémarrez le terminal :

Dans le projet, le modèle le plus simple formé pour les besoins de l'exemple model.onnx est immédiatement attaché afin que vous puissiez voir la démonstration.



Pour entraîner vous-même le modèle, vous devez utiliser les scripts python inclus dans le projet :

  1. Installez Python 3 (par exemple Python 3.10) et livrez/mettez à jour les paquets :
    python.exe -m pip install --upgrade pip
    pip install --upgrade tensorflow
    pip install --upgrade pandas
    pip install --upgrade scikit-learn
    pip install --upgrade matplotlib
    pip install --upgrade tqdm
    pip install --upgrade metatrader5
    pip install --upgrade onnx==1.12
    pip install --upgrade tf2onnx
    Le paquet onnx doit explicitement indiquer la version 1.12 afin de ne pas entrer en conflit avec les exigences de tensorflow.

  2. Lancer MetaEditor et s'assurer que Python est reconnu dans Tools -> Options -> Compilers :



    Si nécessaire, spécifier le chemin vous-même, si l'éditeur ne peut pas le détecter par lui-même.

  3. Le terminal de trading doit être connecté à un serveur avec EURUSD (par exemple, MetaQuotes-Demo)

    Assurez-vous que l'intégration avec Python est activée dans les paramètres du terminal. Si elle était désactivée, activez-la et redémarrez le terminal :




  4. Allez au projet ONNX.Price.Prediction dans le navigateur et ouvrez le fichier PricePredictionTraning.py.


  5. Lancez le script de compilation, ce qui pour un script Python signifie démarrer.

    Le script se connectera au terminal avec l'aide du package MetaTrader5 (s'il est éteint, il démarrera automatiquement) et commencera l'entraînement sur EURUSD, H1 :


    Une fois terminé, l'éditeur de journal contiendra :
    .
    2023.02.28 22:24:16.876 Python  107/107 [==============================] - 0 s 1 ms/step - loss: 1.9167 - mae: 0.8553
    2023.02.28 22:24:16.876 Python  test_loss=1.917
    2023.02.28 22:24:16.876 Python  test_mae=0.855
    2023.02.28 22:24:17.179 Python  saved model to C:\Users\sys\AppData\Roaming\MetaQuotes\Terminal\8 D1E0A7047FFD62A8C00B09AEC1F3004\MQL5\Shared Projects\ONNX.Price.Prediction\Python\model.onnx
    2023.02.28 22:24:17.291 Storage modify MQL5\Shared Projects\ONNX.Price.Prediction\Python\model.onnx to base
    
    Le nouveau modèle.onnx sera sauvegardé/mis à jour dans le projet. Il peut déjà être utilisé.

  6. Exécutez le script PricePrediction.py pour vous assurer que le modèle fonctionne :
    .
    2023.02.28 22:27:46.078 Python  data path to load onnx model C:\Users\sys\AppData\Roaming\MetaQuotes\Terminal\8 D1E0A7047FFD62A8C00B09AEC1F3004\MQL5\Shared Projects\ONNX.Price.Prediction\Python\
    2023.02.28 22:27:46.078 Python  [[[1.061412 1.062328 1.060358 1.061169]]]
    2023.02.28 22:27:46.078 Python  [[[0.00105361 0.00119785 0.00074662 0.00125179]]]
    2023.02.28 22:27:46.078 Python  [[[ 0.18792516  0.17698306  0.01607251 -0.45455042]
    2023.02.28 22:27:46.078 Python    [-0.77068297 -0.50757406  0.2839477   0.36827372]
    2023.02.28 22:27:46.078 Python    [ 0.21639867 -0.3823502   0.48485409 -0.19891574]
    2023.02.28 22:27:46.078 Python    [-0.46696554 -0.31556414  0.33752274  0.48011389]
    2023.02.28 22:27:46.078 Python    [ 0.3302927   0.7196198   1.36884221  1.56656129]
    2023.02.28 22:27:46.078 Python    [ 1.63058293  1.46261473  1.39562973  1.74231014]
    2023.02.28 22:27:46.078 Python    [ 1.82040632  1.84663458 -0.26519644 -0.52644768]
    2023.02.28 22:27:46.078 Python    [-0.84661232 -0.50757406 -0.45270907 -0.86995678]
    2023.02.28 22:27:46.078 Python    [-1.27371495 -1.11699687 -1.10900328 -0.48650476]
    2023.02.28 22:27:46.078 Python    [-0.82762998 -1.37579285 -2.0599602  -1.62088366]]]
    2023.02.28 22:27:46.094 Python  [[-1.6349795]]
    2023.02.28 22:27:46.094 Python  predict:  [1.05912]
    
  7. L'exemple de test a fonctionné !


Il s'agit d'un exemple spécialement créé pour démontrer à la fois l'entraînement et l'exécution des modèles.

Vous pouvez convertir vos propres modèles TensorFlow au format ONNX en utilisant les paquets python onnx et tf2onnx :

import tf2onnx
...
onnx_model = tf2onnx.convert.from_keras(model, output_path=output_path)

ps : utilisez la dernière version du projet, car les prototypes des fonctions ont changé dans l'ancienne version.
 

Cela a fonctionné.

2023.03.01 06:54:34.987 ONNX.Price.Prediction (EURUSD,H1)       [-0.20001383]
2023.03.01 06:54:34.988 ONNX.Price.Prediction (EURUSD,H1)       predicted 1.0581684510582798
 
Renat Fatkhullin #:
  1. Mettre en place Python 3 (par exemple Python 3.10) et livrer/mettre à jour les paquets :
    Paquet onnx avec une mention explicite de la version 1.12 afin de ne pas entrer en conflit avec les exigences de tensorflow.

Impossible d'installer ce paquet. Il a d'abord fallu installer CMake. Maintenant, il faut installer Visual Studio ?

CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
 
Aleksey Nikolayev #:

Impossible d'installer ce paquet. Ils ont d'abord demandé d'installer CMake. Et maintenant, ils exigent l'installation de Visual Studio ?

Vous n'en êtes qu'au début de la lutte contre l'enfer des incompatibilités mutuelles et de la création d'environnements distincts pour les tâches en Python.

Certains paquets nécessitent des compilateurs pour la construction de la cible.