Holdfast ORB Engine marks the range the session opened with, holds it for the day, and flags the closes that break it. Then it goes quiet until price comes all the way back through the middle — because a market grinding along the high is not breaking out twenty times.
Price closes above the opening range high. That is an event. Two bars later it closes above it again, and again, and again — because it never went anywhere, it is just sitting on the level. A tool that marks each of those closes has turned one event into twelve, and the twelve are worth less than the one.
Marking every close beyond a level is the fastest way to make a genuinely useful level look like noise.
The high and low of the session's opening stretch — thirty minutes by default, or an explicit clock window when your platform's idea of the session is not yours.
Drawn dashed, and doing real work: it is the level price must close back through before that side can signal again.
A side fires once. The next signal on that side means price genuinely left, came back through the middle, and went again — which is a different event, worth its own mark.
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, and leaves the claim to you.
| Use | What to look at |
|---|---|
| Scale for the day | A range that is wide against the instrument's usual range is a day that has already moved. A narrow one is a day still deciding. Hold it next to an ATR reading and it becomes a number rather than an impression. |
| A level to fail at | The high and low are where the session's argument was held, and they are the levels every other participant saw. Price returning to them later is a retest of something real. |
| A re-arm count | How many times a day re-arms before it trends says a lot about that market. A day that re-arms four times is not trending, whatever the last breakout looked like. |
Arrows sit outside the range on the bar that broke it — an up arrow under the range low, a down arrow over the range high — so the mark never sits on top of the candles that made it. How far outside is a setting.
A range with no width draws nothing. If the session's opening bars never moved — common on thin contracts overnight — there is no range and nothing to break, so the indicator stays quiet rather than inventing a level from a flat line.
| Setting | What it does | Default |
|---|---|---|
| Range mode | From the session open, or an explicit clock window in the platform's own time | session open |
| Range minutes | How long the opening range runs in session mode | 30 |
| Show previous sessions | Keep each day's levels, or clear them at the next session. Only the live range is ever shaded either way | true |
| Show midline / labels | The re-arm level, and the ORH / ORL labels | true |
| Signal direction | Both, up only, or down only. Arming is consumed either way, so turning a side back on mid-session cannot fire a stale signal | both |
| Arrow distance (ticks) | How far outside the range the breakout arrows sit | 4 |
| Draw behind price bars | Puts the shading under the candles so every bar stays readable | true |
Requirements: NinjaTrader 8, MetaTrader 5, or TradingView. Any instrument with a session, any bar type, any feed.
Enter your email and the download arrives in a couple of minutes, with the guide. All three builds are in it — use whichever platform you trade.
HoldfastOrbEngine.zip — NinjaTrader 8.mq5 — MetaTrader 5.pine — TradingViewOne email to deliver it, then occasional notes on order flow and new tools. No sharing, no selling, one-click unsubscribe on every email. You can also just read the documentation first — it is the complete guide, no email required.
Yes. No license key, no expiry, no nag screen, nothing held back for a paid version.
Thirty minutes is the convention for index futures because it covers the opening auction and the first repricing. Fifteen is common for faster products. The honest answer is that it depends on your market, and the setting is there so you can test it rather than inherit it.
MetaTrader has no session template, so the day comes from the broker clock — which often is not your market's session. Switch to the custom window and set the clock times you actually trade, remembering they are broker time.
No. A close beyond the range is a fact about where price is relative to where the session opened. Whether it continues depends on everything this indicator deliberately does not measure — which is why the arrows mark the close and stop there.
Because price has not closed back through the midpoint yet. That is the re-arm rule, and it is the whole reason the tool exists.
The range is context. ATR Band says whether it is wide or narrow for this market, Trend Ribbon says which way the market is leaning into the break, and Liquidity Levels says whether real resting size sits at the range edge — the difference between a level people are watching and a level someone is defending.