Apuntarme a la lista de espera
Estrategias / Mean reversion / Smoothed Bollinger

Smoothed Bollinger: un sistema de mean reversion filtrado

Un %b de Bollinger suavizado, construido a partir de un cierre Heikin-Ashi sin retardo y una TEMA, detecta caídas por debajo de 30 cuando está sobre la SMA de 220 días y subidas por encima de 90 cuando está por debajo de ella. Las operaciones usan un stop del 5%, un objetivo del 10%, un trailing stop por ATR y una salida por tiempo para las operaciones perdedoras.

Mean reversionLargos & cortosSwingNasdaq 100Diario
1.66Profit factor
13,584Beneficio neto EUR
71.95%Tasa de acierto
492Operaciones
-3,078Max drawdown
27.61Operación media

Mejor ejecución de 21. Nasdaq 100, Diario, spread 3, de la ejecución pf:2026-09-15-NAS100-D.tsv:1.

Reglas de entrada, largos

  1. El cierre está por encima de la media móvil simple de 220 días
  2. No hay posición abierta

Reglas de entrada, cortos

  1. El cierre está por debajo de la media móvil simple de 220 días
  2. No hay posición abierta

Reglas de salida

  1. Stop loss al 5% de la entrada
  2. Objetivo de beneficio al 10% desde la entrada
  3. Cerrar un long perdedor después de 16 barras
  4. Cerrar un short perdedor después de 2 barras

Condiciones de la prueba

PeriodoHasta 2026-09-15
InstrumentoNasdaq 100, Diario
Spread3 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-16
Parámetros (16)
positionSize
Contratos por operación
1
trendFilterOn
1 = operar solo con la media de largo plazo, 0 = desactivado
1
trailingOn
1 = usar el trailing stop escalado por ATR, 0 = desactivado
1
stopLossPct
Stop de protección, porcentaje del precio de entrada
5
takeProfitPct
Objetivo de beneficio, porcentaje del precio de entrada
10
longTrailFactor
Distancia del trailing para los longs, en unidades de ATR escaladas
9
shortTrailFactor
Distancia del trailing para los shorts, en unidades de ATR escaladas
4
atrTrailPeriod
Longitud del ATR para la distancia del trailing
200
minTrailPoints
Distancia mínima del trailing
5
maxLosingBarsLong
Cerrar un largo perdedor después de este número de barras
16
maxLosingBarsShort
Cerrar un corto perdedor después de este número de barras
2
trendPeriod
Longitud de la SMA del filtro de tendencia
220
bandPeriod
Desviación estándar y longitud de la media del %b
17
temaPeriod
Longitud de suavizado de la TEMA
8
oversoldLevel
Comprar cuando el %b está por debajo de esto
30
overboughtLevel
Vender en short cuando el %b está por encima de esto
90

Todas las ejecuciones

Mercados y marcos temporales probados

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

Gráficos

Resultados por ejecución

Las 10 mejores de 21 ejecuciones. La lista completa está en la tabla de arriba.

Por encima de 1.0 ganó dinero, por debajo de 1.0 perdió dinero.

El código

ProBuilder, reescrito al estándar de la casa

// ============================================================
// 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

61 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

Heikin AshiTEMABandas de BollingerSMAATR
Lee esto primeroDebilidades conocidas4 puntos
  • Silver 30 minutos terminó en USD -46,708.00 con un drawdown de USD 51,177.50, y EUR/USD 5 minutos quedó entre plano y negativo.
  • Las ejecuciones intraday de EUR/USD muestran cifras grandes pero también drawdowns grandes, como USD 95,915.00 en el gráfico de 2 minutos.
  • El código conserva dos rarezas de las pruebas: a la apertura Heikin-Ashi le falta una división por 4, y la distancia mínima del trailing se mide de dos formas distintas.
  • Con 16 ajustes existe un riesgo real de que los valores elegidos se ajusten más a los datos pasados que a los futuros.

Preguntas

Sobre esta estrategia

¿Se puede ejecutar en ProOrder?

Sí, con 1 contrato y una posición a la vez. El código reescrito no se ha comprobado en compilación.

¿Qué mercados se probaron?

Índices, oro, plata y pares de divisas desde 2 minutos hasta diario, y todas las ejecuciones salvo dos fueron rentables. Dow Jones Diario generó EUR 18,609.30 con un profit factor de 1.41.

¿Cuánto drawdown con 1 contrato?

En Nasdaq 100 Diario el drawdown máximo fue de EUR 3,077.50 frente a EUR 13,584.40 de beneficio neto.

¿Por qué gráficos diarios?

El filtro de tendencia de 220 días y los stops porcentuales encajan mejor con las barras diarias. Las ejecuciones diarias de índices tuvieron profit factor más altos que la mayoría de las ejecuciones intraday.

Relacionado

Estrategias como esta

Bollinger Squeeze

Usa el mismo indicador.

14.30 PF · 86 operaciones

Negated Hammer

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

3.20 PF · 372 operaciones

False Breakout SuperTrend

Un profit factor similar.

1.65 PF · 154 operaciones

¿Quieres la próxima ronda de pruebas de mean reversion filtrada? Apúntate a la lista de espera de ProRealAlgos.

El copy trading en índices de EE. UU. está disponible para los miembros de ProRealAlgos a medida que se abren plazas.

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