Strategi penembusan RSI adalah strategi pengesanan trend yang tipikal. Ia menggunakan indeks yang agak kuat (RSI) sebagai penunjuk teknikal utama, mencari peluang untuk menembusi rantai ketika RSI berada dalam keadaan overbought atau oversold untuk membina kedudukan, untuk tujuan pengendalian trend.
Strategi ini bergantung kepada indikator RSI untuk menentukan keadaan pasaran yang terlalu banyak dibeli. Rumus pengiraan indikator RSI adalah: RSI = ((rata-rata kenaikan / kenaikan rata-rata + penurunan rata-rata) × 100. Di antaranya, kenaikan rata-rata adalah purata bergerak sederhana kenaikan penutupan dalam masa N hari terakhir, dan penurunan rata-rata adalah purata bergerak sederhana penurunan penutupan dalam masa N hari terakhir.
Apabila RSI lebih besar daripada garis beli-belah yang ditetapkan (default 80), ia menunjukkan bahawa pasaran berada dalam keadaan beli-belah; apabila RSI lebih kecil daripada julat beli-belah yang ditetapkan (default 35), ia menunjukkan bahawa pasaran berada dalam julat beli-belah. Strategi mencari peluang melakukan shorting apabila RSI menembusi garis beli-belah ke bawah; mencari peluang untuk melakukan perdagangan apabila RSI menembusi julat beli-belah ke atas.
Khususnya, strategi menilai trend RSI dengan dua garis rata-rata SMA. Apabila garis cepat dari bawah ke atas menembusi garis perlahan, dan RSI menembusi ruang oversold, lakukan lebih banyak; Apabila garis cepat dari atas ke bawah menembusi garis perlahan, dan RSI menembusi garis beli, lakukan shorting.
Strategi RSI untuk memecahkan rantaian adalah strategi pengesanan trend yang tipikal secara keseluruhan. Ia menilai titik jual beli melalui petunjuk RSI, penapis isyarat purata ganda SMA, dan menetapkan stop loss stop untuk mengawal risiko. Tetapi petunjuk RSI mempunyai masalah keterbelakangan, selain itu parameter yang tidak betul juga dapat mempengaruhi prestasi strategi. Dengan pengoptimuman lanjut, anda dapat memanfaatkan sepenuhnya kemampuan pengesanan trend strategi tersebut.
/*backtest
start: 2023-09-10 00:00:00
end: 2023-10-10 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
//strategy("Strategy RSI | Fadior", shorttitle="Strategy RSI", pyramiding=10, calc_on_order_fills=false, initial_capital=10000, default_qty_type=strategy.percent_of_equity, currency="USD", default_qty_value=100, overlay=false)
len = input(3, minval=1, title="RSI Length")
threshLow = input(title="Treshold Low", defval=35)
threshHigh = input(title="Treshold High", defval=80)
rsiLength1 = input(title="RSI Smoothing 1", defval=3)
rsiLength2 = input(title="RSI Smoothing 2", defval=5)
SL = input(title="Stop loss %", type=float, defval=.026, step=.001)
TP = input( defval=300)
// 3 40 70 2
// 14 40 70 2 16 0.05 50
src = close
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
plot(sma(rsi,rsiLength2), color=orange)
plot(sma(rsi,rsiLength1), color=green)
band1 = hline(threshHigh)
band0 = hline(threshLow)
fill(band1, band0, color=purple, transp=90)
strategy = input(type=bool, title="Long only ?", defval=true)
strategy.risk.allow_entry_in(strategy ? strategy.direction.long : strategy.direction.all)
longCondition = sma(rsi,rsiLength1) < threshLow and sma(rsi,rsiLength2) > sma(rsi,rsiLength2)[1]
if (longCondition)
strategy.entry("Long", strategy.long) //, qty=10)
strategy.exit("Close Long", "Long", stop=src-close*SL, profit=TP)
shortCondition = sma(rsi,rsiLength1) > threshHigh and sma(rsi,rsiLength2) < sma(rsi,rsiLength2)[1]
if (shortCondition)
strategy.entry("Short", strategy.short) //, qty=10)
strategy.exit("Close Short", "Short") //, stop=src-close*SL, profit=TP)