
Strategi ini adalah sistem perdagangan pengesanan trend berdasarkan indikator yang agak kuat (RSI) yang digabungkan dengan purata bergerak (MA). Inti strategi ini adalah untuk menangkap perubahan pergerakan harga melalui indikator RSI, sambil menggabungkan purata bergerak 90 hari sebagai penapis trend, untuk mengesan trend pasaran dengan berkesan. Strategi ini menggunakan RSI yang boleh disesuaikan untuk melampaui paras overbought dan oversold, dan menetapkan tempoh pengembalian 2500 hari untuk memastikan kepraktisan dan kestabilan strategi ini.
Strategi ini berdasarkan komponen teras berikut:
Keadaan membeli yang mencetuskan memerlukan RSI melebihi 70, dan isyarat menjual dihasilkan apabila RSI melebihi 62. Sistem akan mengira secara automatik dan melakukan operasi bukaan posisi penuh apabila ia memenuhi syarat untuk membuka posisi dan berada dalam tempoh pengukuran semula yang sah.
Cadangan kawalan risiko:
Optimasi sistem isyarat:
Pengurusan Posisi Optimum:
Pengoptimuman kawalan risiko:
Pengoptimuman sistem pengesan:
Strategi ini membina sistem perdagangan yang agak sempurna dengan menggabungkan penunjuk momentum RSI dan penapis trend rata-rata. Keunggulan strategi ini adalah kesesuaian yang kuat, kawalan risiko yang sempurna, tetapi masih perlu mengambil perhatian terhadap sensitiviti parameter dan kesan perubahan persekitaran pasaran. Dengan arah pengoptimuman yang disyorkan, strategi ini mempunyai ruang untuk penambahbaikan yang lebih besar, yang dapat meningkatkan kestabilan dan keuntungan.
/*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("Simple RSI Strategy - Adjustable Levels with Lookback Limit and 30-Day MA", overlay=true)
// Parameters
rsi_length = input.int(12, title="RSI Length", minval=1) // RSI period
rsi_overbought = input.int(70, title="RSI Overbought Level", minval=1, maxval=100) // Overbought level
rsi_oversold = input.int(62, title="RSI Oversold Level", minval=1, maxval=100) // Oversold level
ma_length = input.int(90, title="Moving Average Length", minval=1) // Moving Average period
// Calculate lookback period (2000 days)
lookback_period = 2500
start_date = timestamp(year(timenow), month(timenow), dayofmonth(timenow) - lookback_period)
// RSI Calculation
rsi_value = ta.rsi(close, rsi_length)
// 30-Day Moving Average Calculation
ma_value = ta.sma(close, ma_length)
// Buy Condition: Buy when RSI is above the overbought level
long_condition = rsi_value > rsi_overbought
// Sell Condition: Sell when RSI drops below the oversold level
sell_condition = rsi_value < rsi_oversold
// Check if current time is within the lookback period
in_lookback_period = (time >= start_date)
// Execute Buy with 100% equity if within lookback period
if (long_condition and strategy.position_size == 0 and in_lookback_period)
strategy.entry("Buy", strategy.long, qty=strategy.equity / close)
if (sell_condition and strategy.position_size > 0)
strategy.close("Buy")
// Plot RSI on a separate chart for visualization
hline(rsi_overbought, "Overbought", color=color.red)
hline(rsi_oversold, "Oversold", color=color.green)
plot(rsi_value, title="RSI", color=color.blue)
// Plot the 30-Day Moving Average on the chart
plot(ma_value, title="30-Day MA", color=color.orange, linewidth=2)