Sumber dimuat naik... memuat...

Strategi Crossover Purata Bergerak Eksponensial yang Diuruskan Risiko Dinamik

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

img

Ringkasan

Strategi ini adalah sistem mengikuti trend berdasarkan crossover Exponential Moving Average (EMA), menggabungkan ukuran kedudukan dinamik dan pengurusan risiko. Ia menggunakan isyarat silang EMA yang cepat dan perlahan untuk mengenal pasti trend pasaran sambil menyesuaikan saiz perdagangan secara dinamik melalui pengiraan risiko peratusan dan menggunakan penangguhan untuk melindungi keuntungan.

Prinsip Strategi

Logik teras bergantung pada dua EMA dengan tempoh yang berbeza (default 9 dan 21). Isyarat masuk panjang dihasilkan apabila EMA cepat melintasi di atas EMA perlahan, sementara kedudukan ditutup apabila EMA cepat melintasi di bawah EMA perlahan. Setiap saiz perdagangan dikira secara dinamik berdasarkan risiko peratusan tetap (default 1%) daripada jumlah ekuiti akaun, dengan tahap mengambil keuntungan ditetapkan mengikut nisbah risiko-balasan dan peratusan berpangkalan di belakang berhenti.

Kelebihan Strategi

  1. Ukuran kedudukan dinamik memastikan risiko yang konsisten setiap perdagangan, mengelakkan risiko berlebihan saiz kedudukan tetap.
  2. Mekanisme hentian yang berkesan mengunci keuntungan dan keluar dari kedudukan apabila trend berbalik.
  3. Tetapan nisbah risiko-balasan memastikan nisbah keuntungan-kerugian yang jelas untuk setiap perdagangan.
  4. Isyarat silang EMA secara berkesan menangkap trend jangka sederhana hingga panjang, mengurangkan isyarat palsu.
  5. Sistem automatik sepenuhnya menghapuskan gangguan emosi.

Risiko Strategi

  1. Boleh menghasilkan isyarat silang palsu yang kerap di pasaran yang berbeza, yang membawa kepada kerugian berturut-turut.
  2. Penghentian penghantaran mungkin dicetuskan terlalu awal di pasaran yang sangat tidak menentu, kehilangan trend yang lebih besar.
  3. Tetapan risiko peratusan tetap mungkin kurang fleksibel apabila turun naik pasaran berubah.
  4. Stop loss boleh melompat di pasaran pembalikan pantas, mengakibatkan kerugian yang lebih besar daripada yang dijangkakan.

Arahan pengoptimuman

  1. Menggabungkan penunjuk turun naik (seperti ATR) untuk menyesuaikan secara dinamik tahap stop-loss dan mengambil keuntungan.
  2. Tambah penapis kekuatan trend, seperti RSI atau ADX, untuk mengurangkan isyarat palsu di pasaran yang berbeza.
  3. Membangunkan mekanisme penyesuaian tempoh EMA yang dinamik berdasarkan turun naik pasaran.
  4. Sertakan penunjuk pengesahan jumlah untuk meningkatkan kebolehpercayaan isyarat.
  5. Melaksanakan mekanisme penyesuaian risiko dinamik berdasarkan kerugian baru-baru ini.

Ringkasan

Ini adalah sistem dagangan lengkap yang menggabungkan kaedah analisis teknikal klasik dengan konsep pengurusan risiko moden. Strategi ini mengawal risiko melalui pengukuran kedudukan dinamik dan hentian jejak sambil menangkap peluang trend menggunakan persimpangan EMA. Walaupun terdapat beberapa batasan yang melekat, arah pengoptimuman yang dicadangkan dapat meningkatkan lagi kekuatan dan daya adaptasi strategi. Strategi ini sangat sesuai untuk perdagangan trend jangka panjang dengan risiko terkawal.


/*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 lanjut