Mises à jour : MetaTrader 5

L'historique des mises à jour des plateformes de bureau, mobile et web

18 juin 2021
MetaTrader 5 build 2980: Notifications push pour les opérations de trading

Terminal

  1. Ajout de la possibilité de recevoir des notifications push du serveur. Vous serez informé des opérations de trading exécutées même si votre terminal est fermé.



    Dans les versions précédentes, les notifications sur un appareil mobile ne pouvaient être envoyées qu'à partir du terminal de bureau du trader. Lors de l'exécution d'une opération de trading, le terminal envoyait la notification correspondante à l'identifiant MetaQuotes spécifié dans les paramètres. Les notifications ne pouvaient être envoyées qu'à partir d'un terminal en cours d'exécution. Cette exigence a été levée. Si un Take Profit se déclenche sur le serveur alors que votre ordinateur est éteint, vous recevrez une notification concernant une position fermée du serveur.

    Pour commencer à recevoir des notifications du serveur, vous devez :
    • Avoir un compte réel car les notifications du serveur ne fonctionnent pas pour les comptes de démonstration
    • Installer MetaTrader 5 pour iOS ou Android sur votre smartphone
    • Ouvrir la section Messages dans le terminal mobile, recherchez votre ID MetaQuotes et spécifiez-le dans les paramètres du terminal de bureau
    • Activer les notifications du serveur dans les paramètres du terminal de bureau

    La disponibilité des notifications du serveur doit être fournie par votre courtier
    Trois types de notification sont pris en charge : les ordres, les transactions et les opérations sur le solde. Lorsque vous activez l'option, les types de notification disponibles seront affichés dans le journal du terminal :
    '1222': abonné aux transactions, ordres, notifications de solde du serveur de trading

  2. Mise à jour de la vitrine MetaTrader VPS. La section VPS est devenue plus pratique :
    • L'interface s'adapte à n'importe quelle largeur d'écran.
    • La vitrine prend moins de place verticalement pour s'intégrer dans l'espace de travail.
    • Les informations nécessaires n'apparaissent que lorsqu'elles sont nécessaires. Les détails du paiement n'apparaissent qu'une fois que vous avez sélectionné un plan de paiement.



  3. Dans le panneau Strategy Tester, ajout de commandes pour basculer rapidement vers les services MQL5 et vers la fenêtre Boîte à Outils. Les commandes ne sont affichées que dans la section Présentation, tandis que dans d'autres onglets, le panneau est utilisé pour gérer les tests.



  4. Ajout de la sauvegarde des états des fenêtres pour les services MQL5. Si vous laissez le Market ouvert avant de fermer le terminal, la fenêtre correspondante s'ouvrira au prochain lancement du terminal.
  5. Correction de la synchronisation périodique de l'état du compte MQL5. La copie du signal peut échouer dans certaines conditions en raison d'une erreur.
  6. Correction de l'affichage d'une sélection de produits Market recommandés.
  7. Correction du menu contextuel des signaux dans le Navigateur. Vous pouvez utiliser le menu pour visualiser le signal auquel vous êtes abonné ou pour vous désabonner d'un signal.

MQL5

  1. Correction d'une erreur de l'opérateur "-" dans l'implémentation des nombres complexes dans la bibliothèque standard (fichier MQL5\Include\Math\Alglib\complex.mqh).
  2. MQL5 : Vous pouvez désormais utiliser n'importe quelle expression dans les séquences d'initialisation, pas seulement les constantes. Cela améliore la convivialité et la compatibilité avec le code C++.
    struct POINT
      {
       int x,y;
      };
    
    int GetYFunc(y)
      {
       return(y * y);
      }
    
    void SomeFunction(int x1,int x2,int y)
      {
       POINT pt={ x1+x2, GetYFunc(y) };
       ProcessPoint(pt);
      };
  3. Correction d'une erreur qui se produisait lors de la compilation des unions avec d'énormes tableaux de données.
  4. Correction du fonctionnement de la fonction StringToCharArray. Maintenant, il convertit l'intégralité de la chaîne passée en un tableau de char au lieu de s'arrêter au premier caractère nulde fin.
  5. Ajout d'un contrôle pour la présence explicite d'un appel de constructeur pour les classes/structures si leur classe parent n'a pas de constructeur par défaut.

MetaEditor

  1. Ajout de l'affichage d'un lieu d'appel pour les fonctions en ligne dans le rapport de profilage.

    Dans l'exemple ci-dessous, l'appel à la fonction func(); est maintenant mis en évidence comme suit :




    La fonction func elle-même n'est pas mise en évidence puisque son code complet est placé dans OnStart.

  2. Ajout de la possibilité de créer des projetsvides. Il s'agit d'une fonctionnalité utile pour les projets de développement non standard avec des structures de fichiers spécifiques pour lesquelles les modèles par défaut ne conviennent pas.




    Un fichier de paramètres vide "mqproj" sera créé dans ce cas. Les fichiers de code source doivent être créés manuellement.

  3. Implémentation d'un lancement plus rapide de MetaEditor.
  4. Correction de l'affichage des données dans la liste des expressions observées lors du débogage. La liste peut afficher des valeurs de variables incorrectes dans certaines conditions.
  5. Correction de l'ajout automatique de l'extension ".py" aux fichiers de script Python créés à l'aide de l'assistant MQL.
Documentation mise à jour.


21 mai 2021
MetaTrader 5 build 2940: Positionnement des vitrines des Services MQL5 dans l'espace de travail et conception mise à jour

Terminal

  1. Les services de trading, y compris le Market, les Signals et le Virtual Hosting sont désormais affichés de manière pratique dans la zone de travail principale de la plateforme.

    Dans les versions antérieures, les zones d'achat des services MQL5 étaient situées dans la petite fenêtre Boîte à outils sous la fenêtre principale. Le nouvel emplacement permet l'affichage de vitrines complètes avec des options d'achat pratiques. La suppression des onglets inutiles de la zone inférieure offre plus d'espace pour d'autres fonctions de la plateforme.




    L'accès aux services supplémentaires n'interfère pas avec les principales fonctions, telles que le trading et l'analyse graphique.
    • Les onglets de service sont situés à la fin de la barre, après tous les onglets du graphique.
    • Les fenêtres de service inutilisées peuvent être fermées. Pour les rouvrir, utilisez le Navigateur, la barre d'outils ou le menu "Services".

    Nous avons également complètement repensé les services. Le design est devenu plus élégant et léger. Les signaux comportent des données supplémentaires, qui n'étaient auparavant disponibles que via la vitrine du site Web de la MQL5.community : un diagramme polaire avec les principales caractéristiques, les mesures de fiabilité et d'activité et d'autres variables.



  2. Ajout de la prise en charge des adresses IPv6.
    IPv4 qui est utilisé dans tous les réseaux a été créé il y a plus de 30 ans. Il contient des adresses IP de 32 bits, qui sont représentées par quatre nombres de 8 bits séparés par des points. Cet algorithme produit plus de quatre milliards d'adresses IP uniques. Cependant, le nombre croissant d'utilisateurs et d'appareils a accéléré l'épuisement du pool d'adresses disponibles.

    Pour éviter le problème d'épuisement, certains produits offrent une prise en charge supplémentaire de la norme IPv6 moderne. Ce protocole utilise une adresse de 128 bits, représentée par x:x:x:x:x:x:x:x, où chaque x est une valeur hexadécimale de six éléments d'adresse de 16 bits. Théoriquement, ce format autorise 5x10^28 adresses uniques. En plus d'un vaste espace d'adressage, ce protocole présente d'autres avantages par rapport à l'ancienne version. Pour plus de détails, veuillez consulter les articles spécialisés.

    La plateforme MetaTrader 5 est entièrement prête pour IPv6. Si votre courtier ou fournisseur passe au nouveau protocole, la prise en charge du protocole sera activée de manière transparente dans la plateforme, sans qu'aucune action supplémentaire ne soit requise de votre part.

  3. Terminal : Nous continuons à implémenter la fonctionnalité du gestionnaire de tâches présentée dans le build 2815. Nous avons ajouté une indication explicite pour les graphiques, sur lesquels le débogage ou le profilage du programme MQL est en cours d'exécution.




  4. Implémentation d'un lancement de plateforme plus rapide sous Wine sur les ordinateurs macOS et Linux. Optimisation générale et corrections de bugs :
    • Amélioration de l'affichage des menus, des barres d'outils et des boîtes de dialogue.
    • Correction d'erreurs dans l'affichage des sections "Market", "Signaux" et "VPS". En particulier, nous avons corrigé le chargement des logos de produits sur la vitrine du "Market".
    • Mise à jour du package DMG pour une installation facile de MetaTrader 5 sur les ordinateurs macOS. Avec ce package, la plateforme peut être installée de la même manière que toute autre application : faites glisser l'icône de la plateforme vers Applications et attendez la fin de l'installation.
      Le package comprend des composants supplémentaires qui permettent un fonctionnement plus stable et plus rapide. Il est fortement conseillé à tous les utilisateurs de packages de réinstaller MetaTrader 5 en téléchargeant la dernière version sur https://download.mql5.com/fr/web/metaquotes.software.corp/mt5/MetaTrader5.dmg
    Si vous utilisez CrossOver, veuillez réinstaller complètement MetaTrader 5 pour obtenir la dernière version de la plateforme 64 bits.
  5. Correction de l'action de raccourci clavier "Ctrl + F9". Il active l'onglet Trade dans la Boîte à Outils.

MQL5

  1. Nous continuons à limiter la circulation des technologies plus anciennes, y compris les composants 32 bits.
    • Les terminaux 32 bits ne sont plus autorisés à charger des programmes depuis le Market.
    • Les terminaux 32 bits ne peuvent pas se connecter au service d'hébergement.
    • La version 32 bits de MetaEditor ne prend pas en charge la protection supplémentaire des fichiers via MQL5 Cloud Protector.
    • Les programmes MQL5 compilés sous les anciennes versions de MetaEditor (publiées il y a 5 ans ou plus) ne peuvent pas fonctionner dans la nouvelle version du terminal.

    La prise en charge de la version de la plateforme 32 bits a été interrompue il y a un an, après la sortie de la version 2361. Nous vous recommandons fortement de passer à la version 64 bits de MetaTrader 5 afin d'accéder à toutes les fonctionnalités de la plateforme sans aucune limitation.
    En outre, nous recommandons à tous les Vendeurs, qui ont précédemment téléchargé des versions de produit 32 bits sur le marché, de les recompiler à l'aide du dernier MetaEditor 64 bits et de télécharger les nouvelles versions. La possibilité d'exécuter des programmes MQL5 32 bits dans les terminaux sera bientôt complètement désactivée.
  2. Ajout de la prise en charge des opérations avec des nombres complexes.
    Ajout d'un nouveau type intégré "complex".
    struct complex
      {
       double             real;   // Partie réelle
       double             imag;   // Partie imaginaire
      };
    Le type "complex" peut être passé par valeur comme paramètre pour les fonctions MQL5 (contrairement aux structures ordinaires, qui ne sont passées que par référence). Pour les fonctions importées à partir de DLL, le type "complex" doit être passé uniquement par référence.

    Le suffixe 'i' est utilisé pour décrire des constantes complexes :
    complex square(complex c)
      {
       return(c*c);
      }
      
    void OnStart()
      {
       Print(square(1+2i));  // Une constante est passée en paramètre
      }
    
    // "(-3,4)" will be output, which is a string representation of the complex number 
    Seules les opérations simples sont actuellement disponibles pour les nombres complexes : =, +, -, *, /, +=, -=, *=, /=, ==, !=.

    La prise en charge de fonctions mathématiques supplémentaires sera ajoutée ultérieurement, permettant le calcul de la valeur absolue, du sinus, du cosinus et autres.

  3. Nouveau code d'erreur TRADE_RETCODE_HEDGE_PROHIBITED - l'ouverture d'une position ou la passation d'un ordre en attente n'est pas autorisée car les positions de couverture sont interdites. L'erreur est renvoyée si un utilisateur tente d'exécuter une opération de trading au cas où la couverture est désactivée pour le compte et qu'un ordre ou une position opposée existe déjà pour le même symbole.

MetaEditor

  1. Correction du débogage et de la terminaison du profilage en mode non visuel.
  2. Correction du profilage de l'indicateur sur des données réelles. Un tel profilage pourrait ne pas démarrer dans certaines conditions.

VPS

  1. Correction de la migration de l'environnement vers un VPS. Une erreur peut se produire pour les Expert Advisors contenant des indicateurs en tant que ressources.

Signaux

  1. Le mode de trading fixe vérifie les signaux copiés. Le trading de symboles peut être limité du côté du courtier, c'est-à-dire que le courtier peut définir des conditions 'long uniquement', 'court uniquement' ou 'clôture uniquement'. Dans les versions antérieures, la synchronisation exigeait des conditions de trading complètes et la copie n'était donc pas autorisée dans tous les autres cas. Après la mise à jour, les conditions partiellement limitées seront considérées comme "trading". Cette capacité sera particulièrement utile pour les clients des courtiers en actions qui souhaitent copier des signaux.

Testeur

  1. Correction des vérifications des sessions de trading pendant les tests. L'exécution de l'opération de trading pouvait échouer pendant le test dans certaines conditions, auquel cas l'erreur "marché fermé" était renvoyée même si l'opération avait été lancée au cours d'une session de trading.
Documentation mise à jour.
2 avril 2021
MetaTrader 5 build 2875 : Améliorations et correctifs

Terminal

  1. Correction d'un bug qui entraînait la copie des programmes standard MQL5 mis à jour dans le répertoire de données racine du terminal au lieu du sous-répertoire MQL5. En raison de cette erreur, des dossiers supplémentaires "Experts", "Images", "Include" et autres pourraient être créés dans le répertoire de données.

    Après la mise à jour de la plateforme, ces dossiers seront vérifiés et automatiquement supprimés.

  1. Correction d'une erreur qui empêchait les utilisateurs de se connecter au chat intégré MQL5.community.
  1. Correction de l'optimisation des Expert Advisors via le MQL5 Cloud Network. L'optimisation peut ne pas démarrer dans certaines conditions.

MetaEditor

  1. Correction d'erreurs et de plantages lors du débogage et du profilage du programme MQL5.

Documentation mise à jour.
26 mars 2021
MetaTrader 5 build 2860: Améliorations pour Wine et poiur l'intégration de SQL

Terminal

  1. Ajout de la possibilité d'activer/désactiver des services MQL5.community supplémentaires. Par exemple, si vous n'êtes pas intéressé par les articles de programmation MQL5 ou par la copie de trading du service Signaux, vous pouvez désactiver la section correspondante pour optimiser les ressources et l'espace de travail du terminal.


    Tous les services sont activés par défaut.

  2. Nous avons considérablement optimisé le fonctionnement du terminal sous Wine sur macOS et Linux:
    • Désormais, les fenêtres de service non ancrées (Navigateur, Boîte à outils) ne peuvent pas être déplacées au-delà des frontières du terminal. Auparavant, cela pouvait entraîner des difficultés à faire glisser les fenêtres vers le terminal.
    • Correction du redimensionnement du contenu de la fenêtre de service lors du redimensionnement de la fenêtre.
    • Correction de l'affichage des mesures de performance dans le Gestionnaire des tâches.
    • Amélioration de l'affichage des icônes sur la barre d'outils.
    • Correction du compteur de messages non lus dans les chats.
    • Correction de l'affichage des commandes système du graphique : Masquer, Développer et Fermer.
    • Correction de l'affichage du journal.
    • Correction de l'affichage des info-bulles des graphiques.
    • Correction des commandes d'impression du graphique.
    • Correction de l'affichage du menu supérieur lors de l'utilisation de skins Linux.
    • Correction de la recherche dans GitHub, MSDN et Stack Overflow dans MetaEditor.

    Nous recommandons à tous les utilisateurs de mettre à jour Wine vers la dernière version stable. Cela augmentera les performances et la fiabilité de la plateforme.
  3. Ajout de la prise en charge des ordres "Market To Limit" lors du trading sur BORSA Istanbul. Un tel ordre est initialement exécuté comme un ordre au marché. Si la liquidité ne suffit pas, le volume restant est ajouté au carnet d'ordres en tant qu'ordre limité avec le dernier prix de transaction.
  4. Correction de l'affichage du graphique de volatilité. Maintenant, le graphique est construit conformément à la date d'expiration sélectionnée sur le tableau des options.
  5. Correction de l'ajout d'instruments de trading au Market Depth via la barre de recherche rapide. Si le nom du symbole comporte un espace, ce symbole ne sera pas ajouté à la liste.


MQL5

  1. Possibilités étendues de travail avec les bases de données SQL. Les requêtes prennent désormais en charge diverses fonctions statistiques et mathématiques.

    Fonctions statistiques
    • mode
    • médiane (50e percentile)
    • percentile_25
    • percentile_75
    • percentile_90
    • percentile_95
    • percentile_99
    • stddev ou stddev_samp - exemple d'écart type
    • stddev_pop - écart type de la population
    • variance ou var_samp - variance de l'échantillon
    • var_pop - variance de la population

    Fonctions mathématiques

    Exemple
    select
      count(*) as book_count,
      cast(avg(parent) as integer) as mean,
      cast(median(parent) as integer) as median,
      mode(parent) as mode,
      percentile_90(parent) as p90,
      percentile_95(parent) as p95,
      percentile_99(parent) as p99
    from moz_bookmarks;
  2. Ajout de nouvelles macros :
    • __COUNTER__ - augmente de un à chaque appel. Des compteurs séparés sont fournis lorsqu'ils sont utilisés dans des modèles et des macros.
    • __RANDOM__ - génère un nombre aléatoire de type ulong ; analogue à la fonction MathRand.

  3. Correction du fonctionnement des requêtes graphiques synchrones dans les cas où le symbole graphique n'existe pas. Désormais, les fonctions renvoient une erreur pertinente au lieu d'attendre indéfiniment un résultat. Une situation avec un symbole inexistant peut être causée par la commutation entre les comptes de trading avec différents ensembles d'instruments de trading.
  4. Fonctions CopyTicks* optimisées et accélérées.

MetaEditor

  1. Changement de l'ordre du profilage et du débogage en utilisant les données historiques.

    Le profilage s'exécute désormais toujours en mode non visuel. Le débogage par défaut s'exécute également en mode non visuel. L'option appropriée peut être activée manuellement dans les paramètres de MetaEditor :




  2. Ajout de la possibilité de profiler les services. Le processus est similaire à d'autres programmes MQL5.
  3. Correction de l'affichage des noms de fonctions dans le rapport du profileur. Dans certaines conditions, les noms peuvent être spécifiés comme <unknown>.

La documentation a été mise à jour.

26 février 2021
MetaTrader 5 build 2815: Accès au Market Depth à partir de Python, amélioration du débogueur et du profileur

Terminal

  1. Ajout de la possibilité d'accéder aux données du Depth of Market via l'API Python.
    Trois nouvelles fonctions permettent d'obtenir rapidement des données pour les calculs statistiques et les tâches d'apprentissage automatique, qui peuvent être implémentées à l'aide d'une pléthore de bibliothèques Python prêtes à l'emploi.
    • market_book_add - abonne le terminal MetaTrader 5 pour recevoir les événements liés aux changements dans le Depth of Market pour le symbole spécifié.
    • market_book_get - renvoie un tuple de BookInfo contenant les enregistrements Depth of Market pour le symbole spécifié.
    • market_book_release - annule l'abonnement du terminal MetaTrader 5 aux événements liés aux changements du Depth of Market pour le symbole spécifié.

  2. La longueur maximale des messages Push a été augmentée de 256 à 1024 caractères. Désormais, vous pouvez envoyer plus d'informations à partir de vos programmes MQL5 sur les appareils mobiles.
  3. Ajout d'une version préliminaire du gestionnaire de tâches, qui peut être appelée en appuyant sur la touche F2.
    Le Gestionnaire de Tâches permet de surveiller les ressources consommées par la plateforme. Vous pouvez afficher la quantité de mémoire consommée par les graphiques, les ressources de processeur utilisées par les Expert Advisors et d'autres mesures de performances. Si les performances de votre plateforme ralentissent, vous pouvez facilement détecter et résoudre le problème.



  4. Service d 'abonnements amélioré. Une indication spéciale a été ajoutée pour les symboles ayant des cotations différées :
    • Les symboles du Market Watch sont marqués d'une icône d'horloge et la valeur du délai est affichée dans l'info-bulle
    • La notification de retard de données est affichée sur les graphiques




  5. Correction de l'affichage de la liste des Abonnements lorsqu'il n'y a pas de connexion au compte de trading.
  6. Correction des liens dans les e-mails et les newsletters. Tous les liens s'ouvrent désormais dans le navigateur par défaut. Auparavant, les liens s'ouvraient uniquement dans Internet Explorer.
  7. Correction des connexions de la fonction WebRequest aux hôtes avec adresses IPv6 et protection Cloudflare.
  8. Amélioration des fonctionnalités et de la réactivité du service VPS.
  9. Fonctionnement amélioré sous Wine et MacOS/Crossover, y compris la version pour macOS Big Sur avec le processeur M1.

MQL5

  1. Correction d'une erreur dans la fonction ArrayPrint. La fonction pouvait parfois échouer à imprimer les tableaux.
  2. Opérations sur les fichiers optimisées effectuées par les fonctions File*. Désormais, les opérations de lecture et d'écriture de fichiers s'exécutent beaucoup plus rapidement.
  3. Suppression de la restriction exigeant la spécification de la taille pour les deuxième, troisième et quatrième dimensions d'un tableau dynamique, lorsque le tableau est utilisé comme paramètre de fonction. Cela augmente la réutilisation et la flexibilité du code.
    void func(int &arr[ ][ ][ ][ ])
      {
      }
  4.  Correction du fonctionnement de la fonction ArrayBsearch. La fonction peut renvoyer un index incorrect de l'élément trouvé lors d'une recherche binaire.

MetaEditor

  1. De nouvelles fonctionnalités sont devenues disponibles dans le débogueurremanié.
    • Les tableaux sont maintenant affichés dans la fenêtre d'observation conformément au tri défini par ArraySetAsSeries.
    • Ajout de la prise en charge des variables statiques locales.
    • Correction de l'affichage de la valeur de l'élément de tableau spécifié.
    • Correction de la gestion des champs de classe "statiques".
    • Autres améliorations pour un débogage plus précis et plus fiable.

  2. Ajout de l'option "Activer les optimisations dans le profilage".
    Le mode d'optimisation du code peut être désactivé afin d'inclure plus de détails dans le rapport de profilage. La vitesse du code sans optimisation peut être plusieurs fois plus lente, mais ce mode offre une couverture de code plus large. Veuillez noter qu'avec le code d'optimisation, les goulots d'étranglement peuvent être imprécis.
    Un mode de profilage plus doux peut être défini en désactivant l'option "Activer l'inlining dans le profilage".


    L'option de gestion de l'optimisation a également été ajoutée aux paramètres du projet.
    • Si l'optimisation est désactivée dans le projet, la nouvelle option est ignorée et l'optimisation sera donc toujours désactivée pour le profilage (y compris les opérations en ligne).
    • Si l'optimisation est activée dans le projet, la nouvelle option sera prise en compte lors de la compilation du profilage.

  3. Ajout de la journalisation pour les processus de débogage et de profilage. Les paramètres d'environnement sont enregistrés au démarrage de l'opération ; les statistiques des données collectées sont enregistrées à l'arrêt de l'opération.
    MQL5 profiler    starting 'ExpertMACD.ex5' on history with parameters:
    MQL5 profiler       symbol: 'EURUSD'
    MQL5 profiler       period: 'H1'
    MQL5 profiler       date from: '2021.01.01'
    MQL5 profiler       date to: '2021.02.22'
    MQL5 profiler       ticks mode: 'every tick'
    MQL5 profiler       execution delay: 0 ms
    MQL5 profiler       deposit: 10000
    MQL5 profiler       currency: 'USD'
    MQL5 profiler       leverage: 1:100
    MQL5 profiler       profit in pips: NO
    MQL5 profiler    profile data received (4640 bytes)
    MQL5 profiler    758 total measurements, 0/0 errors, 470 kb of stack memory analyzed
    MQL5 profiler    7782 total function frames found (1929 mql5 code, 342 built-in, 1403 other, 4108 system)

Testeur

  1. Correction de la spécification des heures de non-trading dans les paramètres de test avancés.

Documentation mise à jour.

15 janvier 2021
MetaTrader 5 build 2755 : Popup des Prix et améliorations du Débogueur

Terminal

  1. Fenêtre Contextuelle des Prix révisée permettant d'afficher les prix des symboles financiers sur n'importe quelle taille d'écran.

    La fenêtre prend désormais en charge la présentation multi-colonnes, permettant une utilisation efficace de l'espace de l'écran. Pour changer de mode d'affichage, utilisez la boîte de dialogue des propriétés de la fenêtre.


    Les autres améliorations de cette fenêtre sont les suivantes :
    • Ajout du menu de sélection de colonne. Le menu présente les mêmes propriétés de symbole que celles disponibles dans le Market Watch.
    • Fonctionnement optimisé avec un grand nombre d'instruments financiers. Les performances de la fenêtre sont désormais égales aussi pour 10 que pour 1000 instruments.
    • Ajout de l'affichage simplifié de informations sur l'instrument dans une info-bulle.
    • Correction de l'application des paramètres de couleur pour afficher les prix en hausse et en baisse.

  2. Ajout de l'affichage des transactions sur le graphique des ticks du Market Depth synthétique.

    Le Market Depth synthétique est utilisée pour les symboles, pour lesquels les prix de niveau 2 ne sont pas fournis. Dans ce cas, les niveaux sont construits automatiquement, à des distances égales à un pas de changement de prix, à partir des meilleurs prix Bid et Ask. Désormais, si les dernières données de prix et de volume de transaction sont fournies pour un symbole, les données pertinentes sont affichées sur le graphique en ticks. Les informations sont affichées sous forme de cercles :
    • Les cercles rouges indiquent les transactions de vente.
    • Les cercles bleus indiquent les transactions d'achat.
    • Des cercles verts apparaissent lorsque la direction de la transaction n'est pas définie.

    Plus le cercle est grand, plus le volume de la transaction est important.




  3. Correction du calcul des Grecs dans le tableau d'options. Une erreur pouvait survenir si l'actif sous-jacent de l'option avait un prix de dernière transaction nul.
  4. Nous continuons à mettre en œuvre le nouveau service "Abonnements", qui permet la fourniture de services de trading supplémentaires. Récemment, nous avons corrigé l'affichage des abonnements dépendants. Ces abonnements sont utilisés pour les services groupés.
  5. Amélioration du fonctionnement de la plateforme sous Wine.

MQL5

  1. Ajout de la génération d'événements ChartEvent lors du relâchement des boutons droit et central de la souris. Cet événement peut être utilisé lors de la création de panneaux graphiques. Pour activer les événements, désactivez le menu contextuel du graphique via la propriété CHART_CONTEXT_MENU.
  2. Correction d'un bug provoquant une erreur significative dans le temps d'attente de la fonction Sleep.

MetaEditor

  1. Nous avons lancé la mise à jour globale du débogueur. La fenêtre des expressions observées a été considérablement améliorée. Désormais, il permet de visualiser le contenu des tableaux et des objets sous forme de listes déroulantes, ainsi que des valeurs de pointeur.




    Pour visualiser un tableau ou un objet, double-cliquez dessus dans la fenêtre d'observation.

  2. Correction du gel lors de l'ouverture de certains projets.
La documentation a été mise à jour.

26 novembre 2020
MetaTrader 5 build 2715: Améliorations générales

Terminal

  1. Correction du gel de la plateforme lors de l'utilisation du tableau des options. Le gel peut être causé par une taille de tick zéro spécifiée dans les paramètres de l'instrument de trading.
  2. Correction d'erreurs d'affichage de l'interface utilisateur sur les écrans HiDPI.

MQL5

  1. Correction de la conversion de chaîne en date/heure par la fonction StringToTime. Une erreur pouvait se produire lors de la spécification de l'heure sous la forme "aaaammjj [hhmiss]".
  2. Correction du fonctionnement de l'opérateur de copie implicite pour les objets contenant des tableaux dynamiques. Désormais, l'opération réduit la taille de l'objet de destination à la taille de l'objet copié.
    struct MyStruct
    {
      string Array[];
    };
    
    void OnStart()
    {
      MyStruct a1,a2;
      ArrayResize(a1.Array,3);
      ArrayResize(a2.Array,1);
      a1=a2;
    }
    Auparavant, la taille du tableau "a1" était égale à 3 après l'appel de la fonction. Maintenant, la taille sera 1.

MetaTester

  1. Mise à jour de l'algorithme de calcul des notes pour les agents de test du MQL5 Cloud Network. La notation est désormais déterminée avec plus de précision et est modifiée moins fréquemment.

La documentation a été mise à jour.
12 novembre 2020
MetaTrader 5 Platform Build 2690: Améliorations de MetaEditor

Terminal

  1. Correction de l'affichage du Market Depth synthétique. Auparavant, cette fonctionnalité pouvait être indisponible pour certains symboles.

    La profondeur du marché synthétique est utilisée pour les symboles, pour lesquels les prix de niveau 2 ne sont pas fournis. Dans ce cas, les niveaux sont construits automatiquement, à des distances égales à un pas de changement de prix, à partir des meilleurs prix Bid et Ask. C'est un outil pratique pour passer, modifier et supprimer des ordres, rapidement et avec un maximum de clarté.



MQL5

  1. Accès optimisé et grandement accéléré aux derniers prix des programmes MQL5, en utilisant la fonction SymbolInfoTick.
  2. Correction de la réinitialisation des paramètres de l'indicateur Ichimoku Kinko Hyo à partir d'une boîte de dialogue.



  3. Correction du gel des fonctions Copy* lorsque l'historique n'est pas disponible pour un instrument de trading.
  4. Plus d'améliorations dans la mise à jour totale du profileur de code. Les améliorations suivantes ont été mises en œuvre, en plus des innovations présentées dans le build 2650:
    • Amélioration de la présentation des données
    • Des noms de colonnes plus courts sont désormais utilisés dans le rapport
    • Possibilité d'enregistrer des rapports de profilage dans un fichier
    • Ajout de l'affichage d'une info-bulle avec un numéro de ligne pour les fonctions du rapport.



MetaEditor

  1. Ajout de la possibilité de désactiver le suivi du presse-papiers et d'effacer l'historique du presse-papiers.

    La fonction de suivi du presse-papiers améliore la convivialité du code source en fournissant un accès rapide aux données récemment utilisées. Appuyez sur Alt+V à n'importe quelle position du code source, sélectionnez l'une des lignes copiées précédemment dans le menu, et la ligne sera insérée à la position sélectionnée.

    Utilisez la commande de la barre d'outils correspondant ou les paramètres de l'éditeur pour activer/désactiver le suivi.




  2. Correction du calcul de certaines expressions observées lors du débogage du programme.
  3. Le trading est désormais interdit pour les Expert Advisors fonctionnant dans le Strategy Tester en mode de réception de frames.

MetaTester

  1. Correction de l 'importation des résultats d'optimisation dans le Strategy Tester. Une erreur peut entraîner une importation incorrecte des valeurs de la période.

La documentation a été mise à jour.
9 octobre 2020
Nouvelle plateforme MetaTrader 5 build 2650 : chargement des graphiques en arrière-plan et améliorations du profileur de code MQL5

Terminal

  1. L'onglet Options propose un nouveau paramètre intitulé "Précharger les données du graphique pour les positions ouvertes et les ordres".

    Afin d'économiser du trafic, la plateforme de trading télécharge l'historique des prix des symboles uniquement lorsque les données pertinentes sont demandées, par exemple lorsque le graphique des prix est ouvert ou lorsque le test est lancé. Cependant, cela peut ne pas toujours être pratique pour les symboles utilisés activement. Si vous activez la nouvelle option, les graphiques des symboles pour lesquels vous avez des positions ouvertes ou des ordres en attente, seront mis à jour en arrière-plan à chaque lancement de la plateforme. Ainsi, vous n'aurez pas à attendre le téléchargement des données après l'ouverture du graphique, et les données pertinentes seront immédiatement disponibles pour analyse.




  2. Correction de la génération de barres quotidiennes après les week-ends.
  3. Correction de la mise à jour du graphique. Les graphiques peuvent parfois ne pas être mis à jour après le téléchargement supplémentaire des données de prix mises à jour.
  4. Mise à jour optimisée du cache de l'historique du compte de trading. L'optimisation permet de réduire les retards de données lors de l'utilisation des fonctions History*.
  5. Correction de l'affichage de la colonne Commentaire lors de l'affichage de l'historique des transactions par positions.
  6. Correction de l'affichage du bouton de renouvellement d'abonnement du Signal.

MQL5

  1. Plus d'améliorations dans la mise à jour totale du profileur de code. Les fonctions suivantes ont été implémentées en plus des innovations présentées dans le build 2615 :

    Ajout de nouveaux paramètres
    Nous avons précédemment annoncé l'utilisation de la méthode d'échantillonnage pour le nouveau profileur. Le profileur effectue des pauses dans l'opération du programme MQL (~1000 fois par seconde) et collecte des statistiques sur le nombre de pauses effectuées dans certains segments de code. Cela inclut également l'analyse des piles d'appels pour déterminer la part de chaque fonction dans le temps total de fonctionnement du code. Après le profilage, les utilisateurs reçoivent des statistiques sur le nombre de fois où l'opération a été interrompue et sur le nombre de fois où chacune des fonctions est apparue dans la pile d'appels :

    • Total CPU [unit,%] - combien de fois la fonction est apparue dans la pile d'appels.
    • Self CPU [unit,%] - le nombre de "pauses" qui se sont produites directement dans la fonction spécifiée. Cette variable est cruciale pour identifier les goulots d'étranglement : selon les statistiques, les pauses se produisent plus souvent là où plus de temps processeur est nécessaire.


    Ajout de la possibilité de désactiver l'intégration de fonctions pendant le profilage
    Lors de la compilation des programmes MQL, les fonctions sont intégrées, c'est-à-dire que le code de fonction est ajouté directement au site d'appel de fonction. Cela permet une accélération significative des performances. Cependant, cette procédure rend difficile le profilage des fonctions. Pour obtenir un rapport sur les fonctions "pures", vous pouvez désactiver l'inlining dans les paramètres de MetaEditor :



    Conception de rapport mise à jour
    Nous avons repensé le rapport de profilage et la présentation des informations de profilage dans la fenêtre de code source. La nouvelle conception sera plus familière aux utilisateurs de Visual Studio.



  2. Correction de l'utilisation de la fonction CopyTicksRange. La fonction pouvait parfois renvoyer des données incomplètes.
  3. Nouveau code d'erreur TRADE_RETCODE_HEDGE_PROHIBITED - l'ouverture d'une position ou la passation d'un ordre en attente n'est pas autorisée car les positions de couverture sont interdites. L'erreur est renvoyée si un utilisateur tente d'exécuter une opération de trading dans le cas où la couverture est désactivée pour le compte et que l'utilisateur a déjà un ordre ou une position opposée pour le même symbole.
  4. Suppression de la possibilité d'appeler MessageBox lors du débogage des indicateurs. MessageBox ne peut pas être appelé à partir d'indicateurs car il suspend l'exécution du thread pendant tout le temps en attendant la réponse de l'utilisateur.
  5. Ajout d'instruments de trading dans le Market Watch optimisé et significativement accéléré en utilisant la fonction SymbolSelect.
  6. Correction du comportement de la fonction ArrayInstert pour les tableaux de taille fixe. Maintenant, le comportement correspond à sa description dans la documentation : lorsque des éléments sont insérés, la taille du tableau de destination ne change pas et les éléments à droite de la position d'insertion sont décalés vers la droite (les derniers éléments 'count' sont "drop off"), tandis que les éléments sont copiés de la source vers l'espace libéré.

Testeur

  1. Correction de l'utilisation des paramètres de conditions de trading personnalisés pendant les tests ; la boîte de dialogue des paramètres a été révisée.

    • Calcul fixe des commissions personnalisées. Pour activer les commissions, il suffit maintenant de spécifier le nom du symbole plutôt que le chemin complet.
    • Onglets réorganisés pour un fonctionnement plus efficace.
    • Renommage de la boîte de dialogue et de l'option activant les paramètres personnalisés.
    • Largeur de colonne optimisée dans les tableaux de paramètres.
    • Lorsque l'option "Utiliser les paramètres personnalisés" est désactivée, tous les autres paramètres de la boîte de dialogue sont désactivés. Auparavant, les paramètres restaient modifiables et les utilisateurs pouvaient penser à tort que les paramètres seraient appliqués pendant les tests.



  2. Correction d'une erreur occasionnelle liée à la réception des ordres de l'historique de trading par ticket.

MetaEditor

  1. Ajout de schémas des couleurs pour la fenêtre d'édition de code : clair (par défaut), foncé et bleu. Vous pouvez personnaliser l'éditeur sans avoir à configurer manuellement la vue de l'éditeur.

    De plus, il est désormais possible de personnaliser la couleur de la bordure des info-bulles des fonctions.


     
  2. MetaEditor : toutes les icônes des barres d'outils ont été mises à jour pour prendre en charge les moniteurs HiDPI.
La documentation a été mise à jour.

17 septembre 2020
MetaTrader 5 build 2615 : Analyse fondamentale et critères complexes dans le Strategy Tester

Terminal

  1. Extension des fonctionnalités d'analyse fondamentale.
    Ajout de nouvelles propriétés d'instruments de trading, qui permettent une catégorisation plus précise des symboles :
    • Secteur - le secteur de l'économie auquel l'actif appartient, comme l'énergie, la finance, la santé et autres.
    • Industrie - le type d'industrie auquel appartient l'actif, comme les vêtements de sport, les accessoires, la construction automobile, la restauration et autres.
    • Pays - le pays de la société dont les actions sont négociées en bourse.

    Sur la base de ces propriétés, un système distinct a été implémenté dans le Market Watch, permettant des opérations efficaces avec des symboles. Sélectionnez une catégorie dans le menu et tous les instruments disponibles seront ajoutés à une liste pour une analyse approfondie :



    Les propriétés pertinentes ont été ajoutées aux spécifications du contrat :



    De plus, les données fondamentales sur les symboles de trading peuvent désormais être ouvertes directement depuis la plateforme. Des liens vers les plus grands agrégateurs ont été ajoutés au menu contextuel du Market Watch :



    La disponibilité des données étendues est contrôlée par le courtier. Cependant, nous avons assuré la disponibilité par défaut des informations avancées pour le nombre maximum d'instruments. Dès que les courtiers mettent à jour leurs serveurs vers la nouvelle version, les données appropriées sur le pays, le secteur et l'industrie apparaîtront sur vos plateformes.
  2. Amélioration des vitrines Signals et Market. Des boutons de location et d'abonnement ont été ajoutés dans le panneau de gauche :



    D'autres améliorations concernent la conception de la section. Cela inclut des couleurs de bouton plus vives, des boutons de connexion MQL5 plus grands et d'autres améliorations.

  3. Correction du calcul des profits/pertes potentiels pour les niveaux des Stop Loss et Take Profit des graphiques.



  4. Correction d'erreurs dans le calcul des instruments synthétiques. Les erreurs peuvent occasionnellement provoquer le blocage de la plateforme au démarrage.
  5. Correction de l'affichage des valeurs de l'indicateur Fractals intégré dans la fenêtre de données.
  6. Toutes les icônes des barres d'outils de la plateforme ont été mises à jour pour prendre en charge les moniteurs HiDPI.
  7. Ajustement du volume de position fixe pour les signaux de trading copiés. Le réglage pouvait parfois échouer en raison de niveaux d'arrêt mal appliqués, ce qui provoquait l'erreur "stops non valides".
  8. Reconstruction de l'historique des prix optimisée après des modifications importantes sur le serveur.
  9. Correction de l'affichage des info-bulles de trading sur les graphiques. Dans certains cas, des info-bulles étaient affichées sur les graphiques même si l'affichage des niveaux des trades était désactivé.
  10. Correction de l'option "Afficher sur les graphiques \ Mise à jour automatique" dans le menu contextuel des commandes et des positions dans la section "Boîte à outils \ Trade". Désormais, si cette option n'est pas cochée, l'affichage de l'historique des transactions sera désactivé pour tous les graphiques ouverts.

MQL5

  1. Ajout de la fonction MathClassify. Elle détermine le type d'un nombre réel et renvoie un résultat sous forme de valeur de la nouvelle énumération ENUM_FP_CLASS.
    ENUM_FP_CLASS  MathClassify(
       double  value      // nombre réel
       );
    L'énumération contient les valeurs suivantes :
    • FP_SUBNORMAL - un nombre sous-normal qui est plus proche de zéro que le plus petit nombre normal représentable DBL_MIN - 2.2250738585072014e-308.
    • FP_NORMAL - un nombre normal compris entre 2,2250738585072014e-308 et 1,7976931348623158e+308.
    • FP_ZERO - un zéro positif ou négatif.
    • FP_INFINITE - un nombre qui ne peut pas être représenté par le type approprié, l'infini positif ou négatif.
    • FP_NAN n'est pas un nombre.

    Utilisez le code suivant pour vérifier la validité du nombre réel :
    if(MathClassify(value)>FP_ZERO)
      {
       Print("value n'est pas un nombre valide");
      }
  2. Ajout de propriétés de symbole qui peuvent être obtenues à l'aide des fonctions SymbolInfoString :
    • SYMBOL_COUNTRY - le pays de la société dont les actions sont négociées en bourse.
    • SYMBOL_SECTOR_NAME - le secteur de l'économie auquel l'actif appartient, comme l'énergie, la finance, la santé et autres.
    • SYMBOL_INDUSTRY_NAME - le secteur auquel appartient l'actif, comme les vêtements de sport, les accessoires, la construction automobile, la restauration, etc.

    Les propriétés sont renvoyées sous forme d'une chaîne.

    Le secteur et l'industrie auxquels appartient l'instrument peuvent être obtenus comme valeur de dénombrement. Cela peut être fait en demandant les propriétés suivantes à l'aide de la fonction SymbolInfoInteger :

    • SYMBOL_SECTOR
    • SYMBOL_INDUSTRY

    Les énumérations ENUM_SYMBOL_SECTOR et ENUM_SYMBOL_INDUSTRY ont été ajoutées pour travailler avec ces propriétés.

  3. Un nouveau mécanisme de gestion de la mémoire a été implémenté dans les programmes MQL5. Il permet une allocation de mémoire jusqu'à 3 fois plus rapide et évite les éventuelles erreurs d'accès à la mémoire.
  4. Opérations optimisées et accélérées avec l'historique des ticks de compte via les fonctions History*.
  5. Correction d'un appel WebRequest depuis le point d'entrée OnDeinit. Dans les versions antérieures, l'appel de fonction ne pouvait pas être implémenté dans le cas d'un arrêt de l'Expert Advisor.
  6. Correction des appels de fonction WebRequest depuis les services. Auparavant, un appel de fonction pouvait échouer après le redémarrage du service.
  7. Ajout de la vérification de la prise en charge du type double sur un appareil lors de l'utilisation de OpenCL. Le type floate ne peut pas être utilisé dans les calculs financiers en raison d'un arrondi excessif. Par conséquent, la plateforme nécessite explicitement une double prise en charge des calculs. Si le type double n'est pas pris en charge, un message approprié sera écrit dans le journal de la plateforme : le périphérique '<nom>' ne prend pas en charge le type 'double'. Auparavant, un message d'erreur courant était affiché dans de tels cas.
  8. Exécution significativement accélérée de la fonction AccountInfoDouble avec les paramètres ACCOUNT_EQUITY et ACCOUNT_BALANCE.
  9. Correction de l'application de modèles à un graphique via la fonction ChartApplyTemplate.
  10. Correction de l'appel à la fonction ChartSetInteger avec le paramètre CHART_BRING_TO_TOP.
  11. Une nouvelle méthode Conjugate a été ajoutée à la bibliothèque Alglib intégrée. Cette méthode permet le calcul des nombres conjugués pour les nombres complexes. La bibliothèque se trouve dans MQL5\Include\Math\Alglib.
  12. Le code profiler a été entièrement révisé. Le nouveau profiler fonctionne avec une précision et une vitesse plus élevées.
    • L'analyse est maintenant basée sur le code qui est optimisé de la même manière que la compilation de la version finale d'un programme. Cela permet une détermination plus précise de la vitesse d'exécution du code, car exactement le même code sera utilisé pendant l'exécution du programme.
    • Le nouveau profileur utilise la méthode de profilage "Sampling". Cette méthode légère et précise collecte des statistiques de performances des applications en collectant des données de pile d'appels et en calculant les performances à intervalles réguliers.
    • Contrairement aux versions précédentes, le nouveau profileur n'apporte aucune modification au code analysé. La méthode Instrumentation précédemment utilisée a ajouté certaines constructions au code, qui ont été utilisées pour mesurer la vitesse de la fonction. Cela pourrait affecter la vitesse finale du code.

    Le développement du profileur se poursuivra. D'autres améliorations seront disponibles dans les prochaines versions de la plateforme.

Tester

  1. Opérations optimisées avec le MQL5 Cloud Network. Correction du chargement des Expert Advisors sur les agents.
  2. Ajout d'un nouveau critère d'optimisation "Critère Complexe max". Il s'agit d'une mesure intégrale et complexe de la qualité d'un test réussi. Il mesure plusieurs paramètres :
    • Nombre de Transactions
    • Drawdown
    • Facteur de Récupération
    • Payoff Attendu
    • Ratio de Sharpe

    La valeur la plus élevée d'un paramètre (par exemple le profit) n'est pas toujours la meilleure option en termes d'analyse complexe. Le critère complexe sélectionne progressivement les meilleures passes : d'abord, par le nombre de transactions, puis par le gain attendu, le facteur de récupération, et ainsi de suite. La nouvelle option permet de ne garder que les meilleures passes d'optimisation en fonction de tous les paramètres. De plus, vous pouvez sélectionner la passe optimale en fonction du paramètre souhaité, tel que le profit le plus élevé.

    Sélectionnez le nouveau critère dans les paramètres du testeur de stratégie et lancez l'optimisation.



    La valeur "Critère complexe max" sera affichée dans un onglet "Résultat" séparé dans les résultats d'optimisation. Les passes peuvent être triées par cette colonne. Le nouveau critère supporte la mise en couleur pour mettre en évidence visuellement les meilleures passes. Les valeurs inférieures à 20 sont surlignées en rouge et les valeurs supérieures à 80 sont affichées en vert foncé.



  3. Correction du calcul des commissions personnalisées dans le Strategy Tester.

MetaEditor

  1. Nous avons lancé la révision globale des fonctions de gestion de code intelligent (IntelliSense).
    • Les astuces affichent désormais la signature de la fonction complète en plus de son nom.
    • La police de caractères des indices est désormais définie conformément aux paramètres de MetaEditor.
    D'autres améliorations seront disponibles dans les prochaines versions de la plateforme.

La documentation a été mise à jour.

24 juillet 2020
MetaTrader 5 build 2560 : Améliorations du système d'apprentissage intégré

Terminal

  1. Dans la mise à jour précédente de la plateforme, nous avons présenté un système d'apprentissage entièrement révisé. D'autres améliorations ont été mises en œuvre dans la dernière version :
    • L'icône de la barre de progression est devenue plus visible
    • Le texte de certains indices a été révisé
    • Le calcul de la progression de l'apprentissage a été corrigé
    Terminez toutes les leçons pour commencer à utiliser au maximum les capacités de la plateforme.



  2. Traitement optimisé et considérablement accéléré des grands flux de ticks (avec plus de dizaines de milliers de ticks par minute).
  3. Correction d'erreurs dans le calcul des variations de prix par rapport au prix de clôture de la session précédente. Pour visualiser cette variable, activez la colonne "Daily Change" dans le menu contextuel du Market Watch.

MQL5

  1. Accès optimisé et accéléré aux propriétés des graphiques numériques via la fonction ChartGetInteger.
  2. Correction de la recherche d'indicateurs personnalisés, lorsqu'un tel indicateur est demandé à un programme MQL5 via la fonction iCustom.

MetaEditor

  1. Ajout de la compilation de programmes C/C++ dans les projets.

Tester

  1. Travail considérablement optimisé du MQL5 Cloud Network. Grâce à l'amélioration de l'efficacité de la recherche d'agents, le réseau peut répartir les tâches et renvoyer les résultats des calculs plus rapidement.
Documentation mise à jour.

10 juillet 2020
MetaTrader 5 build 2530: tri dans le Market Watch et opérations avancées avec les résultats d'optimisation

Terminal

  1. Une option de tri a été ajoutée à la fenêtre du Market Watch :
    • Cliquez sur le nom d'une colonne pour trier la liste en fonction des données requises, telles que le nom du symbole, le prix de clôture, le changement quotidien ou d'autres variables.
    • Utilisez le nouveau menu avec les options de tri les plus populaires. Le tri selon la croissance et la baisse les plus élevées en fonction de la variation quotidienne du prix du symbole peut être utile lors du trading d'instruments boursiers.



  2. Système d'apprentissage intégré repensé et amélioré.
    Tous les conseils interactifs sont regroupés en différentes catégories pour une navigation plus facile. Le nombre d'éléments terminés et restants est indiqué pour chaque catégorie.



    Chaque conseil est désormais fourni avec une liste de contrôle indiquant l'action clé que l'utilisateur doit exécuter pour terminer la formation.
    Nous avons révisé la conception du système d'apprentissage et corrigé les erreurs dans le calcul de la progression totale.

  3. Ajout du calcul automatisé de l'heure de clôture de la session précédente d'un symbole et de l'heure d'ouverture de sa session actuelle. Si les données appropriées ne sont pas fournies directement par le courtier, le terminal calculera les valeurs en fonction des première et dernière cotations d'une session. Les informations pertinentes peuvent être affichées dans la fenêtre Market Watch : activez les colonnes appropriées dans la section "Symboles" ou accédez à la section "Détails".



  4. Application optimisée et accélérée des prix aux positions ouvertes. Lorsque de nouveaux ticks arrivent dans le terminal, les prix, les bénéfices et les marges sont mis à jour plus rapidement.
  5. Calcul fixe de l'Oscillateur Stochastique intégré. Une erreur peut se produire en cas de nombre limité de barres affiché sur les graphiques.

MQL5

  1. Fonction AccountInfo* optimisées et accélérées donnant accès aux propriétés du compte de trading.
  2. Accès optimisé et accéléré aux propriétés des graphiques numériques via la fonction ChartGetInteger.

MetaEditor

  1. Les commandes de menu contextuel suivantes ont été ajoutées aux onglets d'édition de code pour des opérations efficaces avec le MQL5 Storage :
    • Comparer une copie de travail d'un fichier avec la révision actuelle
    • Rétablir les changements
    • Afficher l'historique des modifications de fichiers



  2. Modification de la surbrillance des parenthèses correspondantes. Maintenant, la mise en évidence est appliquée aux parenthèses et non à l'arrière-plan. La surbrillance est désactivée par défaut. Elle peut être activée dans les paramètres de l'éditeur.


  3. Amélioration des fonctions de recherche et de remplacement:
    • Si vous sélectionnez un texte dans le fichier et ouvrez la boîte de recherche, le texte sera automatiquement remplacé dans le champ "Rechercher". Si aucun texte n'est sélectionné, le texte du presse-papier sera collé dans le champ "Rechercher". Si le presse-papier est vide, le focus dans la zone de recherche sera mis sur le champ "Rechercher".
    • Un comportement similaire est implémenté pour la fenêtre de remplacement : le texte sélectionné est inséré dans le champ de recherche et le curseur est déplacé vers le champ "Remplacer par". Ainsi, vous pouvez immédiatement saisir le nouveau texte requis.
    • Les résultats de la recherche et du remplacement sont désormais affichés dans le journal au lieu de la boîte de dialogue distincte précédemment utilisée. Si la fenêtre Boîte à Outils est activée, l'onglet Journal y sera automatiquement sélectionné. Ainsi, vous n'avez pas besoin de travailler avec des fenêtres supplémentaires.

  4. Correction de la recherche dans la fenêtre de comparaison de fichiers lors de l'utilisation du stockage MQL5.
  5. Ajout de la possibilité de rechercher et de remplacer des fichiers connectés au fichier actuel via la directive #include.
    La nouvelle option permet des opérations plus rapides avec des projets composés de plusieurs fichiers. Par exemple, pour remplacer un texte dans tous les fichiers, vous n'aurez pas besoin de spécifier leurs répertoires manuellement, tandis que l'éditeur peut les trouver automatiquement via les directives #include.


Tester

  1. Nous avons révisé les critères d'optimisation qui incluent deux variables, dont le solde. Maintenant, les critères ne prennent en compte que la deuxième variable et ignorent le solde. Les nouveaux critères d'optimisation sont plus faciles à analyser.

    • Solde + Rentabilité Maximale -> Rentabilité Maximale
    • Solde + Gain Maximal Attendu -> Gain Maximal Prévu
    • Solde + Drawdown Minimum -> Drawdown Minimum
    • Solde + Facteur de Récupération Maximum -> Facteur de Récupération Maximum
    • Solde + Ratio de Sharpe maximum -> Ratio de Sharpe maximum




  2. Dans le sous-menu "Paramètres d'optimisation", nous avons ajouté des commandes pour afficher ou masquer rapidement toutes les colonnes d'entrée dans le tableau des résultats d'optimisation :



  3. Ajout d'une coloration pour le tableau et le graphique des résultats d'optimisation, pour une analyse visuelle plus pratique.
    Le graphique est coloré avec un dégradé vert à rouge, selon la valeur du critère d'optimisation. Les couleurs suivantes sont utilisées pour le tableau :
    • Solde : les valeurs au-dessus du dépôt initial sont colorées en bleu et celles en dessous du dépôt initial sont affichées en rouge.
    • Bénéfice : le bleu est utilisé pour les valeurs supérieures à zéro et le rouge est utilisé pour les valeurs inférieures à zéro.
    • Paiement Attendu : le bleu est utilisé pour les valeurs supérieures à zéro et le rouge est utilisé pour les valeurs inférieures à zéro.
    • Drawdown : du vert (0-5%) au rouge (au-dessus de 30%).
    • Ratio de Sharpe : du vert (supérieur à 2) au rouge (inférieur à 0).
    • Facteur de Récupération : du vert (supérieur à 2) au rouge (inférieur à 1).



  4. Tester : Ajout de filtres dans le tableau des résultats d'optimisation. Utilisez des filtres pour masquer les passes infructueuses de la liste :
    • Passes sans trades
    • Passes perdantes
    • Passes avec un drawdown supérieur à 50%
    • Passes avec un Facteur de Récupération inférieur à 1
    • Passes avec le Ratio de Sharpe inférieur à 0,5



  5. Travail optimisé du MQL5 Cloud Network. Désormais, lorsqu'une optimisation est lancée pour le même Expert Advisor, le réseau essaie d'utiliser les mêmes agents de test que ceux utilisés lors de la précédente passe d'optimisation, car l'environnement de marché requis, y compris l'historique de trading, est déjà disponible sur ces agents.
Documentation mise à jour.


26 juin 2020
MetaTrader 5 iOS build 2505: Balayages, nouvelles sections et schémas de couleurs

MetaTrader 5 iOS build 2505

Nous avons recueilli les commentaires des utilisateurs de MetaTrader 5 iOS et repensé considérablement l'application

  • Ajout de la recherche de symboles dans la section des quotes.
  • Ajout du jeu de couleurs par défaut "couleur sur blanc" pour les graphiques.
  • Ajout de l'affichage des transactions sur les graphiques.
  • Déplacement vers le haut du panneau de changement des périodes afin qu'il ne chevauche plus le graphique.
  • Ajout d'une mise à l'échelle verticale des graphiques - glissez simplement l'échelle des prix.
  • Ajout de la possibilité de déplacer des comptes vers d'autres appareils à l'aide de QR codes.
  • Ajout de l'affichage du changement de prix quotidien en pips dans la section quotes. Les données ne sont disponibles que si elles sont fournies par un courtier.
  • Ajout de la prise en charge des balayages vers les écrans Quotes, Historique et Trade.
  • Ajout de la sélection adaptative du volume de trading pour un trading rapide.
  • Ajout de la possibilité d'accéder au générateur OTP via FaceID ou empreinte digitale.
La navigation sur iPad a été repensée
  • Déplacement du panneau de trading en un clic vers le haut ;
  • Ajout du menu du bas avec des sections et des indicateurs ;
  • Déplacement des sections de courrier électronique, des nouvelles et de gestion du compte dans des onglets séparés ;
  • Amélioration de la gestion des comptes.
5 juin 2020
MetaTrader 5 build 2485: Améliorations de iCustom et optimisation globale dans MQL5

Terminal

  1. Edition d'historique des barres optimisée et considérablement accélérée pour les instruments financiers personnalisés. L'amélioration concerne également la fonction CustomRatesUpdate.
  2. Correction de l'export des paramètres de symboles personnalisés vers un fichier JSON.
  3. Correction des erreurs signalées dans les journaux de plantage.

MQL5

  1. Cette version dispose d'un algorithme de chargement d'indicateur personnalisé révisé via iCustom.

    Si le backslash '\' est indiqué avant le nom de l'indicateur personnalisé, le fichier EX5 de l'indicateur est recherché par rapport au dossier racine MQL5. Ainsi, pour un appel de iCustom(Symbol(), Period(), "\FirstIndicator"...), l'indicateur sera chargé depuis MQL5\FirstIndicator.ex5. Si le fichier est introuvable sur ce chemin, l'erreur 4802 (ERR_INDICATOR_CANNOT_CREATE) est renvoyée.

    Si le chemin ne commence pas par un backslash '\', l'indicateur est recherché et chargé en fonction de la séquence d'actions suivante :

    • Le fichier EX5 est recherché dans le même dossier, où se trouve l'EX5 du programme appelant. Par exemple, l'Expert Advisor CrossMA.EX5 est situé dans MQL5\Experts\MyExperts. Il contient l'appel suivant : iCustom(Symbol(), Period(), "SecondIndicator"...). Dans ce cas, l'indicateur est recherché dans MQL5\Experts\MyExperts\SecondIndicator.ex5.
    • Si l'indicateur n'est pas trouvé, une recherche relative au répertoire racine Indicators est effectuée : MQL5\Indicators. Ainsi, le fichier MQL5\Indicators\SecondIndicator.ex5 est recherché. Si l'indicateur n'est pas trouvé, la fonction renvoie INVALID_HANDLE et l'erreur 4802 (ERR_INDICATOR_CANNOT_CREATE) est déclenchée.

    Si le chemin de l'indicateur est défini dans un sous-répertoire tel que MyIndicators\ThirdIndicator, la recherche démarre dans le dossier du programme appelant (l'Expert Advisor se trouve dans le dossier MQL5\Experts\MyExperts) au chemin suivant : MQL5\Experts\MyExperts\MyIndicators\ThirdIndicator.ex5. En cas d'échec, le fichier MQL5\Indicators\MyIndicators\ThirdIndicator.ex5 est recherché. Veuillez noter que le séparateur de chemin doit être spécifié par un double backslash '\\'. Par exemple : iCustom(Symbol(), Period(), "MyIndicators\\ThirdIndicator"...)

    De plus, si un appel d'indicateur personnalisé via iCustom est trouvé dans le code du programme, le compilateur ajoutera implicitement la directive "#property tester_indicator XXX" si elle n'est pas spécifiée.

  2. Fonction HistorySelect optimisée et considérablement accélérée, qui permet de demander l'historique des transactions et des ordres.
  3. Correction d'une erreur occasionnelle lors de la demande de tick via la fonction CopyTicksRange. L'erreur a provoqué le début de la plage à définir au début du jour plutôt qu'à l'heure spécifiée.
  4. Affichage optimisé et considérablement accéléré des alertes via la fonction Alert.
  5. Nouvelle propriété SYMBOL_TIME_MSC pour le dernier temps de tick du symbole en millisecondes. La propriété peut être obtenue à l'aide de la fonction SymbolInfoInteger.
29 mai 2020
MetaTrader 5 build 2470

Terminal

  • Correction d'un bug qui entraînait l'impossibilité d'ajouter des symboles financiers avec '-', '=', '_' et '+' dans leurs noms dans le Market Watch.

MQL5

  • Correction de la recherche étendue par les caractères de fin de ligne '\n' et '\r'.

Documentation mise à jour.
22 mai 2020
MetaTrader 5 Build 2450 : service "Abonnements", améliorations de l'interface utilisateur et fonctionnalités révisées dans MetaEditor

Terminal

  1. Nous avons lancé le tout nouveau service d'abonnements. Les abonnements offrent des services supplémentaires qui peuvent vous aider dans le trading. Par exemple, vous pouvez vous abonner à des données de marché de haute qualité provenant de fournisseurs bien connus, analyser les données reçues et développer de nouvelles stratégies de trading. En option, vous pouvez demander des services de gestion personnelle pour vous aider à apprendre les bases du trading ou à maîtriser vos compétences d'utilisation de la plateforme.

    Le service est en cours de développement et sera disponible pour une utilisation dans les prochaines versions.

    Comment ça marche
    Une nouvelle section Abonnements a été ajoutée dans le Navigator. Tous les services disponibles sont affichés dans cette section. La liste des services est configurée côté courtier et dépend donc du serveur auquel vous êtes connecté. Les abonnements sont divisés en catégories pour une navigation facile.



    Sélectionnez un service pour afficher sa description détaillée. Cliquez ensuite sur S'abonner. Tous vos abonnements actifs sont affichés dans une section distincte.


    Lorsque vous vous abonnez aux données du marché, les instruments de trading correspondants deviennent disponibles et peuvent être sélectionnés dans le Market Watch. Ils peuvent être utilisés comme symboles réguliers : afficher les cotations dans le Market Watch, ouvrir des graphiques et les analyser à l'aide d'objets et d'indicateurs, ainsi que lancer des Expert Advisors dans le testeur de stratégie. Les opérations de trading de ces symboles ne sont pas prises en charge.

    Comment payer les abonnements
    Vous pouvez payer les services en utilisant les fonds de votre compte de trading. Il n'est pas nécessaire de visiter d'autres sites Web, car le paiement peut être effectué directement à partir de la plateforme.

    Nous ajouterons bientôt la possibilité d'acheter des abonnements aux données du marché en vous connectant à MetaQuotes-Demo
    Nous prévoyons de mettre en place des abonnements aux données du marché de différentes bourses à travers le monde. En quelques clics, vous pourrez recevoir des cotations en temps réel du Nasdaq, CME, NYSE, BOVESPA et d'autres bourses. Vous pourrez payer les abonnements en utilisant un compte MQL5.community, de la même manière que les achats sur le Market, Signals et l'Hébergement.

  2. Ajout d'une nouvelle option "Afficher le ticker" dans les paramètres du graphique. L'option affiche/masque la ligne contenant le nom du symbole de trading, le calendrier et un commentaire personnalisé.



  3. Ajout de l'option "Afficher l'historique des transactions" dans les paramètres du terminal et dans les paramètres du graphique. La possibilité d'afficher les entrées et les sorties du marché sur les graphiques était disponible dans les versions précédentes, mais elle était gérée à partir de la section "Boîte à outils \ Historique". La nouvelle option permet un réglage plus confortable de l'affichage de l'historique. Vous pouvez le configurer pour tous les graphiques à la fois ou le définir séparément pour les graphiques souhaités.



    De plus, vous pouvez rapidement activer l'affichage de l'historique et des niveaux de trading à l'aide du menu contextuel du graphique:



  4. Ajout d'un nouveau schéma "Couleur sur blanc" dans les paramètres du graphique.



  5. De nouvelles commandes ont été ajoutées aux menus contextuels de position et d'ordre, permettant une ouverture rapide du Market Depth et du graphique du symbole concerné :



  6. Ajout de la mise en évidence du cadre graphique. Cela vous aidera à trouver le graphique de symboles souhaité lorsque plusieurs graphiques sont ouverts dans le terminal. Sélectionnez un symbole dans le Market Watch, une ligne d'ordre ou de position dans la section de trading ou d'historique, ou une alerte, et le cadre du graphique de symboles approprié clignotera trois fois.


  7. Affichage amélioré des niveaux de trading sur le graphique.
    • Les tickets ne sont plus affichés pour les positions, les ordres et les niveaux, afin de garder le graphique propre
    • Les légendes apparaissent en majuscules pour une meilleure lisibilité
    • Les volumes sont affichés sans la partie fractionnaire si elle est nulle
    • Les niveaux sont masqués si la hauteur du graphique est inférieure à 80 pixels


  8. Ajout de l'affichage de la description du symbole (si disponible) dans le coin supérieur gauche du graphique, en plus du nom du symbole.




  9. De nouvelles colonnes ont été ajoutées dans la liste des ordres et positions ouverts :
    • Variation - pourcentage de rentabilité de l'opération
    • Valeur - la valeur du marché de la position
    • Magic - l'identifiant des ordres et positions ouverts par l'expert-conseil (numéro magique)

    Les nouvelles colonnes peuvent être affichées/masquées à l'aide du menu contextuel.

    Les colonnes valeur et magic de la position ont également été ajoutées à la section historique des trades.

    En outre, le champ de profit dans les sections positions ouvertes et historique est mis en évidence en fonction du résultat de l'opération.

  10. Ajout de la prise en charge des prix négatifs. Cela permet un bon fonctionnement de la plateforme dans des situations similaires à la récente baisse des prix du pétrole en dessous de zéro. Ceci comprend :
    • Affichage des cotations dans le Market Watch
    • Affichage des graphiques et du Market Depth
    • Exécution des opérations de trading
    • Calcul des bénéfices et des sûretés

  11. Le nombre maximum de symboles pouvant être activés simultanément dans le Market Watch a été augmenté à 5000.
  12. Correction du tri dans les chats par date de dernière mise à jour.
  13. Fonctionnement optimisé et accéléré avec un grand nombre de symboles de trading (50 000 et plus).
  14. Correction d'un bug à cause duquel il était impossible de fermer une position si son volume actuel ne correspondait pas au pas de changement de volume du symbole.

MQL5

  1. Opérations optimisées et accélérées avec l'historique des ticks.
  2. Ajout de nouvelles fonctions pour travailler avec des bases de données :
    • DatabaseReset - réinitialise la requête à l'état initial, semblable à l'appel DatabasePrepare. La fonction est destinée à l'exécution multiple d'une demande avec différentes valeurs de paramètre. Par exemple, lors de l'ajout de données à la table en bloc à l'aide de la commande INSERT, un ensemble personnalisé de valeurs de champ doit être formé pour chaque entrée.
    • DatabaseBind - définit une valeur de paramètre dans une requête. La fonction est utilisée dans le cas où une requête SQL contient "?" ou "?N" valeurs paramétrables où N signifie l'indice de paramètre (à partir de un).
    • DatabaseBindArray - définit un tableau comme valeur de paramètre.

  3. Ajout de l'indicateur FSD_FILE_MUST_EXIST pour la fonction FileSelectDialog. Il indique que les fichiers sélectionnés doivent exister.
  4. Des valeurs pour décrire les options ont été ajoutées à l'énumération ENUM_SYMBOL_INFO_DOUBLE:
    • SYMBOL_PRICE_CHANGE - variation du prix actuel par rapport à la fin du jour de bourse précédent en %.
    • SYMBOL_PRICE_VOLATILITY - volatilité des prix en %.
    • SYMBOL_PRICE_THEORETICAL - prix d'option théorique.
    • SYMBOL_PRICE_DELTA - delta de l'option/du warrant. Affiche la valeur par laquelle le prix de l'option change lorsque le prix de l'actif sous-jacent change de 1.
    • SYMBOL_PRICE_THETA - theta de l'option/du warrant. Nombre de points que le prix de l'option doit perdre chaque jour en raison d'une rupture temporaire, c'est-à-dire à l'approche de la date d'expiration.
    • SYMBOL_PRICE_GAMMA - gamma de l'option/du warrant. Affiche le taux de modification du delta - la vitesse à laquelle la prime d'option change.
    • SYMBOL_PRICE_VEGA — vega de l'option/du warrant. Indique le nombre de points dont le prix de l'option change lorsque la volatilité change de 1%.
    • SYMBOL_PRICE_RHO — rho de l'option/du warrant. Reflète la sensibilité du prix de l'option théorique au changement de taux d'intérêt de 1%.
    • SYMBOL_PRICE_OMEGA — omega de l'option/du warrant. Élasticité de l'option - une variation relative en pourcentage du prix de l'option par la variation en pourcentage du prix de l'actif sous-jacent.
    • SYMBOL_PRICE_SENSITIVITY - sensibilité de l'option/du warrant. Indique par combien de points le prix de l'actif sous-jacent de l'option devrait changer de sorte que le prix de l'option change d'un point.

  5. Ajout de l'exportat des champs BLOB au format HEX dans la fonction DatabaseExport.
  6. Une nouvelle propriété CHART_SHOW_TICKER a été ajoutée à ENUM_CHART_PROPERTY_INTEGER - affichant un ticker du symbole dans le coin supérieur gauche. Si CHART_SHOW_TICKER est défini sur false, CHART_SHOW_OHLC est également défini sur false et donc OHLC est masqué.   
  7. La qualité du code généré par le compilateur a été améliorée. Cela a permis d'augmenter sa vitesse d'exécution.
  8. Correction d'erreurs liées à la compilation et à l'exécution des fonctions et classes de modèle. Celles-ci sont :
    • Erreur d'incompatibilité de priorité pour les appels de fonction de modèle surchargés
    • Erreur de génération de méthode/classe de modèle
    • Erreur provoquée par une tentative d'accès à une classe interne pour un paramètre de modèle d'une fonction de modèle
    • Erreur de génération de code de classe de modèle provoquée par l'utilisation d'une classe interne.
    • Erreur lors de l'utilisation de l'objet modèle B<int> avant B<void *>
    • Erreurs dans la création d'objets complexes de type C interne et encapsulés plusieurs fois
    • Erreur lors du transfert de l'argument du pointeur de fonction en tant que modèle de référence const
    • Erreur lors de la transmission de la structure interne à une fonction de modèle
    • Erreur d'inadéquation des priorités pour l'exécution des fonctions de modèle
    • Nombre de parenthèses incorrect dans les boucles for et do-while
    • Nombre de parenthèses incorrect dans la description de la structure de classe
    • Ralentissement lors de l'ajout d'un élément à la fois à l'aide d'ArrayResize
    • Erreur lors du choix d'une fonction surchargée correspondante

  9. Correction d'erreurs occasionnelles dans la fonction CustomTicksReplace.
  10. Correction de la sélection de la période d'affichage pour l'historique des ordres de trading. Maintenant, la plage est basée sur la date d'exécution de l'ordre au lieu de la date de création précédemment utilisée.

Python

  1. Le paramètre path a été ajouté à la méthode initialize - chemin d'accès à metatrader.exe ou metatrader64.exe. Si le chemin n'est pas spécifié, le module tente de trouver le fichier exécutable par lui-même.
  2. Les nouvelles méthodes suivantes ont été ajoutées :
    • symboles_get - retourne tous les symboles financiers du terminal MetaTrader 5.
    • symboles_total - retourne le nombre de tous les symboles financiers dans le terminal MetaTrader 5.

  3. Ajout du filtrage par groupes de symboles pour les fonctions suivantes : orders_get, positions_get, history_orders_get et history_deals_get. Utilisez les appels ayant le paramètre "group".
  4. La valeur de retour de order_send et order_check est maintenant transmise avec le champ 'request' contenant la description complète de la requête d'origine. Par exemple :
    ...
    comment=Request executed
    request_id=55
    retcode_external=0
    request=TradeRequest(action=1, magic=234000, order=0, symbol='USDJPY', volume=0.1, price=108.018, stoplimit=0.0, ...
        traderequest: action=1
        traderequest: magic=234000
        traderequest: order=0
        traderequest: symbol=USDJPY
        traderequest: volume=0.1
        traderequest: price=108.018
        traderequest: stoplimit=0.0
    ...
  5. Lorsqu'ils sont lancés sur un graphique, les scripts Python reçoivent désormais le symbole du graphique et la période (en minutes) comme arguments.
    import sys
    
    chart_symbol='unknown'
    chart_tf=1
    
    if len(sys.argv) == 3:
        chart_symbol, chart_tf = sys.argv[1:3];
    
    print("Hello world from", chart_symbol, chart_tf)
    
    >> Hello world from T.NYSE 15

MetaEditor

  1. Ajout de la commande "Ajouter un dossier existant". Il permet l'ajout par lots de tous les fichiers pris en charge du répertoire sélectionné dans le projet.


  2. Recherche étendue et options de remplacement.

    Ajout de fonctionnalités de recherche étendues avec prise en charge partielle des expressions régulières. Utilisez \r, \n, \t pour spécifier les caractères de saut de ligne et de tabulation dans les requêtes de recherche. Les boîtes de dialogue de recherche et de remplacement ont été combinées en une seule boîte de dialogue multi-onglets.


    Ajout d'un onglet séparé pour la recherche dans les communautés de programmeurs. Celles-ci incluent la MQL5.community, ainsi que GitHub, MSDN et Stack Overflow.

    Les résultats de la recherche à partir de ressources externes apparaissent dans la fenêtre de la boîte à outils MetaEditor :



    De plus, vous pouvez immédiatement télécharger les fichiers source depuis GitHub. Les fichiers sont téléchargés dans un sous-répertoire distinct du dossier Projets, nommé conformément au nom du projet GitHub.

    Les résultats de la recherche peuvent également être triés par date.

  3. Ajout de la possibilité de changer rapidement la taille de la police dans la fenêtre d'édition de code. Pour modifier la taille de la police, appuyez sur Ctrl et faites défiler la molette de la souris.
  4. Ajout de la possibilité d'importer des tables de fichiers CSV vers des tables de base de données. Les paramètres suivants peuvent être définis lors de l'import :
    • Nom de table dans la base de données
    • Détection automatique ou manuelle de l'encodage des fichiers
    • Type de séparateur de données
    • Saut du nombre de lignes spécifié au début
    • Préfixe de commentaire
    • Si le fichier a des noms de colonne
    • Comment les sauts de ligne seront déterminés
    • Si les données doivent être ajoutées à une nouvelle table ou à une table existante
    • Quels guillemets utiliser pour les chaînes de caractères


  5. Ajout de commandes rapides pour insérer l'heure et la couleur dans le code source du programme. Sélectionnez les valeurs souhaitées dans le calendrier interactif et la palette, et l'éditeur les insérera au format approprié.


  6. La prise en charge de MQL4 a été désactivée, car seul le code 64 bits est généré maintenant.
  7. Correction de l'opération Classe snippet.
  8. Correction du support pour les chemins absolus dans les projets.
Documentation mise à jour.

6 mars 2020
MetaTrader 5 build 2360 : Extension de l'intégration de SQLite
  1. MQL5 : les erreurs d'utilisation des bases de données SQLite peuvent maintenant être analysées avec les outils MQL5 standards. Les codes d'erreur suivants ont été ajoutés :

    • ERR_DATABASE_ERROR — erreur générique.
    • ERR_DATABASE_INTERNAL — erreur de logique interne de SQLite.
    • ERR_DATABASE_PERM — accés refusé.
    • ERR_DATABASE_BUSY — fichier de la base de données verrouillé.
    • ERR_DATABASE_LOCKED — table de la base de données verrouillée.
    • ERR_DATABASE_NOMEM — mémoire insuffisante pour terminer l'opération.
    • ERR_DATABASE_READONLY — tentative d'écriture dans une base de données en lecture seule.
    • ERR_DATABASE_IOERR — erreur de lecture/écriture sur le disque.
    • ERR_DATABASE_CORRUPT — image disque de la base de données corrompue.
    • ERR_DATABASE_FULL — échec de l'insertion car la base de données est pleine.
    • ERR_DATABASE_CANTOPEN — impossible d'ouvrir le fichier de base de données.
    • ERR_DATABASE_PROTOCOL — erreur de protocole de verrouillage de la base de données.
    • ERR_DATABASE_SCHEMA — usage interne uniquement.
    • ERR_DATABASE_TOOBIG — la taille de la chaîne de caractères ou du BLOB est supérieure à la limite.
    • ERR_DATABASE_CONSTRAINT — annulation en raison d'une violation de contrainte.
    • ERR_DATABASE_MISMATCH — incohérence de types de données.
    • ERR_DATABASE_MISUSE — bibliothèque utilisée de façon incorrecte.
    • ERR_DATABASE_AUTH — autorisation refusée.
    • ERR_DATABASE_RANGE — erreur de lien avec le paramètre, indice incorrect.
    • ERR_DATABASE_NOTADB — le fichier ouvert n'est pas un fichier de base de données.

  2. MQL5 : Correction de l'utilisation de la fonction DatabaseImport permettant l'import de données depuis un fichier dans une table de la base de données.
  3. MetaEditor : Correction de l'affichage des chaînes de plus de 32 Ko vers les journaux.
  4. MetaEditor : Correction d'un encodage incorrect occasionnel dans les messages envoyés depuis la console Python (stdout, stderr) dans la section Erreurs de l'éditeur.
  5. Documentation mise à jour.

21 février 2020
MetaTrader 5 Build 2340: Gestion des paramètres de compte dans le Testeur et intégration étendue avec Python

MetaEditor

  1. Ajout de nouvelles fonctionnalités pour travailler avec les bases de données SQLite.

    Dans la mise à jour précédente de la plateforme, nous avons introduit la prise en charge des opérations avec les bases de données SQLite directement à partir de MQL5. Les principales fonctions sont devenues disponibles via l'interface utilisateur de MetaEditor :

    • Créer et connecter des bases de données
    • Afficher les tables et effectuer des requêtes de données rapides
    • Créer et exécuter des requêtes SQL, annuler les modifications

    Comment ça fonctionne
    La fonctionnalité de création rapide de base de données est disponible à partir de l'assistant MQL5. Vous pouvez facilement créer votre première table et définir ses champs.


    Lors de la création de la base de données, vous serez redirigé vers une nouvelle section du Navigateur, qui propose des commandes de gestion des données.

    Les tables de base de données sont affichées dans la fenêtre de gauche. Double-cliquez sur le nom de la table pour interroger rapidement les 1.000 premiers enregistrements. Dans cette section du navigateur, vous pouvez également créer et ouvrir d'autres bases de données, ainsi que travailler avec des tables.

    La base de données peut être gérée dans la fenêtre principale de l'éditeur, dans laquelle vous pouvez remplir le tableau, rechercher et sélectionner des données, saisir des requêtes SQL et exécuter d'autres opérations :


    Pour plus de détails sur les opérations de MetaTrader 5 avec des bases de données, veuillez lire l'article intitulé "SQLite : gestion native des bases de données SQL dans MQL5".

  2. Prise en charge étendue des projets multilingues. Cette mise à jour offre des possibilités plus larges pour travailler avec des scripts Python :

    • Désormais, ces scripts peuvent être créés à l'aide de l'assistant MQL5, tandis que vous pouvez instantanément ajouter les dépendances de bibliothèque requises dans le code.
    • Des icônes spéciales ont été ajoutées dans le navigateur et la syntaxe appropriée est disponible dans l'éditeur.
    • Lors de l'exécution d'un script via MetaEditor, les messages de la console Python (stdout, stderr) apparaissent sous la section Erreurs.


    Cliquez sur "Compiler" dans l'éditeur pour exécuter le script :



    Pour travailler avec Python, n'oubliez pas de spécifier son chemin sous la section Paramètres \ Compilateurs dans MetaEditor. Pour activer l'utilisation de la bibliothèque MetaTrader 5, installez-la à l'aide de la commande suivante :
    pip install MetaTrader 5
    Pour plus de détails sur l'intégration de Python, veuillez lire la documentation correspondante.
  3. Ajout de l'affichage des fichiers de base de données SQLite (*.db; *.Sdb; *.Sqlite; *.Db3; *.S3db; *.Sqlite3) dans le Navigateur.
  4. Correction des erreurs d'enregistrement des propriétés du projet.

MQL5

  1. Intégration de Python entièrement révisée. La mise à jour implique de nombreuses nouvelles fonctions et un nouveau nom de commande.

    Nouveau nom
    Les commandes existantes ont été renommées comme suit :
    MT5Initialize       -> initialize
    MT5Shutdown         -> shutdown
    MT5TerminalInfo     -> terminal_info
    MT5Version          -> version
    MT5CopyRatesFrom    -> copy_rates_from
    MT5CopyRatesFromPos -> copy_rates_from_pos
    MT5CopyRatesRange   -> copy_rates_range
    MT5CopyTicksFrom    -> copy_ticks_from
    MT5CopyTicksRange   -> copy_tick_range

    Nouvelles commandes
    La liste des commandes supportées a été étendue. Ajout de fonctions de trading, ainsi que des fonctions pour travailler avec l'historique de trading et pour recevoir les symboles financiers et les données du compte courant.

    • account_info() retourne les information du compte courant. Un analogue de AccountInfoInteger , AcountIndoDouble et AccountInfoString.
    • positions_total() retourne le nombre de positions ouvertes. Un analogue de PositionsTotal.
    • positions_get(symbol, ticket) retourne les positions ouvertes par symbole ou par ticket.
    • orders_total() retourne le nombre d'ordres. Un analogue de OrdersTotal.
    • orders_get(symbol, ticket) retourne les ordes d'ouverture par symbole ou par ticket.
    • history_orders_total(from, to) retourne le nombre d'ordres de l'intervalle spécifié de l'historique.
    • history_orders_get(from, to, position, ticket) retourne le nombre d'ordres de l'intervalle spécifié de l'historique, par ticket ou filtrés par position.
    • history_deals_total() retourne le nombre de transactions dans l'historique. Un analogue de HistoryDealsTotal.
    • history_deals_get(from, to, position, ticket) retourne les transactions de l'intervalle spécifié de l'historique, par ticket ou filtrées par position.
    • symbol_info(symbol) retourne les informations d'instrument financier. Un analogue de SymbolInfoInteger, SymbolInfoDouble, SymbolInfoString.
    • symbol_info_tick(symbol) retourne le dernier tick par symbole. Un analogue de SymbolInfoTick.
    • symbol_select(symbol, enable) active/désactive un symbole dans le Market Watch. Un analogue de SymbolSelect.
    • order_check(request) vérifie la marge d'un ordre. Un analogue de OrderCheck.
    • order_send(request) envoie un ordre au serveur. Un analogue de OrderSend.
    • order_calc_margin(action, symbol, volume, price) calcule la marge d'un ordre. Un analogue de OrderCalcMargin.
    • order_calc_profit(action, symbol, volume, price_open, price_close) calcule le profit. Un analogue de OrderCalcProfit.

    Exécution de scripts Python sur des graphiques
    Les scripts Python peuvent être exécutés directement sur les graphiques de la plateforme, de manière similaire aux programmes MQL5 standard. Ces scripts sont signalés par des icônes spéciales dans le Navigateur.


    Les messages de script seront affichés dans la section "Boîte à outils \ Experts". Si une bibliothèque MetaTrader 5 est utilisée dans le script, elle peut recevoir des symboles de trading et des données de compte, ainsi que réaliser des opérations de trading.

    Les scripts Python peuvent être exécutés sur le même graphique en parallèle avec d'autres scripts MQL5 et Expert Advisors. Pour arrêter un script avec une exécution en boucle, supprimez-le du graphique.

    Protection supplémentaire
    Pour activer une protection de compte supplémentaire lors de l'utilisation de bibliothèques Python tierces, vous pouvez utiliser l'option "Désactiver le trading automatisé via une API Python externe" dans les paramètres du terminal.


    Les scripts Python ne peuvent effectuer des opérations de trading que lorsque cette option est désactivée.

  2. Relance considérablement accélérée des programmes MQL5 et recréation d'indicateurs personnalisés à partir des programmes MQL5. Dans certains cas, les opérations sont effectuées 100 fois plus rapidement.
  3. Fonctions supplémentaires pour travailler avec des bases de données :

    DatabaseImport
    Importe des données d'un fichier dans une table.
    long  DatabaseImport(
       int           database,          // descripteur de base de données reçu par DatabaseOpen
       const string  table,             // nom de la table dans laquelle insérer les données
       const string  filename,          // nom du fichier à partir duquel importer les données
       uint          flags,             // combinaison de flags
       const string  separator,         // séparateur des données
       ulong         skip_rows,         // nombre de 1ères lignes à ignorer
       const string  skip_comments      // chaîne de caractères définissant les commentaires
       );

    DatabaseExport
    Exporte une table ou un résultat de requête SQL vers un fichier CSV. Le fichier est créé en encodage UTF-8.
    long  DatabaseExport( 
       int           database,           // descripteur de base de données reçu par DatabaseOpen 
       const string  table_or_sql,       // nom de la table ou requête SQL
       const string  filename,           // nom du fichier CSV pour l'export des données
       uint          flags,              // combinaison de flags
       const string  separator           // séparateur des données in the CSV file
       );

    DatabasePrint
    Imprime le résultat de la table ou de la requête SQL dans le journal Experts.
    long  DatabasePrint(
       int           database,          // descripteur de base de données reçu par DatabaseOpen
       const string  table_or_sql,      // table ou requête SQL
       uint          flags              // combinaison de flags
       );

  4. Ajout de la fonction FileSelectDialog, qui appelle la boîte de dialogue système créant/ouvrant un fichier ou un dossier.
    int  FileSelectDialog(
       string   caption,              // titre de la fenêtre
       string   initial_dir,          // répertoire initial
       string   filter,               // filtre d'extensions
       uint     flags,                // combinaison de flags
       string&  filenames[],          // tableau contenant les noms des fichiers
       string   default_filename      // nom de fichier par défaut
       );
    La nouvelle fonction permet une interaction efficace de l'utilisateur avec le programme MQL5.

  5. Nouvelle valeur DEAL_FEE dans l'énumération ENUM_DEAL_PROPERTY_DOUBLE. Elle est utilisée pour des frais de transaction. La valeur indique un type de commission distinct facturé par le courtier.

Tester

  1. Ajout de fonctionnalités pour spécifier les paramètres de compte de trading personnalisés lors des tests de stratégie, tels que les limitations de trading, les paramètres de marge et la commission. Les nouvelles fonctions offrent des capacités étendues pour modéliser diverses conditions de trading.



    Paramètres communs
    Dans cette section, vous pouvez définir le nombre maximal d'ordres et de positions ouverts, qui peuvent simultanément exister sur le compte. De plus, vous pouvez configurer des sessions pendant lesquelles le programme n'est pas autorisé à trader.

    Margin
    La section permet la configuration des règles de réservation de marge et des systèmes de comptabilité de position à utiliser dans les tests :

    • Gestion du risque — modèle de gestion du risque : OTC et modèle boursier, systèmes de netting et de hedging. Pour plus de détails, veuillez lire la Documentation.
    • Niveau de l'appel de marge — lorsque ce niveau est atteint, le compte bascule automatiquement dans l'état Appel de Marge.
    • Niveau de Stop out — lorsque ce niveau est atteint, tous les ordres sont annulés et toutes les positions de trading sont fermées. Ces niveaux peuvent être indiqués en pourcentage ou en monnaie. Si "en monnaie" est sélectionné, les niveaux sont définis dans la valeur des Fonds du compte. Si "en pourcentage" est sélectionné, les niveaux sont définis comme la valeur "Niveau de marge" du compte (Fonds/Marge*100).
    • Profit non réalisé — en tenant compte du résultat flottant actuel dans la marge libre :
      • Ne pas utiliser le résultat non réalisé - ne pas inclure le résultat des positions ouvertes dans le calcul.
      • Utiliser le résultat non réalisé - inclure le résultat des positions ouvertes dans le calcul.
      • Utiliser le profit non réalisé - n'inclure que le profit.
      • Utiliser la perte non réalisée - n'inclure que la perte.
    • Bénéfice fixe quotidien - prise en compte du bénéfice/perte fixe quotidien du client dans la marge libre :
      • Utiliser le profit/la perte fixe quotidien - inclure dans la marge libre le profit et la perte reçus au cours d'une journée de trading.
      • Utilisez la perte fixe quotidienne - n'inclure que la perte reçue pendant la journée de trading. Pendant la journée, le profit obtenu est accumulé dans le champ spécial du compte ("Bloqué"). À la fin de la journée de trading, le bénéfice accumulé est débloqué (mis à zéro) et ajouté au solde du compte (inclus dans la marge libre).
    • Libérer le bénéfice fixe à la fin de la journée - cette option n'est disponible que si l'option "Utiliser la perte fixe quotidienne" est sélectionnée. Si elle est activée, le profit accumulé sera débloqué (et donc inclus dans la marge libre) à la fin de la journée. Sinon, ce montant de profit restera bloqué.

    Commission
    Cette section permet de contrôler les commissions facturées pour toutes les opérations de trading.

    • La commission peut être à un niveau et à plusieurs niveaux, c'est-à-dire être égale quel que soit le volume/le chiffre d'affaires ou peut dépendre de leur taille. Les données appropriées sont affichées dans le terminal.
    • La commission peut être prélevée immédiatement lors de l'exécution de l'opération ou à la fin d'un jour/mois de trading.
    • Différentes commissions peuvent être facturées selon la direction de l'opération : entrée, sortie ou les deux types d'opération.
    • La commission peut être facturée par lot ou par transaction.
    • La commission peut être calculée en argent, en pourcentage ou en points.


  2. Travail optimisé et accéléré en mode Market Scanner, au cours duquel plusieurs tests sont exécutés pour tous les symboles disponibles dans le Market Watch.
  3. La taille de la transaction ou de la position est désormais prise en compte lors du calcul du profit en pips. Auparavant, le calcul n'était effectué que pour un lot.
  4. Amélioration du contrôle du graphique des résultats d'optimisation. L'option de défilement a été ajoutée pour un graphique d'optimisation zoomé. Un double-clic sur un point du graphe sélectionne le résultat correspondant dans le tableau des tests réussis.
Documentation mise à jour.
13 décembre 2019
MetaTrader 5 Platform Build 2280

Terminal

  1. Correction d'un bug qui empêchait de supprimer un Expert Advisor d'un graphique n'ayant aucune donnée.
  2. Affichage de l'en-tête du graphique fixe sous Wine.

MQL5

  1. Amélioration de la vitesse de chargement et de compilation des programmes MQL5.
  2. Un double-clic sur un graphique est maintenant passé en tant qu'événement à simple clic à un programme MQL5. Auparavant, ces événements n'étaient pas traités.
  3. Correction du fonctionnement de la fonction StringTrimRight.
  4. Ajout de la documentation pour les fonctions de visualisation 3D DirectX.

Tester

  1. Correction d'un bug qui mettait le symbole de test dans les paramètres à vide. L'erreur pourrait générer le passage à un autre compte de trading avec un autre ensemble d'instruments de trading. Le nouveau comportement : si le symbole précédemment sélectionné n'est pas trouvé dans le compte de trading actuellement connecté, le premier symbole disponible dans Market Watch est automatiquement sélectionné à la place.

MetaEditor

  1. Correction du chargement de l'icône de l'application lors de la réouverture des propriétés du projet.

Mises à jour des traductions de l'interface utilisateur.

Correctifs basés sur les journaux de crash.
6 décembre 2019
MetaTrader 5 build 2265 : fonctions DirectX pour la visualisation 3D en MQL5 et paramètres des symboles dans le Strategy Tester

Terminal

  1. De nouvelles colonnes sont disponibles dans le Market Watch. La section principale comporte maintenant 40 paramètres de symbole supplémentaires, qui n'étaient auparavant disponibles que dans l'onglet Détails.




  2. Ajout de la mise en surbrillance du compte et du serveur actuellement connectés dans le Navigator. La fonction est utile si vous avez plusieurs comptes avec différents courtiers.




  3. Mise à jour du rendu du cadre des graphiques. Les cadres sont maintenant plus petit, laissant plus d'espace pour des informations utiles.




  4. Modification de l'algorithme de calcul des totaux de trading à l'affichage de l'historique de trading par positions. Les valeurs sont maintenant calculées sur les enregistrements réels.

    Pour afficher l'historique de trading par positions, le terminal utilise les informations des transactions exécutées pendant la période demandée. Seules les positions fermées durant cette période seront affichées dans l'historique. Si la position est toujours ouverte ou qu'elle a été fermée après l'intervalle sélectionné, elle ne sera pas affichée dans l'historique. Par conséquent, le total des bénéfices et des commissions en mode positions peut différer de ceux en mode historique des ordres/transactions.

    Par exemple, vous consultez l'historique de la semaine écoulée. Au cours de cette période, 100 transactions ont été exécutées, dont 98 ont été ouvertes et 20 fermées. Les deux dernières transactions ont ouvert de nouvelles positions qui n’ont pas encore été clôturées. Dans ce cas, l'historique des transactions contient 100 enregistrements et les valeurs totales appropriées calculées sur la base de ces transactions. Lorsque vous visualisez l'historique par positions, vous verrez 20 enregistrements collectés sur la base de 98 transactions. Seules ces données seront prises en compte lors du calcul des valeurs totales. Si le courtier prélève des frais de transaction, la valeur de commission finale dans l'historique des transactions sera différente de celle indiquée dans l'historique des positions, car les deux dernières transactions seront ignorées dans ce dernier cas.

  5. Lancement plus rapide des programmes MQL5.
  6. Une nouvelle option /beta a étét ajoutée dans le fichier d'installation du terminal, permettant de télécharger la version beta. En mode normal, la version officielle est installée par défaut, mais elle peut ensuite être mise à jour avec une version beta. En passant cette étape, vous pouvez économiser du temps et du trafic. Exemple de lancement de l'installation :
    C:\mt5setup.exe /beta
  7. Correction de l'affichage des besoins de marge des instruments de type "Actions Boursières".
  8. Amélioration de la vitesse d'utilisation de tous les composants de la plateforme grâce à l'utilisation du compilateur Clang/LLVM. Dans certains cas, la compilation est accélérée de 20%.

MQL5

  1. Ajout de nouvelles fonctions et shaders DirectX 11 pour la visualisation 3D. Vous pouvez maintenant créer des graphiques en 3 dimensions créés directement dans MQL5.

    La nouvelle classe CCanvas3D est une extension de la classe CCanvas de graphiques personnalisés. Elle est disponible dans le répertoire \MQL5\Include\Canvas\. La classe comporte des fonctions pour le rendu 3D des objets via l'API DirectX.

    • Create — crée une scène.
    • Attach — attache une scène à un graphique.
    • Destroy — détruit une scène.
    • ObjectAdd — ajoute à la scène un objet descendant, hérité de la classe de base CDXObject.
    • Render — la boucle complète de rendu, avec la mise en cache et le rendu de tous les CDXObject, ajoutés via la méthode ObjectAdd.
    • RenderBegin — démarre le rendu d'une scène, remplit le cache du rendu avec la couleur spécifiée (si le flag DX_CLEAR_COLOR est défini) et le cache de profondeur (lors de l'utilisation de DX_CLEAR_DEPTH), et définit également le cache de scène DXInputScene pour les shaders par défaut.
    • RenderEnd — complète le rendu des scènes et récupère le résultat dans un cache interne. Si redraw==true, affiche l'image sur le graphique sur lequel il s'exécute.
    • ViewMatrixGet — retourne la matrice de la vue.
    • ViewMatrixSet — définit la matrice de la vue. La matrice n'est pas compatible avec les méthodes ViewPositionSet, ViewRotationSet, ViewTargetSet et ViewUpDirectionsSet.
    • ViewPositionSet — définit la position de la caméra.
    • ViewRotationSet — définit la matrice de rotation de la caméra.
    • ViewTargetSet — définit le point de visée de la caméra. Utilisée avec ViewUpDirectionsSet, c'est une alternative à ViewRotationSet.
    • ViewUpDirectionsSet — définit la position verticale de la caméra. Utilisée avec ViewTargetSet, c'est une alternative à ViewRotationSet.
    • ProjectionMatrixGet — retourne la matrice de projection.
    • ProjectionMatrixSet — définit la matrice de projection.

    La documentation détaillée de la nouvelle bibliothèque sera bientôt publiée.




  2. Ajout du support des opérations avec les bases de données SQLite directement depuis MQL5. Cela facilite l'exécution des requêtes SQL sans créer d'instructions complexes. L'opération interne est implémentée par la nouvelle extension de la bibliothèque standard.

    Les fonctions suivantes sont disponibles :

    • DatabaseOpen — ouvre ou crée une base de données dans le fichier spécifié
    • DatabaseClose — ferme une base données
    • DatabaseTableExists — vérifie la présence d'une table dans la base de données
    • DatabaseExecute — exécute une requête sur la base de données spécifiée
    • DatabasePrepare — crée un handle de requête qui peut être ensuite exécuté avec DatabaseRead()
    • DatabaseRead — passe à l'enregistrement suivant dans les résultats de la requête
    • DatabaseFinalize — supprimer une requête qui a été créée avec DatabasePrepare()
    • DatabaseTransactionBegin — commence l'exécution d'une transaction
    • DatabaseTransactionCommit — termine l'exécution d'une transaction
    • DatabaseTransactionRollback — annule une transaction
    • DatabaseColumnsCount — retourne le nombre de colonnes d'une requête
    • DatabaseColumnName — retourne le nom d'une colonne par son numéro
    • DatabaseColumnType — retourne le type d'une colonne par son numéro
    • DatabaseColumnSize — retourne la taille de la colonne en octets
    • DatabaseColumnText — retourne la valeur string d'une colonne de l'enregistrement courant
    • DatabaseColumnInteger —  retourne la valeur int d'une colonne de l'enregistrement courant
    • DatabaseColumnLong — retourne la valeur long d'une colonne de l'enregistrement courant
    • DatabaseColumnDouble — retourne la valeur double d'une colonne de l'enregistrement courant
    • DatabaseColumnBlob — retourne le tableau de caractères (BLOB - Binary Large Object) d'une colonne de l'enregistrement courant

    Les codes d'erreurs suivants ont été ajoutés pour le fonctionnement des opérations :

    • ERR_MQL_DATABASE_INTERNAL (5120) — erreur interne de la base de données
    • ERR_MQL_DATABASE_INVALID_HANDLE (5121) — handle invalide de la base de données
    • ERR_MQL_DATABASE_TOO_MANY_OBJECTS (5122) nombre maximum d'objets atteint dans la base de données
    • ERR_MQL_DATABASE_CONNECT (5123)erreur de connexion à la base de données
    • ERR_MQL_DATABASE_EXECUTE (5124) erreur d'exécution de la requête
    • ERR_MQL_DATABASE_PREPARE (5125) erreur de création de la requête
    • ERR_MQL_DATABASE_NO_MORE_DATA (5126) — plus de données à lire
    • ERR_MQL_DATABASE_STEP (5127) erreur de déplacement à l'enregistrement suivant de la requête
    • ERR_MQL_DATABASE_NOT_READY (5128) les données pour la lecture des résultats de la requête ne sont pas encore prêtes
    • ERR_MQL_DATABASE_BIND_PARAMETERS (5129) erreur de substitution automatique de la requête SQL

  3. Ajout d'une nouvelle propriété des programmes MQL5 permettant la sélection d'une méthode de visualisation par défaut.
    #property optimization_chart_mode "3d,InpX,InpY"
    La propriété permet de définir le type du graphique ouvert à la fin de l'optimisation, ainsi que les paramètres du programme pour les les axes X et Y.

    La propriété ne définit que la vue par défaut du graphique. Elle peut être changée manuellement à tout moment en utilisant le menu contextuel.

  4. Nouvelle fonction MathArctan2. Retourne la valeur en radians de l'angle dont la tangente est égale au rapport des deux nombres spécifiés.
    double  MathArctan2(
       double  y      // la coordonnée y du point
       double  x      // la coordonnée x du point
       );
  5. Nous avons effectué une optimisation générale des programmes pour améliorer les performances et réduire la consommation des ressources.
  6. Ajout d'exemples de calculs mathématiques pouvant être effectués dans le strategy tester. Ils sont disponibles dans le répertoire \MQL5\Experts\Examples\Math 3D\.
  7. Introduction d'un contrôle plus fin des espaces de noms.
  8. Ajout du chargement des bibliothèques liées lors de l'utilisation de bibliothèques .NET dans les programmes MQL5. Si la bibliothèque .NET utilisée requiert d'autres bibliothèques pour son utilisation, le compilateur essayera de les télécharger automatiquement depuis \MQL5\Libraries.
  9. Correction des opérations d'heure dans le module MetaTrader pour l'intégration Python. Toutes les données en sortie utilisent maintenant l'heure du serveur de trades auquel le terminal est connecté.

Tester

  1. De nombreuses améliorations et nouvelles fonctionnalités :

    Paramètres personnalisés pour les instruments financiers
    Vous pouvez maintenant modifier les paramètres du principal instrument de trading sur lequel le test ou l'optimisation est effectué. Pratiquement tous les paramètres de spécification peuvent être surchargés : volumes, modes de trading, besoins de marge, mode d'exécution et d'autres paramètres. Donc, si vous devez vérifier un Expert Advisor sous différentes conditions, vous n'avez pas besoin de créer un symbole personnalisé séparé et de télécharger son historique. Vous pouvez le faire en changeant les paramètres standards du symbole.



    Si la spécification du symbole est personnalisé, l'icone 'route crantée' et l'icone du symbole sont marquées avec une astérisque. Elle montre que les paramètres personnalisés sont utilisés pour le test courant.




    Derniers paramètres/Expert Advisors/graphiques
    Utilisez les nouvelles commandes du menu contextuel pour une configuration rapide du test ou de l'optimisation. Choisissez les derniers paramètres utilisés par le tester, les graphiques récents ou les applications :




MetaEditor

  1. Ajout de la possibilité de travailler avec des projets C/C++ et Python directement depuis MetaEditor. Les projets multi-langages peuvent maintenant être gérés en utilisant l'éditeur intégré.

    Si les compilateurs appropriés sont installés sur votre PC, MetaEditor les détectera et les ajoutera à vos paramètres. Vous pouvez également spécifier les chemins d'accès aux composants requis dans l'onglet Compilateurs. Dans le même onglet, vous pouvez télécharger les composants en cliquant sur Installer à côté du champ correspondant.




    Après cela, vous pouvez utiliser des projets C/C++ et Python de la même façon que pour les programmes MQL5.

  2. Ajout du support des sous-projets du répertoire des Projets Partagés prévus pour le développement partagé d'un projet via le MQL5 Storage. Auparavant, seuls les projets isolés pouvaient être créés au niveau principal.
  3. Mises à jour du débogueur intégré.
  4. Correction de l'ajout de l'en-tête d'une fonction lors de l'utilisation d'un styler de code.
  5. Les commandes 'Aller à la position précédente/suivante du curseur' sont maintenant disponibles dans le menu Affichage et dans la barre d'outils.
  6. Les espaces peuvent maintenant être utilisés dans les noms de projet.

Android

  1. Ajout de la possibilité de basculer rapidement entre les pages dépôts/retraits sur le site web de votre courtier.

    Il n'est pas nécessaire de chercher les fonctions correspondantes dans l'espace personnel du site du courtier. Les commandes de navigation rapide sont également disponibles directement dans les terminaux : les utilisateurs peuvent basculer entre les pages de retrait et de dépôt depuis les sections Comptes et Trading :



    • Les opérations de retrait/dépôt ne sont disponibles que si les fonctions appropriées sont activées pour le compte de trading du côté du courtier.
    • Le terminal de trading n'effectue aucune opérations de retrait/dépôt. Les fonctions intégrées redirigent l'utilisateur vers les pages correspondantes du site web du courtier.

  2. Les positions de l'historique sont maintenant triées par date de clôture.
  3. Ajout du marquage des positions fermées par Stop Loss ou par Take Profit avec des lignes verticales rouges et vertes dans la section historique.
  4. Ajout de nouveaux champs dans la spécification du symbole de trading :

    • Category — la propriété est utilisée pour le marquage supplémentaire des instruments financiers. Par exemple, ça peut être le secteur du marché auquel le symbole appartient : Agriculture, Pétrole & Huiles et autres. La catégorie n'est affichée que si les informations correspondantes sont fournies par le courtier.
    • Exchange — le nom de la bourse sur laquelle l'instrument est échangé. La catégorie n'est affichée que si les informations correspondantes sont fournies par le courtier.

  5. Ajout de l'indication de l'état de l'Appel de Marge dans la section trading. Lorsque cet état apparaît, les paramètres Marge, Marge Libre et Niveau de Marge sont affichés en rouge.
  6. Correction de l'affichage du bouton d'ouverture de la section OTP sur les tablettes.
  7. Autres corrections et améliorations.

iPhone/iPad

  1. Ajout de la possibilité de basculer rapidement entre les pages dépôt/retrait sur le site web du courtier. Pour plus de détails, veuillez consulter la page What's New de MetaTrader 5 pour Android.



  2. Ajout du support du mode sombre pour iOS/iPadOS.
  3. La section mot de passe à usage unique est maintenant disponible dans la version pour iPad.
  4. Les positions fermées par Stop Loss ou par Take Profit sont marquées avec des lignes verticales rouges et vertes dans la section historique.
  5. Les positions de l'historique sont maintenant triées par date de clôture. Si la position n'a pas encore été fermée, sa date d'ouverture est utilisée pour le tri.
  6. Autres corrections et améliorations.

précédent1234567891011121314