Strategi Tren Bollinger Bands + RSI + Multi-Moving Average

BB RSI MA SMA MACD
Tanggal Pembuatan: 2024-05-27 15:20:40 Akhirnya memodifikasi: 2024-05-27 15:20:40
menyalin: 2 Jumlah klik: 1189
1
fokus pada
1617
Pengikut

Strategi Tren Bollinger Bands + RSI + Multi-Moving Average

Ringkasan

Strategi ini menggabungkan Bollinger Bands, RSI, Multiple Moving Averages, dan MACD untuk membangun sistem perdagangan yang lengkap. Pertama, Bollinger Bands digunakan untuk menilai pergerakan harga dan menggunakan posisi harga relatif terhadap Bollinger Bands untuk menentukan tren.

Prinsip Strategi

  1. Dengan menggunakan 20 siklus, 2 kali standar band Brin yang buruk, dengan posisi harga penutupan relatif terhadap Brin band tengah orbit untuk menilai tren.
  2. Hitung RSI 14 siklus dan menilai oversold dan overbought dengan RSI yang bersinggungan dengan level 30 dan 70, untuk mengidentifikasi potensi reversal.
  3. Perhitungan rata-rata bergerak sederhana dari siklus 34, 89, 144, 233, 377 dan 610, untuk mengkonfirmasi tren melalui pengelompokan garis rata-rata, garis rata-rata juga dapat digunakan sebagai titik resistensi pendukung.
  4. Indikator MACD dihitung berdasarkan parameter 12, 26, 9 dan dipelintir oleh perpotongan pilar MACD dengan sumbu 0 untuk membantu menentukan pembalikan tren.
  5. Perhitungan indikator di atas, dan logika untuk membuka posisi kosong:
    • Buka posisi: buka posisi lebih ketika harga tutup berada di atas lintasan tengah Brin dan rata-rata jangka pendek berada di atas rata-rata jangka panjang.
    • Posisi sejajar: posisi sejajar setengah posisi ketika harga penutupan jatuh di bawah lintasan tengah Brin, posisi sejajar penuh posisi ketika garis rata-rata jangka pendek jatuh di bawah garis rata-rata jangka panjang.

Keunggulan Strategis

  1. Blinking dapat secara obyektif mengukur pergerakan harga dan memberikan dasar untuk penilaian tren.
  2. Menggunakan indikator RSI dapat membantu menilai overbought dan oversold dan menangkap potensi peluang untuk membalikkan tren.
  3. Kombinasi dari beberapa garis rata memungkinkan analisis tren yang lebih komprehensif di berbagai skala waktu.
  4. Indikator MACD dapat digunakan sebagai penilaian tambahan untuk tren dan pembalikan, meningkatkan keandalan sinyal.
  5. Dalam logika pembukaan posisi terbuka, ide manajemen posisi ditambahkan, penurunan posisi secara bertahap untuk mengendalikan risiko ketika tren tidak pasti.

Risiko Strategis

  1. Dalam kondisi getaran, pita Brin dan sistem linier dapat menghasilkan sinyal yang sering dan bertentangan.
  2. Indeks RSI dan MACD dapat bertahan lama di zona overbought dan oversold dalam kondisi tren yang kuat.
  3. Pemilihan parameter (seperti periode Brin, periode rata-rata, dan lain-lain) bersifat subjektif, dan parameter yang berbeda dapat menghasilkan hasil yang berbeda.
  4. Kurangnya mekanisme stop loss dapat meningkatkan risiko transaksi tunggal.
  5. Untuk situasi ekstrim seperti Black Swan, mungkin tidak dapat ditangani dengan tepat waktu, sehingga menimbulkan kemunduran yang lebih besar.

Arah optimasi strategi

  1. Optimasi yang lebih sistematis terhadap parameter dari berbagai indikator, seperti siklus dan lebar pita Brin, siklus dan threshold dari RSI, dan sebagainya.
  2. Masukkan lebih banyak sinyal konfirmasi, seperti perubahan volume lalu lintas, untuk meningkatkan keandalan sinyal.
  3. Menggunakan mekanisme stop loss dan stop loss dalam kondisi pembukaan posisi terbuka untuk mengontrol risiko transaksi tunggal.
  4. Pertimbangkan untuk memperkenalkan mekanisme penyesuaian posisi, menyesuaikan posisi secara fleksibel dalam situasi pasar yang berbeda, meningkatkan rasio risiko-keuntungan.
  5. Desain untuk menanggapi ekspektasi yang ekstrim, seperti penjaminan berdasarkan indeks VIX atau dinamika faktor alpha.

Meringkaskan

Strategi ini membangun sistem perdagangan yang lebih baik dari berbagai dimensi, termasuk penilaian tren, penilaian overbought dan oversold, analisis skala waktu, kontrol posisi, dll. Namun, strategi ini masih harus dioptimalkan untuk menghadapi situasi yang bergolak, situasi ekstrem, dan kurangnya optimasi parameter dan kontrol risiko yang lebih sistematis.

Kode Sumber Strategi
/*backtest
start: 2023-05-21 00:00:00
end: 2024-05-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Bollinger Bands + RSI Strategy with MA", overlay=true)

// Bollinger Bands
length = input.int(20, title="BB Length")
mult = input.float(2.0, title="BB Mult")
basis = ta.sma(close, length)
dev = mult * ta.stdev(close, length)
upper_band = basis + dev
lower_band = basis - dev

// RSI
rsi_length = input.int(14, title="RSI Length")
rsi_oversold = input.int(30, title="RSI Oversold", minval=0, maxval=100)
rsi_overbought = input.int(70, title="RSI Overbought", minval=0, maxval=100)
rsi = ta.rsi(close, rsi_length)

// RSI Divergence
rsi_divergence_bottom = ta.crossunder(rsi, rsi_oversold)
rsi_divergence_peak = ta.crossunder(rsi_overbought, rsi)

// Moving Averages
ma34 = ta.sma(close, 34)
ma89 = ta.sma(close, 89)
ma144 = ta.sma(close, 144)
ma233 = ta.sma(close, 233)
ma377 = ta.sma(close, 377)
ma610 = ta.sma(close, 610)

// MACD Calculation
[macd_line, signal_line, _] = ta.macd(close, 12, 26, 9)
macd_histogram = macd_line - signal_line

// MACD Divergence
macd_divergence_bottom = ta.crossunder(macd_histogram, 0)
macd_divergence_peak = ta.crossover(macd_histogram, 0)

// Conditions for Buy and Sell
basis_gt_ma34 = basis > ma34
ma34_gt_ma89 = ma34 > ma89

// Entry condition
buy_condition = basis_gt_ma34 and ma34_gt_ma89 
sell_condition =  basis <ma34

// Calculate position size
position_size = 1.0  // 100% capital initially

// Update position size based on conditions
if (sell_condition)
    position_size := 0.5  // Sell half of the position
if (not basis_gt_ma34)
    position_size := 0.0  // Sell all if basis < ma34

// Entry and exit strategy
if (buy_condition)
    strategy.entry("Buy", strategy.long, qty=position_size)
if (sell_condition)
    strategy.close("Buy")

// Plot Bollinger Bands and Moving Averages
bb_fill_color = basis > basis[1] ? color.new(color.blue, 90) : color.new(color.blue, 10)
plot(basis, color=color.blue, title="Basis")
plot(upper_band, color=color.red, title="Upper Band")
plot(lower_band, color=color.green, title="Lower Band")
fill(plot1=plot(upper_band), plot2=plot(lower_band), color=bb_fill_color, title="BB Fill")
plot(ma34, color=color.orange, title="MA34")
plot(ma89, color=color.purple, title="MA89")
plot(ma144, color=color.gray, title="MA144")
plot(ma233, color=color.blue, title="MA233")
plot(ma377, color=color.red, title="MA377")
plot(ma610, color=color.green, title="MA610")

// Plot RSI Divergence
plotshape(series=rsi_divergence_bottom, style=shape.triangleup, location=location.abovebar, color=color.green, size=size.small)
plotshape(series=rsi_divergence_peak, style=shape.triangledown, location=location.belowbar, color=color.red, size=size.small)

// Plot MACD Histogram Divergence
plotshape(series=macd_divergence_bottom, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(series=macd_divergence_peak, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)