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.
Meilleure exécution sur 1. FTSE 100, Journalier, spread 2, issue de l'exécution sweeps:2026-09-26-FTSE100-D-opt.tsv:4.
| Période | Jusqu'au 2026-09-26 |
| Instrument | FTSE 100, Journalier |
| Spread | 2 points |
| Contrats | 1 |
| Capital de départ | 1,000,000 |
| Coûts | Spread uniquement. Les commissions et le financement overnight ne sont pas inclus. |
| Barres | Jusqu'à 200,000 barres, moins lorsque l'instrument a moins d'historique |
| Dernier test | 2026-09-26 |
| 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é | Unité de temps | PF | Trades | % de réussite | Net | Max DD |
|---|---|---|---|---|---|---|
| FTSE 100Meilleure exécution | Journalier | n/a | 239 | 38.49 | 3,658 EUR | -2,267 |
Graphiques
Le code
// ============================================================ // 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
Questions
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é.
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é.
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.
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
La communauté ProRealAlgos obtient les règles complètes, le code complet et le portefeuille automatisé.