Dual-B Strategi Pelacakan Cerdas

Penulis:ChaoZhang, Tanggal: 2024-01-18 15:41:20
Tag:

img

Ini adalah strategi perdagangan yang menggunakan Bollinger Bands. Strategi ini bertujuan untuk mengidentifikasi peluang ketika harga berfluktuasi dengan kekerasan menggunakan Bollinger Bands dan membuat keputusan pembelian atau penjualan yang sesuai.

Prinsip Strategi

Strategi ini menghitung band atas, band tengah dan band bawah Bollinger Bands untuk menentukan apakah harga saat ini berada dalam kisaran volatilitas dan dengan demikian membuat keputusan tentang pembukaan atau penutupan posisi. Ketika harga mendekati band atas, itu dianggap sebagai titik ekstrim untuk posisi panjang dan strategi memilih untuk menutup posisi panjang. Ketika harga jatuh di dekat band bawah, itu dianggap sebagai titik ekstrim untuk posisi pendek dan strategi memilih untuk membuka posisi panjang.

Selain itu, strategi juga memperkenalkan faktor pembalikan tren. Jika ada sinyal pembalikan, itu juga akan memicu keputusan beli atau jual yang sesuai. Secara khusus, logika strategi adalah sebagai berikut:

  1. Menghitung Bollinger Bands atas, tengah dan bawah
  2. Menghakimi jika harga menembus band dan sinyal pembalikan
    1. Menembus pita tengah sebagai sinyal tren
    2. Dekat band atas atau bawah sebagai sinyal pembalikan
  3. Kirimkan pesanan beli, jual atau tutup

Dengan memanfaatkan karakteristik Bollinger Bands dan menggabungkan faktor tren dan pembalikan, strategi ini mencoba untuk menangkap titik pembalikan ketika volatilitas meningkat.

Keuntungan dari Strategi

Dibandingkan dengan strategi rata-rata bergerak biasa, strategi ini memiliki keuntungan berikut:

  1. Lebih sensitif, mampu menangkap peluang ketika harga berfluktuasi dengan ganas
  2. Menggabungkan faktor tren dan pembalikan untuk menghindari kerugian dari pembalikan dini
  3. Memiliki efek FILTER tertentu untuk menghindari pembelian/penjualan yang tidak perlu di area nonvolatile
  4. Menghakimi arah tren utama melalui pita tengah untuk mengurangi frekuensi perdagangan
  5. Meningkatkan kondisi filter pembalikan untuk mengurangi kesalahan penilaian

Secara umum, strategi ini menggabungkan Bollinger Bands dan price bar dengan relatif baik.

Risiko dan Optimalisasi

Namun, masih ada beberapa risiko dengan strategi ini:

  1. Parameter BB yang tidak tepat tidak sepenuhnya menangkap fluktuasi harga
  2. Penghakiman sinyal pembalikan yang tidak akurat, pembalikan yang hilang atau pembalikan yang salah
  3. Efektivitas sinyal pita tengah yang buruk ketika tren tidak jelas

Dengan demikian, optimasi masa depan dapat berfokus pada:

  1. Optimasi adaptif dari parameter BB berdasarkan produk yang berbeda
  2. Meningkatkan model pembelajaran mesin untuk menilai kemungkinan pembalikan
  3. Berubah ke indikator lain jika tren tidak jelas
  4. Menggabungkan lebih banyak pola harga untuk menyaring sinyal perdagangan

Kesimpulan

Kesimpulannya, ini adalah templat strategi perdagangan Bollinger Bands yang khas. Ini menghindari perdagangan yang tidak efektif yang berlebihan yang umum untuk menggunakan Bollinger Bands saja dengan memperkenalkan penilaian pembalikan tren untuk menyaring sinyal, yang secara teoritis dapat menyebabkan kinerja strategi yang baik.


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

//Noro
//2018

//@version=3
strategy("Noro's Bollinger Strategy v1.2", shorttitle = "Bollinger str 1.2", overlay = true )

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")

length = input(20, defval = 20, minval = 1, maxval = 1000, title = "Bollinger Length")
mult = input(2.0, defval = 2.0, minval = 0.001, maxval = 50, title = "Bollinger Mult")
source = input(ohlc4, defval = ohlc4, title = "Bollinger Source")

uset = input(true, defval = true, title = "Use trend entry")
usect = input(true, defval = true, title = "Use counter-trend entry")

fromyear = input(2018, defval = 2018, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
showbands = input(true, defval = true, title = "Show Bollinger Bands")

//Bollinger Bands
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev

//Lines
col = showbands ? black : na 
plot(upper, linewidth = 1, color = col)
plot(basis, linewidth = 1, color = col)
plot(lower, linewidth = 1, color = col)

//Body
body = abs(close - open)
abody = ema(body, 30)

//Signals
bar = close > open ? 1 : close < open ? -1 : 0 
up1 = bar == -1 and close >= basis and close < upper and (close < strategy.position_avg_price or strategy.position_size == 0) and uset
dn1 = bar == 1 and close <= basis and close > lower and (close > strategy.position_avg_price or strategy.position_size == 0) and uset
up2 = close <= lower and usect
dn2 = close >= upper and usect
exit = (strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open) and body > abody / 2

//Trading
if up1 or up2
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na)

if dn1 or dn2
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na)
    
if exit
    strategy.close_all()

Lebih banyak