Cuando toda la banda exponencial inferior está por encima de la SMA de 200, la tendencia es alcista y la estrategia compra el primer cierre en o por debajo de la SMA de 20. Solo toma un largo por tendencia alcista, y los cortos reflejan la misma lógica. Un filtro de la curva de equity pausa las entradas cuando la estrategia está por debajo de su propia media de 250 barras.
Mejor ejecución de 6. Gold, 10 min, spread 0.6, de la ejecución sweeps:2026-09-23-GOLD-10m-opt.tsv:4.
| Periodo | Hasta 2026-09-23 |
| Instrumento | Gold, 10 minutos |
| Spread | 0.6 puntos |
| Contratos | 1 |
| Capital inicial | 1,000,000 |
| Costes | Solo spread. No se incluyen comisiones ni financiación overnight. |
| Barras | Hasta 200,000 barras, menos cuando el instrumento tiene menos historial |
| Última prueba | 2026-09-23 |
| positionSize Contratos por operación | 1 |
| startCapital Equity inicial utilizada por el filtro de la curva de equity | 10000 |
| equityCurvePeriod Longitud de la SMA de la curva de equity | 250 |
| fastPeriod Longitud de la SMA de entrada y de salida final | 20 |
| midPeriod Longitud de la SMA que arma la salida | 50 |
| trendPeriod Longitud de la SMA de tendencia | 200 |
| bandPeriod Longitud de las bandas exponenciales de precio logarítmico | 42 |
| bandWidth Anchura de las bandas en desviaciones típicas | 2.4 |
| seedPeriod Longitud de la SMA que inicializa las bandas en las primeras barras | 3 |
| stopLossMoney Stop protector en la divisa de la cuenta | 40 |
| takeProfitMoney Objetivo de beneficio en la divisa de la cuenta | 130 |
Todas las ejecuciones
| Mercado | Marco temporal | PF | Operaciones | % de acierto | Neto | Max DD |
|---|---|---|---|---|---|---|
| OroMejor ejecución | 10 min | n/a | 696 | 46.55 | 432 EUR | -387 |
| EUR/USD | Diario | n/a | 52 | 42.31 | 1,660 USD | -240 |
| FTSE 100 | 4 horas | n/a | 96 | 41.67 | 762 EUR | -362 |
| S&P 500 | Diario | n/a | 54 | 46.30 | 593 EUR | -223 |
| Nasdaq 100 | 4 horas | n/a | 118 | 43.22 | 462 EUR | -424 |
| FTSE 100 | Diario | n/a | 37 | 32.43 | 434 EUR | -344 |
Gráficos
El código
// ============================================================ // Bollinger Trend Catcher // ProRealAlgos Strategy Library | prorealalgos.com // Type: Trend // Direction: Long & short // Timeframe tested: 10 minutes // ============================================================ // --- Settings --- DEFPARAM CumulateOrders = false // --- Parameters --- positionSize = 1 // contracts per trade startCapital = 10000 // starting equity for the equity curve filter equityCurvePeriod = 250 // SMA length of the equity curve fastPeriod = 20 // entry and final exit average midPeriod = 50 // average that arms the exit trendPeriod = 200 // trend average the bands are compared with bandPeriod = 42 // length of the log-price exponential bands bandWidth = 2.4 // band width in standard deviations seedPeriod = 3 // SMA used to seed the bands on early bars stopLossMoney = 40 // protective stop in account currency takeProfitMoney = 130 // profit target in account currency // State: one trade per trend, and a staged exit. ONCE longTrendUsed = 0 ONCE shortTrendUsed = 0 ONCE longExitStage = 0 ONCE shortExitStage = 0 ONCE logEma = 0 ONCE logVariance = 0 // --- Indicators --- // Only trade while equity is at or above its own moving average. equity = startCapital + StrategyProfit equityCurve = Average[equityCurvePeriod, 0](equity) equityOk = BarIndex < equityCurvePeriod OR (BarIndex > equityCurvePeriod AND equity >= equityCurve) fastMA = Average[fastPeriod](close) midMA = Average[midPeriod](close) trendMA = Average[trendPeriod](close) // Exponential bands on log price. logPrice = LOG(CustomClose) emaAlpha = 2 / (bandPeriod + 1) IF BarIndex < bandPeriod THEN logEma = Average[seedPeriod](logPrice) ELSE logEma = emaAlpha * logPrice + (1 - emaAlpha) * logEma ENDIF logError = logPrice - logEma errorSquared = SQUARE(logError) IF BarIndex < bandPeriod + 1 THEN logVariance = errorSquared ELSE logVariance = emaAlpha * errorSquared + (1 - emaAlpha) * logVariance ENDIF logStdDev = SQRT(logVariance) upperBand = EXP(logEma + (bandWidth * logStdDev)) lowerBand = EXP(logEma - (bandWidth * logStdDev))
44 líneas más: las reglas de entrada y salida.
Configuración
Preguntas
Sí, está escrito como un sistema de ProOrder. El código se reescribió y aún no se ha comprobado en compilación, así que ejecuta un backtest antes de pasar a real.
Gold, EUR/USD, FTSE 100, S&P 500 y Nasdaq 100. Todas las ejecuciones listadas obtuvieron un pequeño beneficio, siendo el mayor de USD 1,660 en EUR/USD Diario con 52 operaciones.
Con 1 contrato, la mejor ejecución tuvo un max drawdown de EUR 387.3. Cada operación arriesga el stop de 40 en dinero, antes del spread.
La regla de una operación por tendencia implica que un nuevo largo solo llega después de que la banda haya caído por debajo de la SMA de 200 y se haya recuperado. En barras diarias eso ocurre pocas veces, por ejemplo 37 operaciones en FTSE 100 Diario.
Relacionado
La comunidad de ProRealAlgos obtiene las reglas completas, el código completo y la cartera automatizada.