Strategi henti kerugian ATR momentum skor Z digabungkan dengan nisbah pulangan risiko untuk mengoptimumkan sistem perdagangan

ATR RR MA
Tarikh penciptaan: 2025-02-20 13:40:12 Akhirnya diubah suai: 2025-02-27 17:41:05
Salin: 1 Bilangan klik: 398
2
fokus pada
319
Pengikut

Strategi henti kerugian ATR momentum skor Z digabungkan dengan nisbah pulangan risiko untuk mengoptimumkan sistem perdagangan Strategi henti kerugian ATR momentum skor Z digabungkan dengan nisbah pulangan risiko untuk mengoptimumkan sistem perdagangan

Gambaran keseluruhan

Strategi ini adalah sistem perdagangan yang lengkap yang menggabungkan beberapa petunjuk teknikal, terutamanya berdasarkan skor Z untuk mengukur jumlah perdagangan dan nilai-nilai anomali saiz entiti K-line, dan menggunakan ATR (Average True Range) untuk menetapkan stop loss dinamik. Sistem ini juga mengintegrasikan RR (Risk-to-Rate) untuk mengoptimumkan sasaran keuntungan, memberikan isyarat perdagangan yang boleh dipercayai melalui analisis teknikal berbilang dimensi.

Prinsip Strategi

Logik teras strategi adalah berdasarkan komponen utama berikut:

  1. Analisis Skor Z: Mengira perbezaan piawai antara jumlah dagangan dan entiti K-Line untuk mengenal pasti aktiviti luar biasa pasaran
  2. Pengesahan trend: pengesahan arah trend dengan menganalisis harga tinggi dan rendah dan harga penutupan K yang berdekatan
  3. Hentikan ATR: menggunakan kedudukan hentikan nilai ATR dinamik untuk memberikan kawalan risiko yang lebih fleksibel
  4. Nisbah risiko-kebajikan: sasaran keuntungan dikira secara automatik berdasarkan nisbah RR yang ditetapkan
  5. Penanda visual: menandakan isyarat perdagangan dan tahap harga utama pada carta

Kelebihan Strategik

  1. Pengesahan isyarat pelbagai dimensi: menggabungkan jumlah, pergerakan harga dan arah trend untuk meningkatkan kebolehpercayaan isyarat perdagangan
  2. Pengurusan Risiko Dinamis: Beradaptasi dengan lebih baik terhadap turun naik pasaran melalui ATR
  3. Konfigurasi parameter yang fleksibel: membolehkan penyesuaian nilai rendah skor Z, kelipatan ATR dan nisbah keuntungan risiko
  4. Masa masuk yang tepat: Mengenali peluang perdagangan utama menggunakan nilai Z-score yang luar biasa
  5. Visualisasi yang jelas: titik masuk, titik henti dan sasaran keuntungan yang jelas ditandakan pada carta

Risiko Strategik

  1. Sensitiviti parameter: tetapan nilai terhad Z-score dan ATR-multiplier secara langsung mempengaruhi frekuensi perdagangan dan kawalan risiko
  2. Ketergantungan kepada keadaan pasaran: isyarat perdagangan yang kurang mungkin dihasilkan dalam keadaan turun naik yang rendah
  3. Kompleksiti pengiraan: Pengiraan pelbagai petunjuk mungkin menyebabkan kelewatan penjanaan isyarat
  4. Risiko slippage: Mungkin terdapat perbezaan antara harga pelaksanaan sebenar dan harga isyarat dalam pasaran pantas
  5. Risiko penembusan palsu: isyarat penembusan yang mungkin mencetuskan kesilapan dalam pasaran.

Arah pengoptimuman strategi

  1. Penapis keadaan pasaran: penapis kadar turun naik pasaran ditambah, parameter penyesuaian dinamik dalam keadaan pasaran yang berbeza
  2. Mekanisme pengesahan isyarat: memperkenalkan lebih banyak penunjuk teknikal untuk disahkan silang, seperti RSI atau MACD
  3. Pengurusan kedudukan yang dioptimumkan: menyesuaikan kedudukan secara dinamik berdasarkan kadar turun naik dan risiko akaun
  4. Analisis kitaran masa berbilang: mengukuhkan trend untuk mengintegrasikan kitaran masa yang lebih tinggi, meningkatkan kadar kejayaan dagangan
  5. Optimasi penapisan isyarat: menambah syarat penapisan tambahan untuk mengurangkan isyarat palsu

ringkaskan

Strategi ini membina sistem perdagangan yang lengkap dengan menggabungkan analisis skor Z, pengoptimuman stop loss ATR dan nisbah keuntungan risiko. Kelebihan sistem adalah pengiktirafan isyarat berbilang dimensi dan pengurusan risiko yang fleksibel, tetapi masih perlu mengambil kira kesan tetapan parameter dan persekitaran pasaran. Dengan arah pengoptimuman yang disyorkan, strategi dapat meningkatkan kestabilan dan kesesuaian lebih lanjut.

Kod sumber strategi
/*backtest
start: 2024-10-01 00:00:00
end: 2025-02-18 08:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/

//@version=5
strategy("admbrk | Candle Color & Price Alarm with ATR Stop", overlay=true, initial_capital=50, default_qty_type=strategy.cash, default_qty_value=200, commission_type=strategy.commission.percent, commission_value=0.05, pyramiding=3)

// **Risk/Reward ratio (RR) as input**
rr = input.float(2.0, title="Risk/Reward Ratio (RR)", step=0.1)

// **Z-score calculation function**
f_zscore(src, len) =>
    mean = ta.sma(src, len)     
    std = ta.stdev(src, len)
    (src - mean) / std

// **Z-score calculations**
len = input(20, "Z-Score MA Length")
z1 = input.float(1.5, "Threshold z1", step=0.1)
z2 = input.float(2.5, "Threshold z2", step=0.1)

z_volume = f_zscore(volume, len)
z_body = f_zscore(math.abs(close - open), len)

i_src = input.string("Volume", title="Source", options=["Volume", "Body size", "Any", "All"])

float z = na
if i_src == "Volume"
    z := z_volume
else if i_src == "Body size"
    z := z_body
else if i_src == "Any"
    z := math.max(z_volume, z_body)
else if i_src == "All"
    z := math.min(z_volume, z_body)

// **Determine trend direction**
green = close >= open
red = close < open

// **Long and Short signals**
longSignal = barstate.isconfirmed and red[1] and low < low[1] and green
shortSignal = barstate.isconfirmed and green[1] and high > high[1] and red

long = longSignal and (z >= z1)
short = shortSignal and (z >= z1)

// **ATR calculation (for ATR Stop)**
atrLength = input.int(14, title="ATR Length")
atrMultiplier = input.float(1.5, title="ATR Stop Multiplier")
atrValue = ta.atr(atrLength)

// **ATR-based stop-loss calculation**
long_atr_stop = close - atrValue * atrMultiplier
short_atr_stop = close + atrValue * atrMultiplier

// **Stop-loss setting (set to the lowest/highest wick of the last two bars)**
long_sl = ta.lowest(low, 2)  // Long stop-loss (lowest of the last 2 bars)
short_sl = ta.highest(high, 2) // Short stop-loss (highest of the last 2 bars)

// **Take-profit calculation (with RR)**
long_tp = close + (close - long_sl) * rr
short_tp = close - (short_sl - close) * rr

triggerAlarm(symbol)=>
    status = close
    var string message = na
    alarmMessageJSON = syminfo.ticker + message +"\\n" + "Price: " + str.tostring(status) 
    
if long
    // Open Long position
    strategy.entry("Long", strategy.long)
    strategy.exit("Long Exit", from_entry="Long", stop=math.max(long_sl, long_atr_stop), limit=long_tp)
    

if short
    // Open Short position
    strategy.entry("Short", strategy.short)
    strategy.exit("Short Exit", from_entry="Short", stop=math.min(short_sl, short_atr_stop), limit=short_tp)
    

// **Coloring the candles (BUY = Green, SELL = Red)**
barcolor(long ? color.green : short ? color.red : na)

// **Add entry/exit markers on the chart**
plotshape(long, title="BUY Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small, text="BUY")
plotshape(short, title="SELL Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small, text="SELL")

// **Plot TP and SL markers on exits**
exitLong = strategy.position_size < strategy.position_size[1] and strategy.position_size[1] > 0
exitShort = strategy.position_size > strategy.position_size[1] and strategy.position_size[1] < 0

plotshape(exitLong, title="Long Exit", location=location.abovebar, color=color.blue, style=shape.labeldown, size=size.tiny, text="TP/SL")
plotshape(exitShort, title="Short Exit", location=location.belowbar, color=color.orange, style=shape.labelup, size=size.tiny, text="TP/SL")

// **Add alerts**
alertcondition(long, title="Long Signal", message="Long signal triggered!")
alertcondition(short, title="Short Signal", message="Short signal triggered!")