Institutional Framework Trading System MT5
- Indicateurs
- Version: 1.33
- Mise à jour: 11 septembre 2026
- Activations: 8
Édition Range-Bound · v1.33
Tradez avec une structure utilisée par les institutions
La plupart des outils SMC retail se limitent à afficher les Order Blocks et Liquidity Sweeps. Institutional Framework Trading System MT5 va plus loin.
Chaque signal repose sur une structure de prix confirmée, puis vérifiée par jusqu’à trois couches supplémentaires : positionnement réel sur les options, fondamentaux macroéconomiques et sentiment du marché.
Le système est conçu pour les traders qui maîtrisent déjà les Order Blocks, Liquidity Sweeps et zones Supply/Demand et souhaitent valider la structure plutôt que simplement la dessiner.
Points clés
-
Moteur SMC complet — Order Blocks, Liquidity Sweeps et zones Supply/Demand basés uniquement sur des bougies clôturées. Les signaux sont verrouillés à la clôture et ne repeignent pas.
-
Confirmation multicouche — Divergence, Exhaustion et Absorption vérifient chaque signal structurel.
-
Confluence options réelle — Open Interest, Max Pain et niveaux de liquidité issus des options sur futures Gold COMEX.
-
Contexte macro — bilan de la Fed, CPI/PPI et données d’emploi.
-
Sentiment contrarian — CFTC Commitment of Traders et Fear & Greed.
-
Deux modes — Conservative Mode pour les tendances et Range-Bound Mode pour les marchés en consolidation.
-
Modulaire — les données options, macro et sentiment sont facultatives. Le moteur structurel fonctionne seul.
-
Copiez le fichier .mq5 dans MQL5\Indicators et compilez-le dans MetaEditor.
-
Ajoutez-le à un graphique Gold. Il fonctionne aussi sur d’autres symboles, mais les paramètres par défaut sont basés sur XAU.
-
Conservez les paramètres par défaut. Le mode initial est Range-Bound Mode, avec Divergence active mais ses marqueurs masqués.
-
Consultez le journal Experts pour les erreurs de récupération des données. Le panneau du graphique affiche le mode, le régime et l’état du scoring.
-
Pour utiliser les options, choisissez une méthode dans la section 11.
enum ENUM_SIGNAL_MODE { MODE_CONSERVATIVE, MODE_RANGEBOUND };
-
Conservative Mode — système de scoring. Order Block, Sweep, Divergence, Exhaustion, Absorption, Cluster Confluence et Options Confluence ajoutent des points. Le signal est déclenché lorsque MinSignalScore (4 par défaut) est atteint. Le filtre de régime bloque les signaux contre le biais dominant.
-
Range-Bound Mode (mode par défaut) — nécessite une condition structurelle (Order Block ou zone Demand/Supply active), une confirmation (Divergence, Exhaustion ou Absorption) et RangeBoundMinScore (2 par défaut). Le filtre de régime ne bloque pas la direction.
Important : RequireDivergence , RequireOrderBlock et RequireSweep ne fonctionnent qu’en Conservative Mode.
DrawDivergenceMarks = false masque uniquement les marqueurs DIV_ . Le détecteur EnableDivergence = true continue de fonctionner et compte dans hasConfirmation .
3. Détection de structureGroupe : === SMC / Structure Detection ===
| Paramètre | Défaut | Fonction |
|---|---|---|
| SwingWing | 3 | Barres nécessaires de chaque côté pour confirmer un swing high/low. |
| SwingLookback | 100 | Profondeur de recherche des anciens swings. |
| ATRPeriod | 14 | ATR utilisé pour les seuils de distance. |
| OBDisplacementMult | 1.0 | Ratio minimum corps/ATR pour un displacement d’Order Block. |
| OBMaxWickRatio | 0.3 | Part maximale de la range pouvant être constituée de wick. |
| SDMoveMultiple | 3.0 | Multiple de la range de base requis pour une zone Supply/Demand. |
| EquilibriumBandPct | 0.05 | Largeur de la bande autour du niveau 50 %. |
| Paramètre | Défaut | Fonction |
|---|---|---|
| EnableExhaustion | true | Active Exhaustion. |
| ExhaustionWickMult | 0.6 | Ratio wick/range minimum. |
| ExhaustionBodyMult | 0.3 | Ratio corps/range maximum. |
| EnableAbsorption | true | Active Absorption. |
| AbsorptionVolFactor | 1.5 | Volume minimum vs moyenne. |
| AbsorptionRangeFactor | 0.8 | Range maximale vs ATR. |
| AbsorptionRejectPct | 0.2 | Rejet minimum par la wick. |
| EnableDivergence | true | Active le détecteur de Divergence. |
| DrawDivergenceMarks | false | Affiche/masque les marqueurs DIV_ . |
| DivergenceMinSwingATR | 1.0 | Écart minimal entre swings pour comparer une Divergence. |
| MaxTickBars | 50 | Nombre de barres utilisant le tick-delta réel. |
Groupe : === Cluster Confluence (both modes) ===
| Paramètre | Défaut | Fonction |
|---|---|---|
| UseClusterScoring | true | Active le bonus pour plusieurs confirmations simultanées. |
| MinClusterSignals | 3 | Nombre minimum de confirmations simultanées. |
| ClusterBonusScore | 2 | Bonus ajouté au score. |
Actif dans les deux modes et intégré à RangeBoundMinScore en Range-Bound Mode.
6. Supply & Demand Zones| Paramètre | Défaut | Fonction |
|---|---|---|
| DrawSupplyDemandZones | true | Active le dessin des zones. |
| SDLookback | 100 | Profondeur de recherche des configurations base + mouvement explosif. |
| SDMaxBaseCandles | 4 | Nombre maximal de bougies de base. |
| SDDisplacementMult | 0.5 | Ratio minimum corps/ATR du mouvement depuis la zone. |
| SDMaxZonesShown | 3 | Nombre maximal de zones affichées. |
| SupplyZoneColor / DemandZoneColor | Red / Blue | Couleurs des zones. |
Une zone Demand/Supply active et non mitigée peut satisfaire la condition structurelle du Range-Bound Mode.
7. Filtre Higher Timeframe| Paramètre | Défaut | Fonction |
|---|---|---|
| UseHTFFilter | true | Active le filtre HTF. |
| HTFTimeframe | H4 | Timeframe supérieur utilisé. |
| HTFLookbackBars | 20 | Nombre de bougies H4 clôturées analysées. |
| HTFNeutralPct | 0.05 | Seuil pour considérer la tendance HTF comme neutre. |
Seule la dernière bougie HTF clôturée est utilisée. Aucun repaint.
8. Filtre de session| Paramètre | Défaut | Fonction |
|---|---|---|
| AllowedSession | SESSION_ALL | SESSION_ALL , SESSION_LONDON , SESSION_NEWYORK ou SESSION_LONDON_NY . |
| UTCOffsetHours | 0 | Ajustement de l’heure serveur. |
Fenêtres utilisées :
London = 08:00–16:00 UTC
New York = 13:00–21:00 UTC
| Paramètre | Défaut | Fonction |
|---|---|---|
| SignalCooldownBars | 5 | Distance minimale entre deux signaux sur une même zone. |
| MaxBarAgeForSignal | 25 | Âge maximal d’un Order Block pour un nouveau signal. |
Après détection d’un Order Block, le graphique affiche TP1 , TP2 , TP3 et BE .
Règle : déplacez le Stop-Loss à Break-Even.
| Paramètre | Défaut |
|---|---|
| EnableFibTargets | true |
| FibTP1 / FibTP2 / FibTP3 | 1.618 / 2.618 / 4.236 |
| FibTP1Color / FibTP2Color / FibTP3Color | Yellow / Orange / Red |
| TrailBEColor | White |
Deux sources sont disponibles. Une seule suffit.
Option A — FlashAlpha Live API
-
Obtenez une API Key gratuite sur lab.flashalpha.com .
-
UseLiveAPI = true
-
Entrez la clé dans FlashAlpha_API_Key .
-
Définissez FlashAlpha_Expiration au format yyyy-MM-dd .
-
Laissez FlashAlpha_Symbol = NEM sauf raison particulière.
Important : le niveau gratuit de FlashAlpha n’utilise pas de véritables options Gold COMEX. NEM (Newmont) sert de proxy. Les données représentent donc une approximation du sentiment/positionnement, pas le positionnement réel des options Gold.
Limites :
MaxDailyAPICalls = 5
RefreshIntervalHours = 4
Option B — CSV Barchart
Cette méthode utilise les vraies options Gold COMEX (GC).
-
Téléchargez la chaîne d’options Gold depuis Barchart.
-
Chaque ligne doit contenir au moins 13 colonnes :
-
colonne 1 = strike
-
colonne 9 = volume
-
colonne 10 = open interest
-
colonne 13 = type ( C ou P )
-
-
Placez le fichier dans MQL5 → Files .
-
Configurez CSV_File_Name .
-
UseLiveAPI = false .
Weekly Strikes
Format :
strike,openInterest,volume;strike,openInterest,volume;...
Exemple :
4350,251,45;4400,36,12
Weekly_Weight = 1.0 contrôle le poids de l’OI hebdomadaire par rapport à l’OI mensuel pour Max Pain, Support, Resistance, BSL et SSL.
Paramètres options
| Paramètre | Défaut | Fonction |
|---|---|---|
| Min_OI_Threshold | 100 | OI minimum pour BSL/SSL. |
| Min_Volume_Threshold | 200 | Volume minimum. |
| Max_Pain_Buffer | 5 | Marge autour de Max Pain. |
| Max_Strikes_Processed | 100 | Nombre maximal de strikes traités. |
| Max_Battle_Zones_Shown | 5 | Nombre maximal de Battle Zones. |
| Refresh_Hotkey | R | Actualisation manuelle. |
| Auto_Refresh_Seconds | 60 | Vérification automatique de l’actualisation. |
| UseOptionsConfluence | true | Active Options Confluence. |
| OptionsConfluenceATRMult | 0.5 | Tolérance de proximité en ATR. |
| OptionsConfluenceBonus | 1 | Bonus de score. |
Les deux scores vont de 0 à 100 :
-
Fundamental score: 0 = bearish pour l’or, 100 = bullish.
-
Sentiment score: 0 = peur extrême, 100 = avidité extrême.
-
Neutre = 50.
Ces scores sont hybrides, pas entièrement automatiques.
| Entrée manuelle | Fonction | Source |
|---|---|---|
| ManualFedStance | 0 = très hawkish … 100 = très dovish | Évaluation personnelle |
| ManualCmeCutProb | Probabilité de baisse des taux | CME FedWatch |
| ManualNFPActual / ManualNFPExpected | NFP réel vs consensus | BLS / consensus |
| ManualADPActual / ManualADPExpected | ADP réel vs consensus | Source ADP / consensus |
| ManualGeoScore | Tension géopolitique | Évaluation personnelle |
| BPR_USBanksLong / BPR_USBanksShort | Positionnement bancaire CFTC | CFTC |
Avec UseAutoFundamentals = true , le système récupère automatiquement :
-
bilan de la Fed (FRED)
-
CPI/PPI/chômage (BLS)
-
prix du pétrole du broker
Avec UseAutoSentiment = true :
-
CFTC Commitment of Traders
-
JM Bullion Fear & Greed
Configuration simple
UseAutoFundamentals = false UseAutoSentiment = false
Puis renseignez :
FundamentalScore SentimentScore
Cela supprime les dépendances externes.
Clé API FRED
-
Inscrivez-vous sur fred.stlouisfed.org/docs/api/api_key.html .
-
Ajoutez la clé dans FRED_API_Key .
Elle est uniquement nécessaire pour le composant du bilan de la Fed.
URLs WebRequest à autoriser
Dans MT5 :
Tools → Options → Expert Advisors → "Allow WebRequest for listed URL:"
Ajoutez :
https://publicreporting.cftc.gov https://www.jmbullion.com https://api.stlouisfed.org https://api.bls.gov https://lab.flashalpha.com
Une URL bloquée apparaîtra dans le journal Experts avec l’erreur 4014.
FundamentalsRefreshHours / SentimentRefreshHours sont réglés sur 24 heures par défaut. Une mise à jour quotidienne suffit puisque les données sous-jacentes sont mises à jour chaque semaine ou chaque mois.

