Strategi perdagangan henti kerugian mengekor dinamik berdasarkan ATR

ATR EMA TS
Tarikh penciptaan: 2024-12-12 16:18:19 Akhirnya diubah suai: 2024-12-12 16:18:19
Salin: 0 Bilangan klik: 384
1
fokus pada
1617
Pengikut

Strategi perdagangan henti kerugian mengekor dinamik berdasarkan ATR

Gambaran keseluruhan

Strategi ini adalah strategi stop loss pengesanan dinamik berdasarkan ATR (Average True Range). Ia menyesuaikan kedudukan stop loss secara dinamik melalui nilai ATR dan mengesahkan isyarat perdagangan digabungkan dengan EMA rata-rata. Strategi ini menyokong pengurusan kedudukan yang fleksibel dan boleh menyesuaikan jumlah pembelian dan penjualan mengikut keadaan pasaran yang berbeza dan jenis perdagangan. Ia sangat sesuai untuk beroperasi pada kitaran masa sederhana seperti 5 minit hingga 2 jam dan dapat menangkap trend pasaran dengan berkesan.

Prinsip Strategi

Logik teras strategi adalah berdasarkan elemen utama berikut:

  1. Menggunakan indikator ATR untuk mengira kadar turun naik pasaran dan menyesuaikan jarak henti dengan faktor yang disesuaikan oleh pengguna
  2. Menubuhkan garis hentian dinamik yang akan menyesuaikan diri secara automatik dengan perubahan harga
  3. Menggunakan EMA Line Average dan Tracking Stop Line untuk mengesahkan isyarat dagangan
  4. Menjana isyarat dagangan apabila harga menembusi garis hentian dan EMA mengesahkan
  5. Mengendalikan jumlah setiap dagangan melalui sistem pengurusan kedudukan dan mengesan status portfolio dalam masa nyata

Kelebihan Strategik

  1. Adaptif - Indeks ATR dapat menyesuaikan jarak henti secara automatik mengikut turun naik pasaran, membolehkan strategi untuk mengekalkan prestasi yang baik dalam keadaan pasaran yang berbeza
  2. Pengurusan risiko yang sempurna - mekanisme hentian kerugian yang dinamik dapat melindungi keuntungan yang telah diperoleh dengan berkesan, sambil mengehadkan potensi kerugian
  3. Fleksibiliti operasi - menyokong jumlah dagangan tersuai dan parameter ATR yang boleh dioptimumkan mengikut ciri-ciri pelbagai jenis perdagangan
  4. Isyarat boleh dipercayai - Pengesahan garis rata melalui EMA, mengurangkan kesan isyarat palsu
  5. Automasi sepenuhnya - Strategi boleh beroperasi secara automatik sepenuhnya, mengurangkan gangguan emosi manusia

Risiko Strategik

  1. Risiko pasaran bergolak - pasaran bergolak di atas pijakan boleh menghasilkan isyarat pecah palsu yang kerap, yang menyebabkan terlalu banyak perdagangan
  2. Risiko slippage - mungkin menghadapi slippage yang lebih besar dalam keadaan pantas yang mempengaruhi prestasi strategi
  3. Sensitiviti parameter - pilihan kitaran dan faktor ATR mempunyai kesan yang lebih besar terhadap prestasi strategi
  4. Risiko pengurusan wang - risiko kelebihan leverage jika jumlah dagangan ditetapkan dengan tidak betul
  5. Risiko turun naik pasaran - dalam tempoh turun naik yang kuat, stop loss boleh ditembusi seketika

Arah pengoptimuman strategi

  1. Memperkenalkan mekanisme pengenalan keadaan pasaran, menggunakan kombinasi parameter yang berbeza dalam keadaan pasaran yang berbeza
  2. Penambahan faktor kuantiti pertukaran sebagai syarat penapisan isyarat untuk meningkatkan kebolehpercayaan isyarat perdagangan
  3. Mengoptimumkan algoritma pengurusan wang, menyesuaikan saiz pegangan mengikut kadar turun naik yang dinamik
  4. Menambah mekanisme penapisan masa untuk mengelakkan operasi pada masa yang tidak sesuai untuk perdagangan
  5. Membangunkan sistem pengoptimuman parameter yang beradaptasi untuk menyesuaikan parameter secara dinamik

ringkaskan

Strategi ini, dengan menggabungkan indikator ATR dan EMA rata-rata, membina sistem berhenti kehilangan yang dinamik yang boleh dipercayai. Kelebihannya adalah dapat menyesuaikan diri dengan turun naik pasaran, mempunyai mekanisme pengurusan risiko yang sempurna, sambil mengekalkan fleksibiliti operasi. Walaupun terdapat beberapa risiko yang wujud, tetapi dengan pengoptimuman dan penyempurnaan yang berterusan, strategi ini dijangka dapat mengekalkan prestasi yang stabil dalam keadaan pasaran yang berbeza.

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