Systemicalpha

Ease Of Movement

systemic:core-emvIndicatorsfunction1 cr

Inputs

NameTypeDescription
WindowintegerThe **window** parameter defines the smoothing period for the EMV SMA output.
Price HighfloatarrayThe **price_high** input provides the highest prices for each period in the data series.
Price LowfloatarrayThe **price_low** input provides the lowest prices for each period in the data series.
VolumefloatarrayThe **volume_data** input provides the trading volume for each period in the data series.

Outputs

NameTypeDescription
Ease Of MovementfloatarrayThe **eom** output provides the raw Ease of Movement values for each period.
Simple Moving Average EMVfloatarrayThe **sma_eom** output provides the smoothed EMV values using a Simple Moving Average over the specified window.

Overview

The Ease of Movement (EMV) is a volume-based oscillator that measures the relationship between an asset's price movement and its volume. EMV highlights how easily price moves up or down, factoring in both price change and trading volume. It is especially useful in fast-moving and high-volume markets like cryptocurrencies, where understanding the strength and sustainability of price trends is critical.

EMV is commonly used to:

  • Identify the strength of price trends
  • Detect periods of accumulation or distribution
  • Spot potential reversals when price moves become difficult or easy relative to volume

For more, see Investopedia: Ease of Movement and Binance Academy: Volume Indicators in Crypto.


Mathematical Formulation

The EMV is calculated as:

EMV=(High+Low2−Previous High+Previous Low2)VolumeHigh−Low\text{EMV} = \frac{\left(\frac{\text{High} + \text{Low}}{2} - \frac{\text{Previous High} + \text{Previous Low}}{2}\right)}{\frac{\text{Volume}}{\text{High} - \text{Low}}}

Where:

  • High\text{High}: Highest price of the current period
  • Low\text{Low}: Lowest price of the current period
  • Previous High\text{Previous High}: Highest price of the previous period
  • Previous Low\text{Previous Low}: Lowest price of the previous period
  • Volume\text{Volume}: Trading volume of the current period

Visualizing EMV

Calculation Flow

flowchart TD
    A[Price and Volume Data] --> B[Calculate Midpoint Move]
    B --> C[Calculate Box Ratio]
    C --> D[Compute EMV Value]
    D --> E[EMV Output]

EMV on Arbitrary Data (XY Chart)

Suppose we have the following data series:

PeriodHighLowVolume
11081000
21291200
313101100
414121300
515131250

EMV values (rounded for clarity):

  • Period 2: 0.60
  • Period 3: 0.23
  • Period 4: 0.36
  • Period 5: 0.20
xychart-beta
    title "EMV vs Period"
    x-axis [2, 3, 4, 5]
    y-axis "EMV Value" 0 --> 1
    line [0.60, 0.23, 0.36, 0.20]

Practical Use Cases

In Cryptocurrencies

  • Trend Strength: EMV helps crypto traders assess whether price moves are supported by volume, filtering out moves that may lack conviction. See Binance Academy: Volume Indicators in Crypto.
  • Breakout Confirmation: A strong positive EMV during a price breakout suggests the move is supported by volume, increasing the likelihood of trend continuation.
  • Risk Management: EMV can help avoid false breakouts or breakdowns by highlighting when price moves are not supported by volume. For more, see Cointelegraph: Volume Analysis in Crypto.

In Securities

  • Accumulation/Distribution: EMV is used to spot periods when large players are accumulating or distributing shares with minimal price resistance.
  • Overbought/Oversold: Extreme EMV values can signal potential reversals or exhaustion in price trends.

EMV in Macroeconomic Context

EMV can be integrated with macroeconomic analysis to filter out noise from major events (e.g., regulatory news, macro data releases) and focus on price moves that are truly supported by volume. In crypto, EMV is especially useful during periods of high volatility triggered by macro shocks.

flowchart TD
    A[Macro Event: Regulation, CPI, Fed] --> B[Market Volatility]
    B --> C[Price and Volume Reaction]
    C --> D[EMV Highlights True Trend]
    D --> E[Trading Signal]

For more on macro impacts, see Investopedia: How Economic Indicators Affect Markets.


Advantages and Limitations

Advantages:

  • Combines price and volume for a more complete trend analysis
  • Helps confirm the strength of breakouts and trend moves
  • Useful in both crypto and traditional markets

Limitations:

  • Can be noisy in low-volume or illiquid markets
  • May lag during rapid market reversals
  • Most effective for short- to medium-term analysis

Data Alignment in Systemic

The EMV module requires three synchronized price/volume inputs plus a constant window parameter. Understanding how Systemic handles data alignment is essential for accurate calculations.

Input Requirements

InputTypeAlignment Constraint
price_highlist[float]Must equal length of other price/volume inputs
price_lowlist[float]Must equal length of other price/volume inputs
volume_datalist[float]Must equal length of price inputs
windowint (constant)No padding—always a fixed value

Frequency and Padding Behavior

When connecting inputs from different sources:

ScenarioBehavior
All sources same frequencyData processed directly
Different frequenciesLower-frequency data upsampled by repeating last known value
Shorter seriesPadded with final value to match longest input

Critical: All three data inputs (high, low, volume) must come from the same source or be properly synchronized. Mixing misaligned data will produce meaningless EMV values.

Practical Implications

  • Volume data quality: EMV is highly sensitive to volume accuracy; ensure volume data comes from a reliable source
  • Upsampling effects: Repeated values in volume data during upsampling can cause EMV to flatten or produce unreliable signals
  • Source consistency: Always connect high, low, and volume from the same data source node to ensure proper alignment

Missing Data

EMV needs High, Low, and Volume on a bar for it to count; a missing bar (data gap, weekend, holiday) never gets a fabricated value — it shows as a gap on both outputs, never a stale carried-forward reading or a sentinel 0. The raw eom compares each bar to the previous bar actually observed: on a market-closed gap it bridges straight from the last session before the gap to the first session after it (the real distance moved), rather than nulling every post-gap bar forever. A bar where High equals Low is a genuine 0.0 numerator, not missing data — only a bar with zero volume is undeterminable and reports None. The sma_eom output is the plain average of raw eom over window bars actually observed; until that many accumulate, it has no value yet.


Indicator Assessment

The following quadrant chart evaluates the EMV indicator across key dimensions:

%%{init: {"themeVariables": {"quadrant1Fill": "#e8f5e9", "quadrant2Fill": "#e3f2fd", "quadrant3Fill": "#fff3e0", "quadrant4Fill": "#fce4ec"}}}%%
quadrantChart
    title EMV Indicator Assessment
    x-axis Low Complexity --> High Complexity
    y-axis Low Popularity --> High Popularity
    quadrant-1 High Popularity & Complex
    quadrant-2 High Popularity & Simple
    quadrant-3 Low Popularity & Simple
    quadrant-4 Low Popularity & Complex
    EMV - Stocks: [0.45, 0.55]
    EMV - Crypto: [0.48, 0.62]

Dimension Breakdown

DimensionStocksCryptoExplanation
Popularity5.5/106.2/10Moderate adoption; less common than RSI/MACD but valued for volume analysis
Reliability6/105.5/10Good in liquid markets; struggles in low-volume or illiquid conditions
Complexity4.5/104.8/10Moderate—requires understanding of price-volume relationship
Versatility6/106.5/10Works across timeframes; more effective in trending, high-volume markets
Recent Interest5/106.5/10Renewed interest in crypto for volume-based trend confirmation

Key Insight: EMV occupies a balanced position near the center of the quadrant, indicating moderate complexity and moderate popularity. It's particularly valuable in cryptocurrency markets where volume analysis helps confirm the legitimacy of price moves, though it's not as universally adopted as simpler momentum indicators.


References and Further Reading


Glossary

  • EMV: Ease of Movement
  • Oscillator: Indicator that fluctuates above and below a central value
  • Volume: Number of units traded in a given period
  • Breakout: Price movement outside a defined support/resistance level
  • Accumulation/Distribution: Phases where large players buy (accumulate) or sell (distribute) without moving price excessively
  • Macro Indicator: Economic data or events such as inflation, regulation, or central bank policy

This documentation is for educational purposes and should not be considered investment advice. Always consult multiple sources and consider your risk tolerance before trading.

Rendering diagrams...
© 2026 WanoLabs. All rights reservedAlpha build v0.1.5