Rejoignez notre page de fans
- Vues:
- 48
- Note:
- Publié:
-
Besoin d'un robot ou d'un indicateur basé sur ce code ? Commandez-le sur Freelance Aller sur Freelance
Presque toutes les descriptions d'indicateurs contiennent l'expression « sans rafraîchissement ». Presque aucune ne mentionne de chiffre. Cette expression ne peut pas être fausse, car elle n'est associée à aucune procédure : un développeur qui n'a jamais vérifié et un développeur qui a effectué des vérifications approfondies écrivent tous deux la même phrase. Ce script remplace cette expression par une valeur chiffrée.
L'invariant
Une fois qu’une barre s’est clôturée et a été traitée, aucun objet tracé par l’indicateur sur celle-ci ne doit jamais changer. Il ne doit ni se déplacer, ni changer de couleur, ni modifier son texte, ni disparaître. Il s’agit là d’une affirmation susceptible d’être fausse, ce qui justifie de la tester.
Méthode
Un symbole personnalisé est initialisé avec un échantillon d’historique réel servant de « mise en route » ; votre indicateur y est associé via un modèle, et chaque objet qu’il trace est enregistré. D’autres barres sont ajoutées et le graphique est soumis à un recalcul complet, de sorte que l’indicateur reconstruit chaque objet à partir de zéro sur un historique plus long. Chaque objet issu du passage précédent qui se trouve sur une barre déjà clôturée est ensuite recherché dans le nouveau passage et comparé champ par champ : les deux heures de référence, les deux cours de référence, la couleur et le texte. Répétez l’opération autant de fois que vous le souhaitez.
Une reconstruction complète constitue un test plus exigeant qu’un tick incrémental. L’indicateur doit reproduire une carte identique à partir d’un historique plus long, en utilisant des indices de tableau différents, sans aucun souvenir de ce qu’il a tracé la dernière fois. C’est exactement ce que déclenche un utilisateur en faisant défiler suffisamment en arrière pour que le terminal récupère des barres plus anciennes, et c’est là que les noms d’objets indexés sur l’INDEX de la barre plutôt que sur l’HEURE de la barre montrent leurs limites.
Ce qui compte
Les modifications et les disparitions sont comptabilisées séparément, et seule une modification signifie que l’affirmation est fausse. La plupart des indicateurs de dessin suppriment délibérément les anciens objets dès qu’une limite est dépassée ; une disparition est donc généralement due à votre propre paramètre `MaxObjects` ou `HistoryBars` plutôt qu’à un défaut. Exécutez l’indicateur en désactivant ces limites.
Une exécution n’ayant rien comparé est signalée comme « INCONCLUSIVE », jamais comme une réussite. Le bogue le plus dangereux qu’un harnais de test puisse présenter est de signaler une réussite lors d’une exécution vide, car c’est ce chiffre qui finit par être cité.
La sortie est un fichier CSV situé dans MQL5\Files, avec une ligne par symbole, période et étape, indiquant le nombre d’objets comparés, modifiés et disparus, ainsi que le premier objet concerné. Additionnez la colonne « marks_compared » et vous obtiendrez le chiffre que vous pouvez publier — ainsi que le fichier qui le justifie.
Utilisation
1. Définissez le préfixe sur le préfixe du nom d’objet de votre indicateur. Dans la liste « Exclure », indiquez tout ce qui est censé changer par nature : une légende redessinée à chaque tick, un compte à rebours. Ce ne sont pas des marques. Il est plus honnête de les déclarer ici que de les filtrer en silence.
2. Associez votre indicateur à un graphique dont toutes les restrictions de dessin sont désactivées, puis enregistrez ce graphique en tant que modèle. Attribuez ce modèle à l’indicateur.
3. Augmentez la valeur de « SettleMs » jusqu’à ce que le nombre de marques lors du premier passage cesse de varier d’une exécution à l’autre. Une valeur trop faible ne génère pas d’erreurs, mais entraîne des disparitions fantômes.
4. Provoquez volontairement une défaillance une fois : déplacez un objet d’une barre et vérifiez que le script le signale en nommant le champ. Un harnais dont vous n’avez jamais constaté la défaillance ne constitue pas encore une preuve.
Ce que cela ne vous dira pas
Si l’indicateur est précis, ou si ses signaux sont fiables. Il répond à une question très précise, et c’est la seule raison pour laquelle sa réponse a de la valeur.
Deux « tests » qui n’en sont pas, tous deux essayés et rejetés avant celui-ci : le Strategy Tester, où les objets d’un indicateur piloté par iCustom ne sont absolument pas énumérables par un EA sur MT4 ; et la modification de la valeur d’entrée « HistoryBars » de l’indicateur lui-même sur un graphique en temps réel, ce qui modifie le point de départ de la boucle mais laisse « rates_total » et tous les indices du tableau inchangés, de sorte que le type de bogue que cette fonction est censée détecter n’est jamais déclenché.
Gratuit, et aucune mention de la source n’est requise. S’il détecte quelque chose dans votre code, je serais ravi d’en connaître la nature.

Traduit de l’anglais par MetaQuotes Ltd.
Code original : https://www.mql5.com/en/code/76632
Sniper Gold Hybrid Recovery EA
EA de reprise de panier XAUUSD M15 avec espacement ATR adaptatif, validation de la structure LL/LH, filtrage dynamique du RSI, détection des krachs, filtre d'actualités et ajustement intelligent des transactions.
Volume Profile Levels Indicator
Crée un histogramme de volume horizontal sur une fenêtre rétrospective récente et marque le « Point of Control » (POC) et la « Value Area » à l'aide de l'algorithme standard TPO/volume d'extension de la zone de valeur — et non pas simplement le POC ± un décalage fixe. Actualisé à chaque nouvelle barre, il s'affiche sous forme de barre latérale à côté du cours.
Support Resistance zig zag based
« Support Resistance zig zag » est un indicateur de Price Action conçu pour tracer automatiquement et de manière dynamique les niveaux de support, de résistance et les zones de transition (zones de renversement) sur le graphique. Il se concentre exclusivement sur la représentation claire de la structure des prix et met en évidence les zones de rebond clés (SBR et RBS). Il comprend également un tableau de bord interactif permettant de suivre en temps réel la tendance du marché.
iFVG Indicator With Signals
iFVG Indicator With Signals