Iscriviti alla lista d'attesa
Strategie / Breakout / Trend Breakout

Trend Breakout

Un massimo frattale avvia una linea di tendenza discendente, e una rottura in due fasi di quella linea arma un buy stop 0.3 ATR(7) sopra il massimo recente. Le uscite usano una banda esponenziale e RSI(2), chiudendo i long quando l'RSI è a 85 o più e il prezzo è di nuovo sotto la banda superiore. Gli short rispecchiano la logica.

BreakoutLong & shortSwingUSD/JPY4 ore
n/aProfit factor
161,440Profitto netto JPY
53.36%Percentuale di successo
819Operazioni
-93,910Max drawdown
197Media operazione

Migliore esecuzione su 8. USD/JPY, 4 ore, spread 1, dall'esecuzione sweeps:2026-09-17-USDJPY-4h-opt.tsv:2.

Regole di ingresso, long

  1. Un massimo frattale (una bar più alta delle due bar su ciascun lato) avvia una linea di tendenza discendente
  2. Un buy stop viene posizionato 0.3 ATR(7) sopra il massimo più alto delle ultime 2 bar e riposizionato a ogni bar finché la rottura tiene

Regole di ingresso, short

  1. Un minimo frattale avvia una linea di tendenza ascendente
  2. Un sell stop viene posizionato 0.3 ATR(7) sotto il minimo più basso delle ultime 2 bar e riposizionato a ogni bar finché la rottura tiene

Regole di uscita

  1. Nessuno stop loss o target fisso
  2. Un'uscita long viene armata quando il prezzo rientra nella banda esponenziale superiore (34, 1.618 deviazioni) o segna un nuovo massimo o minimo a 100 bar
  3. Gli short rispecchiano questo con la banda inferiore e RSI(2) a 15 o meno

Condizioni di test

PeriodoFino al 2026-09-17
StrumentoUSD/JPY, 4 ore
Spread1 punti
Contratti1
Capitale iniziale1,000,000
CostiSolo spread. Commissioni e finanziamento overnight non sono inclusi.
BarreFino a 200,000 barre, meno dove lo strumento ha meno storico
Ultimo test2026-09-17
Parametri (12)
positionSize
Contratti per operazione
1
fractalBars
Bar che il centro del frattale a 5 bar deve superare (strutturale, mantenere a 4)
4
breakoutBars
Bar usate per il massimo o minimo di breakout
2
atrPeriod
Lunghezza ATR per il buffer di ingresso
7
atrMultiplier
Buffer di ingresso oltre il livello di breakout, in ATR
0.3
bandPeriod
Lunghezza delle bande esponenziali sul log-prezzo
34
seedPeriod
Lunghezza SMA usata per inizializzare le bande sulle prime bar
3
bandWidth
Ampiezza delle bande in deviazioni standard
1.618
rsiPeriod
Lunghezza RSI per l'uscita
2
overboughtLevel
Livello RSI richiesto per un'uscita long
85
oversoldLevel
Livello RSI richiesto per un'uscita short
15
lookbackPeriod
Finestra per il massimo e minimo di swing precedenti
100

Ogni esecuzione

Mercati e timeframe testati

MercatoTimeframePFOperazioni% successoNettoMax DD
USD/JPYMiglior esecuzione4 oren/a 81953.36161,440 JPY-93,910
USD/JPYGiornalieron/a 30059.00754,540 JPY-174,840
Nikkei 225Giornalieron/a 26261.0720,201 USD-12,694
ArgentoGiornalieron/a 25550.598,055 USD-2,895
Petrolio BrentGiornalieron/a 11960.504,755 EUR-4,645
GBP/USDGiornalieron/a 33459.883,432 USD-2,003
FTSE 100Giornalieron/a 29754.552,325 EUR-948
OroGiornalieron/a 28755.05624 EUR-317

Grafici

Risultati per esecuzione

Profitto nettoMax drawdown

Il codice

ProBuilder, riscritto secondo lo standard interno

// ============================================================
// Trend Breakout
// ProRealAlgos Strategy Library  |  prorealalgos.com
// Type: Breakout
// Direction: Long & short
// Timeframe tested: 4 hours
// ============================================================

// --- Settings ---
DEFPARAM CumulateOrders = false

// --- Parameters ---
positionSize = 1          // contracts per trade
fractalBars = 4           // bars the centre of the 5-bar fractal must beat, keep at 4
breakoutBars = 2          // bars for the breakout high / low
atrPeriod = 7             // ATR length for the entry buffer
atrMultiplier = 0.3       // entry buffer beyond the breakout level, in ATRs
bandPeriod = 34           // length of the log-price exponential bands
seedPeriod = 3            // SMA used to seed the bands on early bars
bandWidth = 1.618         // band width in standard deviations
rsiPeriod = 2             // RSI length for the exit
overboughtLevel = 85      // long exit needs RSI at or above this
oversoldLevel = 15        // short exit needs RSI at or below this
lookbackPeriod = 100      // window for the prior swing high / low

// State, seeded so every value is defined on the first bar.
ONCE fractalHighCount = 0
ONCE fractalLowCount = 0
ONCE trendBreak = 0
ONCE bearSetup = 0
ONCE bullSetup = 0
ONCE fractalHigh = 0
ONCE fractalLow = 0
ONCE fractalBar = 0
ONCE trendHeight = 0
ONCE closeHeight = 0
ONCE maxAngle = 0
ONCE logEma = 0
ONCE logVariance = 0
ONCE longExitArmed = 0
ONCE shortExitArmed = 0

// --- Indicators ---
// Count how many of the last five bars the bar two back beats.
FOR i = 0 TO fractalBars DO
  IF high[2] > high[i] THEN
    fractalHighCount = fractalHighCount + 1
  ENDIF
  IF low[2] < low[i] THEN
    fractalLowCount = fractalLowCount + 1
  ENDIF
NEXT

// A fractal high starts a bearish trend line, a fractal low a bullish one.
IF fractalHighCount = fractalBars THEN
  IF bearSetup = 0 AND bullSetup = 0 THEN
    bearSetup = 1
  ENDIF
  fractalHigh = high[2]
  fractalBar = BarIndex - 2
ENDIF
IF fractalLowCount = fractalBars THEN
  IF bearSetup = 0 AND bullSetup = 0 THEN
    bullSetup = 1
  ENDIF
  fractalLow = low[2]
  fractalBar = BarIndex - 2
ENDIF
fractalHighCount = 0
fractalLowCount = 0

IF bearSetup = 1 THEN
  trendHeight = fractalHigh - high
  closeHeight = fractalHigh - close
ELSIF bullSetup = 1 THEN
  trendHeight = low - fractalLow
  closeHeight = close - fractalLow
ENDIF

// Track the steepest angle of the trend line from the fractal, then detect
// a two-step break of that line (trendBreak 1, then 2).
IF BarIndex - 2 = fractalBar THEN
  maxAngle = Tan(2 / trendHeight)
ENDIF
IF BarIndex - 2 > fractalBar THEN
  IF bearSetup = 1 THEN
    IF Tan((BarIndex - fractalBar) / trendHeight) > maxAngle AND (close < open OR close < close[1]) THEN
      maxAngle = Tan((BarIndex - fractalBar) / trendHeight)
      trendBreak = 0
    ENDIF
    IF trendBreak = 0 AND Tan((BarIndex - fractalBar) / closeHeight) > maxAngle AND close > open THEN
      trendBreak = 1
    ELSIF trendBreak = 1 AND Tan(((BarIndex - 1) - fractalBar) / closeHeight) > maxAngle AND close > close[1] THEN
      trendBreak = 2
    ENDIF
  ELSIF bullSetup = 1 THEN
    IF Tan((BarIndex - fractalBar) / trendHeight) > maxAngle AND (close > open OR close > close[1]) THEN
      maxAngle = Tan((BarIndex - fractalBar) / trendHeight)
      trendBreak = 0
    ENDIF
    IF trendBreak = 0 AND Tan((BarIndex - fractalBar) / closeHeight) > maxAngle AND close < open THEN
      trendBreak = 1
    ELSIF trendBreak = 1 AND Tan(((BarIndex - 1) - fractalBar) / closeHeight) > maxAngle AND close < close[1] THEN
      trendBreak = 2
    ENDIF
  ENDIF
ENDIF

atrValue = AverageTrueRange[atrPeriod](close)

Altre 67 righe: le regole di ingresso e di uscita.

Configurazione

Come caricarla

  1. Copia il codice con il pulsante di copia nel blocco di codice.
  2. In ProRealTime, apri un grafico dello strumento e del timeframe che vuoi testare, poi apri ProOrder > Nuovo sistema di trading e scegli "Crea con programmazione".
  3. Incolla il codice, dai un nome al sistema e salvalo.
  4. Clicca "Backtest", imposta il tuo spread e la tua position size, ed eseguila prima di considerare di operare in reale.

Indicatori utilizzati

ATRRSIBande di Bollinger
Leggi prima questoDebolezze note3 punti
  • Nessuno stop loss o target fisso. Le uscite dipendono solo dalla banda e dalle condizioni RSI.
  • Il flag di uscita armata non viene mai reimpostato una volta attivato, quindi dopo la prima uscita armata la condizione sulla banda non conta più.
  • Il profit factor non è stato registrato per nessun mercato. La migliore esecuzione su USD/JPY 4 ore ha prodotto JPY 161,440 con un max drawdown di JPY 93,910.

Domande

Su questa strategia

Trend Breakout può funzionare in ProOrder?

Sì, gli ingressi sono ordini stop pendenti validi per una bar. Il codice è stato riscritto ma non verificato in compilazione, e le statistiche provengono dalla versione precedente.

Quali sono stati i risultati per mercato?

Tutte e sette le righe sono state profittevoli. USD/JPY giornaliero ha prodotto JPY 754,540 su 300 operazioni, e Nikkei 225 giornaliero ha prodotto USD 20,201.20.

Quanto drawdown per contratto?

Con 1 contratto la migliore esecuzione ha avuto un max drawdown di JPY 93,910. Gold giornaliero è stato molto più piccolo, a EUR 317.10.

Perché barre a 4 ore e giornaliere?

Le linee di tendenza tracciate dai frattali richiedono abbastanza bar tra i punti di swing. Ogni riga testata ha usato bar a 4 ore o giornaliere.

Correlati

Strategie come questa

Bollinger Squeeze

Usa lo stesso indicatore.

14.30 PF · 86 operazioni

Supertrend Counter Trend

Miglior esecuzione sullo stesso mercato, USD/JPY.

3.47 PF · 1,444 operazioni

Breakout Regime Filter

Anche una strategia breakout.

6.28 PF · 70 operazioni

Le rotture delle linee di tendenza sono difficili da programmare a mano. Scopri come testiamo idee come questa nella community ProRealAlgos.

La community ProRealAlgos ottiene le regole complete, il codice completo e il portafoglio automatizzato.

I risultati passati dei backtest non garantiscono risultati futuri. Questo non è un consiglio finanziario. Curato e mantenuto da ProRealAlgos. ProRealTime™ è un marchio di ProRealTime SAS. prorealalgos.comStatisticheDocumentazione