Absolute Momentum Indicator Strategy
The Absolute Momentum Indicator Strategy is an improved version based on the momentum indicator CMO developed by Tushar Chande. This strategy judges whether the market is currently overbought or oversold by…

Overview
The Absolute Momentum Indicator Strategy is an improved version based on the momentum indicator CMO developed by Tushar Chande. This strategy judges whether the market is currently overbought or oversold by calculating the absolute value of price momentum to capture medium-term price fluctuations in the market.
Strategy Principle
The core indicator of this strategy is the improved CMO indicator, called AbsCMO. The calculation formula of AbsCMO is:
AbsCMO = abs(100 * (latest closing price - closing price Length periods ago) / (simple moving average of absolute price fluctuations over Length period * Length))
Where Length represents the length of averaging period. The range of AbsCMO values is from 0 to 100. This indicator combines directionality and strength of momentum monumentality to clearly determine medium-term market trends and overbought/oversold areas.
When AbsCMO breaks through the specified upper rail (default 70), it indicates the market has entered overbought territory and goes short; when AbsCMO breaks through the specified lower rail (default 20), it indicates the market has entered oversold territory and goes long.
Advantage Analysis
Compared with other momentum indicators, the AbsCMO indicator has the following advantages:
- It reflects the absolute momentum of price and judges medium-term trends more accurately;
- It identifies overbought/oversold conditions more clearly by incorporating directionality and strength;
- Its range is limited between 0-100, making it more suitable for comparison across different products;
- It is less sensitive to short-term volatility, reflecting medium-term trends;
- Customizable parameters make it highly adaptable.
Risk Analysis
The main risks of this strategy are:
- As a medium-term indicator, it is less sensitive to short-term fluctuations;
- The default parameters may not suit all products and need to be optimized;
- Long holding periods can lead to large drawdowns.
These risks could be reduced by shortening holding periods, optimizing parameters, or incorporating other indicators.
Optimization Directions
This strategy can be optimized from the following aspects:
- Optimize the parameters of AbsCMO to adapt to more products;
- Incorporate other indicators to filter false signals;
- Set stop loss and take profit rules to control risks;
- Leverage technologies like deep learning to find better entry points.
Conclusion
In summary, the Absolute Momentum Indicator Strategy is a useful medium-term trading strategy. It reflects the absolute momentum characteristics of price over the medium term and has strong predictive power of medium-term trends. However, this strategy is less sensitive to short-term fluctuations and carries certain risks. Further improvements like parameter optimization, indicator filters, stop loss mechanisms can make its live performance more steady and reliable.
Parameters
| Name | Default | What it controls |
|---|---|---|
| v_input_1 | 9 | Length |
| v_input_2 | 70 | TopBand |
| v_input_3 | 20 | LowBand |
| v_input_4 | false | Trade reverse |
Source Pine Script
/*backtest
start: 2023-02-12 00:00:00
end: 2024-02-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 17/02/2017
// This indicator plots the absolute value of CMO. CMO was developed by Tushar
// Chande. A scientist, an inventor, and a respected trading system developer,
// Mr. Chande developed the CMO to capture what he calls "pure momentum". For
// more definitive information on the CMO and other indicators we recommend the
// book The New Technical Trader by Tushar Chande and Stanley Kroll.
// The CMO is closely related to, yet unique from, other momentum oriented indicators
// such as Relative Strength Index, Stochastic, Rate-of-Change, etc. It is most closely
// related to Welles Wilder`s RSI, yet it differs in several ways:
// - It uses data for both up days and down days in the numerator, thereby directly
// measuring momentum;
// - The calculations are applied on unsmoothed data. Therefore, short-term extreme
// movements in price are not hidden. Once calculated, smoothing can be applied to
// the CMO, if desired;
// - The scale is bounded between +100 and -100, thereby allowing you to clearly see
// changes in net momentum using the 0 level. The bounded scale also allows you to
// conveniently compare values across different securities.
//
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="CMOabs", shorttitle="CMOabs")
Length = input(9, minval=1)
TopBand = input(70, minval=1)
LowBand = input(20, minval=0)
reverse = input(false, title="Trade reverse")
// hline(0, color=gray, linestyle=dashed)
// hline(TopBand, color=red, linestyle=line)
// hline(LowBand, color=green, linestyle=line)
xMom = abs(close - close[1])
xSMA_mom = sma(xMom, Length)
xMomLength = close - close[Length]
nRes = abs(100 * (xMomLength / (xSMA_mom * Length)))
pos = iff(nRes > TopBand, -1,
iff(nRes < LowBand, 1, nz(pos[1], 0)))
possig = iff(reverse and pos == 1, -1,
iff(reverse and pos == -1, 1, pos))
if (possig == 1)
strategy.entry("Long", strategy.long)
if (possig == -1)
strategy.entry("Short", strategy.short)
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(nRes, color=blue, title="CMO")Published by ChaoZhang on the FMZ strategy square · last modified 2024-02-19. Collected in the Quant Trading Vault. Unvalidated research: re-test with your own data and costs before trusting it.
Build this with AgenKit
A spec is not a trading system. Paste this into your coding agent and AgenKit runs a specialist team — architecture, test-first build, risk gates, review — with paper trading on by default.
/agenkit build a production-grade trading bot with a backtest engine, risk controls and paper trading by default from strategies/Absolute-Momentum-Indicator-Strategy.md- npx agenkit install engineering-kit in your project
- Paste the command into your agent and approve each phase
- Get tests, backtest, risk controls and a paper-trading switch
Understand it first
Before you run this, read the lesson behind the idea and how to backtest it honestly. Specs like this one are the survivors of an unknown number of trials; deflate their results accordingly.
Related specs
- MoonFlag MACD Momentum StochRSI Trading StrategyPine Script · Momentum · 1d
- Multi EMA Trend Momentum Trading Strategy with Risk Management SystemPine Script · Momentum · 1h
- Multi Indicator Probability Threshold Momentum Trend Trading StrategyPine Script · Momentum · 1d
- Multi factor Adaptive Momentum Tracking StrategyPine Script · Momentum · 3m
- Pivot and Momentum StrategyPine Script · Momentum · 1d
- Stochastic Momentum Index and RSI Based Quant Trading StrategyPine Script · Momentum · 5m