El disparador es una línea KAMA que cruza la SMA de 22 periodos, tomada en long o en short. Después de una entrada, se permite una operación por ciclo de señal, que se reinicia cada día y después de que una operación se cierre. Las salidas usan un stop de 50 pips, un objetivo de 200 pips y un bloqueo progresivo que conserva una proporción creciente del beneficio abierto.
Mejor ejecución de 5. DAX 40, 4 horas, spread 3, de la ejecución pf:2026-09-15-DAX40-4h.tsv:1.
| Periodo | Hasta 2026-09-15 |
| Instrumento | DAX 40, 4 horas |
| Spread | 3 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-16 |
| positionSize Contratos por operación | 1 |
| allowLong 1 = operaciones long permitidas, 0 = prohibidas | 1 |
| allowShort 1 = operaciones short permitidas, 0 = prohibidas | 1 |
| takeProfitPoints Objetivo fijo en pips | 200 |
| stopLossPoints Stop fijo en pips | 50 |
| kamaPeriod Longitud del ratio de eficiencia de la KAMA | 2 |
| kamaFastPeriod Longitud de suavizado más rápida de la KAMA | 2 |
| kamaSlowPeriod Longitud de suavizado más lenta de la KAMA | 30 |
| slowPeriod Longitud de la SMA | 22 |
| trailStartPoints Beneficio abierto en pips antes de que arranque el trailing stop | 10 |
| baseProfitShare Proporción del beneficio abierto que se bloquea al inicio | 0.1 |
| trailStepPoints Cada tramo de este número de pips eleva la proporción | 6 |
| profitShareStep Incremento de la proporción por tramo, respecto a la base | 0.1 |
| roundingOffset -0.5 hace que round() redondee a la baja | -0.5 |
| profitShareCap Límite superior de la proporción bloqueada | 100 |
| minDistancePips Más cerca que esto, salir a mercado en lugar de con una orden pendiente | 7 |
Todas las ejecuciones
| Mercado | Marco temporal | PF | Operaciones | % de acierto | Neto | Max DD |
|---|---|---|---|---|---|---|
| DAX 40Mejor ejecución | 4 horas | 1.21 | 548 | 58.58 | 2,336 EUR | -1,352 |
| Dow Jones | Diario | 1.15 | 736 | 48.78 | 2,785 EUR | -1,212 |
| Plata | 4 horas | 0.40 | 7 | 57.14 | -453 USD | -969 |
| Oro | Diario | n/a | 28 | 60.71 | 311 EUR | -217 |
| S&P 500 | 4 horas | n/a | 5 | 80.00 | 189 EUR | -101 |
Gráficos
Por encima de 1.0 ganó dinero, por debajo de 1.0 perdió dinero.
El código
// ============================================================ // KAMA SMA Cross // ProRealAlgos Strategy Library | prorealalgos.com // Type: Trend // Direction: Long & short // Timeframe tested: 4 hours // ============================================================ // --- Settings --- DEFPARAM CumulateOrders = true DEFPARAM PreloadBars = 10000 // --- Parameters --- positionSize = 1 // contracts per trade allowLong = 1 // 1 = long trades allowed, 0 = banned allowShort = 1 // 1 = short trades allowed, 0 = banned takeProfitPoints = 200 // fixed target in pips stopLossPoints = 50 // fixed stop in pips kamaPeriod = 2 // KAMA efficiency ratio length kamaFastPeriod = 2 // KAMA fastest smoothing length kamaSlowPeriod = 30 // KAMA slowest smoothing length slowPeriod = 22 // SMA length trailStartPoints = 10 // open profit in pips before the trailing stop starts baseProfitShare = 0.1 // share of open profit locked in at the start trailStepPoints = 6 // each chunk of this many pips raises the share profitShareStep = 0.1 // share increase per chunk, relative to the base roundingOffset = -0.5 // -0.5 makes round() round down profitShareCap = 100 // upper cap on the locked share minDistancePips = 7 // closer than this, exit at market instead of a pending order // --- Indicators --- minStopDistance = minDistancePips * PipSize IF NOT OnMarket THEN barsInTrade = 0 ELSE barsInTrade = barsInTrade + 1 ENDIF // Kaufman adaptive moving average, built by hand fastestAlpha = 2 / (kamaFastPeriod + 1) slowestAlpha = 2 / (kamaSlowPeriod + 1) IF BarIndex >= (kamaPeriod + 1) THEN priceChange = abs(close - close[kamaPeriod]) pathLength = Summation[kamaPeriod](abs(close - close[1])) efficiencyRatio = priceChange / pathLength kamaAlpha = SQUARE(efficiencyRatio * (fastestAlpha - slowestAlpha) + slowestAlpha) kamaValue = (kamaAlpha * close) + ((1 - kamaAlpha) * kamaValue[1]) ELSE kamaValue = close ENDIF slowMA = Average[slowPeriod, 0](close)
78 líneas más: las reglas de entrada y salida.
Configuración
Preguntas
Sí. El stop, el objetivo y el bloqueo progresivo están integrados, y opera 1 contrato sin piramidar.
DAX 40 4 horas dio EUR 2,335.90 en 548 operaciones con un profit factor de 1.21. Dow Jones diario fue similar, con 1.15, mientras que Silver 4 horas perdió dinero.
Con 1 contrato, la ejecución de DAX 40 tuvo un max drawdown de EUR 1,351.90. Eso es más de la mitad del beneficio neto.
Los cruces de la KAMA en barras de 4 horas del DAX 40 ocurren con suficiente frecuencia para una muestra útil mientras el stop de 50 pips todavía tiene margen para funcionar.
Relacionado
La comunidad de ProRealAlgos obtiene las reglas completas, el código completo y la cartera automatizada.