Impulse Momentum combina el momentum de 13 barras con una puntuación de impulso de 3 barras y compra cuando esa señal supera 0.7 y su propia media de 8 barras. El volumen debe ser 1.2 veces el normal, la barra debe ser 1.8 veces el rango medio reciente, y la SMA de 9 debe situarse por encima de la SMA de 21. Sale con un stop del 1%, cuando la señal se debilita, o cuando el precio cierra por debajo de la SMA de 9.
Mejor ejecución de 10. Nasdaq 100, 1 hora, spread 3, de la ejecución pf:2026-09-24-NAS100-1h.tsv:2.
| Periodo | Hasta 2026-09-25 |
| Instrumento | Nasdaq 100, 1 hora |
| 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-25 |
| positionSize Contratos por operación | 1 |
| momentumPeriod Longitud del momentum del precio y ventana de normalización | 13 |
| volumePeriod Longitud del volumen medio | 21 |
| fastPeriod Longitud de la SMA rápida | 9 |
| slowPeriod Longitud de la SMA lenta | 21 |
| impulseBars Barras en la ventana corta de impulso | 3 |
| powerPeriod Longitud del rango medio de la barra para la fuerza del impulso | 5 |
| momentumWeight Peso del momentum normalizado en la señal | 2 |
| impulseWeight Peso del impulso normalizado en la señal | 3 |
| signalPeriod Longitud de la SMA de la línea de señal | 8 |
| signalLevel La señal debe estar por encima de esto para comprar | 0.7 |
| minVolumeRatio El volumen debe ser este múltiplo de su media de 21 barras | 1.2 |
| minImpulsePower El rango de la barra debe ser este múltiplo de su media de 5 barras | 1.8 |
| stopLossPct Stop de protección, porcentaje del precio de entrada | 1 |
Todas las ejecuciones
| Mercado | Marco temporal | PF | Operaciones | % de acierto | Neto | Max DD |
|---|---|---|---|---|---|---|
| Nasdaq 100Mejor ejecución | 1 hora | 1.44 | 481 | 48.65 | 4,958 EUR | -1,182 |
| USD/JPY | 1 hora | n/a | 839 | 42.55 | 144,730 JPY | -56,450 |
| USD/JPY | 10 min | n/a | 975 | 40.21 | 46,450 JPY | -40,770 |
| Plata | 3 min | n/a | 773 | 36.74 | 3,975 USD | -2,757 |
| Nikkei 225 | Diario | n/a | 22 | 45.45 | 3,294 USD | -1,928 |
| Plata | 2 min | n/a | 812 | 33.25 | 2,654 USD | -2,639 |
| Nasdaq 100 | 4 horas | n/a | 282 | 53.19 | 2,145 EUR | -1,341 |
| DAX 40 | 4 horas | n/a | 215 | 49.30 | 1,078 EUR | -821 |
| Oro | 4 horas | n/a | 345 | 41.74 | 321 EUR | -185 |
| Oro | Diario | n/a | 43 | 39.53 | 164 EUR | -156 |
Gráficos
El código
// ============================================================ // Impulse Momentum // ProRealAlgos Strategy Library | prorealalgos.com // Type: Momentum // Direction: Long only // Timeframe tested: 1 hour // ============================================================ // --- Settings --- DEFPARAM CumulateOrders = false // --- Parameters --- positionSize = 1 // contracts per trade momentumPeriod = 13 // price momentum length and normalising window volumePeriod = 21 // average volume length fastPeriod = 9 // fast SMA length slowPeriod = 21 // slow SMA length impulseBars = 3 // bars in the short impulse window powerPeriod = 5 // average bar range length for impulse power momentumWeight = 2 // weight of normalised momentum in the signal impulseWeight = 3 // weight of normalised impulse in the signal signalPeriod = 8 // SMA of the signal line signalLevel = 0.7 // signal must be above this to buy minVolumeRatio = 1.2 // volume must be this multiple of its average minImpulsePower = 1.8 // bar range must be this multiple of its average stopLossPct = 1 // protective stop, percent of entry price ONCE inTrade = 0 // --- Indicators --- fastMA = Average[fastPeriod](close) slowMA = Average[slowPeriod](close) priceMomentum = (close - close[momentumPeriod]) / close[momentumPeriod] * 100 // Directional movement: only count up moves that beat down moves. upMove = high - high[1] IF upMove <= 0 THEN upMove = 0 ENDIF downMove = low[1] - low IF downMove <= 0 THEN downMove = 0 ENDIF upMoveDominant = 0 IF upMove > downMove AND upMove > 0 THEN upMoveDominant = 1 ENDIF volumeRatio = Volume / Average[volumePeriod](Volume) impulseUp = (close - close[impulseBars]) / (Highest[impulseBars](high) - Lowest[impulseBars](low)) * 100 impulsePower = (high - low) / Average[powerPeriod](high - low) // Scale momentum and impulse to 0..1 over the recent window, then blend them. normMomentum = (priceMomentum - Lowest[momentumPeriod](priceMomentum)) / (Highest[momentumPeriod](priceMomentum) - Lowest[momentumPeriod](priceMomentum)) normImpulse = (impulseUp - Lowest[momentumPeriod](impulseUp)) / (Highest[momentumPeriod](impulseUp) - Lowest[momentumPeriod](impulseUp)) signalLine = (normMomentum * momentumWeight + normImpulse * impulseWeight) / (momentumWeight + impulseWeight) signalMA = Average[signalPeriod](signalLine)
19 líneas más: las reglas de entrada y salida.
Configuración
Preguntas
Sí. Los cinco filtros de entrada, la salida por señal y el stop del 1% están programados. El código reescrito aún no se ha comprobado en compilación.
La ejecución principal de Nasdaq 100 1 hora ganó 4,958.30 EUR en 481 operaciones. Las otras 9 ejecuciones fueron todas positivas, incluidas USD/JPY 1 hora con 144,730 JPY y DAX 40 4 horas con 1,077.90 EUR.
Con 1 contrato y un spread de 3 puntos, la ejecución de Nasdaq 100 1 hora tuvo un max drawdown de 1,181.50 EUR. Cada operación está protegida por un stop del 1%.
Los filtros de volumen y rango necesitan suficiente actividad por barra para ser significativos. En Nasdaq 100 el gráfico de 1 hora dio el mejor profit factor, 1.44.
Relacionado
El copy trading en índices de EE. UU. está disponible para los miembros de ProRealAlgos a medida que se abren plazas.