Bollinger Bands ATR Trend Mengikuti Strategi

BB SMA ATR
Tarikh penciptaan: 2024-05-15 10:50:14 Akhirnya diubah suai: 2024-05-15 10:50:14
Salin: 3 Bilangan klik: 721
1
fokus pada
1617
Pengikut

Bollinger Bands ATR Trend Mengikuti Strategi

Gambaran keseluruhan

Strategi ini berdasarkan pada indikator Brin dan ATR, menangkap jangkauan pergerakan harga melalui Brin, menggunakan harga untuk menembusi Brin dan turun ke bawah sebagai isyarat untuk meletakkan kedudukan, dan menggunakan ATR sebagai berhenti bergerak, dan akhirnya dengan harga untuk menembusi purata bergerak sederhana sebagai isyarat untuk meletakkan kedudukan. Strategi ini cuba untuk menangkap keadaan trend, meletakkan kedudukan mengikut arah trend, dan meletakkan kedudukan yang rata ketika trend berbalik.

Prinsip Strategi

  1. Menghitung Burin Band: Menggunakan purata bergerak sederhana ((SMA) untuk mengira harga penutupan sebagai jalur tengah Burin Band, dan berdasarkan kadar turun naik ((perbezaan standard)).
  2. Mengira ATR: Mengira ATR menggunakan purata bergerak dari gelombang sebenar (TR) sebagai asas untuk berhenti bergerak.
  3. Menjana isyarat dagangan: menghasilkan isyarat melakukan lebih apabila harga ke bawah menembusi Bollinger Bands ke bawah, menghasilkan isyarat melakukan lebih apabila harga ke atas menembusi Bollinger Bands ke atas; menghasilkan isyarat melakukan lebih apabila harga ke atas menembusi ATR bergerak berhenti, menghasilkan isyarat melakukan lebih apabila harga ke bawah menembusi ATR bergerak berhenti.
  4. Kedudukan kosong: Apabila melakukan banyak kedudukan, jika harga melangkaui purata bergerak sederhana ke atas, ia akan menjadi kosong; Apabila melakukan kedudukan kosong, jika harga melangkaui purata bergerak sederhana ke bawah, ia akan menjadi kosong.

Kelebihan Strategik

  1. Pengesanan Trend: Mengambil trend trend melalui Brinband dan ATR untuk menyesuaikan diri dengan keadaan pasaran yang berbeza.
  2. Hentikan tepat pada masanya: menggunakan ATR sebagai hentikan bergerak, anda boleh menyesuaikan kedudukan hentikan secara dinamik mengikut keadaan turun naik pasaran, mengawal risiko.
  3. Sederhana dan mudah digunakan: logik strategi jelas, sedikit parameter, mudah difahami dan digunakan.

Risiko Strategik

  1. Sensitiviti parameter: Pilihan parameter Brinbelt dan ATR mempengaruhi prestasi strategi dan perlu dioptimumkan mengikut pasaran dan varieti yang berbeza.
  2. Pasaran goyah: Dalam persekitaran pasaran goyah, isyarat dagangan yang kerap boleh menyebabkan jumlah dagangan dan kos yang berlebihan.
  3. Trend Reversal: Strategi ini mungkin menghasilkan pengunduran yang lebih besar apabila trend berbalik.

Arah pengoptimuman strategi

  1. Pengoptimuman parameter: Pengoptimuman parameter Brin Belt dan ATR untuk mencari kombinasi parameter terbaik yang sesuai untuk pasaran dan varieti yang berbeza.
  2. Penapis: Tambah petunjuk teknikal lain atau pola tingkah laku harga sebagai penapis, mengurangkan kesalahan dan meningkatkan kualiti isyarat.
  3. Pengurusan kedudukan: menyesuaikan kedudukan secara dinamik mengikut turun naik pasaran atau risiko akaun, meningkatkan kecekapan penggunaan dana dan nisbah risiko pendapatan.

ringkaskan

Strategi penjejakan trend ATR Brinband menangkap trend melalui Brinband dan penunjuk ATR, dengan kelebihan trend penjejakan, berhenti tepat pada masanya dan mudah digunakan. Tetapi ada juga risiko seperti sensitif parameter, pasaran goyah dan pembalikan trend.

Kod 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")