Sumber daya yang dimuat... Pemuatan...

Bollinger Bands + RSI + Strategi Tren Multi-MA

Penulis:ChaoZhang, Tanggal: 2024-05-27 15:20:40
Tag:BBRSIMASMAMACD

img

Gambaran umum

Strategi ini menggabungkan Bollinger Bands, RSI, beberapa moving average, dan indikator MACD untuk membangun sistem perdagangan yang lengkap. Pertama, ini menggunakan Bollinger Bands untuk menentukan volatilitas harga dan posisi harga relatif terhadap band tengah untuk mengidentifikasi tren. Pada saat yang sama, ini menggunakan indikator RSI untuk menilai kondisi overbought dan oversold dan mendeteksi potensi pembalikan tren menggunakan divergensi RSI. Beberapa rata-rata bergerak digunakan untuk melacak tren dan menentukan tingkat support dan resistance. Akhirnya, indikator MACD juga digunakan untuk membantu menilai tren dan potensi pembalikan. Dengan mempertimbangkan indikator-indikator ini secara komprehensif, strategi merumuskan kondisi masuk dan keluar lengkap untuk membangun strategi trading.

Prinsip Strategi

  1. Gunakan Bollinger Band 20 periode dengan 2 standar deviasi untuk menentukan tren berdasarkan posisi harga penutupan relatif terhadap band tengah.
  2. Menghitung RSI 14 periode dan menggunakan crossover RSI dengan tingkat 30 dan 70 untuk mengidentifikasi kondisi oversold dan overbought, mengenali potensi pembalikan.
  3. Hitung rata-rata bergerak sederhana dengan periode 34, 89, 144, 233, 377, dan 610. Konfirmasi tren melalui pengaturan bullish dari rata-rata bergerak, yang juga dapat berfungsi sebagai level support dan resistance.
  4. Menghitung indikator MACD berdasarkan parameter 12, 26, 9 dan menggunakan persilangan histogram MACD dengan sumbu nol untuk membantu menilai pembalikan tren.
  5. Mengevaluasi secara komprehensif indikator di atas untuk merumuskan masuk dan keluar logika:
    • Entry: Buka posisi panjang ketika harga penutupan berada di atas Bollinger Band tengah dan rata-rata bergerak jangka pendek berada di atas rata-rata bergerak jangka panjang.
    • Keluar: Tutup setengah posisi ketika harga penutupan jatuh di bawah Bollinger Band tengah, dan tutup semua posisi ketika rata-rata bergerak jangka pendek jatuh di bawah rata-rata bergerak jangka panjang.

Keuntungan Strategi

  1. Bollinger Bands dapat secara obyektif mengukur volatilitas harga, memberikan dasar untuk penentuan tren.
  2. Memperkenalkan indikator RSI membantu mengidentifikasi kondisi overbought dan oversold dan menangkap potensi peluang pembalikan tren.
  3. Kombinasi dari beberapa rata-rata bergerak memungkinkan analisis yang lebih komprehensif dari kondisi tren di berbagai skala waktu.
  4. Indikator MACD dapat berfungsi sebagai penilaian tambahan untuk tren dan pembalikan, meningkatkan keandalan sinyal.
  5. Logika masuk dan keluar menggabungkan gagasan manajemen posisi, secara bertahap mengurangi posisi untuk mengendalikan risiko ketika tren tidak pasti.

Risiko Strategi

  1. Dalam pasar yang bergolak, Bollinger Bands dan sistem rata-rata bergerak dapat menghasilkan sinyal yang sering dan kontradiktif.
  2. Indikator RSI dan MACD dapat tetap berada di zona overbought atau oversold untuk jangka waktu yang lama selama tren pasar yang kuat, kehilangan kekuatan prediktif mereka.
  3. Pemilihan parameter (seperti periode Bollinger Band, periode rata-rata bergerak, dll.) memiliki subjektivitas tertentu, dan parameter yang berbeda dapat menyebabkan hasil yang berbeda.
  4. Kurangnya mekanisme stop-loss dapat memperkuat risiko perdagangan individu.
  5. Strategi ini mungkin tidak dapat merespon dengan cepat terhadap peristiwa ekstrem seperti angsa hitam, yang mengakibatkan penarikan yang signifikan.

Arah Optimasi Strategi

  1. Melakukan optimasi yang lebih sistematis dari parameter untuk setiap indikator, seperti periode dan lebar Bollinger Band, periode dan ambang RSI, dll.
  2. Memperkenalkan lebih banyak sinyal konfirmasi, seperti perubahan volume perdagangan, untuk meningkatkan keandalan sinyal.
  3. Memasukkan mekanisme stop-loss dan take-profit ke dalam kondisi masuk dan keluar untuk lebih mengendalikan risiko perdagangan individu.
  4. Pertimbangkan untuk memperkenalkan mekanisme penyesuaian posisi untuk menyesuaikan posisi secara fleksibel dalam kondisi pasar yang berbeda dan meningkatkan rasio risiko-manfaat.
  5. Merancang rencana darurat untuk kejadian ekstrem, seperti lindung nilai berdasarkan indeks VIX atau faktor Alpha yang ditimbang secara dinamis.

Ringkasan

Strategi ini membangun sistem perdagangan yang relatif komprehensif dari beberapa dimensi, termasuk identifikasi tren, penilaian overbought dan oversold, analisis skala multi-waktu, dan kontrol posisi. Namun, strategi ini membutuhkan optimasi lebih lanjut dalam menangani pasar yang bergolak dan peristiwa ekstrim, dan tidak memiliki optimasi parameter yang lebih sistematis dan kontrol risiko. Di masa depan, strategi dapat terus meningkat dalam hal penyaringan sinyal yang lebih halus, penyesuaian bobot dinamis, dan respons terhadap peristiwa ekstrim. Melalui optimasi backtesting berkelanjutan dan verifikasi perdagangan langsung, strategi ini memiliki potensi untuk berkembang menjadi strategi perdagangan kuantitatif yang kuat dan berkelanjutan.


/*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)


Berkaitan

Lebih banyak