Rejoindre la liste d'attente
Stratégies / Mean reversion / Bollinger RSI TDI Reversal

Bollinger RSI TDI Reversal sur le FTSE 100

Un marché étiré est signalé quand le prix clôture en dehors d'une bande de Bollinger, que RSI(9) est extrême et que la ligne de prix TDI est en dehors de sa bande. Le trade s'ouvre plus tard, quand la ligne de prix TDI croise sa ligne de signal dans le sens du retournement. Une ligne de stop basée sur l'ATR gère ensuite la sortie.

Mean reversionLong & shortSwingFTSE 100Journalier
n/aProfit factor
3,658Gain net EUR
38.49%Taux de réussite
239Trades
-2,267Max drawdown
15.31Trade moyen

Meilleure exécution sur 1. FTSE 100, Journalier, spread 2, issue de l'exécution sweeps:2026-09-26-FTSE100-D-opt.tsv:4.

Règles d'entrée, long

  1. Setup : clôture sous la bande de Bollinger inférieure 20 périodes, RSI(9) sous 28 et ligne de prix TDI sous la bande TDI inférieure
  2. La ligne de stop ATR est sous la clôture

Règles d'entrée, short

  1. Setup : clôture au-dessus de la bande de Bollinger supérieure 20 périodes, RSI(9) au-dessus de 62 et ligne de prix TDI au-dessus de la bande TDI supérieure
  2. La ligne de stop ATR est au-dessus de la clôture

Règles de sortie

  1. Clôturer un long quand le prix clôture sous la ligne de stop
  2. Clôturer un short quand le prix clôture au-dessus de la ligne de stop

Conditions de test

PériodeJusqu'au 2026-09-26
InstrumentFTSE 100, Journalier
Spread2 points
Contrats1
Capital de départ1,000,000
CoûtsSpread uniquement. Les commissions et le financement overnight ne sont pas inclus.
BarresJusqu'à 200,000 barres, moins lorsque l'instrument a moins d'historique
Dernier test2026-09-26
Paramètres (12)
positionSize
Contrats par trade
1
bandPeriod
Longueur des bandes de Bollinger
20
rsiPeriod
Longueur du RSI pour la lecture extrême
9
overboughtLevel
Niveau de RSI qui arme un short
62
oversoldLevel
Niveau de RSI qui arme un long
28
stopAtrPeriod
Longueur de l'ATR et de la moyenne pour les bandes de la ligne de stop
14
stopAvgPeriod
Moyenne des plus hauts / plus bas qui fait basculer le côté de la ligne de stop
10
tdiRsiPeriod
Longueur du RSI à l'intérieur du TDI
13
tdiBandPeriod
Longueur de la bande TDI
34
tdiBandWidth
Largeur de la bande TDI en écarts-types
1.6185
priceLinePeriod
Lissage de la ligne de prix du TDI
2
signalLinePeriod
Lissage de la ligne de signal de trade TDI
7

Chaque exécution

Marchés et unités de temps testés

MarchéUnité de tempsPFTrades% de réussiteNetMax DD
FTSE 100Meilleure exécutionJournaliern/a 23938.493,658 EUR-2,267

Graphiques

Résultats par exécution

Gain netMax drawdown

Le code

ProBuilder, réécrit selon le standard maison

// ============================================================
// 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 lignes supplémentaires : les règles d'entrée et de sortie.

Configuration

Comment la charger

  1. Copiez le code avec le bouton Copier du bloc de code.
  2. Dans ProRealTime, ouvrez un graphique de l'instrument et de l'unité de temps que vous voulez tester, puis ouvrez ProOrder > Nouveau système de trading et choisissez "Créer par programmation".
  3. Collez le code, donnez un nom au système et enregistrez-le.
  4. Cliquez sur "Backtest", définissez votre propre spread et votre position size, puis lancez-la avant d'envisager de la trader en réel.

Indicateurs utilisés

Bandes de BollingerRSIATRSMATraders Dynamic Index
À lire d'abordFaiblesses connues4 points
  • Un seul marché et une seule unité de temps ont été testés : FTSE 100 journalier.
  • Le taux de réussite est de 38.49%, le système repose donc sur des gagnants plus grands que les perdants et peut traverser de longues séries de pertes.
  • Le profit factor n'a pas été enregistré, car le résultat provient uniquement de données de sweep d'optimisation.
  • Le marqueur de setup se reporte d'un bar à l'autre, un déclenchement peut donc survenir bien après l'étirement initial, quand le marché a évolué.

Questions

À propos de cette stratégie

Cela fonctionne-t-il comme système automatisé dans ProOrder ?

Oui. Elle est codée pour le trading automatisé ProRealTime avec 1 contrat par trade. Les heures du filtre de séance d'origine ne faisaient pas partie du code testé.

Quels ont été ses résultats au backtest ?

Sur FTSE 100 journalier, elle a rapporté EUR 3,658.00 sur 239 trades, avec un max drawdown de EUR 2,266.60. Aucun autre instrument n'a été testé.

De combien de capital 1 contrat a-t-il besoin ?

La pire baisse du sommet au creux lors des tests était de EUR 2,266.60 avec 1 contrat. La marge dépend de votre broker et n'est pas traitée ici.

Pourquoi des barres journalières ?

Le setup exige une clôture en dehors de la bande plus deux lectures extrêmes d'oscillateur, ce qui est rare. Les bars journaliers gardent ces extrêmes significatifs et le nombre de trades raisonnable, à 239 trades dans le test.

Voir aussi

Des stratégies comme celle-ci

Bollinger Squeeze

Utilise le même indicateur.

14.30 PF · 86 trades

Bollinger Reversal

Meilleure exécution sur le même marché, FTSE 100.

1.74 PF · 117 trades

Monday Dip Buy

Également une stratégie mean reversion.

n/a PF · 146 trades

Vous vous demandez comment les systèmes de retournement comme celui-ci sont combinés à d'autres ? Inscrivez-vous sur la liste d'attente ProRealAlgos.

La communauté ProRealAlgos obtient les règles complètes, le code complet et le portefeuille automatisé.

Les résultats passés de backtest ne garantissent pas les résultats futurs. Ceci n'est pas un conseil financier. Sélectionné et maintenu par ProRealAlgos. ProRealTime™ est une marque de ProRealTime SAS. prorealalgos.comStatsDocumentation