Documentation

Applications

Last updated on 21. 3. 2024 by Mark Fric

Test d'un nouvel indicateur dans SQ X par rapport aux données de MT

Test d'un nouvel indicateur dans SQ X par rapport aux données de MT

we just created (or we are in the process of developing) our new indicator. How do we know that we implemented it correctly?

Lorsque vous avez créé votre nouvel indicateur dans StrategyQuant et qu'il a été compilé avec succès, il faut également vérifier s'il fonctionne réellement de la même manière que dans MetaTrader - en d'autres termes, si les valeurs calculées par l'indicateur sont les mêmes que ses valeurs dans MT4.

 

Note – this article was a part of Envelopes indicator example, so it refers to the Envelopes indicator. But the description of Indicators testing is valid for any indicator implementation.

 

Pour cela, nous disposons d'un outil de test d'indicateurs dans l'éditeur de code. Il fonctionne simplement en comparant les valeurs calculées dans SQ avec les valeurs calculées dans MT4.

 

En général, il fonctionne en quelques étapes simples :

  1. Utiliser un script d'aide pour calculer et exporter les données de l'indicateur dans MetaTrader
  2. Copier les fichiers de données calculées à l'endroit approprié pour que le SQ puisse les trouver.
  3. Configurer et exécuter un test d'indicateur dans SQ

Utiliser un script d'aide pour calculer et exporter les données de l'indicateur dans MetaTrader

La première étape consiste à préparer les données de test de MT4 - nous devons calculer l'indicateur sur un certain nombre de barres et enregistrer les valeurs calculées dans un fichier.

Pour ce faire, nous fournissons un EA simple que vous pouvez utiliser - il se trouve à l'adresse suivante {SQ}/custom_indicators/MetaTrader4/Experts/SqIndicatorValuesExportEA.mq4

 

Ajoutez cet EA à votre MetaTrader, modifiez-le pour calculer la valeur de sortie de votre indicateur et exécutez-le dans MT4 StrategyTester sur n'importe quelles données - pour faire un test optimal, il devrait être exécuté sur au moins 1000 barres.

 

Comme Envelopes possède deux tampons de sortie, nous devons l'exécuter deux fois - une fois pour le tampon supérieur et une fois pour le tampon inférieur.

Voici un code modifié de ce script d'aide à l'exportation qui calcule l'indicateur Enveloppes :

//+------------------------------------------------------------------+
//|                                   SQ_IndicatorValuesExportEA.mq4 |
//|                                                                  |
//|                    EA to export indicator values from MetaTrader |
//|                Output to: /{Data folder}/tester/files/******.csv |
//+------------------------------------------------------------------+

#property copyright "Copyright © 2019 StrategyQuant"
#property link      "https://strategyquant.com"

string currentTime = "";
string lastTime = "";

//+------------------------------------------------------------------+

int start() {
   currentTime = TimeToStr(Time[1], TIME_DATE|TIME_MINUTES|TIME_SECONDS);
   if(currentTime == lastTime) {
      return(0);
   }
   
   double value;

   // change the file name below
   string fileName = "Envelopes_14_0_0_0_0.1_upper.csv";

   int handle = FileOpen(fileName, FILE_READ | FILE_WRITE, ";");
   if(handle>0) {
      FileSeek(handle,0,SEEK_END);

      // here is the indicator value 
      value = iEnvelopes(NULL, 0 , 14 , 0 , 0 , 0 , 0.1 , 1 , 1); // upper value
      //value = iEnvelopes(NULL, 0 , 14 , 0 , 0 , 0 , 0.1 , 2 , 1); // lower value
      
      FileWrite(handle, TimeToStr(Time[1], TIME_DATE|TIME_MINUTES|TIME_SECONDS), Open[1], High[1], Low[1], Close[1], Volume[1], value);
      FileClose(handle);
   }

   lastTime = currentTime;
   return(0);
}

il calculera l'indicateur Envelopes sur MT4 en appelant sa méthode interne iEnvelopes() avec les paramètres appropriés.

Veuillez noter que les paramètres peuvent être configurés - vous n'avez pas besoin d'utiliser les paramètres par défaut. Il est conseillé d'inclure les valeurs des paramètres dans le nom du fichier de données de sortie - comme dans notre cas "Enveloppes_14_0_0_0_0.1_upper.csv", afin que nous sachions qu'il a été généré avec ces paramètres.

Nous pouvons maintenant exécuter ce script deux fois dans MT Tester :

Une fois terminé, il devrait créer un fichier de données avec les valeurs calculées de l'indicateur ainsi que les prix de l'ouverture, de la hausse, de la baisse et de la clôture pour chaque barre. Le fichier sera sauvegardé dans MetaTrader4 -> {Dossier de données}/tester/fichiers/votre_nom_de_fichier.csv


Nous devrions y trouver deux fichiers :
Envelopes_14_0_0_0_0.1_upper.csv
Envelopes_14_0_0_0_0.1_lower.csv

 

Copier les fichiers de données calculées à l'endroit approprié pour que le SQ puisse les trouver.


Copiez ces fichiers dans un dossier
{Installation SQ}/tests/Indicateurs/MetaTrader4

Créez ce dossier s'il n'existe pas, SQ Indicaotrs Tester recherche des fichiers dans ce dossier.

Maintenant que nous avons préparé le fichier de données, lançons un test dans StrategyQuant.

 

Configurer et exécuter un test d'indicateur dans SQ

Allez dans l'éditeur de code et cliquez sur Test indicators (indicateurs de test) dans la barre d'outils.

La boîte de dialogue du testeur d'indicateurs s'ouvre, cliquez sur Ajouter un nouveau test. Ajouter des indicateurs d'enveloppes au test, pour les sorties supérieure et inférieure.

Vous le verrez dans le tableau suivant. La dernière chose que nous devons faire est de modifier l'élément Nom du fichier de testen fonction des noms des fichiers de données d'essai créés à l'étape précédente et, éventuellement, en fonction des noms des fichiers de données d'essai créés à l'étape précédente. Paramètres d'essaisi vous avez utilisé d'autres options que celles par défaut :

Lorsque c'est fait, cliquez sur Démarrage pour exécuter les tests.

Dans le cas idéal, les tests seront réussis et les valeurs calculées dans SQ correspondront aux valeurs calculées dans MT4 :

Si quelque chose ne fonctionne pas, il y aura des différences entre les valeurs de SQ et de MT4. Vous pouvez cliquer sur les différences pour les voir dans la liste :

Si le test échoue, vérifiez d'abord si les données de test générées dans MT4 utilisaient les mêmes paramètres d'indicateur, car il peut y avoir une erreur.

Si les données de test sont correctes, il y a quelque chose qui ne va pas dans l'implémentation SQ de votre indicateur - il fonctionne différemment de son homologue MT4 et doit être corrigé.

 

Cet article a-t-il été utile ? L'article était utile L'article n'était pas utile

S'abonner
Notification pour
0 Commentaires
Commentaires en ligne
Afficher tous les commentaires

Postes connexes