Laguerre RSI Strategi Perdagangan

Penulis:ChaoZhang, Tanggal: 2023-12-19 14:04:46
Tag:

img

Gambaran umum

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.

Logika Strategi

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.

Analisis Keuntungan

Keuntungan utama dari strategi Laguerre RSI adalah:

  1. Efektif menyaring kebisingan RSI melalui struktur filter Laguerre, membuat sinyal perdagangan lebih jelas dan lebih dapat diandalkan

  2. Koefisien α yang dapat disesuaikan membuat parameter strategi fleksibel untuk optimasi untuk beradaptasi dengan lebih banyak lingkungan pasar

  3. Menjaga validitas jangka panjang RSI sementara memungkinkan identifikasi momentum melalui penyaringan, mengintegrasikan tren dan overbought/oversold

  4. Aturan strategi yang sederhana dan intuitif yang mudah diterapkan dan berkinerja baik di berbagai lingkungan pasar

Analisis Risiko

Risiko utama dari strategi ini adalah:

  1. Pengaturan α yang tidak benar dapat menyebabkan keterlambatan yang berlebihan atau penyaringan berlebihan, sehingga kehilangan perubahan harga

  2. Kerugian perdagangan yang sering dapat terjadi di pasar yang tidak stabil

  3. Beberapa peluang kenaikan mungkin terlewatkan di pasar bull jangka panjang yang berkelanjutan

Arahan Optimasi

Strategi ini dapat dioptimalkan dari aspek berikut:

  1. Gunakan algoritma pembelajaran mesin untuk mengoptimalkan pengaturan koefisien α

  2. Tambahkan mekanisme stop loss untuk mengurangi risiko kerugian

  3. Menggabungkan indikator lain untuk menyaring sinyal palsu

  4. Meningkatkan model pelonggaran kuantitatif untuk mengamankan keuntungan pada tahap tertentu

Kesimpulan

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))

Lebih banyak