Strategi Penembusan Purata Bergerak Berganda

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

img

Ringkasan

Strategi Breakout Purata Bergerak Berganda adalah strategi perdagangan kuantitatif berdasarkan purata bergerak pantas dan purata bergerak perlahan. Ia menggunakan dua purata bergerak eksponensial (EMA) dengan tempoh yang berbeza sebagai isyarat perdagangan. Apabila EMA pantas melintasi di atas EMA perlahan, isyarat beli dihasilkan. Apabila EMA pantas melintasi di bawah EMA perlahan, isyarat jual dihasilkan.

Logika Strategi

Logik teras strategi ini adalah menggunakan purata bergerak pantas dan purata bergerak perlahan untuk membentuk isyarat perdagangan. Strategi menentukan tempoh EMA pantas sebagai 12 hari dan tempoh EMA perlahan sebagai 26 hari. Kaedah pengiraan adalah seperti berikut:

  1. Mengira AP purata bergerak eksponensial array harga dengan tempoh 2 hari
  2. Mengira purata bergerak pantas pantas berdasarkan AP, dengan tempoh 12 hari
  3. Mengira purata bergerak perlahan perlahan berdasarkan AP, dengan tempoh 26 hari
  4. Bandingkan purata bergerak pantas dan perlahan:
    1. Apabila pantas melintasi di atas perlahan, ia adalah isyarat bullish
    2. Apabila pantas melintasi bawah perlahan, ia adalah isyarat bearish
  5. Tentukan isyarat perdagangan khusus yang menggabungkan hubungan harga dan purata bergerak:
    1. Isyarat kenaikan: Cepat>Lambat && AP>Cepat
    2. Isyarat penurunan: Cepat

Menggunakan persilangan purata bergerak pantas dan perlahan untuk menentukan trend pasaran dan menjana isyarat perdagangan adalah strategi purata bergerak ganda yang tipikal.

Analisis Kelebihan

Strategi Penembusan Purata Bergerak Berganda mempunyai kelebihan berikut:

  1. Logik strategi adalah mudah dan jelas, mudah difahami dan dilaksanakan
  2. Tempoh purata bergerak boleh diselaraskan untuk menyesuaikan diri dengan persekitaran pasaran yang berbeza
  3. Membolehkan kedua-dua kedudukan panjang dan pendek untuk mencapai pulangan yang lebih tinggi
  4. Isyarat perdagangan yang lebih tepat boleh dihasilkan menggabungkan harga dan purata bergerak
  5. Ciri ketinggalan purata bergerak dapat menapis bunyi bising pasaran dengan berkesan

Analisis Risiko

Strategi Penembusan Purata Bergerak Berganda juga mempunyai beberapa risiko:

  1. Lebih banyak isyarat palsu boleh berlaku apabila pasaran terikat julat
  2. Strategi purata bergerak berganda boleh menyebabkan pemasangan lengkung, mengabaikan perubahan struktur pasaran
  3. Mengandalkan hanya kepada penunjuk teknikal mudah terdedah kepada pecah palsu, dengan risiko kerugian

Penyelesaian:

  1. Mengoptimumkan tempoh purata bergerak untuk menyesuaikan diri dengan keadaan pasaran semasa
  2. Memastikan isyarat dengan penunjuk lain seperti jumlah untuk mengelakkan pecah palsu
  3. Mengambil strategi mengikut trend untuk mengawal nisbah keuntungan / kerugian dan mengurangkan risiko

Arahan pengoptimuman

Strategi penembusan purata bergerak berganda boleh dioptimumkan dalam aspek berikut:

  1. Cari gabungan purata bergerak tempoh yang lebih sesuai untuk menyesuaikan diri dengan perubahan pasaran
  2. Tambah penunjuk seperti kelantangan untuk penapisan isyarat untuk memastikan kesahihan
  3. Menggabungkan penunjuk struktur pasaran untuk mengenal pasti trend dan menyesuaikan parameter
  4. Mengguna pakai purata bergerak dinamik yang boleh menyesuaikan tempoh secara automatik berdasarkan perubahan pasaran
  5. Memasukkan strategi stop loss untuk mengawal risiko dengan berkesan dan melindungi modal

Kesimpulan

Dual Moving Average Breakout Strategy adalah strategi perdagangan kuantitatif yang mudah dan praktikal. Ia mempunyai kelebihan seperti logik dan pelaksanaan yang mudah, dan juga mempunyai beberapa masalah penyesuaian pasaran. Kita boleh menjadikannya sistem perdagangan yang menguntungkan yang stabil melalui pengoptimuman parameter, penapisan isyarat, kawalan risiko dan lain-lain. Secara keseluruhan, strategi purata bergerak ganda adalah prototaip strategi yang hebat yang bernilai penyelidikan mendalam dan aplikasi untuk peniaga 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 lanjut