Strategi perdagangan Laguerre RSI didasarkan pada John EHLERS Laguerre filter yang diterapkan pada indikator RSI. Dengan menyesuaikan koefisien α, strategi ini meningkatkan atau mengurangi lag dan kelancaran RSI untuk menyaring kebisingan dan menghasilkan sinyal perdagangan yang lebih jelas.
Indikator inti dari strategi ini adalah Laguerre RSI.
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 koefisien yang dapat disesuaikan, Src mewakili harga. L0 sampai L3 adalah 4 indikator yang mengandung hubungan rekursif. Atas dasar ini integral arus ke atas cu dan integral ke bawah cd dapat dihitung:
cu = (L0>L1? L0-L1 : 0) + (L1>L2? L1-L2 : 0) + (L2>L3? L2-L3 : 0) cd = (L0
Kemudian Laguerre RSI dapat dihitung menggunakan cu dan cd:
LaRSI = cu / (cu + cd)
Melalui struktur filter rekursif, Laguerre RSI mempertahankan kemampuan identifikasi tren RSI sambil menyaring banyak kebisingan acak, menghasilkan sinyal perdagangan yang lebih jelas dan halus.
Aturan perdagangan khusus adalah: Pergi panjang ketika Laguerre RSI melintasi di atas 20, dan pergi pendek ketika Laguerre RSI melintasi di bawah 80.
Keuntungan utama dari strategi Laguerre RSI adalah:
Efektif menyaring kebisingan RSI melalui struktur filter Laguerre, membuat sinyal perdagangan lebih jelas dan lebih dapat diandalkan
Koefisien α yang dapat disesuaikan membuat parameter strategi fleksibel untuk optimasi untuk beradaptasi dengan lebih banyak lingkungan pasar
Menjaga validitas jangka panjang RSI sementara memungkinkan identifikasi momentum melalui penyaringan, mengintegrasikan tren dan overbought/oversold
Aturan strategi yang sederhana dan intuitif yang mudah diterapkan dan berkinerja baik di berbagai lingkungan pasar
Risiko utama dari strategi ini adalah:
Pengaturan α yang tidak benar dapat menyebabkan keterlambatan yang berlebihan atau penyaringan berlebihan, sehingga kehilangan perubahan harga
Kerugian perdagangan yang sering dapat terjadi di pasar yang tidak stabil
Beberapa peluang kenaikan mungkin terlewatkan di pasar bull jangka panjang yang berkelanjutan
Strategi ini dapat dioptimalkan dari aspek berikut:
Gunakan algoritma pembelajaran mesin untuk mengoptimalkan pengaturan koefisien α
Tambahkan mekanisme stop loss untuk mengurangi risiko kerugian
Menggabungkan indikator lain untuk menyaring sinyal palsu
Meningkatkan model pelonggaran kuantitatif untuk mengamankan keuntungan pada tahap tertentu
Strategi Laguerre RSI secara efektif mengidentifikasi situasi overbought dan oversold melalui mekanisme penyaringan sambil menghindari gangguan dari kebisingan saat mengeluarkan sinyal perdagangan. Strategi sederhana dan praktis ini memiliki ruang optimasi yang besar untuk parameter dan dapat beradaptasi dengan berbagai lingkungan pasar. Ini adalah strategi perdagangan yang direkomendasikan.
/*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))