本策略基于CCI指标设计了一个只做多不做空的长线交易策略。当CCI指标超过100时产生买入信号,当CCI指标下破-100时产生卖出信号。该策略只允许平仓,不允许做空,因此可以有效防止空头交易的风险。
CCI指标是一种趋势型波动指标,它通过测量当前价格与一定周期内的典型价格的偏离程度,来判断目前是否是超买或超卖的状态。当CCI指标超过100时表示进入超买区域,这时可以考虑卖出;当CCI指标下破-100时表示进入超卖区域,这时可以考虑买入。
本策略的交易逻辑是,当CCI指标上穿100时产生买入信号,此时可以建立多头仓位;当CCI指标后续下破-100时产生卖出信号,将之前的多头仓位平仓。另外,策略通过只允许平仓的方式,防止产生空头仓位,有效控制风险。
本策略利用CCI指标判断超买超卖区域,只做多不做空,可以有效防止空头交易风险。策略Concept较为成熟,逻辑简单,容易实施。但也存在一定风险,需要关注参数优化、组合更多指标、设置止损等问题。通过不断优化调整,本策略可以成为一个稳定可靠的长线交易策略选择。
/*backtest
start: 2022-12-11 00:00:00
end: 2023-12-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("CCI Long Only Strategy", overlay=true)
// Input for CCI period
cciPeriod = input(14, title="CCI Period")
// Calculate CCI
cciValue = ta.cci(close, cciPeriod)
// Initialize variables to track last signals
var bool lastBuySignal = na
var bool lastSellSignal = na
// Buy condition
buyCondition = cciValue > 100 and na(lastBuySignal)
// Sell condition
sellCondition = cciValue < -100 and na(lastSellSignal)
// Update last signals
lastBuySignal := buyCondition ? true : na
lastSellSignal := sellCondition ? true : na
// Execute Buy and Sell orders
strategy.entry("Buy", strategy.long, when = buyCondition)
strategy.close("Buy", when = sellCondition)
// Plot CCI for reference
plot(cciValue, title="CCI", color=color.blue)