Momentum Bollinger Bands Breakout Strategi

Penulis:ChaoZhang, Tanggal: 2024-01-04 15:52:31
Tag:

img

Gambaran umum

Momentum Bollinger Bands Breakout Strategy adalah strategi perdagangan kuantitatif yang menggabungkan indikator Bollinger Bands dan indikator Moving Average untuk melakukan operasi breakout di bawah kondisi momentum tertentu. Strategi ini terutama menggunakan rel atas dan bawah Bollinger Bands untuk menentukan harga dan menambahkan penyaringan harga tambahan dengan moving average, mengeluarkan sinyal beli dan jual di bawah kondisi momentum tertentu untuk melakukan operasi breakout di rel atas dan bawah Bollinger Bands.

Prinsip Strategi

Strategi ini terutama didasarkan pada indikator Bollinger Bands dan indikator rata-rata bergerak MA. Bollinger Bands dan rata-rata bergerak termasuk indikator yang mengikuti tren. Bollinger Bands menggunakan konsep standar deviasi untuk menggambarkan rentang fluktuasi harga yang tinggi dan rendah. Rata-rata bergerak meratakan data harga dan menilai arah tren harga.

Logika inti dari strategi ini adalah:

  1. Inisialisasi Bollinger Bands parameter dan menghitung rel tengah, rel atas dan rel bawah.

  2. Inisialisasi parameter rata-rata bergerak.

  3. Sinyal beli: ketika harga menembus rel bawah Bollinger Bands dari bawah ke atas dan rata-rata bergerak berada di bawah rel bawah, pergi panjang.

  4. Sinyal jual: ketika harga menembus rel atas Bollinger Bands dari atas ke bawah dan rata-rata bergerak berada di atas rel atas, pergi pendek.

  5. Sinyal keluar: ketika harga kembali memasuki kisaran Bollinger Bands, tutup posisi.

Strategi ini menggabungkan penggunaan Bollinger Bands dan indikator rata-rata bergerak untuk menghasilkan sinyal perdagangan di bawah kondisi momentum tertentu, yang merupakan strategi trend berikut yang khas.

Keuntungan

  1. Menggunakan Bollinger Bands untuk menilai rentang fluktuasi harga dengan jelas dan rata-rata bergerak untuk menentukan arah tren harga, sinyal perdagangan yang terbentuk oleh kombinasi penyaringan indikator ganda memiliki keandalan yang relatif tinggi.

  2. Selain harga menembus batas Bollinger Bands, juga membutuhkan rata-rata bergerak untuk menembus, yang memastikan dukungan momentum yang cukup untuk menghindari pecah palsu.

  3. Parameter strategi ditetapkan secara wajar dan fleksibel, yang dapat menyesuaikan parameter Bollinger Bands dan siklus rata-rata bergerak untuk beradaptasi dengan berbagai varietas dan kondisi pasar.

  4. Ide strategi jelas dan mudah dipahami, mudah diterapkan dan diverifikasi.

Risiko

  1. Indikator volatilitas Bollinger Bands sendiri memiliki potensi keterlambatan dalam tren yang berubah dengan cepat, yang dapat menghasilkan sinyal perdagangan yang tidak valid.

  2. Ketika digunakan sebagai indikator penyaringan, pengaturan parameternya secara langsung mempengaruhi frekuensi strategi.

  3. Mengandalkan indikator Bollinger Bands dan indikator moving average untuk membentuk sinyal yang efektif, begitu salah satunya gagal, seluruh strategi akan terpengaruh.

  4. Strategi breakout lebih agresif, ketika harga mundur untuk menguji batas Bollinger Bands, mereka cenderung terjebak.

Arahan Optimasi

  1. Mengoptimalkan parameter Bollinger Bands untuk beradaptasi dengan varietas dengan siklus dan volatilitas yang berbeda, seperti memodifikasi parameter perkalian periode dan standar deviasi Bollinger Bands.

  2. Mengoptimalkan parameter siklus rata-rata bergerak untuk menyeimbangkan frekuensi dan efek penyaringan.

  3. Meningkatkan strategi stop loss untuk mengendalikan kerugian maksimum per perdagangan.

  4. Gabungkan dengan indikator lain seperti RSI dan MACD untuk membentuk indikator komposit dan memperkaya sinyal perdagangan untuk strategi.

  5. Menggabungkan model pembelajaran mesin untuk membantu menilai arah tren harga dan tingkat keberhasilan.

Kesimpulan

Strategi ini mengintegrasikan indikator Bollinger Bands dengan indikator rata-rata bergerak untuk menghasilkan sinyal masuk dan keluar setelah memastikan momentum price breakout tertentu. Ide strategi jelas dan mudah dilaksanakan, dan dapat secara efektif melacak tren pasar.


/*backtest
start: 2022-12-28 00:00:00
end: 2024-01-03 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//
strategy("Advanced Bollinger Bands Strategy", overlay=true) 
//BB Values 
wall1= input(defval=true,title="===BB Values===",type=input.bool)
source = input(defval=close,title="BB Source",type=input.source)
length = input(20,title="BB Length", minval=1)
mult = input(2.0,title="BB Multiplier",minval=0.001, maxval=50)
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev 
offset = input(0, " BB Offset", type = input.integer, minval = -500, maxval = 500)
plot(basis, "Basis", color=#872323, offset = offset)
p1 = plot(upper, "Upper", color=color.teal, offset = offset)
p2 = plot(lower, "Lower", color=color.teal, offset = offset)
fill(p1, p2, title = "Background", color=#198787, transp=95)
//Moving Average Values 
wall2= input(defval=true,title="===MA Values===",type=input.bool)
nfl= input(defval=14,title="Moving Average Period",type=input.integer,minval=1,maxval=100) 
source1= input(defval=close,title="Moving Average Source",type=input.source)
noisefilter= sma(source1,nfl)
plot(noisefilter,style=plot.style_line,linewidth=2,color=color.yellow,title=" Moving Average Filter")
bgcolor(noisefilter<lower?color.green:noisefilter>upper?color.red:na,title="Moving Average Filter")
//Strategy Conditions
wall3= input(defval=true,title="===Strategy Conditions===",type=input.bool)
bl= input(defval=false,title="Exit at Basis Line?",type=input.bool)
nflb= input(defval=false,title="Use Moving Average Filter?",type=input.bool)

//Strategy Condition
buyEntry = crossover(source, lower)
sellEntry = crossunder(source, upper) 

if (nflb?(crossover(source,lower) and noisefilter<lower): crossover(source, lower))
	strategy.entry("BBandLE", strategy.long, oca_name="BollingerBands",  comment="BBandLE")
    
else
	strategy.cancel(id="BBandLE")
if (nflb?(crossunder(source,lower) and noisefilter>upper): crossunder(source, lower))
	strategy.entry("BBandSE", strategy.short, oca_name="BollingerBands",  comment="BBandSE") 
else
	strategy.cancel(id="BBandSE")  
	
strategy.close_all(when=bl?crossover(source,basis) or crossunder(source,basis):crossover(source,upper) or crossunder(source,lower))


Lebih banyak