Strategi Mengikuti Tren ATR Bollinger Bands

BB SMA ATR
Tanggal Pembuatan: 2024-05-15 10:50:14 Akhirnya memodifikasi: 2024-05-15 10:50:14
menyalin: 3 Jumlah klik: 721
1
fokus pada
1617
Pengikut

Strategi Mengikuti Tren ATR Bollinger Bands

Ringkasan

Strategi ini didasarkan pada indikator Brin-band dan ATR, menangkap kisaran fluktuasi harga melalui Brin-band, menggunakan harga untuk menerobos Brin-band ke bawah sebagai sinyal posisi, sekaligus menggunakan ATR sebagai stop loss bergerak, dan akhirnya dengan harga untuk menerobos Simple Moving Average sebagai sinyal posisi. Strategi ini mencoba untuk menangkap situasi tren, membangun posisi sesuai dengan arah tren, dan melakukan posisi terjal jika tren berbalik.

Prinsip Strategi

  1. Perhitungan Burin Band: Perhitungan harga close out menggunakan Simple Moving Average (SMA) sebagai Burin Band tengah, dan berdasarkan volatilitas (Standard Difference) dihitung atas dan bawah.
  2. Menghitung ATR: Menghitung ATR menggunakan rata-rata bergerak dari real bandwidth ((TR) sebagai dasar dari stop loss bergerak.
  3. Membuat sinyal perdagangan: Membuat sinyal plus ketika harga turun melewati Bollinger Bands dan menghasilkan sinyal tolak saat harga naik melewati Bollinger Bands; Membuat sinyal plus ketika harga naik melewati ATR dan menghasilkan sinyal tolak saat harga turun melewati ATR.
  4. Posisi kosong: Ketika melakukan posisi ganda, jika harga naik melampaui rata-rata bergerak sederhana, maka posisi kosong; Ketika melakukan posisi kosong, jika harga turun melampaui rata-rata bergerak sederhana, maka posisi kosong.

Keunggulan Strategis

  1. Pelacakan tren: menangkap tren melalui Brinband dan ATR mobile stop loss, dan beradaptasi dengan kondisi pasar yang berbeda.
  2. Stop loss tepat waktu: menggunakan ATR sebagai stop loss bergerak, Anda dapat secara dinamis menyesuaikan posisi stop loss sesuai dengan kondisi pasar yang bergejolak, mengendalikan risiko.
  3. Sederhana dan mudah digunakan: logika strategi yang jelas, parameter yang lebih sedikit, mudah dipahami dan diterapkan.

Risiko Strategis

  1. Sensitif terhadap parameter: Pilihan parameter Brin Belt dan ATR dapat mempengaruhi kinerja strategi dan perlu dioptimalkan untuk berbagai pasar dan varietas.
  2. Pasar yang bergoyang: Dalam lingkungan pasar yang bergoyang, sinyal perdagangan yang sering dapat menyebabkan terlalu banyak transaksi dan biaya.
  3. Trend Reversal: Strategi ini dapat menghasilkan retrograde yang lebih besar ketika tren berbalik.

Arah optimasi strategi

  1. Optimasi parameter: Optimalkan parameter Brin Belt dan ATR untuk menemukan kombinasi parameter terbaik yang sesuai dengan pasar dan varietas yang berbeda.
  2. Filter: Menambahkan indikator teknis lainnya atau pola perilaku harga sebagai filter, mengurangi kesalahan penilaian dan meningkatkan kualitas sinyal.
  3. Manajemen posisi: melakukan penyesuaian posisi secara dinamis sesuai dengan volatilitas pasar atau risiko akun, meningkatkan efisiensi pemanfaatan dana dan rasio risiko laba.

Meringkaskan

Strategi pelacakan tren ATR pita Brin menangkap tren melalui pita Brin dan indikator ATR, dengan keuntungan dari pelacakan tren, stop loss tepat waktu, dan mudah digunakan. Namun, ada juga risiko seperti sensitivitas parameter, pasar yang bergoyang, dan pembalikan tren. Kinerja strategi dapat dioptimalkan lebih lanjut melalui pengoptimalan parameter, penambahan filter, dan manajemen posisi, dll.

Kode Sumber Strategi
/*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")