이 전략은 상품 채널 지수 (CCI) 를 기반으로 한 모멘텀 거래 시스템으로, 평균에서 가격 오버셀드 지대를 모니터링함으로써 거래 기회를 포착하도록 설계되었습니다. 이 전략은 12 기간 룩백을 사용하여, CCI가 -90 문턱 이하로 떨어지면 긴 포지션을 입력하고, 폐쇄 가격이 이전 최고치를 넘으면 종료하며 선택적 인 스톱 로스 및 영업 메커니즘을 포함합니다.
핵심 원리는 CCI를 사용하여 평균에서 가격 오차를 측정합니다. CCI 계산은: 먼저 전형적인 가격을 계산 (고등, 낮은 및 폐쇄 가격의 수학적 평균), 다음 전형적인 가격의 단순 이동 평균 (SMA) 을 계산하고, 마지막으로 전형적인 가격에서 SMA를 빼고 평균 오차로 나누고 0.015로 곱하여 CCI를 도출합니다. CCI가 -90 이하로 떨어지면 긴 지위가 입력되며, 가능한 과판 조건을 나타냅니다. 가격이 이전 최고치를 넘어서면 거래가 종료되며 상승 추세를 확인합니다. 전략은 다양한 위험 선호도를 수용하기 위해 사용자 정의 가능한 스톱 로스 및 영업 매개 변수를 제공합니다.
이 전략은 CCI 지표를 통해 시장 과판 기회를 포착하고, 완전한 거래 시스템을 만들기 위해 스톱 로스 및 영리 메커니즘과 결합하여 완전한 거래 시스템을 만듭니다. 이 전략은 명확한 논리, 쉬운 실행 및 좋은 위험 제어 기능을 갖추고 있습니다. 신호 필터링 및 동적 임계와 같은 최적화 조치를 통해 전략의 안정성과 수익성을 더욱 향상시킬 수 있습니다. 거래자는 실행 전에 구체적인 시장 특성에 따라 철저한 백테스팅을 수행하고 매개 변수를 조정하는 것이 좋습니다.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-27 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("CCI Threshold Strategy", overlay=false, initial_capital=50000, pyramiding=0, commission_type=strategy.commission.cash_per_contract, commission_value=0.05, slippage=1) // --- Input Parameters --- // Lookback period for CCI calculation lookbackPeriod = input.int(12, minval=1, title="CCI Lookback Period") // Buy threshold for CCI; typically represents an oversold condition buyThreshold = input.int(-90, title="CCI Buy Threshold") // Stop loss and take profit settings stopLoss = input.float(100.0, minval=0.0, title="Stop Loss in Points") takeProfit = input.float(150.0, minval=0.0, title="Take Profit in Points") // Checkboxes to enable/disable SL and TP useStopLoss = input.bool(false, title="Enable Stop Loss") useTakeProfit = input.bool(false, title="Enable Take Profit") // --- Calculate CCI --- // CCI (Commodity Channel Index) is used as a momentum indicator to identify oversold and overbought conditions cci = ta.cci(close, length=lookbackPeriod) // --- Define Buy and Sell Conditions --- // Buy condition: CCI drops below -90, indicating potential oversold levels longCondition = cci < buyThreshold // Sell condition: Close price crosses above the previous day's high, signaling potential exit sellCondition = close > ta.highest(close[1], 1) // --- Strategy Execution --- // Buy entry based on the long condition if (longCondition) strategy.entry("Buy", strategy.long) // Close the long position based on the sell condition if (sellCondition) strategy.close("Buy") // Optional: Add stop loss and take profit for risk management if (longCondition) strategy.exit("Sell", from_entry="Buy", loss=useStopLoss ? stopLoss : na, profit=useTakeProfit ? takeProfit : na) // --- Plotting for Visualization --- // Plot CCI with threshold levels for better visualization plot(cci, title="CCI", color=color.blue) hline(buyThreshold, "Buy Threshold", color=color.red, linestyle=hline.style_dotted) hline(0, "Zero Line", color=color.gray, linestyle=hline.style_dotted)