Voir comment télécharger gratuitement des robots de trading
Retrouvez-nous sur Telegram !
Rejoignez notre page de fans
Un script intéressant ?
Poster un lien vers celui-ci -
laisser les autres l'évaluer
Vous avez aimé le script ? Essayez-le dans le terminal MetaTrader 5
Vues:
89
Note:
(36)
Publié:
2025.04.04 10:53
\MQL5\Experts\fxsaber\ \MQL5\Include\fxsaber\MultiTester\
String.mqh (1.29 KB) afficher
Task.mqh (7.66 KB) afficher
MTTester.mqh (120.02 KB) afficher
MQL5 Freelance Besoin d'un robot ou d'un indicateur basé sur ce code ? Commandez-le sur Freelance Aller sur Freelance

Il arrive que vous ayez besoin d'exécuter le Conseiller Expert sur plusieurs symboles. Pour cela, il existe un mode "Tous les symboles sélectionnés dans la fenêtre Market Watch" dans le MT5-tester. Cela vous permet d'exécuter les mêmes paramètres d'EA sur différents symboles.


Mais parfois, vous avez besoin de faire plusieurs exécutions différentes du MT5-tester. Cette bibliothèque vous permet de le faire.


Caractéristiques.

Vous pouvez définir un nombre illimité de combinaisons de symboles, d'échéances, d'intervalles. Et effectuer non seulement des exécutions uniques sur ces combinaisons, mais aussi des optimisations, y compris à terme.


Scénarios.

  • Recherche des symboles et/ou des intervalles et/ou des échéances sur lesquels l'outil TS donne de bons résultats.
  • Réalisation d'optimisations sur des intervalles consécutifs afin d'évaluer les perspectives d'auto-optimisation du TS.


Utilisation.

Nous configurons MT5-Tester selon nos besoins.

L'image montre que l'optimisation sera effectuée par force brute sur des ticks réels à un certain intervalle.


Créez une liste des optimisations requises. Par exemple, vous pouvez exécuter un Expert Advisor à partir de la livraison de cette bibliothèque.

Avec les paramètres indiqués dans l'image, il exécutera l'optimisation sur tous les symboles du Market Watch, et pour chaque symbole, il optimisera sur les échéances M1 et M15.


Le résultat sera le suivant


Vous pouvez maintenant voir en toute sécurité les résultats de l'optimisation à l'aide des outils de test MT5 standard.


Programmation.

Exemple 1.

Considérons d'abord un exemple très simple.

    #include <fxsaber\MultiTester\MultiTester.mqh> // Plusieurs exécutions/optimisations dans le testeur.
    
    // Cette fonction est responsable de la génération de la liste des tâches..
    void SetTesterSettings()
    {
      TesterSettings.Add("AUDCAD"); // Lancer AUDCAD avec les paramètres spécifiés dans le Tester.
      
      TesterSettings.Add("EURUSD", PERIOD_H1); // Exécutez EURUSD H1 avec les paramètres spécifiés dans le Tester.
      
      TesterSettings.Add("GBPUSD", PERIOD_M6, D'2019.07.01', D'2019.09.01'); // Exécuter GBPUSD M6 sur l'intervalle spécifié.
    }

    Le résultat de l'exécution de cet EA sera trois appels du testeur avec les paramètres lus dans le code source.


    Exemple 2.

    Analysons le code source de l'Expert Advisor, dont la démonstration de lancement est donnée au début.

    #include <fxsaber\MultiTester\MultiTester.mqh> // Plusieurs exécutions/optimisations dans Tester.
    
    sinput bool Period_M1 = false;         // Allumer M1
    sinput bool Period_M5 = false;         // Allumer la M5
    sinput bool Period_M15 = false;        // Allumer le M15
    sinput bool  false; // Caractères personnalisés uniquement
    
    // Cette fonction est responsable de la génération de la liste des tâches.
    void SetTesterSettings()
    {
      // Recherche de tous les symboles dans le Market Watch.
      for (int i = SymbolsTotal(true) - 1; i >= 0; i--)
      {
        const string Name = SymbolName(i, true);
    
        if (!OnlyCustomSymbols || SymbolInfoInteger(Name, SYMBOL_CUSTOM))
        {
          if (Period_M1)
            TesterSettings.Add(Name, PERIOD_M1); // Si M1 est activé, ajouter chaque caractère avec ce TF.
    
          if (Period_M5)
            TesterSettings.Add(Name, PERIOD_M5); // Si M1 est activé, ajouter chaque caractère avec ce TF.
    
          if (Period_M15)
            TesterSettings.Add(Name, PERIOD_M15); // Si M15 est activé, ajouter chaque symbole avec ce TF.
    
          if (!Period_M1 && !Period_M5 && !Period_M15) // Si aucun TF n'est défini, lançons l'Expert Advisor sur le TF.
            TesterSettings.Add(Name);
        }
      }
    }

    Le deuxième exemple génère une liste de tâches basées sur les TFs et les symboles marqués dans le Market Watch. Une fois encore, examinons les commentaires dans le code source.


    Ainsi, tout ce que nous avons à faire est d'écrire cette chaîne de caractères

    #include <fxsaber\MultiTester\MultiTester.mqh> // Plusieurs exécutions/optimisations dans le testeur.


    et d'écrire une seule fonction qui génère des tâches de manière intuitive.

    // Cette fonction est responsable de la génération de la liste des tâches.
    void SetTesterSettings()


    Fonctionnalités.

    • Requiert l'autorisation d'utiliser une DLL. Plusieurs fonctions WinAPI de user32.dll sont appelées. Elles ne conviennent donc pas au marché à moins d'être contournées.
    • Le fichier MTTester.mqh fourni contient des méthodes de contrôle du MT5-tester, qui peuvent être utilisées dans d'autres projets.
    • Il est possible de reprendre une tâche à partir d'un endroit interrompu.

    Traduit du russe par MetaQuotes Ltd.
    Code original : https://www.mql5.com/ru/code/26132

    Pan PrizMA No leverage 72 Pan PrizMA No leverage 72

    Construit une ligne mobile avec un polynôme de 4 degrés. Extrapole la sinusoïde et son axe. Les lignes construites enlèvent une valeur à chaque barre et une ligne glissante de valeurs extrapolées est construite et n'est pas redessinée.

    Tendance MA 2 Tendance MA 2

    Système de trading par l'indicateur iMA (Moving Average, MA). Développement de la tendance MA.

    Affichage optimisé pour une sortie de texte graphique de type console Affichage optimisé pour une sortie de texte graphique de type console

    Cette bibliothèque vous permet de créer des affichages afin d'afficher facilement des informations textuelles sur le graphique à la vitesse la plus optimale.

    Panneau de suivi manuel des positions Panneau de suivi manuel des positions

    Panneau basé sur la classe CDialog. Travail sur le symbole actuel. Suppression, réglage du Take Profit, réglage du Breakeven sur un groupe de positions.