Holdfast ORB Engine — Setup & Guide
An opening-range tool for NinjaTrader 8, MetaTrader 5 and TradingView. It marks the range the session opened with, holds those levels for the rest of the day, and flags the closes that break them.
Free. No license key, no expiry, nothing held back.
What you received
| File | What it is |
|---|---|
HoldfastOrbEngine.zip |
The NinjaTrader 8 indicator |
HoldfastOrbEngine.mq5 |
The MetaTrader 5 build |
HoldfastOrbEngine.pine |
The TradingView build |
| This guide | Keep it |
1. What it draws, and the one thing it adds
The first stretch of a session prices the day. This marks that range — its high, its low and its midpoint — and keeps those levels on the chart while the session runs.
The one thing it does that a plain opening-range box does not: a breakout has to re-arm.
Once price closes above the range high, no further upside signal fires until price has closed back below the midpoint. Without that rule, a market grinding along the high prints a signal on every bar and the marks stop meaning anything. With it, a second upside signal means price genuinely left, came back through the middle, and went again.
What it deliberately does not do is project targets. Where price might go after a breakout is a claim about the future. Where the range was is a fact. It draws the fact.
2. Install
NinjaTrader 8
- Tools → Import → NinjaScript Add-On…
- Select
HoldfastOrbEngine.zip. Do not unzip it first. - Click OK, then restart NinjaTrader when prompted.
- Right-click a chart → Indicators → Holdfast ORB Engine → Add.
MetaTrader 5
- File → Open Data Folder, then open
MQL5\Indicators. - Copy
HoldfastOrbEngine.mq5in. - View → Navigator, right-click Indicators, Refresh, then double-click the indicator.
TradingView
- Open the Pine Editor, paste
HoldfastOrbEngine.pine, and click Add to chart.
3. Defining the range
Two ways, and which one you want depends on your platform and your market.
Session open measures from the first bar of the session for a number of minutes — 30 by default. On NinjaTrader the session is the instrument’s own trading-hours template, which is what you want for futures. On MetaTrader there is no session template, so the day comes from the broker clock, and the broker day may not start where your market does.
Custom window uses an explicit clock window instead: 09:30 to 09:45, for example. Use it whenever the session your platform believes in is not the session you trade. A window whose end is earlier than its start is read as spanning midnight rather than as an empty window.
A range with no width — a session whose first bars never moved — draws nothing at all. There is nothing to break.
4. Reading the chart
- ORH / ORL — the range high and low, held for the session and labeled at the right edge.
- The dashed midline — the midpoint, which is also the level a breakout must close back through before that side can signal again.
- The shading — the bars the range in progress was built from. Previous sessions keep their levels but lose the shading, so the chart shows one highlighted range rather than a wall of them.
- The arrows — a close beyond the range. The up arrow sits under the range low and the down arrow over the range high, on the bar that broke out, so a mark never sits on top of the candles that made it. Arrow distance (ticks) sets how far outside.
5. Settings
Opening range
| Setting | Default | What it does |
|---|---|---|
| Range mode | Session open | Session open, or an explicit clock window. |
| Range minutes | 30 | How long the range runs in session-open mode. |
| Window start / end | 09:30 / 09:45 | The custom window, in the platform’s own time. |
Display
| Setting | Default | What it does |
|---|---|---|
| Show previous sessions | On | Keeps each session’s levels. Off clears them at the next session. |
| Shade the current range | On | Shading for the range in progress. |
| Show midline | On | The re-arm level. |
| Show ORH / ORL labels | On | |
| Draw behind price bars | On | Shading sits under the candles. On MetaTrader this is a chart setting; on TradingView use Visual Order → Bring to Front on the symbol. |
Signals
| Setting | Default | What it does |
|---|---|---|
| Show breakout signals | On | The arrows. Levels and shading are unaffected. |
| Signal direction | Both | Both, up only, or down only. Arming is consumed either way, so turning a side back on mid-session does not fire a stale signal for a break that already happened. |
| Arrow distance (ticks) | 4 | How far outside the range the arrows sit. |
Alerts
Off by default. They fire on the same closes the arrows mark and obey the same direction setting.
6. How to use it
The range is context, not a signal. Three things it is good for:
Scale. The width of the opening range says what kind of day it has been so far. A range that is wide against the market’s usual range is a day that has already moved; a narrow one is a day still deciding. Holdfast ATR Band gives you the comparison.
A level to fail at. The high and low are where the session’s argument was held. Price coming back to them later in the day is a retest of the only levels every participant saw.
A re-arm count. How many times a day re-arms before it trends tells you something about that market. A day that re-arms four times is not trending, whatever the last breakout looked like.
7. Troubleshooting
Nothing is drawn at all. The range needs width. If the session’s first bars are one price — common on thin contracts overnight — there is no range and nothing to draw.
The range starts at the wrong time (MetaTrader). The broker day is not your market’s session. Switch to Custom window and set the clock times you actually trade, remembering they are in broker time.
Two sessions of levels overlap. Turn Show previous sessions off, or accept it: only the current range is ever shaded, so the live one is always the one with a box.
Signals fire on every bar. That is what the re-arm rule prevents, so if you are seeing it, check that you are looking at breakout arrows and not something else on the chart.
8. What it pairs with
- Holdfast ATR Band — is this range wide or narrow for this market?
- Holdfast Trend Ribbon — which way the market is leaning into the break.
- Holdfast Liquidity Levels — whether real resting size sits at the range edge, which is the difference between a level people are watching and a level people are defending.
holdfastlevels.com