Sumber dimuat naik... memuat...

Trend Dinamik Berikutan Strategi Saluran Rata-rata Bergerak Berganda dengan Sistem Pengurusan Risiko

Penulis:ChaoZhang, Tarikh: 2025-01-10 16:26:56
Tag:SMAMAC

 Dynamic Trend Following Dual Moving Average Channel Strategy with Risk Management System

Ringkasan

Strategi ini adalah sistem trend berikut dinamik berdasarkan saluran purata bergerak berganda, digabungkan dengan mekanisme pengurusan risiko. Ia menggunakan dua Purata Moving Sederhana (SMA) untuk membina saluran dagangan, dengan jalur atas dikira menggunakan harga tinggi dan jalur bawah menggunakan harga rendah. Sistem ini menghasilkan isyarat masuk apabila harga penutupan kekal di atas jalur atas selama lima bar berturut-turut, dan isyarat keluar apabila harga jatuh di bawah jalur bawah selama lima bar berturut-turut atau kembali 25% dari titik tertinggi, mencapai penjejakan trend dinamik dan kawalan risiko.

Prinsip Strategi

Prinsip-prinsip utama melibatkan menangkap trend harga melalui saluran purata bergerak berganda dan mewujudkan mekanisme kemasukan dan keluar yang ketat: 1. Mekanisme kemasukan: Memerlukan harga untuk mengekalkan di atas jalur atas selama lima hari berturut-turut, memastikan kesinambungan trend dan kesahihan 2. Mekanisme Keluar: Bekerja pada dua peringkat - Trend Deviation Exit: Dihidupkan apabila harga jatuh di bawah band bawah selama lima hari berturut-turut, menunjukkan potensi pembalikan trend - Stop-Loss Exit: diaktifkan apabila harga kembali 25% dari titik tertinggi, mengelakkan kerugian berlebihan 3. Pengurusan Kedudukan: Menggunakan peratusan tetap ekuiti akaun untuk saiz kedudukan, memastikan peruntukan modal yang berkesan

Kelebihan Strategi

  1. Trend Berikutan Kestabilan: Menyaring keluar pecah palsu dengan memerlukan lima hari berturut-turut pengesahan
  2. Kawalan Risiko Komprehensif: Menggabungkan mekanisme penyimpangan trend dan stop-loss untuk perlindungan berganda
  3. Parameter fleksibel: Tempoh purata bergerak dan peratusan stop-loss boleh dioptimumkan untuk ciri pasaran yang berbeza
  4. Logik pelaksanaan yang jelas: Syarat kemasukan dan keluar yang muktamad mengurangkan gangguan penilaian subjektif
  5. Pengurusan Modal Saintifik: Menggunakan kedudukan peratusan akaun dan bukannya lot tetap untuk kawalan risiko yang lebih baik

Risiko Strategi

  1. Risiko pasaran yang berbelit-belit: cenderung kepada isyarat palsu di pasaran sampingan, yang membawa kepada perdagangan yang kerap
  2. Risiko tergelincir: Harga pelaksanaan stop-loss boleh menyimpang dengan ketara daripada jangkaan di pasaran pantas
  3. Pergantungan Parameter: Parameter optimum boleh berbeza dengan ketara di persekitaran pasaran yang berbeza
  4. Trend Lag: Purata bergerak memperkenalkan beberapa kelewatan pada titik pembalikan trend
  5. Kecekapan Modal: Syarat pegangan yang ketat mungkin kehilangan beberapa peluang keuntungan

Arahan pengoptimuman

  1. Pengoptimuman Parameter Dinamik: Membangunkan sistem parameter adaptif yang menyesuaikan tempoh purata bergerak secara automatik berdasarkan turun naik pasaran
  2. Penapisan persekitaran pasaran: Tambah penunjuk kekuatan trend untuk mengurangkan kekerapan dagangan secara automatik di pasaran yang bergolak
  3. Pengesahan Jangka Masa Berbilang: Menggabungkan mekanisme pengesahan trend jangka masa yang lebih lama untuk meningkatkan kebolehpercayaan isyarat
  4. Pengoptimuman Stop-Loss: Memperkenalkan mekanisme stop-loss dinamik yang menyesuaikan secara automatik berdasarkan turun naik
  5. Pengoptimuman Pengurusan Posisi: Sesuaikan saiz kedudukan secara dinamik berdasarkan turun naik dan nisbah risiko-balasan

Ringkasan

Strategi ini membina sistem perdagangan trend berikut yang lengkap melalui saluran purata bergerak berganda, menggabungkan pengesahan kemasukan yang ketat dan mekanisme keluar berganda untuk mencapai penjejakan trend dan kawalan risiko yang berkesan. kekuatan strategi terletak pada logik pelaksanaannya yang jelas dan kawalan risiko yang komprehensif, walaupun ia memerlukan pengoptimuman parameter untuk persekitaran pasaran yang berbeza dan dapat ditingkatkan lagi melalui penapisan persekitaran pasaran dan pengesahan jangka masa berganda. Secara keseluruhan, ia mewakili strategi perdagangan kuantitatif yang strukturnya lengkap dan logiknya ketat, sesuai untuk digunakan di pasaran dengan trend yang jelas.


/*backtest
start: 2025-01-02 00:00:00
end: 2025-01-09 00:00:00
period: 10m
basePeriod: 10m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/

//@version=5
strategy("Moving Average Channel (MAC)", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// Parameters for Moving Averages
upperMALength = input.int(10, title="Upper MA Length")
lowerMALength = input.int(8, title="Lower MA Length")
stopLossPercent = input.float(25.0, title="Stop Loss (%)", minval=0.1) / 100

// Calculate Moving Averages
upperMA = ta.sma(high, upperMALength)
lowerMA = ta.sma(low, lowerMALength)

// Plot Moving Averages
plot(upperMA, color=color.red, title="Upper Moving Average")
plot(lowerMA, color=color.green, title="Lower Moving Average")

// Initialize variables
var int upperCounter = 0
var int lowerCounter = 0
var float entryPrice = na
var float highestPrice = na

// Update counters based on conditions
if (low <= upperMA)
    upperCounter := 0
else
    upperCounter += 1

if (high >= lowerMA)
    lowerCounter := 0
else
    lowerCounter += 1

// Entry condition: 5 consecutive bars above the Upper MA
if (upperCounter == 5 and strategy.position_size == 0)
    strategy.entry("Long", strategy.long)
    highestPrice := high  // Initialize highest price

// Update the highest price after entry
if (strategy.position_size > 0)
    highestPrice := na(highestPrice) ? high : math.max(highestPrice, high)

// Exit condition: 5 consecutive bars below the Lower MA
if (lowerCounter == 5 and strategy.position_size > 0)
    strategy.close("Long", comment="Exit: 5 bars below Lower MA")

// Stop-loss condition: Exit if market closes below 25% of the highest price since entry
stopLossCondition = low < highestPrice * (1 - stopLossPercent)
if (stopLossCondition and strategy.position_size > 0)
    strategy.close("Long", comment="Exit: Stop Loss")


Berkaitan

Lebih lanjut