Laguerre RSI Strategi Dagangan

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

img

Ringkasan

Strategi perdagangan Laguerre RSI adalah berdasarkan penapis Laguerre John EHLERS yang digunakan pada penunjuk RSI. Dengan menyesuaikan pekali α, strategi ini meningkatkan atau mengurangkan kelewatan dan kelancaran RSI untuk menapis bunyi bising dan menghasilkan isyarat perdagangan yang lebih jelas.

Logika Strategi

Indikator teras strategi ini adalah Laguerre RSI. Rumus penghitungannya 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 pekali yang boleh diselaraskan, Src mewakili harga. L0 hingga L3 adalah 4 penunjuk yang mengandungi hubungan rekursif. Atas dasar ini integral cu dan integral cd boleh dikira:

cu = (L0>L1? L0-L1 : 0) + (L1>L2? L1-L2 : 0) + (L2>L3? L2-L3 : 0) cd = (L0

Kemudian Laguerre RSI boleh dikira menggunakan cu dan cd:

LaRSI = cu / (cu + cd)

Melalui struktur penapis berulang, Laguerre RSI mengekalkan keupayaan pengenalan trend RSI sambil menapis banyak bunyi rawak, menghasilkan isyarat perdagangan yang lebih jelas dan lancar.

Peraturan perdagangan khusus ialah: Pergi panjang apabila Laguerre RSI melintasi di atas 20, dan pergi pendek apabila Laguerre RSI melintasi di bawah 80.

Analisis Kelebihan

Kelebihan utama strategi Laguerre RSI adalah:

  1. Menapis bunyi bising RSI dengan berkesan melalui struktur penapis Laguerre, menjadikan isyarat perdagangan lebih jelas dan lebih boleh dipercayai

  2. Pekali α yang boleh diselaraskan menjadikan parameter strategi fleksibel untuk pengoptimuman untuk menyesuaikan diri dengan lebih banyak persekitaran pasaran

  3. Mengekalkan kesahihan jangka panjang RSI sambil membolehkan pengenalan momentum melalui penapisan, mengintegrasikan trend dan overbought / oversold

  4. Peraturan strategi mudah dan intuitif yang mudah dilaksanakan dan berfungsi dengan baik dalam pelbagai persekitaran pasaran

Analisis Risiko

Risiko utama strategi ini ialah:

  1. Tetapan α yang tidak betul boleh menyebabkan kelewatan yang berlebihan atau penapisan berlebihan, sehingga kehilangan perubahan harga

  2. Kerugian perdagangan yang kerap boleh berlaku di pasaran yang tidak menentu

  3. Sesetengah peluang kenaikan mungkin terlepas dalam pasaran lembu jangka panjang

Arahan pengoptimuman

Strategi ini boleh dioptimumkan dari aspek berikut:

  1. Gunakan algoritma pembelajaran mesin untuk mengoptimumkan tetapan pekali α

  2. Tambah mekanisme stop loss untuk mengurangkan risiko kerugian

  3. Gabungkan penunjuk lain untuk menapis isyarat palsu

  4. Meningkatkan model pelonggaran kuantitatif untuk mengunci keuntungan pada peringkat tertentu

Kesimpulan

Strategi Laguerre RSI secara berkesan mengenal pasti situasi overbought dan oversold melalui mekanisme penapisan sambil mengelakkan gangguan dari bunyi bising semasa mengeluarkan isyarat perdagangan. Strategi yang mudah dan praktikal ini mempunyai ruang pengoptimuman yang besar untuk parameter dan dapat menyesuaikan diri dengan pelbagai persekitaran pasaran.


/*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 lanjut