Documentation
Applications
Dernière mise à jour le 21. 3. 2024 par Mark Fric
Test d'un nouvel indicateur dans SQ X par rapport aux données de MT
Contenu des pages
Test d'un nouvel indicateur dans SQ X par rapport aux données de MT
nous venons de créer (ou nous sommes en train de développer) notre nouvel indicateur. Comment savoir si nous l'avons mis en œuvre correctement ?
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 - cet article fait partie de Exemple d'indicateur d'enveloppesIl s'agit donc de l'indicateur Enveloppes. Mais la description des tests d'indicateurs est valable pour n'importe quelle implémentation d'indicateur.
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 :
- Utiliser un script d'aide pour calculer et exporter les données de l'indicateur dans MetaTrader
- Copier les fichiers de données calculées à l'endroit approprié pour que le SQ puisse les trouver.
- 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 | | SQ_IndicatorValuesExportEA.mq4
//| |
//| EA pour exporter les valeurs d'indicateurs depuis MetaTrader.
//| Sortie vers : /{Dossier de données}/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) ;
}
valeur double ;
// modifiez le nom du fichier ci-dessous
string fileName = "Enveloppes_14_0_0_0_0.1_upper.csv" ;
int handle = FileOpen(fileName, FILE_READ | FILE_WRITE, " ;") ;
if(handle>0) {
FileSeek(handle,0,SEEK_END) ;
// voici la valeur de l'indicateur
value = iEnvelopes(NULL, 0 , 14 , 0 , 0 , 0 , 0.1 , 1 , 1) ; // valeur supérieure
//valeur = iEnvelopes(NULL, 0 , 14 , 0 , 0 , 0 , 0.1 , 2 , 1) ; // valeur inférieure
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





