Enter topic text here.TesterStatistics

Retourne la valeur du paramètre statistique indiqué, calculée d'après les résultats du test

double  TesterStatistics(
   ENUM_STATISTICS statistic_id      // l'identificateur
   );

Paramètres

statistic_id

[in]   L'identificateur du paramètre statistique de l'énumérationENUM_STATISTICS.

Valeur de Retour

La valeur du paramètre statistique des résultats du test.

Note

La fonction peut être appelée depuis OnTester () ou OnDeinit () dans le testeur. Dans d'autres cas, le résultat est indéfini.

Exemple :

// L'EA basé sur le fichier standard "MACD Sample.mq5"
// affiche le résultat de TesterStatistics() dans le gestionnaire d'événements Tester
#define MACD_MAGIC 1234502
//---
#include <Trade\Trade.mqh>
#include <Trade\SymbolInfo.mqh>
#include <Trade\PositionInfo.mqh>
#include <Trade\AccountInfo.mqh>
//---
input double InpLots          =0.1// Lots
input int    InpTakeProfit    =50;  // Take Profit (en pips)
input int    InpTrailingStop  =30;  // Niveau du Trailing Stop (en pips)
input int    InpMACDOpenLevel =3;   // Niveau d'ouverture du MACD (en pips)
input int    InpMACDCloseLevel=2;   // Niveau de clôture du MACD (en pips)
input int    InpMATrendPeriod =26;  // Période de la tendance de la MA
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit(void)
  {
//--- crée tous les objets nécessaires
   if(!ExtExpert.Init())
      return(INIT_FAILED);
//--- initialisation réussie
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Fonction de gestion d'un nouveau tick                            |
//+------------------------------------------------------------------+
void OnTick(void)
  {
   static datetime limit_time=0// heure du dernier appel en tenant compte du 'timeout' 
//--- si l'heure dépasse la valeur limit_time spécifiée
   if(TimeCurrent()>=limit_time)
     {
      //--- vérifie les données
      if(Bars(Symbol(),Period())>2*InpMATrendPeriod)
        {
         //--- en cas de succès, augmente limit_time de 'timeout' secondes
         if(ExtExpert.Processing())
            limit_time=TimeCurrent()+ExtTimeOut;
        }
     }
  }
//+------------------------------------------------------------------+
//| Fonction de gestion du testeur                                   |
//+------------------------------------------------------------------+
double OnTester(void)
  {
   double ret=TesterStatistics(STAT_PROFIT_FACTOR);
   double profit=TesterStatistics(STAT_PROFIT);
   int    trades_total=(int)TesterStatistics(STAT_TRADES);
   int    profit_total=(int)TesterStatistics(STAT_PROFIT_TRADES);
   int    loss_total=(int)TesterStatistics(STAT_LOSS_TRADES);
   PrintFormat("%s: Profit = %.2f, trades total: %lu, profit trades total: %lu, loss trades total: %lu, profit factor: %.2f",__FUNCTION__,profit,trades_total,profit_total,loss_total,ret);
   return(ret);
   /*
  Résultat :
   OnTesterProfit = 209.84trades total13profit trades total11loss trades total2profit factor3.02
   final balance 10209.84 USD
   OnTester result 3.020606644198363
   */
  }