La estrategia se llama
El indicador central de esta estrategia es el CMO. El CMO está estrechamente relacionado con otros indicadores de impulso como el RSI, pero también tiene su singularidad. El CMO mide directamente el impulso del cambio de precios. Su cálculo se basa en datos sin suavizar en bruto, por lo que refleja cambios extremos de precios a corto plazo. El valor del CMO oscila entre +100 y -100, lo que hace que sea conveniente comparar la fuerza del impulso absoluto entre los valores.
La estrategia primero calcula el cambio de precio de un día abs ((close - close[1]) como el impulso original xMom. Luego calcula la SMA de xMom durante los días de longitud, denotada como xSMA_mom. Después de eso, calcula el cambio de precio durante los días de longitud xMomLength, a saber, cerca - cerca[Length]. Finalmente, CMO se calcula como xMomLength dividido por xSMA_mom luego multiplicado por 100.
La mayor ventaja de esta estrategia es la captura de las características de impulso dentro de las tendencias de precios. El diseño limitado de CMO refleja los cambios de impulso más directamente. En comparación con SMA, WMA suaviza mejor el ruido a corto plazo. Por lo que esta estrategia puede identificar efectivamente los puntos de entrada dentro de las tendencias a mediano y largo plazo. Además, la combinación de CMO y WMA proporciona una mejor estabilidad que un solo indicador.
El mayor riesgo de esta estrategia es la alta frecuencia de negociación que conduce a un aumento de los costos de deslizamiento. Tanto la CMO como la WMA tienen parámetros a corto plazo, que pueden causar excesivos cambios sin sentido. Esto es especialmente grave cuando el vehículo comercial tiene grandes fluctuaciones. Además, los parámetros fijos no se adaptan a los cambiantes entornos del mercado.
Podemos considerar la introducción de la optimización adaptativa de los parámetros de CMO y WMA, lo que les permite ajustar dinámicamente.
La estrategia puede mejorarse en los siguientes aspectos:
añadir un mecanismo adaptativo de parámetros de la OCM para encontrar parámetros óptimos para diferentes regímenes de volatilidad;
Se añade un mecanismo de parámetros WMA adaptativo para que el efecto de suavizado cambie en consecuencia.
Añadir condiciones de filtro tales como el índice de volatilidad para controlar los whipssaws sin sentido;
Considerar la combinación con otros indicadores para mejorar la estabilidad;
Optimice el mecanismo de stop loss. Establezca una línea de stop loss dinámica para controlar activamente la pérdida de una sola ronda.
La estrategia realiza un seguimiento de tendencia simple y efectivo basado en CMO y WMA. Su ventaja radica en capturar claramente las características del impulso del precio. Pero también tiene cierta debilidad en la capacidad de retención de ganancias después de abrir posiciones. Tanto el ajuste de parámetros como el combo pueden mejorar enormemente la estabilidad. En general, esta estrategia tiene mucho espacio y valor para la mejora.
/*backtest start: 2022-11-21 00:00:00 end: 2023-11-27 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 13/02/2017 // This indicator plots Chandre Momentum Oscillator and its WMA on the // same chart. This indicator plots the absolute value of CMO. // 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. //////////////////////////////////////////////////////////// strategy(title="CMO & WMA", shorttitle="CMO & WMA") Length = input(9, minval=1) LengthWMA = input(9, minval=1) reverse = input(false, title="Trade reverse") hline(0, color=gray, linestyle=line) xMom = abs(close - close[1]) xSMA_mom = sma(xMom, Length) xMomLength = close - close[Length] nRes = 100 * (xMomLength / (xSMA_mom * Length)) xWMACMO = wma(nRes, LengthWMA) pos = iff(nRes > xWMACMO, 1, iff(nRes <= xWMACMO, -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") plot(xWMACMO, color=red, title="WMA")