Strategi Gap RSI Cepat untuk Mata Uang Kripto


Tanggal Pembuatan: 2023-11-27 11:22:19 Akhirnya memodifikasi: 2023-11-27 11:22:19
menyalin: 0 Jumlah klik: 643
1
fokus pada
1617
Pengikut

Strategi Gap RSI Cepat untuk Mata Uang Kripto

Keterangan: Strategi ini adalah strategi perdagangan RSI cepat yang diterapkan pada cryptocurrency. Ini menggunakan indikator RSI cepat dan strategi K-line yang melompat untuk mencari peluang perdagangan.

Prinsip-prinsip Strategi: Strategi ini menggunakan dua indikator utama sekaligus: RSI cepat dan K-line yang melompat.

Pertama, ia menghitung indikator RSI cepat dengan hanya 7 garis K. Indikator RSI lebih sensitif dan dapat dengan cepat menangkap fenomena overbought dan oversold. Setting RSI upper limit menjadi 70 dan lower limit menjadi 30. Overbought adalah ketika RSI lebih besar dari 70 dan oversold adalah ketika lebih kecil dari 30.

Kedua, ia mendeteksi garis K yang melompat. Melompat menunjukkan bahwa harga bukaan memiliki selisih yang lebih besar dari harga tutup hari sebelumnya. Melompat adalah sinyal yang berfluktuasi tinggi, yang menunjukkan kemungkinan pembalikan tren.

Ketika K-line terdeteksi melompat ke bawah dan indikator RSI cepat menunjukkan oversold, lakukan over. Ketika K-line terdeteksi melompat ke atas dan indikator RSI cepat menunjukkan overbought, lakukan over.

Selain itu, strategi ini juga menetapkan SMA rata-rata dan indikator minimum dan maksimum sebagai filter untuk menghindari perdagangan yang salah. Hanya jika melewati filter, sinyal perdagangan yang benar akan dikirim.

Analisis Keunggulan: Keuntungan terbesar dari strategi ini adalah menangkap fenomena overbought dan oversold yang cepat serta peluang reversal yang melompat. Ini sangat cocok untuk pasar cryptocurrency yang berfluktuasi tinggi dan dapat menangkap titik pergeseran tren yang cepat. Dibandingkan dengan RSI konvensional, RSI cepat lebih sensitif dan dapat beradaptasi dengan perdagangan frekuensi tinggi cryptocurrency.

Analisis risiko: Strategi ini memiliki empat risiko utama:

  1. Indikator RSI yang cepat diatur terlalu sensitif, sehingga menimbulkan risiko banyak sinyal yang salah;

  2. Jika harga saham naik dan turun, maka harga saham akan naik dan turun, dan jika harga saham turun, maka harga saham akan turun.

  3. Orang-orang yang tidak memiliki banyak uang akan lebih mudah untuk berurusan dengan uang mereka sendiri.

  4. Parameter kebijakan yang tidak tepat seperti panjang indikator minimum dan maksimum dapat menyebabkan sinyal menjadi lebih tipis dan tidak efisien.

Oleh karena itu, langkah-langkah berikut dapat mengurangi risiko:

  1. Menyesuaikan parameter RSI cepat dengan meningkatkan jumlah siklus RSI secara tepat;

  2. Menggunakan Stop Loss Mobile untuk mengunci keuntungan dan menghindari kerugian dari pelacakan melompat;

  3. Optimalkan pengaturan keterlibatan strategi, dan kendalikan keterlibatan strategi pada situasi yang kurang berfluktuasi;

  4. Uji ulang dan optimalkan parameter untuk menemukan parameter terbaik untuk memastikan bahwa strategi bekerja.

Cara Mengoptimalkan: Strategi ini dioptimalkan untuk:

  1. Menjelajahi indikator harga lainnya seperti MACD, KDJ dan lain-lain yang dikombinasikan dengan skydiving untuk meningkatkan akurasi sinyal;

  2. Tambahkan pengaturan Stop Loss adaptif yang secara otomatis menyesuaikan stop loss sesuai dengan fluktuasi pasar;

  3. Indikator kuantitatif gabungan seperti OBV untuk memeriksa sinyal konfirmasi lompatan, untuk mengkonfirmasi pembalikan tren;

  4. Optimalkan panjang dan parameter filter untuk menemukan kombinasi parameter optimal untuk mengurangi kesalahan;

  5. Studi kelayakan berbagai cryptocurrency terhadap parameter strategi, untuk menetapkan parameter yang lebih tepat.

Optimasi ini dapat meningkatkan stabilitas, adaptasi, dan keandalan strategi.

Kesimpulannya: Strategi RSI cepat melompat adalah strategi perdagangan yang sangat efisien yang dirancang khusus untuk situasi volatilitas cryptocurrency. Ini menggabungkan sensitivitas indikator RSI cepat dan kemampuan untuk memprediksi K-line melompat. Dengan pengujian dan pengoptimalan terus-menerus, kemampuan strategi ini untuk menangkap market reversal cepat dapat ditingkatkan lebih lanjut dan menghasilkan keuntungan stabil jangka panjang di pasar cryptocurrency yang berfluktuasi.

Kode Sumber Strategi
/*backtest
start: 2023-10-27 00:00:00
end: 2023-11-26 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=3
strategy(title = "Noro's Fast RSI Strategy v1.5", shorttitle = "Fast RSI str 1.5", overlay = true)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
usersi = input(true, defval = true, title = "Use Fast RSI Strategy")
usemm = input(true, defval = true, title = "Use Min/Max Strategy")
usesma = input(false, defval = false, title = "Use SMA Filter")
smaperiod = input(20, defval = 20, minval = 2, maxval = 1000, title = "SMA Filter Period")
fast = input(7, defval = 7, minval = 2, maxval = 50, title = "Fast RSI Period")
limit = input(30, defval = 30, minval = 1, maxval = 100, title = "RSI limit")
rsisrc = input(close, defval = close, title = "RSI Price")
rsibars = input(1, defval = 1, minval = 1, maxval = 20, title = "RSI Bars")
mmbars = input(1, defval = 1, minval = 1, maxval = 5, title = "Min/Max Bars")
showsma = input(false, defval = false, title = "Show SMA Filter")
showarr = input(false, defval = false, title = "Show Arrows")
fromyear = input(2018, defval = 2018, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, 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), fast)
fastdown = rma(-min(change(rsisrc), 0), fast)
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
upsignal = fastrsi > uplimit ? 1 : 0
dnsignal = fastrsi < dnlimit ? 1 : 0
uprsi = sma(upsignal, rsibars) == 1
dnrsi = sma(dnsignal, rsibars) == 1

//Body
body = abs(close - open)
abody = sma(body, 10)

//MinMax Bars
min = min(close, open)
max = max(close, open)
minsignal = min < min[1] and bar == -1 and bar[1] == -1 ? 1 : 0
maxsignal = max > max[1] and bar == 1 and bar[1] == 1 ? 1 : 0
mins = sma(minsignal, mmbars) == 1
maxs = sma(maxsignal, mmbars) == 1

//SMA Filter
sma = sma(close, smaperiod)
colorsma = showsma ? blue : na
plot(sma, color = colorsma, linewidth = 3)

//Signals
up1 = bar == -1 and (strategy.position_size == 0 or close < strategy.position_avg_price) and dnrsi and body > abody / 5 and usersi
dn1 = bar == 1 and (strategy.position_size == 0 or close > strategy.position_avg_price) and uprsi and body > abody / 5 and usersi
up2 = mins and (close > sma or usesma == false) and fastrsi < 70 and usemm
dn2 = maxs and (close < sma or usesma == false) and fastrsi > 30 and usemm 
exit = ((strategy.position_size > 0 and fastrsi > dnlimit and bar == 1) or (strategy.position_size < 0 and fastrsi < uplimit and bar == -1)) and body > abody / 2

//Arrows
col = exit ? black : up1 or dn1 ? blue : up2 or dn2 ? red : na
needup = up1 or up2
needdn = dn1 or dn2
needexitup = exit and strategy.position_size < 0
needexitdn = exit and strategy.position_size > 0
plotarrow(showarr and needup ? 1 : na, colorup = blue, colordown = blue, transp = 0)
plotarrow(showarr and needdn ? -1 : na, colorup = blue, colordown = blue, transp = 0)
plotarrow(showarr and needexitup ? 1 : na, colorup = black, colordown = black, transp = 0)
plotarrow(showarr and needexitdn ? -1 : na, colorup = black, colordown = black, transp = 0)

//Trading
if up1 or up2
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if dn1 or dn2
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if time > timestamp(toyear, tomonth, today, 23, 59) or exit
    strategy.close_all()