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.
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:
Menggunakan persilangan purata bergerak pantas dan perlahan untuk menentukan trend pasaran dan menjana isyarat perdagangan adalah strategi purata bergerak ganda yang tipikal.
Strategi Penembusan Purata Bergerak Berganda mempunyai kelebihan berikut:
Strategi Penembusan Purata Bergerak Berganda juga mempunyai beberapa risiko:
Penyelesaian:
Strategi penembusan purata bergerak berganda boleh dioptimumkan dalam aspek berikut:
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")