Una barra que abre por encima del cierre anterior pero luego cierra por debajo de la EMA de 40 periodos dispara una compra, siempre que el índice de dimensión fractal de 30 barras esté por debajo de 1.5. El setup espejo vende short. Cada operación se cierra exactamente 4 barras después o en un stop de 60 puntos.
Mejor ejecución de 2. GBP/USD, 4 horas, spread 1.5, de la ejecución sweeps:2026-09-21-GBPUSD-4h-opt.tsv:4.
| Periodo | Hasta 2026-09-21 |
| Instrumento | GBP/USD, 4 horas |
| Spread | 1.5 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-21 |
| positionSize Contratos por operación | 1 |
| emaPeriod Longitud de la EMA para la señal | 40 |
| fdiPeriod Periodo de cálculo de la dimensión fractal | 30 |
| fdiThreshold Operar solo cuando la dimensión fractal esté por debajo de esto | 1.5 |
| maxBarsInTrade Cerrar la operación exactamente este número de barras después de la entrada | 4 |
| stopLossPoints Stop de protección en puntos | 60 |
Todas las ejecuciones
| Mercado | Marco temporal | PF | Operaciones | % de acierto | Neto | Max DD |
|---|---|---|---|---|---|---|
| GBP/USDMejor ejecución | 4 horas | n/a | 906 | 47.35 | 1,375 USD | -1,363 |
| DAX 40 | Diario | n/a | 358 | 31.56 | 2,147 EUR | -1,902 |
Gráficos
El código
// ============================================================ // Fractal Dimension EMA Reversion // ProRealAlgos Strategy Library | prorealalgos.com // Type: Mean reversion // Direction: Long & short // Timeframe tested: 4 hours // ============================================================ // --- Settings --- DEFPARAM CumulateOrders = false // --- Parameters --- positionSize = 1 // contracts per trade emaPeriod = 40 // EMA length for the signal fdiPeriod = 30 // fractal dimension lookback fdiThreshold = 1.5 // trade only when the fractal dimension is below this maxBarsInTrade = 4 // close the trade exactly this many bars after entry stopLossPoints = 60 // protective stop in points // --- Indicators --- emaValue = ExponentialAverage[emaPeriod](close) // Fractal dimension index: near 1 = trending, near 2 = choppy. // Undefined until enough history, so the filter blocks early trades. ONCE fdiValue = undefined IF BarIndex >= fdiPeriod - 1 THEN pathLength = 0 prevScaled = 0 fdiValue = 0 fdiHigh = Highest[fdiPeriod](close) fdiLow = Lowest[fdiPeriod](close) FOR i = 1 TO fdiPeriod - 1 DO IF (fdiHigh - fdiLow) > 0 THEN scaledPrice = (CustomClose[i] - fdiLow) / (fdiHigh - fdiLow) IF i > 1 THEN pathLength = pathLength + SQRT(SQUARE(scaledPrice - prevScaled) + (1 / SQUARE(fdiPeriod))) ENDIF prevScaled = scaledPrice ENDIF NEXT IF pathLength > 0 THEN fdiValue = 1 + (LOG(pathLength) + LOG(2)) / LOG(2 * fdiPeriod) ELSE fdiValue = 0 ENDIF ENDIF barsInTrade = BarIndex - TradeIndex
26 líneas más: las reglas de entrada y salida.
Configuración
Preguntas
Sí. Las entradas se ejecutan en la apertura de la barra siguiente y las salidas son un stop temporal de 4 barras más un stop de 60 puntos, todo codificado.
GBP/USD 4 horas ganó 1,374.7 USD en 906 operaciones con una tasa de acierto del 47.35%. DAX 40 Diario ganó 2,147.3 EUR en 358 operaciones.
El peor drawdown en GBP/USD 4 horas fue de 1,363.2 USD con 1 contrato, cerca del beneficio total de la prueba.
Un mantenimiento de 4 barras en barras de 4 horas limita las operaciones a menos de un día de mercado, lo que encaja con una idea de reversión corta en un par de divisas.
Relacionado
La comunidad de ProRealAlgos obtiene las reglas completas, el código completo y la cartera automatizada.