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.
Meilleure exécution sur 8. Nikkei 225, 1 heure, spread 10, de l'exécution sweeps:2026-09-17-NIKKEI-1h-opt.tsv:2.
| Période | Jusqu'au 2026-09-17 |
| Instrument | Nikkei 225, 1 heure |
| Spread | 10 points |
| Contrats | 2 |
| Capital de départ | 1,000,000 |
| Coûts | Spread uniquement. Les commissions et le financement overnight ne sont pas inclus. |
| Barres | Jusqu'à 200,000 barres, moins lorsque l'instrument a moins d'historique |
| Dernier test | 2026-09-17 |
| 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é | Unité de temps | PF | Trades | % de réussite | Net | Max DD |
|---|---|---|---|---|---|---|
| Nikkei 225Meilleure exécution | 1 heure | n/a | 957 | 6.69 | 21,548 USD | -12,128 |
| DAX 40 | Journalier | n/a | 331 | 14.80 | 19,755 EUR | -3,553 |
| Nikkei 225 | 1 min | n/a | 70 | 1.43 | 3,777 USD | -2,654 |
| Or | 5 min | n/a | 52 | 15.38 | 3,519 EUR | -1,726 |
| S&P 500 | 1 heure | n/a | 377 | 16.45 | 1,985 EUR | -1,825 |
| Or | 10 min | n/a | 64 | 10.94 | 1,918 EUR | -1,349 |
| Or | 15 min | n/a | 96 | 14.58 | 1,895 EUR | -1,220 |
| S&P 500 | 5 min | n/a | 80 | 7.50 | 798 EUR | -752 |
Graphiques
Le code
// ============================================================ // 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
Questions
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.
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.
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.
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
La communauté ProRealAlgos obtient les règles complètes, le code complet et le portefeuille automatisé.