Ställ dig i kön
Strategier / Breakout / Trend Breakout

Trend Breakout

En fraktal high startar en fallande trendlinje, och ett brott i två steg av den linjen aktiverar en buy stop 0.3 ATR(7) över den senaste highen. Exiterna använder ett exponentiellt band och RSI(2), och stänger longs när RSI är 85 eller högre och priset är tillbaka under det övre bandet. Shorts speglar logiken.

BreakoutLong & shortSwingUSD/JPY4 timmar
n/aProfit factor
161,440Nettovinst JPY
53.36%Träffsäkerhet
819Affärer
-93,910Max drawdown
197Snittaffär

Bästa körning av 8. USD/JPY, 4 timmar, spread 1, från körning sweeps:2026-09-17-USDJPY-4h-opt.tsv:2.

Entryregler, long

  1. En fraktal high (en bar högre än de två barerna på varje sida) startar en fallande trendlinje
  2. En buy stop placeras 0.3 ATR(7) över den högsta highen av de senaste 2 barerna och flyttas om varje bar så länge brottet håller

Entryregler, short

  1. En fraktal low startar en stigande trendlinje
  2. En sell stop placeras 0.3 ATR(7) under den lägsta lowen av de senaste 2 barerna och flyttas om varje bar så länge brottet håller

Exitregler

  1. Ingen fast stop loss eller mål
  2. En long-exit aktiveras när priset faller tillbaka in i det övre exponentiella bandet (34, 1.618 avvikelser) eller gör en ny high eller low över 100 barer
  3. Shorts speglar detta med det nedre bandet och RSI(2) på 15 eller lägre

Testvillkor

PeriodTill och med 2026-09-17
InstrumentUSD/JPY, 4 timmar
Spread1 punkter
Kontrakt1
Startkapital1,000,000
KostnaderEndast spread. Courtage och overnight-finansiering ingår inte.
BarerUpp till 200,000 barer, färre där instrumentet har kortare historik
Senast testad2026-09-17
Parametrar (12)
positionSize
Kontrakt per affär
1
fractalBars
Antal barer som mitten av 5-barsfraktalen måste överträffa (strukturellt, behåll på 4)
4
breakoutBars
Barer som används för breakout-highen eller lowen
2
atrPeriod
ATR-längd för entrybufferten
7
atrMultiplier
Entrybuffert utanför breakout-nivån, i ATR
0.3
bandPeriod
Längd på de exponentiella log-prisbanden
34
seedPeriod
SMA-längd som används för att initiera banden på de tidiga barerna
3
bandWidth
Bandbredd i standardavvikelser
1.618
rsiPeriod
RSI-längd för exiten
2
overboughtLevel
RSI-nivå som en long-exit kräver
85
oversoldLevel
RSI-nivå som en short-exit kräver
15
lookbackPeriod
Fönster för föregående swing high och low
100

Varje körning

Testade marknader och tidsramar

MarknadTidsramPFAffärerTräff %NettoMax DD
USD/JPYBästa körning4 timmarn/a 81953.36161,440 JPY-93,910
USD/JPYDagn/a 30059.00754,540 JPY-174,840
Nikkei 225Dagn/a 26261.0720,201 USD-12,694
SilverDagn/a 25550.598,055 USD-2,895
BrentoljaDagn/a 11960.504,755 EUR-4,645
GBP/USDDagn/a 33459.883,432 USD-2,003
FTSE 100Dagn/a 29754.552,325 EUR-948
GuldDagn/a 28755.05624 EUR-317

Diagram

Resultat per körning

NettovinstMax drawdown

Koden

ProBuilder, omskriven till husstandard

// ============================================================
// 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)

67 rader till: entry- och exitreglerna.

Uppsättning

Så laddar du in den

  1. Kopiera koden med kopieringsknappen på kodblocket.
  2. I ProRealTime, öppna ett diagram för det instrument och den tidsram du vill testa, öppna sedan ProOrder > Nytt handelssystem och välj "Skapa med programmering".
  3. Klistra in koden, ge systemet ett namn och spara det.
  4. Klicka på "Backtest", ange din egen spread och position size, och kör den innan du överväger att handla den live.

Använda indikatorer

ATRRSIBollinger Bands
Läs det här förstKända svagheter3 punkter
  • Ingen fast stop loss eller mål. Exiterna beror endast på bandet och RSI-villkoren.
  • Flaggan för aktiverad exit återställs aldrig när den väl är satt, så efter den första aktiverade exiten spelar bandvillkoret inte längre någon roll.
  • Profit factor registrerades inte för någon marknad. Den bästa körningen på USD/JPY 4 timmar gav JPY 161,440 med en max drawdown på JPY 93,910.

Frågor

Om den här strategin

Kan Trend Breakout köras i ProOrder?

Ja, entryerna är väntande stoppordrar som gäller i en bar. Koden har skrivits om men inte kompileringskontrollerats, och statistiken kommer från den tidigare versionen.

Vad blev resultaten per marknad?

Alla sju rader var lönsamma. USD/JPY Dag gav JPY 754,540 över 300 affärer, och Nikkei 225 Dag gav USD 20,201.20.

Hur mycket drawdown per kontrakt?

Vid 1 kontrakt hade den bästa körningen en max drawdown på JPY 93,910. Gold Dag var mycket mindre på EUR 317.10.

Varför 4-timmesbarer och dagsbarer?

Trendlinjer dragna från fraktaler behöver tillräckligt många barer mellan swingpunkterna. Varje testad rad använde 4-timmars- eller dagsbarer.

Relaterat

Strategier som den här

Bollinger Squeeze

Använder samma indikator.

14.30 PF · 86 affärer

Supertrend Counter Trend

Bästa körning på samma marknad, USD/JPY.

3.47 PF · 1,444 affärer

Breakout Regime Filter

Även en breakout-strategi.

6.28 PF · 70 affärer

Brott i trendlinjer är svåra att koda för hand. Se hur vi testar idéer som denna i ProRealAlgos-communityn.

ProRealAlgos-communityn får de fullständiga reglerna, den kompletta koden och den automatiserade portföljen.

Tidigare backtest-resultat är ingen garanti för framtida resultat. Detta är inte finansiell rådgivning. Kurerat och underhållet av ProRealAlgos. ProRealTime™ är ett varumärke som tillhör ProRealTime SAS. prorealalgos.comStatistikDokumentation