Holdfast SMC draws swing points, breaks of structure, changes of character and order blocks — with the near structure and the wider context kept as separate tiers, so the chart says which one just changed.
Structure tools tend to mark every swing they can find. On a fast chart that is a label every few bars, in both directions, and the ones that matter are buried among the ones that do not. The chart ends up less readable than it was before.
The fix is not fewer pivots. It is separating the near structure from the context and letting them say different things — so a break of the wider structure is visibly a different event from the fifteenth internal break of the morning.
Short lookback. The breaks that happen inside a move — useful for timing, and deliberately unlabeled with swing names so they do not crowd the chart.
Long lookback. The context: HH, HL, LH, LL, strong and weak levels, and the breaks that mean the move itself has changed.
Point it at another timeframe and it draws that timeframe's order blocks only — the prices you might trade against, without a second set of lines saying the same thing one step out.
BOS and CHoCH. A break that continues the direction the structure already held is a break of structure. One that goes against it is a change of character — the first break the other way, and the more interesting of the two. Each line is labeled with which it was, and which tier produced it.
An order block is the bar the losing side last held before a break went through it. It is drawn forward as a zone, and it disappears when price closes back through it — a block that has been traded through is not a level any more, and leaving it on the chart is how a structure tool turns into a wall of rectangles.
| On the chart | What it is |
|---|---|
| The zone | The extremes of one bar. Price reaching into it is the event, not price reaching an exact number inside it. |
| The label | Which tier and timeframe produced it — 5m SW OB, 1m INT OB. Labels that collide at one price are joined into one line rather than smeared over each other. |
| The block time | When it was created, on the label or on hover. Hover keeps the chart clean and draws a line through the bar the block was cut from. |
Blocks are drawn underneath the price bars, while break lines, labels and swing points stay above them. A zone you cannot read the candles through is a zone that costs you more than it gives.
A note on the vocabulary. These ideas are common property in the retail structure world and the names are not ours. What is ours is this implementation: the two-tier separation, the noisy-bar filter that stops one violent bar handing a block its whole range, the label merging, and the second engine that draws blocks without the lines.
| Setting | What it does | Default |
|---|---|---|
| Internal / swing lookback | The two tiers. The lookback decides a tier's span, and therefore how wide the blocks it cuts are | 5 / 50 |
| Block counts, per tier | How many blocks of each tier stay on the chart | small |
| Order block filter | What a bar is measured against to count as too noisy to cut a clean block — ATR, or the running mean range | ATR |
| Mitigation | Whether a block is removed on a close beyond it or a wick | Close |
| Block time | Off, on the label, or on hover with a line through the origin bar | Hover |
| Secondary engine | The timeframe its blocks come from, and its own two lookbacks | 5 Minute |
| Alerts | Block creation and block entry, per tier and per direction | all off |
Requirements: NinjaTrader 8, MetaTrader 5, or TradingView. Any instrument, any bar type, any feed. It calculates on every tick, and reads structure off closed bars: a pivot is a statement about a bar that has finished.
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.
HoldfastSmc.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.
The structure engine is our own implementation, and three choices in it are deliberate: the two tiers are genuinely separate rather than one lookback with a filter; a bar wide enough to be noise has its extremes read the other way round so it cannot hand a block its whole range; and the blocks are drawn under the candles instead of over them.
A pivot is confirmed once its lookback has passed without being traded through, so it appears a lookback after the bar it sits on — that is the definition, not a defect. Once drawn, nothing moves. Breaks are decided on closed bars only.
A block is where the losing side last held, which makes it a reasonable place to expect a reaction and a poor place to expect a guarantee. What price data cannot tell you is whether anyone is actually resting size there — for that you need the order book, which is what Liquidity Levels reads.
Only the swing tier names its pivots. The internal tier finds the same shapes far more often, and labeling all of them is exactly what makes these charts unreadable.
Structure says where the market turned and what it left behind. Liquidity Levels says whether real size is resting at that price right now, which no price-based tool can see. Trend Ribbon says which way the market is leaning into a break, and ATR Band says whether the distance to the next block is ordinary or a stretch.