RSI Bollinger Bands Strategi Dagangan Jangka Pendek

Penulis:ChaoZhang, Tarikh: 2023-12-19 11:31:09
Tag:

img

Ringkasan

Strategi ini menggabungkan Indeks Kekuatan Relatif (RSI) dan Bollinger Bands untuk membina strategi perdagangan jangka pendek. Ia terutamanya menggunakan isyarat beli dan jual apabila RSI memecahkan Bollinger Bands atas atau bawah. Sementara itu, mekanisme stop loss disertakan untuk mengawal risiko dengan berkesan.

Logika Strategi

  1. Mengira penunjuk RSI dengan parameter 14 tempoh.
  2. Mengira Bollinger Midband menggunakan purata bergerak bertingkat RSI, dengan tempoh ditetapkan kepada 25.
  3. Mengira Band Atas dan Band Bawah Bollinger Bands. Band Atas adalah Band Pertengahan ditambah amplitud, sementara Band Bawah adalah Band Pertengahan dikurangkan amplitud. Amplitud ditetapkan kepada 20 kali deviasi standard RSI.
  4. Pergi panjang apabila RSI menembusi Band Bawah, dan pergi pendek apabila RSI menembusi Band Atas.
  5. Tetapkan mekanisme stop loss bahawa jika harga jatuh di bawah 6% daripada harga masuk panjang, tutup kedudukan panjang.

Analisis Kelebihan

Strategi ini menggabungkan kekuatan kedua-dua RSI dan Bollinger Bands untuk perdagangan jangka pendek.

  1. RSI dapat menentukan senario overbought dan oversold dengan berkesan.
  2. Bollinger Bands dinamik untuk menyesuaikan julat secara automatik berdasarkan turun naik pasaran.
  3. Tetapan stop loss adalah munasabah dengan toleransi 6% untuk turun naik biasa sambil mengawal kerugian.

Analisis Risiko

Risiko berpotensi strategi ini termasuk:

  1. RSI mempunyai ciri-ciri yang tertinggal dan mungkin terlepas peluang pembalikan yang cepat.
  2. Parameter Bollinger Bands yang salah atau perubahan pasaran yang drastik boleh menyebabkan isyarat buruk.
  3. Parameter stop loss yang ditetapkan dengan tidak bijak boleh menyebabkan kerugian yang tidak perlu.

Penyelesaian:

  1. Pertimbangkan untuk menggabungkan dengan penunjuk lain seperti KDJ untuk penilaian komprehensif.
  2. Mengoptimumkan parameter secara dinamik untuk pasaran yang berbeza.
  3. Backtest dan mengoptimumkan parameter stop loss untuk tetapan yang terbaik.

Arahan pengoptimuman

Terdapat ruang untuk pengoptimuman lanjut:

  1. Mengubah stop loss tetap kepada stop loss dinamik mengikut turun naik harga.
  2. Tambah peraturan Indeks Lebar Band Bollinger untuk menghentikan perdagangan apabila Band meluas atau berkurangan terlalu banyak.
  3. Gabungkan penunjuk jumlah seperti Chaikin Aliran Wang untuk pengesahan yang lebih baik.

Ringkasan

Ringkasnya, ini adalah strategi perdagangan jangka pendek yang agak stabil dan boleh dipercayai. Dengan menggabungkan kekuatan pertimbangan overbought-oversold RSI dan julat adaptif Bollinger Bands, ia membentuk sistem jangka pendek yang menguntungkan. Dengan penyesuaian parameter dan penyempurnaan logik, strategi ini dapat mencapai keuntungan yang konsisten.


/*backtest
start: 2022-12-12 00:00:00
end: 2023-10-13 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("rsi+bb st", shorttitle="rsibb st 0.3")

len_rsi=input(14)
len_bb = input(25)
mul10 = input(20.0)
mul=mul10/10
sl100 = input(94.0, title='stop loss rate')
sl=sl100/100

lw = 3

vwma_e(src, len) =>
    ema(src*volume, len)/ema(volume,len)

rsi = rsi(close, len_rsi)
plot(rsi, color=blue, title= 'rsi blue', linewidth=lw)
plot(70, color=gray, title='line 70', linewidth=lw)
plot(30, color=gray, title='line 30', linewidth=lw)

bbg = stdev(rsi, len_bb)*mul
bbc = vwma_e(rsi, len_bb)
//bbc=ema(rsi,len_bb)
ratio = 0.6
bbc := bbc*ratio + 50*(1-ratio)

bbu = bbc+bbg
bbl = bbc-bbg
plot(bbu, color=green, title='bb_up green', linewidth=lw)
plot(bbl, color=red, title='bb_low red', linewidth=lw)
plot(bbc, color=#808000ff, title='bb center', linewidth=lw)

plot(50, color=black)

lc = crossover(rsi, bbl) //or crossover(rsi, bbc)
sc = crossunder(rsi, bbu)

last_pos = 0*close
if lc
    last_pos := 1
else
    last_pos := last_pos[1]
if sc
    last_pos := 2

last_price = 0*close
if last_pos[1] !=1 and last_pos == 1
    last_price := close
else
    last_price := last_price[1]
    
if last_pos==1 and close < last_price*sl
    lc:=false
    sc:=true
    last_pos:=2

if (lc)
    strategy.entry("long", strategy.long)

if (sc)
    strategy.entry("short", strategy.short)

Lebih lanjut