MetaTrader 5 build 1860 : Fonctions MQL5 pour utiliser les barres et améliorations du Strategy Tester

Mises à jour : MetaTrader 5

15 juin 2018

Terminal

  1. La boîte de dialogue d'ouverture de compte a été complétement repensée. Vous pouvez maintenant sélectionner un courtier dans la liste et ensuite choisir le type de compte désiré. Cette mise à jour permet de réduire la liste des courtiers, puisqu'elle ne contient maintenant que les noms des sociétés au lieu de tous les serveurs disponibles.

    Les logos des compagnies sont également affichés dans la liste pour rendre la recherche plus facile et plus efficace. Si le courtier désiré n'apparaît pas dans la liste, tapez le nom de la société ou l'adresse du serveur dans la barre de recherche et cliquez sur "Trouver votre courtier".




    Les descriptions des types de comptes ont été ajoutées dans la boîte de dialogue pour aider les débutants à choisir le bon compte. Pour être alignés avec le General Data Protection Regulation (GDPR), la nouvelle boîte de dialogue peut contenir des liens vers leurs accords et politiques de protection des données :




    Les possibilités d'ouverture de comptes réels ont été étendues de façon significative. La fonctionnalité de chargement des documents de confirmation de l'identité et de l'adresse, qui était auparavant disponible dans les terminaux mobiles, est maintenant disponible dans la version de bureau. Désormais, les courtiers réglementés MiFID peuvent demander toutes les données d'identification de client requises, y compris des informations sur l'emploi, le revenu, l'expérience de trading, etc. La nouvelle fonctionnalité aidera les traders à ouvrir des comptes réels plus rapidement et plus facilement, sans procédure bureaucratique inutile.



  2. L'historique des transactions affiche maintenant les valeurs du Stop Loss et du Take Profit. Les valeurs des Stop Loss et Take Profit pour les transactions d'entrée et de renversement sont définies selon les Stop Loss et Take Profit des ordres qui ont initiés ces transactions. Les valeurs du Stop Loss et du Take Profit des positions correspondantes au moment de la clôture de la position sont utilisées pour les transactions de sortie. Ces dernières permettent d'enregistrer et de montrer les informations des Stop Loss et Take Profit d'une position au moment de sa fermeture. Cette information n'était pas stockée dans les versions antérieures, puisque les positions disparaissent après la fermeture, tandis que l'historique des positions dans le terminal est généré en fonction des transactions.




  3. L'historique des positions affiche maintenant les valeurs du Stop Loss et du Take Profit. Les valeurs des Stop Loss et Take Profit des transactions qui ont ouvert et fermer les positions correspondantes sont spécifiées pour ces positions.




  4. Le volume actuel des ordres en attente est maintenant affiché sur le graphique au lieu du volume demandé initialement.



  5. Le terminal mis à jour offre un rendu optimisé et plus rapide de la fonction Market Depth en mode étendu avec l'affichage du spread activé.
  6. Le traitement des résultats d'exécution d'une demande de trade a été optimisé. Cette optimisation permet un traitement bien plus rapide dans certains cas.
  7. Correction d'une erreur dans l'opération Trailing Stop, qui pouvait occasionnellement entraîner l'envoi de plusieurs demandes de modification du Stop Loss pour la même position..
  8. Correction du réglage du volume minimum et maximum, ainsi que du pas de volume dans les paramètres des symboles personnalisés.
  9. Correction d'une erreur, à cause de laquelle l'option "Echelle Fixe" pouvait être ignorée, lors de l'application d'un template au graphique du symbole.
  10. Correction d'une accumulation incorrecte occasionnelle de l'historique des ticks.

MQL5

  1. La vitesse d'exécution des applications MQL5 a été améliorée grâce à une optimisation supplémentaire du code source pendant la compilation. Recompilez vos programmes avec la nouvelle version de MetaEditor pour les faire s'exécuter plus rapidement.
    Malheureusement, les nouveaux programmes ne seront pas compatibles avec les précédentes versions du terminal en raison de cette optimisation supplémentaire. Les programmes compilés dans MetaEditor version 1855 et supérieur ne peuvent pas être lancés dans les terminaux des versions inférieures à 1855. Les programmes compilés dans les versions précédentes de MetaEditor peuvent s'exécuter sur les nouveaux terminaux.

  2. Nouvelles fonctions : iTime, iOpen, iHigh, iLow, iClose, iVolume, iBars, iBarShift, iLowest, iHighest, iRealVolume, iTickVolume, iSpread. Ces fonctions sont similaires à celles utilisées en MQL4. Les fonctions permettent un transfert plus facile du code des applications de trading vers la plateforme de 5ème génération.

    Auparavant, la plupart des tâches effectuées avec ces fonctions pouvaient être implémentées avec les fonctions Copy*. Cependant, les utilisateurs devaient implémenter leurs propres fonctions pour trouver les valeurs High/Low sur le graphique et pour rechercher les barres suivant leur date et heure. Maintenant, ces tâches peuvent être exécutées facilement avec les fonctions iHighest, iLowest et iBarShift.

    iTime
    Retourne l'heure d'ouverture (Open) de la barre (indiquée par le paramètre 'shift') sur le graphique correspondant.
    datetime  iTime(
       string           symbol,          // Symbole
       ENUM_TIMEFRAMES  timeframe,       // Période
       int              shift            // Décalage
       );

    iOpen
    Retourne le prix d'ouverture (Open) de la barre (indiquée par le paramètre 'shift') sur le graphique correspondant.
    double  iOpen(
       string           symbol,          // Symbole
       ENUM_TIMEFRAMES  timeframe,       // Période
       int              shift            // Décalage
       );

    iHigh
    Retourne le prix High de la barre (indiquée par le paramètre 'shift') sur le graphique correspondant.
    double  iHigh(
       string           symbol,          // Symbole
       ENUM_TIMEFRAMES  timeframe,       // Période
       int              shift            // Décalage
       );

    iLow
    Retourne le prix Low de la barre (indiquée par le paramètre 'shift') sur le graphique correspondant.
    double  iLow(
       string           symbol,          // Symbole
       ENUM_TIMEFRAMES  timeframe,       // Période
       int              shift            // Décalage
       );

    iClose
    Retourne le prix de clôture (Close) de la barre (indiquée par le paramètre 'shift') sur le graphique correspondant.
    double  iClose(
       string           symbol,          // Symbole
       ENUM_TIMEFRAMES  timeframe,       // Période
       int              shift            // Décalage
       );

    iVolume
    Retourne le volume des ticks de la barre (indiquée par le paramètre 'shift') sur le graphique correspondant.
    long  iVolume(
       string           symbol,          // Symbole
       ENUM_TIMEFRAMES  timeframe,       // Période
       int              shift            // Décalage
       );

    iBars
    Retourne le nombre de barres du symbole et de la période correspondants, disponible dans l'historique.
    int  iBars(
       string           symbol,          // Symbole
       ENUM_TIMEFRAMES  timeframe        // Période
       );

    iBarShift
    Recherche une barre par la date/heure. La fonction retourne l'indice de la barre correspondant à la date/heure spécifiée.
    int  iBarShift(
       string           symbol,          // Symbole
       ENUM_TIMEFRAMES  timeframe,       // Période
       datetime         time,            // Heure
       bool             exact=false      // Mode
       );

    iLowest
    Retourne l'indice de la plus petite valeur trouvée sur le graphique correspondant (décalage relatif à la barre courante).
    int  iLowest(
       string           symbol,          // Symbole
       ENUM_TIMEFRAMES  timeframe,       // Période
       int              type,            // Identifiant de la timeserie
       int              count,           // Nombre d'éléments
       int              start            // Indice
      );

    iHighest
    Retourne l'indice de la plus grande valeur trouvée sur le graphique correspondant (décalage relatif à la barre courante).
    int  iHighest(
       string           symbol,          // Symbole
       ENUM_TIMEFRAMES  timeframe,       // Période
       int              type,            // Identifiant de la timeserie
       int              count,           // Nombre d'éléments
       int              start            // Indice
      );

    iRealVolume
    Retourne le volume réel de la barre (indiquée par le paramètre 'shift') sur le graphique correspondant.
    long  iRealVolume(
       string           symbol,          // Symbole
       ENUM_TIMEFRAMES  timeframe,       // Période
       int              shift            // Décalage
       );

    iTickVolume
    Retourne le volume des ticks de la barre (indiquée par le paramètre 'shift') sur le graphique correspondant.
    long  iTickVolume(
       string           symbol,          // Symbole
       ENUM_TIMEFRAMES  timeframe,       // Période
       int              shift            // Décalage
       );

    iSpread
    Retourne la valeur du spread de la barre (indiquée par le paramètre 'shift') sur le graphique correspondant.
    long  iSpread(
       string           symbol,          // Symbole
       ENUM_TIMEFRAMES  timeframe,       // Période
       int              shift            // Décalage
       );
  3. Ajout de la nouvelle fonction TesterHideIndicators. La fonction définit le mode Afficher/Masquer pour les indicateurs utilisés dans les Expert Advisors. La fonction permet de gérer la visibilité des indicateurs utilisés uniquement pendant les tests. Définissez-le à true si vous souhaitez cacher les indicateurs créés. Sinon définissez-le à false.
    void  TesterHideIndicators(
       bool      hide     // Flag
       );
  4. Ajout de la génération de l'évènement CHARTEVENT_CLICK lors du clic sur les niveaux de trade sur le graphique.
  5. Correction et optimisation de l'utilisation des fonctions CopyTicks.
  6. Correction de la valeur retournée par la fonction SymbolInfoDouble pour la propriété SYMBOL_TRADE_LIQUIDITY_RATE.
  7. Correction de la copie de tableaux de chaînes de caractères avec une mémoire qui se chevauche.
  8. Correction de l'allocation d'un tableau de chaîne de caractères dans la fonction FileReadArray.
  9. Correction d'erreurs dans la Bibliothèque Standard MQL5.

Tester

  1. Le système d'utilisation du cache d'optimisation a été mis à jour. Le cache stocke les données des passes d'optimisation calculées auparavant. Le testeur de stratégies stocke les données pour permettre de reprendre l'optimisation après une pause et d'éviter le recalcul des passes de test déjà effectuées.

    Changements dans le format de stockage du cache d'optimisation
    Dans les versions précédentes, le cache d'optimisation était stocké comme un seul fichier XML. Toutes les passes d'optimisation d'un Expert Advisor avec les paramètres de test spécifiés étaient ajoutées à ce fichier. Le même fichier sotckait donc les résultats d'optimisations avec différents paramètres d'entrée dans le même fichier.
    Le cache d'optimisation est maintenant stocké sous forme de fichiers binaires pour chaque ensemble de paramètres optimisés. Les opérations du Strategy Tester impliquant le cache d'optimisation sont devenues significativement plus rapides grâce au nouveau format et à la taille réduite du fichier. L'accélération peut être particulièrement visible lorsque vous reprenez une passe d'optimisation en pause.

    Affichage des résultats des optimisations précédentes
    Les résultats des optimisations précédentes peuvent maintenant être visualisés directement dans le Strategy Tester. Il n'est donc pas nécessaire d'analyser des fichiers XML volumineux en utilisant un logiciel tiers. Ouvrez l'onglet "Résultats d'optimisation", sélectionnez un Expert Advisor et un fichier avec le cache d'optimisation :


    La liste contient tous les fichiers de cache d'optimisation existants sur le disque pour l'Expert Advisor sélectionné. La date d'optimisation, les paramètres de test (symbole, période, intervalle) et les paramètres d'entrée sont affichés pour chaque fichier. Vous pouvez aussi filtrer les résultats d'optimisation par le serveur de trading sur lequel les résultats ont été obtenus.

    Recalcul du critère d'optimisation à la volée
    Un critère d'optimisation est un certain paramètre variable dont la valeur détermine la qualité d'un ensemble d'entrées testé. Plus la valeur du critère d'optimisation est élevée, meilleur est le résultat du test avec l'ensemble de paramètres donné.

    Auparavant, un seul critère sélectionné avant le démarrage de l'optimisation était calculé lors de l'optimisation. Vous pouvez maintenant modifier le critère d'optimisation à la volée lors de la visualisation des résultats, et le Strategy Tester recalculera automatiquement toutes les valeurs.




    Utilisation manuelle du cache d'optimisation
    Dans les versions antérieures, le cache d'optimisation était stocké sous la forme d'un fichier XML, qui pouvait être ouvert et analysé à l'aide d'un logiciel tiers. Il est maintenant stocké sous forme de fichiers binaires. Pour obtenir des données au format XML, exportez-les en utilisant le menu contextuel de l'onglet "Résultats d'optimisation".

  2. Ajout de la possibilité de définir manuellement la devise du dépôt et le levier pour le test et l'optimisation. Dans les versions précédentes, la devise était définie selon le compte connecté. Il fallait donc changer de compte pour changer la devise. La taille de levier ne peut être sélectionnée qu'à partir d'une liste prédéfinie, maintenant il est possible de spécifier n'importe quelle valeur.

    Veuillez noter que des taux croisés pour la conversion du profit et de la marge dans la devise du dépôt spécifiée doivent être disponibles sur le compte, afin de garantir des tests appropriés.




  3. Suppression de l'interdiction d'utiliser OpenCL dans les agents de test. Auparavant, les périphériques OpenCL n'étaient autorisés que lors de tests sur les agents locaux. Désormais, les agents sont autorisés à utiliser tous les périphériques OpenCL disponibles (tels que le processeur, la carte vidéo) lorsqu'ils travaillent sur le réseau local.et dans le MQL5 Cloud Network.

MetaEditor

  1. Utilisation optimisée et accélétée du MQL5 Storage.
  2. Correction de la reprise du processus de débogage après une pause dans le fichier MQH.
  3. Correction de la mise en surbrillance du code source dans l'éditeur.
  4. Correction de la navigation dans les résultats de recherche.
  5. Correction de la fonction de remplacement massif de texte. Dans certains cas, seules les premières occurrences étaient remplacées.

La documentation a été mise à jour.