Strategi Perdagangan Bollinger Bands Multi-Indikator

Penulis:ChaoZhang, Tanggal: 2023-11-15 15:30:43
Tag:

img

Gambaran umum

Strategi ini menggabungkan beberapa indikator teknis seperti Bollinger Bands, RSI dan MACD untuk membuat keputusan perdagangan. Pertama-tama Bollinger Bands di grafik dan menggunakan band breakout untuk sinyal masuk. RSI dan MACD kemudian digunakan sebagai filter tambahan untuk entri. Strategi ini juga menetapkan aturan stop loss berdasarkan band dan indikator untuk mengendalikan risiko. Secara keseluruhan, ini adalah strategi komprehensif yang memanfaatkan kekuatan beberapa indikator.

Logika Strategi

  1. Gambar 34 periode Bollinger Bands dengan garis pusat, 1 std dev dan 2 std dev bands.

  2. Masuk panjang ketika dekat putus di atas band atas, masuk pendek ketika dekat putus di bawah band bawah.

  3. Tutup posisi panjang ketika dekat melintasi di bawah garis tengah, tutup posisi pendek ketika dekat melintasi di atas garis tengah.

  4. Gunakan RSI>70 sebagai konfirmasi tambahan untuk panjang, RSI<30 sebagai konfirmasi untuk pendek.

  5. Tutup posisi pendek ketika RSI melintasi di atas 50, tutup posisi panjang ketika RSI melintasi di bawah 50.

  6. Menggunakan MACD crossover sebagai filter tambahan untuk entri, MACD crossover untuk panjang, MACD crossunder untuk pendek.

  7. Tutup posisi panjang pada MACD crossover, tutup posisi pendek pada MACD crossunder.

  8. Memerlukan semua 3 indikator untuk sejajar sebelum memasuki perdagangan, beberapa filter mengurangi sinyal palsu.

Keuntungan

Menggabungkan sinyal dari beberapa indikator mengurangi sinyal palsu dan meningkatkan profitabilitas. Bollinger Bands memberikan sinyal price breakout, RSI menghindari area overbought/oversold, MACD menangkap perubahan tren.

Aturan stop loss yang ketat berdasarkan band dan indikator membatasi kerugian pada setiap perdagangan. Ini menghasilkan profitabilitas yang lebih tinggi, tingkat kemenangan dan penarikan maksimum yang lebih rendah.

Dibandingkan dengan strategi indikator tunggal, menggabungkan indikator meningkatkan kinerja. Beberapa filter menghilangkan sinyal buruk. Mekanisme stop loss mengontrol dampak kerugian.

Secara keseluruhan strategi ini unggul di pasar tren, menangkap gerakan besar sambil menghindari whipsaws menggunakan rincian indikator.

Risiko

Risiko utama adalah:

  1. Kemungkinan sinyal palsu dari indikator. Optimasi parameter dapat mengurangi tetapi tidak menghilangkan sinyal palsu.

  2. Ketidakmampuan untuk mendapatkan keuntungan dari pasar yang terikat kisaran. Stop loss dapat memicu yang mengakibatkan kerugian selama konsolidasi. Aturan stop loss dapat dilepaskan untuk menahan perdagangan lebih lama.

  3. Indikator yang tertinggal menyebabkan kesempatan masuk yang hilang. Indikator yang lebih maju dapat membantu menangkap belokan lebih awal.

  4. Menggunakan trailing stop atau averaging down dapat mengendalikan kerugian dengan lebih baik.

  5. Parameter tetap mungkin memerlukan penyesuaian untuk pasar yang berbeda. pembelajaran mesin dapat memungkinkan optimasi parameter otomatis.

  6. Strategi perlu diuji pada set data yang lebih besar di seluruh pasar untuk memastikan ketahanan.

Peluang Peningkatan

Strategi ini dapat ditingkatkan dengan beberapa cara:

  1. Mengoptimalkan parameter indikator untuk menemukan kombinasi terbaik yang meminimalkan sinyal palsu.

  2. Menggabungkan stop loss adaptif alih-alih stop band tengah tetap. Stop dapat beradaptasi dengan ATR, tren dll.

  3. Menggunakan pembelajaran mesin untuk optimasi parameter adaptif dalam kondisi yang berubah, misalnya pembelajaran penguatan.

  4. Tambahkan aturan deteksi tren untuk menggunakan taktik yang berbeda untuk fase pasar yang berbeda.

  5. Sertakan sentimen, data media sosial untuk prediksi multi-faktor yang ditingkatkan dan indikator utama.

  6. Menggunakan penggabungan untuk skala ukuran posisi berdasarkan pertumbuhan ukuran akun untuk pertumbuhan eksponensial.

  7. Mengoptimalkan kombinasi dengan strategi yang tidak berkorelasi untuk mengurangi volatilitas portofolio melalui diversifikasi.

Kesimpulan

Strategi ini menggabungkan beberapa indikator untuk sinyal masuk dan keluar yang kuat dan menegakkan disiplin stop loss yang ketat. Menggunakan beberapa indikator mengurangi sinyal palsu sementara berhenti mengendalikan ukuran kerugian. Ini bekerja dengan baik untuk pasar tren yang memberikan pengembalian yang stabil. Parameter penyesuaian halus dan meningkatkan kemampuan beradaptasi dapat meningkatkan kinerja. Secara keseluruhan ini adalah sistem perdagangan yang andal, stabil dan efisien.


/*backtest
start: 2023-10-15 00:00:00
end: 2023-11-14 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
// Bollinger Bands: Madrid : 14/SEP/2014 11:07 : 2.0
// This displays the traditional Bollinger Bands, the difference is 
// that the 1st and 2nd StdDev are outlined with two colors and two
// different levels, one for each Standard Deviation

strategy(shorttitle='MBB', title='Bollinger Bands', overlay=true, currency=currency.NONE, initial_capital = 1000, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, commission_value = 0.05)
src = input(close)
length = input.int(34, minval=1)
mult = input.float(2.0, minval=0.001, maxval=50)

basis = ta.sma(src, length)
dev = ta.stdev(src, length)
dev2 = mult * dev

upper1 = basis + dev
lower1 = basis - dev
upper2 = basis + dev2
lower2 = basis - dev2

colorBasis = src >= basis ? color.blue : color.orange

pBasis = plot(basis, linewidth=2, color=colorBasis)
pUpper1 = plot(upper1, color=color.new(color.blue, 0), style=plot.style_circles)
pUpper2 = plot(upper2, color=color.new(color.blue, 0))
pLower1 = plot(lower1, color=color.new(color.orange, 0), style=plot.style_circles)
pLower2 = plot(lower2, color=color.new(color.orange, 0))

fill(pBasis, pUpper2, color=color.new(color.blue, 80))
fill(pUpper1, pUpper2, color=color.new(color.blue, 80))
fill(pBasis, pLower2, color=color.new(color.orange, 80))
fill(pLower1, pLower2, color=color.new(color.orange, 80))


//Strategy code starts here

long_entry = ta.crossover(src, upper1)
short_entry = ta.crossunder(src, lower1)

strategy.entry("Long", strategy.long, when=long_entry)
strategy.entry("Short", strategy.short, when=short_entry)

if long_entry or close < basis
    strategy.close("Long", "Long") 

if short_entry or close > basis
    strategy.close("Short", "Short") 


//Calculate RSI
rsiLength = input(14)
rsiValue = ta.rsi(src, rsiLength)

// Define RSI conditions for entering and exiting trades
rsiLong = rsiValue > 70
rsiShort = rsiValue < 30


//Enter long position when RSI crosses above 50 and Bollinger Bands long entry condition is met
strategy.entry("Long", strategy.long, when=long_entry and rsiLong)

//Exit long position when RSI crosses below 50 or Bollinger Bands exit condition is met
strategy.close("Long Exit", when=rsiShort or close < basis)

//Enter short position when RSI crosses below 50 and Bollinger Bands short entry condition is met
strategy.entry("Short", strategy.short, when=short_entry and rsiShort)

//Exit short position when RSI crosses above 50 or Bollinger Bands exit condition is met
strategy.close("Short Exit", when=rsiLong or close > basis)



//Calculate MACD
fastLength = input(12)
slowLength = input(26)
macdLength = input(9)
macdValue = ta.macd(src, fastLength, slowLength, macdLength)

// Define MACD conditions for entering and exiting trades
macdLong = ta.crossover(src, macdLength)
macdShort = ta.crossunder(src, macdLength)

//Enter long position when MACD crosses above signal line and RSI and Bollinger Bands long entry condition is met
strategy.entry("Long", strategy.long, when=long_entry and rsiLong and macdLong)

//Exit long position when MACD crosses below signal line or RSI crosses below 50 or Bollinger Bands exit condition is met
strategy.close("Long Exit", when=macdShort or rsiShort or close < basis)

//Enter short position when MACD crosses below signal line and RSI crosses below 50 and Bollinger Bands short entry condition is met
strategy.entry("Short", strategy.short, when=short_entry and rsiShort and macdShort)

//Exit short position when MACD crosses above signal line or RSI crosses above 50 or Bollinger Bands exit condition is met
strategy.close("Short Exit", when=macdLong or rsiLong or close > basis)

Lebih banyak