Charts See the terminal

Premium script

Wyckoff

A Wyckoff trading range with frozen support and resistance, read with phases A to E, springs and upthrusts, and signs of strength with their last points of support.

Wyckoff Sign up for Altrady $12 one-time

Live Wyckoff preview · BTC/USDT on Binance · 1h, history up to a day ago

What is Wyckoff?

Wyckoff builds everything on one container, the trading range. Once price has gone nowhere for long enough, the range's support and resistance freeze into levels, and the range lives until price closes decisively outside them. Broken ranges stay on the chart, faded, because Wyckoff reads the range price just left.

It carries four tools in one script, each with its own toggle. Trading Range is on by default. Phases letters A to E on the range, Spring / Upthrust marks every run of a wall that closes back inside, and SOS / LPS marks the strength after the test and each pullback that holds. Those three are off until you turn them on.

This is a closed-source premium script. It runs on Altrady's servers, so only its output reaches your chart and its code is not published.

Components

Wyckoff combines 4 tools in one script. Each one has its own switch in the settings.

  • Trading Range. The range whose support and resistance freeze once established, and which lives until price closes outside them. On by default.
  • Accumulation / Distribution Phases. Wyckoff's phases A to E on the range, named accumulation or distribution by the spring or upthrust that tests it.
  • Spring / Upthrust. Every dip under support, or poke above resistance, that closes back inside the range.
  • SOS / LPS. SOS or SOW, the close through the last swing after the test, and each LPS or LPSY pullback that holds the level it took.

How to use Wyckoff

  • Spring and upthrust. A dip under support that closes back inside is a spring, read as bullish. A poke above resistance that closes back inside is an upthrust, read as bearish.
  • Phase C names the structure. The first spring or upthrust after the walls have been tested enough is phase C. A spring names the range as accumulation and an upthrust as distribution.
  • Sign of strength. After a spring, a close through the last swing high is an SOS. After an upthrust, a close through the last swing low is a sign of weakness, SOW.
  • Last point of support. Pullbacks after the SOS that hold the level it took are numbered LPS points, LPSY after a SOW. The last one before the trend leaves is the one the schematic means.

Settings

Components

SettingDefaultRangeWhat it changes
Show Trading RangeOn The range whose support and resistance freeze once established, and which lives until price closes outside them. Every other component is measured against it.
Show PhasesOff Accumulation / Distribution Phases: Wyckoff's A to E on the range, named by the spring or upthrust that tests it.
Show Spring / UpthrustOff Every dip under support, or poke above resistance, that closes back inside the range.
Show SOS / LPSOff SOS / SOW and LPS / LPSY: the close through the last swing after the test, and each pullback that holds the level it took.

Range

SettingDefaultRangeWhat it changes
TimeframeChart Chart, 15m, 30m, 1h, 4h, 1DRead the range and everything measured against it from a higher timeframe while trading a lower one. The chart's own period must divide it exactly, and a Wyckoff range is usually read above the entry timeframe.
Efficiency Length20 2 to 200The window the efficiency ratio is measured over. Shared with Range / Chop Detection, so a range here is a range there.
Max Efficiency0.15 0 to 1Below this the window counts as going nowhere. See Range / Chop Detection's header for the measured trade-off behind the default.
Min Bars10 2 to 500How long price must go nowhere before the walls go up. This is phase A's whole test. A container built on four bars is not a container.
Break OnClose Close, WickWhat ends the range, and so what phase E is: a close beyond a boundary, or a wick through it. Close by default (§4.3). On Wick a wick through a wall ends the range on that same bar, so nearly every spring and upthrust becomes a break instead: Spring / Upthrust and Phases mark only a rare few, and SOS / LPS usually marks nothing.

Test

SettingDefaultRangeWhat it changes
Min Tests2 0 to 20How many times a boundary must be tested before a run of one counts as phase C, the test that also arms SOS / LPS. Zero credits the first run, which marks more structures and asks less of phase B.
Test Tolerance (ATR)0.25 0 to 5How close to a boundary a bar must come to count as testing it, in ATR of the range's own timeframe. At zero only an exact touch counts, so phase B almost never matures.

Display

SettingDefaultRangeWhat it changes
Max Ranges5 1 to 50How many broken ranges stay on the chart behind the live one. Wyckoff reads the range price just left, so the default is not 1.
Show BoxOn The range's extent.
Show BoundariesOn Support and resistance as their own lines. These are the levels the rest of Wyckoff is measured against, so they are drawn apart from the box.
Show BorderOff The range box's border. Off by default: the boundaries are already drawn as lines, and a border repeats them.
Boundary StyleSolid Solid, Dashed, Dotted
Show LabelsOn The range's caption, and A to E on the phases.
Label SizeSmall Tiny, Small, Normal, Large, Huge
Line StyleDashed Solid, Dashed, DottedThe swept boundary of a spring or upthrust, and the level an SOS took.
Show State PaneOff A sub-pane per component that is on, giving its internal state. What the automated checks read.

Colours

SettingDefaultRangeWhat it changes
Live Range #2962ff The range in force.
Broken Range #787b86 A range price has left.
Support #089981 The lower boundary.
Resistance #f23645 The upper boundary.
Label #b0b3b8 The range's caption and the phase letters.

Phases

SettingDefaultRangeWhat it changes
Phases Max Structures10 1 to 100The oldest structure's boxes and labels are removed past this.
Phases Show Phase BoxesOn The phase boxes. With this off the component is labels, alerts and the state pane only.
Phases Show BorderOn
Phases Formation #787b86 Phases A and B, at two densities. Neutral on purpose: nothing is known about direction until C.
Phases Accumulation #089981 A structure whose test ran SUPPORT and reclaimed it: a spring, read as accumulation.
Phases Distribution #f23645 A structure whose test ran RESISTANCE and was rejected: an upthrust, read as distribution.

Spring / Upthrust

SettingDefaultRangeWhat it changes
Spring Max Events20 1 to 200The oldest marker is removed past this.
Spring Show MarkerOn The arrow at the wick's extreme, pointing the way the event sets up: a spring is bullish.
Spring Show Swept BoundaryOn The boundary that was run, drawn from the range's start to the bar that sprang it.
Spring #089981 Support run and reclaimed: a bullish event.
Upthrust #f23645 Resistance run and rejected: a bearish event.

SOS / LPS

SettingDefaultRangeWhat it changes
SOS Swing Length5 1 or moreBars either side of a pivot. It is also the lag: a pullback low is confirmed this many bars after it happened, so an LPS label appears late and at the price it happened.
SOS Significance (ATR x)0.5 0 to 10A swing is ignored unless the leg into it covered this much ATR. Deliberately lower than the 1.5 the rest of the suite uses: the swings inside a low-efficiency range are small by definition, and 1.5 rejects nearly all of them, leaving the SOS with no level to take.
SOS Watch For (bars)50 1 to 500How long after the SOS pullbacks keep counting, in bars of the structure's own timeframe. A back-up a hundred bars later is a different move.
SOS Max Points5 1 to 20How many pullbacks are labelled per structure. They are numbered in order; the last one before the trend leaves is the LPS the schematic means.
SOS Max Structures10 1 to 100The oldest structure's labels are removed past this. Only structures that actually showed strength count: a test that never produced an SOS draws nothing and takes no slot.
SOS Show SOS / SOWOn The strength label at the bar that took the level.
SOS Show LPS / LPSYOn The numbered pullback labels.
SOS Show Taken LevelOn The swing level the SOS closed through, drawn from the swing to the bar that took it.
SOS Strength #089981 SOS and its points: a structure the spring named.
SOS Weakness #f23645 SOW and its points: a structure the upthrust named.

Alerts: tr_established, tr_broken, wyckoff_test, wyckoff_break, spring, upthrust, sos, sow, lps, lpsy.

How it works

A range is established when the market has been inefficient, covering ground without getting anywhere, for at least Min Bars bars, measured the same way as in Range / Chop Detection. At that point its high and low freeze. The box keeps growing to the right while the range lives, and it ends on a close beyond a wall.

Phase A is the range itself. Phase B is the walls being tested, touched within a tolerance of the average true range, Min Tests times. Phase C is the first spring or upthrust after that, and it names the structure. Phase D runs from C to the break, and E is the break. A and B are neutral, and E is labelled on the side price actually left, so a failed structure shows as one.

After phase C, the SOS / LPS layer watches for a close through the last swing in the named direction, then numbers each pullback that holds that level, for up to SOS Watch For bars. Alerts follow each event, from the range being established and broken to springs, tests, signs of strength and points of support.

Limitations

  • Ranges are late by design. A range is only established after Min Bars of going nowhere. The walls are drawn from closed bars, so they do not repaint, but they appear after the range has started.
  • No volume in the phases. The phases are judged from price only. There are no PS, SC, AR or ST labels. Effort vs Result covers the volume side of Wyckoff.
  • Wick breaks change everything. With Break On set to Wick, a wick through a wall ends the range, so nearly every spring or upthrust becomes a break instead, and SOS / LPS usually marks nothing.
  • The last LPS is known afterwards. Pullbacks are numbered as they happen. Which one was the last point of support is only clear once the trend has left.
  • LPS labels are late. A pullback low needs SOS Swing Length bars to be confirmed, so its label appears late, at the price where it happened.

Get Wyckoff

Premium scripts are a one-time purchase in the Altrady marketplace and need a paid Altrady plan to run.

  • Wyckoff $12 This script on its own.
  • Structure & Wyckoff bundle $29 7 premium scripts, Wyckoff included.
  • Altrady Complete Suite $109 All 36 premium scripts.
Sign up for Altrady

Frequently asked questions

The trading range, its frozen support and resistance as lines, and earlier broken ranges faded behind it. Phases, springs and upthrusts, and SOS / LPS are separate toggles.

A is the range forming, B is the walls being tested, C is the first spring or upthrust after enough tests, D is the run from C to the break, and E is the break. The spring or upthrust at C decides whether the structure is accumulation or distribution.

The walls are built from closed bars and freeze once the range is established, so they do not move. The live range's box extends to the right as time passes, and the phases of a live range are only completed when it breaks.

Ten: tr_established and tr_broken for the range; wyckoff_test for phase C and wyckoff_break for the break; spring and upthrust; sos and sow; lps and lpsy. A component that is switched off fires no alerts.

Yes. Wyckoff is a closed-source premium script. It runs on Altrady's servers, so only its output reaches your chart and the code is never shared. You buy it once in the Altrady marketplace, on its own, in the Structure & Wyckoff bundle or in the Altrady Complete Suite, and it needs a paid Altrady plan to run. It is also included with your first annual Premium subscription.

Use the Get it in Altrady button on this page to open its listing in the Altrady marketplace. Once it is in your account, open the indicator picker on any chart in Altrady Charts and add Wyckoff like any other indicator. Turn on the phases, springs and SOS / LPS in its settings panel.

Sign up for Altrady