Strategi Tren Rata-rata Rentang Sejati yang Dioptimalkan v6 (Pengambilan Tren Tetap)

ATR EMA SMMA RSI TSL
Tanggal Pembuatan: 2025-03-31 16:50:30 Akhirnya memodifikasi: 2025-03-31 16:50:41
menyalin: 0 Jumlah klik: 417
2
fokus pada
319
Pengikut

Strategi Tren Rata-rata Rentang Sejati yang Dioptimalkan v6 (Pengambilan Tren Tetap) Strategi Tren Rata-rata Rentang Sejati yang Dioptimalkan v6 (Pengambilan Tren Tetap)

Ringkasan

Ini adalah strategi pelacakan tren berdasarkan rentang rata-rata nyata (ATR) yang dirancang untuk menangkap perdagangan probabilitas tinggi dengan menggabungkan beberapa indikator teknis. Strategi ini menggabungkan filter ATR, indikator supertrend, indeks moving average (EMA) dan indeks moving average sederhana (SMMA), band tren, indikator RSI yang relatif kuat, dan sistem stop loss dinamis untuk memberikan metode perdagangan yang komprehensif dan fleksibel.

Prinsip Strategi

Prinsip-prinsip inti dari strategi ini didasarkan pada sinergi dari beberapa indikator teknis:

  1. Identifikasi tren: Menggunakan indikator supertrend (parameter: faktor 2, panjang 5) dan 50 hari EMA dan 8 hari SMMA untuk menentukan arah tren pasar. Tren dikodekan dengan warna:

    • Hijau: tren bullish
    • Merah: tren turun
    • Abu-abu: fase netral
  2. ATR Smart Filter: Ekspansi volatilitas terdeteksi melalui 14 siklus ATR dan 50 siklus rata-rata bergerak sederhana, hanya melakukan perdagangan ketika ATR naik atau di atas SMA 101% untuk memastikan hanya masuk dalam tren kuat.

  3. Syarat masuk:

    • Lebih banyak masuk: harga di atas 50 hari EMA, super bullish, RSI > 45, ATR mengkonfirmasi kekuatan tren
    • Pendaftaran terbuka: harga di bawah 50 hari EMA, super trend turun, RSI < 45, ATR mengkonfirmasi kekuatan tren
  4. Stop loss dan stop loss dinamis:

    • Stop Stop: Adaptif Stop Stop berdasarkan 5x ATR
    • Stop loss: Tracking stop loss 3.5 kali ATR
    • Stop loss: dimulai setelah harga bergerak 2 kali ATR
    • Stop loss tetap: Mengelola risiko dengan ATR 0,8 kali lipat

Keunggulan Strategis

  1. Efektif menyaring pasar yang bergejolak dan menghindari perdagangan di zona rendah
  2. Mencegah overtrading, mencegah re-entry prematur melalui mekanisme penguncian.
  3. Menangkap tren yang kuat, melacak stop loss memungkinkan keuntungan untuk bertahan
  4. Kurangi penarikan, ATR dasar stop loss mencegah kerugian besar
  5. Parameter yang dapat disesuaikan untuk ATR, stop loss, stop loss dan RSI filter yang dapat disesuaikan dengan pasar yang berbeda

Risiko Strategis

  1. Terlalu banyak mengandalkan indikator teknis dapat menyebabkan sinyal palsu
  2. Performa yang mungkin buruk di pasar yang bergejolak
  3. Pengaturan parameter yang tidak tepat dapat meningkatkan biaya transaksi
  4. RSI mengkonfirmasi kemungkinan kehilangan perubahan tren cepat

Arah optimasi strategi

  1. Memperkenalkan algoritma pembelajaran mesin, parameter penyesuaian dinamis
  2. Menambahkan filter tambahan, seperti konfirmasi pengiriman
  3. Menjelajahi kombinasi parameter optimal untuk berbagai pasar dan kerangka waktu
  4. Mengembangkan mekanisme verifikasi multi-time frame

Meringkaskan

Ini adalah strategi pelacakan tren canggih yang menyediakan alat perdagangan yang fleksibel dan kuat bagi para pedagang melalui sinkronisasi multi-indikator dan manajemen risiko dinamis. Pemantauan dan pengoptimalan berkelanjutan adalah kunci untuk menerapkan strategi ini dengan sukses.

Kode 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)