MetaTrader 5 build 2265 : fonctions DirectX pour la visualisation 3D en MQL5 et paramètres des symboles dans le Strategy Tester

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

6 décembre 2019

Terminal

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




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




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




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

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

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

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

MQL5

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

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

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

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




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

    Les fonctions suivantes sont disponibles :

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

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

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

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

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

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

Tester

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

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



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




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




MetaEditor

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

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




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

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

Android

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

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



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

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

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

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

iPhone/iPad

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



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