Turnmarks

Level Scope › Market structure

Spring and upthrust

Price penetrated the boundary of a trading range and closed back inside within a few bars. The bullish case is a spring, the bearish an upthrust.

What it looks like on a chart

A horizontal line at the range boundary that was penetrated, drawn forward from the recovery bar.

Settings, as they are actually applied on each timeframe. A dash means this scanner emits no settings string. Where a number differs by timeframe, that is a span of chart time resolved into bars.
Timeframe Bars of history it reads Settings Events, last 30 days
M15120lookback 20 bars before the break, recovery limit 3, range wider than 8 ATR rejected5270
M30120lookback 20 bars before the break, recovery limit 3, range wider than 8 ATR rejected2599
H1120lookback 20 bars before the break, recovery limit 3, range wider than 8 ATR rejected1263
H4120lookback 20 bars before the break, recovery limit 3, range wider than 8 ATR rejected320
D1120lookback 20 bars before the break, recovery limit 3, range wider than 8 ATR rejected48

What we measured

Nothing of our own attached.

What it does not claim

The trading range is built from the bars strictly before the break — a window containing the break bar cannot be broken by it, since the rolling minimum would already be that bar's own low. The width filter reads volatility at the bar before the break too, so both the range and its admissibility are settled before the break prints. The lookback is the free parameter and the source does not fix it; ours is named on every event.

Where the definition comes from

FibAlgo's Wyckoff Upthrust; the lookback is the free parameter and the source does not fix it

Show Spring / Upthrust on a chart