Apuntarme a la lista de espera
Estrategias / Breakout / Opening Range Breakout

Opening Range Breakout

Cada día el sistema sigue el máximo y el mínimo desde la primera barra. Después de que el precio retroceda al menos un 30% de ese rango, coloca una orden stop 4 puntos dentro del borde del rango y opera la ruptura una vez al día. Los días con un rango más amplio de 32.5 puntos se omiten, y esos mismos 32.5 puntos son el stop.

BreakoutLargos & cortosSwingNikkei 2251 hora
n/aProfit factor
21,548Beneficio neto USD
6.69%Tasa de acierto
957Operaciones
-12,128Max drawdown
22.52Operación media

Mejor ejecución de 8. Nikkei 225, 1 hora, spread 10, de la ejecución sweeps:2026-09-17-NIKKEI-1h-opt.tsv:2.

Reglas de entrada, largos

  1. Cada día, seguir el máximo y el mínimo desde la primera barra del día
  2. Deben estar fijados ambos niveles, el rango del día debe ser de 32.5 puntos como máximo y los dos niveles estar separados al menos 11 puntos
  3. Comprar en la ruptura del buy stop, solo una vez al día

Reglas de entrada, cortos

  1. Una vez que el precio ha rebotado al menos un 30% del rango del día desde el mínimo, armar un sell stop 4 puntos por encima del mínimo del día
  2. Vender en corto en la ruptura del sell stop, solo una vez al día

Reglas de salida

  1. Stop loss 32.5 puntos

Condiciones de la prueba

PeriodoHasta 2026-09-17
InstrumentoNikkei 225, 1 hora
Spread10 puntos
Contratos2
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-17
Parámetros (5)
positionSize
Contratos por operación
2
maxAmplitude
Rango del día más amplio que aún se opera, y también el stop en puntos
32.5
minAmplitude
Separación mínima entre los dos niveles de entrada
11
orderDistance
Los niveles de entrada se sitúan a esta distancia dentro de los bordes del rango
4
minRangePct
El precio debe retroceder esta proporción del rango antes de fijar un nivel
30

Todas las ejecuciones

Mercados y marcos temporales probados

MercadoMarco temporalPFOperaciones% de aciertoNetoMax DD
Nikkei 225Mejor ejecución1 horan/a 9576.6921,548 USD-12,128
DAX 40Diarion/a 33114.8019,755 EUR-3,553
Nikkei 2251 minn/a 701.433,777 USD-2,654
Oro5 minn/a 5215.383,519 EUR-1,726
S&P 5001 horan/a 37716.451,985 EUR-1,825
Oro10 minn/a 6410.941,918 EUR-1,349
Oro15 minn/a 9614.581,895 EUR-1,220
S&P 5005 minn/a 807.50798 EUR-752

Gráficos

Resultados por ejecución

Beneficio netoMax drawdown

El código

ProBuilder, reescrito al estándar de la casa

// ============================================================
// Opening Range Breakout
// ProRealAlgos Strategy Library  |  prorealalgos.com
// Type: Breakout
// Direction: Long & short
// Timeframe tested: 1 hour
// ============================================================

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

// --- Parameters ---
positionSize = 2          // contracts per trade
maxAmplitude = 32.5       // widest day range still traded, also the stop in points
minAmplitude = 11         // minimum gap between the two entry levels
orderDistance = 4         // entry levels sit this far inside the range edges
minRangePct = 30          // price must pull back this share of the range before a level is set

// --- Indicators ---
ONCE sessionStarted = -1

// Holiday calendar: no trading on 1 May and on 24, 25, 26, 30 and 31 December.
IF (Month = 5 AND Day = 1) OR (Month = 12 AND (Day = 24 OR Day = 25 OR Day = 26 OR Day = 30 OR Day = 31)) THEN
  tradingDay = 0
ELSE
  tradingDay = 1
ENDIF

// New day: clear both entry levels and fill flags.
IF IntradayBarIndex = 0 THEN
  buyThreshold = 0
  sellThreshold = 0
  longFilled = 0
  shortFilled = 0
  sessionStarted = 1
ENDIF

// Build today's range until both entry levels are set.
IF sessionStarted = 1 AND tradingDay = 1 THEN
  IF buyThreshold = 0 OR sellThreshold = 0 THEN
    rangeHigh = Highest[IntradayBarIndex + 1](high)
    rangeLow = Lowest[IntradayBarIndex + 1](low)
    daySpread = rangeHigh - rangeLow
    minSpread = daySpread * minRangePct / 100

    IF daySpread <= maxAmplitude THEN
      IF sellThreshold = 0 AND (close - rangeLow) >= minSpread THEN
        sellThreshold = rangeLow + orderDistance
      ENDIF
      IF buyThreshold = 0 AND (rangeHigh - close) >= minSpread THEN
        buyThreshold = rangeHigh - orderDistance
      ENDIF
    ENDIF
  ENDIF
ENDIF

30 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.
Lee esto primeroDebilidades conocidas4 puntos
  • La tasa de acierto es muy baja: 6.69% en la mejor ejecución en Nikkei 225 1 hora, y 1.43% en Nikkei 225 1 minuto. Los beneficios dependen de unas pocas ganancias grandes.
  • No se registró el profit factor para ningún mercado. Todas las filas son datos de barrido.
  • Algunas filas tienen muy pocas operaciones, por ejemplo 52 en Gold 5 minutos y 70 en Nikkei 225 1 minuto, lo que es demasiado poco para fiarse.
  • Opera 2 contratos por señal y usa un stop fijo en puntos, por lo que el riesgo por operación cambia mucho entre instrumentos.

Preguntas

Sobre esta estrategia

¿Se ejecuta en ProOrder?

Sí, usa órdenes stop pendientes que ProOrder admite. El código se reescribió y aún no se ha comprobado en compilación, y las estadísticas provienen de la versión anterior.

¿Cuáles fueron los resultados por mercado?

La mejor fue Nikkei 225 en 1 hora con USD 21,548.40 en 957 operaciones. DAX 40 Diario obtuvo EUR 19,755.40 en 331 operaciones, y Gold y S&P 500 fueron menores pero positivos.

¿Con cuánto capital debo contar?

La prueba utilizó 2 contratos por operación. El max drawdown de la mejor ejecución con ese tamaño fue de USD 12,128.20, así que reduce el tamaño a la mitad si quieres aproximadamente la mitad de esa exposición.

¿Por qué esperar un pullback antes de armar la orden?

Exigir un pullback del 30% desde el extremo del día significa que el nivel solo se fija después de que el mercado haya mostrado los dos lados del rango, lo que filtra los días de dirección única.

Relacionado

Estrategias como esta

Monday Dip Buy

Mejor ejecución en el mismo mercado, Nikkei 225.

n/a PF · 146 operaciones

Breakout Regime Filter

También es una estrategia breakout.

6.28 PF · 70 operaciones

Bollinger Band Walk

También es una estrategia breakout.

3.10 PF · 148 operaciones

Descubre cómo encajan sistemas de rango diario como este junto a las estrategias swing. Apúntate a la lista de espera 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