Bibliothèque: MultiTester - page 49

 
fxsaber #:
Êtes-vous sûr d'utiliser la version actuelle de MTTester.mqh ? Le code suivant s'y trouve.

Je me souviens avoir mis à jour la dernière version, mais je ne sais pas pourquoi j'ai oublié de mettre à jour ce fichier. Tout fonctionne bien maintenant.

 
день !

"La vie est belle", "La vie est belle", "La vie est belle", "La vie est belle", "La vie est belle", "La vie est belle", "La vie est belle", "La vie est belle", "La vie est belle", "La vie est belle", "La vie est belle", "La vie est belle", "La vie est belle", "La vie est belle".
Выдается ошибка :
la conversion du paramètre 'short[260]' en 'ushort[] &' n'est pas autorisée MTTester.mqh 156 39
int user32::GetClassNameW(long,ushort&[],int) winuser.mqh 1414 37

Может быть что-то нужно поменять в MTTester.mqh ?

Ранее он прекрасно компилировался.

Не могли бы помочь ?

С уважением, Александр
Dossiers :
_Noc.mq5  62 kb
 
klycko #:
Le script ci-joint a cessé de se compiler.

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégies de trading.

Bibliothèques : MultiTester

fxsaber, 2025.06.08 16:57

Dans KB, je télécharge les sources uniquement en cliquant sur le fichier correspondant, comme dans l'image.

Je l'ai téléchargé de cette façon pour vérifier - compilé sans erreurs.

 
fxsaber #:

Merci beaucoup !

Tout fonctionne à nouveau !

 

Téléchargé comme indiqué dans l'image ci-dessus mais erreur dans cmopile

Mttester.mqh compiled error pls check for new build MT5 V5 BULD 5142


ERRROS :


La conversion du paramètre 'short[260]' en 'ushort[] &' n'est pas autorisée MTTester.mqh 135 39

ReadFile' - aucune des surcharges ne peut être appliquée à l'appel de fonction MTTester.mqh 1283 21


 
dave365 #:

Téléchargé comme indiqué dans l'image ci-dessus mais erreur dans cmopile

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégies de trading

Bibliothèques : MultiTester

fxsaber, 2025.06.12 14:55

La taille de la version actuelle du fichier MTTester.mqh est actuellement de 123 822 octets.

 

Bonjour @fxsaber

J'espère que vous allez bien.

Je suis votre travail sur le multitester. J'ai lu les exemples et la description de la bibliothèque sur la façon de l'utiliser mais je ne suis pas en mesure de savoir comment elle sera utilisée.

J'ai l'EA que j'ai écrit pour tester/optimiser un inidcateur sur 9 symboles. J'ai implémenté le code comme suit dans un EA.

//+------------------------------------------------------------------+
//|MultiTesterBase.mq5 |
//|Copyright 2025, MetaQuotes Ltd. |
//| https ://www.mql5.com
//+------------------------------------------------------------------+
#property copyright "Copyright 2025, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"

#include <fxsaber\MultiTester\MultiTester.mqh>

#define  EA_NAME "IndicatorTesting\\EAs\\ash_indicator_testing.ex5"

// cette fonction est responsable de la génération de la liste des tâches
void SetTesterSettings()
{
   TesterSettings.Add(EA_NAME, "EURUSD", PERIOD_CURRENT);
   TesterSettings.Add(EA_NAME, "AUDNZD", PERIOD_CURRENT);
   TesterSettings.Add(EA_NAME, "EURGBP", PERIOD_CURRENT);
   TesterSettings.Add(EA_NAME, "AUDCAD", PERIOD_CURRENT);
   TesterSettings.Add(EA_NAME, "CHFJPY", PERIOD_CURRENT);
   TesterSettings.Add(EA_NAME, "CADSGD", PERIOD_CURRENT);
   TesterSettings.Add(EA_NAME, "BTCUSD", PERIOD_CURRENT);
   TesterSettings.Add(EA_NAME, "XAUUSD", PERIOD_CURRENT);
   TesterSettings.Add(EA_NAME, "US500", PERIOD_CURRENT);
}
//+------------------------------------------------------------------+

Mais je ne sais pas quoi faire ensuite car je veux optimiser les paramètres par rapport aux symboles donnés, dans le testeur j'ai du sélectionner l'ea ash_indicator_testing, car si je ne le fais pas je n'aurai pas les paramètres d'optimisation. Après avoir fait cela, j'ai appliqué l'extrait de code collé ci-dessus, c'est à dire (multitester ea) sur le graphique ! Je n'ai pas pu trouver suffisamment d'informations sur l'utilisation de ce logiciel.

Je vous prie de bien vouloir me guider à ce sujet.

Merci de votre compréhension.

 
Hafiz Tamur Ahmed #:

Veuillez m'indiquer

Historiquement, MultiTester.mqh n'est pas utilisé pour écrire des interactions avec Tester, car il utilise un modèle d'événement, qui est trop complexe. Je recommande donc d'utiliser une approche différente - via MTTester.mqh.


Voici un bon exemple.

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégies de trading.

Bibliothèques : MultiTester

fxsaber, 2024.01.17 12:13 AM

#include <fxsaber\MultiTester\MTTester.mqh>    // https://www.mql5.com/fr/code/26132

#define _CS(A) ((!IsStopped()) && (A))
#define  PAUSE 200

void Run( const string Settings )
{
  while (_CS(!MTTESTER::IsReady()))
    Sleep(PAUSE);

  MTTESTER::CloseNotChart();
    
  if (_CS(MTTESTER::SetSettings2(Settings)))
    MTTESTER::ClickStart(false);

  while (_CS(!MTTESTER::IsReady()))
    Sleep(PAUSE);
}

void OnStart()
{
  string Settings[] = {"[Tester]\n" +
                       "Expert=Input_String_Example_Alternative.ex5\n" +
                       "Symbol=EURUSD\n" +
                       "Period=M1\n" +
                       "Optimization=2\n" +
                       "Model=4\n" +
                       "FromDate=2023.01.01\n" +
                       "ToDate=2024.01.01\n" +
                       "ForwardMode=0\n" +
                       "Deposit=1000000000\n" +
                       "Currency=USD\n" +
                       "ProfitInPips=1\n" +
                       "Leverage=100\n" +
                       "ExecutionMode=0\n" +
                       "OptimizationCriterion=6\n" +
                       "[TesterInputs]\n" +
                       "inAmount=1||1||1||10||N\n" +
                       "inCount=2||2||1||20||N\n" +
                       "inPeriod=3||3||1||30||N\n" +
                       "inKoef=4.56||4.56||0.456000||45.600000||N\n" +
                       "inLog=7.89||7.89||0.789000||78.900000||N\n" +
                       "inFlag=true||false||0||true||N"
                      };

  for (uint i = ArraySize(Settings); (bool)i--;)
    Run(Settings[i]);
}

Les paramètres du testeur sont sauvegardés via CTRL+C/V. Vous pouvez les sauvegarder dans des fichiers séparés et ensuite remplir le tableau Settings[] dans la source ci-dessus avec des données provenant de ces fichiers.


Autre exemple.

Optimize EA over a time window
Optimize EA over a time window
  • 2025.06.30
  • Maker
  • www.mql5.com
Is it possible to make the Strategy Tester to Optimize EA running it automatically multiple times over a range of time windows...
 

Merci pour la réponse mais je n'arrive pas à comprendre l'implémentation dans l'EA contrôleur, comme par exemple comment il doit être implémenté et comment il doit être utilisé ! appliquer sur le graphique ou être utilisé dans le testeur. En effet, j'ai lu le forum mais je n'ai pas vu de pop up apparaître ou quoi que ce soit de ce genre, la seule chose qui s'est produite de mon côté lorsque j'ai appliqué l'EA contrôleur sur mon graphique est une ligne indiquant l'attente du testeur et ce qui est en train d'être réalisé, et le testeur de stratégie en dessous clignotant constamment. Je n'ai pas pu faire quoi que ce soit avec le testeur !

Ce serait bien si un guide complet de bout en bout était fourni dans les documents de la bibliothèque afin qu'il soit facile pour les nouveaux venus comme moi de comprendre et de mettre en œuvre les choses en fonction de leurs scénarios !

Best Regards

CC : @fxsaber

 
Obtenir le nombre de tics d'un mois calendaire d'une manière non standard.
#include <fxsaber\MultiTester\MTTester.mqh> // https://www.mql5.com/fr/code/26132

#define  PRINT(A) Print(#A + " = " + (string)(A));

void OnStart()
{
  MqlTick Ticks[];
  
  // Nombre de ticks pour un mois calendaire de manière régulière.
  PRINT(CopyTicksRange(_Symbol, Ticks, COPY_TICKS_ALL, D'2025.08.01' * 1000, D'2025.09.01' * 1000 - 1));
  
  // Le nombre de tics par mois calendaire d'une manière non standard.
  PRINT(MTTESTER::GetAmountFileMonthTicks(D'2025.08.01'));
}


Résultat.

CopyTicksRange(_Symbol, Ticks, COPY_TICKS_ALL, D'2025.08.01' * 1000, D'2025.09.01' * 1000 - 1) = 10820615
MTTESTER::GetAmountFileMonthTicks(D'2025.08.01') = 10820615