
Strategi perdagangan RSI Rahel adalah indikator RSI berdasarkan penapis Rahel oleh John EHLERS. Strategi ini meningkatkan atau mengurangkan keterbelakangan dan kelancaran indikator RSI dengan menyesuaikan faktor α, dengan itu menapis kebisingan RSI dan menghantar isyarat beli yang lebih jelas.
Indikator utama strategi ini ialah RSI Ragel. Formula pengiraannya adalah seperti 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 boleh diselaraskan, Src mewakili harga. L0 hingga L3 adalah 4 penunjuk yang mengandungi pertalian berulang. Atas dasar ini dapat dikira pangkat cu kenaikan semasa 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 mengira RSI Ragel:
LaRSI = cu / (cu + cd)
Di sini, dengan menggunakan struktur penapis berulang, penunjuk RSI Rahel menapis banyak bunyi rawak dan menghasilkan isyarat perdagangan yang lebih jelas dan lancar, sambil mengekalkan keupayaan untuk mengenali trend RSI.
Peraturan transaksi khusus: Apabila Ragel memakai 20 di atas RSI, buatlah tambahan; apabila Ragel memakai 80 di bawah RSI, buatlah kosong.
Kelebihan utama strategi RSI Ragel ialah:
Menapis bunyi penunjuk RSI dengan berkesan melalui struktur penapis Ragel, menjadikan isyarat perdagangan lebih jelas dan dipercayai
Penyesuaian faktor α membolehkan parameter strategi untuk dioptimumkan secara fleksibel untuk menyesuaikan diri dengan keadaan pasaran yang lebih luas
Mengekalkan keberkesanan jangka panjang RSI, dan menggunakan penapis untuk mengenal pasti dinamika, mengintegrasikan trend dan overbought dan oversold
Peraturan strategi mudah difahami, mudah dilaksanakan, dan berfungsi dengan baik dalam pelbagai keadaan pasaran
Strategi ini mempunyai risiko utama:
Penetapan yang tidak betul faktor α boleh menyebabkan keterlambatan yang berlebihan atau penapisan yang berlebihan, kehilangan perubahan harga
Kegagalan perdagangan yang kerap berlaku dalam pasaran yang bergolak
Pasaran lembu yang berpanjangan mungkin terlepas beberapa peluang untuk naik
Strategi ini boleh dioptimumkan dalam beberapa aspek:
Tetapan yang mengoptimumkan faktor alfa menggunakan algoritma pembelajaran mesin
Meningkatkan mekanisme kawalan kerugian dan mengurangkan risiko kerugian
Tanda-tanda lain yang boleh digunakan untuk menilai isyarat penapis
Meningkatkan model pelepasan kuantitatif untuk mengunci keuntungan pada tahap tertentu
Strategi RSI Ragel dengan mekanisme penapisan berkesan mengenal pasti keadaan overbought dan oversold, dan mengelakkan gangguan bunyi semasa menghantar isyarat perdagangan. Strategi ini mudah digunakan, parameter pengoptimuman ruang yang besar, dapat menyesuaikan diri dengan pelbagai keadaan pasaran, adalah strategi perdagangan yang disyorkan.
/*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))