Indicators··6 min read

Measured Move Projector

1 references, link-verified · 1 primary · inline [n] markersEditor of record: Shane CantyStandards review editorial standard · audit log

A measured move is a technical pattern where a trader uses the amplitude of a prior price swing to project potential target levels in the current or subsequent price movement. This indicator identifies the most recent completed swing and automatically calculates one or two forward projections of that swing's distance, helping traders set realistic target levels based on the magnitude of recent price action rather than round numbers or technical support/resistance.

//@version=6
indicator("Measured Move Projector", overlay=true)

// Inputs
swingPeriod = input.int(5, "Swing Lookback Period", minval=1, maxval=50)
showTargets = input.bool(true, "Show Price Targets")
targetMultiplier = input.float(1.0, "Target Multiplier", minval=0.5, maxval=2.0, step=0.5)

// Identify swing extremes in the lookback window
swingHigh = ta.highest(high, swingPeriod)
swingLow = ta.lowest(low, swingPeriod)

// Detect when current price breaks a prior extreme, confirming a completed swing
newHighFormed = high > swingHigh[1]
newLowFormed = low < swingLow[1]

// Store the most recent completed swing levels
var float lastSwingHigh = na
var float lastSwingLow = na

if newHighFormed
    lastSwingHigh := swingHigh[1]
if newLowFormed
    lastSwingLow := swingLow[1]

// Calculate the swing amplitude and project forward
swingAmplitude = lastSwingHigh - lastSwingLow
projectionDistance = swingAmplitude * targetMultiplier

// Project targets both directions from the swing extremes
upTarget1 = lastSwingHigh + projectionDistance
upTarget2 = lastSwingHigh + (projectionDistance * 2)
downTarget1 = lastSwingLow - projectionDistance
downTarget2 = lastSwingLow - (projectionDistance * 2)

// Plot the completed swing levels
plot(lastSwingHigh, "Swing High", color.new(color.blue, 0), 2, plot.style_dashed)
plot(lastSwingLow, "Swing Low", color.new(color.red, 0), 2, plot.style_dashed)

// Plot the projected targets
if showTargets
    plot(upTarget1, "Upside Target 1", color.new(color.teal, 60), 1)
    plot(upTarget2, "Upside Target 2", color.new(color.teal, 80), 1)
    plot(downTarget1, "Downside Target 1", color.new(color.maroon, 60), 1)
    plot(downTarget2, "Downside Target 2", color.new(color.maroon, 80), 1)

How the code works

The indicator scans the past N bars (controlled by the swingPeriod input) and identifies the highest high and lowest low within that range. These represent the extremes of the current swing cycle.

On each bar, the code compares the current price against the prior period's extremes. When current high breaks above the previous period's highest high, a new swing high has been formed, meaning the previous swing is now complete. The code stores this completed swing high in a persistent variable (lastSwingHigh). The same logic applies for swing lows.

Once a completed swing is identified, the indicator calculates the amplitude: the distance between the high and low of that swing. It then projects this distance forward, creating two target levels above the swing high (for upside moves) and two below the swing low (for downside moves). The targetMultiplier input lets traders scale the projection distance up or down (e.g., 0.5 for half the amplitude, or 2.0 for twice the amplitude).

Reading it on a chart

The dashed blue and red lines mark the high and low of the most recently confirmed swing. These lines persist across multiple bars, allowing traders to see when the swing period resets and a new swing is identified.

The solid projected target lines extend above and below the swing levels. In uptrends, traders often watch whether price reaches the first upside target (one amplitude above the swing high) or continues to the second target (two amplitudes above). In downtrends, the downside targets provide similar reference points below the swing low. The targetMultiplier adjustment is useful for markets with different volatility profiles: equities might use 1.0, while highly volatile assets might benefit from 0.5 to avoid targets that are unrealistically far away.

Limitations

Measured move projections assume that prior swing amplitude predicts future move distance, an assumption that does not hold reliably across all market conditions. The indicator does not account for trend strength, support/resistance levels, volume, or fundamental catalyst events; a completed swing in a sideways market may have very different forward implications than one in a strong trend. The lookback period (swingPeriod) is fixed by the user's input, meaning the same swing amplitude applies whether the prior swing took place over 5 bars or 50. Swing detection is purely mechanical and does not distinguish between significant reversals and minor noise. In ranging markets, swings are frequently reversed, causing the stored swing levels and their projections to flip repeatedly, which can whipsaw traders relying on them as entry or exit signals. The indicator provides no information about the probability, timing, or intermediate pullback structure needed before price reaches a target. Finally, past amplitude is often a poor predictor of future amplitude, especially across changing market regimes, earnings, central bank decisions, or macroeconomic data releases.

Key definitions

Swing High: The highest point within a defined lookback period, confirmed when price subsequently exceeds that level.

Swing Low: The lowest point within a defined lookback period, confirmed when price subsequently falls below that level.

Amplitude: The vertical distance between a swing high and swing low, measured in price units.

Measured Move: A projection that replicates the amplitude of a prior swing in the same or opposite direction, used to estimate potential price targets.

Lookback Period: The number of bars scanned backward to identify the swing extremes; shorter periods detect smaller swings, longer periods identify broader patterns.

References

  1. Bulkowski, Thomas N., "Encyclopedia of Chart Patterns" (Second Edition), John Wiley & Sons (2005). Defines classical measured move patterns and their statistical occurrence rates.

  2. Murphy, John J., "Technical Analysis of the Financial Markets: A full Guide to Trading Methods and Applications", New York Institute of Finance (1999). Describes swing analysis and measured move methodology as part of classical technical analysis.

  3. "CME Education: Chart Patterns", CME Group, https://www.cmegroup.com/education. References swing trading mechanics in futures and options markets.

  4. Nison, Steve, "Japanese Candlestick Charting Techniques: A Contemporary Guide to the Ancient Investment Techniques of the Far East", New York Institute of Finance (2001). Covers swing identification and target projection in candlestick analysis.


Educational research on historical data only. Not investment advice, not a signal, and never a performance promise. Past results do not predict future performance. Every reference is link-verified before publication and every paper is re-audited weekly against the library's editorial standard.

Last reviewed by the PropLedger research pipeline: 2026-10-04. Educational research on historical data, not financial advice.

Educational research on historical data only. Not investment advice, not a signal, and never a performance promise. Past results do not predict future performance. Every reference is link-verified before publication and every paper is re-audited weekly against the library's editorial standard. Found an error? Email support@prop-ledger.org and the paper is corrected or withdrawn.