# Swing Magnitude Filters

A Market Structure concept (Swing grammar) in the LuxAlgo Library, with 1 indicator implementation.

## What are Swing Magnitude Filters?

A swing magnitude filter is a minimum-size rule applied to swing detection: a move only counts as a new structural leg if it travels at least a threshold distance from the prior extreme. The threshold is usually a fixed percentage, an absolute point value, or a multiple of ATR so the filter scales with current volatility. This is the mechanism inside [zigzag structure](https://www.luxalgo.com/library/concept/zigzag-structure/): the algorithm confirms a [swing high or low](https://www.luxalgo.com/library/concept/swing-high-low/) only after price has reversed by the required amount, which is also why the most recent leg always stays provisional.

Size-filtering swings is one of the oldest ideas in technical analysis. [Dow Theory](https://www.luxalgo.com/library/concept/dow-theory/) already sorted movements into primary, secondary, and minor tiers, an informal magnitude filter expressed in prose. Arthur Merrill's Filtered Waves (1977) made the rule explicit by studying only moves that exceeded a fixed percentage, and point-and-figure charting encodes the same principle in its box and reversal sizes. The modern zigzag indicator is the direct descendant, with a threshold deciding which reversals earn a new line.

The point is noise control. Every downstream structure read (higher highs and lows, breaks of structure, pattern anchors) inherits the quality of the swings it is built on, and unfiltered pivots flip constantly on lower timeframes. The trade-off is unavoidable: a larger threshold produces fewer, more meaningful swings but confirms them later, while a smaller one reacts quickly and relabels often. No threshold is objectively correct; choosing one is choosing the scale of structure you intend to analyze.

The filter matters because structure tools consume swings, not prices. [Swing structure grammar](https://www.luxalgo.com/library/concept/swing-structure-grammar/) labels, [break of structure](https://www.luxalgo.com/library/concept/break-of-structure/) events, and the segmentation of [impulse](https://www.luxalgo.com/library/concept/impulse-leg/) and corrective legs all take the swing sequence as input, so the threshold quietly decides what those tools can see. Wave analysts meet the same problem as degree separation, and volatility-scaled thresholds, typically ATR multiples, keep the swing count roughly stable across regimes in a way fixed percentages cannot.

## How to apply a swing magnitude filter

The filter is a rule imposed on swing detection, so identifying it means configuring and sanity-checking it.

1. Start from candidate pivots: local highs and lows from a bar-count rule, or simply every directional reversal in the series.
2. Pick the threshold type: a percentage for comparability across instruments, absolute points for a single contract, or an ATR multiple so the filter breathes with volatility.
3. Confirm a new swing only when price has traveled the full threshold from the prior extreme; smaller counter-moves extend the current leg instead.
4. Treat the newest leg as provisional: until a reversal clears the threshold, the latest extreme can still be replaced.
5. Calibrate visually: raise the threshold until the plotted swings match the scale you actually trade, then leave it alone so structure reads stay consistent.

## How traders use it

- As a cleanup layer for structure maps: applying an ATR or percentage threshold before labeling higher highs and lows keeps break-of-structure and trend labels from flipping on every minor wiggle.
- As a scale selector: a small threshold maps intraday swing grammar, a large one maps campaign-level legs, and running two filters side by side approximates [multi-timeframe structure alignment](https://www.luxalgo.com/library/concept/multi-timeframe-structure-alignment/) from a single chart.
- As a signal gate: some traders only honor divergences, patterns, or entries anchored to swings that cleared the magnitude filter, discarding setups built on sub-threshold noise.
- As breakout hygiene: requiring the broken swing to be magnitude-qualified keeps [false breakouts](https://www.luxalgo.com/library/concept/false-breakout/) of micro-pivots from triggering structure-based entries.
- As a range detector: when no leg clears the threshold for an extended stretch, the silence itself flags a [trading range](https://www.luxalgo.com/library/concept/trading-range/) at your chosen scale, a cue to switch from breakout to rotation tactics.

## Swing magnitude filters vs related rules

- **Williams Fractal** (https://www.luxalgo.com/library/concept/williams-fractal/): A fractal defines a swing by bar-count symmetry, a high flanked by lower highs on each side, regardless of distance traveled. A magnitude filter demands displacement and ignores bar counts. Fractals fire freely in quiet drift; magnitude filters stay silent until something actually moved.
- **Zigzag Structure** (https://www.luxalgo.com/library/concept/zigzag-structure/): Zigzag is the drawing; the magnitude filter is the rule inside it. Every zigzag embeds a minimum-move threshold, so choosing zigzag settings is choosing a filter. Naming the filter separately just makes that hidden decision explicit and testable.
- **Swing Structure Grammar** (https://www.luxalgo.com/library/concept/swing-structure-grammar/): Structure grammar assigns meaning to swings: higher highs, lower lows, breaks, shifts. The magnitude filter decides which swings exist to be labeled. Grammar built on unfiltered pivots relabels constantly, so the filter acts as the quality gate feeding it.

## FAQ

### What threshold should a swing magnitude filter use?

There is no universal value. Percentage thresholds compare cleanly across instruments, absolute points suit a single contract, and ATR multiples adapt automatically as volatility shifts. The honest framing: the threshold does not find the true swings, it defines which scale of swing you have decided to care about, so pick it to match your holding period and test it on your market.

### What is the difference between a magnitude filter and pivot strength?

Pivot strength defines a swing by bar count (a high surrounded by N lower highs on each side), while a magnitude filter defines it by price distance traveled. They fail differently: bar-count pivots admit tiny swings in quiet tape, and distance filters admit slow drifts with no clear pivot bar. Many tools combine both so a swing must satisfy time and size.

### Do swing magnitude filters repaint?

Confirmed swings do not change, but the newest leg is provisional by construction: until price reverses by the threshold amount, the latest extreme can still be replaced. That is the definition working as intended rather than a flaw. Tools differ in how clearly they mark the provisional segment, which is worth checking before trusting alerts built on it.

### Should the threshold be a percentage or an ATR multiple?

A percentage stays constant relative to price, easy to reason about and compare across instruments. An ATR multiple adapts, loosening in volatile regimes and tightening in quiet ones, so the count of detected swings stays steadier. The catch: percentage filters over-count swings when volatility expands unless raised, while ATR filters shift scale exactly when you might have wanted a fixed reference.

### Does a larger threshold produce better signals?

It produces later, rarer, more structural ones. A large threshold confirms swings well after the turn, so anything anchored to them trails the move; a small threshold reacts quickly but relabels often. The filter cannot add information, it only selects the scale you consume, so match it to your holding period rather than maximizing it.

## Implementations in the Library

- Swing Magnitude Filters (LuxAlgo): https://www.luxalgo.com/library/indicator/swing-magnitude-filters/

## Related concepts

- Swing High/low: https://www.luxalgo.com/library/concept/swing-high-low/
- Swing Structure Grammar: https://www.luxalgo.com/library/concept/swing-structure-grammar/
- Zigzag Structure: https://www.luxalgo.com/library/concept/zigzag-structure/
- Williams Fractal: https://www.luxalgo.com/library/concept/williams-fractal/
- Multi-timeframe Structure Alignment: https://www.luxalgo.com/library/concept/multi-timeframe-structure-alignment/
- Pivot Strength: https://www.luxalgo.com/library/concept/pivot-strength/
- Fractal Nesting: https://www.luxalgo.com/library/concept/fractal-nesting/

---

Source: https://www.luxalgo.com/library/concept/swing-magnitude-filters/ (LuxAlgo Library, the encyclopedia of trading & technical analysis). Free to use with attribution: https://www.luxalgo.com/library/license/