Voir comment télécharger gratuitement des robots de trading
Retrouvez-nous sur Twitter !
Rejoignez notre page de fans
Un script intéressant ?
Poster un lien vers celui-ci -
laisser les autres l'évaluer
Vous avez aimé le script ? Essayez-le dans le terminal MetaTrader 5
Indicateurs

Order Block Detector - indicateur pour MetaTrader 5

Olamide Daniel Adebayo
Olamide Daniel Adebayo
MQL5 Developer • Trading Tools • EAs • Products • Articles
Building, learning, and sharing one project at a time.
| French English Русский 中文 Español Deutsch 日本語 Português 한국어 Italiano Türkçe
Vues:
180
Note:
(3)
Publié:
MQL5 Freelance Besoin d'un robot ou d'un indicateur basé sur ce code ? Commandez-le sur Freelance Aller sur Freelance

Détecteur de blocs d'ordres

Le principe

Avant un mouvement impulsif fort, il y a généralement une dernière bougie qui va dans la « mauvaise » direction : la dernière bougie de vente avant que le cours ne s'envole, ou la dernière bougie d'achat avant que le cours ne s'effondre. Cette bougie est interprétée comme l’empreinte du flux d’ordres qui a alimenté le mouvement : la zone qu’elle occupe correspond à l’endroit où une position importante a probablement été constituée avant la cassure. Cet indicateur formalise la détection en trois étapes : confirmer les véritables points de swing fractals, surveiller une clôture qui franchit de manière décisive l’un d’entre eux avec une bougie impulsive à corps réel (et non une faible poussée de type doji), puis remonter le temps à partir de cette cassure pour repérer la dernière bougie opposée — la fourchette de cette bougie devient alors le bloc d’ordres.

À l’instar des détecteurs de gap et de « liquidity sweep » de cette série, une zone est ici véritablement « vivante » : tant qu’elle n’est pas validée, elle continue de s’étendre vers la barre actuelle, et dès que le cours y revient, la zone se fige exactement sur cette barre et (par défaut) devient grise — vous pouvez ainsi distinguer d’un seul coup d’œil les zones qui n’ont pas encore été « testées » et celles qui l’ont déjà été.

Comment l’interpréter

  • Bloc d’ordres haussier (vert/blanc par défaut) — la dernière bougie clôturant à la baisse avant une clôture impulsive au-dessus d’un récent plus haut de swing. Une offre non testée devenue demande ; souvent considérée comme un support potentiel lors d’un repli.
  • Bloc d’ordres baissier (rouge par défaut) — la dernière bougie clôturant à la hausse avant une clôture impulsive en dessous d’un plus bas récent. Une demande non testée devenue offre ; souvent considérée comme une résistance potentielle lors d’un rebond.
  • Une zone en extension (colorée) — toujours non atténuée ; son bord droit continue d’avancer en temps réel lorsque l’ option InpExtendUntilMitigated est activée (par défaut), ou s’arrête après un nombre fixe de barres défini par InpExtendBars si elle est désactivée.
  • Une zone figée, grise — le cours y est revenu — le bloc est atténué, et son cadre s’est arrêté exactement sur cette barre. Définissez InpHideMitigatedOBs pour supprimer les zones atténuées au lieu de les griser.
  • Bougie de « rupture » par rapport au bloc d’ordre lui-même — le bloc d’ordre correspond à la bougie opposée, et non à la bougie impulsive ; la bougie impulsive sert uniquement à confirmer la rupture de la structure et n’est jamais tracée en tant que zone à part entière.

Variables externes (entrées)

Entrée Par défaut Objectif
InpSwingLookback 5 Nombre de barres requis de chaque côté d’une barre candidate pour qu’elle soit confirmée comme un plus haut ou un plus bas de swing.
InpMinBreakPoints 30 Distance minimale, en points, qu’un cours de clôture doit dépasser par rapport à un niveau de swing pour que cela soit considéré comme une véritable rupture de structure.
InpMinImpulseBodyPercent 50,0 Pourcentage minimum du corps par rapport à l'amplitude que doit présenter la bougie de cassure — permet d'éliminer les « cassures » faibles, caractérisées par des mèches importantes.
InpMaxSearchBarsForOB 10 Nombre de barres à remonter à partir de la bougie de cassure pour rechercher la bougie opposée formant un bloc d’ordres.
InpUseBodyOnly false Utilise uniquement le corps de la bougie de bloc d'ordres, au lieu de l'ensemble de sa fourchette haut-bas (mèche), pour définir la zone.
InpMinZoneSizePoints 30 Taille minimale de la zone, en points, pour qu'un bloc d'ordres détecté soit tracé.
InpMaxOBsToTrack 30 Nombre maximal de blocs d’ordres conservés simultanément sur le graphique ; le bloc suivi le plus ancien est supprimé dès qu’un nouveau bloc dépasse ce plafond.
InpExtendUntilMitigated true Lorsque cette valeur est définie sur « true », la zone d’un bloc non atténué continue de s’étendre en temps réel jusqu’à la barre actuelle ; lorsqu’elle est définie sur « false », elle s’arrête après un nombre fixe de barres.
InpExtendBars 40 Longueur d'extension fixe (en barres), utilisée uniquement lorsque InpExtendUntilMitigated est à la valeur « false ».
InpRequireFullCloseForMitigation false Lorsque cette option est définie sur « true », une bougie doit clôturer à l'intérieur de la zone pour que celle-ci soit atténuée ; lorsqu'elle est définie sur « false », il suffit qu'une mèche touche la zone.
InpHideMitigatedOBs false Lorsque cette option est activée, la zone d'un bloc est supprimée dès qu'elle est atténuée, au lieu d'être grisée et conservée.
InpBullishOBColor / InpBearishOBColor Vert citron / Rouge Couleurs des zones de blocs d'ordres haussiers et baissiers non atténués.
InpMitigatedColor Gris foncé Couleur que prend une zone une fois atténuée (lorsqu'elle n'est pas masquée).
InpFillBox true Détermine si les zones de blocage d'ordre sont remplies ou dessinées uniquement sous forme de contours.
InpBoxStyle / InpBoxWidth Plein / 1 Style et largeur de la bordure de chaque zone.
InpShowLabels true Affiche une étiquette de texte indiquant le prix de la zone à côté de chaque bloc de commande.

Utilisation recommandée

Fonctionne sur n’importe quel symbole et n’importe quelle période ; les concepts de rupture de structure et de bloc d’ordres relèvent purement de l’action des cours, sans hypothèses spécifiques à un symbole. Cependant, comme toute méthode de pivot fractal, InpSwingLookback établit un compromis entre l’importance des niveaux et la fréquence de détection, de la même manière que dans le « Liquidity Sweep Detector » de cette série. Par conception, les ruptures de structure et leur atténuation sont évaluées uniquement sur des barres entièrement clôturées ; ainsi, un bloc n’apparaîtra ni ne disparaîtra au milieu d’une bougie tant que le plus haut, le plus bas et le cours de clôture de la barre actuelle sont encore en évolution.

InpMinImpulseBodyPercent existe spécifiquement pour éviter de qualifier de « rupture » une clôture à peine perceptible : une bougie qui dépasse tout juste un niveau de swing avec une mèche importante et un petit corps est exclue, car cela s’apparente davantage à du bruit qu’à un véritable déplacement. Sur des historiques de graphiques très longs, InpMaxOBsToTrack limite le nombre d’objets plutôt que de laisser chaque bloc d’ordres historiques s’accumuler indéfiniment. Cet indicateur se contente de lire les données de cours et ne passe, ne modifie ni ne clôture jamais aucun ordre ; il peut donc être utilisé en toute sécurité sur n’importe quel type de compte.

Tous les objets du graphique sont créés sous un préfixe de nom interne unique et sont entièrement supprimés via la fonction ObjectsDeleteAll() dans OnDeinit() lorsque l’indicateur est détaché, de sorte qu’il ne laisse aucune trace sur le graphique.



Fig. 1. Un bloc d’ordres haussier confirmé par la bougie de cassure impulsive, puis atténué, sur la paire XAUUSD en M15. Représenté en noir et blanc conformément aux directives visuelles de Code Base (750 × 500 px).

Traduit de l’anglais par MetaQuotes Ltd.
Code original : https://www.mql5.com/en/code/76878

Broker Profiler Broker Profiler

Affiche les propriétés qui font qu'un même EA se comporte différemment chez un autre courtier : horaires de trading, taille du contrat, valeur du tick, statistiques sur les spreads, coût des swaps et couverture des sessions en temps réel. En lecture seule, n'effectue aucune opération de trading.

Closed Trades Exporter MAE MFE Closed Trades Exporter MAE MFE

Exports closed trades to CSV with Maximum Adverse Excursion (MAE) and Maximum Favorable Excursion (MFE) in points and money, calculated from M1 history, plus the percentage of the available move each trade captured.

ORB Risk Managed - Opening Range Breakout with Account Protection ORB Risk Managed - Opening Range Breakout with Account Protection

Opening Range Breakout EA template with built-in account protection. Marks the high and low of the first N minutes after the session open and places OCO stop orders above and below the range. Includes risk-based position sizing, daily loss limit, maximum drawdown limit, ATR range filter, trade direction filter, and protection against positions carried overnight. All session times are configurable inputs. Educational template, not a profit-guaranteed system. Test on demo before any live use.

Memory Sequence Memory Sequence

A specified moment in time can be analyzed through multiple synced timeframes from 1 host chart for a symbol.