Sumber daya yang dimuat... Pemuatan...

Strategi crossover rata-rata bergerak eksponensial yang dikelola risiko dinamis

Penulis:ChaoZhang, Tanggal: 2024-12-20 14:08:39
Tag:EMARRSLTPATR

img

Gambaran umum

Strategi ini adalah sistem mengikuti tren berdasarkan crossover Exponential Moving Average (EMA), menggabungkan ukuran posisi dinamis dan manajemen risiko.

Prinsip Strategi

Logika inti bergantung pada dua EMA dengan periode yang berbeda (default 9 dan 21). Sinyal masuk panjang dihasilkan ketika EMA cepat melintasi di atas EMA lambat, sementara posisi ditutup ketika EMA cepat melintasi di bawah EMA lambat.

Keuntungan Strategi

  1. Dimensi posisi dinamis memastikan risiko yang konsisten per perdagangan, menghindari risiko yang berlebihan dari ukuran posisi tetap.
  2. Mekanisme trailing stop secara efektif mengunci keuntungan dan keluar posisi ketika tren berbalik.
  3. Pengaturan rasio risiko-balasan memastikan rasio laba-rugi yang jelas untuk setiap perdagangan.
  4. Sinyal silang EMA secara efektif menangkap tren jangka menengah hingga panjang, mengurangi sinyal palsu.
  5. Sistem otomatis sepenuhnya menghilangkan gangguan emosional.

Risiko Strategi

  1. Dapat menghasilkan sinyal silang palsu yang sering terjadi di pasar yang berbeda, yang menyebabkan kerugian berturut-turut.
  2. Trailing stops bisa memicu terlalu awal di pasar yang sangat volatile, kehilangan tren yang lebih besar.
  3. Pengaturan risiko persentase tetap mungkin kurang fleksibel ketika volatilitas pasar berubah.
  4. Stop loss mungkin akan terlunta-lunta di pasar pembalikan cepat, menghasilkan kerugian yang lebih besar dari yang diharapkan.

Arahan Optimasi

  1. Menggabungkan indikator volatilitas (seperti ATR) untuk menyesuaikan secara dinamis tingkat stop loss dan take profit.
  2. Tambahkan filter kekuatan tren, seperti RSI atau ADX, untuk mengurangi sinyal palsu di pasar berkisar.
  3. Mengembangkan mekanisme penyesuaian periode EMA yang dinamis berdasarkan volatilitas pasar.
  4. Sertakan indikator konfirmasi volume untuk meningkatkan keandalan sinyal.
  5. Menerapkan mekanisme penyesuaian risiko dinamis berdasarkan kerugian baru-baru ini.

Ringkasan

Ini adalah sistem perdagangan lengkap yang menggabungkan metode analisis teknis klasik dengan konsep manajemen risiko modern. Strategi mengendalikan risiko melalui ukuran posisi dinamis dan trailing stop sambil menangkap peluang tren menggunakan crossover EMA. Meskipun ada beberapa keterbatasan yang melekat, arah optimasi yang disarankan dapat lebih meningkatkan ketahanan dan daya adaptasi strategi. Strategi ini sangat cocok untuk perdagangan tren jangka panjang dengan risiko terkontrol.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Bitcoin Exponential Profit Strategy", overlay=true)

// User settings
fastLength = input.int(9, title="Fast EMA Length", minval=1)
slowLength = input.int(21, title="Slow EMA Length", minval=1)
riskPercent = input.float(1, title="Risk % Per Trade", step=0.1) / 100
rewardMultiplier = input.float(2, title="Reward Multiplier (R:R)", step=0.1)
trailOffsetPercent = input.float(0.5, title="Trailing Stop Offset %", step=0.1) / 100

// Calculate EMAs
fastEMA = ta.ema(close, fastLength)
slowEMA = ta.ema(close, slowLength)

// Plot EMAs
plot(fastEMA, color=color.blue, title="Fast EMA")
plot(slowEMA, color=color.red, title="Slow EMA")

// Account balance and dynamic position sizing
capital = strategy.equity
riskAmount = capital * riskPercent

// Define Stop Loss and Take Profit Levels
stopLossLevel = close * (1 - riskPercent)
takeProfitLevel = close * (1 + rewardMultiplier * riskPercent)

// Trailing stop offset
trailOffset = close * trailOffsetPercent

// Entry Condition: Bullish Crossover
if ta.crossover(fastEMA, slowEMA)
    positionSize = riskAmount / math.max(close - stopLossLevel, 0.01)  // Prevent division by zero
    strategy.entry("Long", strategy.long, qty=positionSize)
    strategy.exit("TakeProfit", from_entry="Long", stop=stopLossLevel, limit=takeProfitLevel, trail_offset=trailOffset)

// Exit Condition: Bearish Crossunder
if ta.crossunder(fastEMA, slowEMA)
    strategy.close("Long")

// Labels for Signals
if ta.crossover(fastEMA, slowEMA)
    label.new(bar_index, low, "BUY", color=color.green, textcolor=color.white, style=label.style_label_up)
if ta.crossunder(fastEMA, slowEMA)
    label.new(bar_index, high, "SELL", color=color.red, textcolor=color.white, style=label.style_label_down)



Berkaitan

Lebih banyak