Apuntarme a la lista de espera
Estrategias / Momentum / Seasonal Momentum Long

Seasonal Momentum Long

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.

MomentumSolo largosIntradayOro10 min
1.57Profit factor
905Beneficio neto EUR
48.72%Tasa de acierto
195Operaciones
-177Max drawdown
4.64Operación media

Mejor ejecución de 20. Gold, 10 min, spread 0.6, de la ejecución pf:2026-09-24-GOLD-10m.tsv:1.

Reglas de entrada, largos

  1. Solo de lunes a viernes
  2. El true range de la barra está por encima de 25 puntos
  3. TEMA(4) está por encima de EMA(4)

Reglas de salida

  1. Stop loss al 5% de la entrada

Condiciones de la prueba

PeriodoHasta 2026-09-24
InstrumentoGold, 10 minutos
Spread0.6 puntos
Contratos1
Capital inicial1,000,000
CostesSolo spread. No se incluyen comisiones ni financiación overnight.
BarrasHasta 200,000 barras, menos cuando el instrumento tiene menos historial
Última prueba2026-09-24
Parámetros (32)
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

Mercados y marcos temporales probados

MercadoMarco temporalPFOperaciones% de aciertoNetoMax DD
OroMejor ejecución10 min1.57 19548.72905 EUR-177
DAX 404 horas1.18 2,44538.7317,921 EUR-3,328
DAX 40Diario1.18 1,04339.0211,563 EUR-2,819
PlataDiarion/a 75236.8426,593 USD-9,081
Dow JonesDiarion/a 1,19438.1116,900 EUR-8,908
Dow Jones15 minn/a 3,88437.3313,052 EUR-9,190
Dow Jones4 horasn/a 81040.4910,700 EUR-7,832
Dow Jones30 minn/a 2,92036.9510,020 EUR-8,556
Dow Jones10 minn/a 3,03137.559,588 EUR-7,551
Nasdaq 1004 horasn/a 1,81838.179,565 EUR-3,611
Dow Jones1 horan/a 2,03936.649,229 EUR-8,470
Nasdaq 100Diarion/a 82440.297,322 EUR-5,082
Petróleo BrentDiarion/a 59540.346,984 EUR-4,208
Petróleo crudo de EE. UU.4 horasn/a 2,29737.446,353 EUR-5,078
S&P 500Diarion/a 46741.331,648 EUR-966
Oro30 minn/a 32243.17765 EUR-441
Oro5 minn/a 14145.39683 EUR-245
FTSE 1003 minn/a 18641.94600 EUR-551
Oro15 minn/a 22943.67582 EUR-297
Oro1 minn/a 1850.00140 EUR-119

Gráficos

Resultados por ejecución

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

ProBuilder, reescrito al estándar de la casa

// ============================================================
// 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

Cómo cargarla

  1. Copia el código con el botón de copiar del bloque de código.
  2. En ProRealTime, abre un gráfico del instrumento y el marco temporal que quieras probar y luego abre ProOrder > New trading system y elige "Create with programming".
  3. Pega el código, dale un nombre al sistema y guárdalo.
  4. Haz clic en "Backtest", ajusta tu propio spread y position size, y ejecútala antes de considerar operarla en real.

Indicadores utilizados

TEMAEMARepulseTrue Range
Historial más largoNueva ejecución con hasta 1,000,000 barrasOro · 10 min · datos antiguos 590.60 EUR

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.

Oro · 10 min

Barras disponibles734,000
Neto, ejecución estándar de 200,000 barras904.90 EUR
Neto, ejecución larga1,495.50 EUR
Neto solo en los datos más antiguos590.60 EUR
Lee esto primeroDebilidades conocidas4 puntos
  • El mes que usa la tabla estacional es el mes en el que se ejecuta el sistema, no el mes de la barra. Un backtest ejecutado en septiembre solo opera en la primera mitad de cada mes, así que los resultados dependen de cuándo lo ejecutes.
  • La mejor ejecución en Gold 10 minutos tuvo solo 195 operaciones y obtuvo EUR 904.90.
  • El umbral de true range de 25 puntos es específico de cada instrumento, y la mayoría de las filas son datos de barrido sin un profit factor registrado.
  • La tasa de acierto se sitúa por debajo del 50% en todos los mercados probados, desde el 36.64% en Dow Jones 1 hora hasta el 48.72% en la mejor ejecución.

Preguntas

Sobre esta estrategia

¿Puede el Seasonal Momentum Long operar en real?

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.

¿Qué mercados y marcos temporales se probaron?

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.

¿Qué drawdown hubo en la mejor ejecución?

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.

¿Por qué una tabla estacional?

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

Estrategias como esta

Monday Dip Buy

Usa el mismo indicador.

n/a PF · 146 operaciones

Triple Band Market Model

Mejor ejecución en el mismo mercado, Gold.

2.27 PF · 203 operaciones

Brent SMI Trend

Un profit factor similar.

1.57 PF · 106 operaciones

¿Quieres seguir cómo se prueban los filtros estacionales en distintos mercados? Únete a la comunidad de ProRealAlgos.

La comunidad de ProRealAlgos obtiene las reglas completas, el código completo y la cartera automatizada.

Los resultados pasados de backtest no garantizan resultados futuros. Esto no es asesoramiento financiero. Seleccionado y mantenido por ProRealAlgos. ProRealTime™ es una marca comercial de ProRealTime SAS. prorealalgos.comEstadísticasDocumentación