Strategi penembusan julat RSI adalah strategi trend berikut yang tipikal. Ia menggunakan Indeks Kekuatan Relatif (RSI) sebagai penunjuk teknikal utama untuk mencari peluang penembusan apabila RSI berada di tahap overbought atau oversold, dengan tujuan mengikuti trend.
Strategi ini terutamanya bergantung kepada penunjuk RSI untuk menentukan tahap overbought dan oversold di pasaran. Rumus pengiraan RSI adalah: RSI = (Rata-rata Nilai Up / (Rata-rata Nilai Up + Nilai Down Rata-rata)) x 100. Nilai Up Purata adalah purata bergerak mudah amplitudo dekat-up selama N hari yang lalu. Nilai Rata-rata Down adalah purata bergerak mudah amplitudo dekat-down selama N hari yang lalu.
Apabila RSI lebih tinggi daripada garis overbought (default 80), ia menunjukkan pasaran berada dalam keadaan overbought. Apabila RSI lebih rendah daripada zon oversold (default 35), ia menunjukkan pasaran berada dalam keadaan oversold. Strategi ini mencari peluang pendek apabila RSI memecahkan garis overbought, dan peluang panjang apabila RSI memecahkan zon oversold.
Secara khusus, strategi ini menggunakan dua garis SMA untuk menentukan trend penunjuk RSI. Apabila garis SMA yang lebih cepat memecahkan garis SMA yang lebih perlahan, sementara RSI memecahkan zon oversold, pergi panjang. Apabila garis SMA yang lebih cepat memecahkan garis SMA yang lebih perlahan, sementara RSI memecahkan garis overbought, pergi pendek. Strategi ini juga menetapkan stop loss dan mengambil garis keuntungan untuk mengawal risiko.
Strategi penembusan julat RSI adalah strategi trend berikut secara keseluruhan. Ia menentukan isyarat perdagangan melalui penunjuk RSI, menapis isyarat dengan garis SMA berganda, dan menetapkan stop loss dan mengambil keuntungan untuk mengawal risiko.
/*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)