Strategi ini pertama-tama menghitung ADX dan SMA pada kerangka waktu yang lebih tinggi untuk mengidentifikasi arah tren dan perubahan. Kemudian RSI dihitung pada kerangka waktu yang lebih rendah untuk mengidentifikasi kondisi overbought dan oversold untuk menghasilkan sinyal perdagangan.
ADX pada jangka waktu yang lebih tinggi menilai kekuatan tren.
SMA pada jangka waktu yang lebih tinggi menilai arah tren. SMA yang naik mewakili harga yang naik, SMA yang turun mewakili harga yang turun.
RSI pada kerangka waktu yang lebih rendah menilai kondisi overbought dan oversold.
Ketika ADX naik, SMA naik, dan RSI overbought pada kerangka waktu yang lebih rendah, dianggap bahwa tren naik menguat, pergi pendek di sini.
Ketika ADX naik, SMA turun, dan RSI oversold pada kerangka waktu yang lebih rendah, dianggap bahwa tren penurunan menguat, pergi panjang di sini.
Menggabungkan penilaian tren dan perdagangan pembalikan, dapat menangkap peluang pembalikan dalam tren utama.
Menggunakan indikator di seluruh kerangka waktu, meningkatkan keandalan sinyal.
Strategi RSI mudah dipahami dan diterapkan.
Potensi untuk sinyal RSI palsu, menyebabkan kehilangan perdagangan dapat mengoptimalkan parameter untuk mengurangi sinyal palsu.
Penghakiman tren siklus utama dapat salah, membuat strategi tidak cocok untuk kondisi pasar.
Frekuensi perdagangan yang berpotensi tinggi, mempengaruhi profitabilitas karena biaya transaksi.
Uji lebih banyak kombinasi parameter untuk menemukan pencocokan optimal antara RSI dan ADX, parameter SMA.
Tambahkan mekanisme stop loss untuk mengendalikan kerugian perdagangan tunggal.
Pertimbangkan indikator volatilitas untuk mengurangi ukuran posisi ketika volatilitas rendah.
Mengoptimalkan harga masuk dan keluar tertentu, seperti masuk pendek setelah memecahkan bar
Strategi ini menggabungkan penilaian tren dan sinyal pembalikan untuk menemukan pembalikan lokal dalam tren utama. Dibandingkan dengan hanya menggunakan RSI, ini lebih dapat diandalkan dan menghindari terjebak. Secara keseluruhan strategi yang relatif konservatif cocok untuk investor yang ingin mengurangi sinyal palsu. pengujian parameter lebih lanjut dan pengoptimalan mekanisme dapat meningkatkan kinerja strategi.
/*backtest start: 2022-12-27 00:00:00 end: 2024-01-02 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("RSI scalping", overlay=true) CustSession = input(defval=true,title= "Custom Resolution / TF ? ",type=bool) SessionTF0 = input(title="Custom Resolution / TF", defval="180") adxlen = input(14, title="ADX Smoothing") dilen = input(14, title="DI Length") length = input(7, title= "RSI length") overSold = input( 28, title= "RSI oversold" ) overBought = input( 68, title= "RSI overbought" ) RSI = rsi(close, 7) res = CustSession ? SessionTF0 : period o = request.security(syminfo.tickerid, res, open) c = request.security(syminfo.tickerid, res, close) l = request.security(syminfo.tickerid, res, low) h = request.security(syminfo.tickerid, res, high) // ADX higher time frame dirmov(len) => up = change(h) down = -change(l) plusDM = na(up) ? na : (up > down and up > 0 ? up : 0) minusDM = na(down) ? na : (down > up and down > 0 ? down : 0) truer = request.security(syminfo.tickerid, res, tr) truerange = rma(truer, len) plus = fixnan(100 * rma(plusDM, len) / truerange) minus = fixnan(100 * rma(minusDM, len) / truerange) [plus, minus] adx(dilen, adxlen) => [plus, minus] = dirmov(dilen) sum = plus + minus adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen) sig = adx(dilen, adxlen) // SMA higher time frame len = input(20, minval=1, title="SMA HTF Length") smma = 0.0 smma := na(smma[1]) ? sma(c, len) : (smma[1] * (len - 1) + c) / len ADXrising = (sig > sig[1]) and (sig[1] > sig[2]) and (sig[2] > sig[3]) and (sig > 15) SMAdrop= (smma < smma[1]) and (smma[1] < smma[2]) and (smma[2] < smma[3]) SMArising = (smma > smma[1]) and (smma[1] > smma[2]) and (smma[2] > smma[3]) longCondition = crossover(RSI, overBought) and ADXrising and SMArising shortCondition = crossunder(RSI, overSold) and SMAdrop and ADXrising if (longCondition) strategy.entry("Long entry", strategy.long) if (shortCondition) strategy.entry("Short Entry", strategy.short)