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.
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.
| Period | Till och med 2026-09-17 |
| Instrument | USD/JPY, 4 timmar |
| Spread | 1 punkter |
| Kontrakt | 1 |
| Startkapital | 1,000,000 |
| Kostnader | Endast spread. Courtage och overnight-finansiering ingår inte. |
| Barer | Upp till 200,000 barer, färre där instrumentet har kortare historik |
| Senast testad | 2026-09-17 |
| 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
| Marknad | Tidsram | PF | Affärer | Träff % | Netto | Max DD |
|---|---|---|---|---|---|---|
| USD/JPYBästa körning | 4 timmar | n/a | 819 | 53.36 | 161,440 JPY | -93,910 |
| USD/JPY | Dag | n/a | 300 | 59.00 | 754,540 JPY | -174,840 |
| Nikkei 225 | Dag | n/a | 262 | 61.07 | 20,201 USD | -12,694 |
| Silver | Dag | n/a | 255 | 50.59 | 8,055 USD | -2,895 |
| Brentolja | Dag | n/a | 119 | 60.50 | 4,755 EUR | -4,645 |
| GBP/USD | Dag | n/a | 334 | 59.88 | 3,432 USD | -2,003 |
| FTSE 100 | Dag | n/a | 297 | 54.55 | 2,325 EUR | -948 |
| Guld | Dag | n/a | 287 | 55.05 | 624 EUR | -317 |
Diagram
Koden
// ============================================================ // 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
Frågor
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.
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.
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.
Trendlinjer dragna från fraktaler behöver tillräckligt många barer mellan swingpunkterna. Varje testad rad använde 4-timmars- eller dagsbarer.
Relaterat
ProRealAlgos-communityn får de fullständiga reglerna, den kompletta koden och den automatiserade portföljen.