La idea central de esta estrategia es identificar las tendencias del mercado mediante la combinación de los indicadores de media móvil y media móvil de Kama para lograr el seguimiento de tendencias. Cuando la media móvil y media móvil de Kama tienen una cruz de oro, se juzga que ha comenzado una tendencia alcista y se toma una posición larga.
El promedio móvil de Kama es un indicador de tendencia que es más sensible al ruido del mercado y se puede utilizar para determinar las tendencias de precios.
Calcular promedios móviles. dos promedios móviles se calculan aquí, uno es un doble exponencial más rápido promedio móvil, el otro es un promedio móvil normal ponderado.
Cuando la línea rápida rompe la línea lenta desde abajo, ir largo. Cuando la línea rápida rompe a través de la línea lenta desde arriba, ir corto. Así que el juicio de la tendencia y el seguimiento se completa.
Después de tomar posiciones, salga cuando el precio rompa la línea Kama para lograr la tendencia después de la salida.
La estrategia combina los indicadores de promedio móvil Kama y promedio móvil para hacer juicios relativamente precisos sobre las tendencias del mercado y lograr un seguimiento de la tendencia con una fuerte capacidad de control del descenso.
El promedio móvil Kama es más sensible al ruido del mercado y puede detectar puntos de inversión de tendencia con anticipación.
El juicio de la combinación de medias móviles es claro y fácil de entender.
La estrategia tiene un gran espacio de optimización de parámetros y los parámetros se pueden ajustar y optimizar para diferentes variedades e instrumentos comerciales.
Todavía existe la posibilidad de un error de juicio cuando la combinación de media móvil Kama y media móvil juzga la tendencia del mercado.
No establecer un stop loss puede dar lugar a mayores pérdidas en condiciones extremas de mercado.
Los parámetros deben ajustarse de acuerdo con las diferentes variedades.
Considere la posibilidad de añadir un indicador ATR para la configuración de stop loss.
Prueba el impacto de diferentes valores de parámetros en el rendimiento de la estrategia para encontrar los parámetros óptimos.
Considere la posibilidad de añadir otros indicadores de verificación, como el indicador del oscilador, para mejorar la precisión del juicio.
Construir un marco de optimización de parámetros autoadaptable y dinámico para la optimización automática de parámetros.
La idea general de esta estrategia es clara, utilizando el promedio móvil Kama y el promedio móvil cruz de oro y cruz de muerte para determinar y seguir las tendencias con una fuerte capacidad de control de descenso. A través de la puesta a punto y optimización de parámetros, se pueden obtener buenos resultados.
/*backtest start: 2024-01-29 00:00:00 end: 2024-02-05 00:00:00 period: 45m basePeriod: 5m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //synapticex.com kamaPeriod = input(8, minval=1) ROCLength=input(4, minval=1) kama(length)=> volatility = sum(abs(close-close[1]), length) change = abs(close-close[length-1]) er = iff(volatility != 0, change/volatility, 0) sc = pow((er*(0.666666-0.064516))+0.064516, 2) k = nz(k[1])+(sc*(hl2-nz(k[1]))) n=input(title="period",defval=7) n2ma=2*wma(close,round(n/2)) nma=wma(close,n) diff=n2ma-nma sqn=round(sqrt(n)) n2ma1=2*wma(close[1],round(n/2)) nma1=wma(close[1],n) diff1=n2ma1-nma1 sqn1=round(sqrt(n)) n1=wma(diff,sqn) n2=wma(diff1,sqn) c=n1>n2?lime:red ma=plot(n1,color=c, linewidth = 3) plot(cross(nma, nma1) ? nma : na, style = cross, color = c, linewidth = 5) kamaEntry = request.security(syminfo.tickerid,timeframe.period,kama(kamaPeriod)) plot(kamaEntry, color=gray, title="Kama",transp=0, trackprice=false, style=line) strategy("Kama VS HeikinAshi", overlay=true, pyramiding=0, calc_on_every_tick=true, calc_on_order_fills=true) buyEntry = n1 > n2 sellEntry = close < kamaEntry and n1 < n2 buyExit = close < kamaEntry and n1 < n2 sellExit = n1 > n2 if (buyEntry) strategy.entry("KAMAL", strategy.long, comment="KAMAL") else strategy.close("KAMAL", when=buyExit) if (sellEntry) strategy.entry("KAMAS", strategy.short, comment="KAMAS") else strategy.close("KAMAS", when = sellExit)