Strategi Breakout Bollinger Bands Ganda

Penulis:ChaoZhang, Tanggal: 2023-12-25 13:20:31
Tag:

img

Gambaran umum

Strategi Double Bollinger Bands Breakout adalah strategi trend following. Strategi ini menggunakan band atas dan bawah Bollinger Bands untuk menilai tren harga dan menetapkan posisi long ketika harga menembus Bollinger Bands bagian dalam dan menutup posisi ketika harga turun di bawah Bollinger Bands bagian luar.

Logika Strategi

Strategi ini pertama-tama menghitung rata-rata bergerak dan standar deviasi selama periode tertentu. kemudian membangun Bollinger Band ganda menggunakan rata-rata bergerak ± satu standar deviasi untuk band dalam dan rata-rata bergerak ± 1,5 standar deviasi untuk band luar.

Ketika harga menembus band bagian dalam atas, itu menunjukkan bahwa pasar mulai bull run jadi pergi panjang. Ketika harga turun di bawah band bagian dalam bawah, itu menunjukkan awal pasar bear jadi pergi pendek.

Keuntungan mengambil keluar untuk posisi panjang adalah ketika harga turun di bawah band luar bawah. Keuntungan mengambil keluar untuk posisi pendek adalah ketika harga melanggar band luar atas.

Strategi ini juga menetapkan stop loss, take profit dan trailing stop loss exit.

Analisis Keuntungan

Strategi Double Bollinger Bands Breakout memiliki keuntungan berikut:

  1. Menggunakan Bollinger Band ganda untuk menilai pergerakan harga memungkinkan tren yang efektif mengikuti;
  2. Memasuki batas batas dalam band menghindari perdagangan reversi rata-rata yang tidak perlu;
  3. Mengambil keuntungan, stop loss dan trailing stop loss secara efektif mengendalikan risiko;
  4. Parameter yang dapat dioptimalkan memungkinkan penyesuaian untuk produk yang berbeda.

Analisis Risiko

Strategi Double Bollinger Bands Breakout juga memiliki beberapa risiko:

  1. Pendaftaran dan stop loss yang sering dapat terjadi selama pasar range;
  2. Pengaturan parameter yang tidak benar dapat menyebabkan masuk terlalu mudah atau keluar yang sulit;
  3. Kecelakaan kadang-kadang memberikan sinyal palsu yang mengakibatkan kegagalan.

Untuk mengatasi risiko ini, parameter dapat disesuaikan, filter tambahan ditambahkan, atau kebocoran dipantau secara manual untuk mengurangi risiko.

Arahan Optimasi

Strategi Double Bollinger Bands Breakout dapat dioptimalkan dengan beberapa cara:

  1. Mengoptimalkan parameter rata-rata bergerak dan standar deviasi agar sesuai dengan produk yang berbeda;
  2. Tambahkan volume, MACD atau filter lainnya untuk menghindari pecah palsu;
  3. Menggunakan metode pembelajaran mesin untuk mengoptimalkan parameter secara dinamis;
  4. Salin strategi melalui beberapa interval frekuensi tinggi untuk memperluas potensi keuntungan.

Kesimpulan

Strategi Double Bollinger Bands Breakout secara keseluruhan menilai perubahan harga relatif terhadap Bollinger Bands ke entri waktu dalam pendekatan trend berikut yang khas. Strategi menetapkan target keuntungan menggunakan band ganda dan mekanisme keluar ilmiah untuk mengendalikan risiko. Dengan parameter dan kontrol risiko yang dioptimalkan, dapat mencapai hasil yang baik.


/*backtest
start: 2023-12-17 00:00:00
end: 2023-12-24 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("BB Strat",default_qty_type = strategy.percent_of_equity, default_qty_value = 100,currency="USD",initial_capital=100, overlay=true)
l=input(title="length",defval=100)
pbin=input(type=float,step=.1,defval=.25)
pbout=input(type=float,step=.1,defval=1.5)
ma=sma(close,l)
sin=stdev(ma,l)*pbin
sout=stdev(ma,l)*pbout
inu=sin+ma
inb=-sin+ma
outu=sout+ma
outb=-sout+ma
plot(inu,color=lime)
plot(inb,color=lime)
plot(outu,color=red)
plot(outb,color=yellow)

inpTakeProfit = input(defval = 0, title = "Take Profit", minval = 0)
inpStopLoss = input(defval = 0, title = "Stop Loss", minval = 0)
inpTrailStop = input(defval = 0, title = "Trailing Stop Loss", minval = 0)
inpTrailOffset = input(defval = 0, title = "Trailing Stop Loss Offset", minval = 0)
useTakeProfit = inpTakeProfit >= 1 ? inpTakeProfit : na
useStopLoss = inpStopLoss >= 1 ? inpStopLoss : na
useTrailStop = inpTrailStop >= 1 ? inpTrailStop : na
useTrailOffset = inpTrailOffset >= 1 ? inpTrailOffset : na


longCondition = close>inu and rising(outu,1) 
exitlong = (open[1]>outu and close<outu) or crossunder(close,ma)

shortCondition = close<inb and falling(outb,1)
exitshort = (open[1]<outb and close>outb) or crossover(close,ma)

strategy.entry(id = "Long", long=true, when = longCondition)
strategy.close(id = "Long", when = exitlong)
strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitlong)

strategy.entry(id = "Short", long=false, when = shortCondition)
strategy.close(id = "Short", when = exitshort)
strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitshort)

Lebih banyak