Strategi Dagangan Breakout Bollinger Band

Penulis:ChaoZhang, Tarikh: 2023-12-19 14:08:45
Tag:

img

Ringkasan

Strategi ini berdasarkan rel atas dan bawah Bollinger Bands untuk menentukan bila harga memecahkan melalui rel atas Bollinger Bands untuk pergi panjang dan memecahkan melalui rel bawah untuk pergi pendek.

Logika Strategi

Strategi ini menggunakan rel tengah / atas / bawah Bollinger Bands untuk menentukan julat harga yang melampau. Rel tengah adalah purata bergerak mudah harga penutupan selama 25 tempoh yang lalu. Rel atas dan bawah adalah satu penyimpangan standard di atas dan di bawah rel tengah. Apabila harga memecahkan rel atas atau bawah, ia menunjukkan bahawa terdapat gangguan dan tingkah laku harga yang tidak normal, yang boleh digunakan untuk membuat keputusan perdagangan.

Jika harga di bawah rel bawah, pergi panjang. Jika harga di atas rel atas, pergi pendek. Apabila pergi panjang, tetapkan stop loss kepada harga masuk dikalikan dengan faktor stop loss dan mengambil keuntungan kepada harga masuk dikalikan dengan faktor mengambil keuntungan.

Strategi ini juga menggabungkan beberapa peraturan tambahan, seperti membenarkan hanya satu isyarat setiap 24 jam untuk mengelakkan perdagangan yang tidak perlu.

Kelebihan Strategi

  1. Menggunakan Bollinger Bands untuk menentukan julat harga yang tidak normal adalah sebahagian daripada strategi pengesanan trend yang dapat menangkap trend harga.
  2. Parameter stop loss dan mengambil keuntungan ditetapkan mengikut prinsip untuk mengawal kerugian tunggal.
  3. Sesetengah peraturan tambahan ditambah untuk mengelakkan isyarat berganda dan perdagangan yang tidak perlu.

Risiko Strategi

  1. Bollinger Bands tidak dapat mewakili sepenuhnya trend harga, dan mungkin terdapat isyarat palsu.
  2. Masa yang tidak tepat untuk isyarat pecah boleh menyebabkan kerugian.
  3. Tempoh dan momentum pasaran trend atau bukan trend sukar untuk diramalkan, yang boleh membawa kepada kedudukan panjang yang tidak perlu.

Pengurusan Risiko:

  1. Sesuaikan parameter Bollinger Band untuk mengoptimumkan masa isyarat pecah.
  2. Sertakan penunjuk lain untuk menentukan trend utama.
  3. Tetapkan julat stop loss dan mengambil keuntungan mengikut produk dan keadaan pasaran yang berbeza.

Arahan pengoptimuman

  1. Pertimbangkan pengoptimuman adaptif parameter Bollinger Band untuk menjadikannya lebih sesuai dengan keadaan pasaran semasa.
  2. Masukkan penunjuk lain untuk menilai kebolehpercayaan isyarat trend dan mengelakkan isyarat palsu.
  3. Menggabungkan model pembelajaran mesin untuk mengenal pasti masa yang optimum dan pendek secara automatik.

Kesimpulan

Ringkasnya, ini adalah strategi pengesanan trend yang mudah menggunakan Bollinger Bands untuk menentukan harga yang tidak normal dan mengesan trend. Terdapat ruang untuk peningkatan dalam pengoptimuman parameter, kawalan risiko dan penapisan isyarat, tetapi idea terasnya mudah dan jelas, menjadikannya sesuai sebagai strategi pemula untuk pembelajaran.


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

//@version=5
strategy("I11L OIL Bot",overlay=true, initial_capital=1000000,default_qty_value=1000000,default_qty_type=strategy.cash,commission_type=strategy.commission.percent,commission_value=0.00)

leverage = input.float(1,"Leverage (x)",step=1)
SL_Factor = 1 - input.float(1,"Risk Capital per Trade (%)", minval=0.1, maxval=100, step=0.05) / 100 / leverage
TP_Factor = input.float(2, step=0.1)
invertBuyLogic = input.bool(false)
 
lookbackDistance = input.int(25)
devMult = input.float(2,step=0.1)

var lastSellHour = 0
var disableAdditionalBuysThisDay = false


if(time > lastSellHour + 1000 * 60 * 60 * 6)
    disableAdditionalBuysThisDay := false
if(strategy.position_size != strategy.position_size[1])
    disableAdditionalBuysThisDay := true
    lastSellHour := time

source = close

//Trade Logic
basis = ta.sma(source, lookbackDistance)
dev = devMult * ta.stdev(source, lookbackDistance)
upper = basis + dev
lower = basis - dev
isBuy = ta.crossunder(source, upper)
isBuyInverted = ta.crossover(source, lower)

plot(upper, color=color.white)
plot(lower, color=color.white)

strategy.initial_capital = 50000

if((invertBuyLogic ? isBuyInverted : isBuy) and not(disableAdditionalBuysThisDay))
    strategy.entry("Long", strategy.long, (strategy.initial_capital / close) * leverage)

if(strategy.position_size > 0)
    strategy.exit("SL Long", "Long", stop=strategy.position_avg_price * SL_Factor)
    strategy.close("Long",  when=close > strategy.position_avg_price * (1 + (1 - SL_Factor) * TP_Factor), comment="TP Long")





Lebih lanjut