Sumber dimuat naik... memuat...

Bollinger Band ATR Trend Mengikut Strategi

Penulis:ChaoZhang, Tarikh: 2024-05-15 10:50:14
Tag:BBSMAATR

img

Ringkasan

Strategi ini adalah berdasarkan Bollinger Bands dan penunjuk ATR. Ia menangkap turun naik harga menggunakan Bollinger Bands, menggunakan harga pecah di atas atau di bawah band sebagai isyarat kemasukan, dan menggunakan ATR sebagai stop loss. Strategi ini menutup kedudukan apabila harga melintasi purata bergerak mudah. Ia bertujuan untuk menangkap pasaran trend, memasuki kedudukan ke arah trend, dan segera menutup kedudukan apabila trend berbalik.

Prinsip Strategi

  1. Mengira Bollinger Bands: Gunakan harga penutupan untuk mengira purata bergerak mudah (SMA) sebagai band tengah, dan mengira band atas dan bawah berdasarkan turun naik (penyesuaian piawai).
  2. Mengira ATR: Gunakan purata bergerak julat sebenar (TR) untuk mengira ATR sebagai asas untuk kerugian berhenti yang beransur-ansur.
  3. Menghasilkan isyarat dagangan: Apabila harga memecahkan di bawah Bollinger Band bawah, menjana isyarat panjang; apabila ia memecahkan di atas Bollinger Band atas, menjana isyarat pendek. Apabila harga memecahkan di atas ATR trailing stop, menjana isyarat panjang; apabila ia memecahkan di bawah ATR trailing stop, menjana isyarat pendek.
  4. Posisi tutup: Untuk kedudukan panjang, jika harga memecahkan di atas purata bergerak mudah, tutup kedudukan panjang; untuk kedudukan pendek, jika harga memecahkan di bawah purata bergerak mudah, tutup kedudukan pendek.

Kelebihan Strategi

  1. Mengikuti trend: Mencatatkan pasaran trend dengan menggunakan Bollinger Bands dan ATR trailing stop, menyesuaikan diri dengan persekitaran pasaran yang berbeza.
  2. Stop loss yang tepat pada masanya: Menggunakan ATR sebagai stop loss trailing, menyesuaikan kedudukan stop loss secara dinamik mengikut turun naik pasaran untuk mengawal risiko.
  3. Sederhana dan mudah digunakan: Logik strategi jelas, dengan beberapa parameter, menjadikannya mudah difahami dan digunakan.

Risiko Strategi

  1. Sensitiviti parameter: Prestasi strategi dipengaruhi oleh pilihan parameter untuk Bollinger Bands dan ATR, yang memerlukan pengoptimuman untuk pasaran dan instrumen yang berbeza.
  2. Pasaran yang bergelora: Dalam keadaan pasaran yang bergelora, isyarat perdagangan yang kerap boleh menyebabkan kekerapan perdagangan dan kos yang berlebihan.
  3. Pembalikan trend: Apabila trend berbalik, strategi mungkin mengalami penurunan yang ketara.

Arahan Pengoptimuman Strategi

  1. Pengoptimuman parameter: Mengoptimumkan parameter Bollinger Bands dan ATR untuk mencari kombinasi terbaik untuk pasaran dan instrumen yang berbeza.
  2. Penapis: Tambah penapis lain penunjuk teknikal atau corak tingkah laku harga untuk mengurangkan salah penilaian dan meningkatkan kualiti isyarat.
  3. Pengurusan kedudukan: Sesuaikan kedudukan secara dinamik berdasarkan turun naik pasaran atau risiko akaun untuk meningkatkan kecekapan penggunaan modal dan pulangan yang disesuaikan dengan risiko.

Ringkasan

Bollinger Band ATR Trend Following Strategy menangkap pasaran trend menggunakan Bollinger Bands dan penunjuk ATR. Ia mempunyai kelebihan trend berikut, stop loss tepat pada masanya, dan kesederhanaan. Walau bagaimanapun, ia juga menghadapi risiko seperti sensitiviti parameter, pasaran bergolak, dan pembalikan trend. Prestasi strategi boleh dioptimumkan lagi melalui pengoptimuman parameter, menambah penapis, dan pengurusan kedudukan.


/*backtest
start: 2024-04-01 00:00:00
end: 2024-04-30 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Bollinger Bands and ATR Strategy", overlay=true)

// Veri Çekme
symbol = "AAPL"
timeframe = "D"
src = close

// Bollinger Bantları Hesaplama
len = 20
mult = 2
sum1 = 0.0, sum2 = 0.0
for i = 0 to len - 1
    sum1 += src[i]
basis = sum1 / len
for i = 0 to len - 1
    diff = src[i] - basis
    sum2 += diff * diff
dev = math.sqrt(sum2 / len)
upper_band = basis + dev * mult
lower_band = basis - dev * mult

// ATR Hesaplama
atr_period = input(10, title="ATR Period")
atr_value = 0.0
for i = 0 to atr_period - 1
    atr_value += math.abs(src[i] - src[i + 1])
atr_value /= atr_period
loss = input(1, title="Key Value (Sensitivity)")
atr_trailing_stop = src[1]
if src > atr_trailing_stop[1]
    atr_trailing_stop := math.max(atr_trailing_stop[1], src - loss * atr_value)
else if src < atr_trailing_stop[1]
    atr_trailing_stop := math.min(atr_trailing_stop[1], src + loss * atr_value)
else
    atr_trailing_stop := src - loss * atr_value

// Sinyal Üretme
long_condition  = src < lower_band and src[1] >= lower_band[1]
short_condition = src > upper_band and src[1] <= upper_band[1]
close_long  = src > basis
close_short = src < basis
buy_signal = src > atr_trailing_stop[1] and src[1] <= atr_trailing_stop[1]
sell_signal = src < atr_trailing_stop[1] and src[1] >= atr_trailing_stop[1]

if (long_condition)
    strategy.entry("Long", strategy.long, comment="Long Signal")
if (short_condition)
    strategy.entry("Short", strategy.short, comment="Short Signal")
if (close_long)
    strategy.close("Long", comment="Close Long")
if (close_short)
    strategy.close("Short", comment="Close Short")
if (buy_signal)
    strategy.entry("Long", strategy.long, comment="Buy Signal")
if (sell_signal)
    strategy.entry("Short", strategy.short, comment="Sell Signal")

// Çizim
plot(upper_band, color=#0000FF, linewidth=2, title="Upper Band")
plot(lower_band, color=#0000FF, linewidth=2, title="Lower Band")
plot(basis, color=#808080, linewidth=2, title="SMA")
plot(atr_trailing_stop, color=#FFA500, linewidth=2, title="ATR Trailing Stop")
plot(src, color=#FFA500, linewidth=2, title="Price")

// Sinyal İşaretleri
plotshape(long_condition, style=shape.arrowup, color=#00FF00, location=location.belowbar, size=size.small, title="Long Signal")
plotshape(short_condition, style=shape.arrowdown, color=#FF0000, location=location.abovebar, size=size.small, title="Short Signal")
plotshape(buy_signal, style=shape.diamond, color=#00FF00, location=location.belowbar, size=size.small, title="Buy Signal")
plotshape(sell_signal, style=shape.diamond, color=#FF0000, location=location.abovebar, size=size.small, title="Sell Signal")

Berkaitan

Lebih lanjut