Mises à jour : MetaTrader 5

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

21 juin 2024
MetaTrader 5 Build 4410 : Amélioration des performances
MetaTrader 5 build 4410: улучшения в работе

Terminal

  1. Correction d'un crash de terminal qui pouvait survenir au démarrage des tests dans certaines conditions.

MQL5

  1. Correction du fonctionnement de la propriété MQL_PROGRAM_NAME pour les applications de service. La propriété pouvait renvoyer une instance de service incorrecte.

Terminal Web

  1. Correction de la validation de la compatibilité du navigateur avec le terminal web. Dans certains cas, les utilisateurs peuvent avoir reçu par erreur un message indiquant que leur navigateur n'était pas pris en charge.
  2. Correction de l'ouverture des comptes de démo.
  3. Corrections et améliorations mineures.

La mise à jour sera disponible via le système Live Update.

MetaTrader 5 Android

  1. Interface entièrement repensée pour les versions sur tablettes. Elle arbore désormais un design moderne, déjà éprouvé sur les versions iOS et web de la plateforme. Les sections principales sont désormais situées en bas de l'écran et les commandes des opérations sur le graphique apparaissent sur la gauche.




  2. Ajout d'un menu contextuel à la section historique des positions , permettant un accès rapide à la boîte de dialogue de trading ou au graphique du symbole correspondant.
  3. Désactivation pour les symboles non échangeables de la commande passant à la boîte de dialogue de trading.
  4. Correction du fonctionnement avec le serveur MetaQuotes-Demo.

Mettez à jour vos applications mobiles via Google Play, Huawei AppGallery ou en téléchargeant le fichier APK.

7 juin 2024
MetaTrader 5 Build 4380 : Amélioration des performances

Terminal

  1. Correction d'erreurs pouvant entraîner un fonctionnement incorrect du système Live Update dans certaines conditions.
  2. Ajout d'une nouvelle touche de raccourci, Alt+X, pour ouvrir la liste des Expert Advisors.
  3. Correction des erreurs rapportées dans les journaux de crash.

MetaTester

  1. Correction d'erreurs dans la définition de certaines propriétés de l'objet graphique Bitmap.
  2. La connexion des agents de test au réseau MQL5 Cloud Network est désormais interdite lorsqu'ils opèrent dans des environnements virtuels et lorsque le processeur ne prend pas en charge le jeu d'instructions AVX.

Terminal Web

  1. Correction d'une erreur dans le fonctionnement du panneau de trading en-un-clic sur le graphique.
  2. Correction de la boîte de dialogue d'avertissement qui s'ouvre lorsque vous activez le panneau de trading en-un-clic sur le graphique.
31 mai 2024
MetaTrader 5 Build 4350: Encore plus d'objets d’analyse dans la plateforme Web et une page d'Accueil dans MetaEditor

MetaEditor

  1. Ajout d'une page d'accueil pour aider les utilisateurs à se lancer dans le trading algorithmique et le développement d'applications.



    Matériel pour les débutants
    La section "Introduction" présente le matériel pédagogique disponible sur MQL5.com: documentation sur le langage, livres, articles, forums de développeurs et bibliothèque de base de code. Elle présente également des services où vous pouvez appliquer et monétiser vos connaissances : le marché des applications, les freelances et les signaux de trading.

    Dans les sections documentation et livres, vous trouverez une description plus détaillée des supports de formation disponibles.

    Fonctionnalités utiles pour les développeurs
    La section "Quoi de neuf" propose un ensemble d'informations essentielles pour tenir les développeurs au courant de l'évolution de la situation :


    Vous trouverez également ici une liste des fichiers récemment ouverts pour un accès rapide.



    Pour les utilisateurs qui vendent activement leurs applications sur le Market, le rapport "Mes ventes" constitue un outil précieux pour évaluer leurs performances. Il permet d'accéder à :

    • Statistiques complètes sur les ventes et les téléchargements au fil du temps.
    • La géographie des ventes, qui permet de connaître les régions où vos produits sont les plus populaires. Cela peut suggérer des idées pour l'expansion future du projet, comme la localisation dans des langues spécifiques ou des campagnes publicitaires ciblées dans des régions particulières.
    • Données sur les produits les plus vendus en fonction du volume des ventes et des revenus générés. Le graphique peut être filtré en fonction du type de licence : complète ou location pour une certaine durée. Vous pouvez également voir ici un graphique avec les changements de prix des produits. Tout cela vous aidera à comprendre vos clients.
    • Des statistiques détaillées sur les téléchargements et les ventes pour chaque produit.




  2. Amélioration de la recherche intégrée. La barre de recherche supérieure est désormais utilisée exclusivement pour rechercher du texte dans le document en cours ou dans les fichiers locaux. Pour une recherche globale dans le matériel éducatif et les codes, utilisez une section distincte de la boîte à outils.



  3. Ajout de la prise en charge de GPT-4o, le dernier modèle de ChatGPT, dans Copilot. Il peut être utilisé pour compléter automatiquement le code et obtenir des astuces. Vous pouvez sélectionner le nouveau modèle dans les paramètres de MetaEditor.



  4. Mise à jour des traductions de l'interface utilisateur.

Terminal

  1. Précision accrue dans l'affichage du prix de calcul dans la spécification de l'instrument de trading.
  2. Correction des calculs des MFE et MAE dans le rapport de trading.
  3. Correction de la sauvegarde et de la restauration des paramètres de filtrage du calendrier économique par pays et par devise.
  4. Correction de l'application des modèles aux graphiques. Désormais, si l'affichage de l'historique des transactions est activé pour le graphique, les objets correspondants ne disparaîtront pas après l'application d'un modèle.
  5. Correction d'erreurs dans le tableau des options. L'ajout de symboles au tableau peut entraîner le blocage de la plateforme dans certaines conditions.
  6. Correction d'une erreur dans le dialogue d'édition de la position. Dans certains cas, des niveaux incorrects peuvent être saisis à la place des valeurs actuelles de Stop Loss et de Take Profit.
  7. Mise à jour des traductions de l'interface utilisateur.

MQL5

  1. Optimisation et accélération de la fonction ArrayResize. La fonction peut être exécutée jusqu'à 40% plus rapidement dans certaines conditions.
  2. Mise à jour du support pour ONNX.
  3. Correction des appels à la fonction MessageBox dans les applications de service. Quel que soit le bouton appuyé par l'utilisateur dans la boîte de dialogue, la fonction renvoie une valeur nulle.
  4. Correction d'une erreur qui, dans certains cas, provoquait une initialisation incomplète des programmes MQL5.
  5. Correction d'une erreur dans l'analyse de certaines macros. L'erreur s'est produite lors de l'utilisation d'un grand nombre de constantes.


Terminal Web MetaTrader 5

  1. Liste étendue des objets d’analyse disponibles. Vous pouvez désormais utiliser la règle pour mesurer le temps et les prix, dessiner des formes (rectangle, ellipse, triangle et cercle) et ajouter des étiquettes à vos graphiques. Tous les objets se trouvent dans le panneau de gauche :



  2. Ajout de la possibilité de renommer les objets.
  3. Amélioration de l'intégration avec le calendrier économique. Optimisation et accélération des demandes de données.
  4. Accélération des opérations graphiques.
  5. Démarrage accéléré de l'application et connexion à un compte de trading.
  6. Correction du paramètre qui contrôle l'affichage des opérations de trading sur le graphique.
  7. Correction de l’affichage des exigences de marge dans les spécifications des contrats.
  8. Correction de l'affichage des statuts des comptes dans la section historique. Des problèmes pourraient survenir sur les appareils dotés d'écrans étroits.
  9. Correction de l'affichage des modifications du Depth of Market.
22 mars 2024
MetaTrader 5 Build 4260 : Améliorations générales

Terminal Client

  1. Correction d'erreurs lors de l'abonnement à des produits gratuits dans le service Abonnements . Le bouton correspondant peut ne pas être affiché dans la boîte de dialogue dans certaines conditions.
  2. Mise à jour des traductions de l'interface utilisateur.
  3. Correction des erreurs rapportées dans les journaux de crash.

MQL5

  1. Prise en charge étendue des événements clavier :

    • Ajout de l'événement CHARTEVENT_KEYUP pour le gestionnaire OnChartEvent . Il permet le suivi des événements liés aux relâchement des touches.
    • Ajout du traitement des touches mortes. Ce sont les touches qui modifient l'apparence du caractère généré par la touche frappée immédiatement après. Par exemple, dans la disposition grecque, une voyelle accentuée ά, έ, ύ, etc. peut être générée en appuyant d'abord sur ";" puis sur la voyelle. L'appui sur ces touches peut être suivi à l'aide de la fonction TranslateKey .
    • Fonctions TranslateKey et TerminalInfoInteger améliorées. Désormais, lors de la réception d'événements CHARTEVENT_KEYUP ou CHARTEVENT_KEYDOWN dans OnChartEvent, vous pouvez obtenir l'état complet du clavier au moment où l'événement s'est produit. Par exemple, si l'utilisateur a appuyé sur la touche Z, vous pourrez déterminer si la touche Ctrl ou Shift a été enfoncée à ce moment-là. Pour les autres événements, les fonctions continueront à fonctionner comme avant, en renvoyant l'état actuel du clavier.

  2. Mise à jour de la bibliothèque Alglib. Suite à la mise à jour, les méthodes suivantes dans les classes CMatrixDouble et CMatrixComplex ont été modifiées :
    vector<double/complex> operator[](const int i) const;
    vector<double/complex> operator[](const ulong i) const;
    Elles ont été remplacées par une méthode unique avec une valeur de retour constante :
    const vector<double/complex> operator[](const ulong i) const;
    Cette modification aidera à capturer une utilisation incorrecte du résultat en place car dans la nouvelle version d'Alglib, le code mat[row][col]=x fonctionne différemment de l'ancienne version. Auparavant, cela signifiait écrire dans une matrice. Désormais, la valeur est écrite dans un vecteur d'objet temporaire<double/complex>, qui est immédiatement détruit après l'enregistrement.

    L'ajout de const à la valeur de retour permet l'utilisation de mat[row][col]=x. Étant donné que mat[row] renvoie désormais un vecteur constant, tenter d'écraser son élément avec mat[row][col] entraînera une erreur de compilation.

  3. Correction d'une erreur pouvant entraîner un fonctionnement incorrect des fonctions ChartGet* dans certaines conditions.

MetaEditor

  1. Ajout d'une recherche dans le contenu du livre Réseaux Neuronaux pour le Trading Algorithmique en MQL5. La nouvelle option apparaît dans la même section que le livre Programmation MQL5 pour les Traders précédemment publié.



Testeur

  1. Correction de l'optimisation lors de l'utilisation d'un grand nombre d'agents distants. Dans certains cas, l'erreur peut entraîner une utilisation excessive du processeur.

Terminal Web

  1. Correction du réglage des ordres limités pour les instruments avec le mode d’exécution échange. Désormais, lorsque le prix de l'ordre passé change par rapport au prix actuel (devient supérieur ou inférieur), le type d'ordre ne passera pas de Buy Limit à Sell Limit et vice versa, comme c'est le cas pour les instruments d'autres types. Les utilisateurs peuvent ainsi passer des ordres d'achat limités au-dessus du marché et des ordres de vente limités en dessous du marché, garantissant ainsi que le prix de la transaction est garanti limité.
  2. Correction de l'affichage des compteurs de symboles sélectionnés dans le Market Watch.
7 mars 2024
MetaTrader 5 build 4230 : Plus d'applications intégrées et un support ONNX étendu

Terminal

  1. Ajout de 28 nouveaux Expert Advisors et de 12 nouveaux indicateurs à la plateforme standard. Les applications sont disponibles dans les sections 'Expert Advisors\Free Robots' et 'Indicators\Free Indicators' du Navigateur. Chaque programme est disponible sous forme de code source avec des commentaires détaillés pour vous aider à apprendre le langage MQL5.

    Les robots mettent en œuvre des stratégies de trading basées sur des indicateurs techniques et des motifs de chandeliers, tels que « 3 Corbeaux noirs - 3 Soldats blancs », « Engulfing haussier - Engulfing baissier», « Harami haussier - Harami baissier » et autres. Les nouveaux indicateurs sont des implémentations des canaux populaires classiques : Camarilla, DeMark, Donchian, Fibonacci et Keltner, entre autres.



  2. Les préparatifs sont en cours pour le lancement des abonnements aux données de marché du Nasdaq. À partir de la plateforme, les traders pourront accéder à des cotations en temps réel et à des historiques de prix détaillés pour des centaines d'instruments financiers de l'une des plus grandes bourses. Les abonnements seront disponibles pour tout utilisateur disposant d'un compte de démo sur le serveur MetaQuotes-Demo et d'un compte MQL5.community.



    Pour commencer, il vous suffit d'acheter un abonnement et d'ajouter les symboles que vous voulez au Market Watch. Vous pouvez utiliser ces symboles comme des instruments normaux : ouvrez des graphiques, analysez-les à l'aide d'objets et d'indicateurs et exécutez des Expert Advisors dans le testeur de stratégie. L'accès à toutes les informations est mis en œuvre comme pour les instruments financiers ordinaires avec lesquels vous travaillez avec un courtier.

  3. Amélioration de la section relative à la marge dans la spécification de l'instrument. La section présente désormais les taux de marge et les valeurs calculées pour chaque instrument.



    Correction d'erreurs dans l'affichage des marges pour certains types de symboles.

  4. Ajout d'un lien vers le canal Telegram de MQL5 dans le menu Aide. Des contenus intéressants pour les développeurs sont régulièrement partagés sur la chaîne, notamment des revues de nouveaux articles de programmation et des robots et indicateurs gratuits issus de la Base de Code. Abonnez-vous à la chaîne pour rester informé et ne pas manquer d'informations importantes.



  5. Prise en charge du paramètre ShutdownTerminal dans la section [StartUp] des fichiers de configuration personnalisés. Ce paramètre permet de lancer la plateforme pour exécuter des tâches ponctuelles à l'aide de scripts. Vous avez par exemple un script qui prend une capture d'écran du graphique. Vous pouvez créer un fichier de configuration qui lance ce script en même temps que la plateforme. Si vous ajoutez la valeur "Yes" à ShutdownTerminal dans ce fichier, la plateforme s'arrêtera automatiquement dès que le script sera terminé.
  6. Protection renforcée des protocoles réseau et des produits du Market.
  7. Désactivation de la prise en charge du service Signals pour les comptes de démonstration. Pour accéder à des statistiques améliorées sur vos comptes de formation, utilisez le nouveau rapport de trading. Il présente de nombreuses mesures caractérisant la rentabilité et les risques de votre stratégie, notamment des graphiques de croissance, d'équilibre et de capitaux propres, des diagrammes de répartition des transactions par direction et par instrument, et bien plus encore.
  8. Correction de l'affichage des liens vers les contrats de courtage dans le menu d'Aide.
  9. Amélioration de la sélection du meilleur serveur lors de la location d’un VPS.
  10. Correction de l'actualisation de la page des abonnements lors du passage d'une section à l'autre dans le Navigateur.
  11. Correction de la mise à jour de la liste des accords lors de l'ouverture d'un compte préliminaire.
  12. Mise à jour des traductions de l'interface utilisateur.

MQL5

  1. Ajout de la propriété MQL_STARTED_FROM_CONFIG dans l'énumération ENUM_MQL_INFO_INTEGER. Renvoie un résultat positif si le script/Expert Advisor a été lancé à partir de la section StartUp du fichier de configuration. Cela signifie que le script/Expert Advisor a été spécifié dans le fichier de configuration avec lequel le terminal a été lancé.
  2. Nous continuons à développer le support pour les modèles ONNX.

    Les tâches d'apprentissage automatique ne nécessitent pas toujours une plus grande précision de calcul. Pour accélérer les calculs, certains modèles utilisent des types de données de moindre précision tels que Float16 et même Float8. Pour permettre aux utilisateurs de saisir les bonnes données dans les modèles, les fonctions suivantes ont été ajoutées à MQL5 :
    bool ArrayToFP16(ushort & dst_array[], const float & src_array[], ENUM_FLOAT16_FORMAT fmt);
    bool ArrayToFP16(ushort & dst_array[], const double & src_array[], ENUM_FLOAT16_FORMAT fmt);
    bool ArrayToFP8(uchar & dst_array[], const float & src_array[], ENUM_FLOAT8_FORMAT fmt);
    bool ArrayToFP8(uchar & dst_array[], const double & src_array[], ENUM_FLOAT8_FORMAT fmt);
    
    bool ArrayFromFP16(float & dst_array[], const ushort & src_array[] ,ENUM_FLOAT16_FORMAT fmt) ;
    bool ArrayFromFP16(double & dst_array[],const ushort & src_array[],ENUM_FLOAT16_FORMAT fmt) ;
    bool ArrayFromFP8(float & dst_array[],const uchar & src_array[],ENUM_FLOAT8_FORMAT fmt) ;
    bool ArrayFromFP8(double & dst_array[], const uchar & src_array[], ENUM_FLOAT8_FORMAT fmt);
    Étant donné que les formats de nombres réels pour 16 et 8 bits peuvent être différents, le paramètre "fmt" des fonctions de conversion doit indiquer quel format de nombres doit être traité. Pour les versions 16 bits, la nouvelle énumération NUM_FLOAT16_FORMAT est utilisée, avec les valeurs suivantes :


    Pour les versions 8 bits, la nouvelle énumération ENUM_FLOAT8_FORMAT est utilisée, avec les valeurs suivantes :

    • FLOAT_FP8_E4M3FN : Nombre à virgule flottante de 8 bits, 4 bits pour l'exposant et 3 bits pour la mantisse. Généralement utilisés comme coefficients.
    • FLOAT_FP8_E4M3FNUZ : Nombre à virgule flottante de 8 bits, 4 bits pour l'exposant et 3 bits pour la mantisse. Prend en charge NaN, ne prend pas en charge le zéro négatif et Inf. Généralement utilisés comme coefficients.
    • FLOAT_FP8_E5M2FN : Nombre à virgule flottante de 8 bits, 5 bits pour l'exposant et 2 bits pour la mantisse. Prend en charge NaN et Inf. Généralement utilisé pour les dégradés (gradients).
    • FLOAT_FP8_E5M2FNUZ : Nombre à virgule flottante de 8 bits, 5 bits pour l'exposant et 2 bits pour la mantisse. Prend en charge NaN, ne prend pas en charge le zéro négatif et Inf. Également utilisé pour les dégradés (gradients).

  3. Ajout de nouvelles méthodes matricielles et vectorielles utilisées dans l'apprentissage automatique :

    • PrecisionRecall calcule les valeurs pour construire une courbe de rappel de précision. Comme pour ClassificationScore, cette méthode est appliquée à un vecteur de valeurs réelles.
    • ReceiverOperatingCharacteristic calcule les valeurs pour construire la courbe ROC (Receiver Operating Characteristic). Comme pour ClassificationScore, cette méthode est appliquée à un vecteur de valeurs réelles.

  4. Mise à jour du Runtime ONNX vers la version 1.17. Pour plus de détails sur la version, veuillez consulter GitHub.
  5. Mise à jour du package d'intégration Python vers la version 5.0.4200, ajout de la prise en charge de Python 3.12. Mettez à jour votre package en utilisant la commande "pip install --upgrade MetaTrader5" pour télécharger les derniers changements.
  6. Correction du fonctionnement de la fonction OrderCalcMargin dans certains cas.
  7. Ajout de la propriété DEAL_REASON_CORPORATE_ACTION dans l'énumération ENUM_DEAL_REASON. Il s'agit d'une opération réalisée à la suite d'une action de l'entreprise : fusion ou changement de nom d'un titre, transfert d'un client vers un autre compte, etc.
  8. Ajout de la prise en charge de la comparaison de vecteurs et de matrices complexes pour la méthode Compare. La comparaison consiste à estimer la distance entre des nombres complexes. La distance est calculée comme sqrt(pow(r1-r2, 2) + pow(i1-i2, 2) et est un nombre réel qui peut déjà être comparé à epsilon.
  9. Correction de la conversion des variables de type couleur en texte au format RVB.
  10. Correction du retour du résultat de l'obtention des vecteurs propres dans la méthode Eig dans le cas d'une valeur propre complexe. Ajout d'une surcharge de méthode pour l'évaluation complexe.

MetaEditor

  1. Ajout d'un lien vers le livre récemment publié "Programmation MQL5 pour les Traders" dans le menu Aide\MQL5.community. Le livre a également été ajouté au système de recherche, ce qui vous permet de trouver les informations nécessaires directement à partir de MetaEditor :




  2. Amélioration de la recherche intégrée :

    • La section des résultats de la recherche dans la fenêtre de la Boîte à Outils a été divisée en 2 onglets : "Recherche" pour les résultats de recherche en ligne (documentation, articles, livres, etc.) et "Recherche dans les fichiers" pour les résultats locaux.
    • Un champ de recherche spécifique a été ajouté à la section des résultats. Vous pouvez l'utiliser à la place de la barre de recherche dans la barre d'outils principale de MetaEditor.

  3. Prise en charge des modes AVX, AVX2 et AVX512 lors de la compilation des commandes à partir de la ligne de commande. Pour compiler, ajoutez l'une des clés suivantes dans votre commande : /avx, /avx2 ou /avx512.
  4. Le moteur SQLite pour les opérations avec les base de données a été mis à jour à la version 3.45.
  5. Désactivation de la prise en charge d'Internet Explorer. Désormais, seul Microsoft Edge WebView2 est utilisé pour afficher les pages HTML. Par rapport à l'ancien MSHTML, le nouveau composant élargit considérablement les possibilités d'affichage du contenu en donnant accès aux technologies les plus récentes. L'utilisation de WebView2 améliore l'apparence de certaines sections de MetaEditor, augmente les performances et crée une interface plus réactive.
  6. Correction du blocage qui se produisait dans de rares cas lors de l'autocomplétion de fonctions.
  7. Correction du blocage qui se produisait dans de rares cas lors de l'autocomplétion de fonctions.

Testeur

  1. Correction des calculs de triple swaps si le jour de début du test tombe sur le jour du triple swap.

Correction des erreurs rapportées dans les journaux de crash.

Terminal Web MetaTrader 5

Amélioration de l'affichage des exigences de marge dans les spécifications des contrats. En plus des ratios et des paramètres initiaux pour les calculs, les spécifications affichent désormais les valeurs finales de la marge. Si le montant de la marge dépend du volume de la position, les niveaux correspondants seront affichés dans la boîte de dialogue.



La marge est calculée sur la base du prix de l'instrument au moment de l'ouverture de la fenêtre de spécification et n'est pas mise à jour en temps réel. Les valeurs doivent donc être considérées comme indicatives. Pour recalculer les valeurs sur la base des prix actuels, ré-ouvrez la spécification de l'instrument.
18 janvier 2024
MetaTrader 5 Build 4150 : Export de rapports de trading et nouvelles méthodes d'apprentissage automatique dans MQL5

Terminal

  1. Ajout de l'export des rapports de trading vers des fichiers HTML et PDF. Grâce à cette option, vous pouvez facilement partager vos résultats avec vos collègues et vos investisseurs. De nouvelles commandes d'export sont disponibles dans le menu Fichier et dans le menu Rapport.




  2. Ajout de la possibilité d'enregistrer l'état actuel de la fenêtre du Market Watch dans un fichier CSV. Pour cela, sélectionnez Exporter dans le menu contextuel. Le fichier enregistre les mesures sélectionnées au moment de l'export. Pour enregistrer davantage de données, activez des colonnes supplémentaires dans le menu contextuel.




  3. Amélioration de l'affichage des exigences de marge dans les spécifications des contrats. Désormais, au lieu de ratios et de paramètres initiaux pour les calculs, les spécifications affichent les valeurs finales de la marge. Si le montant de la marge dépend du volume de la position, les niveaux correspondants seront affichés dans la boîte de dialogue.



    La marge est calculée sur la base du prix de l'instrument au moment de l'ouverture de la fenêtre de spécification et n'est pas mise à jour en temps réel. Les valeurs doivent donc être considérées comme indicatives. Pour recalculer les valeurs sur la base des prix actuels, ré-ouvrez la spécification de l'instrument.

  4. Désactivation de la prise en charge du service Signals pour les comptes de démonstration. Pour accéder à des statistiques améliorées sur vos comptes de formation, utilisez le nouveau rapport de trading. Il présente de nombreuses mesures caractérisant la rentabilité et les risques de votre stratégie, notamment des graphiques de croissance, d'équilibre et de capitaux propres, des diagrammes de répartition des transactions par direction et par instrument, et bien d'autres choses encore.
  5. Correction de l'affichage de la valeur du profit/perte potentiel lors de la modification du Take Profit et du Stop Loss pour les ordres Stop Limit.
  6. Corrections et améliorations liées au fonctionnement du système de Paiement.
  7. Correction de la duplication des vérifications lors du chargement d'un ensemble de symboles dans le Market Watch à partir d'un fichier *.set.
  8. Correction de l'installateur web pour Parallels. Désormais, lors de l'utilisation de ce système de virtualisation sur macOS avec M1/M2/M3, la plateforme sera installée correctement.
  9. Mise à jour des traductions de l'interface utilisateur.
  10. Correction des erreurs rapportées dans les journaux de crash.

MQL5

  1. Ajout de nouvelles méthodes pour les opérations avec les matrices et les vecteurs, qui sont utilisées dans l'apprentissage automatique.

    • ConfusionMatrix : Calcule la matrice d'erreur. La méthode est appliquée au vecteur des valeurs prédites.
    • ConfusionMatrixMultilabel : Calcule la matrice d'erreur pour chaque étiquette. La méthode est appliquée au vecteur des valeurs prédites.
    • ClassificationMetric : Calcule la métrique de classification pour évaluer la qualité des données prédites par rapport aux données réelles. La méthode est appliquée au vecteur des valeurs prédites.
    • ClassificationScore : Calcule la métrique de classification pour évaluer la qualité des données prédites par rapport aux données réelles. La méthode est appliquée au vecteur des valeurs réelles.
     
  2. Correction de l'enregistrement des données dans un fichier texte au format UTF-8 à l'aide de la fonction FileWrite.
  3. Fonctions Signal* désactivées et obsolètes. Elles renverront désormais des ensembles de signaux vides.

MetaEditor

  1. Augmentation du taux d'échantillonnage pour le profilage. Le profileur capture désormais les états de l'application 10 000 fois par seconde, ce qui permet une mesure plus précise des taux d'exécution des fonctions.
  2. Mise à jour des modèles disponibles dans l'assistant de codage automatique Copilot. Ajout du modèle ChatGPT-4 Turbo, suppression des implémentations obsolètes.
  3. Correction d'erreurs lors du remplacement de mots dans un fragment de texte sélectionné.

Testeur

  1. Correction du gel des tests en amont, qui pouvait se produire en mode d'optimisation générique.
  2. Optimisation et accélération des opérations grâce à l'historique de trading des programmes MQL5.
  3. Calculs des bénéfices fixes pour les opérations de clôture. Une erreur pouvait se produire pour les instruments de trading qui ne correspondent pas au symbole principal du test.

Terminal Web

  1. Correction de la mise à jour des propriétés des symboles de trading en cas de modification des propriétés correspondantes du côté du courtier.
  2. Correction de l'affichage du corps des bougies sur le graphique. Le graphique pouvait ne pas afficher les petits corps.
  3. Correction du fonctionnement du champ Pays dans le formulaire d'ouverture de compte.
20 octobre 2023
MetaTrader 5 build 4040: Améliorations et corrections

Terminal

  1. Améliorations du Nouveau rapport d'activité. Correction de l'affichage de la première valeur sur le graphique de croissance et des calculs de drawdown.



  2. Lors de l'ouverture d'un compte, les traders reçoivent plusieurs messages par le biais du système de courrier électronique interne. Ils fournissent des références et des informations utiles sur les capacités de la plateforme et les services intégrés. Nous avons mis à jour et amélioré ces emails. Nous les avons traduits en 50 langues et nous avons complètement renouvelé leur conception.
  3. Optimisation des pages de dépôts sur les comptes et de retraits.
  4. Correction de l'erreur de changement de volume lors du passage d’une nouvel ordre. Avec certaines combinaisons de paramètres d'instruments de trading, le champ n'était pas modifiable.
  5. Correction de l'affichage des liens vers les contrats de courtage dans la boîte de dialogue d'ouverture du compte de démonstration.
  6. Mise à jour des traductions de l'interface utilisateur.

MQL5

  1. Correction d'une erreur qui pouvait entraîner un crash du programme MQL5 au démarrage dans certaines conditions.

Terminal Web MetaTrader 5

  1. Correction de l'affichage des valeurs de Stop Loss et Take Profit dans l'historique des transactions.
  2. Amélioration de la journalisation. De nouveaux messages affichent des informations sur les connexions réussies et échouées.
  3. Correction du fonctionnement du menu contextuel dans le Market Watch.
  4. Correction de l'affichage des notifications des résultats des opérations lors du trading depuis le Market Depth.
  5. Correction d'une erreur qui provoquait la suppression de la sous-fenêtre de l'indicateur du graphique lors de l'ouverture de la boîte de dialogue de trading.
  6. Correction du glissement des niveaux de trading sur le graphique affichés au-dessus des objets d’analyse.
29 septembre 2023
MetaTrader 5 build 4000 : Améliorations apportées au rapport d'activité et au Terminal Web

Terminal

  1. Ajout de l'affichage de la croissance financière mensuelle dans les nouveaux rapports d'activité. Pour visualiser les indicateurs, accédez au Rapport de synthèse et sélectionnez le mode Solde.



  2. Correction et amélioration de l'affichage du nouveau rapport de trading.
  3. Mise à jour du Runtime ONNX vers la version 1.16. Pour les détails de la version, consulter GitHub.
  4. Mise à jour des traductions de l'interface utilisateur.

Terminal Web MetaTrader 5

  1. Correction de l'affichage des boîtes de dialogue de changement de mot de passe et d'ouverture de compte.
  2. Correction de l'affichage des valeurs de Stop Loss et de Take Profit dans l'historique. Une erreur pouvait survenir après la modification des niveaux concernés.
  3. Ajout d'un défilement dans la boîte de dialogue d'avertissement de risque.
  4. Mise à jour des traductions de l'interface utilisateur.
  5. Autres améliorations et corrections.
21 septembre 2023
MetaTrader 5 Build 3980 : Améliorations et corrections

Terminal

  1. Améliorations du nouveau rapport de trading. Correction de l'affichage de la valeur totale des swaps et du tableau des profits par symboles.
  2. Pages de dépôt et de retrait optimisées. Pour plus de détails sur l'intégration de la nouvelle plateforme avec les systèmes de paiement, veuillez lire les notes de mise à jour de la version 3950.
  3. Optimisation des recalculs des opérations financières sur l'ensemble de la plateforme, y compris dans le testeur de stratégie. Désormais, les bénéfices, les marges et de nombreux autres paramètres sont calculés plus rapidement.
  4. Mise à jour des traductions de l'interface utilisateur.

MQL5

  1. Ajout des méthodes Conjugate pour les types complex, vector<complex> et matrix<complex>. Elles implémentent les opérations de conjugaison de complexes.
    //+------------------------------------------------------------------+
    //| Fonction de démarrage du programme de script                     |
    //+------------------------------------------------------------------+
    void OnStart()
      {
       complex a=1+1i;
       complex b=a.Conjugate();
       Print(a, "  ", b);
       /*
       (1,1) (1,-1)
       */
    
       vectorc va= {0.1+0.1i, 0.2+0.2i, 0.3+0.3i};
       vectorc vb=va.Conjugate() ;
       Print(va, "  ", vb);
       /*
       [(0.1,0.1),(0.2,0.2),(0.3,0.3)]  [(0.1,-0.1),(0.2,-0.2),(0.3,-0.3)]
       */
    
       matrixc ma(2, 3);
       ma.Row(va, 0);
       ma.Row(vb, 1);
       matrixc mb=ma.Conjugate();
       Print(ma);
       Print(mb);
       /*
       [[(0.1,0.1),(0.2,0.2),(0.3,0.3)]
        [[(0.1,0.1),(0.2,0.2),(0.3,0.3)]
    
       [[(0.1,-0.1),(0.2,-0.2),(0.3,-0.3)]
        [[(0.1,-0.1),(0.2,-0.2),(0.3,-0.3)]
       */
       
       ma=mb.Transpose().Conjugate();
       Print(ma);
       /*
       [[(0.1,0.1),(0.1,-0.1)]
        [(0.2,0.2),(0.2,-0.2)]
        [(0.3,0.3),(0.3,-0.3)]]
       */
      }
  2. Ajout du traitement des sorties du modèle ONNX du type "Séquence de cartes".

    Pour les modèles ONNX qui fournissent des séquences de cartes dans la couche de sortie (ONNX_TYPE_SEQUENCE de ONNX_TYPE_MAP), un tableau dynamique ou fixe de structures doit être transmis comme paramètre de sortie. Les deux premiers champs de cette structure doivent correspondre aux types de clé et de valeur ONNX_TYPE_MAP et être des tableaux fixes ou dynamiques.

    Considérons le modèle iris.onnx créé par le code Python suivant :
    from sys import argv
    data_path=argv[0]
    last_index=data_path.rfind("\\")+1
    data_path=data_path[0:last_index]
    
    from sklearn.datasets import load_iris
    iris_dataset = load_iris()
    from sklearn.model_selection import train_test_split
    X_train, X_test, y_train, y_test = train_test_split(iris_dataset['data'], iris_dataset['target'], random_state=0)
    from sklearn.neighbors import KNeighborsClassifier
    knn = KNeighborsClassifier(n_neighbors=1)
    knn.fit(X_train, y_train)
    
    # Conversion en format ONNX
    from skl2onnx import convert_sklearn
    from skl2onnx.common.data_types import FloatTensorType
    initial_type = [('float_input', FloatTensorType([None, 4]))]
    onx = convert_sklearn(knn, initial_types=initial_type)
    path = data_path+"iris.onnx"
    with open(path, "wb") as f:
        f.write(onx.SerializeToString())
    Ouvre le fichier onnx créé dans MetaEditor :

    Visualisation du modèle ONNX dans MetaEditor


    La séquence Map est transmise dans "output_probability". Elle possède une clé de type INT64 (qui correspond au type long dans MQL5) et une valeur de type float. Pour obtenir les données de cette sortie, il faut déclarer la structure suivante :
    struct MyMap
      {
       long              key[];
       float             value[];
      };
    Nous avons utilisé ici des tableaux dynamiques avec les types correspondants. Dans ce cas, nous pouvons utiliser des tableaux fixes car la carte de ce modèle contient toujours 3 paires clé+valeur.

    Étant donné que la séquence Map est renvoyée, un tableau de structures de ce type doit être transmis en paramètre pour récupérer les données de la sortie output_probability. Ce tableau peut être dynamique ou fixe, en fonction des propriétés d'un modèle particulier. Exemple :
    //--- déclaration du tableau pour récupérer les données de la couche de sortie output_probability
    MyMap output_probability[] ;
    
    ...
    
    //--- modèle en cours d'exécution
    OnnxRun(model,ONNX_DEBUG_LOGS,float_input,output_label,output_probability);

MetaEditor

  1. Correction de l'affichage des types de sortie dans le visualisateur de modèle ONNX.

Terminal Web

  1. Ajout d'une section "Contacter le Courtier" dans le menu principal du Terminal Web.
  2. Ajout d'une gestion des erreurs pour les authentifications SSL. Ce type d'authentification n'est pas pris en charge par le Terminal Web. Des mots de passe à usage unique peuvent être utilisés à la place.
  3. Correction du lien de téléchargement de la plateforme de bureau dans le menu principal.
  4. Correction de la boîte de dialogue de gestion des comptes. Si le courtier ne propose pas l'option pour ouvrir un compte de démo ou un compte réel, l'élément correspondant du menu sera masqué.
14 septembre 2023
MetaTrader 5 Build 3950 : Dépôts/retraits dans le terminal et mise à jour du rapport de trading

Terminal

  1. Added support for balance operations for depositing/withdrawing funds from a trading account directly in the client terminal.

    We have added integration of the most popular payment systems directly into the MetaTrader 5 platform, which allows brokers to provide traders with a new level of service. When depositing or topping up, simply select the method that suits you best and complete the transaction. For more convenience, traders can save selected cards so as not to enter card details each time. Brokers do not store payment details and card numbers. The payment data entered by a user is sent over a secure channel to the user-selected payment system.

    The new functionality provides traders with the opportunity to manage funds in one click without leaving the client terminal.



  2. Completely revamped the trading history report. Now it is more easy to view. We have revised the approach to presenting information and converted dry statistical reports into interactive graphs and diagrams. The work is still in progress, but you can evaluate the changes already.

    To view trading statistics, click Reports in the View menu.






    The report is divided into four tabs, each containing aggregated information:

    • Résumé - Résumé des opérations : données du compte, pertes et profits globaux, dépôts et retraits, solde, graphiques de croissance et de dividendes, etc.
    • Profit/perte - données sur les transactions rentables et perdantes. Le paramètre est divisé en fonction des types d'opérations (manuelles, algorithmiques et de copie). Les résultats peuvent être analysés en termes de transactions ou d'argent par mois et par année.
    • Long/Short - ratio dynamique des achats et des ventes à des périodes déterminées, ainsi que la rentabilité des achats et des ventes.
    • Symboles - analyse des transactions par instruments financiers. Vous y verrez les symboles sur lesquels vous gagnez ou perdez, la fréquence à laquelle vous les négociez, les graphiques des transactions et les volumes monétaires pour ces symboles.


    De nouveaux rapports vous permettent d'évaluer visuellement les résultats des transactions sous divers aspects en cliquant simplement sur les onglets. Les histogrammes, les graphiques et les diagrammes sont interactifs et fournissent des informations supplémentaires au passage du curseur de la souris. Nos concepteurs se sont efforcés de rendre les rapports aussi simples et clairs que possible. Essayez-les !

  3. Added the usage of AVX2 instructions in case they are supported by CPU. This allows for more efficient use of CPU capabilities the terminal is launched on. Now, when installing or updating, the terminal determines the CPU architecture on its own and installs the most optimal version. During the launch, the terminal sends a message (AVX/AVX2) to the log displaying the set of instructions the terminal is built for.
    Terminal	MetaTrader 5 x64 build 3914 started for MetaQuotes Software Corp.
    Terminal	Windows 10 build 19045, 20 x Intel Xeon  E5-2630 v4 @ 2.20GHz, AVX, 41 / 63 Gb memory, 58 / 280 Gb disk, UAC, GMT+2
    

    Advanced Vector Extensions (AVX) is an extension of the x86 instruction set for Intel and AMD microprocessors proposed back in 2008. Further development has led to the appearance of AVX2 and AVX-512 (2013).

  4. In addition to the two versions of MetaTrader 5 terminals on X64 and AVX, we have released the third version of the desktop terminal compiled with direct support for AVX2 commands. At the same time, ONNX models now also work with support for AVX2 commands.
  5. Added display of links to the broker's necessary regulatory documents. You can now obtain all the necessary legal information from your broker directly in the client terminal in Help / Terms & Conditions.



  6. Fixed 2FA authorization in case of the additional use of the extended authorization using certificates.
  7. Fixed display of internal mail messages when working on MacOS.
  8. Fixed display of the Signals window when working in Wine.
  9. Released new MetaTrader 4 and 5 installers for Linux.
  10. Added commands for visiting Linux and Mac terminal version download pages in Help. For traders' convenience, we have created a special section of the website with terminal versions for all platforms, as well as for trading in a browser.



  11. Fixed embedding images into internal mail.
  12. Released new MetaTrader 5 terminal installers for Mac with support for M1/M2 processors. Due to the transition to Wine 8.0.1, we strongly recommend that you remove old versions and install new ones. When using Wine versions older than 8.0.0, a message about the need for an update is displayed in the terminal log.
  13. Added "VPS Hosting Speed Up" in the network scan menu indicating the ping to your trading server. This allows you to clearly see how your network delays decrease when renting a built-in VPS.



  14. Strengthened the requirements for minimum password complexity, namely:

    • password length — at least 8 characters
    • the password must contain at least 1 character in upper and lower case, at least 1 digit and at least 1 special character.

  15. Usable links in terminal logs. Now when double-clicking on lines with https links, users are sent to their browsers and the link is opened.
  16. Fixed search for trading instruments in Market Watch. Now the symbol is first searched by name, and then by other fields: description, ISIN, etc.
  17. Fixed accounting for profit on trades when calculating the balance in account trading history reports. In some cases, the instrument type was not taken into account in the calculations.

VPS Hosting

  1. Added the ability to send and run EX5 programs compiled under the x64/AVX/AVX2 command set. Programs for AVX512 are not supported on the built-in VPS.
  2. Increased the number of locations for renting the built-in VPS up to 27. Now the selection of the closest server has become even wider.

MQL5

  1. Added control of compilation settings, including selection of extended processor instruction sets — AVX, AVX2, AVX512 and FMA3.

    Modern CPUs have a set of advanced instructions that significantly speed up mathematical calculations, but the vast majority of modern programs do not use these capabilities. We have added support for these instructions to the MQL5 language compiler, which allows for more efficient and faster code generation.

    We have also added the ability to choose which type of instructions to compile an MQL5 program with. You can specify both general settings for single programs in MetaEditor Options, and apply personal ones in project settings:



  2. Added the ENUM_AVERAGE_MODE and ENUM_CLASSIFICATION_METRIC enumerations to the Matrix and Vector Methods.
  3. Added Set method for vectors.
  4. Revised OpenCL initialization - now it is initialized by the first actual use, not by loading an MQL5 program containing OpenCL functions.
  5. Fixed an error when calling the SocketIsConnected function.
  6. Fixed delay in calling the OnDeinit method when unloading custom indicators.
  7. Fixed a compiler error, which caused incorrect calculation of the string length in the indicator_label property leading to incorrect display of tooltips for graphical objects.
  8. Fixed the use of multi-line comments in the macro body. An example of a macro where the error occurred:
    #define MACRO1 /*
    #define MACRO2 */
    void OnStart()
    {
    #ifdef MACRO2
        Print( 2 );
    #else
        Print( 1 );
    #endif
    }
  9. Fixed the order of parameters of the MathAtan2 function. The order now matches the similar function in C++.
  10. Added the new TERMINAL_CPU_ARCHITECTURE value to the ENUM_TERMINAL_INFO_STRING enumeration. Also, added the  __CPU_ARCHITECTURE__ macro — obtaining the CPU architecture of the computer the terminal is running on. Example of use:
    void OnStart()
      {
       Print("CPU name:         ",TerminalInfoString(TERMINAL_CPU_NAME));
       Print("CPU cores:        ",TerminalInfoInteger(TERMINAL_CPU_CORES));
       Print("CPU architecture: ",TerminalInfoString(TERMINAL_CPU_ARCHITECTURE));  
       Print("");
       Print("EX5 architecture: ",__CPU_ARCHITECTURE__);                            
      }
    
    CPU name:         12th Gen Intel Core i9-12900K
    CPU cores:        24
    CPU architecture: AVX2 + FMA3
    
    EX5 architecture: AVX

  11. Changed the extern modifier behavior. Now declaration of a variable with the extern modifier is a variable pre-declaration.

    New restrictions:
    1. La pré-déclaration de la variable ne doit pas contenir d'initialisation. Par exemple, lors de la compilation du code ci-dessous, nous obtenons l'erreur "X - extern variable initialization is not allowed" :
      extern int X=0;
      
      void OnStart()
        {
        }

    2. La variable "extern" doit être déclarée dans le programme sans le mot-clé "extern". Par exemple, lors de la compilation du code ci-dessous, nous obtenons l'erreur "unresolved extern variable X" :
      extern int X;
      
      void OnStart()
        {
        }

    3. Lors de l'utilisation de "extern", il est important de faire attention à l'ordre d'initialisation, car il est possible d'accéder à une variable avant qu'elle ne soit initialisée. Par exemple, le code suivant donnera "Y=0 X=5" dans le journal puisque l'initialisation de la variable Y a lieu avant l'initialisation de la variable X :
      extern int X;
      int        Y=X;
      
      void OnStart(void)
        {
         Print("Y=",Y," X=",X);
        }
        
      int X=_Digits;

MetaEditor

  1. Added the usage of AVX2 instructions in case they are supported by CPU.
  2. Fixed an error occasionally causing freezes during compilation.
  3. Improved display of local variables when debugging.

Tester

  1. Added the usage of AVX2 instructions in case they are supported by CPU.

Updated user interface translations.

Fixed errors reported in crash logs.


MetaTrader 5 Web Terminal build 3950

  1. Added display of the Ask price to the chart settings.




  2. Accelerated initial terminal loading.
  3. Added the ability to change the password.
  4. Added the ability to delete and save the password.
  5. Added a custom period for displaying trading history.
  6. Fixed forced password change.
  7. Fixed calculation of diff — the distance between the open price and TP/SL levels.





  8. Fixed ticks stop error when closing all orders/deals.
  9. Fixed display of Economic calendar events. Sometimes, they were not displayed on the chart despite the option being enabled.
  10. Fixed indicator reset when changing a chart symbol.
  11. Fixed an error in the form of opening a real account when confirming the phone/email.
  12. Added new translations and corrected existing ones.

8 juin 2023
MetaTrader 5 build 3800 : Ordres Book or Cancel, assistant IA de codage et support ONNX amélioré

Terminal

  1. Prise en charge de la nouvelle politique de remplissage — Passive / Book or Cancel (BOC).


    Politique d'exécution des nouveaux ordres — Passive / Book or Cancel


    La politique BOC indique qu'un ordre ne peut être placé que dans la Profondeur du Marché (carnet d'ordres). Si l’ordre peut être exécuté immédiatement après avoir été passé, cet ordre est annulé. Cette politique garantit que le prix de l'ordre passé sera inférieur au prix actuel du marché. Le BOC est utilisé pour mettre en œuvre le trading passif : il est garanti que l'ordre ne peut pas être exécuté immédiatement lorsqu'il est passé et qu'il n'affecte donc pas la liquidité actuelle. Cette politique de remplissage n'est prise en charge que pour les ordres limit et stop limit en mode d'Exécution Boursière (Exchange Execution).

    La disponibilité de la nouvelle politique de remplissage dépend du courtier.

  2. La plateforme utilise maintenant Microsoft Edge WebView2 pour afficher le contenu HTML.

    Par rapport à l'ancien MSHTML, le nouveau composant élargit considérablement les capacités d'affichage du contenu en donnant accès aux technologies modernes. L'utilisation de WebView2 améliore l'apparence de certaines sections de la plateforme, augmente les performances et crée une interface plus réactive. Le nouveau composant affectera en particulier les sections Market, Signals et VPS.
    La prise en charge complète de WebView2 a été introduite dans Windows 10. Nous recommandons vivement à tous les utilisateurs de passer à la dernière version du système d'exploitation et d'installer toutes les mises à jour disponibles. La plateforme continuera à utiliser MSHTML sous Windows 7 et Wine, mais les nouvelles fonctionnalités ne seront pas disponibles. La version minimale recommandée du système d'exploitation est Windows 10 21H2 (build 19044, novembre 2021).

  3. Amélioration du système de sécurité du Market. Afin d'exécuter le produit, l'utilisateur doit maintenant être autorisé dans la plateforme avec le même compte MQL5 avec lequel le produit a été acheté. Le compte doit être spécifié dans la section Outils \ Options \ Communauté :


    Spécifiez votre compte MQL5 dans les paramètres de la plateforme


    Si aucun compte ou un compte non valide est spécifié, le produit ne démarrera pas et le message suivant sera écrit dans le journal de la plateforme :
    ’NomDuProduit' nécessite un compte MQL5 actif dans Outils->Options->Communauté
  4. Ajout de la commande Vue d'ensemble au menu contextuel de la section historique. La commande ouvre un rapport de trading pour le compte :


    Commande pour accéder au rapport de trading


  5. Correction des erreurs d'affichage dans la boîte de dialogue d'authentification à deux facteurs. Si le terminal possède plusieurs comptes portant le même numéro mais ouverts auprès de courtiers différents, le formulaire de connexion au compte peut ne pas afficher le champ du mot de passe à usage unique.
  6. Mise en œuvre d'un rendu plus rapide des indicateurs avec le style d'affichage DRAW_COLOR_CANDLES.
  7. Correction des erreurs de création de rapports de trading. Les valeurs des bénéfices et des capitaux propres sur le graphique peuvent être affichées de manière incorrecte dans certaines conditions.
  8. Ajout de l'affichage des coûts dans le rapport de trading. La valeur indique les coûts totaux encourus lors de la réalisation des transactions par rapport au prix moyen actuel du symbole (coût de l'écart au point moyen). Il s'agit du montant que le trader a perdu à cause du spread. La disponibilité de cette valeur dépend du courtier.
  9. Traductions de l’interface mises à jour.
  10. Amélioration de la stabilité sous Wine, en particulier sur les systèmes macOS. Nous recommandons d'enlever complètement les anciens terminaux et de les réinstaller :


  11. Améliorations des procédures d'installation des paquets et de téléchargement des mises à jour. Analyse améliorée de la disponibilité de AVX sur l'ordinateur de l'utilisateur lors de la sélection d'un paquet de distribution.
  12. Activation de la prise en charge de TLS 1.3 dans les protocoles web. TLS 1.0 est considéré comme obsolète et peu sûr. Il a donc été désactivé.
  13. Correction de la comptabilisation des commissions des agents dans les rapports sur l'historique des transactions. Les transactions concernées pouvaient être ignorées lors du calcul du bénéfice final.
  14. Correction de l'impossibilité de modifier le serveur dans la boîte de dialogue de connexion au compte. Le problème pouvait se produire lorsque le terminal contenait plusieurs comptes portant le même numéro et provenant de différents courtiers.
À partir de cette version, les installateurs ne fonctionneront qu'avec les versions 64 bits de la plateforme. La prise en charge des versions 32 bits sera interrompue. Les versions 32 bits installées précédemment fonctionneront jusqu'au 1er janvier 2024.

MQL5

  1. Ajout d'une nouvelle valeur STAT_COMPLEX_CRITERION dans l'énumération ENUM_STATISTICS. Utilisez la propriété pour obtenir la valeur du critère complexe calculé à la suite de l'optimisation.
  2. Méthode RegressionMetric améliorée utilisée pour calculer la métrique de régression sur la base de la matrice ou du vecteur transmis. Ajout des paramètres vector_true et matrix_true pour passer les valeurs réelles qui évaluent la qualité des données prédites.
    double vector::RegressionMetric(
       const vector& vector_true,            // valeurs vraies
       const ENUM_REGRESSION_METRIC  metric  // métrique
       );
     
    double matrix::RegressionMetric(
       const matrix& matrix_true,            // valeurs vraies
       const ENUM_REGRESSION_METRIC metric   // métrique
       );
     
    vector matrix::RegressionMetric(
       const matrix& matrix_true,            // valeurs vraies
       const ENUM_REGRESSION_METRIC metric,  // métrique
       const int                      axis   // axe
       );
  3. Ajout de la méthode LinearRegression. Elle renvoie un vecteur/matrice contenant les valeurs de régression linéaire calculées pour le vecteur/matrice transmis.
    vector::LinearRegression();
     
    matrice matrix::LinearRegression(
       ENUM_MATRIX_AXIS axis=AXIS_NONE // axe le long duquel la régression est calculée 
       
    Exemple :
    vecteur vector_a;
    //--- remplit le vecteur avec les prix
    vector_a.CopyRates(_Symbol, _Period, COPY_RATES_CLOSE,1, 100);
    //--- obtient une régression linéaire
    vecteur vector_r=vecteur_a.LinearRegression();
    Les résultats sont visualisés dans un graphique :


    Visualisation du résultat retourné par la méthode LinearRegression


  4. Ajout de la méthode HasNan, qui renvoie le nombre de valeurs NaN dans une matrice/un vecteur.
    ulong vector::HasNan();
    ulong matrix::HasNan();
    Lors de la comparaison d’une paire d'éléments ayant des valeurs NaN, les méthodes Compare et CompareByDigits considèrent ces éléments comme égaux, alors que dans le cas d'une comparaison habituelle de nombres à virgule flottante, NaN != NaN.

  5. Modification de la structure OnnxTypeInfo utilisée pour les opérations avec les modèles ONNX (Open Neural Network Exchange) :

    struct OnnxTypeInfo
      {
       ENUM_ONNX_TYPE       type;            // type du paramètre
       OnnxTensorTypeInfo   tensor;          // description du tenseur
       OnnxMapTypeInfo      map;             // description de la carte
       OnnxSequenceTypeInfo sequence;        // description de la séquence
      };

    Le type de données est spécifié dans la structure à l'aide de nouvelles sous-structures :

    • OnnxTensorTypeInfo - tenseur
    • OnnxMapTypeInfo - carte
    • OnnxSequenceTypeInfo - séquence

    struct OnnxTensorTypeInfo
      {
       ENUM_ONNX_DATATYPE   data_type;       // type de données dans le tenseur
       long                 dimensions[];    // nombre d'éléments
      };
    
    struct OnnxMapTypeInfo
      {
       ENUM_ONNX_DATA_TYPE  key_type;        // type de la clé
       OnnxTypeInfo         type_info;       // type de la valeur
      };
    
    struct OnnxSequenceTypeInfo
      {
       OnnxTypeInfo         type_info;       // type de données dans la séquence
      };
    En fonction de OnnxTypeInfo::type (ONNX_TYPE_TENSOR, ONNX_TYPE_MAP ou ONNX_TYPE_SEQUENCE), la sous-structure concernée est remplie.

  6. Amélioration de la prise en charge des modèles ONNX.
  7. Ajout des méthodes CopyIndicatorBuffer qui permettent d'obtenir les données du buffer de l'indicateur dans un vecteur.
    bool vector<T>::CopyIndicatorBuffer(long indicator_handle,ulong buffer_index,ulong start_pos,ulong count);
    bool vector<T>::CopyIndicatorBuffer(long indicator_handle,ulong buffer_index,datetime start_time,ulong count);
    bool vector<T>::CopyIndicatorBuffer(long indicator_handle,ulong buffer_index,datetime start_time,datetime stop_time);
  8. Correction des opérations avec des tableaux à 2 dimensions ou plus dans les méthodes FrameAdd et FrameNext.
  9. Correction de la méthode CRedBlackTree::Remove de la Bibliothèque Standard.
  10. Mise en œuvre de correctifs dans la bibliothèque Fuzzy Logic.

MetaEditor

  1. Intégration accrue avec l'assistant de codage automatique avancé Copilot. Son fonctionnement est basé sur les modèles OpenAI. Saisissez un commentaire ou une partie d'une fonction et envoyez le prompt. Le réseau neuronal analysera le message et proposera des options de codage pour mettre en œuvre l'idée.


    Assistant de codage Copilot


    Selon le type de fichier, la chaîne "MQL5 language", "Python language" ou "C++ language" est automatiquement insérée au début de chaque invite. Ainsi, le réseau neuronal fournira le résultat dans la langue requise.

    Copilot est actuellement gratuit et est déjà activé dans l'éditeur. Plusieurs options sont disponibles sous Outils \ Options \ Copilot :


    Paramètres de Copilot


    Paramètres de paiement :

    • Utiliser votre compte MQL5 : cette option est actuellement disponible gratuitement. Par la suite, vous pourrez payer l'abonnement directement à partir du solde de votre compte MQL5.
    • Utilisez une clé OpenAI si vous avez souscrit un abonnement et que vous disposez de la clé correspondante.

    Paramètres de l'invite :

    • Modèle — un réseau neuronal qui traitera vos demandes. text-davinci-003 et gpt-3.5-turbo sont actuellement disponibles. La prise en charge de gpt-4 sera bientôt ajoutée.
    • Nombre maximal de jetons - nombre d'unités de texte que le modèle peut renvoyer en réponse à une invite.
    • Variabilité - affecte la rigueur avec laquelle le réseau neuronal suivra l'invite. Plus la valeur est grande, plus le résultat est aléatoire. Cette option correspond au paramètre température dans les modèles OpenAI.

  2. Ajout de la possibilité de visualiser les propriétés des modèles ONNX.

    Vous pouvez visualiser le contenu du fichier *.onnx directement dans l'éditeur. Par exemple, recherchez le projet ONNX.Price.Prediction dans Boîte à Outils \ Projets Publics et sélectionnez Rejoindre dans le menu contextuel. Le projet sera téléchargé sur votre ordinateur et apparaîtra dans le Navigateur.


    Ouvrez les modèles ONNX directement dans MetaEditor


  3. Ajout de la possibilité de visualiser les modèles d'apprentissage automatique et les réseaux neuronaux à l'aide de Netron. Cette visionneuse prend en charge les modèles les plus courants, notamment ONNX, TensorFlow Lite, Caffe, Keras et ncnn entre autres.

    Pour visualiser un modèle, sélectionnez son fichier dans le Navigateur et cliquez sur "Ouvrir dans Netron". Si cet utilitaire n'est pas installé, la page GitHub s'ouvrira, à partir de laquelle vous pourrez télécharger le programme d'installation correspondant à votre système d'exploitation. Par exemple, utilisez Netron-Setup-X.X.X.exe pour Windows. Si le programme est installé, le modèle s'ouvrira immédiatement pour être visualisé à partir du Navigateur.


    Visualiser des modèles d'apprentissage automatique avec Netron


    Formats pris en charge :

    • armnn, caffemodel, circle, ckpt, cmf, dlc, dnn, h5, har, hd5, hdf5, hn, keras, kmodel,
    • lite, mar, meta, mge, mlmodel, mlnet, mlpackage, mnn, model, nb, ngf, nn, nnp,
    • om, onnx, ort, paddle, param, pb, pbtxt, pdiparams, pdmodel, pdopt, pdparams, prototxt, pt, pth, ptl,
    • rknn, t7, tfl, tflite, tmfile, tm, tnnproto, torchscript, uff, xmodel

  4. Traductions de l’interface mises à jour.

Tester

  1. Correction du calcul de la métrique "Perte moyenne par position" (Average losing trade) dans le rapport de test. Le calcul pouvait auparavant inclure par erreur des opérations d'entrée si des commissions étaient facturées pour ces opérations.
  2. Amélioration des options des commission personnalisées dans le testeur de stratégie. Pour définir un symbole, indiquez son nom plutôt que le chemin d'accès complet.
  3. Mise à jour des icônes dans le testeur de stratégie. De nouvelles métaphores les rendront plus faciles à comprendre.

Correction des erreurs rapportées dans les journaux de crash.

Terminal Web

  1. Amélioration de la section relative à l'historique des trades :

    • Ajout de l'affichage des opérations de solde dans l'historique des transactions, telles que les dépôts et les retraits, les commissions et les ajustements.
    • Ajout de l'affichage des totaux dans l'historique des transactions : solde, profit, commission, dépôts, retraits et nombre d'ordres entre autres.
    • Ajout de la possibilité de trier les opérations et de filtrer l'historique par profondeur dans la version mobile.


    Mise à jour de l'historique de trading


  2. Amélioration des spécifications des contrats des symboles. Les informations suivantes ont été ajoutées : limite de volume, taille et valeur du tick, marge initiale et marge couverte.
  3. Amélioration des schémas de couleurs :

    • Les ordres en attente sont affichés en gris sur le graphique. La couleur de la position dépend de la direction : rouge pour les Ventes et bleu pour les Achats. Les nouvelles couleurs facilitent la navigation, en particulier lorsque de nombreuses opérations sont affichées sur le graphique.
    • Lors de la visualisation ou de la modification d'une position, seule cette position et ses niveaux sont mis en évidence. Toutes les autres positions et tous les autres ordres deviennent gris et leurs niveaux sont masqués dans l'échelle des prix. Il est ainsi maintenant plus facile de gérer des opérations distinctes.
    • La couleur du Stop Loss est passée du rouge à l'orange pour éviter toute confusion avec les positions de vente.
    • Amélioration des icônes sur la carte indiquant l'heure de fermeture de la position. Une icône verte est utilisée pour les positions fermées par un Take Profit et une icône rouge est utilisée pour celles fermées par un Stop Loss.

  4. Ajout de traductions de l'interface en arabe, bulgare, vietnamien, grec, indonésien, malais, néerlandais, persan, polonais, thaï, ukrainien et hindi. Le terminal web est désormais disponible en 24 langues.
  5. Correction des traductions de l'interface utilisateur en turc.
  6. Correction de la modification et de la suppression des ordres en attente dans la version mobile du Terminal Web.
  7. Correction de l'info-bulle "marché fermé" sur le graphique.
  8. Correction de l'affichage des bénéfices dans le bouton de fermeture de la position dans la boîte de dialogue de trading. L'erreur pouvait se produire lors d’une fermeture partielle.
  9. Correction de l'affichage des notifications de trading sur le graphique.
  10. Correction de la modification du volume à l'aide de flèches dans la Profondeur du Marché.
  11. Correction d'une erreur qui pouvait entraîner la réinitialisation des paramètres des indicateurs en cours d'exécution dans certaines conditions.
  12. Correction des vérifications du nom d'utilisateur lors de l'ouverture de nouveaux comptes. Auparavant, une apostrophe dans le nom était considérée comme une erreur.
  13. Correction du traitement des recotations. La boîte de dialogue avec les prix demandés peut ne pas s'afficher dans certaines conditions.
  14. Correction de l'affichage de l'indicateur Ichimoku Kinko Hyo. Les lignes Chikou-Span, Up Kumo et Down Kumo s'affichent maintenant avec le bon décalage.
  15. Correction des vérifications de la marge initiale lors de l'ouverture de nouveaux ordres. L'erreur pouvait se produire dans le système de comptabilité des positions de couverture.
  16. Correction du défilement dans la fenêtre de spécification du contrat.

MQL5.community

  1. Le site web du MQL5 Cloud Network a été entièrement remanié : https://cloud.mql5.com.

    Apprenez à utiliser la puissance de traitement de milliers d'ordinateurs dans le monde pour optimiser vos stratégies de trading. Avec le MQL5 Cloud Network, même les calculs les plus lourds peuvent être effectués en quelques minutes. Visitez le site web et découvrez comment participer au réseau et comment gagner de l'argent en fournissant vos ressources informatiques.


    Visitez le site web mis à jour du MQL5 Cloud Network


  2. Amélioration de la section des captures d'écran dans les produits du Market. Les auteurs peuvent télécharger des images d'une taille maximale de 1920*1800 pixels pour démontrer le fonctionnement des applications. La galerie des captures d'écran a également été mise à jour. La vitrine affiche des vignettes d'images, et un clic sur celles-ci ouvre les images en taille réelle.


    Amélioration de la section des captures d'écran dans le Market


  3. Améliorations de la section Freelance. Les utilisateurs recevront désormais plus de conseils lors de leurs premières commandes :

    • Exemples de spécifications d'exigences et rappel d'en ajouter une
    • Instructions pour la création d'une commande
    • Conseils d'utilisation des modèles

    Ces conseils peuvent vous aider à créer la commande et à obtenir le résultat souhaité.


    Améliorations apportées à la section Freelance


24 mars 2023
MetaTrader 5 build 3660 : Améliorations et corrections

Terminal

  1. Correction d'une erreur occasionnelle dans la création du journal de la plateforme.
  2. Mise à jour des traductions de l'interface utilisateur.

MQL5

  • Correction de la vérification des variables globales. Lors de la déclaration de variables nommées de la même façon dans des espaces de noms différents, le compilateur émettait un faux avertissement indiquant que la variable était déjà déclarée.

Terminal Web

  1. Ajout de la traduction de l'interface utilisateur en portugais. Le terminal web est désormais disponible en 12 langues.
  2. Correction de la boîte de dialogue permettant d'ajouter un indicateur d'Ecart-Type (Standard Deviation).
  3. Corrections et améliorations mineures.
17 mars 2023
MetaTrader 5 build 3640 : Terminal Web en 11 langues

Terminal Web

  1. Ajout des traductions de l'interface utilisateur dans 10 langues largement parlées : Chinois simplifié et traditionnel, français, allemand, italien, japonais, coréen, espagnol, turc et russe. Cette liste sera encore élargie dans les prochaines versions. Pour changer de langue, utilisez le menu correspondant :


    Interface du terminal Web disponible en 11 langues


  2. Optimisation du mécanisme de connexion au serveur de trading.

MQL5

  1. MQL5 : Ajout des flags COPY_TICKS_VERTICAL et COPY_RATES_VERTICAL pour les méthodes CopyTicks, CopyTicksRange et CopyRates.

    Par défaut, les ticks et les séries sont copiées dans la matrice le long de l'axe horizontal, ce qui signifie que les données sont ajoutées à droite, à la fin de la ligne. Dans les tâches d'exécution du modèle ONNX entraîné , ce type de matrice doit être transposée afin d'alimenter les données d'entrée :

    const long   ExtOutputShape[] = {1,1};    // model's output shape
    const long   ExtInputShape [] = {1,10,4}; // model's input shape
    #resource "Python/model.onnx" as uchar ExtModel[]// model as a resource
    //+------------------------------------------------------------------+
    //| Script program start function                                    |
    //+------------------------------------------------------------------+
    int OnStart(void)
      {
       matrix rates;
    //--- get 10 bars
       if(!rates.CopyRates("EURUSD",PERIOD_H1,COPY_RATES_OHLC,2,10))
          return(-1);
    //--- input a set of OHLC vectors
       matrix x_norm=rates.Transpose();
       vector m=x_norm.Mean(0);               
       vector s=x_norm.Std(0);
       matrix mm(10,4);
       matrix ms(10,4);

    En spécifiant le flag supplémentaire COPY_RATES_VERTICAL (COPY_TICKS_VERTICAL pour les ticks) lors de l'appel à la méthode, il n’est plus nécessaire de transposer les données :

    //+------------------------------------------------------------------+
    //| Script program start function                                    |
    //+------------------------------------------------------------------+
    int OnStart(void)
      {
       matrix rates;
    //--- get 10 bars
       if(!rates.CopyRates("EURUSD",PERIOD_H1,COPY_RATES_OHLC|COPY_RATES_VERTICAL,2,10))
          return(-1);
    //--- input a set of OHLC vectors
  2. Nouvelle valeur dans l'énumération ENUM_CHART_PROPERTY_INTEGER — CHART_SHOW_TRADE_HISTORY. La propriété contrôle l'affichage des transactions depuis l'historique des transactions sur le graphique. Utilisez les fonctions ChartGetInteger et ChartSetInteger pour obtenir et définir la propriété. Pour plus de détails sur l'affichage des transactions sur le graphique, veuillez lire la documentation de la plateforme.

MetaEditor

  • Correction du gel de l'interface qui pouvait survenir lors de la compilation du fichier sous certaines conditions.

Terminal

  • Correction des erreurs rapportées dans les journaux de crash.
10 mars 2023
MetaTrader 5 build 3620 : Améliorations du terminal Web, support ONNX et multiplications matricielles rapides dans MQL5

Terminal

  1. Correction du calcul du bénéfice total dans les rapports de trading.
  2. Mise à jour des données fondamentales pour les instruments de trading disponibles via la fenêtre du Market Watch.
  3. Correction du lancement de la plateforme de trading sous Wine 7.0.1 sous Linux.
  4. Correction de l'ajout de symboles dans la fenêtre de Profondeur de Marché via la barre de recherche. Un symbole trouvé par description ne pouvait pas être ajouté à la liste en cliquant sur sa ligne.

MQL5

  1. Prise en charge des opérations avec les modèles ONNX (Open Neural Network Exchange).

    ONNX est un format open-source pour les modèles d'apprentissage automatique. Ce format est pris en charge par de nombreuses plateformes, notamment Chainer, Caffee2 et PyTorch. Créez un modèle ONNX à l'aide d'outils spécialisés, intégrez-le dans votre application MQL5 et utilisez-le pour prendre des décisions de trading.

    Les descriptions de toutes les fonctions prises en charge sont disponibles dans la documentation. Un exemple de modèle ONNX de test est disponible dans les projets publics dans MetaEditor. Trouvez le projet ONNX.Price.Prediction dans "Boîte à Outils \ Projets Publics" et sélectionnez Rejoindre dans le menu contextuel. Le projet sera téléchargé sur votre ordinateur et apparaîtra dans le Navigateur :


    Un exemple de travail avec un modèle ONNX dans des projets publics


    Compilez le projet et exécutez-le sur EURUSD H1 pour voir le résultat.

    En plus du modèle et du code MQL5 qui l'exécute, le projet comprend également le script Python PricePredictionTraining.py. Il montre comment vous pouvez créer vous-même un modèle ONNX. Pour exécuter le script, installez Python sur votre ordinateur et les modules requis à partir de la ligne de commande :

    python.exe -m pip install --upgrade pip
    python -m pip install --upgrade tensorflow
    python -m pip install --upgrade pandas
    python -m pip install --upgrade scikit-learn
    python -m pip install --upgrade matplotlib
    python -m pip install --upgrade tqdm
    python -m pip install --upgrade metatrader5
    python -m pip install --upgrade onnx==1.12
    python -m pip install --upgrade tf2onnx
    Des instructions sur l'utilisation de ONNX sont disponibles dans la documentation.

  2. Ajout de la prise en charge de la Multiplication de Matrices Générales (GeMM). Cet algorithme accélère les calculs sur certains types de processeurs grâce à des tâches parallélisées et à une utilisation optimisée des caches L1/L2/L3. La vitesse de calcul est comparable à celle de logiciels populaires tels que Math Kernel Library (MKL) et OpenBLAS. Des tests comparatifs détaillés seront publiés prochainement.

    Le nouvel algorithme est actuellement pris en charge dans la méthode matrix::GeMM. Si votre processeur prend en charge les instructions AVX et FMA (la plupart des processeurs commercialisés après 2013 prennent en charge ces instructions), l'algorithme sera activé automatiquement.

  3.  Ajout de la possibilité de transférer des matrices et des vecteurs vers les DLL. Cela permet d'importer des fonctions qui utilisent les types pertinents à partir de variables externes.

    Les matrices et les vecteurs sont transmis à une DLL sous la forme d’un pointeur vers un buffer. Par exemple, pour passer une matrice de type float, le paramètre correspondant de la fonction exportée depuis la DLL doit prendre un pointeur de buffer de type float. Par exemple :

    MQL5
    #import "mmlib.dll"
    bool sgemm(uint flags,matrix<float> &C,const matrix<float> &A,const matrix<float> &B,ulong M,ulong N,ulong K,float alpha,float beta);
    #import
    C++
    extern "C" __declspec(dllexport) bool sgemm(UINT flags,float *C,const float *A,const float *B,UINT64 M,UINT64 N,UINT64 K,float alpha,float beta)
    En plus des buffers, vous devez transmettre les tailles de matrice et de vecteur pour un traitement correct.

  4. Ajout d'une nouvelle fonction CopySeries pour copier des séries temporelles synchronisées de MqlRates dans des tableaux séparés.

    La fonction CopySeries permet d'obtenir uniquement les séries temporelles nécessaires dans différents tableaux spécifiés au cours d'un appel, et toutes les données des séries temporelles seront synchronisées. Cela signifie que toutes les valeurs des tableaux résultants à un certain indice N appartiendront à la même barre sur la paire Symbole/Timeframe spécifiée. Par conséquent, le programmeur n'a pas besoin de synchroniser les séries temporelles reçues avec l'heure d'ouverture de la barre.

    Contrairement à CopyRates, qui renvoie l'ensemble complet des séries temporelles sous la forme d'un tableau MqlRates, la fonction CopySeries permet d'obtenir des séries temporelles spécifiques requises dans des tableaux séparés. Cela peut se faire en spécifiant une combinaison de drapeaux pour sélectionner le type de série temporelle. L'ordre des tableaux transmis à la fonction doit correspondre à l'ordre des champs dans la structure MqlRates :

    struct MqlRates
      {
       datetime time;         // period beginning time
       double   open;         // open price
       double   high;         // high price for the period
       double   low;          // low price for the period
       double   close;        // close price
       long     tick_volume;  // tick volume
       int      spread;       // spread
       long     real_volume;  // exchange volume
      }

    Donc si vous avez besoin d'obtenir les valeurs des séries temporelles 'time', 'close' et 'real_volume' pour les 100 dernières barres du Symbol/Timeframe actuel, vous devez faire l'appel suivant :

    datetime  time[];
    double    close[];
    long      volume[];
    CopySeries(NULL,0,0,100,COPY_RATES_TIME|COPY_RATES_CLOSE|COPY_RATES_VOLUME_REAL,time,close,volume);
    

    L'ordre des tableaux "time, close, volume" doit correspondre à l'ordre des champs de la structure MqlRates. L'ordre des valeurs dans rate_mask est ignoré. Le masque pourrait être le suivant :

    COPY_RATES_VOLUME_REAL|COPY_RATES_TIME|COPY_RATES_CLOSE

    Exemple

    //--- input parameters
    input datetime InpDateFrom=D'2022.01.01 00:00:00';
    input datetime InpDateTo  =D'2023.01.01 00:00:00';
    input uint     InpCount   =20;
    //+------------------------------------------------------------------+
    //| Script program start function                                    |
    //+------------------------------------------------------------------+
    void OnStart(void)
      {
    //--- arrays to get timeseries from the Rates structure
       double   open[];
       double   close[];
       float    closef[];
       datetime time1[], time2[];
    //---request close prices to a double array
       ResetLastError();
       int res1=CopySeries(NULL, PERIOD_CURRENT, 0, InpCount,
                           COPY_RATES_TIME|COPY_RATES_CLOSE, time1, close);
       PrintFormat("1. CopySeries  returns %d values. Error code=%d", res1, GetLastError());
       ArrayPrint(close);
       
    
    //--- now also request open prices; use float array for close prices
       ResetLastError();
       int res2=CopySeries(NULL, PERIOD_CURRENT, 0, InpCount,
                           COPY_RATES_TIME|COPY_RATES_CLOSE|COPY_RATES_OPEN, time2, open, closef);
       PrintFormat("2. CopySeries  returns %d values. Error code=%d", res2, GetLastError());
       ArrayPrint(closef);
    //--- compare the received data
       if((res1==res2) && (time1[0]==time2[0]))
         {
          Print("  | Time             |    Open      | Close double | Close float |");
          for(int i=0; i<10; i++)
            {
             PrintFormat("%d | %s |   %.5f    |   %.5f    |   %.5f   |",
                         i, TimeToString(time1[i]), open[i], close[i], closef[i]);
            }
         }
    /*  Result
            1. CopySeries  returns 0 values. Error code=0
            [ 0] 1.06722 1.06733 1.06653 1.06520 1.06573 1.06649 1.06694 1.06675 1.06684 1.06604
            [10] 1.06514 1.06557 1.06456 1.06481 1.06414 1.06394 1.06364 1.06386 1.06239 1.06247
            2. CopySeries  returns 0 values. Error code=0
            [ 0] 1.06722 1.06733 1.06653 1.06520 1.06573 1.06649 1.06694 1.06675 1.06684 1.06604
            [10] 1.06514 1.06557 1.06456 1.06481 1.06414 1.06394 1.06364 1.06386 1.06239 1.06247
              | Time             |    Open      | Close double | Close float |
            0 | 2023.03.01 17:00 |   1.06660    |   1.06722    |   1.06722   |
            1 | 2023.03.01 18:00 |   1.06722    |   1.06733    |   1.06733   |
            2 | 2023.03.01 19:00 |   1.06734    |   1.06653    |   1.06653   |
            3 | 2023.03.01 20:00 |   1.06654    |   1.06520    |   1.06520   |
            4 | 2023.03.01 21:00 |   1.06520    |   1.06573    |   1.06573   |
            5 | 2023.03.01 22:00 |   1.06572    |   1.06649    |   1.06649   |
            6 | 2023.03.01 23:00 |   1.06649    |   1.06694    |   1.06694   |
            7 | 2023.03.02 00:00 |   1.06683    |   1.06675    |   1.06675   |
            8 | 2023.03.02 01:00 |   1.06675    |   1.06684    |   1.06684   |
            9 | 2023.03.02 02:00 |   1.06687    |   1.06604    |   1.06604   |
    */
      }
  5. Correction de la fonction OrderSend. La fonction pouvait retourner un ticket d’ordre incorrect si un même compte était utilisé simultanément sur plusieurs plateformes.
  6. Correction de l'importation des bibliothèques EX5. Une erreur s'est produite si le nom de la bibliothèque importée correspondait au nom du fichier dans lequel elle a été importée.

MetaEditor

  1. Ajout de l'envoi de notifications push aux membres d’un projet partagé. La nouvelle option permet d’informer les utilisateurs des modifications apportées aux paramètres et aux fichiers du projet. Pour activer les notifications, entrez votre identifiant MetaQuotes dans la section "Paramètres \ Sécurité" de votre profil MQL5.Community.


    Notifications push lors des mises à jour du projet


  2. Mise à jour des icônes de fichiers dans le navigateur. De nouvelles icones plus simples les rendront plus faciles à comprendre.

Tester

  1. Correction d'une erreur qui provoquait la coupure d’une chaîne de caractère si elle contenait le caractère "|".
  2. Correction des erreurs rapportées dans les journaux de crash.

Nouvelle version 3620 du Terminal Web MetaTrader 5

  1. Ajout de modèles de couleurs prêts à l'emploi pour l'interface du Terminal Web. Les modèles affectent l'affichage des barres et des lignes du graphique, ainsi que les prix dans le Market Watch et les états financiers du compte. Notre équipe de conception a préparé des préréglages de modèles de couleurs, basés sur vos suggestions et sur des combinaisons de couleurs traditionnelles.


    Nouveaux modèles de couleurs pour les terminaux web


  2. Fenêtre de spécification de symbole repensée. Les données des instruments de trading ont été réorganisées en blocs logiques pour faciliter la visualisation.


    Mise à jour de la fenêtre de spécification des instruments de trading


  3. Correction de l’ouverture de comptes réels via le terminal web. Le serveur pouvait renvoyer une erreur après avoir rempli un formulaire d'inscription.
  4. Correction d'une erreur dans la boîte de dialogue de trading. Si l'utilisateur fermait une position en appuyant sur le bouton X dans la fenêtre Boîte à outils alors que la boîte de dialogue de modification de position était ouverte, le contenu de la boîte de dialogue n'était pas réinitialisé. Après la mise à jour, la boîte de dialogue sera automatiquement réinitialisée à un nouveau mode de passation d’ordre dans ce cas.
  5. Correction de l'affichage du champ Serveur dans la boîte de dialogue de gestion des comptes.
  6. Correction de l'affichage de la période actuelle sur la barre d'outils.
  7. Correction de l’affichage des volumes en termes d'unités d'actifs sous-jacents, dans la boîte de dialogue de trading.
  8. Correction de la modification des niveaux du Stop Loss et du Take Profit. La modification d'une des valeurs peut réinitialiser la seconde sous certaines conditions.
  9. Correction de l’affichage des avertissements de risque d'investissement.


6 mars 2023
MetaTrader 5 pour iPhone/iPad : Amélioration des fonctions de trading et d'analyse sur les graphiques
  1. Ajout de la possibilité de placer des ordres stop et stop-limit à partir du graphique.

    Dans les versions précédentes, seuls les ordres à cours limité étaient disponibles. Sélectionnez le type désiré en appuyant successivement sur le bouton situé dans la partie inférieure du tableau.


    Placer des ordres Stop et Stop Limit depuis le graphique


  2. Ajout de la possibilité d'accéder aux fonctions de clôture de position ou de suppression d'ordre en attente à partir du graphique. Sélectionnez une position ou un niveau d'ordre sur le graphique, et la commande correspondante apparaîtra dans le panneau de trading inférieur :


    Gérer les positions et les ordres à partir du graphique


  3. Fonctionnalité améliorée qui déplace le bord droit du graphique des prix. Pour modifier le décalage, il suffit de faire défiler le graphique jusqu'au dernier prix, jusqu'à ce qu'un séparateur vertical apparaisse. Faites ensuite glisser le triangle situé en bas de l'échelle graphique :


    Modifier le décalage du graphique en faisant glisser le triangle sur l'échelle inférieure


  4. Ajout de la possibilité de copier des objets d’analyse sur le graphique. Cela permet d'accélérer le marquage des graphiques. Ouvrez le menu de l'objet avec une pression longue et sélectionnez "Copier" :

    Créer des copies d'objets d’analyse


  5. Ajout de la possibilité de gérer l'affichage des indicateurs sur différentes périodes. Si l'indicateur n'est pas adapté à certaines périodes du graphique, il peut être masqué afin de libérer de l'espace sur l'écran pour d'autres objets d'analyse.


    Gérer l'affichage des indicateurs sur différentes périodes


  6. Ajout de l'affichage des commissions des symboles dans la fenêtre de spécification de l'instrument.


    Découvrez le montant de la commission dans la spécification de l'instrument


  7. Ajout d'un lien de récupération du mot de passe. Le mot de passe d'un compte ne peut être rétabli que par l'intermédiaire du courtier concerné. Le lien indique les coordonnées du courtier.


    Aide à la récupération du mot de passe


  8. Ajout de la possibilité de partager un lien vers une chaîne de la MQL5.community.


    Partager un lien vers votre chaîne via l'application


  9. Amélioration de l'expérience de l'utilisateur lorsqu'il se connecte à un compte soumis à des restrictions de trading.

    Le trading peut être limité pour diverses raisons : connexion en mode investisseur ; aucun accord de trading accepté ; la vérification du courtier n'a pas été effectuée, etc. La raison de l'indisponibilité des fonctions de trading n'était pas expliquée auparavant.

    Maintenant, si les fonctions de trading sont limitées, le bouton de passation d'ordre de la section Trade est grisé. En appuyant sur cette touche, les informations et recommandations pertinentes sont affichées.


    Informations utiles en cas de restriction du trading


  10. Amélioration du flux de travail avec les certificats SSL utilisés pour l'authentification avancée.

    Maintenant, lorsque l'utilisateur se connecte à un compte avec une authentification avancée, l'application affiche une brève description des actions requises.


    Amélioration du fonctionnement des certificats SSL


    Un certificat peut être importé à partir d'un fichier PFX. Enregistrez le fichier nécessaire dans l'application Files, puis utilisez la fonction d'import dans la boîte de dialogue de démarrage.

    Il est également possible d'importer des certificats dans des fichiers, ce qui permet d'utiliser des certificats sur d'autres appareils. Pour ce faire, allez dans Paramètres \ Certificats et sélectionnez "Exporter" dans le menu des certificats.

  11. La construction des graphiques de prix a été transférée à Metal, l'API graphique de dernière génération utilisée dans les appareils Apple. Cela augmente considérablement les performances de rendu des graphiques, des indicateurs et des objets.
  12. Correction du remplacement des niveaux de Stop Loss et de Take Profit dans la Profondeur de Marché. Pour les comptes FIFO, les niveaux de stop seront automatiquement définis selon les niveaux de stop des positions ouvertes sur le même instrument. Ce processus est nécessaire pour se conformer à la règle FIFO.
  13. Correction des recotations. Lorsqu'une nouvelle cotation est reçue, l'utilisateur dispose d'un court délai pour accepter ou refuser les nouveaux prix. Si aucune décision n'est prise dans le délai imparti, la demande est automatiquement rejetée et la fenêtre de recotation est automatiquement fermée.
  14. Correction de l'affichage de l'heure dans la section Graphique lors de l'utilisation du thème sombre de l’interface.
16 décembre 2022
MetaTrader 5 build 3550 : Améliorations et corrections

Terminal

  1. Terminal : Mise à jour des traductions de l'interface utilisateur.
  2. Corrections basées sur les journaux d'incidents.

Terminal Web

9 décembre 2022
MetaTrader 5 build 3540 : Authentification 2FA/TOTP et amélioration du Market Watch dans le terminal Web

Terminal Web

  1. Ajout de l'authentification 2FA/TOTP à l'aide de Google Authenticator et d'applications similaires.

    L'authentification forte 2FA/TOTP protège un compte de trading contre tout accès non autorisé même si son identifiant et son mot de passe sont divulgués. L'authentification à l'aide de l'algorithme de mot de passe à usage unique (TOTP) basé sur le temps peut être mis en œuvre à l'aide de diverses applications mobiles. Les plus populaires d'entre elles sont Google Authenticator, Microsoft Authenticator, LastPass Authenticator et Authy. Vous pouvez maintenant vous connecter à votre compte dans le terminal client MetaTrader 5 en utilisant des mots de passe à usage unique générés par ces applications Authenticator.

    Pour activer l'option d'authentification à deux facteurs, connectez-vous à votre compte via le terminal Web MetaTrader 5. Cliquez ensuite sur votre compte dans le menu et sélectionnez "Activer 2FA/TOTP" dans la boîte de dialogue qui s'ouvre. Exécutez l'application Authenticator sur votre appareil mobile, cliquez sur "+" pour ajouter votre compte de trading et scannez le QR code depuis le terminal. Saisissez le code généré dans le champ "Mot de passe à usage unique" et cliquez sur "Activer la 2FA". Un secret sera enregistré pour votre compte sur le serveur de trading du courtier.


    Ajout de la prise en charge de l'authentification 2FA/TOTP à l'aide de Google Authenticator et d'applications similaires


    Le secret enregistré sera utilisé dans l'application Authenticator pour générer un code OTP chaque fois que vous vous connectez à votre compte. Chaque mot de passe est valide pendant 30 secondes. Après cela, un nouveau mot de passe est généré.


    Un OTP supplémentaire de l'application Authenticator sera nécessaire pour se connecter au compte


    Un code de sauvegarde est également affiché dans la boîte de dialogue du QR code pour la liaison avec le générateur. Sauvegardez-le dans un endroit sûr. Si vous perdez l'accès à votre appareil lié, le code vous permettra d'ajouter à nouveau votre compte à l'application Authenticator.

    Si vous décidez de supprimer le secret stocké de l'application Authenticator, vous devez d'abord désactiver l'authentification 2FA/TOTP à l'aide de la commande correspondante du menu contextuel du compte. Si la nouvelle méthode d'authentification 2FA/TOTP n'est pas disponible sur votre compte, veuillez contacter votre courtier.

  2. Augmentation de la quantité de données affichées dans le Market Watch. Maintenant, en plus des prix d'achat et de vente actuels et du pourcentage de changement de prix, vous pouvez voir :

    • Prix maximum et minimum de l'offre et de la demande pour la session de trading en cours
    • Prix d'ouverture de la session de trading actuelle et prix de clôture de la session de trading précédente

    Utilisez le menu contextuel pour personnaliser les informations affichées :


    Données supplémentaires du Market Watch


  3. Ajout de l'affichage de la notification de risque lorsqu'un paramètre correspondant est activé du côté du courtier. Certains régulateurs exigent que les traders lisent et acceptent la notification avant de négocier.
  4. Correction de l'affichage de la barre d'outils supérieure sur les modèles d'iPhone présentant une encoche en haut de l'écran. Auparavant, il pouvait occasionnellement couvrir les boutons du panneau.
  5. Correction de l'affichage des paramètres financiers finaux du compte (bénéfice, fonds propres, etc.) dans le navigateur Google Chrome. Parfois, ils n'étaient pas mis à jour.

Terminal Client

  1. Boîte de dialogué d’ouverture d’un compte de démo optimisée et grandement accélérée.
  2. Mise à jour des traductions de l'interface utilisateur.
  3. Corrections basées sur les journaux d'incidents.

MQL5

  1. Ajout de nouvelles méthodes à la classe COpenCL de la Bibliothèque Standard :

    • BufferFromMatrix - remplissage du tampon du périphérique avec des données provenant de la matrice
    • BufferToMatrix - lecture des données du tampon du périphérique dans la matrice
    • ContextCreate - création du contexte du périphérique (la première partie de la méthode Initialize)
    • ProgramCreate - création d'un programme basé sur le code source OpenCL (la deuxième partie de la méthode Initialize)
    • ContextClean - libération de toutes les données appartenant au contexte du périphérique (similaire à la méthode Shutdown mais sans supprimer le contexte)
    • GetDeviceInfoInteger - pour récupérer une propriété de type "integer" du périphérique
    • GetKernelInfoInteger - pour récupérer une propriété de type "integer" du noyau
    • GetDeviceInfo - pour récupérer n’importe quelle propriété de type "integer" du périphérique non présente dans l'énumération ENUM_OPENCL_PROPERTY_INTEGER

    Exemple d'utilisation de GetDeviceInfo :
    long preferred_workgroup_size_multiple = OpenCL.GetDeviceInfo(0x1067);
  2. Ajout des valeurs TERMINAL_CPU_NAME et TERMINAL_OS_VERSION dans l'énumération ENUM_TERMINAL_INFO_STRING. Ils permettent d’obtenir les noms du processeur et du système d'exploitation de l'utilisateur.
    void OnStart()
      {
       string  cpu, os;
    //---
       cpu = TerminalInfoString(TERMINAL_CPU_NAME);
       os = TerminalInfoString(TERMINAL_OS_VERSION);
       PrintFormat("CPU : %s, OS : %s", cpu, os);
      }
    
    Résultat :
    CPU : Intel Xeon E5-2630 v4 @ 2.20GHz, OS : Windows 10, version 19045
  3. Correction du fonctionnement du paramètre "table_or_sql" dans les fonctions DatabasePrint et DatabaseExport. Il est maintenant possible de passer un nom de table en plus d'une requête SQL.

MetaEditor

  1. Correction de la vérification du nombre maximum de colonnes affichables dans la base de données. Il est désormais possible d'afficher jusqu'à 64 colonnes.
  2. Correction du fonctionnement des points d'arrêt dans les constructions courtes comme IF[ if (condition) break; ].
25 novembre 2022
MetaTrader 5 build 3520 : Authentification 2FA/TOTP avec Google Authenticator

Terminal

  1. Ajout de l'authentification 2FA/TOTP à l'aide de Google Authenticator et d'applications similaires.

    L'authentification forte 2FA/TOTP protège un compte de trading contre tout accès non autorisé même si son identifiant et son mot de passe sont divulgués. L'authentification à l'aide de l'algorithme de mot de passe à usage unique (TOTP) basé sur le temps peut être mis en œuvre à l'aide de diverses applications mobiles. Les plus populaires d'entre elles sont Google Authenticator, Microsoft Authenticator, LastPass Authenticator et Authy. Vous pouvez maintenant vous connecter à votre compte dans le terminal client MetaTrader 5 en utilisant des mots de passe à usage unique générés par ces applications Authenticator.

    Pour activer l'option d'authentification à 2 facteurs, connectez-vous à votre compte et exécutez la commande "Activer la 2FA/TOTP" dans le menu contextuel du compte. Exécutez l'application Authenticator sur votre appareil mobile, cliquez sur "+" pour ajouter votre compte de trading et scannez le QR code depuis le terminal. Saisissez le code généré dans le champ "Mot de passe à usage unique" et cliquez sur "Activer la 2FA". Un secret sera enregistré pour votre compte sur le serveur de trading du courtier.


    Ajout de la prise en charge de l'authentification 2FA/TOTP à l'aide de Google Authenticator et d'applications similaires.

    Le secret enregistré sera utilisé dans l'application Authenticator pour générer un code OTP chaque fois que vous vous connectez à votre compte. Chaque mot de passe est valide pendant 30 secondes. Après cela, un nouveau mot de passe est généré.



    Un OTP supplémentaire de l'application Authenticator sera nécessaire pour se connecter au compte

    Si vous décidez de supprimer le secret stocké de l'application Authenticator, vous devez d'abord désactiver l'authentification 2FA/TOTP à l'aide de la commande correspondante du menu contextuel du compte. Si la nouvelle méthode d'authentification 2FA/TOTP n'est pas disponible sur votre compte, veuillez contacter votre courtier.

MQL5

  1. Correction du fonctionnement de la fonction CopyTicks pour les instruments de trading personnalisés. Lorsque vous travaillez avec des symboles personnalisés, les ticks initiaux de la session précédente peuvent être renvoyés au lieu des données demandées, sous certaines conditions.

  2. Ajout de nouvelles valeurs d'énumération pour obtenir le dernier code d'erreur OpenCL et la description textuelle.
    1. La valeur CL_LAST_ERROR (code 4094) a été ajoutée à l'énumération ENUM_OPENCL_PROPERTY_INTEGER

      Lors de la récupération de la dernière erreur OpenCL via CLGetInfoInteger, le paramètre handle est ignoré. Descriptions des erreurs : https://registry.khronos.org/OpenCL/specs/3.0-unified/html/OpenCL_API. html#CL_SUCCESS.
      Pour un code d'erreur inconnu, la chaîne "erreur OpenCL inconnue N" est renvoyée, où N est le code d'erreur.

      Exemple :
      //--- the first handle parameter is ignored when obtaining the last error code
      int code = (int)CLGetInfoInteger(0,CL_LAST_ERROR);

    2. La valeur CL_ERROR_DESCRIPTION (4093) a été ajoutée à l'énumération ENUM_OPENCL_PROPERTY_STRING .
      Une description d'erreur textuelle peut être obtenue à l'aide de CLGetInfoString. Descriptions des erreurs : https://registry.khronos.org/OpenCL/specs/3.0-unified/html/OpenCL_API. html#CL_SUCCESS.

      Lors de l'utilisation de CL_ERROR_DESCRIPTION, un code d'erreur doit être transmis pour le paramètre handle dans CLGetInfoString. Si CL_LAST_ERROR est transmis à la place du code d'erreur, la fonction renverra la dernière description d'erreur.

      Exemple :
      //--- get the code of the last OpenCL error
      int    code = (int)CLGetInfoInteger(0,CL_LAST_ERROR);
      string desc; // to get the text description of the error
      
      //--- use the error code to get the text description of the error
      if(!CLGetInfoString(code,CL_ERROR_DESCRIPTION,desc))
         desc = "cannot get OpenCL error description, " + (string)GetLastError();
      Print(desc);
      
      
      //--- to get the description of the last OpenCL error without receiving the code, pass CL_LAST_ERROR  
      if(!CLGetInfoString(CL_LAST_ERROR,CL_ERROR_DESCRIPTION, desc))
         desc = "cannot get OpenCL error description, " + (string)GetLastError();
      Print(desc);
      Le nom de l'énumération interne est transmis comme description de l'erreur. Son explication peut être trouvée sur https://registry.khronos.org/OpenCL/specs/3.0-unified/html /OpenCL_API.html#CL_SUCCESS. Par exemple, la valeur CL_INVALID_KERNEL_ARGS signifie "Renvoyé lors de la mise en file d'attente d'un noyau lorsque certains arguments du noyau n'ont pas été définis ou sont invalides." (" Returned when enqueuing a kernel when some kernel arguments have not been set or are invalid." )

  3. Correction du fonctionnement de la méthode matrix::MatMul. Lorsque vous travaillez avec de grandes matrices, le terminal peut planter sur certaines tailles.

Correction des erreurs rapportées dans les journaux de crash.
18 novembre 2022
MetaTrader 5 build 3510 : Améliorations du Terminal Web

WebTerminal  MetaTrader 5

  1. Dans la version mobile, nous avons implémenté le tri de l'historique des transactions et le filtrage par profondeur. Utilisez les commandes du panneau supérieur pour personnaliser l'affichage de l'historique :


    Vue de l'historique des transactions personnalisable dans la version mobile


    Les opérations peuvent être triées selon les principaux paramètres, tels que la date, le ticket, le symbole et le volume.

  2. Amélioration de l'accès aux détails du compte de trading.

    • Dans la version de bureau, il est possible de cliquer sur les données du compte courant. Cliquez sur le compte pour afficher ses détails.
    • Dans la version mobile, le compte courant est affiché dans la section "Paramètres". Cliquez sur le compte pour afficher ses détails.


    Amélioration de l'accès aux données du compte de trading

  3. Correction de l'affichage du type de compte dans la fenêtre de gestion du compte.
  4. Les fonds propres et la marge libre s'affichent après le rafraîchissement de la page du terminal web dans les navigateurs mobiles.
  5. Correction de l'affichage de la barre inférieure dans le navigateur mobile Firefox.

Terminal

  1. Calculs des fonds propres et du graphique du solde dans le rapport de trading.

MQL5

  1. Nouveau comportement de la fonction typename(expr). La nouvelle version de la fonction renvoie le type complet avec les modificateurs et les dimensions (pour les tableaux) :
    class A
      {
      };
    
    void OnStart(void)
      {
       const A *const arr[][2][3]={};
       Print(typename(arr));
      }
    
    Résultat :
    "class A const * const [][2][3]"
Correction des erreurs rapportées dans les journaux de crash.


11 novembre 2022
MetaTrader 5 build 3500 : Améliorations et corrections

Terminal

  1. Une nouvelle commande a été ajoutée au menu contextuel des sections Trade et Historique, pour permettre l'accès au nouveau rapport de trading.


    Le rapport de trading fournit les données de performance suivantes :
    • Graphiques et tableaux de l’évolution mensuelle
    • Graphique des fonds
    • Graphique sous forme de radar permettant une évaluation rapide de l'état du compte
    • Statistiques de trading par instrument
    • Une variété de métriques supplémentaires pour l'analyse de toutes les transactions

  2. Correction du calcul du dépôt initial dans le rapport de trading.
  3. Correction du réglage des niveaux de Stop Loss et Take Profit lors de l'utilisation du panneau de trading rapide dans le graphique et dans le Market Watch. Les niveaux pouvaient être hérités de positions précédemment ouvertes, même lorsque l'héritage n'était pas nécessaire (la fonctionnalité correspondante est mise en œuvre pour les comptes basés sur le FIFO).
  4. Mise à jour des traductions de l'interface utilisateur.

MQL5

  1. Correction d'un bug du compilateur qui permettait l'accès à un champ de structure en utilisant une constante avec la valeur du nom du champ.
  2. Correction de la vérification des états des touches à l'aide de la fonction TerminalInfoInteger(TERMINAL_KEYSTATE_*).

Correction des erreurs rapportées dans les journaux de crash.

Nouvelle version du Terminal Web MetaTrader 5

  1. Correction de la clôture des positions lors des re-cotations.
  2. Correction de la reconnexion au serveur après la maximisation d'une fenêtre de navigateur restée inactive pendant une longue période.
  3. Correction de l’affichage des fonds de crédit.
  4. Autres améliorations et corrections.


précédent123456789101112131415