Market Structure (ICT)
Wyckoff Spring / Upthrust
The traders who last aren't the ones who never lose. They're the ones who never guess.Jason Parker, Founder of Trading Habits
Inside a defined trading range, a spring is a false breakdown below the range low that snaps back in, an upthrust is the mirror false breakout above the range high. Richard Wyckoff described both decades before ICT built its own vocabulary on top of the same idea.
Set the effort filter, watch the range get tested
Each session below builds a genuine trading range first, then tests one of its edges with an intrabar wick that closes back inside. Wyckoff's own logic was effort versus result: a test on unusually light simulated volume that still reverses hard is a more convincing spring or upthrust than the same wick on heavy volume, which more often means genuine supply or demand actually showed up. Drag the slider to set how low a test's volume percentile has to be before this tool will call it a genuine spring or upthrust rather than an ordinary test. Every logged test gets checked against what actually happened next: did price go on to break the opposite edge of the range.
Range forming… watch for the first edge test.
How it works
- The range comes first, the test comes second. This tool establishes a trading range from about 30 bars of contained price action before any edge gets tested. Without a genuine range, there's nothing for a spring or upthrust to be a false break of.
- A spring pierces the low, an upthrust pierces the high, both have to reclaim. The wick has to trade beyond the range edge intrabar, and the close has to come back inside the range. A wick that pierces the edge and closes beyond it isn't a spring or upthrust, it's a breakout, and this tool tracks those separately.
- Effort versus result is the whole Wyckoff logic. A test on low simulated volume, the market barely trying, that still reverses hard back into the range reads as weak selling or buying pressure behind the false break. A test on heavy volume is a more serious attempt and more likely a genuine move, even if it happens to reclaim anyway.
- The filter changes what counts, not what happened. Moving the slider doesn't change the underlying candles, it changes which already-logged tests this tool is willing to call a genuine spring or upthrust versus an ordinary failed test, and the follow-through rate recalculates from the same logged data either way.
- Follow-through means the opposite edge actually broke. A spring's genuine confirmation isn't the bounce, it's price later closing above the range high. An upthrust's genuine confirmation is price later closing below the range low. Anything short of that is logged as no follow-through, even if the test itself looked textbook.
Where this breaks
Simulated volume is not genuine order flow, and ranges get redrawn after the fact
The "effort" side of this tool is a randomly generated number scaled to look like volume, not a genuine print from a genuine exchange tape, so treat the effort filter as a teaching device for the Wyckoff logic, not a claim that this tool can see actual supply and demand. A retail price chart, genuine or simulated, can show that a low-volume test reversed and a high-volume test didn't, it cannot verify who was actually transacting or why, the same epistemic gap every price-only ICT concept on this site runs into. There's a second, more mechanical failure mode specific to this pattern: the range boundaries themselves are only as good as the lookback window used to define them, and a market that's been coiling for months can make a "spring" look like a clean low-volume reversal off a 30-bar range that a longer chart would show is actually the middle of a much bigger range, with genuine supply waiting well below it.