Op de wachtlijst
Strategieën / Mean reversion / Smoothed Bollinger

Smoothed Bollinger: een gefilterd mean reversion-systeem

Een gesmoothe Bollinger %b, opgebouwd uit een zero-lag Heikin-Ashi-slot en een TEMA, spot dips onder 30 boven de 220-daagse SMA en pieken boven 90 eronder. Trades gebruiken een 5% stop, 10% koersdoel, een ATR trailing stop en een tijdsuitstap voor verliezende trades.

Mean reversionLong & shortSwingNasdaq 100Dagelijks
1.66Profit factor
13,584Nettowinst EUR
71.95%Winstpercentage
492Trades
-3,078Max drawdown
27.61Gem. trade

Beste run van 21. Nasdaq 100, Daily, spread 3, uit run pf:2026-09-15-NAS100-D.tsv:1.

Instapregels, long

  1. Het slot staat boven de 220-daagse simple moving average
  2. Geen positie open

Instapregels, short

  1. Het slot staat onder de 220-daagse simple moving average
  2. Geen positie open

Uitstapregels

  1. Stop loss op 5% van de instap
  2. Winstdoel op 10% vanaf de instap
  3. Sluit een verliezende long na 16 bars
  4. Sluit een verliezende short na 2 bars

Testomstandigheden

PeriodeTot 2026-09-15
InstrumentNasdaq 100, Dagelijks
Spread3 punten
Contracten1
Startkapitaal1,000,000
KostenAlleen spread. Commissies en overnight financiering zijn niet meegerekend.
BarsTot 200,000 bars, minder waar het instrument minder historie heeft
Laatst getest2026-09-16
Parameters (16)
positionSize
Contracten per trade
1
trendFilterOn
1 = alleen met het langetermijngemiddelde mee handelen, 0 = uit
1
trailingOn
1 = gebruik de ATR-geschaalde trailing stop, 0 = uit
1
stopLossPct
Beschermende stop, procent van de instapprijs
5
takeProfitPct
Profit target, procent van de instapprijs
10
longTrailFactor
Trailing-afstand voor longs, in geschaalde ATR-eenheden
9
shortTrailFactor
Trailing-afstand voor shorts, in geschaalde ATR-eenheden
4
atrTrailPeriod
ATR-lengte voor de trailing-afstand
200
minTrailPoints
Minimale trailing-afstand
5
maxLosingBarsLong
Sluit een verliezende long na dit aantal bars
16
maxLosingBarsShort
Sluit een verliezende short na dit aantal bars
2
trendPeriod
Lengte trendfilter-SMA
220
bandPeriod
%b standaarddeviatie en lengte van het gemiddelde
17
temaPeriod
TEMA-smoothinglengte
8
oversoldLevel
Koop wanneer %b hieronder staat
30
overboughtLevel
Ga short wanneer %b hierboven staat
90

Elke run

Geteste markten en tijdframes

MarktTijdframePFTradesWinst %NettoMax DD
Nasdaq 100Beste runDagelijks1.66 49271.9513,584 EUR-3,078
S&P 500Dagelijks1.48 51563.302,671 EUR-983
Dow JonesDagelijks1.41 50671.1518,609 EUR-7,365
DAX 40Dagelijks1.37 55566.319,989 EUR-3,831
EUR/USD2 min1.35 5,69022.04147,182 USD-95,915
FTSE 100Dagelijks1.35 39172.634,926 EUR-1,460
EUR/USD3 min1.29 6,19027.21101,696 USD-69,006
Goud4 uur1.25 85647.781,808 EUR-917
EUR/USDDagelijks1.24 55074.1845,379 USD-19,978
Nikkei 225Dagelijks1.24 39771.0320,214 USD-8,103
Nasdaq 1004 uur1.24 90555.148,644 EUR-2,716
S&P 5004 uur1.22 86350.292,118 EUR-682
Dow Jones30 min1.16 1,64127.2417,372 EUR-8,859
Dow Jones4 uur1.15 29848.667,615 EUR-6,958
DAX 404 uur1.15 85453.407,412 EUR-2,818
Goud5 min1.14 3,14113.531,588 EUR-745
Dow Jones1 uur1.08 94132.207,342 EUR-5,710
GBP/USD4 uur1.07 2,05464.952,456 USD-2,275
EUR/USD5 min1.00 6,36629.04-1,346 USD-40,289
Zilver30 min0.82 5,31032.20-46,708 USD-51,178
CAC 40Dagelijksn/a 37568.271,990 EUR-1,678

Grafieken

Resultaten per run

Top 10 van 21 runs. De volledige lijst staat in de tabel hierboven.

Boven 1.0 werd geld verdiend, onder 1.0 werd geld verloren.

De code

ProBuilder, herschreven naar huisstandaard

// ============================================================
// Smoothed Bollinger
// ProRealAlgos Strategy Library  |  prorealalgos.com
// Type: Mean reversion
// Direction: Long & short
// Timeframe tested: Daily
// ============================================================

// --- Settings ---
DEFPARAM CumulateOrders = true
DEFPARAM PreloadBars = 10000

// --- Parameters ---
positionSize = 1            // contracts per trade
trendFilterOn = 1           // 1 = only trade with the long-term average, 0 = off
trailingOn = 1              // 1 = use the ATR-scaled trailing stop, 0 = off
stopLossPct = 5             // protective stop, percent of entry price
takeProfitPct = 10          // profit target, percent of entry price
longTrailFactor = 9         // trailing distance for longs, in scaled ATR units
shortTrailFactor = 4        // trailing distance for shorts, in scaled ATR units
atrTrailPeriod = 200        // ATR length for the trailing distance
minTrailPoints = 5          // minimum trailing distance
maxLosingBarsLong = 16      // close a losing long after this many bars
maxLosingBarsShort = 2      // close a losing short after this many bars
trendPeriod = 220           // trend filter SMA length
bandPeriod = 17             // %b standard deviation and average length
temaPeriod = 8              // TEMA smoothing length
oversoldLevel = 30          // buy when %b is below this
overboughtLevel = 90        // sell short when %b is above this

// --- Indicators ---
// ATR of a scaled price series, kept exactly as the tested code computes it.
atrTrail = AverageTrueRange[atrTrailPeriod]((close/10)*PipSize)/1000
longTrailDistance = round(atrTrail*longTrailFactor)
shortTrailDistance = round(atrTrail*shortTrailFactor)

trendMA = Average[trendPeriod](close)
trendUp = (close > trendMA OR NOT trendFilterOn)
trendDown = (close < trendMA OR NOT trendFilterOn)

// Heikin-Ashi style close, fed through a zero-lag TEMA.
// The second term of haOpen has no /4, exactly as in the tested code.
haOpen = ((Open[1]+High[1]+Low[1]+Close[1])/4 + (Open[2]+High[2]+Low[2]+Close[2]))/2
haClose = ((Open+High+Low+Close)/4 + haOpen + max(high, haOpen) + min(low, haOpen))/4
temaFirst = TEMA[temaPeriod](haClose)
temaSecond = TEMA[temaPeriod](temaFirst)
temaGap = temaFirst - temaSecond
zeroLagHA = temaFirst + temaGap
smoothedZeroLag = TEMA[temaPeriod](zeroLagHA)

// Bollinger %b of the smoothed series.
percentB = (smoothedZeroLag + 2*STD[bandPeriod](smoothedZeroLag) - WeightedAverage[bandPeriod](smoothedZeroLag)) / (4*STD[bandPeriod](smoothedZeroLag))*100

Nog 61 regels: de instap- en uitstapregels.

Opzet

Zo laad je hem in

  1. Kopieer de code met de kopieerknop op het codeblok.
  2. Open in ProRealTime een grafiek van het instrument en tijdframe dat je wilt testen en open dan ProOrder > New trading system en kies "Create with programming".
  3. Plak de code, geef het systeem een naam en sla het op.
  4. Klik op "Backtest", stel je eigen spread en position size in en voer hem uit voordat je overweegt er live mee te traden.

Gebruikte indicatoren

Heikin AshiTEMABollinger BandsSMAATR
Lees dit eerstBekende zwaktes4 punten
  • Silver 30 minuten eindigde op USD -46,708.00 met een drawdown van USD 51,177.50, en EUR/USD 5 minuten was vlak tot negatief.
  • Intraday EUR/USD-runs laten grote cijfers zien maar ook grote drawdowns, zoals USD 95,915.00 op de 2-minutengrafiek.
  • De code houdt twee eigenaardigheden uit het testen: bij de Heikin-Ashi-open ontbreekt een deling door 4, en de minimale trail-afstand wordt op twee verschillende manieren gemeten.
  • Met 16 instellingen is er een reëel risico dat de gekozen waarden beter op data uit het verleden passen dan op toekomstige data.

Vragen

Over deze strategie

Kan hij in ProOrder draaien?

Ja, met 1 contract en één positie tegelijk. De herschreven code is niet op compileerfouten gecontroleerd.

Welke markten zijn getest?

Indices, goud, zilver en valutaparen van 2 minuten tot daily, en op twee runs na waren ze allemaal winstgevend. Dow Jones Daily maakte EUR 18,609.30 met een profit factor van 1.41.

Hoeveel drawdown bij 1 contract?

Op Nasdaq 100 Daily was de maximale drawdown EUR 3,077.50 tegenover EUR 13,584.40 nettowinst.

Waarom daggrafieken?

Het 220-daagse trendfilter en de procentuele stops passen het best bij dagbars. De daily indexruns hadden hogere profit factors dan de meeste intraday runs.

Gerelateerd

Strategieën zoals deze

Bollinger Squeeze

Gebruikt dezelfde indicator.

14.30 PF · 86 trades

Negated Hammer

Beste run op dezelfde markt, Nasdaq 100.

3.20 PF · 372 trades

False Breakout SuperTrend

Een vergelijkbare profit factor.

1.65 PF · 154 trades

Wil je de volgende ronde gefilterde mean reversion-tests? Meld je aan voor de ProRealAlgos-wachtlijst.

Copy trading op Amerikaanse indices is beschikbaar voor ProRealAlgos-leden zodra er plekken vrijkomen.

Backtestresultaten uit het verleden bieden geen garantie voor de toekomst. Dit is geen financieel advies. Samengesteld en onderhouden door ProRealAlgos. ProRealTime™ is een handelsmerk van ProRealTime SAS. prorealalgos.comStatsDocumentatie