Rejoignez notre page de fans
- Vues:
- 180
- Note:
- Publié:
-
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
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
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
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
A specified moment in time can be analyzed through multiple synced timeframes from 1 host chart for a symbol.