Strategi Dagangan Purata Bergerak Berganda

Penulis:ChaoZhang, Tarikh: 2024-01-19 14:10:38
Tag:

img

Ringkasan

Strategi perdagangan purata bergerak berganda adalah strategi perdagangan kuantitatif yang biasa. Strategi ini menggunakan dua purata bergerak dengan tempoh masa yang berbeza untuk menjana isyarat perdagangan berdasarkan persilangan mereka. Khususnya, apabila purata bergerak jangka pendek melintasi di atas purata bergerak jangka panjang, ia dianggap isyarat beli; apabila purata bergerak jangka pendek melintasi di bawah purata bergerak jangka panjang, ia dianggap isyarat jual.

Prinsip

Prinsip utama strategi ini ialah: purata bergerak jangka pendek mencerminkan trend jangka pendek harga aset, dan purata bergerak jangka panjang mencerminkan trend jangka panjang harga aset. Apabila garis jangka pendek melintasi di atas garis jangka panjang, ia menunjukkan bahawa trend jangka pendek telah berubah menjadi naik, pada masa ini anda boleh membeli. Apabila garis jangka pendek melintasi di bawah garis jangka panjang, ia menunjukkan bahawa trend jangka pendek telah berubah menjadi jatuh, pada masa ini anda boleh menjual. Ikuti trend, menangkap titik perubahan trend harga.

Secara khusus, strategi ini menentukan dua purata bergerak: purata bergerak jangka pendek 5 hari untuk menangkap trend harga jangka pendek; dan purata bergerak jangka panjang 15 hari untuk menilai trend harga jangka panjang. Apabila garis 5 hari bergerak di atas garis 15 hari, ia menunjukkan bahawa harga jangka pendek telah mula meningkat, yang merupakan isyarat beli; apabila garis 5 hari melintasi di bawah garis 15 hari, ia menunjukkan bahawa harga jangka pendek mula jatuh, ini adalah isyarat jual.

Analisis Kelebihan

Berbanding dengan strategi lain, strategi purata bergerak berganda mempunyai kelebihan berikut:

  1. Mudah untuk beroperasi, mudah difahami dan dilaksanakan, sesuai untuk perdagangan kuantitatif pemula.
  2. Ikuti trend, mengelakkan mengejar sebab asas trend pasaran yang kompleks.
  3. Penyesuaian parameter yang fleksibel, tempoh purata bergerak boleh diselaraskan untuk menyesuaikan diri dengan persekitaran pasaran yang berbeza.
  4. Efektif penapis bising pasaran, menangkap titik perubahan trend jangka panjang dan pendek.
  5. Frekuensi dagangan yang boleh disesuaikan untuk mengurangkan kos transaksi dan kerugian slippage.

Analisis Risiko

Strategi purata bergerak berganda juga mempunyai beberapa risiko, terutamanya termasuk:

  1. Ia boleh menghasilkan isyarat palsu kerana purata bergerak pada dasarnya adalah isyarat yang tertinggal.
  2. Perlu memantau dua purata bergerak secara serentak, pelarasan parameter dan ujian kesan adalah kompleks.
  3. Tidak dapat menangani senario dengan turun naik harga yang dramatik dengan baik, mudah menghentikan kerugian.
  4. Frekuensi perdagangan mungkin terlalu tinggi atau terlalu rendah, parameter perlu dioptimumkan.
  5. Kesan ini sangat berkaitan dengan keadaan pasaran, prestasi yang buruk semasa pasaran beruang secara keseluruhan.

Penyelesaian:

  1. Gabungkan dengan penunjuk lain untuk menapis isyarat.
  2. Mengoptimumkan parameter purata bergerak dan prestasi ujian.
  3. Tetapkan julat stop loss yang sesuai.
  4. Sesuaikan parameter purata bergerak untuk mengoptimumkan kekerapan perdagangan.
  5. Sesuaikan parameter di bawah keadaan pasaran yang berbeza.

Arahan pengoptimuman

Strategi ini boleh dioptimumkan ke arah berikut:

  1. Gabungkan dengan penunjuk lain seperti MACD, KDJ untuk menapis isyarat palsu.

  2. Memperkenalkan purata bergerak adaptif, menyesuaikan parameter secara dinamik berdasarkan turun naik pasaran untuk meningkatkan ketahanan.

  3. Mengoptimumkan parameter purata bergerak untuk mencari kombinasi terbaik dan meningkatkan prestasi strategi.

  4. Tambahkan mekanisme stop loss untuk mengehadkan kerugian dan meningkatkan kawalan risiko.

  5. Gabungan pelbagai bingkai masa, menggunakan isyarat dari garis harian dan mingguan untuk meningkatkan kestabilan.

  6. Peralihan keadaan Markov, gunakan parameter yang berbeza di bawah keadaan pasaran yang berbeza untuk meningkatkan kesesuaian.

Ringkasan

Secara umum, strategi perdagangan purata bergerak berganda agak berkesan dan stabil. Prinsip perdagangan mudah difahami dan dilaksanakan, parameter fleksibel untuk menyesuaikan diri dengan trend pasaran. Sementara itu terdapat beberapa batasan seperti menghasilkan isyarat palsu dan kesukaran dalam mengendalikan turun naik pasaran yang drastik. Ini dapat ditangani dengan memperkenalkan alat lain dan pengoptimuman parameter. Secara keseluruhan, ini adalah strategi praktikal yang sesuai untuk pemula perdagangan kuantitatif untuk belajar dan berlatih.


//@version=3
strategy("CS: 2 Moving Averages Script - Strategy (Testing)", overlay=true)

// === GENERAL INPUTS ===
// short ma
ma1Source   = input(defval = close, title = "MA 1 Source")
ma1Length   = input(defval = 5, title = "MA 1 Period", minval = 1)
// long ma
ma2Source   = input(defval = close, title = "MA 2 Source")
ma2Length   = input(defval = 15, title = "MA 2 Period", minval = 1)

// === SERIES SETUP ===
/// a couple of ma's..
ma1 = ema(ma1Source, ma1Length)
ma2 = ema(ma2Source, ma2Length)

// === PLOTTING ===
fast = plot(ma1, title = "MA 1", color = red, linewidth = 2, style = line, transp = 30)
slow = plot(ma2, title = "MA 2", color = green, linewidth = 2, style = line, transp = 30)

// === LOGIC ===
enterLong = crossover(ma1, ma2)
exitLong = crossover(ma2, ma1)

// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2018, title = "From Year", minval = 2012)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2012)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true // create function "within window of time"

// Entry //
strategy.entry(id="Long Entry", long=true, when=enterLong and window())
strategy.entry(id="Short Entry", long=false, when=exitLong and window())

Lebih lanjut