Strategi mengikuti tren berdasarkan Bollinger Bands dan RSI


Tanggal Pembuatan: 2023-12-20 14:32:40 Akhirnya memodifikasi: 2023-12-20 14:32:40
menyalin: 0 Jumlah klik: 817
1
fokus pada
1621
Pengikut

Strategi mengikuti tren berdasarkan Bollinger Bands dan RSI

Ringkasan

Strategi ini menggabungkan penggunaan Bollinger Bands, RSI, dan 200 Periode Moving Average untuk mengidentifikasi arah tren, dan berdagang reversal di dekat Bollinger Bands dan downtrend ketika arah tren cocok, sehingga menghasilkan keuntungan.

Prinsip Strategi

Pertama, menggunakan rata-rata bergerak 200 periode untuk menentukan arah tren secara kasar, harga didefinisikan sebagai tren multihead saat naik, dan harga didefinisikan sebagai tren overhead saat turun. Kedua, ketika berada dalam tren multihead, melakukan operasi beli jika indikator RSI menunjukkan oversold dan mendekati Bollinger Bands down; ketika berada dalam tren overhead, melakukan operasi jual jika indikator RSI menunjukkan buy dan mendekati Bollinger Bands up.

Analisis Keunggulan

Keuntungan terbesar dari strategi ini adalah penggunaan komposit dari beberapa indikator untuk menentukan arah tren dan waktu perdagangan. Pertama, 200-hari moving average dapat secara efektif menentukan arah tren besar. Kedua, Brinch up and down dapat menunjukkan area di mana harga mungkin berbalik.

Analisis risiko

Risiko utama dari strategi ini adalah kesalahan penilaian tren besar dan kesalahan sinyal pembalikan. Jika penilaian tren besar salah, kemungkinan besar akan menyebabkan kerugian yang terus berlanjut; Jika sinyal pembalikan salah, kemungkinan stop loss akan lebih besar. Selain itu, htrading pembalikan sendiri memiliki risiko yang lebih tinggi dan perlu diperhatikan.

Untuk menghindari risiko di atas, disarankan untuk menyesuaikan parameter moving average, atau menambahkan indikator lain untuk konfirmasi, sehingga meningkatkan akurasi penilaian. Selain itu, disarankan untuk meredakan stop loss dengan tepat, untuk menghindari stop loss yang terlalu mudah dipicu.

Arah optimasi

Strategi ini memiliki ruang yang luas untuk pengoptimalan, yang dapat dimulai dari beberapa aspek sebagai berikut: pertama, menyesuaikan parameter moving average, mengoptimalkan akurasi penilaian tren besar. Kedua, menyesuaikan parameter Brin band atau menambahkan saluran Kalman untuk meningkatkan efektivitas penilaian area reversal harga. Ketiga, menambahkan indikator lain seperti MACD untuk konfirmasi reversal, mengurangi sinyal yang salah.

Meringkaskan

Strategi ini terintegrasi dengan penggunaan Brinband, RSI dan Moving Average untuk menentukan tren dan waktu perdagangan. Namun, perlu lebih mengoptimalkan pengaturan parameter dan manajemen risiko untuk meningkatkan profitabilitas yang stabil. Secara keseluruhan, strategi ini jelas dan mudah diterapkan, layak untuk penelitian dan aplikasi lebih lanjut.

Kode Sumber Strategi
/*backtest
start: 2023-11-19 00:00:00
end: 2023-12-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Gab EMA + rsi + bb", overlay=true)
// Custom RSI
RSIlength = input(3, minval=1 , title="lookback length of RSI")
RSIOverBought = input(70, title="RSI OB")
RSIOverSold = input(30, title="RSI OS")
RSIprice = close
vrsi = rsi(RSIprice, RSIlength)


//Bollinger Bands
BBlength = input(20, minval=1,title="Bollinger Period Length")
BBmult = input(2.0, minval=0.001, maxval=50, title="Bollinger Bands Standard Deviation")
BBbasis = sma(close, BBlength)
BBdev = BBmult * stdev(close, BBlength)
BBupper = BBbasis + BBdev
BBlower = BBbasis - BBdev
source = close

//EMA
emaLength=input(200)

//Set TP and SL values
sl_short = high + (syminfo.mintick * 5 * 10)
tp_short = low - (syminfo.mintick * 10 * 10)
sl_long = low - (syminfo.mintick * 5 * 10)
tp_long = high + (syminfo.mintick * 10 * 10)


//Strategy Entry and Exit
strategy.entry("sell", strategy.short, when = low < ema(low, emaLength) and vrsi < RSIOverSold and low < BBlower and barstate.isconfirmed)
strategy.exit("closeshort", from_entry="sell", limit=tp_short, stop=sl_short, when=strategy.position_size != 0)

strategy.entry("buy", strategy.long, when = high > ema(high, emaLength) and vrsi > RSIOverBought and high > BBupper and barstate.isconfirmed)
strategy.exit("closelong", from_entry="buy", limit=tp_long, stop=sl_long, when=strategy.position_size != 0)