
Strategi ini adalah sistem perdagangan dinamis yang didasarkan pada indikator Commodity Channel Index (CCI) untuk menangkap peluang perdagangan di area oversold pasar dengan memantau seberapa jauh harga dari nilai rata-rata. Strategi ini menggunakan 12 siklus sebagai periode retrospektif, masuk ke dalam pasar ketika indikator CCI turun di bawah -90 dan keluar dari posisi saat harga penutupan mencapai titik tertinggi sebelumnya, dan dilengkapi dengan opsi stop loss dan profit close out.
Inti dari strategi ini adalah menggunakan indikator CCI untuk mengukur tingkat penyimpangan antara harga dan nilainya. Proses perhitungan CCI meliputi: pertama menghitung harga khas (rata-rata aritmatika dari harga tertinggi, terendah, dan harga penutupan), kemudian menghitung rata-rata bergerak sederhana dari harga khas (SMA), dan akhirnya mendapatkan nilai CCI akhir dengan mengurangi SMA dari harga khas dan kemudian membagi dengan penyimpangan rata-rata dan kalikan dengan 0.015. Saat nilai CCI berada di bawah 90, menunjukkan bahwa pasar mungkin berada di negara yang oversold, saat ini pasar melakukan overbought; Ketika harga menembus titik tinggi sebelumnya, menunjukkan bahwa tren naik telah ditetapkan, saat ini strategi take profit.
Strategi ini menangkap peluang overselling pasar melalui indikator CCI, dilengkapi dengan mekanisme stop loss dan profit, untuk mencapai sistem perdagangan yang lengkap. Logika strategi jelas, mudah dilaksanakan, dan memiliki kemampuan pengendalian risiko yang baik. Dengan memperkenalkan metode optimasi seperti penyaringan sinyal, penurunan nilai dinamis, stabilitas dan profitabilitas strategi juga dapat ditingkatkan.
/*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)