ICT Propulsion Block runs on MT4 and MT5, and the first thing worth knowing about it is what it throws away.
Most order block indicators are collectors. Every displacement leaves a block, every block gets a box, and by the end of a week the chart is a wall of overlapping rectangles that all look equally important. This one starts the same way, finds the same blocks, and then deletes most of them. A block that never became part of a propulsion sequence is off the chart by default, and that setting is on when you install it.
What a propulsion block is here
The plain definition is an order block that forms inside the range of the order block before it, pushing the same direction. Price found supply, absorbed it, and set up again higher without giving the level back. The second block is the propulsion โ the market re-loading rather than reversing.
That is the definition, and the tool implements it. But it also builds propulsion blocks a second way, and this one isn't in the definition at all.
While a bullish order block is live, the tool watches for a bar that opens above the block and dips into it without closing through. A wick down into the level, a close back above. That bar gets remembered. Later, when a close takes out that bar's high, the rejected bar itself is promoted to an order block and flagged as propulsion immediately, and the block it tested is retired.
So a propulsion block on this chart is one of two things: a block nested inside its predecessor, or the exact candle that tested the predecessor and got refused. The second case is the one that shows up at the moment you actually care about.
How a block gets found in the first place
Nothing is marked until structure breaks. The tool keeps a running swing high and swing low using a three-bar pivot, and a bullish block is only created when a bar closes above the current swing high.
At that point it looks backwards for the block candle: start at the bar before the break, then walk back up to ten bars looking for a down candle that reached lower than the current candidate. The lowest down close before the push is the order block.
One detail with real consequences: each swing high can only be crossed once. The cross flag latches on the first close through it, and further pushes above the same high create nothing. You get one block per structural break, not one per bar of the rally.
What separates it from a normal order block tool
| Ordinary OB indicator | This one |
|---|---|
| Keeps every block it finds | Deletes blocks that never joined a propulsion chain |
| Draws each block as a filled zone | Draws a single line at the block's edge, plus an ob or pb label |
| Alerts on every block | Alerts on propulsion blocks only |
| Blocks die when price closes through them | A propulsion block dying also kills the order block that produced it |
The last row is worth reading twice. When a propulsion block is mitigated, the tool reaches back and marks its parent order block mitigated too, even though price never traded through the parent. The reasoning is that the parent's whole claim to being interesting was the propulsion that came out of it. Once that fails, the level behind it is treated as gone as well.

What it draws
A line, not a box. Each block renders as a horizontal line at its proximal edge โ the high for bullish, the low for bearish โ extended right for as long as the block is live. Beside it sits a small ob or pb text label, and a Wingdings arrow at the opposite edge of the candle. Order blocks are blue and orange; propulsion blocks are teal and red.
That is a deliberate trade. A zone tells you the block's depth, a line tells you the price you'd actually work from, and with a chart that keeps chains of nested blocks the zones would be sitting on top of each other.
A dotted mean threshold line, for propulsion blocks only. It sits at the midpoint of the propulsion candle's body, not the midpoint of its full range. Ordinary order blocks don't get one. If you see a dotted line, that block is a propulsion block, no need to read the label.

The setting that changes everything
Remove Unassociated Order Blocks ships on. When a new block forms that doesn't overlap the previous one, and the previous one wasn't itself a propulsion block, the previous one is deleted from the chart. Not greyed out, not marked mitigated โ removed.
The most recent block always survives, because it can still become part of a propulsion pair on the next break. Everything older that never joined a chain is gone.
Turn it off and you get a conventional order block map with propulsion blocks highlighted inside it. Both are reasonable ways to work. What isn't reasonable is not knowing which one you're looking at, because the empty chart is very easy to read as "the indicator isn't finding anything."

What it can't do
The block search stops at ten bars. If the down candle that started the move is eleven bars back, the tool doesn't find it and falls back to the bar immediately before the break. On slow, drawn-out accumulations the marked block is sometimes just the last candle rather than the meaningful one. There's no setting for this depth.
It has no higher-timeframe awareness. A bullish propulsion block sitting directly under a daily supply zone is drawn exactly like one with clear air above it. Structure is read on the chart timeframe and nowhere else.
Mitigation is a single price test. Close through the block's far edge, or wick through it if you set Mitigatio type to Wick, and the block is done. There's no partial mitigation, no "tested but held" state, nothing between live and dead.
The three-bar pivot is short. Swing Detection Length defaults to 3, which finds a lot of structure on M15 and finds structure inside noise on M5. On intraday charts this is the setting to raise before you touch anything else.
Nothing is drawn on the forming bar. The whole calculation runs on bar close, which is the right behaviour, but it does mean the block confirming right now won't appear until the candle finishes.

Does it move after the fact
No. Every block is created inside a new-bar check and the calculation loop stops one bar short of the live candle, so a block that was placed at a given price on a given bar stays there.
Two things do keep changing, and both should: live blocks extend their line to the right each bar, and a block flips to mitigated when price finally closes through it. Neither one moves anything that was already drawn.
Alerts follow the same rule. The first pass over history is silent, so attaching it to a year of gold gives you a year of blocks and no alerts. After that you get one alert per propulsion block, on the terminal or by email, and nothing at all for ordinary order blocks.
Questions you'll have
Does ICT Propulsion Block repaint? No. Blocks are placed on bar close behind a new-bar check and the loop never touches the forming candle. Lines extend to the right while a block is live, which is the block still being valid, not the block moving.
Why is my chart almost empty? Remove Unassociated Order Blocks is on by default and it deletes blocks that never became part of a propulsion chain. Turn it off if you want the full order block map.
What's the difference between the ob and pb labels? ob is an ordinary order block. pb is a propulsion block: either nested inside the previous block, or the candle that tested the previous block and got rejected. Only pb blocks get a dotted mean threshold line and only pb blocks raise alerts.
Why did an order block disappear when price never reached it? Its propulsion block got mitigated. When that happens the parent is marked mitigated too, on the basis that the level's significance came from the propulsion it produced.
What timeframes? H1 and H4 read cleanly at the default settings. It works on M5 and M15, but the three-bar swing length finds structure inside noise down there, so raise Swing Detection Length before you judge it.
MT4? Both platforms are included, one download each. Same swing length, same defaults, same two routes to a propulsion block.
Support
Message me through the site with a screenshot of the chart, plus the symbol and timeframe. That's usually enough to explain what a particular block did. Updates are included for as long as your subscription is running.
Analysis tool. It places no trades and makes no profitability claim. Past price behaviour is not a guide to future price behaviour.