Pelacakan tren dinamis ATR dan strategi perdagangan persilangan rata-rata pergerakan

ATR EMA HLC3
Tanggal Pembuatan: 2025-02-21 14:20:15 Akhirnya memodifikasi: 2025-02-27 16:57:27
menyalin: 1 Jumlah klik: 405
2
fokus pada
319
Pengikut

Pelacakan tren dinamis ATR dan strategi perdagangan persilangan rata-rata pergerakan Pelacakan tren dinamis ATR dan strategi perdagangan persilangan rata-rata pergerakan

Ringkasan

Ini adalah strategi pelacakan tren berdasarkan indikator ATR (Average True Range), yang menggabungkan stop loss dinamis dan sinyal crossover rata-rata. Strategi ini menentukan volatilitas pasar dengan menghitung ATR dan menggunakan informasi ini untuk membangun stop loss dinamis.

Prinsip Strategi

Logika inti dari strategi ini didasarkan pada beberapa perhitungan kunci berikut:

  1. Indikator ATR digunakan untuk mengukur volatilitas pasar, dengan siklus yang dapat disesuaikan
  2. Dinamika stop loss distance berdasarkan nilai ATR, disesuaikan dengan parameter sensitivitas a
  3. Membangun ATR melacak stop loss line yang secara dinamis menyesuaikan dengan pergerakan harga
  4. Gunakan 1 siklus EMA dan ATR melacak garis stop loss untuk menentukan sinyal perdagangan
  5. Ketika EMA naik menerobos ATR Tracking Stop Line terbuka lebih banyak, dan terbuka terbuka saat turun menerobos
  6. Harga HLC3 dengan harga penutupan biasa atau garis K dapat dipilih sebagai basis perhitungan

Keunggulan Strategis

  1. Adaptif secara dinamis: ATR dapat secara otomatis menyesuaikan stop loss berdasarkan volatilitas pasar, sehingga strategi dapat tetap stabil dalam berbagai kondisi pasar
  2. Pengendalian risiko yang sempurna: Posisi dilindungi secara berkelanjutan melalui Stop Loss Line yang dinamis
  3. Parameter yang dapat disesuaikan: dapat disesuaikan dengan karakteristik pasar yang berbeda dengan menyesuaikan siklus dan sensitivitas ATR
  4. Sinyal yang jelas dan dapat diandalkan: Kombinasi crossover linear memberikan sinyal masuk dan keluar yang jelas
  5. Kesederhanaan Logika Perhitungan: Strategi Logika yang jelas, mudah dipahami dan dipertahankan
  6. Efek visualisasi yang baik: memberikan sinyal perdagangan dan tampilan grafis tren

Risiko Strategis

  1. Risiko pasar bergoyang: Sering terjadi sinyal palsu di pasar bergoyang
  2. Efek slippage: kemungkinan slippage yang lebih besar dalam situasi cepat yang mempengaruhi kinerja strategi
  3. Sensitivitas parameter: Kombinasi parameter yang berbeda dapat menyebabkan perbedaan besar dalam kinerja strategi
  4. Ketergantungan tren: Strategi ini mungkin tidak berjalan baik di pasar yang tidak mengikuti tren
  5. Stop loss amplitudo: ATR yang tidak normal dapat menyebabkan posisi stop loss yang tidak masuk akal

Arah optimasi strategi

  1. Menambahkan filter tren: memperkenalkan indikator penilaian tren tambahan untuk mengurangi sinyal palsu pasar yang bergoyang
  2. Adaptasi parameter optimasi: Mengembangkan mekanisme untuk mengoptimalkan siklus dan sensitivitas ATR secara otomatis
  3. Peningkatan konfirmasi sinyal: meningkatkan volume transaksi atau indikator teknis lainnya sebagai konfirmasi sinyal
  4. Perbaikan mekanisme penghentian kerugian: peningkatan penghentian kerugian tetap dan penghentian kerugian bergerak berdasarkan ATR
  5. Meningkatkan manajemen posisi: menyesuaikan ukuran kepemilikan posisi sesuai dengan dinamika pasar yang berfluktuasi

Meringkaskan

Ini adalah strategi perdagangan lengkap yang menggabungkan stop loss dan sistem linier yang mengikuti dinamika. Dengan indikator ATR untuk menangkap karakteristik fluktuasi pasar, memberikan sinyal perdagangan dengan menggunakan persilangan linier, membentuk sistem perdagangan yang ketat secara logis. Keunggulan strategi adalah kemampuan adaptasi dan kontrol risiko yang dinamis, tetapi juga perlu memperhatikan kinerja pasar horizontal. Dengan arah optimasi yang disarankan, strategi ini memiliki ruang untuk ditingkatkan lebih lanjut.

Kode Sumber Strategi
/*backtest
start: 2024-05-15 00:00:00
end: 2024-08-08 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/

//@version=6
strategy(title="UT Bot Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// Inputs
a = input.float(1, title="Key Value. 'This changes the sensitivity'")
c = input.int(10, title="ATR Period")
h = input.bool(false, title="Signals from Heikin Ashi Candles")

// Calculate ATR
xATR = ta.atr(c)
nLoss = a * xATR

// Source for calculations
src = h ? request.security(syminfo.tickerid, timeframe.period, hlc3) : close

// ATR Trailing Stop logic
var float xATRTrailingStop = na
if (not na(xATRTrailingStop[1]) and src > xATRTrailingStop[1] and src[1] > xATRTrailingStop[1])
    xATRTrailingStop := math.max(xATRTrailingStop[1], src - nLoss)
else if (not na(xATRTrailingStop[1]) and src < xATRTrailingStop[1] and src[1] < xATRTrailingStop[1])
    xATRTrailingStop := math.min(xATRTrailingStop[1], src + nLoss)
else
    xATRTrailingStop := src > xATRTrailingStop[1] ? src - nLoss : src + nLoss

// Position logic
var int pos = 0
if (not na(xATRTrailingStop[1]) and src[1] < xATRTrailingStop[1] and src > xATRTrailingStop[1])
    pos := 1
else if (not na(xATRTrailingStop[1]) and src[1] > xATRTrailingStop[1] and src < xATRTrailingStop[1])
    pos := -1
else
    pos := pos[1]

xcolor = pos == -1 ? color.red : pos == 1 ? color.green : color.blue

// Entry and Exit Signals
ema = ta.ema(src, 1)
above = ta.crossover(ema, xATRTrailingStop)
below = ta.crossover(xATRTrailingStop, ema)

buy = src > xATRTrailingStop and above
sell = src < xATRTrailingStop and below

// Strategy Execution
if (buy)
    strategy.entry("UT Long", strategy.long)
if (sell)
    strategy.entry("UT Short", strategy.short)

// Plotting and Alerts
plotshape(buy, title="Buy", text='Buy', style=shape.labelup, location=location.belowbar, color=color.green, textcolor=color.white, size=size.tiny)
plotshape(sell, title="Sell", text='Sell', style=shape.labeldown, location=location.abovebar, color=color.red, textcolor=color.white, size=size.tiny)

barcolor(src > xATRTrailingStop ? color.green : src < xATRTrailingStop ? color.red : na)

alertcondition(buy, title="UT Long", message="UT Long")
alertcondition(sell, title="UT Short", message="UT Short")