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

  1. Tools → Import → NinjaScript Add-On…
  2. Select HoldfastOrbEngine.zip. Do not unzip it first.
  3. Click OK, then restart NinjaTrader when prompted.
  4. Right-click a chart → Indicators → Holdfast ORB Engine → Add.

MetaTrader 5

  1. File → Open Data Folder, then open MQL5\Indicators.
  2. Copy HoldfastOrbEngine.mq5 in.
  3. View → Navigator, right-click Indicators, Refresh, then double-click the indicator.

TradingView

  1. 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


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


holdfastlevels.com