RSI dan Bollinger Bands Fusion Trading Strategy untuk LTC

Penulis:ChaoZhang, Tarikh: 2024-02-06 10:48:03
Tag:

img

Ringkasan

Strategi ini menggabungkan Indeks Kekuatan Relatif (RSI) dan Bollinger Bands untuk melaksanakan strategi automatik yang boleh membeli dan menjual Litecoin (LTC).

Logika Strategi

Strategi ini terutamanya bergantung kepada dua penunjuk berikut untuk keputusan perdagangan:

  1. Indeks Kekuatan Relatif (RSI): Ia mencerminkan besar dan kelajuan perubahan harga untuk menentukan sama ada aset terlalu banyak dibeli atau terlalu banyak dijual.

  2. Bollinger Bands: Ia mengandungi tiga garis - garis tengah, band atas dan band bawah. Garis tengah adalah purata bergerak n hari. Band atas dan bawah adalah garis tengah ± 2 penyimpangan standard harga selama n hari terakhir. Harga berhampiran band atas menunjukkan keadaan overbought dan berhampiran band bawah menunjukkan keadaan oversold.

Menurut kedua-dua penunjuk ini, peraturan perdagangan adalah:

Beli Isyarat: Apabila RSI melintasi di atas 20 dari zon rendah, ia menunjukkan keadaan oversold yang mungkin terbalik.

Jual Isyarat: Apabila RSI melintasi di bawah 80 dari zon tinggi, ia menunjukkan keadaan overbought yang mungkin terbalik.

Seperti yang dapat kita lihat, strategi ini mempertimbangkan kedua-dua keadaan pasaran overbought / oversold dan harga pecah untuk menjana isyarat perdagangan.

Kelebihan

Kelebihan utama strategi ini ialah:

  1. Menggabungkan RSI dan Bollinger Bands untuk menilai keadaan pasaran secara komprehensif, menghasilkan isyarat yang boleh dipercayai.

  2. RSI mengukur tahap overbought/oversold manakala Bollinger Bands menggambarkan penyimpangan harga daripada taburan biasa. Kedua-duanya saling melengkapi.

  3. Mempertimbangkan kedua-dua bacaan penunjuk dan harga pecah untuk mengelakkan isyarat palsu semasa pasaran terikat julat.

  4. Tetapan parameter yang munasabah untuk tempoh dan ambang RSI dan Bollinger Bands berdasarkan pengoptimuman untuk mengelakkan kegagalan penunjuk.

  5. Khusus dioptimumkan untuk LTC. Prestasi adalah baik berdasarkan backtest data sejarah. pengoptimuman lanjut boleh meningkatkannya lebih banyak.

Risiko

Walaupun terdapat kelebihan, terdapat beberapa risiko:

  1. Kedua-dua RSI dan Bollinger Bands mungkin gagal, terutamanya semasa keadaan pasaran yang tidak normal, yang membawa kepada isyarat dan kerugian yang salah.

  2. Pengoptimuman parameter bergantung pada data sejarah. Perubahan rejim pasaran yang signifikan boleh membuat parameter ini tidak sah, merosot prestasi strategi.

  3. Walaupun dua penunjuk digunakan, whipsaws masih boleh berlaku semasa pasaran terikat julat, menyebabkan kerugian dan kos peluang.

  4. Kos dagangan diabaikan dalam strategi. Frekuensi dagangan yang tinggi dan kedudukan yang terlalu besar dapat mengikis keuntungan dengan cepat melalui kos.

Untuk mengurangkan risiko di atas, kaedah seperti penyesuaian parameter, lebih banyak penunjuk, saiz kedudukan, mengehadkan kekerapan dagangan, dll.

Arahan Penambahbaikan

Beberapa arah untuk meningkatkan strategi:

  1. Uji parameter RSI dan Bollinger Band yang berbeza untuk tetapan yang lebih baik.

  2. Memperkenalkan peraturan saiz kedudukan berdasarkan ekuiti akaun.

  3. Tetapkan stop loss, atau gunakan penunjuk lain untuk menentukan stop loss dan mengambil tahap keuntungan untuk mengehadkan pengeluaran maksimum.

  4. Pertimbangkan lipatan untuk menyesuaikan parameter dan berhenti kerugian dalam perdagangan langsung.

  5. Tambah lebih banyak faktor seperti indeks turun naik, jumlah dan lain-lain untuk membentuk model pelbagai faktor untuk ketepatan yang lebih tinggi.

  6. Merancang mekanisme penyesuaian mengikut rejimen dan kitaran pasaran LTC yang berbeza untuk menyesuaikan parameter strategi secara dinamik.

Kesimpulan

Strategi ini menilai tahap overbought / oversold terlebih dahulu dan kemudian digabungkan dengan breakout untuk menghasilkan isyarat perdagangan, menjadikannya sesuai untuk LTC. Tetapi risiko seperti kegagalan penunjuk, perubahan rejim dan kos perdagangan harus diperhatikan. Terdapat banyak arah untuk peningkatan dan pengoptimuman lanjut boleh membawa kepada hasil yang lebih baik.


/*backtest
start: 2024-01-29 00:00:00
end: 2024-02-05 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("LTCUSD BB + RSI 30MIN,", shorttitle="LTCUSD BBRSI 30MIN ", overlay=true)
     
     // Strategy Tester Start Time
sYear = input(2019, title = "Start Year")
sMonth = input(01, title = "Start Month", minval = 01, maxval = 12)
sDay = input(01, title = "Start Day", minval = 01, maxval = 31)
sHour = input(00, title = "Start Hour", minval = 00, maxval = 23)
sMinute = input(00, title = "Start Minute", minval = 00, maxval = 59)
startTime = true


///////////// RSI
RSIlength = input(5,title="RSI Period Length") 
RSIoverSold = input(20, minval=1,title="RSIL")
RSIoverBought = input(80, minval=1,title="RSIh")
price = open
vrsi = rsi(price, RSIlength)


///////////// Bollinger Bands
BBlength = input(60, minval=1,title="Bollinger Period Length")
BBmult = input(2.0, minval=0.001, maxval=50,title="Bb")
BBbasis = sma(price, BBlength)
BBdev = BBmult * stdev(price, BBlength)
BBupper = BBbasis + BBdev
BBlower = BBbasis - BBdev
source = close
buyEntry = crossover(source, BBlower)
sellEntry = crossunder(source, BBupper)
plot(BBbasis, color=aqua,title="Bollinger Bands SMA Basis Line")
p1 = plot(BBupper, color=silver,title="Bollinger Bands Upper Line")
p2 = plot(BBlower, color=silver,title="Bollinger Bands Lower Line")
fill(p1, p2)


///////////// Colors
switch1=input(true, title="Enable Bar Color?")
switch2=input(true, title="Enable Background Color?")
TrendColor = RSIoverBought and (price[1] > BBupper and price < BBupper) and BBbasis < BBbasis[1] ? red : RSIoverSold and (price[1] < BBlower and price > BBlower) and BBbasis > BBbasis[1] ? green : na
barcolor(switch1?TrendColor:na)
bgcolor(switch2?TrendColor:na,transp=50)


///////////// RSI + Bollinger Bands Strategy
if (not na(vrsi))

    if (crossover(vrsi, RSIoverSold) and crossover(source, BBlower))
        strategy.entry("RSI_BB_L", strategy.long and startTime, stop=BBlower,  comment="RSI_BB_L")
    else
        strategy.cancel(id="RSI_BB_L")
        
    if (crossunder(vrsi, RSIoverBought) and crossunder(source, BBupper))
        strategy.entry("RSI_BB_S", strategy.short and startTime, stop=BBupper,  comment="RSI_BB_S")
    else
        strategy.cancel(id="RSI_BB_S")

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

Lebih lanjut