Strategi perdagangan trailing stop loss dinamis berdasarkan ATR

ATR EMA TS
Tanggal Pembuatan: 2024-12-12 16:18:19 Akhirnya memodifikasi: 2024-12-12 16:18:19
menyalin: 0 Jumlah klik: 384
1
fokus pada
1617
Pengikut

Strategi perdagangan trailing stop loss dinamis berdasarkan ATR

Ringkasan

Strategi ini adalah strategi tracking stop loss yang dinamis berdasarkan indikator ATR (Average True Range). Strategi ini secara dinamis menyesuaikan posisi stop loss melalui nilai ATR dan mengkonfirmasi sinyal perdagangan yang digabungkan dengan EMA. Strategi ini mendukung manajemen posisi yang fleksibel, yang dapat menyesuaikan jumlah jual beli sesuai dengan lingkungan pasar yang berbeda dan jenis perdagangan.

Prinsip Strategi

Logika inti dari strategi ini didasarkan pada elemen-elemen kunci berikut:

  1. Menggunakan indikator ATR untuk menghitung volatilitas pasar dan menyesuaikan stop loss distance dengan faktor yang dapat disesuaikan oleh pengguna
  2. Membuat garis stop loss yang dapat dilacak secara dinamis yang akan menyesuaikan secara otomatis dengan perubahan harga
  3. Menggunakan EMA Average Line dan Tracking Stop Line untuk mengkonfirmasi sinyal perdagangan
  4. Sinyal perdagangan dihasilkan saat harga menembus jalur stop loss dan EMA mengkonfirmasi
  5. Mengontrol jumlah transaksi per transaksi melalui sistem manajemen posisi dan melacak status portofolio investasi secara real-time

Keunggulan Strategis

  1. Adaptif - Indikator ATR dapat secara otomatis menyesuaikan jarak stop loss sesuai dengan fluktuasi pasar, memungkinkan strategi untuk tetap berkinerja baik di berbagai lingkungan pasar
  2. Pengelolaan risiko yang baik - mekanisme stop loss yang dinamis dapat secara efektif melindungi keuntungan yang telah diperoleh, sementara membatasi potensi kerugian
  3. Fleksibilitas operasi - mendukung jumlah transaksi khusus dan parameter ATR yang dapat dioptimalkan sesuai dengan karakteristik varietas perdagangan yang berbeda
  4. Keandalan sinyal - Konfirmasi rata-rata melalui EMA, mengurangi dampak sinyal palsu
  5. Otomatisasi penuh - Strategi dapat berjalan secara otomatis, mengurangi gangguan emosional manusia

Risiko Strategis

  1. Risiko pasar bergoyang - di pasar bergoyang horizontal dapat menghasilkan sinyal penembusan palsu yang sering terjadi, yang menyebabkan terlalu banyak perdagangan
  2. Risiko slippage - kemungkinan terjadinya slippage yang lebih besar dalam situasi cepat yang mempengaruhi kinerja strategi
  3. Sensitivitas parameter - pilihan siklus dan faktor ATR memiliki pengaruh besar pada kinerja strategi
  4. Risiko Manajemen Uang - Risiko yang mungkin timbul jika jumlah transaksi diatur dengan tidak tepat
  5. Risiko volatilitas pasar - Stop loss dapat ditembus seketika dalam periode fluktuasi yang kuat

Arah optimasi strategi

  1. Memperkenalkan mekanisme identifikasi lingkungan pasar yang menggunakan kombinasi parameter yang berbeda dalam kondisi pasar yang berbeda
  2. Menambahkan faktor volume transaksi sebagai kondisi penyaringan sinyal, meningkatkan keandalan sinyal transaksi
  3. Algoritma pengelolaan dana yang dioptimalkan, penyesuaian ukuran kepemilikan berdasarkan dinamika volatilitas
  4. Menambahkan mekanisme penyaringan waktu untuk menghindari operasi pada waktu yang tidak sesuai untuk perdagangan
  5. Mengembangkan sistem optimasi parameter adaptif untuk menyesuaikan parameter secara dinamis

Meringkaskan

Strategi ini, dengan menggabungkan indikator ATR dan EMA rata-rata, membangun sistem tracking stop loss yang dinamis dan andal. Keuntungannya adalah kemampuan untuk beradaptasi dengan fluktuasi pasar, memiliki mekanisme manajemen risiko yang baik, sambil mempertahankan fleksibilitas operasi. Meskipun ada beberapa risiko yang melekat, tetapi dengan terus-menerus mengoptimalkan dan menyempurnakan, strategi ini diharapkan dapat mempertahankan kinerja yang stabil di berbagai lingkungan pasar.

Kode Sumber Strategi
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-10 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title='ADET GİRMELİ Trend İz Süren Stop Strategy', overlay=true, overlay=true,default_qty_type = strategy.fixed, default_qty_value = 1)

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

xATR = ta.atr(c)
nLoss = a * xATR

src = h ? request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, close, lookahead=barmerge.lookahead_off) : close

xATRTrailingStop = 0.0
iff_1 = src > nz(xATRTrailingStop[1], 0) ? src - nLoss : src + nLoss
iff_2 = src < nz(xATRTrailingStop[1], 0) and src[1] < nz(xATRTrailingStop[1], 0) ? math.min(nz(xATRTrailingStop[1]), src + nLoss) : iff_1
xATRTrailingStop := src > nz(xATRTrailingStop[1], 0) and src[1] > nz(xATRTrailingStop[1], 0) ? math.max(nz(xATRTrailingStop[1]), src - nLoss) : iff_2

pos = 0
iff_3 = src[1] > nz(xATRTrailingStop[1], 0) and src < nz(xATRTrailingStop[1], 0) ? -1 : nz(pos[1], 0)
pos := src[1] < nz(xATRTrailingStop[1], 0) and src > nz(xATRTrailingStop[1], 0) ? 1 : iff_3

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

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

barbuy = src > xATRTrailingStop
barsell = src < xATRTrailingStop
// Alım ve Satım Sinyalleri
buySignal = src > xATRTrailingStop and above
sellSignal = src < xATRTrailingStop and below

// Kullanıcı girişi
sell_quantity = input.int(1, title="Sell Quantity", minval=1)
buy_quantity = input.int(1, title="Buy Quantity", minval=1)

// Portföy miktarı (örnek simülasyon verisi)
var portfolio_quantity = 0

// Sinyal üretimi (örnek sinyal, gerçek stratejinizle değiştirin)
indicator_signal = (src > xATRTrailingStop and above) ? "buy" : 
                   (src < xATRTrailingStop and below) ? "sell" : "hold"

// Şartlara göre al/sat
if indicator_signal == "buy" and portfolio_quantity < buy_quantity
    strategy.entry("Buy Order", strategy.long, qty=buy_quantity)
    portfolio_quantity := portfolio_quantity + buy_quantity

if indicator_signal == "sell" and portfolio_quantity >= sell_quantity
    strategy.close("Buy Order", qty=sell_quantity)
    portfolio_quantity := portfolio_quantity - sell_quantity
// Plot buy and sell signals
plotshape(buy, title='Buy', text='Buy', style=shape.labelup, location=location.belowbar, color=color.new(color.green, 0), textcolor=color.new(color.white, 0), size=size.tiny)
plotshape(sell, title='Sell', text='Sell', style=shape.labeldown, location=location.abovebar, color=color.new(color.red, 0), textcolor=color.new(color.white, 0), size=size.tiny)

// Bar coloring
barcolor(barbuy ? color.rgb(6, 250, 14) : na)
barcolor(barsell ? color.red : na)

// Alerts
alertcondition(buy, 'UT Long', 'UT Long')
alertcondition(sell, 'UT Short', 'UT Short')

// Strategy Entry and Exit
if buy
    strategy.entry('Long', strategy.long)
if sell
    strategy.entry('Short', strategy.short)

// Optional Exit Conditions
if sell
    strategy.close('Long')
if buy
    strategy.close('Short')