Sumber daya yang dimuat... Pemuatan...

Bollinger Band ATR Trend Mengikuti Strategi

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

img

Gambaran umum

Strategi ini didasarkan pada Bollinger Bands dan indikator ATR. Strategi ini menangkap fluktuasi harga menggunakan Bollinger Bands, menggunakan price breakout di atas atau di bawah band sebagai sinyal masuk, dan menggunakan ATR sebagai trailing stop loss. Strategi ini menutup posisi ketika harga melintasi rata-rata bergerak sederhana.

Prinsip Strategi

  1. Menghitung Bollinger Bands: Gunakan harga penutupan untuk menghitung rata-rata bergerak sederhana (SMA) sebagai band tengah, dan menghitung band atas dan bawah berdasarkan volatilitas (deviasi standar).
  2. Menghitung ATR: Gunakan moving average of true range (TR) untuk menghitung ATR sebagai dasar untuk trailing stop loss.
  3. Menghasilkan sinyal perdagangan: Ketika harga melanggar di bawah Bollinger Band bawah, menghasilkan sinyal panjang; ketika melanggar di atas Bollinger Band atas, menghasilkan sinyal pendek. Ketika harga melanggar di atas ATR trailing stop, menghasilkan sinyal panjang; ketika melanggar di bawah ATR trailing stop, menghasilkan sinyal pendek.
  4. Posisi Tutup: Untuk posisi panjang, jika harga melanggar di atas rata-rata bergerak sederhana, tutup posisi panjang; untuk posisi pendek, jika harga melanggar di bawah rata-rata bergerak sederhana, tutup posisi pendek.

Keuntungan Strategi

  1. Trend Following: Mengenal tren pasar dengan menggunakan Bollinger Bands dan ATR trailing stop, beradaptasi dengan lingkungan pasar yang berbeda.
  2. Stop loss yang tepat waktu: Menggunakan ATR sebagai stop loss trailing, secara dinamis menyesuaikan posisi stop loss sesuai dengan volatilitas pasar untuk mengendalikan risiko.
  3. Sederhana dan mudah digunakan: Logika strategi jelas, dengan beberapa parameter, membuatnya mudah dimengerti dan diterapkan.

Risiko Strategi

  1. Sensitivitas parameter: Kinerja strategi dipengaruhi oleh pilihan parameter untuk Bollinger Bands dan ATR, yang membutuhkan optimalisasi untuk pasar dan instrumen yang berbeda.
  2. Pasar yang bergolak: Dalam kondisi pasar yang bergolak, sinyal perdagangan yang sering dapat menyebabkan frekuensi dan biaya perdagangan yang berlebihan.
  3. Pembalikan tren: Ketika tren berbalik, strategi dapat mengalami penurunan yang signifikan.

Arah Optimasi Strategi

  1. Optimalisasi parameter: Optimalkan parameter Bollinger Bands dan ATR untuk menemukan kombinasi terbaik untuk pasar dan instrumen yang berbeda.
  2. Filter: Tambahkan indikator teknis lainnya atau pola perilaku harga sebagai filter untuk mengurangi kesalahan penilaian dan meningkatkan kualitas sinyal.
  3. Manajemen Posisi: Mengatur posisi secara dinamis berdasarkan volatilitas pasar atau risiko akun untuk meningkatkan efisiensi pemanfaatan modal dan pengembalian yang disesuaikan dengan risiko.

Ringkasan

Bollinger Band ATR Trend Following Strategy menangkap tren pasar menggunakan Bollinger Bands dan indikator ATR. Strategi ini memiliki keuntungan mengikuti tren, stop loss yang tepat waktu, dan kesederhanaan. Namun, strategi ini juga menghadapi risiko seperti sensitivitas parameter, pasar bergolak, dan pembalikan tren.


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