Strategi perdagangan berdasarkan rata-rata pergerakan ganda


Tanggal Pembuatan: 2024-01-19 14:10:38 Akhirnya memodifikasi: 2024-01-19 14:10:38
menyalin: 0 Jumlah klik: 574
1
fokus pada
1617
Pengikut

Strategi perdagangan berdasarkan rata-rata pergerakan ganda

Ringkasan

Strategi perdagangan rata-rata bergerak ganda adalah strategi perdagangan kuantitatif yang umum. Strategi ini menggunakan rata-rata bergerak dari dua periode waktu yang berbeda untuk menghasilkan sinyal perdagangan berdasarkan persimpangan mereka. Secara khusus, ketika rata-rata bergerak jangka pendek melewati rata-rata bergerak jangka panjang, itu dianggap sebagai sinyal beli; ketika rata-rata bergerak jangka pendek melewati rata-rata bergerak jangka panjang, itu dianggap sebagai sinyal jual.

Prinsip

Prinsip inti dari strategi ini adalah: Moving Average jangka pendek dapat mencerminkan tren jangka pendek dari harga aset, dan Moving Average jangka panjang dapat mencerminkan tren jangka panjang dari harga aset. Ketika garis jangka pendek melintasi garis jangka panjang, berarti tren jangka pendek berubah menjadi naik, dan Anda dapat membeli; Ketika garis jangka pendek melintasi garis jangka panjang, berarti tren jangka pendek berubah menjadi turun, dan Anda dapat menjual. Dengan cara ini, Anda dapat secara berurutan menangkap titik balik dari tren harga.

Secara khusus, strategi ini mendefinisikan dua garis rata-rata bergerak: satu adalah rata-rata bergerak jangka pendek 5 hari, yang digunakan untuk menangkap tren harga jangka pendek; yang lain adalah rata-rata bergerak jangka panjang 15 hari, yang digunakan untuk menilai tren harga jangka panjang. Ketika garis 5 hari melintasi garis 15 hari dari bawah, berarti harga jangka pendek telah mulai naik, yang merupakan sinyal beli; dan ketika garis 5 hari melintasi garis 15 hari dari atas ke bawah, berarti harga jangka pendek mulai turun, yang merupakan sinyal jual.

Analisis Keunggulan

Dibandingkan dengan strategi lainnya, strategi moving average ganda memiliki keuntungan sebagai berikut:

  1. Operasi sederhana, mudah dipahami, cocok untuk pemula dalam trading kuantitatif
  2. Alasan-alasan mendasari untuk menghindari trend harga di pasar yang rumit
  3. Parameter ini dapat disesuaikan dengan berbagai kondisi pasar dengan menyesuaikan siklus rata-rata bergerak
  4. Filter Efektif terhadap Kebisingan Pasar, Capture Timbulnya Tren Jangka Panjang
  5. Frekuensi transaksi yang dapat disesuaikan, mengurangi biaya transaksi dan kehilangan slip

Analisis risiko

Strategi moving average ganda juga memiliki beberapa risiko, yang meliputi:

  1. Mungkin menghasilkan sinyal palsu, moving average pada dasarnya adalah sinyal yang tertinggal
  2. Perlu memperhatikan dua rata-rata bergerak yang lebih panjang dan lebih pendek pada saat yang sama, penyesuaian parameter dan pengujian efek lebih rumit
  3. Tidak dapat menangani situasi harga yang sangat berfluktuasi dengan baik, mudah terancam
  4. Frekuensi perdagangan mungkin terlalu tinggi atau terlalu rendah, perlu disesuaikan dan dioptimalkan
  5. Efeknya sangat terkait dengan kondisi pasar, kurang efektif pada periode penurunan indeks secara keseluruhan

Solusi yang sesuai:

  1. Kombinasi sinyal filter dengan indikator lain
  2. Mengoptimalkan parameter moving average, pengujian efek
  3. Tetapkan Stop Loss Range yang Tepat
  4. Menyesuaikan parameter moving average untuk mengoptimalkan frekuensi transaksi
  5. Parameter yang disesuaikan dengan kondisi pasar yang berbeda

Arah optimasi

Strategi ini dapat dioptimalkan dari beberapa arah:

  1. Kombinasi dengan indikator lain untuk memfilter sinyal, seperti MACD, KDJ, dan lain-lain, untuk menghindari sinyal palsu

  2. Memperkenalkan Adaptive Moving Average, menyesuaikan parameter Moving Average secara dinamis sesuai dengan tingkat fluktuasi pasar, meningkatkan stabilitas

  3. Mengoptimalkan parameter moving average, menemukan kombinasi parameter yang optimal, dan meningkatkan efektivitas strategi

  4. Menerapkan mekanisme stop loss untuk mencegah peningkatan kerugian dan meningkatkan kemampuan pengendalian risiko

  5. Kombinasi multi-frame waktu, menggunakan sinyal garis matahari dan garis lingkar untuk meningkatkan stabilitas

  6. Markov state switching, menggunakan parameter yang berbeda untuk kondisi pasar yang berbeda, meningkatkan adaptasi

Meringkaskan

Strategi perdagangan rata-rata bergerak ganda secara keseluruhan merupakan strategi perdagangan kuantitatif yang lebih stabil. Prinsip perdagangannya sederhana, mudah dipahami dan diimplementasikan, parameternya disesuaikan secara fleksibel, dan dapat secara efektif mengikuti tren pasar. Namun, ada juga keterbatasan tertentu, seperti menghasilkan sinyal palsu, sulit untuk menangani situasi pasar yang sangat berfluktuasi, dll. Ini perlu dikendalikan dengan memperkenalkan alat bantu lain, dan cara pengoptimalan parameter.

Kode Sumber Strategi
//@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())