Apuntarme a la lista de espera
Estrategias / Mean reversion / Bollinger RSI TDI Reversal

Bollinger RSI TDI Reversal en el FTSE 100

Un mercado estirado se marca cuando el precio cierra fuera de una Bollinger Band, el RSI(9) está en un extremo y la línea de precio del TDI está fuera de su banda. La operación se abre más tarde, cuando la línea de precio del TDI cruza su línea de señal de vuelta en la dirección de la reversión. Después, una línea de stop basada en el ATR gestiona la salida.

Mean reversionLargos & cortosSwingFTSE 100Diario
n/aProfit factor
3,658Beneficio neto EUR
38.49%Tasa de acierto
239Operaciones
-2,267Max drawdown
15.31Operación media

Mejor ejecución de 1. FTSE 100, Diario, spread 2, de la ejecución sweeps:2026-09-26-FTSE100-D-opt.tsv:4.

Reglas de entrada, largos

  1. Setup: cierre por debajo de la Bollinger Band inferior de 20 periodos, RSI(9) por debajo de 28 y la línea de precio del TDI por debajo de la banda inferior del TDI
  2. La línea de stop del ATR está por debajo del cierre

Reglas de entrada, cortos

  1. Setup: cierre por encima de la Bollinger Band superior de 20 periodos, RSI(9) por encima de 62 y la línea de precio del TDI por encima de la banda superior del TDI
  2. La línea de stop del ATR está por encima del cierre

Reglas de salida

  1. Cerrar un long cuando el precio cierra por debajo de la línea de stop
  2. Cerrar un short cuando el precio cierra por encima de la línea de stop

Condiciones de la prueba

PeriodoHasta 2026-09-26
InstrumentoFTSE 100, Diario
Spread2 puntos
Contratos1
Capital inicial1,000,000
CostesSolo spread. No se incluyen comisiones ni financiación overnight.
BarrasHasta 200,000 barras, menos cuando el instrumento tiene menos historial
Última prueba2026-09-26
Parámetros (12)
positionSize
Contratos por operación
1
bandPeriod
Longitud de las Bollinger Bands
20
rsiPeriod
Longitud del RSI para la lectura extrema
9
overboughtLevel
Nivel de RSI que arma un short
62
oversoldLevel
Nivel de RSI que arma un long
28
stopAtrPeriod
Longitud del ATR y de la media para las bandas de la línea de stop
14
stopAvgPeriod
Media de máximos / mínimos que cambia el lado de la línea de stop
10
tdiRsiPeriod
Longitud del RSI dentro del TDI
13
tdiBandPeriod
Longitud de la banda del TDI
34
tdiBandWidth
Anchura de la banda del TDI en desviaciones estándar
1.6185
priceLinePeriod
Suavizado de la línea de precio del TDI
2
signalLinePeriod
Suavizado de la línea de señal de operación del TDI
7

Todas las ejecuciones

Mercados y marcos temporales probados

MercadoMarco temporalPFOperaciones% de aciertoNetoMax DD
FTSE 100Mejor ejecuciónDiarion/a 23938.493,658 EUR-2,267

Gráficos

Resultados por ejecución

Beneficio netoMax drawdown

El código

ProBuilder, reescrito al estándar de la casa

// ============================================================
// 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 líneas más: las reglas de entrada y salida.

Configuración

Cómo cargarla

  1. Copia el código con el botón de copiar del bloque de código.
  2. En ProRealTime, abre un gráfico del instrumento y el marco temporal que quieras probar y luego abre ProOrder > New trading system y elige "Create with programming".
  3. Pega el código, dale un nombre al sistema y guárdalo.
  4. Haz clic en "Backtest", ajusta tu propio spread y position size, y ejecútala antes de considerar operarla en real.

Indicadores utilizados

Bandas de BollingerRSIATRSMATraders Dynamic Index
Lee esto primeroDebilidades conocidas4 puntos
  • Solo se probaron un mercado y un marco temporal: FTSE 100 diario.
  • La tasa de acierto es del 38.49%, así que el sistema depende de que las ganadoras sean mayores que las perdedoras y puede pasar por rachas largas de pérdidas.
  • No se registró el profit factor, porque el resultado proviene solo de datos de barrido de optimización.
  • La marca del setup se mantiene de una barra a otra, así que un disparo puede producirse bastante después del estiramiento original, cuando el mercado ya ha cambiado.

Preguntas

Sobre esta estrategia

¿Funciona esto como sistema automático en ProOrder?

Sí. Está programada para el trading automático de ProRealTime con 1 contrato por operación. Las horas del filtro de sesión original no formaban parte del código probado.

¿Cómo le fue en el backtest?

En FTSE 100 diario obtuvo EUR 3,658.00 en 239 operaciones, con un max drawdown de EUR 2,266.60. No se probaron otros instrumentos.

¿Cuánto capital necesita 1 contrato?

La peor caída de máximo a mínimo en las pruebas fue de EUR 2,266.60 con 1 contrato. El margen depende de tu bróker y no se trata aquí.

¿Por qué barras diarias?

El setup necesita un cierre fuera de la banda más dos lecturas extremas del oscilador, lo que es raro. Las barras diarias mantienen esos extremos significativos y el número de operaciones manejable, 239 operaciones en la prueba.

Relacionado

Estrategias como esta

Bollinger Squeeze

Usa el mismo indicador.

14.30 PF · 86 operaciones

Bollinger Reversal

Mejor ejecución en el mismo mercado, FTSE 100.

1.74 PF · 117 operaciones

Monday Dip Buy

También es una estrategia mean reversion.

n/a PF · 146 operaciones

¿Tienes curiosidad por saber cómo se combinan con otros los sistemas de reversión como este? Apúntate a la lista de espera de ProRealAlgos.

La comunidad de ProRealAlgos obtiene las reglas completas, el código completo y la cartera automatizada.

Los resultados pasados de backtest no garantizan resultados futuros. Esto no es asesoramiento financiero. Seleccionado y mantenido por ProRealAlgos. ProRealTime™ es una marca comercial de ProRealTime SAS. prorealalgos.comEstadísticasDocumentación