
Strategi ini adalah sistem perdagangan berbalik dalam julat dinamik berdasarkan RSI, yang menangkap titik-titik perubahan pasaran dengan menetapkan julat overbought dan oversold yang boleh disesuaikan, digabungkan dengan parameter sensitiviti penutupan / penyebaran. Strategi ini menggunakan jumlah kontrak tetap untuk diperdagangkan dan beroperasi dalam jangka masa yang ditentukan.
Strategi ini menggunakan RSI 14 kitaran sebagai penunjuk teras, menetapkan 80 dan 30 sebagai paras asas untuk overbought dan oversold. Dengan memperkenalkan parameter sensitiviti penyingkiran / penyebaran (diset 3.0) meningkatkan keupayaan pengendalian dinamik berdasarkan strategi RSI tradisional.
Ini adalah strategi pembalikan rantaian dinamik berdasarkan RSI, yang mencapai sistem perdagangan yang agak lengkap melalui penetapan parameter yang fleksibel dan peraturan perdagangan yang jelas. Kelebihan utama strategi ini adalah keupayaan untuk menyesuaikan diri secara dinamik dan kawalan risiko yang jelas, tetapi juga memerlukan perhatian terhadap potensi risiko dalam pasaran yang bergolak dan pasaran yang sedang tren.
/*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)