Trend Berbilang Penunjuk Mengikuti Strategi Perdagangan Momentum

RSI MACD MA EMA SMA
Tarikh penciptaan: 2025-02-21 10:06:35 Akhirnya diubah suai: 2025-02-21 10:06:35
Salin: 0 Bilangan klik: 379
2
fokus pada
319
Pengikut

Trend Berbilang Penunjuk Mengikuti Strategi Perdagangan Momentum Trend Berbilang Penunjuk Mengikuti Strategi Perdagangan Momentum

Gambaran keseluruhan

Strategi ini adalah sistem perdagangan momentum trend-tracking yang menggabungkan pelbagai petunjuk teknikal. Ia terutamanya menilai arah trend besar melalui purata bergerak 200 hari (MA200), mengenal pasti peluang penyesuaian menggunakan purata bergerak 50 hari (EMA50), dan menggabungkan isyarat silang indikator yang agak kuat (RSI) dan percakapan perpindahan rata-rata pergerakan (MACD) untuk menentukan masa masuk.

Prinsip Strategi

Logik teras strategi ini adalah untuk meningkatkan ketepatan perdagangan melalui mekanisme penapisan berlapis. Pertama, dengan MA200 untuk menentukan trend utama pasaran, apabila harga berada di atas MA200, ia dinilai sebagai trend multihead, sebaliknya sebagai trend overhead. Setelah menentukan arah trend, strategi mencari peluang pemulihan di sekitar EMA50, meminta harga untuk menyentuh EMA50 dalam 5 kitaran terakhir.

Kelebihan Strategik

  1. Memperbaiki kebolehpercayaan transaksi melalui pengesahan berserta pelbagai indikator
  2. Menggabungkan trend dan faktor dinamik, ia mampu menangkap keadaan di peringkat besar
  3. Mekanisme panggilan balik mengurangkan risiko ke atas
  4. Mekanisme Henti Kerosakan Fleksibel untuk Melindungi Modal dan Menjaga Keadaan Besar
  5. Parameter yang boleh laras untuk menyesuaikan diri dengan keadaan pasaran yang berbeza
  6. Logik strategi adalah jelas, mudah difahami dan dilaksanakan

Risiko Strategik

  1. Penapisan pelbagai indikator boleh menyebabkan peluang perdagangan terlewat
  2. Isyarat palsu yang kerap mungkin berlaku dalam pasaran yang tidak menentu
  3. Rata-rata bergerak mempunyai keterbelakangan yang boleh mempengaruhi masa masuk
  4. Pendapatan risiko tetap berbeza berbanding dengan keadaan pasaran yang berbeza
  5. Parameter yang terlalu optimum boleh menyebabkan risiko overfit

Arah pengoptimuman strategi

  1. Memperkenalkan indikator turun naik, dinamika untuk menyesuaikan risiko dan ganjaran
  2. Menambah mekanisme penapisan keadaan pasaran, mengenal pasti trend dan pasaran yang bergolak
  3. Mengoptimumkan logik penghakiman panggilan balik dan meningkatkan ketepatan masa masuk
  4. Tambah mekanisme pengesahan volum untuk meningkatkan kebolehpercayaan isyarat
  5. Membangunkan sistem parameter adaptif untuk meningkatkan ketangguhan strategi

ringkaskan

Strategi ini membina satu sistem perdagangan trend yang lengkap dengan menggunakan pelbagai petunjuk teknikal secara komposit. Kelebihan strategi ini adalah bahawa pengesahan pelbagai isyarat meningkatkan kebolehpercayaan perdagangan, dan mekanisme kawalan risiko memberikan perlindungan yang baik kepada strategi. Walaupun terdapat beberapa risiko yang wujud, prestasi strategi dapat ditingkatkan lagi dengan arah pengoptimuman yang disyorkan.

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

//@version=6
strategy("Trend-Following Momentum Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=2)

// PARAMETERS
lengthMA200 = input(200, title="200-day MA Length")
lengthEMA50 = input(50, title="50-day EMA Length")
rsiLength = input(14, title="RSI Length")
macdFastLength = input(12, title="MACD Fast Length")
macdSlowLength = input(26, title="MACD Slow Length")
macdSignalLength = input(9, title="MACD Signal Length")
riskRewardRatio = input(1.5, title="Risk-Reward Ratio")
useTrailingStop = input(true, title="Use Trailing Stop?")
trailingPercent = input(1.0, title="Trailing Stop (%)") / 100

// INDICATORS
ma200 = ta.sma(close, lengthMA200) // 200-day MA
ema50 = ta.ema(close, lengthEMA50) // 50-day EMA
rsi = ta.rsi(close, rsiLength) // RSI
[macdLine, signalLine, _] = ta.macd(close, macdFastLength, macdSlowLength, macdSignalLength)

// TREND CONDITIONS
bullishTrend = close > ma200
bearishTrend = close < ma200

// PULLBACK CONDITION
recentPullbackLong = ta.barssince(close < ema50) < 5 // Price touched EMA50 in last 5 bars
recentPullbackShort = ta.barssince(close > ema50) < 5 // Price touched EMA50 in last 5 bars

// ENTRY CONDITIONS
longEntry = bullishTrend and ta.crossover(macdLine, signalLine) and rsi > 50 and recentPullbackLong
shortEntry = bearishTrend and ta.crossunder(macdLine, signalLine) and rsi < 50 and recentPullbackShort

// EXECUTE TRADES
if longEntry
    strategy.entry("Long", strategy.long)
    strategy.exit("Long Exit", from_entry="Long", limit=close * (1 + riskRewardRatio), stop=close * (1 - (1 / (1 + riskRewardRatio))), trail_price=useTrailingStop ? close * (1 - trailingPercent) : na)

if shortEntry
    strategy.entry("Short", strategy.short)
    strategy.exit("Short Exit", from_entry="Short", limit=close * (1 - riskRewardRatio), stop=close * (1 + (1 / (1 + riskRewardRatio))), trail_price=useTrailingStop ? close * (1 + trailingPercent) : na)

// PLOT INDICATORS
plot(ma200, title="200-day MA", color=color.blue, linewidth=2)
plot(ema50, title="50-day EMA", color=color.orange, linewidth=2)