Strategi RSI Pembalikan Momentum

Penulis:ChaoZhang, Tanggal: 2023-11-15 16:29:25
Tag:

img

Gambaran umum

Ini adalah strategi perdagangan jangka pendek berdasarkan indikator Relative Strength Index (RSI). Ini memanfaatkan RSI untuk mengidentifikasi tingkat overbought dan oversold dan menggabungkan penyaringan lilin untuk menghindari sinyal palsu, memasuki posisi panjang dan pendek pada titik pembalikan. Strategi ini bertujuan untuk menangkap peluang pembalikan rata-rata setelah kondisi overbought atau oversold yang ekstrim.

Penjelasan Strategi

Logika

Pertama, indikator RSI dihitung berdasarkan harga penutupan dengan periode yang ditetapkan pada 7. Tingkat overbought ditetapkan pada 70 dan tingkat oversold ditetapkan pada 30. Sinyal beli dihasilkan ketika RSI melintasi di atas 30 dan sinyal jual dihasilkan ketika RSI melintasi di bawah 70.

Untuk menyaring sinyal palsu, ukuran tubuh candlestick perlu berkembang menjadi 1-3 kali dari kisaran normal ketika sinyal perdagangan dipicu.

Ketika RSI tetap di bawah 30 selama 5 bar berturut-turut, sinyal panjang dihasilkan. Jika lilin berikutnya menunjukkan tubuh bullish diperluas lebih dari 4 kali, posisi panjang akan dieksekusi. Ketika RSI tetap di atas 70 selama 5 bar berturut-turut, sinyal pendek dihasilkan. Jika lilin berikutnya menunjukkan tubuh bearish diperluas lebih dari 4 kali, posisi pendek akan dieksekusi.

Untuk mengunci keuntungan, posisi akan ditutup ketika arah lilin saat ini konsisten dengan arah posisi dan tubuh memperluas 2 kali.

Keuntungan

  1. Mengidentifikasi pembalikan rata-rata setelah tingkat ekstrim

RSI sangat baik dalam mengidentifikasi kondisi overbought dan oversold. Ketika saham mencapai tingkat ekstrem, ada kemungkinan tinggi penarikan, dan tingkat ekstrem sering menyiratkan pembalikan yang akan datang. Strategi ini mampu menangkap peluang tersebut pada titik balik.

  1. Penyaringan candlestick mengurangi sinyal palsu

Perdagangan murni berdasarkan sinyal RSI dapat menghasilkan banyak sinyal palsu. Strategi ini menggabungkan ekspansi tubuh lilin sebagai filter, memasuki posisi ketika tubuh yang diperbesar muncul di sekitar titik pembalikan, menghindari whipsaws dari pasar yang kacau.

  1. Bar RSI berturut-turut meningkatkan keandalan

Membutuhkan 1-5 bar RSI berturut-turut di zona overbought atau oversold bertindak sebagai konfirmasi, menghindari sinyal palsu dari bar abnormal sesekali dan meningkatkan keandalan sinyal.

  1. Multiplier ekspansi tubuh yang fleksibel

Multiplikator ekspansi tubuh dapat disesuaikan untuk produk yang berbeda. Untuk saham dengan ayunan besar, kriteria dapat dikurangi, sementara untuk saham dengan kisaran sempit, dapat diperketat. Ini memungkinkan penyesuaian yang fleksibel untuk produk perdagangan yang berbeda.

Risiko

  1. Potensi overfitting

Pengaturan parameter memiliki beberapa keterbatasan yang melekat. Produk dan periode waktu yang berbeda mungkin memerlukan penyesuaian parameter. Menggunakan pengaturan tetap dapat menyebabkan masalah overfit.

  1. Keakuratan rendah dalam mengidentifikasi tikungan

RSI sendiri memiliki beberapa sifat yang tertinggal. dikombinasikan dengan ekspansi tubuh keluar posisi dini. sehingga akurasi menangkap dasar atau atas yang tepat umumnya tidak sangat tinggi.

  1. Periode kepemilikan yang berpotensi panjang di pasar yang bervariasi

Dalam pasar yang berkisar, RSI dapat memicu sinyal beli dan jual yang sering, menghasilkan periode pemegang yang panjang. Parameter harus disesuaikan atau strategi harus dihentikan sementara dalam kasus seperti itu.

  1. Butuh strategi ukuran posisi yang tepat

Sebagai strategi perdagangan jangka pendek, strategi ukuran posisi yang tepat harus dikombinasikan, seperti stop loss bergerak, mengambil keuntungan, dll, untuk mengunci keuntungan dan mengendalikan risiko.

Ide-ide Peningkatan

  1. Uji set parameter yang berbeda

Kombinasi parameter RSI yang berbeda dapat diuji, seperti periode, tingkat overbought/oversold, dan filter candlestick, untuk menemukan parameter yang dioptimalkan untuk produk yang berbeda.

  1. Tambahkan stop loss dan ambil keuntungan

Stop loss bergerak atau persentase dapat ditambahkan untuk mengunci keuntungan atau mengatur stop loss berdasarkan nilai ATR atau saluran Donchain dll.

  1. Menggabungkan indikator lain sebagai filter

Kondisi berdasarkan MACD, KDJ dan indikator lainnya dapat ditambahkan untuk menghindari sinyal yang salah dari breakout yang tidak valid.

  1. Tambahkan bias tren

Gunakan moving average untuk mengukur bias tren. hanya mempertimbangkan sinyal perdagangan yang selaras dengan tren. strategi dapat dihentikan selama pasar yang terikat rentang. indikator kekuatan tren juga dapat digunakan sebagai filter.

Kesimpulan

Singkatnya, strategi pembalikan RSI ini adalah strategi perdagangan jangka pendek yang khas dengan pro dan kontra sendiri. Keuntungan utama terletak pada menangkap pullback setelah ekstrem sementara risiko utama berasal dari presisi sinyal yang rendah dan periode penahan yang panjang dalam kisaran. Kita dapat meningkatkan strategi dengan menyesuaikan parameter, menambahkan filter, mengoptimalkan stop, dll, untuk beradaptasi dengan lebih banyak produk dan kondisi pasar, dan mencapai hasil yang lebih stabil.


/*backtest
start: 2022-11-08 00:00:00
end: 2023-11-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title = "Noro's FRSI Strategy v1.21", shorttitle = "FRSI str 1.21", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0, commission_type = strategy.commission.percent, commission_value = 0.0)

//Settings
rsiperiod = input(7, defval = 7, minval = 2, maxval = 50, title = "RSI Period")
limit = input(30, defval = 30, minval = 1, maxval = 100, title = "RSI limit")
rsisrc = input(close, defval = close, title = "RSI Price")
rb = input(1, defval = 1, minval = 1, maxval = 5, title = "RSI Bars")
sps = 0
fromyear = input(2018, defval = 2018, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2038, defval = 2018, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Fast RSI
fastup = rma(max(change(rsisrc), 0), rsiperiod)
fastdown = rma(-min(change(rsisrc), 0), rsiperiod)
fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))

//Limits
bar = close > open ? 1 : close < open ? -1 : 0
uplimit = 100 - limit
dnlimit = limit

//RSI Bars
ur = fastrsi > uplimit
dr = fastrsi < dnlimit
uprsi = rb == 1 and ur ? 1 : rb == 2 and ur and ur[1] ? 1 : rb == 3 and ur and ur[1] and ur[2] ? 1 : rb == 4 and ur and ur[1] and ur[2] and ur[3] ? 1 : rb == 5 and ur and ur[1] and ur[2] and ur[3] and ur[4] ? 1 : 0
dnrsi = rb == 1 and dr ? 1 : rb == 2 and dr and dr[1] ? 1 : rb == 3 and dr and dr[1] and dr[2] ? 1 : rb == 4 and dr and dr[1] and dr[2] and dr[3] ? 1 : rb == 5 and dr and dr[1] and dr[2] and dr[3] and dr[4] ? 1 : 0

//Body
body = abs(close - open)
emabody = ema(body, 30)

//Signals
up = bar == -1 and sps == 0 and dnrsi and body > emabody / 4
dn = bar == 1 and sps == 0 and uprsi and body > emabody / 4
exit = bar == 1 and fastrsi > dnlimit and body > emabody / 2

//Trading
if up
    strategy.entry("Long", strategy.long, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 00, 00)))
    sps := 1

if time > timestamp(toyear, tomonth, today, 00, 00) or exit
    strategy.close_all()
    sps := 0
    

Lebih banyak