Bollinger Band Breakout Trading Strategi

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

img

Gambaran umum

Strategi ini didasarkan pada rel atas dan bawah Bollinger Bands untuk menentukan kapan harga menerobos rel atas Bollinger Bands untuk pergi panjang dan menerobos rel bawah untuk pergi pendek.

Logika Strategi

Strategi ini menggunakan rel tengah / atas / bawah Bollinger Band untuk menentukan kisaran harga ekstrim. Rel tengah adalah rata-rata bergerak sederhana dari harga penutupan selama 25 periode terakhir. Rel atas dan bawah adalah satu penyimpangan standar di atas dan di bawah rel tengah.

Jika harga di bawah rel bawah, pergi panjang. Jika harga di atas rel atas, pergi pendek. Saat pergi panjang, atur stop loss ke harga masuk dikalikan dengan faktor stop loss dan ambil keuntungan ke harga masuk dikalikan dengan faktor take profit.

Strategi ini juga menggabungkan beberapa aturan tambahan, seperti hanya mengizinkan satu sinyal per 24 jam untuk menghindari perdagangan yang tidak perlu.

Keuntungan dari Strategi

  1. Menggunakan Bollinger Bands untuk menentukan kisaran harga abnormal termasuk strategi pelacakan tren yang dapat menangkap tren harga.
  2. Parameter stop loss dan take profit ditetapkan sesuai dengan prinsip untuk mengendalikan kerugian tunggal.
  3. Beberapa aturan tambahan ditambahkan untuk menghindari sinyal duplikat dan perdagangan yang tidak perlu.

Risiko dari Strategi

  1. Bollinger Bands tidak dapat sepenuhnya mewakili tren harga, dan mungkin ada sinyal palsu.
  2. Waktu yang salah dari sinyal breakout dapat menyebabkan kerugian.
  3. Durasi dan momentum pasar tren atau non-tren sulit diprediksi, yang dapat menyebabkan posisi panjang yang tidak perlu.

Manajemen Risiko:

  1. Sesuaikan parameter Bollinger Band untuk mengoptimalkan waktu sinyal.
  2. Sertakan indikator lain untuk menentukan tren utama.
  3. Atur stop loss dan ambil profit range sesuai dengan produk yang berbeda dan kondisi pasar.

Arahan Optimasi

  1. Pertimbangkan optimasi adaptif dari parameter Bollinger Band untuk membuatnya lebih sesuai dengan kondisi pasar saat ini.
  2. Masukkan indikator lain untuk menilai keandalan sinyal tren dan menghindari sinyal palsu.
  3. Mengintegrasikan model pembelajaran mesin untuk secara otomatis mengidentifikasi waktu yang optimal panjang dan pendek.

Kesimpulan

Singkatnya, ini adalah strategi pelacakan tren sederhana menggunakan Bollinger Bands untuk menentukan harga abnormal dan melacak tren. Ada ruang untuk perbaikan dalam optimasi parameter, kontrol risiko dan penyaringan sinyal, tetapi ide inti sederhana dan jelas, membuatnya cocok sebagai strategi pemula untuk belajar.


/*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 banyak