Strategi perdagangan trend henti untung purata bergerak ganda dan hentikan kerugian

SMA MA TP SL CROSSOVER
Tarikh penciptaan: 2025-02-20 15:08:54 Akhirnya diubah suai: 2025-02-27 17:36:23
Salin: 0 Bilangan klik: 331
2
fokus pada
319
Pengikut

Strategi perdagangan trend henti untung purata bergerak ganda dan hentikan kerugian Strategi perdagangan trend henti untung purata bergerak ganda dan hentikan kerugian

Gambaran keseluruhan

Strategi ini adalah sistem perdagangan trend-tracking yang berasaskan dua persimpangan rata-rata, yang digabungkan dengan mekanisme pengurusan risiko. Strategi ini menggunakan purata bergerak sederhana ((SMA) 9 dan 21 kitaran untuk menangkap trend pasaran, sambil menetapkan stop loss dan berhenti 1% untuk mengawal risiko. Sistem ini melakukan lebih banyak masuk ketika melintasi garis rata-rata jangka panjang pada garis rata-rata jangka pendek, dan keluar ketika melintasi garis rata-rata jangka panjang di bawah garis rata-rata jangka pendek.

Prinsip Strategi

Logik teras strategi didasarkan pada ciri-ciri kesinambungan trend pasaran. Dengan melihat persilangan rata-rata bergerak jangka pendek (siklus 9) dan jangka panjang (siklus 21) untuk menilai titik peralihan trend. Apabila “Gold Fork” terbentuk di atas rata-rata jangka pendek yang melintasi garis rata-rata jangka panjang, yang menunjukkan permulaan trend menaik, sistem mengeluarkan banyak isyarat; apabila “Dead Fork” terbentuk di bawah rata-rata jangka pendek yang melintasi garis rata-rata jangka panjang, yang menunjukkan kemungkinan berakhirnya trend menaik, sistem keluar dari kedudukan kosong.

Kelebihan Strategik

  1. Keupayaan menangkap trend yang kuat: Dengan menangkap titik peralihan trend dengan dua garis sejajar, anda dapat lebih memahami trend utama pasaran.
  2. Kawalan risiko yang sempurna: menetapkan stop loss dan stop stop yang tetap untuk mengawal risiko perdagangan tunggal.
  3. Tingkat automasi yang tinggi: Sistem beroperasi secara automatik tanpa campur tangan manusia.
  4. Kesan visual yang baik: menunjukkan isyarat perdagangan dan kawasan kawalan risiko dengan jelas melalui antara muka grafik.
  5. Fleksibiliti pengoptimuman parameter: kitaran garis rata-rata dan nisbah stop loss boleh disesuaikan mengikut ciri-ciri pasaran yang berbeza.

Risiko Strategik

  1. Risiko pasaran bergoyang: Dalam pasaran bergoyang, persilangan garis rata yang kerap boleh menyebabkan isyarat palsu.
  2. Risiko slippage: Dalam keadaan pasaran yang tidak menentu, harga transaksi sebenar mungkin bercanggah dengan harga isyarat.
  3. Risiko Trend Reversal: Apabila trend yang kuat tiba-tiba berbalik, penangguhan tetap mungkin tidak mencukupi untuk menangani turun naik yang besar.
  4. Kepercayaan parameter: prestasi strategi lebih sensitif terhadap pusingan purata dan parameter stop-loss.

Arah pengoptimuman strategi

  1. Memperkenalkan penapis trend: Tambah indikator kekuatan trend seperti ADX, dan buka kedudukan hanya apabila trend jelas.
  2. Mekanisme Hentian Kerugian Dinamis: boleh menggunakan ATR atau kadar turun naik untuk menyesuaikan amplitudo hentian kerugian secara dinamik.
  3. Meningkatkan pengesahan jumlah transaksi: Menggunakan jumlah transaksi sebagai penunjuk pengesahan tambahan untuk isyarat transaksi.
  4. Parameter pengoptimuman beradaptasi sendiri: menyesuaikan kitaran garis purata mengikut dinamik ciri turun naik pasaran.
  5. Menambah penapis kekuatan trend: Indikator seperti RSI boleh digunakan untuk menentukan kekuatan trend.

ringkaskan

Strategi ini adalah sistem perdagangan yang lebih lengkap untuk mengikuti trend dengan menangkap trend silang dua garis sejajar, dan menggabungkan mekanisme stop loss untuk mengawal risiko. Walaupun ia mungkin menghasilkan isyarat palsu di pasaran yang bergolak, dengan pengoptimuman parameter yang munasabah dan peningkatan indikator tambahan, anda dapat meningkatkan lagi kestabilan dan keuntungan strategi.

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

//@version=6
strategy("Moving Average Crossover with Stop Loss and Take Profit", overlay=true)

// Parameters for moving averages
short_length = input.int(9, title="Short Moving Average Length")  // Optimized for 15-minute time frame
long_length = input.int(21, title="Long Moving Average Length")   // Optimized for 15-minute time frame

// Parameters for risk management
stop_loss_percent = input.float(1.0, title="Stop Loss (%)") / 100  // 1% stop loss
take_profit_percent = input.float(1.0, title="Take Profit (%)") / 100  // 1% take profit

// Calculate moving averages
short_ma = ta.sma(close, short_length)
long_ma = ta.sma(close, long_length)

// Plot moving averages
plot(short_ma, color=color.blue, title="Short MA")
plot(long_ma, color=color.orange, title="Long MA")

// Entry and exit conditions
long_condition = ta.crossover(short_ma, long_ma)  // Golden Cross
short_condition = ta.crossunder(short_ma, long_ma)  // Death Cross

// Execute strategy with stop loss and take profit
if (long_condition)
    strategy.entry("Long", strategy.long)
    strategy.exit("Take Profit/Stop Loss", "Long", stop=strategy.position_avg_price * (1 - stop_loss_percent), limit=strategy.position_avg_price * (1 + take_profit_percent)  )

if (short_condition)
    strategy.close("Long")  // Close long position on Death Cross

// Plot Buy/Sell Signals
plotshape(series=long_condition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=short_condition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")

// Draw 1% stop loss level as a transparent red rectangle
var float stop_loss_level = na
var float entry_price = na
if (strategy.position_size > 0)  // Only update when in a trade
    stop_loss_level := strategy.position_avg_price * (1 - stop_loss_percent)
    entry_price := strategy.position_avg_price

// Create transparent colors
transparent_red = color.new(color.black, 90)  // 90% transparency
transparent_green = color.new(color.green, 90)  // 90% transparency

// Plot stop loss and entry levels conditionally
plot(strategy.position_size > 0 ? stop_loss_level : na, color=transparent_red, title="Stop Loss Level", linewidth=1)
plot(strategy.position_size > 0 ? entry_price : na, color=transparent_green, title="Entry Price", linewidth=1)

// Fill the area between stop loss and entry price conditionally
fill( plot(strategy.position_size > 0 ? stop_loss_level : na),  plot(strategy.position_size > 0 ? entry_price : na),  color=transparent_red)