How it works
Every other indicator in this family asks which side the volume favoured. Ease of Movement asks a different and rather elegant question: how much effort did the move cost? It divides the distance price travelled by a measure of how much volume was required to travel it. A market that jumps a long way on modest turnover is moving easily; one that trades enormous size and finishes where it started is moving with difficulty.
The construction reflects that directly. Distance is measured between bar midpoints rather than closes, which keeps the reading about the whole range rather than the final print. Effort is expressed as a 'box ratio': volume divided by the bar's range, so a wide-range bar on modest volume produces a small denominator and a large ease reading, while a narrow, heavily traded bar produces the opposite. The scaling divisor exists purely so the numbers are readable, since raw volume divided by a price range in dollars produces awkward magnitudes.
Because the raw series is extremely noisy — it can swing from strongly positive to strongly negative on consecutive bars — it is always smoothed, conventionally with a fourteen-period simple average. The smoothed line oscillates around zero. Sustained positive readings say the market has been advancing without needing much volume to do it, which is the classic signature of a market where supply has been cleared away. Sustained negative readings say the same about a decline.
Practically it is used as a context tool. High ease with rising price supports staying in a trend and holding through pullbacks. Ease collapsing toward zero while price keeps climbing means each further point is costing more and more volume, which describes a trend running into supply. The reading closest to Wyckoff's language of effort against result, and a good complement to the flow lines, which say nothing about efficiency.
Its natural relatives outside this family are the volatility measures. Average True Range says how far price moves; ease of movement says how much it cost to move that far. Reading them together separates a wide-range day that walked up on nothing from a wide-range day that was fought over tick by tick.
Calculation
The arithmetic in words, in the order it happens.
Three steps. First, distance moved: the bar's midpoint, (high + low) / 2, minus the previous bar's midpoint. Second, the box ratio: the bar's volume divided by a scaling divisor — 10,000 is the usual default and exists only to keep the numbers readable — then divided by the bar's range, high minus low. Third, one-period ease of movement is distance moved divided by the box ratio, which is large and positive when the midpoint advanced a long way on little volume across a wide range, and negative when it fell. Because that raw series is very noisy it is smoothed, conventionally with a 14-period simple moving average, and that smoothed line is what is plotted around zero.
Source
An AlgoBeamScript implementation of the formula above, written by us from the arithmetic so the code and the calculation agree line for line.
Runs unchanged on the platform and in the AlgoBeamTS runtime. The language reference is in the documentation.
Inputs
Defaults are the values most charting packages ship with. They are conventions, not optimal settings — the right length depends on your instrument and your holding period.
| Input | Default | What it changes |
|---|---|---|
| Length | 14 | Periods in the moving average applied to the raw ease series. Below about 10 the line is close to unreadable; 20 or more produces a slow efficiency read that is better suited to judging a whole trend than an individual pullback. |
| Divisor | 10,000 | A pure scaling constant applied to volume so the plotted numbers fall in a comfortable range. It has no effect on the shape of the line or on any crossing of zero — change it only when the vertical axis is unreadable for a very high- or low-volume instrument. |
How to read it
What practitioners take from the plot. Read these as descriptions of market state, not as entry signals.
- Sustained positive readings with rising price
- Price is advancing without needing heavy volume. Supply above the market is thin, which supports holding a trend rather than fading it.
- Readings collapsing toward zero while price still rises
- Each additional point is costing more volume. The advance is running into supply — an efficiency warning that often precedes a stall.
- Sustained negative readings
- The market is falling easily, with little volume needed to push it down. Demand is absent rather than being overwhelmed.
- A large spike in either direction
- Usually a wide-range bar on light volume — a gap, a thin session, a news pop into an empty book. Informative about liquidity, but it is a single-bar artefact and not a trend statement.
Limitations
Where this indicator misleads. None of these are fixed by a better parameter.
- The bar range sits in a denominator, so a zero-range bar makes the calculation undefined and charts have to skip or carry forward that bar. On illiquid instruments and thin sessions those bars are common.
- Low-volume bars produce enormous readings for trivial price moves, which means the indicator is loudest exactly where the data is least trustworthy.
- It uses midpoints and therefore ignores the close entirely. A bar that gapped up, traded to a new high and closed on its low registers the same as a calm advance to the same midpoint.
- The smoothing that makes it readable also delays it by roughly half the averaging window, so it describes the efficiency of a move that has already happened rather than anticipating a change.
Educational reference. This page explains how an indicator is built and how it is commonly read. It is not investment advice, not a recommendation and not a signal service. No indicator is profitable on its own — each is a way of describing a market, and any rule built on one has to be tested with realistic costs before it is traded.