Indicator Test Report MT4
- Utilitaires
-
Narayanan Mohanan Mohanan Krishnan
Je construis des outils de mesure pour MetaTrader. Ils décrivent ce que le marché a fait et énoncent les limites de chaque mesure plutôt que de les dissimuler. - Version: 3.10
Indicator Test Report pour MetaTrader 4 - un vérificateur de repaint MT4 et un testeur d'indicateur qui montre comment n'importe quel indicateur se comporte réellement
Vous ne pouvez pas voir l'intérieur d'un indicateur compilé. Le rapport de test d'indicateur charge n'importe quel indicateur (acheté, écrit ou intégré à MetaTrader) et répond à la question qu'une description ne peut pas : fait-il du repaint, de quelle quantité d'historique a-t-il besoin et que publie-t-il réellement ? Il rapporte le comportement. Cela ne donne pas de note.
Chargez n'importe quel indicateur dans Strategy Tester et obtenez un rapport en langage clair sur douze aspects de son comportement : combien de tampons il publie, combien d'historique il a besoin avant que ses valeurs aient un sens, si les valeurs des barres fermées changent par la suite et combien coûte la lecture.
Il n’y a pas de score, pas de note de passage et pas de verdict quant à la qualité d’un indicateur – seulement ce qui a été observé, et ce qu’il prouve et ce qu’il ne prouve pas.
Ce à quoi il répond
1. Tampons.Combien de séries de données numérotées l’indicateur publie réellement et l’indice le plus élevé qui répond. C'est souvent plus que ce que montre le graphique : un indicateur à deux lignes peut publier six tampons, et une lecture EA par index a besoin du nombre réel. Lorsque les indices ne sont pas contigus, le rapport le précise : une indexation par comptage donnerait la mauvaise série.
2. État du calcul.Combien de barres la cible a calculées par rapport au nombre existant. Zéro avec des tampons remplis est un état réel et nommé, pas une erreur.
3. Stabilité à barre fermée.La première valeur vue pour chaque barre est figée, puis comparée à chaque lecture ultérieure. Si une valeur sur une barre déjà fermée change par la suite, le rapport donne l'heure de la barre, l'index du tampon et les deux valeurs. Une barre de courant en mouvement ne consiste pas à faire du repaint — le recalcul de la barre de formage est correct et souhaitable. Ce qui compte, c'est une barre fermée dont la valeur change par la suite.
4. Échauffement.Le nombre de barres dont chaque tampon a besoin avant de contenir une quelconque valeur, mesuré au niveau des barres les plus anciennes disponibles plutôt que dans la fenêtre récente où chaque réponse serait nulle. Les tampons diffèrent légitimement : une ligne de signal a besoin de plus d'historique que la série qu'elle lisse. Les cinquante premières barres de votre graphique n’ont peut-être pas encore de sens.
5. Le signal intrabar scintille.Si la barre de formage clignote entre vide et un signal numérique avant de se fermer. Normal pour un indicateur de signal ; il est important que votre EA agisse sur la barre de formage.
6. Coût d’accès au tampon.Le coût en microsecondes de récupération des valeurs, par barre, afin que vous puissiez budgétiser un EA qui lit plusieurs valeurs par tick. Chiffres relatifs pour comparer les indicateurs, pas de nombres VPS absolus.
7. Domaine de sortie.Valeur la plus petite et la plus grande émise par chaque tampon, à seize décimales près — pour dimensionner les seuils dans une EA. Il s’agit de la plage observée, jamais de la plage possible.
8. Persistance du signal.Pour les flèches, points et drapeaux : si une valeur apparaissait sur la barre de formage, était-elle toujours là à la clôture ? Les lignes continues obtiennent un score de 100 % par construction et sont marquées comme telles, car ce nombre est arithmétique plutôt qu'un résultat.
9. Valeurs non numériques.Indique si un tampon a émis une valeur qui n'est pas un nombre. Chaque comparaison avec un NaN est fausse – y compris supérieure et inférieure –, de sorte qu'un test de seuil ne se déclenche jamais et ne signale aucune erreur, et toute arithmétique touchant celle-ci produit à son tour NaN. Il s'agit d'un défaut de la cible, et il est invisible pour un garde écrit contre EMPTY_VALUE seul.
10. Tracer l'empreinte de l'objet.Combien d'objets graphiques sont apparus pendant l'exécution de la cible et, sur un graphique en direct, combien étaient encore là après sa suppression. Les indicateurs de panneau, de zone et de tableau de bord sont dessinés avec des objets plutôt que des tampons, donc pour ces produits, une vérification sur deux mesure la moitié vide. Un indicateur qui ne nettoie pas laisse des débris que vous éliminez à la main.
11. Dépendance au modèle.Exécutez deux fois avec seul le modèle de testeur modifié. Chaque tick et 1-Minute OHLC sont des trajectoires de prix simulées différentes, de sorte qu'un indicateur qui réagit délibérément au mouvement intrabar peut légitimement différer. Cela est important lorsque la cible revendique les valeurs à barre fermée comme définitives.
12. Dépendance historique.Exécutez deux fois avec seule la plage de dates modifiée. Une différence signifie que la cible rapporte des valeurs différentes pour la même barre en fonction de l'historique qui l'a précédée – le défaut qui fait qu'un backtest n'est pas d'accord avec un graphique en direct.
Essayez-le sur quelque chose que vous connaissez déjà
Il lit tout ce qui est accessible via iCustom, y compris les propres indicateurs de MetaTrader. Pointez-le sur ZigZag : tout le monde connaît les repaints ZigZag, et le rapport vous montrera les barres qui ont changé ainsi que les deux valeurs. Pointez-le vers Ichimoku et observez les deux travées décalées dans le futur se comporter différemment des trois qui ne le sont pas. Vérifier l'outil par rapport à un indicateur dont vous connaissez déjà le comportement est le moyen le plus rapide de décider de lui faire confiance ou non sur celui que vous venez d'acheter - et cela ne coûte rien.
Comment cet outil a été testé
Chaque vérification a été vérifiée par rapport à des indicateurs spécialement conçus qui se comportent délibérément mal : un qui réécrit chaque barre de son historique à chaque tick, un qui émet des valeurs non numériques, un qui nécessite 399 barres d'échauffement, un qui laisse les objets du graphique derrière lui lorsqu'il est supprimé. Les contrôles les ont rattrapés, avec les horaires de bar et les valeurs avant et après. Un outil qui rend compte des indicateurs d'autres personnes devrait être capable de dire lui-même comment il a été testé.
Les moteurs fonctionnent également les uns contre les autres. Le même indicateur mesuré sur MetaTrader 4 et MetaTrader 5 concorde sur dix des douze contrôles ; les deux qui diffèrent sont des faits sur la plateforme, étiquetés dans le rapport – MetaTrader 4 n'a pas BarsCalculated et aucun moyen de décharger un indicateur plus tôt, de sorte que ces contrôles indiquent ce qu'ils n'ont pas pu mesurer plutôt que de rapporter un zéro confortable.
Si vous écrivez des indicateurs plutôt que de les acheter
Le même rapport répond à une question différente : que fait réellement mon propre produit, et puis-je le dire dans la description ? L'affirmation selon laquelle les valeurs à barre fermée sont définitives vaut plus en ce qui concerne le nombre de comparaisons qui se cachent derrière - et il est préférable de trouver un repaint vous-même plutôt que de la laisser un critique la trouver.
Exécutez-le sur les deux plates-formes et la paire vous montrera où vos builds MT4 et MT5 divergent : différents nombres de tampons, un échauffement qui a bougé, une valeur qui change sur l'un et pas sur l'autre. Cette divergence vous parvient normalement sous la forme d’une évaluation d’une étoile de la part de quelqu’un qui a acheté les deux.
L'extrait généré est la documentation d'intégration que vous écririez autrement à la main : chaque tampon nommé, avec son échauffement, sa plage et s'il est vide. Expédiez-le ou collez-le dans votre propre description. Il s'agit du comportement de votre produit, mesuré, et non d'une allégation.
Ce qu'il ne fait pas
Il ne vous dira pas si un signal présente un avantage, si un indicateur vaut la peine d'être acheté ou si une stratégie est rentable. Il ne note pas, ne note pas et ne classe pas. Il ne lit pas le code source, mais uniquement un comportement observable via l'interface tampon documentée. Il exécute la cible sur ses propres entrées par défaut.
Une constatation n’est pas une faute
Repeindre, un long échauffement, un mouvement intrabarre et des objets graphiques sont des choix de conception, et de nombreux bons indicateurs les font délibérément. Cet outil mesure ce qui s'est passé ; seule la propre description du vendeur peut indiquer si cela était prévu. Chaque rapport porte cette phrase, et une autre : si quelque chose vous surprend, demandez au développeur. Un rapport est une bonne question à poser à un vendeur. Ce n’est pas une preuve à publier contre eux, et elle n’a pas été conçue pour l’être.
Un résultat propre n’est pas une preuve
Chaque rapport de test d’indicateur le dit dans son propre texte. Une exécution représente un symbole, un calendrier, une période, un modèle de testeur. Le rapport indique quelles vérifications une exécution donnée n'a pas pu tester — une exécution avec trop peu de ticks ne peut pas tester le comportement intrabar, et il le dit plutôt que de signaler un zéro confortable. L’absence d’observation ne constitue pas une preuve d’absence.
Chaque rapport se termine par un résumé sur un écran des douze contrôles, ainsi qu'un tableau de chaque exécution précédente sur la même cible, de sorte que plusieurs exécutions dans des conditions différentes peuvent être lues comme un ensemble.
Entrées
- Nom de l'indicateur— la cible, exactement telle qu'elle apparaît dans le Navigateur, y compris son dossier. Un produit Market se trouve sous Market\ et son propre nom ; les échantillons MetaTrader sous Examples\. Se tromper est la seule erreur qui stoppe la progression, et le rapport le dit en langage clair plutôt que d’échouer silencieusement.
- Attendez d'abord autant de mesures— le rapport ne démarre pas tant que le graphique ne contient pas autant d'historique. Par défaut 500.
- Bars fermés à surveiller pour le repaint- jusqu'où chaque tick relit et compare. Il s'agit de la profondeur du contrôle 3. Par défaut 300.
- De nouvelles barres à surveiller avant de signaler — la taille de l’échantillon.L'exécution se termine après la fermeture de ce nombre de barres, donc un nombre plus petit est un test plus faible, pas un raccourci. Par défaut 200.
- Historique maximum à sonder pour l'échauffement— jusqu'où chercher la première valeur réelle sur chaque tampon. Par défaut 10 000.
- Tolérance pour les contrôles numériques de repaint— en dessous, une différence est traitée comme du bruit en virgule flottante plutôt que comme un changement. Échelle avec l'ampleur des valeurs, de sorte qu'une série de prix et une série de volumes sont jugées selon les mêmes termes. Par défaut 0.00000001.
- Ligne de base : Auto/Verrouillage/Réinitialisation- décide à quoi se compare une deuxième manche. Auto est ce que la plupart des gens entendent par exécuter une cible deux fois : la première exécution définit la référence et les exécutions ultérieures comparent sans la remplacer. Automatique par défaut.
- Exécuter l'étiquette- comment déclarer ce que vous avez modifié entre deux exécutions. MetaTrader ne donne aucun moyen au programme de voir quel modèle de testeur est en cours d'exécution, donc l'étiquette est le seul moyen par lequel le rapport peut distinguer un changement de modèle d'une répétition.
- Nom d'affichage cible— un nom lisible pour l'en-tête du rapport. Le chemin du fichier est toujours affiché à côté, car un nom d'affichage ne doit jamais remplacer l'identité de ce qui a été mesuré.
- Écrivez un extrait d'EA prêt à l'emploi- activé par défaut. Désactivez-le si vous souhaitez uniquement le rapport.
- Préfixe du fichier de sortie- permet à deux exécutions sur la même cible d'écrire dans des fichiers séparés au lieu de partager un seul résumé.
Ce que montrent les captures d'écran
- L'instantané.Les douze contrôles sur un seul écran : chaque exécution se termine par ce bloc, quel que soit le contenu du rapport.
- Un constat.Une barre fermée dont la valeur a changé, avec le temps de la barre et les deux valeurs. C'est à cela que sert l'outil ; le reste est une question de contexte.
- Les deux plateformes.Le même indicateur mesuré sur MetaTrader 4 et MetaTrader 5, les deux rapports peuvent donc être comparés ligne par ligne.
- Un refus honnête.Une exécution qui n'a pas pu tester quelque chose et qui le dit, au lieu d'imprimer un zéro qui se lirait comme une réussite.
- L'extrait généré.Le .mqh fichier que l'exécution écrit, avec chaque tampon nommé et une fonction de lecture déjà écrite.
Lire les captures d'écran
L'ambre n'est pas rouge.Un verdict orange signifieun comportement a été constaté et voici la preuve, pascet indicateur est cassé. Le repaint, un long échauffement et les objets graphiques sont des choix de conception, et de nombreux bons indicateurs les font délibérément - le rapport vous donne le temps de barre et les deux valeurs afin que vous puissiez en parler au développeur, ce que cette page vous demande de faire.
Les verdicts bleus sont ceux qui méritent d’être compris. [NOT TESTED] et [NOT FOUND] Cela signifie que l'analyse n'a pas pu mesurer quelque chose : trop peu de ticks ou un scan qui a atteint son plafond. Ce ne sont pas des laissez-passer. La plupart des outils y imprimeraient un zéro confortable ; celui-ci vous indique que la question n'a pas reçu de réponse, ce qui fait la différence entre une mesure et une réassurance.
L'image de parité montre le même indicateur mesuré sur les deux plateformes afin que les deux rapports puissent être comparés ligne par ligne. Le résultat montré dans les images provient d'un indicateur de test délibérément cassé, écrit à cet effet, et non d'un produit sur le marché.
À propos des captures d'écran.Chaque image est capturée à partir d'une exécution réelle : les rapports sont les fichiers écrits par l'outil, et non des maquettes. Ces images sont capturées sur MetaTrader 4, car deux des douze contrôles y sont légitimement lus différemment et afficher le résultat de MetaTrader 5 dans une liste MetaTrader 4 le dénaturerait. L'image de parité montre les deux plateformes côte à côte sur le même indicateur : dix des douze contrôles sont identiques, et les deux qui diffèrent sont nommés dans le rapport. Ces deux éléments dépendent de ce que la PLATEFORME peut fournir, et non du soin avec lequel le portage a été écrit : MQL4 n'a pas de BarsCalculated fonction, et aucun moyen de décharger un indicateur plus tôt. Rien n'a été oublié dans la version de MetaTrader 4 : il rapporte tout ce que MetaTrader 4 est capable de rapporter, et le dit là où il ne le peut pas. Cet outil est conçu pour indiquer ce qu’il n’a pas pu mesurer, et cela s’applique d’abord à sa propre liste.
Sortir
Un rapport texte, une référence CSV pour la comparaison entre exécutions et un résumé cumulatif (une ligne par exécution) écrit dans le dossier Fichiers partagé afin qu'ils survivent entre les exécutions. Chaque valeur différente est écrite dans son propre CSV lorsqu'une comparaison en trouve une.
Et un extrait de code prêt à l'emploi : un fichier compilable .mqh nommer chaque tampon actif, son échauffement, sa plage observée et s'il devient vide - avec une fonction de lecture déjà écrite pour la plate-forme sur laquelle vous avez exécuté. C'est ce que l'appelant découvrirait autrement par un procès. Si l'exécution a trouvé des modifications à barre fermée ou des valeurs NaN, l'extrait l'indique en haut et pointe son exemple vers un tampon sans aucune recherche à ce sujet.
Crédit là où il est dû
L'approche de lecture de tampon suitTesteur d'indicateurs personnaliséspar Piotr Latoszynski, gratuit sur le marché depuis 2020. La méthode de gel et de comparaison pour détecter les valeurs modifiées des barres fermées a été décrite par Brahim Ben Abla dans le post mql5.com 772704 (17 juillet 2026), avec des chiffres réels ; la méthode lui appartient, seule l'expédition m'appartient.
Ce qui diffère sur MetaTrader 4
Dix des douze contrôles se lisent de manière identique à la construction de MetaTrader 5 sur le même indicateur. Deux ne peuvent pas : MQL4 n'a pas BarsCalculated, donc l'état de calcul est une sonde empirique et est étiqueté[PROXY MT4]; et MQL4 ne peut pas décharger un indicateur plus tôt, donc la question de nettoyage de l'objet graphique reçoit une réponse uniquement sur un graphique en direct et se lit[NON TESTÉ]dans le testeur de stratégie. Les deux sont nommés dans le rapport plutôt que masqués. Il ne s'agit pas non plus d'une limitation de cet outil ni d'un raccourci dans le port : il s'agit de la capacité de MetaTrader 4 lui-même, et le rapport indique lequel des deux il examine plutôt que de rapporter un zéro confortable.
Remarques
- Il s'agit d'un conseiller expert qui rédige un rapport. Il ne négocie jamais.Il ne passe aucun ordre, n'ouvre et ne ferme aucune position et ne touche à rien à votre compte : il lit un indicateur et écrit des fichiers texte.
- L'AutoTrading doit être activé.MetaTrader bloque chaque Expert Advisor derrière cette autorisation, qu'il négocie ou non, donc avec le bouton éteint, le terminal arrête d'appeler le programme et vous ne verrez aucun rapport ni aucune erreur. Attachez-le à un compte démo si vous préférez ne pas l'activer sur un compte réel ; le résultat est identique, car rien ici ne dépend du compte.
- S'exécute dans le Strategy Tester et sur un graphique en direct où une vérification nécessite de vrais ticks. Lit la cible à travers le documenté iCustom interface.
- Certaines cibles qui créent leurs propres indicateurs en interne ne signalent jamais d’état calculé. Le rapport nomme ce cas plutôt que de rapporter un zéro.
- La sortie est dirigée vers le dossier Fichiers partagés, de sorte que les rapports survivent entre les exécutions et accumulent chacun une ligne récapitulative.
- Plusieurs instances sont prises en charge.Deux graphiques peuvent mesurer différents symboles en même temps, et les deux exécutions s'ajoutent au même résumé plutôt que de s'écraser mutuellement - testées avec deux instances se terminant à une seconde d'intervalle. Donnez-leur des préfixes de sortie différents si vous préférez garder les deux historiques séparés.
- Aucune dépendance externe. Il n’appelle aucune bibliothèque ni aucun autre indicateur.
| Plus d'outils de ce développeur Je développe des indicateurs et des Expert Advisors MetaTrader en mettant l'accent sur un code propre et documenté : logique sur bougie clôturée, buffers validés, aucune dépendance à d'autres indicateurs. Cet outil existe parce que je voulais vérifier cette affirmation sur mon propre travail avant de demander à quiconque d'y croire. Voir tous les produits publiés → Vous avez trouvé quelque chose dans un rapport auquel vous ne vous attendiez pas, ou vous souhaitez un contrôle que les douze ne couvrent pas ? Envoyez-moi un message privé, je me ferai un plaisir de répondre. |
Développé et maintenu par Narayanan Mohanan, ML/Python/MQL Developer.
Si vous relevez une erreur dans la traduction de cette page, signalez-la-moi et je la corrigerai.
