
Strategi perdagangan RSI Rahel adalah indikator RSI yang didasarkan pada filter Rahel oleh John EHLERS. Strategi ini meningkatkan atau mengurangi keterbelakangan dan kelancaran indikator RSI dengan menyesuaikan faktor α, sehingga menyaring kebisingan indikator RSI dan memberikan sinyal beli yang lebih jelas.
Indikator utama dari strategi ini adalah RSI Ragel, yang dihitung dengan rumus sebagai berikut:
L0 = (1-γ)*Src + γ*L0[1]
L1 = -γ*L0 + L0[1] + γ*L1[1]
L2 = -γ*L1 + L1[1] + γ*L2[1]
L3 = -γ*L2 + L2[1] + γ*L3[1]
Di sini γ = 1-α, α adalah faktor yang dapat disesuaikan, Src mewakili harga. L0 hingga L3 adalah 4 indikator yang mengandung hubungan resendent. Atas dasar ini dapat dihitung pangkat cu kenaikan saat ini dan pangkat cd penurunan:
cu = (L0>L1 ? L0-L1 : 0) + (L1>L2 ? L1-L2 : 0) + (L2>L3 ? L2-L3 : 0) cd = (L0
Kemudian menggunakan cu dan cd untuk menghitung RSI Ragel:
LaRSI = cu / (cu + cd)
Di sini, dengan menggunakan struktur filter berulang, indikator RSI Ragel memfilter banyak kebisingan acak untuk menghasilkan sinyal perdagangan yang lebih jelas dan lebih halus, sambil mempertahankan kemampuan indikator RSI untuk mengenali tren.
Peraturan transaksi khusus: Jika RSI naik 20 maka Anda harus melakukan over; jika RSI turun 80 maka Anda harus melakukan over.
Keuntungan utama dari strategi RSI Raguel adalah:
Efektif memfilter RSI indikator kebisingan melalui struktur filter Ragel, membuat sinyal perdagangan lebih jelas dan lebih dapat diandalkan
Penyesuaian faktor α memungkinkan parameter strategi untuk dioptimalkan secara fleksibel untuk menyesuaikan dengan lingkungan pasar yang lebih luas
Mempertahankan efektivitas jangka panjang dari RSI, sementara mengidentifikasi dinamika, mengintegrasikan tren dan overbought dan oversold melalui filter
Aturan strategi sederhana, intuitif, mudah diterapkan, dan bekerja dengan baik di berbagai lingkungan pasar
Strategi ini memiliki risiko utama sebagai berikut:
Koefisien α yang tidak tepat dapat menyebabkan keterlambatan atau penyaringan yang berlebihan, kehilangan perubahan harga
Perdagangan yang sering mengalami kerugian dalam kondisi pasar yang sangat bergolak
Pasar sapi yang terus berlanjut mungkin melewatkan beberapa peluang untuk naik
Strategi ini dapat dioptimalkan dalam beberapa hal:
Pengaturan untuk mengoptimalkan faktor alfa dengan menggunakan algoritma pembelajaran mesin
Meningkatkan mekanisme penghentian kerugian dan mengurangi risiko kerugian
Kombinasi dengan indikator lain untuk menilai sinyal kebocoran
Meningkatkan model easing kuantitatif untuk mengunci keuntungan pada tahap tertentu
Strategi RSI Ragel dengan mekanisme filter secara efektif mengidentifikasi overbought dan oversold, menghindari gangguan suara saat sinyal perdagangan dikirim. Strategi ini sederhana, praktis, parameter optimasi ruang yang besar, dapat beradaptasi dengan berbagai lingkungan pasar, adalah strategi perdagangan yang disarankan.
/*backtest
start: 2022-12-12 00:00:00
end: 2023-12-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © mertriver1
// Developer: John EHLERS
//@version=3
// Author:Kıvanç Özbilgiç
strategy("Laguerre RSI", shorttitle="LaRSI", overlay=false)
src = input(title="Source", defval=close)
alpha = input(title="Alpha", type=float, minval=0, maxval=1, step=0.1, defval=0.2)
colorchange = input(title="Change Color ?", type=bool, defval=false)
Date1 = input(true, title = "=== Date Backtesting ===")
FromDay1 = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromMonth1 = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromYear1 = input(defval = 2020, title = "From Year", minval = 2017)
ToDay1 = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToMonth1 = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToYear1 = input(defval = 9999, title = "To Year", minval = 2017)
start1 = timestamp(FromYear1, FromMonth1, FromDay1, 00, 00)
finish1 = timestamp(ToYear1, ToMonth1, ToDay1, 23, 59)
window1() => time >= start1 and time <= finish1 ? true : false
gamma=1-alpha
L0 = 0.0
L0 := (1-gamma) * src + gamma * nz(L0[1])
L1 = 0.0
L1 := -gamma * L0 + nz(L0[1]) + gamma * nz(L1[1])
L2 = 0.0
L2 := -gamma * L1 + nz(L1[1]) + gamma * nz(L2[1])
L3 = 0.0
L3 := -gamma * L2 + nz(L2[1]) + gamma * nz(L3[1])
cu= (L0>L1 ? L0-L1 : 0) + (L1>L2 ? L1-L2 : 0) + (L2>L3 ? L2-L3 : 0)
cd= (L0<L1 ? L1-L0 : 0) + (L1<L2 ? L2-L1 : 0) + (L2<L3 ? L3-L2 : 0)
temp= cu+cd==0 ? -1 : cu+cd
LaRSI=temp==-1 ? 0 : cu/temp
Color = colorchange ? (LaRSI > LaRSI[1] ? green : red) : blue
plot(100*LaRSI, title="LaRSI", linewidth=2, color=Color, transp=0)
plot(20,linewidth=1, color=maroon, transp=0)
plot(80,linewidth=1, color=maroon, transp=0)
strategy.entry("Long", true, when = window1() and crossover(cu, cd))
strategy.entry("Short", false, when = window1() and crossunder(cu, cd))