Apuntarme a la lista de espera
Estrategias / Momentum / EMA Swing Limit Entry

EMA Swing Limit Entry en Gold

Una vez que el precio se ha movido más de 45 pips desde su último toque de la EMA de 8, el sistema coloca una orden limitada de vuelta cerca de esa media. Compra los pullbacks después de swings al alza fuertes y vende los rebotes después de swings a la baja fuertes. Cada operación lleva un stop de 30 puntos y un objetivo de 25 puntos.

MomentumLargos & cortosIntradayOro3 min
1.26Profit factor
1,894Beneficio neto EUR
60.08%Tasa de acierto
253Operaciones
-596Max drawdown
7.49Operación media

Mejor ejecución de 5. Gold, 3 min, spread 0.6, de la ejecución pf:2026-09-15-GOLD-3m.tsv:1.

Reglas de entrada, largos

  1. Ese swing high está por encima de la EMA de 8
  2. No hay posición abierta
  3. Entrar con un buy limit en la EMA de 8 más el tamaño de su último movimiento de una barra

Reglas de entrada, cortos

  1. Ese swing low está por debajo de la EMA de 8
  2. No hay posición abierta
  3. Entrar con un sell limit en la EMA de 8 menos el tamaño de su último movimiento de una barra

Reglas de salida

  1. Stop loss 30 puntos

Condiciones de la prueba

PeriodoHasta 2026-09-15
InstrumentoGold, 3 minutos
Spread0.6 puntos
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-15
Parámetros (9)
swingPeriod
Longitud de la EMA desde la que se mide el swing
8
seedPeriod
Barras usadas para inicializar el swing high / low en la primera barra
8
swingTargetPips
Tamaño del swing en pips que activa una entrada
45
baseCapital
Importe añadido al beneficio de la estrategia antes de dimensionar
3000
riskFraction
Porción del capital usada en la fórmula de dimensionamiento
0.02
capitalPerContract
Dinero por contrato en la fórmula de dimensionamiento
30
minPositionSize
Contratos mínimos por operación
1
stopLossPoints
Stop de protección en puntos
30
takeProfitPoints
Objetivo de beneficio en puntos
25

Todas las ejecuciones

Mercados y marcos temporales probados

MercadoMarco temporalPFOperaciones% de aciertoNetoMax DD
OroMejor ejecución3 min1.26 25360.081,894 EUR-596
Oro2 min1.23 20959.811,350 EUR-708
Oro5 min1.19 28558.601,516 EUR-774
Oro1 hora1.13 38958.351,644 EUR-1,199
Oro1 minn/a 6363.49620 EUR-350

Gráficos

Resultados por ejecución

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

// ============================================================
// EMA Swing Limit Entry
// ProRealAlgos Strategy Library  |  prorealalgos.com
// Type: Momentum
// Direction: Long & short
// Timeframe tested: 3 minutes
// ============================================================

// --- Settings ---
DEFPARAM CumulateOrders = true
DEFPARAM PreloadBars = 10000

// --- Parameters ---
swingPeriod = 8            // EMA the swing is measured from
seedPeriod = 8             // bars used to seed the swing high / low on the first bar
swingTargetPips = 45       // swing size that arms an entry
baseCapital = 3000         // added to strategy profit before sizing
riskFraction = 0.02        // share of that capital put at risk
capitalPerContract = 30    // money per contract in the sizing formula
minPositionSize = 1        // never trade fewer contracts than this
stopLossPoints = 30        // protective stop
takeProfitPoints = 25      // profit target

// --- Indicators ---
ONCE swingHigh = Highest[seedPeriod](high)
ONCE swingLow = Lowest[seedPeriod](low)

swingMA = ExponentialAverage[swingPeriod](close)
swingTarget = swingTargetPips * PipSize

// Each touch of the EMA restarts the swing measurement.
IF high > swingMA AND low < swingMA THEN
  touchBar = BarIndex
  touchPrice = swingMA
  swingHigh = swingMA
  swingLow = swingMA
ENDIF

IF low > swingMA THEN
  barsSinceTouch = max(1, BarIndex - touchBar)
  swingHigh = Highest[barsSinceTouch](high)
  swingLow = swingMA
ENDIF

IF high < swingMA THEN
  barsSinceTouch = max(1, BarIndex - touchBar)
  swingLow = Lowest[barsSinceTouch](low)
  swingHigh = swingMA
ENDIF

IF (swingHigh - touchPrice) > swingTarget AND swingHigh > swingMA THEN
  buySetup = 1
ENDIF
IF (swingHigh - touchPrice) <= swingTarget THEN
  buySetup = 0
ENDIF

IF (touchPrice - swingLow) > swingTarget AND swingLow < swingMA THEN
  sellSetup = -1
ENDIF
IF (touchPrice - swingLow) <= swingTarget THEN
  sellSetup = 0
ENDIF

// Limit orders sit one EMA slope beyond the EMA.
slopeOffset = abs(round(swingMA - swingMA[1]))
positionSize = max(minPositionSize, round(((StrategyProfit + baseCapital) * riskFraction) / capitalPerContract))

16 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

EMA
Lee esto primeroDebilidades conocidas4 puntos
  • Solo se probó en Gold. Las cuatro filas de la tabla de mercados son marcos temporales de Gold, así que no hay pruebas de que funcione en otros.
  • El position size no es fijo. Crece con el beneficio de la estrategia (capital base 3000, fracción de riesgo 0.02, 30 por contrato), así que las operaciones posteriores arriesgan más que las primeras.
  • El stop (30 puntos) es mayor que el objetivo (25 puntos). Una tasa de acierto del 60.08% dio un profit factor de solo 1.26 en Gold 3 minutos.
  • La operación media fue de 7.49 EUR, lo que deja poco margen para el slippage en las ejecuciones de órdenes limitadas.

Preguntas

Sobre esta estrategia

¿Puede operar automáticamente en ProOrder?

Sí. Las entradas son órdenes limitadas y el stop y el objetivo están codificados, así que funciona sin supervisión una vez cargada.

¿Cómo se comportó en Gold?

Gold 3 minutos ganó 1,893.8 EUR en 253 operaciones. Los gráficos de 2 minutos, 5 minutos y 1 hora también fueron positivos, con profit factors entre 1.13 y 1.23.

¿Qué drawdown tuvo?

El peor drawdown en Gold 3 minutos fue de 596.1 EUR. Como el tamaño crece con el beneficio, un drawdown al final de una ejecución puede ser mayor que al principio.

¿Por qué un gráfico de 3 minutos?

El swing de 45 pips y el objetivo de 25 puntos se adaptan a los movimientos intraday rápidos de Gold. El gráfico de 3 minutos tuvo el mejor profit factor de los marcos temporales probados.

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

Turtle Soup

Un profit factor similar.

1.26 PF · 867 operaciones

¿Operas Gold en intraday? Apúntate a la lista de espera de ProRealAlgos y mira cómo ejecutamos nuestros sistemas.

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