本策略的核心思想是结合卡马均线指标和均线指标来识别市场趋势,实现趋势跟踪。当卡马均线和均线发生黄金交叉时,判断为进入上涨趋势,做多;当卡马均线和均线发生死亡交叉时,判断为进入下跌趋势,做空。
本策略总体思路清晰,利用卡马均线和均线指标的黄金交叉与死亡交叉来判断和跟踪趋势,回撤控制能力较强,通过参数调整和优化,可以获得较好的效果。但也存在一定的改进空间,如果加入更多验证指标和止损模块,可以进一步增强策略的稳定性和收益能力。
/*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)