Strategi ini adalah sistem dagangan momentum berdasarkan Indeks Saluran Komoditi (CCI), yang direka untuk menangkap peluang dagangan di kawasan oversold dengan memantau penyimpangan harga dari purata. Strategi ini menggunakan pandangan 12 tempoh, memasuki kedudukan panjang apabila CCI jatuh di bawah ambang -90, keluar apabila harga penutupan melanggar di atas paras tertinggi sebelumnya, dan termasuk mekanisme stop-loss dan mengambil keuntungan pilihan.
Prinsip teras menggunakan CCI untuk mengukur penyimpangan harga daripada purata. Pengiraan CCI melibatkan: pertama mengira harga biasa (rata-rata aritmetik harga tinggi, rendah dan dekat), kemudian mengira Purata Bergerak Sederhana (SMA) harga biasa, akhirnya memperoleh CCI dengan mengurangkan SMA dari harga biasa, membahagikan dengan penyimpangan purata dan mengalikan dengan 0.015. Posisi panjang dimasukkan apabila CCI jatuh di bawah -90, menunjukkan keadaan oversold yang mungkin; kedudukan ditutup apabila harga memecahkan di atas paras tertinggi sebelumnya, mengesahkan trend menaik. Strategi ini menawarkan parameter stop-loss dan mengambil keuntungan yang boleh disesuaikan untuk menampung pilihan risiko yang berbeza.
Strategi ini menangkap peluang oversold pasaran melalui penunjuk CCI, digabungkan dengan mekanisme stop-loss dan mengambil keuntungan untuk mewujudkan sistem perdagangan yang lengkap. Strategi ini mempunyai logika yang jelas, pelaksanaan yang mudah, dan keupayaan kawalan risiko yang baik. Melalui langkah pengoptimuman seperti penapisan isyarat dan ambang dinamik, kestabilan dan keuntungan strategi dapat ditingkatkan lagi.
/*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)