EaseOfMovement
EaseOfMovement[N] in ProBuilder returns the Ease of Movement (EMV) indicator, a volume-based oscillator measuring how easily price advances or declines.
Syntax
EaseOfMovement[N]Parameters
| Name | Type | Default | Description |
|---|---|---|---|
N | integer | 14 | Smoothing period in bars for the exponential average applied to the raw EMV value. Larger values produce a slower, cleaner line. |
Note that EaseOfMovement takes no price argument. The calculation is fixed to the bar's high, low, and volume.
Formula
midpointMove = ((high + low) / 2) - ((high[1] + low[1]) / 2)
EMV = 1000000 * midpointMove * (high - low) / volume
EaseOfMovement[N] = ExponentialAverage[N](EMV)The raw EMV compares the shift in the bar's midpoint with the volume that produced it, then the result is smoothed with an exponential average over N bars. The 1000000 multiplier scales the value into a readable range.
How it works
Each bar, the indicator measures how far the midpoint of the price range moved relative to the previous bar, then weighs that move against the traded volume. A large upward midpoint move on thin volume produces a strongly positive value, price moved "easily". The same move on heavy volume produces a smaller value, because more effort was needed to shift price. Downward moves work symmetrically and produce negative values.
Because raw single-bar readings are noisy, ProBuilder applies an exponential average over N bars before returning the value. The result oscillates around a zero line without fixed upper or lower bounds.
The indicator was developed by Richard W. Arms Jr., who also created the Arms Index and Equivolume charting. It is a way to read the interaction of price and volume without plotting volume itself.
Examples
Example 1, Plotting EMV with a zero line (Indicator)
// 14-period Ease of Movement
myEMV = EaseOfMovement[14]
RETURN myEMV AS "Ease of Movement", 0 AS "Zero line"Calculates the 14-period Ease of Movement and plots it against a zero reference line, the standard way to read the oscillator.
Example 2, Zero-line cross screener (ProScreener)
emv = EaseOfMovement[14]
// Instruments where EMV just turned positive
SCREENER[emv CROSSES OVER 0](emv AS "EMV 14")Returns instruments where the smoothed EMV crossed above zero on the current bar, an early sign that price is starting to advance with little volume resistance.
Example 3, EMV as a long entry filter (ProOrder)
// Only take longs when volume supports the upward move
emv = EaseOfMovement[14]
trend = Average[100](close)
IF NOT LongOnMarket AND emv > 0 AND close > trend THEN
BUY 1 CONTRACT AT MARKET
ELSIF LongOnMarket AND emv < 0 THEN
SELL AT MARKET
ENDIFCombines a long-term trend filter with the EMV zero line. Positions are opened only while EMV confirms that upward movement is meeting little resistance, and closed when it flips negative.
Interpretation
| Reading | Meaning |
|---|---|
| EMV > 0 | Price is moving up with relative ease. Buyers advance price without needing heavy volume. |
| EMV near 0 | Price movement and volume are balanced, or the market is flat. |
| EMV < 0 | Price is moving down easily, or upward progress requires disproportionate volume. |
Zero-line crossings are the most common signal. Sustained positive readings support trend-following long positions, sustained negative readings support the short side. The absolute level is less informative than the sign and direction of the line, because the scale depends on the instrument's price and volume characteristics.
Common errors and gotchas
- No price argument.
EaseOfMovement[14](close)does not match the instruction signature. The indicator is computed from high, low, and volume internally, so the correct call isEaseOfMovement[14]. - Instruments without reliable volume. On markets where volume is estimated or absent, such as many spot forex and CFD feeds, the denominator is not meaningful and the indicator can produce erratic values. Verify the data source before relying on it.
- Values are not comparable across markets. The output scale depends on each instrument's typical range and volume. A reading of 500 on one stock and 50 on another does not mean the first move is ten times easier.
- Whipsaws around zero. With short smoothing periods the line can cross zero repeatedly in quiet markets. Filtering signals with a trend measure or a longer
Nreduces false triggers.
Related instructions
ForceIndex, price change multiplied by volume, a related effort measure.ChaikinOsc, oscillator built on the accumulation distribution line.OBV, cumulative on-balance volume.MoneyFlowIndex, volume-weighted bounded oscillator.AccumDistr, accumulation distribution line.VolumeOscillator, difference between two volume moving averages.ExponentialAverage, the smoothing method applied to the raw EMV.Volume, the per-bar volume series used in the calculation.
