Trebuchet Bracket Engine
- Experts
-
Syarief Azman Bin Rosli
Ciao e benvenuto sul mio profilo ufficiale MQL5!
Sono Syarief Azman Bin Rosli, sviluppatore di sistemi di trading algoritmico e ingegnere software quantitativo con oltre dieci anni di esperienza nello sviluppo di soluzioni automatizzate per MetaTrader 5 e MetaTrader 4. - Versione: 1.0
- Attivazioni: 5
Trebuchet Bracket Engine è un Expert Advisor per MetaTrader 4 di breakout da espansione del range giornaliero. All'ancora (di default l'apertura del giorno) misura il range degli ultimi N giorni, piazza un buy stop sopra e un sell stop sotto l'ancora a K x range, mette lo stop loss sull'ancora e chiude tutto all'uscita giornaliera. Al massimo un'operazione per lato al giorno; niente griglia, martingala, mediazione o posizioni overnight (a meno di disattivare l'uscita giornaliera).
Avvio rapido
- Applica l'EA a un grafico del simbolo (qualsiasi timeframe; la logica usa barre giornaliere e l'orologio) e attiva AutoTrading e "Allow live trading".
- Parti dai valori di default: range Dual Thrust di 4 giorni, trigger a 0.50 x range, stop sull'ancora, stop ingressi 21:00 e uscita 22:00 ora del server, rischio 1 %.
- Dopo l'ancora il pannello mostra BRACKET ARMED e compaiono due ordini pendenti: un buy stop e un sell stop.
- Prova: un test visuale nello Strategy Tester su XAUUSD M15 per due settimane disegna ogni forchetta e operazione.
- Notifiche push: imposta il MetaQuotes ID (Strumenti > Opzioni > Notifiche) e Push Notifications = true.
Come opera
Range: Range Basis Dual Thrust (max of HH-LC, HC-LL) usa gli N giorni completi prima di oggi (Range Lookback): HH/LL sono massimo e minimo, HC/LC la chiusura più alta e più bassa, range = il maggiore tra HH-LC e HC-LL. Average daily range = media massimo-minimo di quei giorni; Previous day range = massimo-minimo di ieri.
Ancora: ad Anchor Time il prezzo dell'ancora viene fissato. 00:00 usa l'apertura giornaliera (primo tick del giorno server). Un altro orario usa l'apertura della prima barra a quell'ora o dopo.
Trigger: acquisto = ancora + Buy Trigger Distance x range, vendita = ancora - Sell Trigger Distance x range. Se range / ATR giornaliero (Daily ATR Period) è sotto Minimum Range o sopra Maximum Range, quel giorno non c'è forchetta (RANGE TOO NARROW / RANGE TOO WIDE).
Entry Orders:
- Pending stop orders: un buy stop e un sell stop vengono piazzati subito dopo l'ancora. Se un trigger è più vicino del livello di stop del broker, quel lato è sorvegliato dall'EA che entra a mercato (VIRTUAL).
- Market order on touch: nessun ordine pendente; l'EA compra quando l'Ask raggiunge il trigger di acquisto e vende quando il Bid raggiunge quello di vendita (saltato finché lo spread supera Max Spread for Market Entries).
Un lato il cui trigger era già superato quando la forchetta viene impostata (ad esempio dopo un riavvio) diventa MISSED e non viene mai inseguito. Ogni lato opera al massimo una volta al giorno e Max Trades per Day limita il totale. Cancel the Opposite Order on Fill cancella l'altro lato quando uno viene eseguito.
Stop Loss Placement:
- At the anchor: lo stop è al prezzo dell'ancora.
- At the opposite trigger (stop and reverse): lo stop long è al trigger di vendita e quello short al trigger di acquisto, così un falso breakout può girare dall'altra parte.
- Range fraction from entry: ingresso meno (più per le vendite) Stop Distance for Range Fraction x range.
Gli stop vengono allargati al minimo del broker se serve.
Uscite: Take Profit fissa un obiettivo a quel multiplo R della distanza dello stop (0 = nessun obiettivo). Breakeven Trigger porta lo stop all'ingresso quando l'operazione ha guadagnato quei R. A Entry Cutoff tutti gli ordini pendenti vengono cancellati; a Day Exit Time tutte le posizioni dell'EA vengono chiuse, e una posizione di un giorno server precedente si chiude subito (vuoto = tenere overnight). Chiusure, cancellazioni e modifiche dello stop solo fuori dalla zona di congelamento e dentro la sessione, altrimenti ritentate.
Lot Sizing: Fixed lots usa Fixed Lots. Risk % of balance: lotti = saldo x Risk per Trade / 100 / perdita per lotto allo stop, arrotondato al passo e limitato da Max Lots. Sotto il minimo del broker si usa il lotto minimo, quindi conti piccoli, o l'oro con range giornalieri ampi, possono rischiare più della percentuale impostata. Il margine libero viene controllato prima di ogni ordine (NO MARGIN).
Consigliato: XAUUSD e GBPUSD. Coppie poco volatili come EURUSD hanno dato risultati deboli con i default. Gli orari sono del server (pensato per server GMT+2/+3). Da ottimizzare: Range Lookback, entrambe le distanze dei trigger, Stop Loss Placement, Day Exit Time e Maximum Range.
Comandi del pannello
- [-] / [+]: compattare in una pillola (TREBUCHET più lo stato) o espandere.
- <>: spostare il pannello nell'angolo successivo.
- PAUSE / RESUME: PAUSE cancella gli ordini pendenti e blocca i nuovi ingressi (le posizioni aperte restano gestite); RESUME ripiazza la forchetta di oggi se è ancora valida. Salvato in una variabile globale, sopravvive ai riavvii.
- BRACKET ON / BRACKET OFF: mostrare o nascondere le linee sul grafico.
- CLOSE ALL: il primo clic mostra CONFIRM?, un secondo clic entro 4 secondi chiude tutte le posizioni e cancella tutti gli ordini pendenti dell'EA sul simbolo.
Compattazione, angolo e linee tornano ai parametri quando l'EA viene riapplicato.
Letture del pannello
- LED di intestazione: verde con forchetta armata o operazione attiva, ambra in pausa, grigio altrimenti.
- DAY STATE: badge WAITING FOR ANCHOR, BRACKET ARMED, LONG LIVE, SHORT LIVE, PAUSED, DAY QUOTA USED, DAY DONE (dopo lo stop ingressi), BRACKET SPENT (entrambi i lati usati), RANGE TOO NARROW, RANGE TOO WIDE o NO DAILY HISTORY; data; ora e prezzo ANCHOR; orari CUTOFF ed EXIT.
- RANGE ENGINE: periodo e base; valore RANGE con entrambi i K; HH, LL, HC, LC; un indicatore range / ATR da 0 a 3 con tacche su entrambi i limiti; il rapporto, i limiti e OK o il motivo.
- BRACKET: barra con il trigger di vendita (corallo), l'ancora (bronzo) e il trigger di acquisto (turchese); il marcatore mostra il Bid e cambia colore oltre un trigger. Sotto: prezzi SELL, ANCHOR e BUY e la distanza da ogni trigger in punti. A destra: STOP AT ANCHOR, STOP+REVERSE o STOP x.xxR e l'obiettivo in R.
- Righe di lato LONG e SHORT: READY, BUY STOP AT / SELL STOP AT prezzo, WATCHING prezzo (VIRTUAL), FILLED - IN TRADE, TRADED TODAY, MISSED: PRICE ALREADY BEYOND, SKIPPED: NO MARGIN o ORDER FAILED, CANCELLED: OCO, CUTOFF, QUOTA, PAUSED, MANUAL o NEW DAY, NO BRACKET TODAY.
- POSITION: FLAT, oppure lato, lotti, ingresso e profitto fluttuante; SL, TP, R e BE ([x] quando lo stop è a pareggio). Senza posizione: TODAY operazioni / massimo e DAY P/L, oppure NEW ENTRIES PAUSED.
- ACTIVITY: gli ultimi tre eventi con orario: BRACKET, NO BRACKET, BUY STOP / SELL STOP piazzato, BUY FILLED / SELL FILLED, STOP CANCELLED, MISSED, SKIPPED, ORDER FAILED, BREAKEVEN, CLOSED (uscita giornaliera, giorno precedente, manuale), CLOSE ALL, PAUSED by user, RESUMED by user.
- Riga in basso: TRADES, percentuale WIN e NET del profitto chiuso dell'EA sul simbolo.
Linee sul grafico
Dall'ancora all'uscita giornaliera: una linea turchese BUY TRIGGER, una corallo SELL TRIGGER e una tratteggiata bronzo ANCHOR, etichettate per oggi; Past Days Drawn on Chart forchette precedenti in linee sottili (grigie se filtrate). Visibile fino a H4.
Avvisi
Pop-up Alerts e Push Notifications avvisano quando la forchetta viene impostata all'ancora, a ogni esecuzione e a ogni chiusura. Non nello Strategy Tester.
Effetti collaterali
- Variabile globale TBE_PAUSE_<simbolo>_<magic> = 1 durante la pausa.
- Oggetti con prefisso TBE_P_ (pannello) e TBE_Z_ (linee), rimossi con l'EA. Timer di un secondo. Nessun file, nessuna DLL.
bool paused = GlobalVariableCheck("TBE_PAUSE_XAUUSD_26110901"); Parametri di input
Range Engine
- Range Lookback (4 giorni), Range Basis (Dual Thrust (max of HH-LC, HC-LL); oppure Average daily range, Previous day range).
- Buy Trigger Distance (0.50) e Sell Trigger Distance (0.50): x range.
- Daily ATR Period (14 giorni), Minimum Range (0.0 x ATR, 0 = disattivato), Maximum Range (2.5 x ATR, 0 = disattivato).
Orari
- Anchor Time (00:00 = apertura del giorno), Entry Cutoff (21:00), Day Exit Time (22:00, vuoto = disattivato): ora del server, ancora prima dello stop ingressi, stop ingressi non dopo l'uscita.
Ordini e uscite
- Entry Orders (Pending stop orders; oppure 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 = solo uscita giornaliera), Breakeven Trigger (0.0 R = disattivato).
- Max Trades per Day (2), Cancel the Opposite Order on Fill (false).
Gestione del capitale
- Lot Sizing (Risk % of balance; oppure Fixed lots), Fixed Lots (0.10), Risk per Trade (1.0 %), Max Lots (5.0).
- Max Spread for Market Entries (0 punti = disattivato).
Esecuzione
- Magic Number (26110901, uno per grafico sullo stesso simbolo), Max Slippage (30 punti), Order Comment (Trebuchet).
Visualizzazione e avvisi
- 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).
Configurazioni tipiche
- Forchetta giornaliera classica (XAUUSD, GBPUSD): valori di default.
- Stop e inversione: Stop Loss Placement = At the opposite trigger (stop and reverse), Max Trades per Day 2.
- Forchetta di Londra: Anchor Time 08:00, Entry Cutoff 16:00, Day Exit Time 21:00, Range Basis = Average daily range, entrambe le distanze 0.40.
- Obiettivo e protezione: Take Profit 2.0, Breakeven Trigger 1.0, Cancel the Opposite Order on Fill true.
Note
- Dopo un riavvio la forchetta viene ricostruita dalle barre giornaliere; gli ordini esistenti mantengono il loro lato e un trigger superato non viene mai inseguito.
- Gli ordini pendenti non passano mai al giorno successivo.
- Un Day Exit Time vuoto è accettato solo insieme a un Take Profit maggiore di 0; altrimenti un'operazione potrebbe chiudersi solo allo stop.
- Lo Strategy Tester usa le stesse regole; pannello e linee solo in modalità visuale. Prova prima su un conto demo.
Avvertenza sul rischio
Il trading su forex e CFD a margine comporta un alto rischio di perdita. I risultati passati o simulati non garantiscono risultati futuri. Questo EA non promette profitti; usa solo capitale che puoi permetterti di perdere.
