Sumber dimuat naik... memuat...

Strategi Dagangan Trailing Stop Berasaskan ATR Dinamis

Penulis:ChaoZhang, Tarikh: 2024-12-12 16:18:19
Tag:ATREMATS

img

Ringkasan

Strategi ini adalah strategi stop trailing dinamik berdasarkan penunjuk Average True Range (ATR). Ia menyesuaikan kedudukan stop-loss secara dinamik melalui nilai ATR dan mengesahkan isyarat perdagangan menggunakan persilangan EMA. Strategi ini menyokong pengurusan kedudukan yang fleksibel dan membolehkan penyesuaian kuantiti beli / jual berdasarkan persekitaran pasaran dan instrumen perdagangan yang berbeza. Ia berfungsi dengan baik dalam jangka masa sederhana dari 5 minit hingga 2 jam, dengan berkesan menangkap trend pasaran.

Prinsip Strategi

Logik teras strategi ini berdasarkan beberapa elemen utama:

  1. Menggunakan penunjuk ATR untuk mengira turun naik pasaran dan menyesuaikan jarak stop-loss melalui pekali yang ditakrifkan pengguna
  2. Menetapkan garis berhenti yang dinamik yang menyesuaikan diri dengan pergerakan harga secara automatik
  3. Menggunakan persimpangan EMA dengan barisan hentian untuk mengesahkan isyarat dagangan
  4. Menghasilkan isyarat dagangan apabila harga mematahkan garis hentian dengan pengesahan EMA
  5. Mengendalikan kuantiti dagangan melalui sistem pengurusan kedudukan dan mengesan status portfolio dalam masa nyata

Kelebihan Strategi

  1. Kebolehsesuaian yang kuat - Indikator ATR secara automatik menyesuaikan jarak stop-loss berdasarkan turun naik pasaran, memastikan prestasi yang baik dalam persekitaran pasaran yang berbeza
  2. Pengurusan Risiko yang Komprehensif - Mekanisme hentian yang dinamik berkesan melindungi keuntungan sambil mengehadkan potensi kerugian
  3. Fleksibiliti operasi - Menyokong kuantiti dagangan yang boleh disesuaikan dan parameter ATR untuk pengoptimuman di antara instrumen yang berbeza
  4. Isyarat yang boleh dipercayai - pengesahan EMA mengurangkan kesan isyarat palsu
  5. Automasi Penuh - Strategi boleh berjalan sepenuhnya secara automatik, mengurangkan gangguan emosi

Risiko Strategi

  1. Risiko pasaran berbelit-belit - Boleh menghasilkan isyarat pecah palsu yang kerap di pasaran sampingan, yang membawa kepada perdagangan berlebihan
  2. Risiko tergelincir - Kemungkinan menghadapi tergelincir yang ketara di pasaran yang bergerak pantas, yang mempengaruhi prestasi strategi
  3. Sensitiviti Parameter - Pilihan tempoh ATR dan pekali mempunyai kesan yang ketara terhadap prestasi strategi
  4. Risiko Pengurusan Wang - Tetapan kuantiti dagangan yang tidak betul boleh membawa kepada risiko leverage yang berlebihan
  5. Risiko Volatiliti Pasaran - Tahap Stop-Loss boleh dilanggar dengan serta-merta semasa tempoh Volatiliti yang melampau

Arahan Pengoptimuman Strategi

  1. Memperkenalkan mekanisme pengiktirafan persekitaran pasaran untuk menggunakan kombinasi parameter yang berbeza dalam keadaan pasaran yang berbeza
  2. Tambah faktor jumlah sebagai penapis isyarat untuk meningkatkan kebolehpercayaan isyarat perdagangan
  3. Mengoptimumkan algoritma pengurusan wang untuk menyesuaikan saiz kedudukan secara dinamik berdasarkan turun naik
  4. Tambah mekanisme penapisan masa untuk mengelakkan perdagangan semasa tempoh yang tidak sesuai
  5. Membangunkan sistem pengoptimuman parameter adaptif untuk pelarasan parameter dinamik

Ringkasan

Strategi ini membina sistem berhenti yang boleh dipercayai dengan menggabungkan penunjuk ATR dan purata bergerak EMA. Kekuatannya terletak pada penyesuaian turun naik pasaran, pengurusan risiko yang komprehensif, dan fleksibiliti operasi. Walaupun terdapat risiko yang melekat, strategi ini menunjukkan janji untuk prestasi yang stabil di pelbagai persekitaran pasaran melalui pengoptimuman dan peningkatan yang berterusan. Pedagang dinasihatkan untuk menguji secara menyeluruh kombinasi parameter dan mengoptimumkan berdasarkan ciri instrumen tertentu sebelum perdagangan langsung.


/*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')

Berkaitan

Lebih lanjut