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

Mises à jour : MetaTrader 5

17 septembre 2020

Terminal

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

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



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



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



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



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

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



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

MQL5

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

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

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

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

    • SYMBOL_SECTOR
    • SYMBOL_INDUSTRY

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

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

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

Tester

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

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

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



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



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

MetaEditor

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

La documentation a été mise à jour.