ADX(14) bestemmer modusen. I rolige markeder kjøper systemet etter en stor ned-candle og går short etter en stor opp-candle, og når ADX er høy følger den candlen i stedet. Longs lukkes 30 barer etter den siste handelen og shorts etter 5 barer.
Beste kjøring av 4. FTSE 100, 4 timer, spread 2, fra kjøring pf:2026-09-24-FTSE100-4h.tsv:2.
| Periode | Frem til 2026-09-25 |
| Instrument | FTSE 100, 4 timer |
| Spread | 2 poeng |
| Kontrakter | 1 |
| Startkapital | 1,000,000 |
| Kostnader | Kun spread. Kommisjoner og overnattfinansiering er ikke inkludert. |
| Barer | Opptil 200,000 barer, færre der instrumentet har kortere historikk |
| Sist testet | 2026-09-25 |
| positionSize Kontrakter per handel | 1 |
| atrPeriod ATR-lengde for candle-størrelse og volatilitetstak | 14 |
| adxPeriod ADX-lengde for regimebytte | 14 |
| adxLongThreshold Longs: ADX over = breakout-regime, under = mean reversion | 36 |
| adxShortThreshold Shorts: ADX over = breakout-regime, under = mean reversion | 24 |
| atrMaxLong Ingen longs når ATR er på eller over dette | 100 |
| atrMaxShort Ingen shorts når ATR er på eller over dette | 200 |
| longReversionMultiplier Long etter en ned-candle større enn så mange ATR-er | 1 |
| longBreakoutMultiplier Long etter en opp-candle større enn så mange ATR-er | 1 |
| shortReversionMultiplier Short etter en opp-candle større enn så mange ATR-er | 1 |
| shortBreakoutMultiplier Short etter en ned-candle større enn så mange ATR-er | 2 |
| maxBarsLong Lukk en long etter så mange barer | 30 |
| maxBarsShort Lukk en short etter så mange barer | 5 |
| midMonthDay Dager til og med denne regnes som første halvdel av måneden | 15 |
| janFirstHalf Sesongvekt, første halvdel av januar (null blokkerer nye longs) | 3 |
| janSecondHalf Sesongvekt, andre halvdel av januar (null blokkerer nye longs) | 0 |
| febFirstHalf Sesongvekt, første halvdel av februar (null blokkerer nye longs) | 3 |
| febSecondHalf Sesongvekt, andre halvdel av februar (null blokkerer nye longs) | 3 |
| marFirstHalf Sesongvekt, første halvdel av mars (null blokkerer nye longs) | 3 |
| marSecondHalf Sesongvekt, andre halvdel av mars (null blokkerer nye longs) | 2 |
| aprFirstHalf Sesongvekt, første halvdel av april (null blokkerer nye longs) | 3 |
| aprSecondHalf Sesongvekt, andre halvdel av april (null blokkerer nye longs) | 3 |
| mayFirstHalf Sesongvekt, første halvdel av mai (null blokkerer nye longs) | 1 |
| maySecondHalf Sesongvekt, andre halvdel av mai (null blokkerer nye longs) | 1 |
| junFirstHalf Sesongvekt, første halvdel av juni (null blokkerer nye longs) | 1 |
| junSecondHalf Sesongvekt, andre halvdel av juni (null blokkerer nye longs) | 2 |
| julFirstHalf Sesongvekt, første halvdel av juli (null blokkerer nye longs) | 3 |
| julSecondHalf Sesongvekt, andre halvdel av juli (null blokkerer nye longs) | 2 |
| augFirstHalf Sesongvekt, første halvdel av august (null blokkerer nye longs) | 2 |
| augSecondHalf Sesongvekt, andre halvdel av august (null blokkerer nye longs) | 3 |
| sepFirstHalf Sesongvekt, første halvdel av september (null blokkerer nye longs) | 3 |
| sepSecondHalf Sesongvekt, andre halvdel av september (null blokkerer nye longs) | 0 |
| octFirstHalf Sesongvekt, første halvdel av oktober (null blokkerer nye longs) | 3 |
| octSecondHalf Sesongvekt, andre halvdel av oktober (null blokkerer nye longs) | 2 |
| novFirstHalf Sesongvekt, første halvdel av november (null blokkerer nye longs) | 1 |
| novSecondHalf Sesongvekt, andre halvdel av november (null blokkerer nye longs) | 3 |
| decFirstHalf Sesongvekt, første halvdel av desember (null blokkerer nye longs) | 3 |
| decSecondHalf Sesongvekt, andre halvdel av desember (null blokkerer nye longs) | 2 |
Hver kjøring
| Marked | Tidsramme | PF | Handler | Treff % | Netto | Max DD |
|---|---|---|---|---|---|---|
| FTSE 100Beste kjøring | 4 timer | 1.17 | 1,514 | 55.75 | 7,580 EUR | -1,646 |
| DAX 40 | Daglig | n/a | 347 | 58.21 | 9,871 EUR | -2,471 |
| GBP/USD | Daglig | n/a | 799 | 55.69 | 7,847 USD | -7,788 |
| Nasdaq 100 | Daglig | n/a | 585 | 50.77 | 2,959 EUR | -1,721 |
Diagrammer
Koden
// ============================================================ // DAX Survivor // ProRealAlgos Strategy Library | prorealalgos.com // Type: Volatility // Direction: Long & short // Timeframe tested: 4 hours // ============================================================ // --- Settings --- DEFPARAM CumulateOrders = false // --- Parameters --- positionSize = 1 // contracts per trade atrPeriod = 14 // ATR length for candle size and volatility cap adxPeriod = 14 // ADX length for the regime switch adxLongThreshold = 36 // longs: ADX above = breakout regime, below = mean reversion adxShortThreshold = 24 // shorts: ADX above = breakout regime, below = mean reversion atrMaxLong = 100 // no longs when ATR is at or above this atrMaxShort = 200 // no shorts when ATR is at or above this longReversionMultiplier = 1 // long after a down candle larger than this many ATRs longBreakoutMultiplier = 1 // long after an up candle larger than this many ATRs shortReversionMultiplier = 1 // short after an up candle larger than this many ATRs shortBreakoutMultiplier = 2 // short after a down candle larger than this many ATRs maxBarsLong = 30 // close a long after this many bars maxBarsShort = 5 // close a short after this many bars midMonthDay = 15 // days up to this count as the first half of the month // Seasonal weights per half month. Only zero matters now: zero blocks new longs. janFirstHalf = 3 janSecondHalf = 0 febFirstHalf = 3 febSecondHalf = 3 marFirstHalf = 3 marSecondHalf = 2 aprFirstHalf = 3 aprSecondHalf = 3 mayFirstHalf = 1 maySecondHalf = 1 junFirstHalf = 1 junSecondHalf = 2 julFirstHalf = 3 julSecondHalf = 2 augFirstHalf = 2 augSecondHalf = 3 sepFirstHalf = 3 sepSecondHalf = 0 octFirstHalf = 3 octSecondHalf = 2 novFirstHalf = 1 novSecondHalf = 3 decFirstHalf = 3 decSecondHalf = 2 // --- Indicators --- atrValue = AverageTrueRange[atrPeriod] adxValue = ADX[adxPeriod] candleBody = abs(open - close) longVolatilityOk = atrValue < atrMaxLong shortVolatilityOk = atrValue < atrMaxShort longBreakoutRegime = adxValue > adxLongThreshold longReversionRegime = adxValue < adxLongThreshold shortBreakoutRegime = adxValue > adxShortThreshold shortReversionRegime = adxValue < adxShortThreshold firstHalf = Day <= midMonthDay IF CurrentMonth = 1 THEN IF firstHalf THEN seasonWeight = janFirstHalf ELSE seasonWeight = janSecondHalf ENDIF ELSIF CurrentMonth = 2 THEN IF firstHalf THEN seasonWeight = febFirstHalf ELSE seasonWeight = febSecondHalf ENDIF ELSIF CurrentMonth = 3 THEN IF firstHalf THEN seasonWeight = marFirstHalf ELSE seasonWeight = marSecondHalf ENDIF ELSIF CurrentMonth = 4 THEN IF firstHalf THEN seasonWeight = aprFirstHalf ELSE seasonWeight = aprSecondHalf ENDIF ELSIF CurrentMonth = 5 THEN IF firstHalf THEN seasonWeight = mayFirstHalf ELSE seasonWeight = maySecondHalf ENDIF ELSIF CurrentMonth = 6 THEN IF firstHalf THEN seasonWeight = junFirstHalf ELSE seasonWeight = junSecondHalf ENDIF ELSIF CurrentMonth = 7 THEN IF firstHalf THEN seasonWeight = julFirstHalf ELSE seasonWeight = julSecondHalf ENDIF ELSIF CurrentMonth = 8 THEN IF firstHalf THEN seasonWeight = augFirstHalf ELSE seasonWeight = augSecondHalf ENDIF ELSIF CurrentMonth = 9 THEN IF firstHalf THEN seasonWeight = sepFirstHalf ELSE seasonWeight = sepSecondHalf ENDIF ELSIF CurrentMonth = 10 THEN IF firstHalf THEN seasonWeight = octFirstHalf ELSE seasonWeight = octSecondHalf ENDIF ELSIF CurrentMonth = 11 THEN IF firstHalf THEN seasonWeight = novFirstHalf ELSE seasonWeight = novSecondHalf ENDIF ELSE IF firstHalf THEN seasonWeight = decFirstHalf ELSE seasonWeight = decSecondHalf ENDIF ENDIF // The weight used to scale size; with fixed size a zero weight still means "no long". seasonAllowsLong = seasonWeight <> 0
35 linjer til: inngangs- og utgangsreglene.
Oppsett
Spørsmål
Ja. Den omskrevne koden er ennå ikke kompileringssjekket, og den publiserte statistikken kommer fra den tidligere koden, så test den i demo før du går live.
FTSE 100 4 timer ga EUR 7,579.90 over 1,514 handler. DAX 40 Daglig ga EUR 9,870.90, GBP/USD Daglig USD 7,847.10 og Nasdaq 100 Daglig EUR 2,959.40.
Max drawdown i den beste kjøringen med 1 kontrakt var EUR 1,645.70. Uten en stopp på plass bør du holde ekstra rom over det tallet.
Holdeperioder på 30 og 5 barer krever saktere barer for å fange en reell swing. Alle testede rader var 4 timer eller Daglig.
Relatert
ProRealAlgos-fellesskapet får de fullstendige reglene, hele koden og den automatiserte porteføljen.