RSI dan Bollinger Bands Fusion Trading Strategy untuk LTC

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

img

Gambaran umum

Strategi ini menggabungkan Indeks Kekuatan Relatif (RSI) dan Bollinger Bands untuk menerapkan strategi otomatis yang dapat membeli dan menjual Litecoin (LTC).

Logika Strategi

Strategi ini terutama didasarkan pada dua indikator berikut untuk keputusan perdagangan:

  1. Indeks Kekuatan Relatif (RSI): Ini mencerminkan besar dan kecepatan perubahan harga untuk menentukan apakah aset terlalu banyak dibeli atau terlalu banyak dijual.

  2. Bollinger Bands: Ini berisi tiga garis - garis tengah, band atas dan band bawah. Garis tengah adalah rata-rata bergerak n hari. Band atas dan bawah adalah garis tengah ± 2 standar deviasi harga selama n hari terakhir. Harga di dekat band atas menunjukkan kondisi overbought dan dekat band bawah menunjukkan kondisi oversold.

Menurut kedua indikator ini, aturan perdagangan adalah:

Sinyal Beli: Ketika RSI melintasi di atas 20 dari zona rendah, ini menunjukkan kondisi oversold yang mungkin terbalik.

Jual SinyalJika harga juga menembus band atas Bollinger Bands, sinyal jual dipicu.

Seperti yang dapat kita lihat, strategi ini mempertimbangkan kondisi overbought / oversold pasar dan price breakout untuk menghasilkan sinyal perdagangan.

Keuntungan

Keuntungan utama dari strategi ini adalah:

  1. Menggabungkan RSI dan Bollinger Bands untuk menilai kondisi pasar secara komprehensif, menghasilkan sinyal yang andal.

  2. RSI mengukur tingkat overbought/oversold sedangkan Bollinger Bands menggambarkan deviasi harga dari distribusi khas.

  3. Pertimbangkan baik pembacaan indikator dan price breakout untuk menghindari sinyal palsu selama pasar yang terikat kisaran.

  4. Pengaturan parameter RSI dan Bollinger Bands periode dan ambang yang wajar berdasarkan optimalisasi untuk mencegah kegagalan indikator.

  5. Secara khusus dioptimalkan untuk LTC. Kinerja bagus berdasarkan backtest data historis. Optimasi lebih lanjut dapat meningkatkannya lebih banyak.

Risiko

Meskipun ada manfaatnya, ada beberapa risiko:

  1. Baik RSI dan Bollinger Bands dapat gagal, terutama selama kondisi pasar yang tidak normal, yang menyebabkan sinyal dan kerugian yang salah.

  2. Optimasi parameter bergantung pada data historis. Perubahan rezim pasar yang signifikan dapat membuat parameter ini tidak valid, memperburuk kinerja strategi.

  3. Meskipun dua indikator digunakan, whipsaws masih dapat terjadi selama pasar yang terbatas pada kisaran, menyebabkan kerugian dan biaya peluang.

  4. Biaya perdagangan diabaikan dalam strategi. frekuensi perdagangan yang tinggi dan posisi yang terlalu besar dapat mengikis keuntungan dengan cepat melalui biaya.

Untuk mengurangi risiko di atas, metode seperti penyesuaian parameter, lebih banyak indikator, ukuran posisi, membatasi frekuensi perdagangan dll dapat diadopsi.

Arah Peningkatan

Beberapa arah untuk meningkatkan strategi:

  1. Uji parameter RSI dan Bollinger Bands yang berbeda untuk pengaturan yang lebih baik.

  2. Memperkenalkan aturan ukuran posisi berdasarkan ekuitas akun.

  3. Atur stop loss, atau gunakan indikator lain untuk menentukan stop loss dan mengambil tingkat keuntungan untuk membatasi drawdown maksimum.

  4. Pertimbangkan slippage untuk menyesuaikan parameter dan stop loss dalam perdagangan langsung.

  5. Tambahkan lebih banyak faktor seperti indeks volatilitas, volume dll untuk membentuk model multifaktor untuk akurasi yang lebih tinggi.

  6. Merancang mekanisme adaptasi sesuai dengan rezim dan siklus pasar LTC yang berbeda untuk menyesuaikan parameter strategi secara dinamis.

Kesimpulan

Strategi ini menilai tingkat overbought/oversold terlebih dahulu dan kemudian dikombinasikan dengan breakout untuk menghasilkan sinyal perdagangan, membuatnya cocok untuk LTC. Tetapi risiko seperti kegagalan indikator, perubahan rezim dan biaya perdagangan harus diperhatikan. Ada banyak arah untuk perbaikan dan optimasi lebih lanjut dapat mengarah pada 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 banyak