Trebuchet Bracket Engine
- Experts
-
Syarief Azman Bin Rosli
Bonjour et bienvenue sur mon profil officiel MQL5 !
Je suis Syarief Azman Bin Rosli, développeur de systèmes de trading algorithmique et ingénieur quantitatif avec plus de dix ans d'expérience spécialisée dans la création de solutions de trading automatisées pour MetaTrader 5 et MetaTrader 4. - Version: 1.0
- Activations: 5
Trebuchet Bracket Engine est un Expert Advisor MetaTrader 4 de cassures par expansion du range quotidien. À l'ancre (par défaut l'ouverture du jour) il mesure le range des N derniers jours, encadre l'ancre d'un buy stop au-dessus et d'un sell stop en dessous à K x range, place le stop loss sur l'ancre et ferme tout à la sortie journalière. Au plus un trade par côté et par jour ; ni grille, ni martingale, ni moyenne, ni position de nuit (sauf si vous désactivez la sortie journalière).
Démarrage rapide
- Attachez l'EA à un graphique du symbole (toute unité de temps ; la logique utilise les barres journalières et l'horloge) et activez AutoTrading et "Allow live trading".
- Commencez avec les valeurs par défaut : range Dual Thrust sur 4 jours, déclencheurs à 0.50 x range, stop sur l'ancre, fin des entrées 21:00 et sortie 22:00 heure serveur, risque 1 %.
- Après l'ancre le panneau affiche BRACKET ARMED et deux ordres en attente apparaissent : un buy stop et un sell stop.
- Test : un passage visuel du Testeur sur XAUUSD M15 sur deux semaines dessine chaque encadrement et chaque trade.
- Push : renseignez votre MetaQuotes ID (Outils > Options > Notifications) et Push Notifications = true.
Fonctionnement
Range : Range Basis Dual Thrust (max of HH-LC, HC-LL) utilise les N jours complets avant aujourd'hui (Range Lookback) : HH/LL sont leur plus haut et plus bas, HC/LC la plus haute et la plus basse clôture, range = le plus grand de HH-LC et HC-LL. Average daily range = moyenne haut-bas de ces jours ; Previous day range = haut-bas d'hier.
Ancre : à Anchor Time le prix de l'ancre est fixé. 00:00 utilise l'ouverture quotidienne (premier tick du jour serveur). Une autre heure utilise l'ouverture de la première barre à cette heure ou après.
Déclencheurs : achat = ancre + Buy Trigger Distance x range, vente = ancre - Sell Trigger Distance x range. Si range / ATR journalier (Daily ATR Period) est sous Minimum Range ou au-dessus de Maximum Range, pas d'encadrement ce jour-là (RANGE TOO NARROW / RANGE TOO WIDE).
Entry Orders :
- Pending stop orders : un buy stop et un sell stop sont placés juste après l'ancre. Si un déclencheur est plus proche que le niveau de stops du courtier, ce côté est surveillé par l'EA qui entre au marché (VIRTUAL).
- Market order on touch : pas d'ordres en attente ; l'EA achète quand l'Ask atteint le déclencheur d'achat et vend quand le Bid atteint celui de vente (ignoré tant que le spread dépasse Max Spread for Market Entries).
Un côté dont le déclencheur était déjà dépassé lors de l'encadrement (par exemple après un redémarrage) devient MISSED et n'est jamais poursuivi. Chaque côté trade au plus une fois par jour et Max Trades per Day limite le total. Cancel the Opposite Order on Fill supprime l'autre côté quand un côté est exécuté.
Stop Loss Placement :
- At the anchor : le stop est au prix de l'ancre.
- At the opposite trigger (stop and reverse) : le stop long est au déclencheur de vente et le stop court au déclencheur d'achat, une fausse cassure peut donc basculer de l'autre côté.
- Range fraction from entry : entrée moins (plus pour les ventes) Stop Distance for Range Fraction x range.
Les stops sont élargis au minimum du courtier si nécessaire.
Sorties : Take Profit fixe un objectif à ce multiple R de la distance du stop (0 = aucun objectif). Breakeven Trigger ramène le stop à l'entrée quand le trade a gagné ce nombre de R. À Entry Cutoff tous les ordres en attente sont supprimés ; à Day Exit Time toutes les positions de l'EA sont fermées, et une position d'un jour serveur précédent est fermée aussitôt (vide = garder la nuit). Fermetures, suppressions et modifications de stop envoyées seulement hors zone de gel et pendant la séance, sinon réessayées.
Lot Sizing : Fixed lots trade Fixed Lots. Risk % of balance : lots = solde x Risk per Trade / 100 / perte par lot au stop, arrondi au pas et plafonné par Max Lots. Sous le minimum du courtier le lot minimum est utilisé, donc les petits comptes, ou l'or avec de larges ranges quotidiens, peuvent risquer plus que le pourcentage fixé. La marge libre est vérifiée avant chaque ordre (NO MARGIN).
Recommandé : XAUUSD et GBPUSD. Les paires peu volatiles comme EURUSD ont donné de faibles résultats avec les valeurs par défaut. Les heures sont celles du serveur (conçu pour des serveurs GMT+2/+3). À optimiser : Range Lookback, les deux distances de déclenchement, Stop Loss Placement, Day Exit Time et Maximum Range.
Commandes du panneau
- [-] / [+] : replier en pastille (TREBUCHET plus l'état) ou déplier.
- <> : déplacer le panneau dans le coin suivant.
- PAUSE / RESUME : PAUSE supprime les ordres en attente et bloque les nouvelles entrées (les positions ouvertes restent gérées) ; RESUME replace l'encadrement du jour s'il est encore valide. Enregistré dans une variable globale, survit aux redémarrages.
- BRACKET ON / BRACKET OFF : afficher ou masquer les lignes du graphique.
- CLOSE ALL : le premier clic affiche CONFIRM?, un second clic sous 4 secondes ferme toutes les positions et supprime tous les ordres en attente de l'EA sur le symbole.
Repli, coin et lignes reviennent aux paramètres quand l'EA est rattaché.
Affichages du panneau
- LED d'en-tête : verte quand l'encadrement est armé ou qu'un trade est en cours, ambre en pause, grise sinon.
- DAY STATE : badge WAITING FOR ANCHOR, BRACKET ARMED, LONG LIVE, SHORT LIVE, PAUSED, DAY QUOTA USED, DAY DONE (après la fin des entrées), BRACKET SPENT (les deux côtés utilisés), RANGE TOO NARROW, RANGE TOO WIDE ou NO DAILY HISTORY ; date ; heure et prix ANCHOR ; heures CUTOFF et EXIT.
- RANGE ENGINE : période et base ; valeur RANGE avec les deux K ; HH, LL, HC, LC ; une jauge range / ATR de 0 à 3 avec des repères aux deux limites ; le ratio, les limites et OK ou la raison.
- BRACKET : jauge avec le déclencheur de vente (corail), l'ancre (bronze) et le déclencheur d'achat (turquoise) ; le repère montre le Bid et se colore au-delà d'un déclencheur. Dessous : prix SELL, ANCHOR et BUY et la distance à chaque déclencheur en points. À droite : STOP AT ANCHOR, STOP+REVERSE ou STOP x.xxR, et l'objectif en R.
- Lignes de côté LONG et SHORT : READY, BUY STOP AT / SELL STOP AT prix, WATCHING prix (VIRTUAL), FILLED - IN TRADE, TRADED TODAY, MISSED: PRICE ALREADY BEYOND, SKIPPED: NO MARGIN ou ORDER FAILED, CANCELLED: OCO, CUTOFF, QUOTA, PAUSED, MANUAL ou NEW DAY, NO BRACKET TODAY.
- POSITION : FLAT, ou sens, lots, entrée et gain latent ; SL, TP, R et BE ([x] quand le stop est au point mort). Sans position : TODAY trades / maximum et DAY P/L, ou NEW ENTRIES PAUSED.
- ACTIVITY : les trois derniers événements avec l'heure : BRACKET, NO BRACKET, BUY STOP / SELL STOP placé, BUY FILLED / SELL FILLED, STOP CANCELLED, MISSED, SKIPPED, ORDER FAILED, BREAKEVEN, CLOSED (sortie du jour, jour précédent, manuel), CLOSE ALL, PAUSED by user, RESUMED by user.
- Ligne du bas : TRADES, pourcentage WIN et NET du profit clôturé de l'EA sur le symbole.
Lignes sur le graphique
De l'ancre à la sortie journalière : une ligne turquoise BUY TRIGGER, une ligne corail SELL TRIGGER et une ligne pointillée bronze ANCHOR, étiquetées pour aujourd'hui ; Past Days Drawn on Chart encadrements précédents en lignes fines (grises si filtrés). Visible jusqu'à H4.
Alertes
Pop-up Alerts et Push Notifications signalent l'encadrement posé à l'ancre, chaque exécution et chaque fermeture. Pas dans le Testeur.
Effets de bord
- Variable globale TBE_PAUSE_<symbole>_<magic> = 1 pendant la pause.
- Objets préfixés TBE_P_ (panneau) et TBE_Z_ (lignes), supprimés avec l'EA. Minuterie d'une seconde. Aucun fichier, aucune DLL.
bool paused = GlobalVariableCheck("TBE_PAUSE_XAUUSD_26110901"); Paramètres d'entrée
Range Engine
- Range Lookback (4 jours), Range Basis (Dual Thrust (max of HH-LC, HC-LL) ; ou Average daily range, Previous day range).
- Buy Trigger Distance (0.50) et Sell Trigger Distance (0.50) : x range.
- Daily ATR Period (14 jours), Minimum Range (0.0 x ATR, 0 = désactivé), Maximum Range (2.5 x ATR, 0 = désactivé).
Horaires
- Anchor Time (00:00 = ouverture du jour), Entry Cutoff (21:00), Day Exit Time (22:00, vide = désactivé) : heure serveur, ancre avant la fin des entrées, fin des entrées pas après la sortie.
Ordres et sorties
- Entry Orders (Pending stop orders ; ou Market order on touch).
- Stop Loss Placement (At the anchor ; At the opposite trigger (stop and reverse) ; Range fraction from entry), Stop Distance for Range Fraction (0.30 x range).
- Take Profit (0.0 R = sortie du jour seulement), Breakeven Trigger (0.0 R = désactivé).
- Max Trades per Day (2), Cancel the Opposite Order on Fill (false).
Gestion du capital
- Lot Sizing (Risk % of balance ; ou Fixed lots), Fixed Lots (0.10), Risk per Trade (1.0 %), Max Lots (5.0).
- Max Spread for Market Entries (0 point = désactivé).
Exécution
- Magic Number (26110901, un par graphique du même symbole), Max Slippage (30 points), Order Comment (Trebuchet).
Affichage et alertes
- Show Panel (true), Draw Bracket Levels (true), Past Days Drawn on Chart (5), Start Collapsed (false), Panel Scale (1.0, 0.5-2.5).
- Pop-up Alerts (true), Push Notifications (false).
Réglages types
- Encadrement quotidien classique (XAUUSD, GBPUSD) : valeurs par défaut.
- Stop et retournement : Stop Loss Placement = At the opposite trigger (stop and reverse), Max Trades per Day 2.
- Encadrement de Londres : Anchor Time 08:00, Entry Cutoff 16:00, Day Exit Time 21:00, Range Basis = Average daily range, les deux distances 0.40.
- Objectif et protection : Take Profit 2.0, Breakeven Trigger 1.0, Cancel the Opposite Order on Fill true.
Remarques
- Après un redémarrage l'encadrement est reconstruit à partir des barres journalières ; les ordres existants gardent leur côté et un déclencheur dépassé n'est jamais poursuivi.
- Les ordres en attente ne passent jamais au jour suivant.
- Un Day Exit Time vide n'est accepté qu'avec un Take Profit supérieur à 0 ; sinon un trade ne pourrait se fermer qu'à son stop.
- Le Testeur applique les mêmes règles ; panneau et lignes en mode visuel uniquement. Testez d'abord sur un compte démo.
Avertissement sur les risques
Le trading du forex et des CFD sur marge comporte un risque élevé de perte. Les résultats passés ou simulés ne garantissent pas les résultats futurs. Cet EA ne promet aucun profit ; n'utilisez que des capitaux que vous pouvez vous permettre de perdre.
