Skip to content
All library documents

Normalized Momentum Signals Filtered by a Moving Average

Article Strategy library · Author: ChaoZhang

Summary

This trend-following method calculates price momentum as the percentage change over a lookback period, then normalizes recent momentum values to a zero-to-one range. It compares the normalized reading with a midpoint threshold and checks price relative to a moving average: readings above the threshold with price above the average set up long entries, while readings below it with price below the average set up short entries. Entry orders are placed beyond the current bar’s high or low, and unfilled orders are canceled when the corresponding condition no longer holds.

The published parameters use a 20-period lookback, while normalization spans 100 observations. The document describes moving stops, but the supplied strategy code does not implement a stop-loss rule, and it reports no backtest performance figures. The test configuration covers only a short interval of BTC/USDT futures data on 15-minute bars. Normalization behavior can depend on the recent range, and moving-average filters may generate repeated signals in choppy markets; parameter testing would need to account for these limits and avoid overfitting.

Key ideas

  • Momentum is measured as the relative price change over a selected lookback.
  • A rolling normalization maps momentum readings to a zero-to-one scale.
  • Long and short setups require both a momentum threshold and price on the matching side of a moving average.
  • The code uses stop-entry orders beyond the signal bar and cancels them when conditions fail.
  • The prose mentions moving stops, but the provided code does not implement one.

Tags

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.