该策略利用CCI指标的零位交叉作为入市和出市的信号,以捕捉趋势的方向。当CCI指标从负值区上穿零位时做多,从正值区下穿零位时做空,实现追踪趋势运行的效果。
该策略的核心逻辑是捕捉CCI指标的零位交叉,作为判断价格趋势的信号。当CCI指标由负数区域进入正数区域时,表示价格脱离过度超卖区,有可能形成向上趋势;当CCI指标由正数区域进入负数区域时,表示价格脱离过度超买区,有可能形成向下趋势。策略在交叉发生时入场,并设定合理的止损距离,以控制风险。
对策:
该策略可以从以下几个方向进行进一步优化:
优化CCI指标的参数长度,找到最佳参数组合。可以通过遍历不同长度的参数,测试收益率和胜率,找到最优参数。
增加其他指标的确认,例如KDJ、MACD等,避免CCI指标的假突破造成不必要的亏损。可以设定价格要持续突破某一价格区间,或其他指标同步发出信号时才入场。
动态调整止损距离。可以根据市场波动程度,自动调整止损距离的区间范围。降低止损距离有利于及时止损,但也可能过于敏感;增大止损距离有利于持续趋势,但也可能造成大额亏损。
优化入场条件以减少错失。可以放宽入场条件,在CCI指标向零位靠近时开始步入场,逐步加仓,而不是死扣零位交叉才入场。
增加趋势判断 exiting 条件,让利润最大化。当趋势反转时,可以设置新的exit信号,例如价格重新回撤一定幅度时止盈。
本策略利用CCI指标的零位交叉判断价格趋势方向,在交叉发生时入场,并设置合理止损距离,能有效追踪趋势运行。策略优化后,可以成为一个稳定可靠的趋势跟踪策略。结合其他指标确认,优化参数设置,改进入场条件,增加反转退出机制等,都可以进一步增强策略的效果。投资者可以根据自己的风险偏好,选择适合的止损距离、持仓时间等参数,运用该策略获利。
/*backtest
start: 2022-09-21 00:00:00
end: 2023-09-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("CCI Level Zero Strategy (by Marcoweb) v1.0", shorttitle="CCI_L_Z_Strat_v1.0", overlay=true)
///////////// CCI
CCIlength = input(20, minval=1, title="CCI Period Length")
CCIoverSold = -100
CCIoverBought = 100
CCIzeroLine = 0
CCI = cci(hlc3, CCIlength)
price = hlc3
vcci = cci(price, CCIlength)
source = close
buyEntry = crossover(source, CCIzeroLine)
sellEntry = crossunder(source, CCIzeroLine)
plot(CCI, color=black,title="CCI")
p1 = plot(CCIoverSold, color=blue,title="-100")
p2 = plot(CCIoverBought, color=red,title="100")
p3 = plot(CCIzeroLine, color=orange,title="0")
///////////// CCI 0Trend v1.0 Strategy
if (not na(vcci))
if (crossover(CCI, CCIzeroLine))
strategy.entry("CCI_L", strategy.long, stop=CCIoverSold, comment="CCI_L")
else
strategy.cancel(id="CCI_L")
if (crossunder(CCI, CCIzeroLine))
strategy.entry("CCI_S", strategy.short, stop=CCIoverBought, comment="CCI_S")
else
strategy.cancel(id="CCI_S")
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)