Sumber dimuat naik... memuat...

Dual Moving Average Momentum Tracking Strategi Kuantitatif

Penulis:ChaoZhang, Tarikh: 2024-11-27 15:06:57
Tag:MASMAEMASMMARMAWMAVWMA

img

Ringkasan

Ini adalah strategi dagangan kuantitatif berdasarkan isyarat crossover purata bergerak berganda. Strategi ini menggunakan dua purata bergerak, satu sebagai garis isyarat utama dan satu lagi sebagai garis isyarat pelincir. Ia menjana isyarat dagangan dengan memantau persilangan harga dengan garis isyarat pelincir, membolehkan menangkap trend pasaran dan mengesan momentum.

Prinsip Strategi

Strategi ini menggunakan dua tahap pengiraan purata bergerak. Ia mula-mula mengira purata bergerak asas (periode lalai 9), diikuti dengan proses pelembap sekunder (periode lalai 5). Strategi ini menawarkan pelbagai kaedah pengiraan purata bergerak, termasuk Purata Bergerak Sederhana (SMA), Purata Bergerak Eksponensial (EMA), Purata Bergerak Lurus (SMMA), Purata Bergerak Berimbang (WMA), dan Purata Bergerak Berimbang Volume (VWMA). Isyarat panjang dihasilkan apabila harga penutupan melintasi di atas garis isyarat pelembap, sementara isyarat pendek dihasilkan apabila harga penutupan melintasi di bawahnya.

Kelebihan Strategi

  1. Mekanisme penjanaan isyarat yang jelas dan mudah, mudah difahami dan dilaksanakan
  2. Pengurangan isyarat palsu yang berkesan melalui pelembap sekunder
  3. Pelbagai kaedah pengiraan purata bergerak yang tersedia untuk ciri pasaran yang berbeza
  4. Konfigurasi parameter yang fleksibel untuk kitaran pasaran yang berbeza
  5. Struktur kod yang jelas, mudah dikekalkan dan berkembang
  6. Keupayaan yang kuat untuk mengikuti trend

Risiko Strategi

  1. Boleh menghasilkan isyarat perdagangan yang kerap di pasaran berayun, meningkatkan kos transaksi
  2. Beberapa kelewatan yang melekat, berpotensi terlepas permulaan pergerakan pasaran
  3. Kemungkinan pengeluaran yang signifikan semasa pembalikan pasaran yang cepat
  4. Strategi penunjuk teknikal tunggal, kekurangan penilaian persekitaran pasaran
  5. Risiko pemasangan berlebihan akibat pengoptimuman parameter yang berlebihan

Arahan Pengoptimuman Strategi

  1. Memperkenalkan mekanisme penilaian persekitaran pasaran untuk konfigurasi parameter yang berbeza
  2. Tambahkan mekanisme stop-loss dan mengambil keuntungan untuk kawalan risiko
  3. Melaksanakan penapis jumlah untuk mengelakkan perdagangan dalam persekitaran kecairan yang rendah
  4. Masukkan penunjuk teknikal tambahan sebagai isyarat pengesahan
  5. Membangunkan mekanisme parameter penyesuaian dinamik pasaran
  6. Tambah modul pengurusan kedudukan untuk kawalan kedudukan yang lebih fleksibel

Ringkasan

Ini adalah versi yang dipertingkatkan dari strategi trend-mengikut klasik yang meningkatkan kestabilan sambil mengekalkan kesederhanaan melalui reka bentuk purata bergerak dua lapisan. Strategi ini menawarkan skalabiliti dan fleksibiliti yang baik, dapat disesuaikan dengan persekitaran pasaran yang berbeza melalui pengoptimuman parameter dan pelanjutan fungsi. Walau bagaimanapun, pengguna perlu memberi perhatian kepada kawalan kos transaksi dan pengurusan risiko, dan disyorkan untuk menjalankan pengujian balik yang menyeluruh sebelum perdagangan langsung.


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

//@version=5
strategy("Moving Average 1.0 Strategy", overlay=true)

// Input for Moving Average Length
len = input.int(9, minval=1, title="Length")
src = input(close, title="Source")
offset = input.int(title="Offset", defval=0, minval=-500, maxval=500)

// Calculate the Moving Average
out = ta.sma(src, len)

// Plot the Moving Average
plot(out, color=color.blue, title="MA", offset=offset)

// Function to choose the type of moving average
ma(source, length, type) =>
    switch type
        "SMA" => ta.sma(source, length)
        "EMA" => ta.ema(source, length)
        "SMMA (RMA)" => ta.rma(source, length)
        "WMA" => ta.wma(source, length)
        "VWMA" => ta.vwma(source, length)

// Input for Smoothing Method and Length
typeMA = input.string(title="Method", defval="SMA", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="Smoothing")
smoothingLength = input.int(title="Smoothing Length", defval=5, minval=1, maxval=100, group="Smoothing")

// Calculate the Smoothing Line
smoothingLine = ma(out, smoothingLength, typeMA)

// Plot the Smoothing Line
plot(smoothingLine, title="Smoothing Line", color=color.rgb(120, 66, 134, 35), offset=offset)

// Strategy Logic
if (ta.crossover(close, smoothingLine))
    strategy.entry("Buy", strategy.long)

if (ta.crossunder(close, smoothingLine))
    strategy.entry("Sell", strategy.short)





Berkaitan

Lebih lanjut