Rejoindre la liste d'attente
Stratégies / Breakout / Opening Range Breakout

Opening Range Breakout

Chaque jour, le système suit le plus haut et le plus bas depuis la première barre. Après que le prix a reculé d'au moins 30% de ce range, il place un ordre stop 4 points à l'intérieur du bord du range et trade la cassure une fois par jour. Les jours dont le range est plus large que 32.5 points sont ignorés, et ces mêmes 32.5 points servent de stop.

BreakoutLong & shortSwingNikkei 2251 heure
n/aProfit factor
21,548Gain net USD
6.69%Taux de réussite
957Trades
-12,128Max drawdown
22.52Trade moyen

Meilleure exécution sur 8. Nikkei 225, 1 heure, spread 10, de l'exécution sweeps:2026-09-17-NIKKEI-1h-opt.tsv:2.

Règles d'entrée, long

  1. Chaque jour, suivre le plus haut et le plus bas depuis la première barre de la journée
  2. Les deux niveaux doivent être définis, le range du jour doit être d'au plus 32.5 points et les deux niveaux séparés d'au moins 11 points
  3. Acheter sur une cassure du buy stop, une seule fois par jour

Règles d'entrée, short

  1. Une fois que le prix a rebondi d'au moins 30% du range du jour depuis le plus bas, armer un sell stop 4 points au-dessus du plus bas du jour
  2. Vendre short sur une cassure du sell stop, une seule fois par jour

Règles de sortie

  1. Stop loss 32.5 points

Conditions de test

PériodeJusqu'au 2026-09-17
InstrumentNikkei 225, 1 heure
Spread10 points
Contrats2
Capital de départ1,000,000
CoûtsSpread uniquement. Les commissions et le financement overnight ne sont pas inclus.
BarresJusqu'à 200,000 barres, moins lorsque l'instrument a moins d'historique
Dernier test2026-09-17
Paramètres (5)
positionSize
Contrats par trade
2
maxAmplitude
Range journalier le plus large encore tradé, également le stop en points
32.5
minAmplitude
Écart minimal entre les deux niveaux d'entrée
11
orderDistance
Distance à laquelle les niveaux d'entrée se placent à l'intérieur des bords du range
4
minRangePct
Part du range dont le prix doit reculer avant qu'un niveau soit défini
30

Chaque exécution

Marchés et unités de temps testés

MarchéUnité de tempsPFTrades% de réussiteNetMax DD
Nikkei 225Meilleure exécution1 heuren/a 9576.6921,548 USD-12,128
DAX 40Journaliern/a 33114.8019,755 EUR-3,553
Nikkei 2251 minn/a 701.433,777 USD-2,654
Or5 minn/a 5215.383,519 EUR-1,726
S&P 5001 heuren/a 37716.451,985 EUR-1,825
Or10 minn/a 6410.941,918 EUR-1,349
Or15 minn/a 9614.581,895 EUR-1,220
S&P 5005 minn/a 807.50798 EUR-752

Graphiques

Résultats par exécution

Gain netMax drawdown

Le code

ProBuilder, réécrit selon le standard maison

// ============================================================
// 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 lignes de plus : les règles d'entrée et de sortie.

Configuration

Comment la charger

  1. Copiez le code avec le bouton Copier du bloc de code.
  2. Dans ProRealTime, ouvrez un graphique de l'instrument et de l'unité de temps que vous voulez tester, puis ouvrez ProOrder > Nouveau système de trading et choisissez "Créer par programmation".
  3. Collez le code, donnez un nom au système et enregistrez-le.
  4. Cliquez sur "Backtest", définissez votre propre spread et votre position size, puis lancez-la avant d'envisager de la trader en réel.
À lire d'abordFaiblesses connues4 points
  • Le taux de réussite est très faible : 6.69% lors de la meilleure exécution sur Nikkei 225 1 heure, et 1.43% sur Nikkei 225 1 minute. Les gains reposent sur quelques gros gagnants.
  • Le profit factor n'a été enregistré pour aucun marché. Chaque ligne est une donnée de balayage.
  • Certaines lignes comptent très peu de trades, par exemple 52 sur Gold 5 minutes et 70 sur Nikkei 225 1 minute, ce qui est trop peu pour être fiable.
  • Elle trade 2 contrats par signal et utilise un stop en points fixes, donc le risque par trade change beaucoup d'un instrument à l'autre.

Questions

À propos de cette stratégie

Fonctionne-t-elle dans ProOrder ?

Oui, elle utilise des ordres stop en attente pris en charge par ProOrder. Le code a été réécrit et n'a pas encore été vérifié à la compilation, et les statistiques proviennent de la version précédente.

Quels ont été les résultats par marché ?

La meilleure a été Nikkei 225 en 1 heure avec USD 21,548.40 sur 957 trades. DAX 40 Journalier a rapporté EUR 19,755.40 sur 331 trades, et Gold et S&P 500 ont été plus faibles mais positifs.

Quel capital dois-je prévoir ?

Le test a utilisé 2 contrats par trade. Le max drawdown de la meilleure exécution à cette taille a été de USD 12,128.20, donc divisez la taille par deux si vous voulez environ la moitié de cette exposition.

Pourquoi attendre un repli avant d'armer l'ordre ?

Exiger un repli de 30% depuis l'extrême du jour signifie que le niveau n'est défini qu'après que le marché a montré les deux côtés du range, ce qui filtre les journées à sens unique.

Voir aussi

Des stratégies comme celle-ci

Monday Dip Buy

Meilleure exécution sur le même marché, Nikkei 225.

n/a PF · 146 trades

Breakout Regime Filter

Également une stratégie breakout.

6.28 PF · 70 trades

Bollinger Band Walk

Également une stratégie breakout.

3.10 PF · 148 trades

Découvrez comment des systèmes de range journalier comme celui-ci se situent par rapport aux stratégies de swing. Rejoignez la liste d'attente ProRealAlgos.

La communauté ProRealAlgos obtient les règles complètes, le code complet et le portefeuille automatisé.

Les résultats passés de backtest ne garantissent pas les résultats futurs. Ceci n'est pas un conseil financier. Sélectionné et maintenu par ProRealAlgos. ProRealTime™ est une marque de ProRealTime SAS. prorealalgos.comStatsDocumentation