Strategi Penembusan Rata-rata Bergerak Ganda

Penulis:ChaoZhang, Tanggal: 2024-01-24 14:49:29
Tag:

img

Gambaran umum

Dual Moving Average Breakout Strategy adalah strategi perdagangan kuantitatif yang didasarkan pada rata-rata bergerak cepat dan rata-rata bergerak lambat. Strategi ini menggunakan dua rata-rata bergerak eksponensial (EMA) dengan periode yang berbeda sebagai sinyal perdagangan.

Logika Strategi

Logika inti dari strategi ini adalah menggunakan rata-rata bergerak cepat dan rata-rata bergerak lambat untuk membentuk sinyal perdagangan. strategi mendefinisikan periode EMA cepat sebagai 12 hari dan periode EMA lambat sebagai 26 hari.

  1. Hitung AP rata-rata bergerak eksponensial dari array harga dengan periode 2 hari
  2. Menghitung rata-rata bergerak cepat cepat berdasarkan AP, dengan periode 12 hari
  3. Menghitung slow moving average Slow berdasarkan AP, dengan periode 26 hari
  4. Bandingkan rata-rata bergerak cepat dan lambat:
    1. Ketika cepat melintasi di atas lambat, itu adalah sinyal naik
    2. Ketika cepat melintasi di bawah lambat, itu adalah sinyal bearish
  5. Tentukan sinyal perdagangan tertentu yang menggabungkan hubungan harga dan rata-rata bergerak:
    1. Sinyal bullish: Cepat> Perlahan && AP> Cepat
    2. Sinyal bearish: Cepat

Menggunakan persilangan rata-rata bergerak cepat dan lambat untuk menentukan tren pasar dan menghasilkan sinyal perdagangan adalah strategi rata-rata bergerak ganda yang khas.

Analisis Keuntungan

Strategi Breakout Rata-rata Bergerak Ganda memiliki keuntungan berikut:

  1. Logika strategi sederhana dan jelas, mudah dimengerti dan diterapkan
  2. Periode rata-rata bergerak dapat disesuaikan dengan lingkungan pasar yang berbeda
  3. Memungkinkan posisi panjang dan pendek untuk mencapai hasil yang lebih tinggi
  4. Sinyal perdagangan yang lebih tepat dapat dihasilkan dengan menggabungkan harga dan moving average
  5. Fitur tertinggal dari moving average dapat secara efektif menyaring kebisingan pasar

Analisis Risiko

Strategi Breakout Rata-rata Bergerak Ganda juga memiliki beberapa risiko:

  1. Lebih banyak sinyal palsu dapat terjadi ketika pasar terikat rentang
  2. Strategi rata-rata bergerak ganda dapat menyebabkan penyesuaian kurva, mengabaikan perubahan struktural pasar
  3. Mengandalkan indikator teknis saja rentan terhadap breakout palsu, dengan risiko kerugian

Solusi:

  1. Mengoptimalkan periode rata-rata bergerak untuk menyesuaikan diri dengan kondisi pasar saat ini
  2. Konfirmasi sinyal dengan indikator lain seperti volume untuk menghindari breakout palsu
  3. Mengadopsi strategi mengikuti tren untuk mengendalikan rasio laba/rugi dan mengurangi risiko

Arahan Optimasi

Strategi Breakout Rata-rata Bergerak Ganda dapat dioptimalkan dalam aspek berikut:

  1. Menemukan kombinasi periode rata-rata bergerak yang lebih cocok untuk beradaptasi dengan perubahan pasar
  2. Tambahkan indikator seperti volume untuk penyaringan sinyal untuk memastikan validitas
  3. Menggabungkan indikator struktur pasar untuk mengidentifikasi tren dan menyesuaikan parameter
  4. Mengadopsi rata-rata bergerak dinamis yang dapat menyesuaikan periode secara otomatis berdasarkan perubahan pasar
  5. Menggabungkan strategi stop loss untuk mengontrol risiko secara efektif dan melindungi modal

Kesimpulan

Strategi Breakout Dual Moving Average adalah strategi perdagangan kuantitatif yang sederhana dan praktis. Strategi ini memiliki keuntungan seperti logika dan implementasi yang mudah, dan juga memiliki beberapa masalah adaptasi pasar. Kita dapat menjadikannya sistem perdagangan yang menguntungkan yang stabil melalui optimasi parameter, penyaringan sinyal, pengendalian risiko dll. Secara keseluruhan, strategi rata-rata bergerak ganda adalah prototipe strategi yang bagus yang layak penelitian mendalam dan aplikasi untuk pedagang kuantitatif.


/*backtest
start: 2023-01-17 00:00:00
end: 2024-01-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("CDC Action Zone V.2", overlay=true)

// CDC ActionZone V2 29 Sep 2016
// CDC ActionZone is based on a simple 2MA and is most suitable for use with medium volatility market
// 11 Nov 2016 : Ported to Trading View with minor UI enhancement
LSB = input(title="Long/Short", defval="Long only", options=["Long only", "Short only" , "Both"])
src = input(title="Data Array",type=input.source,defval=ohlc4)
prd1=input(title="Short MA period", type=input.integer,defval=12)
prd2=input(title="Long MA period",type=input.integer,defval=26)
AP = ema(src,2)
Fast = ema(AP,prd1)
Slow = ema(AP,prd2)


Bullish = Fast>Slow
Bearish = Fast<Slow

Green = Bullish and AP>Fast
Red = Bearish and AP<Fast
Yellow = Bullish and AP<Fast
Blue = Bearish and AP>Fast

Buy = Bullish and Bearish[1]
Sell = Bearish and Bullish[1]


alertcondition(Buy,"Buy Signal","Buy")
alertcondition(Sell,"Sell Signal","Sell")


//Plot

l1=plot(Fast,"Fast", linewidth=1,color=color.red)
l2=plot(Slow,"Slow", linewidth=2,color=color.blue)
bcolor = Green ? color.lime : Red ? color.red : Yellow ? color.yellow : Blue ? color.blue : na
barcolor(color=bcolor)
fill(l1,l2,bcolor)

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

// === 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"


if LSB == "Long only" and Buy and window()
    strategy.entry("L",true)
if LSB == "Long only" and Sell and window()
    strategy.close("L",qty_percent=100,comment="TP Long")
if LSB == "Both" and Buy and window()
    strategy.entry("L",true)
if LSB == "Both" and Sell and window()
    strategy.entry("S",false)
if LSB == "Short only" and Sell and window()
    strategy.entry("S",false)
if LSB == "Short only" and Buy and window()
    strategy.close("S",qty_percent=100,comment="TP Short")

Lebih banyak