El sistema compra cuando el true range de la barra está por encima de 25 puntos y la TEMA(4) se sitúa por encima de la EMA(4), pero solo en los medios meses que permite la tabla estacional. Sale cuando el Repulse(3) cae por debajo de -0.3 o se alcanza un stop del 5%. Los fines de semana se omiten y nunca se pone short.
Mejor ejecución de 20. Gold, 10 min, spread 0.6, de la ejecución pf:2026-09-24-GOLD-10m.tsv:1.
| Periodo | Hasta 2026-09-24 |
| 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-24 |
| positionSize Contratos por operación | 1 |
| halfMonthDay Último día contado como la primera mitad del mes | 15 |
| minTrueRange True range mínimo de la barra en puntos de precio | 25 |
| temaPeriod Longitud de la TEMA | 4 |
| emaPeriod Longitud de la EMA comparada con la TEMA | 4 |
| repulsePeriod Longitud del Repulse para la salida | 3 |
| repulseExitLevel Salir cuando el Repulse cae por debajo de este nivel | -0.3 |
| stopLossPct Stop de protección como porcentaje del precio de entrada | 5 |
| janFirstHalf Peso estacional, enero días 1 a 15 (0 bloquea las entradas) | 3 |
| janSecondHalf Peso estacional, enero desde el día 16 (0 bloquea las entradas) | 0 |
| febFirstHalf Peso estacional, febrero días 1 a 15 (0 bloquea las entradas) | 3 |
| febSecondHalf Peso estacional, febrero desde el día 16 (0 bloquea las entradas) | 3 |
| marFirstHalf Peso estacional, marzo días 1 a 15 (0 bloquea las entradas) | 3 |
| marSecondHalf Peso estacional, marzo desde el día 16 (0 bloquea las entradas) | 2 |
| aprFirstHalf Peso estacional, abril días 1 a 15 (0 bloquea las entradas) | 3 |
| aprSecondHalf Peso estacional, abril desde el día 16 (0 bloquea las entradas) | 3 |
| mayFirstHalf Peso estacional, mayo días 1 a 15 (0 bloquea las entradas) | 1 |
| maySecondHalf Peso estacional, mayo desde el día 16 (0 bloquea las entradas) | 1 |
| junFirstHalf Peso estacional, junio días 1 a 15 (0 bloquea las entradas) | 1 |
| junSecondHalf Peso estacional, junio desde el día 16 (0 bloquea las entradas) | 2 |
| julFirstHalf Peso estacional, julio días 1 a 15 (0 bloquea las entradas) | 3 |
| julSecondHalf Peso estacional, julio desde el día 16 (0 bloquea las entradas) | 2 |
| augFirstHalf Peso estacional, agosto días 1 a 15 (0 bloquea las entradas) | 2 |
| augSecondHalf Peso estacional, agosto desde el día 16 (0 bloquea las entradas) | 3 |
| sepFirstHalf Peso estacional, septiembre días 1 a 15 (0 bloquea las entradas) | 3 |
| sepSecondHalf Peso estacional, septiembre desde el día 16 (0 bloquea las entradas) | 0 |
| octFirstHalf Peso estacional, octubre días 1 a 15 (0 bloquea las entradas) | 3 |
| octSecondHalf Peso estacional, octubre desde el día 16 (0 bloquea las entradas) | 2 |
| novFirstHalf Peso estacional, noviembre días 1 a 15 (0 bloquea las entradas) | 1 |
| novSecondHalf Peso estacional, noviembre desde el día 16 (0 bloquea las entradas) | 3 |
| decFirstHalf Peso estacional, diciembre días 1 a 15 (0 bloquea las entradas) | 3 |
| decSecondHalf Peso estacional, diciembre desde el día 16 (0 bloquea las entradas) | 2 |
Todas las ejecuciones
| Mercado | Marco temporal | PF | Operaciones | % de acierto | Neto | Max DD |
|---|---|---|---|---|---|---|
| OroMejor ejecución | 10 min | 1.57 | 195 | 48.72 | 905 EUR | -177 |
| DAX 40 | 4 horas | 1.18 | 2,445 | 38.73 | 17,921 EUR | -3,328 |
| DAX 40 | Diario | 1.18 | 1,043 | 39.02 | 11,563 EUR | -2,819 |
| Plata | Diario | n/a | 752 | 36.84 | 26,593 USD | -9,081 |
| Dow Jones | Diario | n/a | 1,194 | 38.11 | 16,900 EUR | -8,908 |
| Dow Jones | 15 min | n/a | 3,884 | 37.33 | 13,052 EUR | -9,190 |
| Dow Jones | 4 horas | n/a | 810 | 40.49 | 10,700 EUR | -7,832 |
| Dow Jones | 30 min | n/a | 2,920 | 36.95 | 10,020 EUR | -8,556 |
| Dow Jones | 10 min | n/a | 3,031 | 37.55 | 9,588 EUR | -7,551 |
| Nasdaq 100 | 4 horas | n/a | 1,818 | 38.17 | 9,565 EUR | -3,611 |
| Dow Jones | 1 hora | n/a | 2,039 | 36.64 | 9,229 EUR | -8,470 |
| Nasdaq 100 | Diario | n/a | 824 | 40.29 | 7,322 EUR | -5,082 |
| Petróleo Brent | Diario | n/a | 595 | 40.34 | 6,984 EUR | -4,208 |
| Petróleo crudo de EE. UU. | 4 horas | n/a | 2,297 | 37.44 | 6,353 EUR | -5,078 |
| S&P 500 | Diario | n/a | 467 | 41.33 | 1,648 EUR | -966 |
| Oro | 30 min | n/a | 322 | 43.17 | 765 EUR | -441 |
| Oro | 5 min | n/a | 141 | 45.39 | 683 EUR | -245 |
| FTSE 100 | 3 min | n/a | 186 | 41.94 | 600 EUR | -551 |
| Oro | 15 min | n/a | 229 | 43.67 | 582 EUR | -297 |
| Oro | 1 min | n/a | 18 | 50.00 | 140 EUR | -119 |
Gráficos
Las 10 mejores de 20 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
// ============================================================ // Seasonal Momentum Long // ProRealAlgos Strategy Library | prorealalgos.com // Type: Momentum // Direction: Long only // Timeframe tested: 10 minutes // ============================================================ // --- Settings --- DEFPARAM CumulateOrders = false // --- Parameters --- positionSize = 1 // contracts per trade halfMonthDay = 15 // last day of the first half of the month minTrueRange = 25 // bar true range must exceed this, in price points temaPeriod = 4 // TEMA length emaPeriod = 4 // EMA length compared with the TEMA repulsePeriod = 3 // Repulse length for the exit repulseExitLevel = -0.3 // exit when Repulse falls below this stopLossPct = 5 // protective stop, percent of entry price // Seasonal weight per half month. Zero blocks new entries in that half. janFirstHalf = 3 janSecondHalf = 0 febFirstHalf = 3 febSecondHalf = 3 marFirstHalf = 3 marSecondHalf = 2 aprFirstHalf = 3 aprSecondHalf = 3 mayFirstHalf = 1 maySecondHalf = 1 junFirstHalf = 1 junSecondHalf = 2 julFirstHalf = 3 julSecondHalf = 2 augFirstHalf = 2 augSecondHalf = 3 sepFirstHalf = 3 sepSecondHalf = 0 octFirstHalf = 3 octSecondHalf = 2 novFirstHalf = 1 novSecondHalf = 3 decFirstHalf = 3 decSecondHalf = 2 ONCE seasonWeight = 0 // --- Indicators --- // CurrentMonth is the calendar month the system runs in, Day is the bar's day. IF CurrentMonth = 1 THEN IF Day <= halfMonthDay THEN seasonWeight = janFirstHalf ELSE seasonWeight = janSecondHalf ENDIF ELSIF CurrentMonth = 2 THEN IF Day <= halfMonthDay THEN seasonWeight = febFirstHalf ELSE seasonWeight = febSecondHalf ENDIF ELSIF CurrentMonth = 3 THEN IF Day <= halfMonthDay THEN seasonWeight = marFirstHalf ELSE seasonWeight = marSecondHalf ENDIF ELSIF CurrentMonth = 4 THEN IF Day <= halfMonthDay THEN seasonWeight = aprFirstHalf ELSE seasonWeight = aprSecondHalf ENDIF ELSIF CurrentMonth = 5 THEN IF Day <= halfMonthDay THEN seasonWeight = mayFirstHalf ELSE seasonWeight = maySecondHalf ENDIF ELSIF CurrentMonth = 6 THEN IF Day <= halfMonthDay THEN seasonWeight = junFirstHalf ELSE seasonWeight = junSecondHalf ENDIF ELSIF CurrentMonth = 7 THEN IF Day <= halfMonthDay THEN seasonWeight = julFirstHalf ELSE seasonWeight = julSecondHalf ENDIF ELSIF CurrentMonth = 8 THEN IF Day <= halfMonthDay THEN seasonWeight = augFirstHalf ELSE seasonWeight = augSecondHalf ENDIF ELSIF CurrentMonth = 9 THEN IF Day <= halfMonthDay THEN seasonWeight = sepFirstHalf ELSE seasonWeight = sepSecondHalf ENDIF ELSIF CurrentMonth = 10 THEN IF Day <= halfMonthDay THEN seasonWeight = octFirstHalf ELSE seasonWeight = octSecondHalf ENDIF ELSIF CurrentMonth = 11 THEN IF Day <= halfMonthDay THEN seasonWeight = novFirstHalf ELSE seasonWeight = novSecondHalf ENDIF ELSIF CurrentMonth = 12 THEN IF Day <= halfMonthDay THEN seasonWeight = decFirstHalf ELSE seasonWeight = decSecondHalf ENDIF ENDIF weekday = DayOfWeek = 1 OR DayOfWeek = 2 OR DayOfWeek = 3 OR DayOfWeek = 4 OR DayOfWeek = 5 wideBar = TR(close) > minTrueRange temaAboveEma = TEMA[temaPeriod](close) > ExponentialAverage[emaPeriod](close) repulseValue = Repulse[repulsePeriod](close)
18 líneas más: las reglas de entrada y salida.
Configuración
Con 734,000 barras disponibles en Gold 10 minutos, el beneficio neto subió a EUR 1,495.5 desde EUR 904.9 de la ejecución estándar, y los datos más antiguos por sí solos añadieron EUR 590.6.
| Barras disponibles | 734,000 |
| Neto, ejecución estándar de 200,000 barras | 904.90 EUR |
| Neto, ejecución larga | 1,495.50 EUR |
| Neto solo en los datos más antiguos | 590.60 EUR |
Preguntas
Sí, es un sistema ProOrder solo largos con un stop porcentual. El código se ha reescrito pero no se ha comprobado en compilación, y las estadísticas provienen de la versión anterior.
Nueve instrumentos desde 1 minuto hasta Diario. Gold 10 minutos tuvo el mejor profit factor (1.57), y DAX 40 en 4 horas obtuvo lo máximo en euros, EUR 17,920.50 en 2,445 operaciones con un profit factor de 1.18.
Con 1 contrato, Gold 10 minutos tuvo un max drawdown de EUR 176.50. DAX 40 4 horas alcanzó EUR 3,327.60, así que el tamaño depende mucho del mercado que elijas.
Algunos medios meses, como la segunda mitad de enero y de septiembre, tienen peso cero y bloquean nuevos longs. La idea es evitar partes del año que históricamente fueron peores para las entradas long.
Relacionado
La comunidad de ProRealAlgos obtiene las reglas completas, el código completo y la cartera automatizada.