Strategi perdagangan swing bullish berdasarkan Bollinger Bands dan RSI

Penulis:ChaoZhang, Tanggal: 2024-03-11 11:51:22
Tag:

img

Gambaran umum

Strategi ini menggunakan dua indikator teknis, Bollinger Bands dan Relative Strength Index (RSI), untuk perdagangan swing bullish dalam tren naik.

Prinsip Strategi

  1. Menghitung RSI: Gunakan Relative Moving Average (RMA) untuk menghitung magnitudo rata-rata kenaikan dan penurunan harga secara terpisah, kemudian bagi magnitudo kenaikan dengan magnitudo total untuk mendapatkan RSI. RSI mencerminkan kekuatan pergerakan harga selama periode waktu.

  2. Menghitung Bollinger Bands: Gunakan Simple Moving Average (SMA) untuk menghitung garis tengah harga, kemudian tambahkan dan kurangi penyimpangan standar untuk mendapatkan band atas dan bawah.

  3. Buka long: Ketika harga pecah di bawah Bollinger Band bawah dan RSI kurang dari 35, itu dianggap oversold, dan posisi panjang dibuka.

  4. Close long: Ketika RSI melintasi di atas 69, dianggap overbought, dan posisi panjang ditutup untuk mengunci keuntungan.

  5. Take profit dan stop loss: Setelah membuka posisi, harga take profit dan stop loss dihitung berdasarkan persentase yang ditentukan pengguna. Posisi ditutup ketika harga take profit atau stop loss tercapai. Ini membantu mengendalikan risiko dan pengembalian setiap perdagangan.

Analisis Keuntungan

  1. Bollinger Bands dapat secara obyektif mencerminkan rentang pergerakan harga dan menyesuaikan secara sinkron dengan tren harga tanpa dibatasi oleh ambang batas tetap.

  2. RSI dapat secara intuitif mencerminkan keseimbangan antara kekuatan bullish dan bearish dan juga relatif obyektif.

  3. Dengan menangkap harga rebound dengan Bollinger Band yang lebih rendah dan RSI rendah, dan posisi penutupan tepat waktu dengan RSI tinggi, ini dapat secara efektif menangkap pergerakan pasar jangka pendek.

  4. Pengaturan take profit dan stop loss membuat strategi ini dapat mengendalikan risiko.

  5. Logika dan kode strategi relatif sederhana, mudah dipahami dan diimplementasikan, dan hasil backtest relatif stabil.

Analisis Risiko

  1. Dalam pasar yang bergolak, Bollinger Bands dan RSI dapat menghasilkan terlalu banyak sinyal perdagangan, yang menyebabkan frekuensi perdagangan yang tinggi dan peningkatan biaya transaksi.

  2. Sebuah indikator tunggal seperti RSI mudah terpengaruh oleh fluktuasi harga jangka pendek dan dapat menghasilkan sinyal yang menyesatkan.

  3. Pemilihan Bollinger Band dan RSI memiliki dampak yang signifikan pada kinerja strategi, dan pasar dan instrumen yang berbeda mungkin memerlukan parameter yang berbeda.

  4. Jika terjadi kejadian tak terduga atau kondisi pasar yang tidak normal, Bollinger Bands dan RSI mungkin menjadi tidak efektif.

Arahan Optimasi

  1. Pertimbangkan untuk memperkenalkan indikator teknis lainnya seperti moving average untuk penyaringan. misalnya, hanya membuka posisi ketika moving average berada dalam keselarasan bullish untuk meningkatkan keandalan sinyal.

  2. Mengoptimalkan ambang batas atas dan bawah RSI, parameter Bollinger Bands, dll, untuk menemukan kombinasi parameter kinerja terbaik untuk setiap instrumen dan kerangka waktu.

  3. Berdasarkan backtesting, melakukan pengujian ke depan dan perdagangan simulasi yang tepat untuk sepenuhnya memvalidasi efektivitas dan stabilitas strategi sebelum perdagangan langsung.

  4. Strategi pengendalian lebih lanjut penarikan dan meningkatkan pengembalian yang disesuaikan dengan risiko melalui ukuran posisi, mengambil keuntungan dinamis dan menghentikan kerugian, dan metode lainnya.

  5. Mengintegrasikan strategi ke dalam portofolio investasi dan menggunakannya bersama dengan strategi lain untuk lindung nilai, daripada menggunakannya secara terpisah, untuk meningkatkan stabilitas portofolio.

Ringkasan

Artikel ini memperkenalkan strategi perdagangan swing bullish berdasarkan dua indikator teknis, Bollinger Bands dan RSI. Strategi ini cocok untuk menangkap pergerakan pasar jangka pendek dalam tren naik, dan logika dan implementasinya relatif sederhana. Strategi ini membuka posisi panjang ketika harga pecah di bawah Bollinger Band dan RSI yang lebih rendah, menutup posisi ketika RSI tinggi, dan menetapkan tingkat profit dan stop loss. Keuntungan dari strategi ini adalah bahwa strategi ini dapat mencerminkan secara obyektif rentang fluktuasi harga dan keseimbangan kekuatan bullish dan bearish, dan risikonya relatif dapat dikendalikan. Namun, ketika menggunakannya secara praktis, seseorang perlu memperhatikan pengendalian frekuensi perdagangan, menggabungkan lebih banyak indikator untuk menyaring parameter portofolio, mengoptimalkan indikator, dan mengelola posisi. Selain itu, strategi ini dapat digunakan dalam kondisi pasar yang tidak normal dan sinyal risiko lainnya. Dengan memperkenalkan indikator lain untuk menyaring, menyaring dan meningkatkan stabilitas tren, strategi ini dapat digunakan secara hati-hati, tetapi sesuai dengan karakteristik lain, investor dapat menggunakan strategi untuk meningkatkan keuntungan dan stabilitas investasi, tetapi strategi ini juga dapat digunakan sebagai alat pengendalian risiko lainnya.


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

//@version=4
strategy(title="Bollinger Band with RSI", shorttitle="BB&RSI")
len = input(14, minval=1, title="Length")
src = input(close, "Source", type = input.source)
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
plot(rsi, "RSI", color=#8E1599)
band1 = hline(69, "Upper Band", color=#C0C0C0)
band0 = hline(31, "Lower Band", color=#C0C0C0)
fill(band1, band0, color=#9915FF, transp=90, title="Background")

length_bb = input(20,title="BB Length", minval=1)
mult = input(2.0, minval=0.001, maxval=50, title="BB StdDev")
basis = sma(src, length_bb)
dev = mult * stdev(src, length_bb)
upper = basis + dev
lower = basis - dev
offset = input(0, "BB Offset", type = input.integer, minval = -500, maxval = 500)


Plot_PnL = input(title="Plot Cummulative PnL", type=input.bool, defval=false)
Plot_Pos = input(title="Plot Current Position Size", type=input.bool, defval=false)

long_tp_inp = input(10, title='Long Take Profit %', step=0.1)/100
long_sl_inp = input(25, title='Long Stop Loss %', step=0.1)/100
// Take profit/stop loss
long_take_level = strategy.position_avg_price * (1 + long_tp_inp)
long_stop_level = strategy.position_avg_price * (1 - long_sl_inp)

entry_long = rsi < 35.58 and src < lower
exit_long = rsi > 69
 
plotshape(entry_long, style=shape.labelup, color=color.green,  location=location.bottom, text="L", textcolor=color.white, title="LONG_ORDER")
plotshape(exit_long, style=shape.labeldown, color=color.red,  location=location.top, text="S", textcolor=color.white, title="SHORT_ORDER")

strategy.entry("Long",true,when=entry_long)    
strategy.exit("TP/SL","Long", limit=long_take_level, stop=long_stop_level)
strategy.close("Long", when=exit_long, comment="Exit")
plot(Plot_PnL ? strategy.equity-strategy.initial_capital : na, title="PnL", color=color.red)
plot(Plot_Pos ? strategy.position_size : na, title="open_position", color=color.fuchsia)


Lebih banyak