Strategi ini adalah sistem perdagangan pembalikan rentang dinamis berdasarkan indikator RSI, menangkap titik balik pasar melalui zona overbought / oversold yang dapat disesuaikan dikombinasikan dengan parameter sensitivitas konvergensi / divergensi. Strategi ini menggunakan jumlah kontrak tetap untuk perdagangan dan beroperasi dalam kerangka waktu backtesting tertentu. Inti dari model ini terletak pada mengidentifikasi kondisi pasar overbought dan oversold melalui perubahan RSI dinamis dan mengeksekusi perdagangan pembalikan pada waktu yang tepat.
Strategi ini menggunakan RSI 14 periode sebagai indikator utamanya, menetapkan 80 dan 30 sebagai tingkat acuan overbought dan oversold. Dengan memperkenalkan parameter sensitivitas konvergensi / divergensi (ditempatkan pada 3,0), ia menambahkan kemampuan penyesuaian dinamis ke strategi RSI tradisional. Posisi panjang didirikan ketika RSI melanggar di atas tingkat overbought dan ditutup ketika RSI jatuh di bawah tingkat oversold.
Ini adalah strategi pembalikan kisaran dinamis berdasarkan indikator RSI, mencapai sistem perdagangan yang relatif lengkap melalui pengaturan parameter yang fleksibel dan aturan perdagangan yang jelas. Keuntungan utama strategi ini terletak pada kemampuan penyesuaian dinamis dan kontrol risiko yang jelas, sementara perlu memperhatikan risiko potensial di pasar yang bergolak dan tren. Melalui langkah-langkah optimalisasi seperti penyesuaian volatilitas dan penyaringan tren, strategi ini memiliki ruang untuk perbaikan lebih lanjut. Secara keseluruhan, ini adalah kerangka strategi perdagangan kuantitatif praktis yang cocok untuk penelitian mendalam dan verifikasi praktis.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-11 00:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("RSI Options Strategy", overlay=true) // RSI settings rsiLength = input(14, title="RSI Length") rsiOverbought = input(80, title="Overbought Level") rsiOversold = input(30, title="Oversold Level") rsiSource = input(close, title="RSI Source") rsi = ta.rsi(rsiSource, rsiLength) // Convergence/Divergence Input convergenceLevel = input(3.0, title="Convergence/Divergence Sensitivity") // Order size (5 contracts) contracts = 10 // Date Range for Backtesting startDate = timestamp("2024-09-10 00:00") endDate = timestamp("2024-11-09 23:59") // Limit trades to the backtesting period inDateRange = true // RSI buy/sell conditions with convergence/divergence sensitivity buySignalOverbought = ta.crossover(rsi, rsiOverbought - convergenceLevel) sellSignalOversold = ta.crossunder(rsi, rsiOversold + convergenceLevel) buySignalOversold = ta.crossunder(rsi, rsiOversold - convergenceLevel) sellSignalOverbought = ta.crossover(rsi, rsiOverbought + convergenceLevel) // Execute trades only within the specified date range if (inDateRange) // Buy when RSI crosses above 80 (overbought) if (buySignalOverbought) strategy.entry("Buy Overbought", strategy.long, qty=contracts) // Sell when RSI crosses below 30 (oversold) if (sellSignalOversold) strategy.close("Buy Overbought") // Buy when RSI crosses below 30 (oversold) if (buySignalOversold) strategy.entry("Buy Oversold", strategy.long, qty=contracts) // Sell when RSI crosses above 80 (overbought) if (sellSignalOverbought) strategy.close("Buy Oversold") // Plot the RSI for visualization plot(rsi, color=color.blue, title="RSI") hline(rsiOverbought, "Overbought", color=color.red) hline(rsiOversold, "Oversold", color=color.green)