Strategi Aliran Berasaskan Julat Sebenar Purata Dioptimumkan v6 (Tangkapan Aliran Tetap)

ATR EMA SMMA RSI TSL
Tarikh penciptaan: 2025-03-31 16:50:30 Akhirnya diubah suai: 2025-03-31 16:50:41
Salin: 0 Bilangan klik: 417
2
fokus pada
319
Pengikut

Strategi Aliran Berasaskan Julat Sebenar Purata Dioptimumkan v6 (Tangkapan Aliran Tetap) Strategi Aliran Berasaskan Julat Sebenar Purata Dioptimumkan v6 (Tangkapan Aliran Tetap)

Gambaran keseluruhan

Ini adalah strategi pengesanan trend berdasarkan purata julat sebenar (ATR) yang direka untuk menangkap perdagangan berkemungkinan tinggi dengan menggabungkan pelbagai petunjuk teknikal. Strategi ini menggabungkan penapis ATR, penunjuk super trend, purata bergerak indeks (EMA) dan purata bergerak indeks (SMMA), pengesahan indeks yang agak kuat (RSI) dan sistem hentian dinamik untuk menyediakan kaedah perdagangan yang komprehensif dan fleksibel.

Prinsip Strategi

Prinsip-prinsip utama strategi ini adalah berdasarkan kepada kerja sama antara pelbagai indikator teknikal:

  1. Pengiktirafan Trend: Menggunakan indikator Super Trend ((parameter: faktor 2, panjang 5) dan 50 hari EMA dan 8 hari SMMA trend untuk menentukan arah trend pasaran. Trend dikodkan dengan warna:

    • Hijau: Trend kenaikan harga
    • Merah: Trend menurun
    • Abu-abu: tahap neutral
  2. Penapisan pintar ATR: Mengesan perluasan turun naik melalui 14 kitaran ATR dan 50 kitaran purata bergerak mudah, hanya berdagang apabila ATR naik atau lebih tinggi daripada 101% SMA, memastikan hanya masuk dalam trend yang kuat.

  3. Syarat penyertaan:

    • Memasukkan lebih banyak: harga lebih tinggi daripada EMA 50 hari, super trend bullish, RSI > 45, ATR mengesahkan kekuatan trend
    • Pendaftaran terbuka: harga di bawah EMA 50 hari, super trend menurun, RSI < 45, ATR mengesahkan kekuatan trend
  4. Hentikan Kerosakan dan Hentikan:

    • Penangguhan: Penangguhan beradaptasi berdasarkan ATR 5x
    • Hentikan Kerugian: 3.5 kali ATR Hentikan Kerugian
    • Penangguhan kerugian: Bermula selepas harga bergerak 2 kali ganda ATR
    • Hentian tetap: menggunakan 0.8 kali ganda ATR untuk pengurusan risiko

Kelebihan Strategik

  1. Menapis pasaran yang bergolak dengan berkesan, mengelakkan perdagangan di kawasan yang rendah
  2. Mencegah perdagangan berlebihan, mengelakkan kemasukan semula awal melalui mekanisme penguncian penghalang
  3. Menangkap Trend Kuat, Menjejaki Hentikan Kerugian Memungkinkan Keuntungan Berterusan
  4. Kurangkan penarikan balik, ATR asas berhenti untuk mengelakkan kerugian besar
  5. Parameter yang boleh disesuaikan, boleh menyesuaikan ATR, stop loss, stop loss dan penapis RSI untuk pasaran yang berbeza

Risiko Strategik

  1. Terlalu banyak bergantung kepada petunjuk teknikal boleh menyebabkan isyarat palsu
  2. Mungkin kurang baik dalam pasaran yang bergolak
  3. Pengaturan parameter yang tidak betul boleh meningkatkan kos urus niaga
  4. RSI mengesahkan mungkin terlepas perubahan trend pantas

Arah pengoptimuman strategi

  1. Memperkenalkan algoritma pembelajaran mesin, parameter penyesuaian dinamik
  2. Menambah penapis tambahan, seperti pengesahan jumlah pesanan
  3. Meneroka kombinasi parameter yang optimum dalam pelbagai pasaran dan tempoh masa
  4. Membangunkan mekanisme pengesahan pelbagai kerangka masa

ringkaskan

Ini adalah strategi trend-following canggih yang menyediakan pedagang dengan alat perdagangan yang fleksibel dan kuat melalui koordinasi pelbagai indikator dan pengurusan risiko yang dinamik. Pemantauan dan pengoptimuman berterusan adalah kunci untuk berjaya menggunakan strategi ini.

Kod sumber strategi
/*backtest
start: 2024-03-31 00:00:00
end: 2025-03-29 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=6
strategy("Optimized ATR-Based Trend Strategy v6 (Fixed Trend Capture)", overlay=true)

// 🔹 Input parameters
lengthSMMA = input(8, title="SMMA Length")
lengthEMA = input(50, title="EMA Length")
supertrendFactor = input(2.0, title="Supertrend Factor")
supertrendLength = input(5, title="Supertrend Length")
atrLength = input(14, title="ATR Length")  
atrSmoothing = input(50, title="ATR Moving Average Length")  
atrMultiplierTP = input.float(5.0, title="ATR Multiplier for Take-Profit", minval=1.0, step=0.5)  
atrMultiplierTSL = input.float(3.5, title="ATR Multiplier for Trailing Stop-Loss", minval=1.0, step=0.5)  // 🔹 Increased to ride trends
atrStopMultiplier = input.float(0.8, title="ATR Stop Multiplier", minval=0.5, step=0.1)  
breakEvenMultiplier = input.float(2.0, title="Break-Even Trigger ATR Multiplier", minval=1.0, step=0.1)
rsiLength = input(14, title="RSI Length")  

// 🔹 Indicator calculations
smma8 = ta.sma(ta.sma(close, lengthSMMA), lengthSMMA)  
ema50 = ta.ema(close, lengthEMA)  

// 🔹 Supertrend Calculation
[superTrend, _] = ta.supertrend(supertrendFactor, supertrendLength)

// 🔹 Supertrend Conditions
isBullishSupertrend = close > superTrend
isBearishSupertrend = close < superTrend

// 🔹 ATR Calculation for Smarter Filtering
atrValue = ta.atr(atrLength)
atrMA = ta.sma(atrValue, atrSmoothing)
atrRising = ta.rising(atrValue, 3)  // 🔹 More sensitive ATR detection
isTrending = atrValue > atrMA * 1.01 or atrRising  // 🔹 Loosened ATR filter

// 🔹 RSI Calculation
rsi = ta.rsi(close, rsiLength)

// 🔹 RSI Conditions (More Flexible)
isRSIBullish = rsi > 45  // 🔹 Lowered to capture early trends
isRSIBearish = rsi < 45  

// 🔹 TP Lock Mechanism
var bool tpHit = false  
if strategy.position_size == 0 and strategy.closedtrades > 0
    tpHit := true  

// 🔹 Supertrend Flip Detection (Resumes Trading After Trend Change)
trendFlip = (isBullishSupertrend and not isBullishSupertrend[1]) or (isBearishSupertrend and not isBearishSupertrend[1])
if trendFlip
    tpHit := false  

// 🔹 Entry Conditions
bullishEntry = close > ema50 and isBullishSupertrend and isRSIBullish and isTrending and not tpHit
bearishEntry = close < ema50 and isBearishSupertrend and isRSIBearish and isTrending and not tpHit

// 🔹 Dynamic Take-Profit, Stop-Loss, and Break-Even Stop
longTakeProfit = close + (atrValue * atrMultiplierTP)  
shortTakeProfit = close - (atrValue * atrMultiplierTP)  
longTrailStop = atrValue * atrMultiplierTSL  
shortTrailStop = atrValue * atrMultiplierTSL  

// ✅ Adjusted SL to Reduce Drawdown
longStopLoss = close - (atrValue * atrMultiplierTSL * atrStopMultiplier)
shortStopLoss = close + (atrValue * atrMultiplierTSL * atrStopMultiplier)

// ✅ Break-Even Stop Trigger (More Room for Trends)
longBreakEven = strategy.position_avg_price + (atrValue * breakEvenMultiplier)
shortBreakEven = strategy.position_avg_price - (atrValue * breakEvenMultiplier)

// 🔹 Strategy Execution (Fixed Take-Profit & Stop-Loss)
if (bullishEntry)
    strategy.entry("Buy", strategy.long)
    strategy.exit("TSL/TP", from_entry="Buy", stop=longStopLoss, trail_offset=longTrailStop, limit=longTakeProfit)
    strategy.exit("BreakEven", from_entry="Buy", stop=longBreakEven)

if (bearishEntry)
    strategy.entry("Sell", strategy.short)
    strategy.exit("TSL/TP", from_entry="Sell", stop=shortStopLoss, trail_offset=shortTrailStop, limit=shortTakeProfit)
    strategy.exit("BreakEven", from_entry="Sell", stop=shortBreakEven)

// 🔹 Trend Band
trendColor = isBullishSupertrend and smma8 > ema50 and close > ema50 ? color.green :
             isBearishSupertrend and smma8 < ema50 and close < ema50 ? color.red : color.gray
fill(plot(smma8, color=color.new(trendColor, 60), title="8 SMMA Band"),
     plot(ema50, color=color.new(trendColor, 60), title="50 EMA Band"),
     color=color.new(trendColor, 80), title="Trend Band")

// 🔹 Supertrend Line
plot(superTrend, color=color.gray, title="Supertrend", style=plot.style_line)