
La estrategia del indicador de valor absoluto dinámico es una versión mejorada del indicador de valor absoluto dinámico CMO desarrollado por Tushar Chande. La estrategia determina si el mercado está actualmente sobrecomprado o sobrevendido mediante el cálculo del valor absoluto dinámico del precio para capturar la fluctuación de los precios a medio plazo en el mercado.
El indicador central de la estrategia es el mejorado indicador CMO, conocido como AbsCMO. La fórmula para calcular AbsCMO es:
AbsCMO = abs(100 * (最新收盘价 - Length周期前的收盘价) / (Length周期内价格波动绝对值的简单移动平均 * Length))
Entre ellos, el Length representa la duración promedio del período. El rango de valores de AbsCMO es de 0 a 100. El indicador combina la orientación de la dinámica y la intensidad de la monumentalidad, lo que permite determinar con claridad la tendencia a mediano plazo del mercado y las zonas de sobreventa y sobreventa.
Cuando AbsCMO cruza la línea superior designada (default 70), indica que el mercado está sobrecomprando y haciendo short; cuando AbsCMO cruza la línea inferior designada (default 20), indica que el mercado está sobrevendendo y haciendo short.
En comparación con otros indicadores de dinámica, el índice AbsCMO tiene las siguientes ventajas:
El principal riesgo de esta estrategia es:
Se puede reducir el riesgo mediante la reducción adecuada del período de tenencia de la posición, la optimización de los parámetros o su uso en combinación con otros indicadores.
La estrategia puede ser optimizada en los siguientes aspectos:
La estrategia del indicador del valor absoluto de la dinámica es una estrategia de negociación a medio plazo más práctica en general. Reacciona a las características de la dinámica absoluta a medio plazo de los precios y tiene un mayor juicio sobre la tendencia a medio plazo del mercado. Sin embargo, la estrategia no es sensible a las fuertes fluctuaciones a corto plazo y existe un cierto riesgo.
/*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")