# Upthrust

Upthrust frames mature trading ranges from clustered swing highs and labels failed breakouts above resistance: UT and UTAD marks with graded tooltips covering ATR penetration, volume effort, and reclaim speed, plus secondary-test and invalidation marks. Defaults: swing length 10, 0.5 ATR tolerance, 3-bar acceptance window. For Wyckoff-minded traders hunting trapped buyers.

- Indicator in the LuxAlgo Library, by LuxAlgo, published Jun 8, 2026.
- Access: free.
- Concepts: [Upthrust](https://www.luxalgo.com/library/concept/upthrust/) (primary)
- Open on Vela: https://vela.luxalgo.com/chart?pineScriptCodeId=bau55mvjmjhc2yr3mgienfof
- Page: https://www.luxalgo.com/library/indicator/upthrust/

**Upthrust** frames mature trading ranges from clustered swing highs and flags pokes above resistance that close back inside, the bearish half of the Wyckoff range playbook. Each confirmed [upthrust](https://www.luxalgo.com/library/concept/upthrust/) is labeled UT (UTAD when a later failure prints above the prior range high) with a tooltip grading penetration, effort, and reclaim speed.

## How to Trade the Upthrust?

- **UT label**: breakout buyers are trapped; the shaded zone marks the failed excursion and the dashed upthrust-high line is the conventional stop reference.
- **UTAD label**: a failed final test of demand above the prior range high, the classical distribution tell.
- **Test label**: the first rally that dies under the upthrust high on fainter volume confirms the failure.
- **Invalidation cross**: price accepting back above the tracked upthrust high contradicts the read. An exit cue, not a level to defend.

## Upthrust Settings

- **Swing Length** (default 10): bars each side confirming the swings that frame the range.
- **Resistance Tolerance (ATR)** (default 0.5): max distance between swing highs counting as tests of one resistance.
- **ATR Length** (default 14): normalizes tolerance, penetration, and grading.
- **Minimum Range Maturity (Bars)** (default 20): age a range needs before a poke can be labeled.
- **Require Prior Uptrend** (default enabled) with **Uptrend Lookback** (default 50): only frame ranges price advanced into; disable to include accumulation ranges.
- **Minimum Penetration (ATR)** (default 0): distance above resistance the excursion must reach; 0 accepts any poke.
- **Acceptance Window (Bars)** (default 3): closes beyond a boundary before price counts as accepted there.
- **Volume Average Length** (default 20) with **High Effort Volume x** (default 1.5) and **No Demand Volume x** (default 0.8): the effort baseline and its grading multiples.
- Style toggles (all default enabled): **Range Boundaries**, **Upthrust Labels**, **Upthrust Zones**, **Upthrust High Line**, **Test Labels**.

## Frequently Asked Questions

### What separates a UT from a UTAD?

Both are failed pokes above resistance. A UTAD also requires a prior upthrust in the same range and an excursion high above the prior range high, the failed final test of demand.

### How does the Upthrust relate to the Spring?

The [Spring](https://www.luxalgo.com/library/indicator/spring/) is its mirror: a failed break below range support that traps sellers and typically resolves upward. This build watches the top of the range instead.

### Do the high effort and no demand grades contradict each other?

No. Both support the bearish read. High effort means volume expanded yet the bar closed back inside: supply met the buying. No demand means buyers never showed up; the close back inside matters most.

## Related indicators

- [Upthrust After Distribution](https://www.luxalgo.com/library/indicator/upthrust-after-distribution/) (Wyckoff): markdown at https://www.luxalgo.com/library/indicator/upthrust-after-distribution.md
- [Wyckoff Distribution Schematic](https://www.luxalgo.com/library/indicator/wyckoff-distribution-schematic/) (Wyckoff): markdown at https://www.luxalgo.com/library/indicator/wyckoff-distribution-schematic.md
- [Markup & Markdown](https://www.luxalgo.com/library/indicator/markup-and-markdown/) (Wyckoff): markdown at https://www.luxalgo.com/library/indicator/markup-and-markdown.md
- [Absorption](https://www.luxalgo.com/library/indicator/absorption/) (Wyckoff): markdown at https://www.luxalgo.com/library/indicator/absorption.md
- [Cause & Effect](https://www.luxalgo.com/library/indicator/cause-and-effect/) (Wyckoff): markdown at https://www.luxalgo.com/library/indicator/cause-and-effect.md
- [Trading-range Position](https://www.luxalgo.com/library/indicator/trading-range-position/) (Wyckoff): markdown at https://www.luxalgo.com/library/indicator/trading-range-position.md
- [Wyckoff Method](https://www.luxalgo.com/library/indicator/wyckoff-method/) (Wyckoff): markdown at https://www.luxalgo.com/library/indicator/wyckoff-method.md
- [Spring](https://www.luxalgo.com/library/indicator/spring/) (Wyckoff): markdown at https://www.luxalgo.com/library/indicator/spring.md

---

Source: https://www.luxalgo.com/library/indicator/upthrust/ (LuxAlgo Library). Free to use with attribution: https://www.luxalgo.com/library/license/
