Strategi Penembusan Ganda Bollinger Bands

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

img

Ringkasan

Strategi Double Bollinger Bands Breakout adalah strategi trend berikut. Ia menggunakan band atas dan bawah Bollinger Bands untuk menilai trend harga dan menubuhkan kedudukan panjang apabila harga menembusi Bollinger Bands dalaman dan menutup kedudukan apabila harga jatuh di bawah Bollinger Bands luar.

Logika Strategi

Strategi ini mula-mula mengira purata bergerak dan penyimpangan piawai dalam tempoh tertentu. Kemudian ia membina Bollinger Bands berganda menggunakan purata bergerak ± satu penyimpangan piawai untuk jalur dalaman dan purata bergerak ± 1.5 penyimpangan piawai untuk jalur luar.

Apabila harga pecah di atas band dalaman atas, ia menunjukkan bahawa pasaran memulakan bull run jadi pergi panjang. Apabila harga jatuh di bawah band dalaman bawah, ia menunjukkan permulaan pasaran beruang jadi pergi pendek.

Keuntungan mengambil keluar untuk kedudukan panjang adalah apabila harga jatuh di bawah band luar bawah. Keuntungan mengambil keluar untuk kedudukan pendek adalah apabila harga memecahkan di atas band luar atas.

Strategi ini juga menetapkan stop loss, mengambil keuntungan dan penyingkiran stop loss.

Analisis Kelebihan

Strategi Double Bollinger Bands Breakout mempunyai kelebihan berikut:

  1. Menggunakan Bollinger Bands berganda untuk menilai pergerakan harga membolehkan trend berikut yang berkesan;
  2. Memasuki penembusan jalur dalaman mengelakkan perdagangan pembalikan purata yang tidak perlu;
  3. Mengambil keuntungan, hentikan kerugian dan hentikan kerugian dengan berkesan mengawal risiko;
  4. Parameter yang boleh dioptimumkan membolehkan penyesuaian untuk produk yang berbeza.

Analisis Risiko

Strategi Double Bollinger Bands Breakout juga mempunyai beberapa risiko:

  1. Pendaftaran yang kerap dan stop loss boleh berlaku semasa pasaran pelbagai;
  2. Tetapan parameter yang tidak betul boleh menyebabkan masuk terlalu mudah atau keluar yang sukar;
  3. Penembusan kadang-kadang memberikan isyarat palsu yang mengakibatkan kegagalan.

Untuk menangani risiko ini, parameter boleh diselaraskan, penapis tambahan ditambah, atau pecah secara manual dipantau untuk mengurangkan risiko.

Arahan pengoptimuman

Strategi Double Bollinger Bands Breakout boleh dioptimumkan dengan beberapa cara:

  1. Mengoptimumkan parameter purata bergerak dan penyimpangan standard untuk menyesuaikan produk yang berbeza;
  2. Menambah jumlah, MACD atau penapis lain untuk mengelakkan pecah palsu;
  3. Menggunakan kaedah pembelajaran mesin untuk mengoptimumkan parameter secara dinamik;
  4. Salin strategi di pelbagai selang frekuensi tinggi untuk meningkatkan potensi keuntungan.

Kesimpulan

Strategi Double Bollinger Bands Breakout secara keseluruhan menilai perubahan harga berbanding dengan Bollinger Bands ke entri masa dalam pendekatan trend berikut yang tipikal. Strategi menetapkan sasaran keuntungan menggunakan jalur ganda dan mekanisme keluar saintifik untuk mengawal risiko. Dengan parameter dan kawalan risiko yang dioptimumkan, ia 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 lanjut