Op de wachtlijst
Strategieën / Mean reversion / Bollinger RSI TDI Reversal

Bollinger RSI TDI Reversal op de FTSE 100

Een opgerekte markt wordt gemarkeerd wanneer de prijs buiten een Bollinger Band sluit, RSI(9) extreem is en de TDI-prijslijn buiten zijn band staat. De trade gaat later open, wanneer de TDI-prijslijn zijn signaallijn terug kruist in de richting van de omkering. Een stoplijn op basis van ATR beheert daarna de uitstap.

Mean reversionLong & shortSwingFTSE 100Dagelijks
n/aProfit factor
3,658Nettowinst EUR
38.49%Winstpercentage
239Trades
-2,267Max drawdown
15.31Gem. trade

Beste run van 1. FTSE 100, Daily, spread 2, uit run sweeps:2026-09-26-FTSE100-D-opt.tsv:4.

Instapregels, long

  1. Setup: close onder de onderste Bollinger Band met 20 periodes, RSI(9) onder 28 en de TDI-prijslijn onder de onderste TDI-band
  2. De ATR-stoplijn staat onder de close

Instapregels, short

  1. Setup: close boven de bovenste Bollinger Band met 20 periodes, RSI(9) boven 62 en de TDI-prijslijn boven de bovenste TDI-band
  2. De ATR-stoplijn staat boven de close

Uitstapregels

  1. Sluit een long wanneer de prijs onder de stoplijn sluit
  2. Sluit een short wanneer de prijs boven de stoplijn sluit

Testomstandigheden

PeriodeTot 2026-09-26
InstrumentFTSE 100, Dagelijks
Spread2 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-26
Parameters (12)
positionSize
Contracten per trade
1
bandPeriod
Lengte van de Bollinger Bands
20
rsiPeriod
RSI-lengte voor de extreme stand
9
overboughtLevel
RSI-niveau dat een short klaarzet
62
oversoldLevel
RSI-niveau dat een long klaarzet
28
stopAtrPeriod
ATR en lengte van het gemiddelde voor de banden van de stoplijn
14
stopAvgPeriod
Gemiddelde van highs / lows dat de stoplijn van zijde doet wisselen
10
tdiRsiPeriod
RSI-lengte binnen de TDI
13
tdiBandPeriod
Lengte van de TDI-band
34
tdiBandWidth
Breedte van de TDI-band in standaarddeviaties
1.6185
priceLinePeriod
TDI prijslijn-smoothing
2
signalLinePeriod
Smoothing van de TDI-signaallijn voor trades
7

Elke run

Geteste markten en tijdframes

MarktTijdframePFTradesWinst %NettoMax DD
FTSE 100Beste runDagelijksn/a 23938.493,658 EUR-2,267

Grafieken

Resultaten per run

NettowinstMax drawdown

De code

ProBuilder, herschreven naar huisstandaard

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

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

// --- Parameters ---
positionSize = 1          // contracts per trade
bandPeriod = 20           // Bollinger Bands length
rsiPeriod = 9             // RSI length for the extreme reading
overboughtLevel = 62      // RSI level that arms a short
oversoldLevel = 28        // RSI level that arms a long
stopAtrPeriod = 14        // ATR and average length for the stop line bands
stopAvgPeriod = 10        // average of highs / lows that flips the stop line side
tdiRsiPeriod = 13         // RSI length inside the TDI
tdiBandPeriod = 34        // TDI band length
tdiBandWidth = 1.6185     // TDI band width in standard deviations
priceLinePeriod = 2       // TDI price line smoothing
signalLinePeriod = 7      // TDI trade signal line smoothing

// --- Indicators ---
upperBand = BollingerUp[bandPeriod](close)
lowerBand = BollingerDown[bandPeriod](close)
rsiValue = RSI[rsiPeriod](close)

// Stop line: an ATR band that only moves in the trade's favour
atrValue = AverageTrueRange[stopAtrPeriod](close)
stopBandHigh = Average[stopAtrPeriod](high + atrValue)
stopBandLow = Average[stopAtrPeriod](low - atrValue)
avgHigh = Average[stopAvgPeriod](high)
avgLow = Average[stopAvgPeriod](low)

IF close > avgHigh THEN
  stopSide = 1
ELSIF close < avgLow THEN
  stopSide = -1
ENDIF
IF stopSide = -1 AND stopBandHigh > stopBandHigh[1] THEN
  stopBandHigh = stopBandHigh[1]
ELSIF stopSide = 1 AND stopBandLow < stopBandLow[1] THEN
  stopBandLow = stopBandLow[1]
ENDIF
IF stopSide = 1 THEN
  stopLine = stopBandLow
ELSE
  stopLine = stopBandHigh
ENDIF

// Traders Dynamic Index
tdiRsi = RSI[tdiRsiPeriod](close)
tdiMid = Average[tdiBandPeriod](tdiRsi)
tdiOffset = tdiBandWidth * STD[tdiBandPeriod](tdiRsi)
tdiUpper = tdiMid + tdiOffset
tdiLower = tdiMid - tdiOffset
priceLine = Average[priceLinePeriod](tdiRsi)
signalLine = Average[signalLinePeriod](tdiRsi)

// Two-step setup flags, kept between bars
ONCE longSetup = 0
ONCE longTrigger = 0
ONCE shortSetup = 0
ONCE shortTrigger = 0

44 regels meer: de instapregels 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

Bollinger BandsRSIATRSMATraders Dynamic Index
Lees dit eerstBekende zwaktes4 punten
  • Er zijn maar één markt en één tijdframe getest: FTSE 100 daily.
  • Het winstpercentage is 38.49%, dus het systeem vertrouwt erop dat winnaars groter zijn dan verliezers en kan door lange reeksen verliezen gaan.
  • De profit factor is niet vastgelegd, omdat het resultaat alleen uit optimalisatie-sweepdata komt.
  • De setupvlag blijft tussen bars staan, dus een trigger kan ver na de oorspronkelijke oprekking afgaan, wanneer de markt al verder is.

Vragen

Over deze strategie

Draait dit als geautomatiseerd systeem in ProOrder?

Ja. Hij is gecodeerd voor geautomatiseerd traden in ProRealTime met 1 contract per trade. De oorspronkelijke uren van het sessiefilter maakten geen deel uit van de geteste code.

Hoe deed hij het in de backtest?

Op FTSE 100 daily leverde hij EUR 3,658.00 op over 239 trades, met een max drawdown van EUR 2,266.60. Er zijn geen andere instrumenten getest.

Hoeveel kapitaal is er nodig voor 1 contract?

De ergste daling van top naar bodem in de tests was EUR 2,266.60 met 1 contract. De margin hangt af van je broker en wordt hier niet behandeld.

Waarom dagbars?

De setup heeft een close buiten de band plus twee extreme oscillatorstanden nodig, wat zelden voorkomt. Dagbars houden die extremen betekenisvol en het aantal trades hanteerbaar, op 239 trades in de test.

Gerelateerd

Strategieën zoals deze

Bollinger Squeeze

Gebruikt dezelfde indicator.

14.30 PF · 86 trades

Bollinger Reversal

Beste run op dezelfde markt, FTSE 100.

1.74 PF · 117 trades

Monday Dip Buy

Ook een mean reversion strategie.

n/a PF · 146 trades

Nieuwsgierig hoe reversal-systemen zoals dit met andere worden gecombineerd? Zet je op de ProRealAlgos-wachtlijst.

De ProRealAlgos community krijgt de volledige regels, de complete code en de geautomatiseerde portefeuille.

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