Individua i breakout dal canale di Donchian in stile Turtle e li segue tutti con tre uscite contemporanee: uno stop trailing basato sull'ATR, il canale di uscita Turtle e un obiettivo fisso. Un pannello mostra quale uscita ha generato il massimo profitto sul tuo simbolo, in R, spread incluso. Senza repainting, con buffer per un Expert Advisor.
I sistemi di breakout si basano interamente sull’uscita. L’entrata è semplice e su questo tutti sono d’accordo: se il prezzo chiude al di sopra del massimo più alto delle ultime 20 barre, si acquista. Dopodiché iniziano le discussioni. Seguirlo con l’ATR? Utilizzare il canale di uscita a 10 barre delle Turtle? Prendere un 2R fisso e chiudere la posizione?
Ogni indicatore di breakout che ho trovato sceglie un’uscita e la traccia. Volevo vedere tutte e tre le opzioni sugli stessi punti di ingresso, sul mio simbolo, prima di scegliere. Quindi questo indicatore prende ogni breakout e lo elabora con tre uscite in parallelo, poi affianca i risultati.
Ogni risultato è misurato in R, dove 1R è la distanza dall’entrata allo stop iniziale. Lo spread della barra del segnale viene sottratto come costo. Uno stop superato da un gap di prezzo viene eseguito al prezzo di apertura della barra, non al prezzo dello stop. Quando sia lo stop che l’obiettivo si trovano all’interno di una singola barra, lo stop viene conteggiato, poiché una singola barra non permette di stabilire quale dei due si sia verificato per primo.
Ogni breakout viene valutato separatamente, quindi le operazioni possono sovrapporsi. Il pannello mostra un confronto tra le uscite relative allo stesso insieme di entrate. Non si tratta di una simulazione di conto con dimensionamento delle posizioni.
L’uscita scelta viene tracciata anche sul grafico. Ogni operazione è contrassegnata da una linea di ingresso e dal relativo risultato in R, mentre lo stop dell’ultima operazione è rappresentato da una linea tratteggiata.
XAUUSD, dati MetaQuotes-Demo, parametri predefiniti. La simulazione del 2025 copre i 360 giorni fino al 31 dicembre 2025. La simulazione del 2026 copre i 260 giorni fino al 18 settembre 2026.
| XAUUSD | Operazioni | Tasso di successo | PF | Somma |
|---|---|---|---|---|
| H4 2025, uscita A (ATR trail) | 129 | 43,4% | 1,45 | +23,08R |
| H4 2025, uscita B (canale a 10 barre) | 129 | 41,1% | 2,34 | +66,20R |
| H4 2025, uscita C (obiettivo 2R) | 129 | 45,7% | 1,68 | +47,83R |
| H4 2026, uscita A | 76 | 35,5% | 1,10 | +3,46R |
| H4 2026, uscita B | 76 | 35,5% | 1,70 | +22,35R |
| H4 2026, uscita C | 75 | 38,7% | 1,26 | +11,99R |
| H1 2025, uscita A | 465 | 37,6% | 1,32 | +70,32R |
| 1° semestre 2025, uscita B | 465 | 37,8% | 1,23 | +51,18R |
| 1° semestre 2025, uscita C | 465 | 37,8% | 1,21 | +60,32R |
| Primo semestre 2026, uscita A | 270 | 39,6% | 1,21 | +25,14R |
| 1° semestre 2026, uscita B | 270 | 40,4% | 1,29 | +35,15R |
| 1° semestre 2026, uscita C | 269 | 38,3% | 1,23 | +39,06R |
Tutti e dodici sono positivi. Su H4 il canale di uscita Turtle è stato il migliore in entrambi gli anni, mentre il trail ATR è risultato il più debole. Su H1 non c'è stato un vincitore chiaro: il trail ha prevalso nel 2025 e l'obiettivo fisso nel 2026. Questo è il motivo per cui esiste il panel. La “migliore strategia di uscita” variava a seconda del timeframe e dell’anno, anche per un singolo titolo.
Ora la parte importante, prima che qualcuno si entusiasmi troppo. L’oro è salito molto nel 2025, e questo si riflette nella ripartizione. Con l’uscita B su H4, le 99 posizioni lunghe hanno guadagnato +79,4R e le 30 posizioni corte hanno perso -13,2R. Nel 2026 l’oro ha oscillato in entrambe le direzioni e entrambe le parti hanno registrato risultati positivi: 42 posizioni lunghe hanno guadagnato +14,9R e 34 posizioni corte hanno guadagnato +7,5R.
Per capire in che misura ciò sia dovuto al trend dell’oro, ho applicato le stesse impostazioni predefinite a tre coppie di valute sul grafico H4 nello stesso periodo del 2026:
| H4 2026 | Somma uscita A (PF) | Somma uscita B (PF) | Somma uscita C (PF) |
|---|---|---|---|
| EURUSD | -11,74R (0,68) | -3,86R (0,89) | -5,97R (0,88) |
| GBPUSD | -9,21R (0,77) | -3,15R (0,91) | +6,90R (1,13) |
| USDJPY | +1,30R (1,03) | +0,73R (1,02) | +3,03R (1,06) |
Da stabile a negativo. I breakout richiedono un mercato in trend, e in questo periodo l’oro lo era mentre queste coppie per lo più non lo erano. Quindi interpreto i dati sull’oro come “i breakout hanno funzionato mentre l’oro era in trend”, non come prova che funzioneranno sempre.
Fig. 1. XAUUSD H4, da fine luglio ametà settembre 2026: frecce di breakout, il canale di ingresso e il risultato di ciascuna operazione con uscita B
Fig. 2. Il pannello per XAUUSD H4 nel 2025 e nel 2026, con l’uscita B tracciata
| Dati di input | Predefinito | Cosa fa |
|---|---|---|
| InpEntryBars | 20 | Lunghezza del canale di ingresso in barre |
| InpExitBars | 10 | Lunghezza del canale di uscita per l'uscita B |
| InpATRPeriod | 20 | Periodo ATR |
| InpStopATR | 2,0 | Stop iniziale, multipli dell'ATR |
| InpTrailATR | 3,0 | Distanza di trail di uscita, multipli dell'ATR |
| InpTargetR | 2,0 | Uscita C: take profit, multipli di R |
| InpUseTrend | false | Conserva solo i breakout sul lato del trend EMA |
| InpTrendEMA | 200 | Periodo dell'EMA di tendenza, timeframe del grafico |
| InpDrawExit | A. Trail ATR | Punto di uscita tracciato sul grafico e inviato ai buffer da 6 a 9 |
| InpDaysBack | 365 | Giorni di dati storici nella scheda di valutazione |
| InpDrawDays | 60 | Giorni con linee di trading tracciate |
| InpShowPanel | true | Mostra il pannello |
| InpPanelCorner | sinistra in alto | Angolo del pannello |
| InpAlertPopup | true | Avviso popup in caso di nuovo breakout |
| InpAlertPush | false | Notifica push in caso di un nuovo breakout |
Per il classico Turtle System 2, impostare InpEntryBars su 55 e InpExitBars su 20.
Un breakout viene registrato sulla barra che ha chiuso oltre il canale, quindi un EA lo legge allo shift 1 una volta che quella barra si è chiusa. Le frecce vengono mantenute sull'intera cronologia caricata, non solo all'interno della finestra di analisi. Ho verificato nel Strategy Tester che i segnali rilevati in tempo reale dall’EA corrispondessero esattamente a quelli presenti nei buffer al termine dell’esecuzione: 473 su 473 su H1 e 131 su 131 su H4 per l’oro nel 2025.
| Buffer | Contenuto |
|---|---|
| 0 | Acquisto al breakout, il valore è l’entrata pianificata (apertura della barra successiva), EMPTY_VALUE in caso contrario |
| 1 | Vendi al breakout, stesso formato |
| 2, 3 | Massimo e minimo del canale di ingresso |
| 4 | Stop dell'ultima operazione al di sotto del livello di uscita tracciato |
| 5 | Stop iniziale sulla barra di breakout |
| da 6 a 9 | Scheda riassuntiva dell'uscita tracciata sull'ultima barra chiusa: operazioni chiuse, profitti, somma in R, somma delle perdite in R |
int handle; datetime lastBar = 0; int OnInit() { handle = iCustom(_Symbol, PERIOD_H4, "BreakoutExitLab"); return(handle == INVALID_HANDLE ? INIT_FAILED : INIT_SUCCEEDED); } void OnTick() { //--- I breakout vengono confermati sulle barre chiuse, quindi controlla una volta per ogni nuova barra datetime bar = iTime(_Symbol, PERIOD_H4, 0); if(bar == lastBar) return; lastBar = bar; double buy[1], sell[1], stop[1]; if(CopyBuffer(handle, 0, 1, 1, buy) < 1 || CopyBuffer(handle, 1, 1, 1, sell) < 1 || CopyBuffer(handle, 5, 1, 1, stop) < 1) return; if(buy[0] != EMPTY_VALUE) Print("Breakout buy, initial stop ", stop[0]); if(sell[0] != EMPTY_VALUE) Print("Breakout sell, initial stop ", stop[0]); }
L’indicatore non ha gruppi di input di proposito. MQL5 considera ogni “gruppo di input” come un parametro di iCustom(), e ogni valore successivo verrebbe spostato di una posizione.
Una piccola cosa che ho imparato mentre creavo il pannello: l’etichetta di un grafico può contenere al massimo 63 caratteri. Le prime righe del mio pannello erano più lunghe e MetaTrader le tagliava a metà di un numero, quindi ora le righe sono più brevi.
I risultati derivano dai dati delle barre, quindi l’ordine degli eventi all’interno di una singola barra è sconosciuto. Viene addebitato solo lo spread, senza commissioni né slippage al di là dei gap attraverso lo stop. Le operazioni vengono valutate una per una e possono sovrapporsi, quindi le somme non costituiscono una curva del capitale. Ogni dato riportato sopra proviene dai dati di un broker relativi a due periodi in cui l’oro ha registrato un forte trend.
Ali Rajput
Tradotto dall’inglese da MetaQuotes Ltd.
Codice originale https://www.mql5.com/en/code/77687
ATS Confirmed Swings - non-repainting swing highs and lows
Segna i massimi e i minimi di oscillazione solo dopo che le barre chiuse con N li hanno confermati, quindi un’oscillazione tracciata non si sposta né scompare mai.
Basket Pair Closer
Position manager for MT5 that closes the best winner together with the worst loser when their combined result reaches your minimum. Basket take profit and stop loss in money, magic filter, simple panel. Works with grid, martingale and manual trades. Open source code.
DataSnooping: SPA test, Reality Check, StepM and model confidence set
Is the best of many strategies really better than the benchmark? Hansen's SPA test, White's Reality Check, Romano-Wolf StepM and the model confidence set.
Swap Markup Scanner
Shows the broker's hidden financing markup and the carry for every symbol, as annual % of notional.