Strategi ini disebut
Ide utama di balik strategi ini adalah: Pertama menghitung nilai RSI, kemudian membangun indikator RSI Stochastic berdasarkan RSI, yaitu nilai K dan D. Ketika nilai K melintasi di atas nilai D, sinyal beli dihasilkan. Ketika nilai K melintasi di bawah nilai D, sinyal jual dihasilkan. Untuk menyaring sinyal palsu, strategi juga memperkenalkan Rate of Change Index (RVI) dan garis rata-rata bergerak untuk konfirmasi.
Menghitung nilai RSI 14 periode.
Membangun indikator RSI Stochastic 14 periode berdasarkan RSI untuk mendapatkan nilai K dan D (D adalah rata-rata bergerak 3 periode K).
Menghitung RVI 5 periode dan garis sinyalnya (rata-rata bergerak RVI).
Ketika K melintasi di atas D, jika RVI > Garis Sinyal dan periode terakhir
Buka posisi panjang atau pendek berdasarkan sinyal yang dihasilkan.
Kombinasi dari RSI Stochastic dan konfirmasi ganda dari RVI dapat secara efektif menyaring sinyal palsu.
Indikator RVI dapat mencerminkan kondisi overbought/oversold jangka pendek dan menghindari pembukaan posisi pada titik ekstrem.
Indikator Stochastic RSI mengidentifikasi zona overbought/oversold.
Hasil backtest menunjukkan strategi ini telah mencapai kinerja yang baik pada beberapa pasangan cryptocurrency (seperti FCT/BTC).
Penempatan stop loss yang tidak tepat dari strategi stop trailing yang sama dapat menyebabkan stop out prematur.
Frekuensi sinyal yang tinggi dapat menyebabkan biaya perdagangan yang berlebihan yang harus dipertimbangkan.
Kedua indikator KDJ dan RVI dapat menghasilkan sinyal palsu, yang mengakibatkan kerugian yang tidak perlu.
Parameter strategi perlu dioptimalkan untuk pasangan perdagangan yang berbeda. penerapan umum perlu dievaluasi.
Tambahkan stop loss bergerak untuk mengunci keuntungan. ATR dapat dirujuk untuk mengatur tingkat stop loss.
Mengoptimalkan Parameter RVI dan parameter RSI Stochastic untuk sinyal yang lebih bersih.
Tambahkan kontrol ukuran perdagangan untuk menghindari pesanan tunggal yang terlalu besar.
Menambahkan mekanisme penyaringan untuk menghindari membuka posisi pada tingkat yang tidak menguntungkan. indikator volatilitas dapat diperkenalkan untuk menentukan apakah pasar saat ini dalam keadaan bergolak.
Uji pada pasangan cryptocurrency yang berbeda untuk menemukan yang paling cocok.
Strategi ini pertama membangun RSI Stochastic berdasarkan indikator RSI, kemudian menggunakan indikator RVI untuk konfirmasi, untuk mendeteksi kondisi overbought / oversold jangka pendek dan posisi terbuka pada titik balik. Keuntungannya adalah bahwa konfirmasi ganda dapat menyaring sinyal palsu. Kelemahannya adalah risiko parameter overfit. Secara keseluruhan, strategi ini telah mencapai hasil yang baik pada beberapa pasangan perdagangan. Optimasi lebih lanjut dapat memperoleh keuntungan yang lebih konsisten.
/*backtest start: 2022-12-08 00:00:00 end: 2023-12-14 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title="Stochastic RSI", shorttitle="Stoch RSI", overlay = true) Per = input(5, title="Length", minval=1) smoothK = input(3, minval=1) smoothD = input(3, minval=1) lengthRSI = input(14, minval=1) lengthStoch = input(14, minval=1) src = input(close, title="RSI Source") rsi1 = rsi(src, lengthRSI) K = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK) D = sma(K, smoothD) rvi = sum(swma(close-open), Per)/sum(swma(high-low),Per) sig = swma(rvi) //plot(rvi, color=green, title="RVI") //plot(sig, color=red, title="Signal") //plot(K, title="K") //plot(D, title="D") Dn = K <= D and K > 70 and rvi <= sig and rvi[1] >= sig[1] Up= K >= D and K < 30 and rvi >= sig and rvi[1] <= sig[1] ARROW = Up - Dn plotarrow(ARROW, title="Down Arrow", colordown=red, transp=0, maxheight=10, minheight=10) plotarrow(ARROW, title="Up Arrow", colorup=lime, transp=0, maxheight=10, minheight=10) long = crossover(Up, Dn) short = crossunder(Up, Dn) last_long = long ? time : nz(last_long[1]) last_short = short ? time : nz(last_short[1]) long_signal = crossover(last_long, last_short) short_signal = crossover(last_short, last_long) //plot(long_signal, "BUY", color=green) //plot(short_signal, "SELL", color=red) strategy.entry("BUY", strategy.long, when=long_signal) strategy.entry("SELL", strategy.short, when=short_signal)