Chiến lược Breakout Trung bình Di chuyển kép là một chiến lược giao dịch định lượng dựa trên trung bình di chuyển nhanh và trung bình di chuyển chậm. Nó sử dụng hai trung bình di chuyển theo cấp số nhân (EMA) với các khoảng thời gian khác nhau làm tín hiệu giao dịch. Khi EMA nhanh vượt qua trên EMA chậm, một tín hiệu mua được tạo ra. Khi EMA nhanh vượt qua dưới EMA chậm, một tín hiệu bán được tạo ra.
Khái niệm cơ bản của chiến lược này là sử dụng trung bình di chuyển nhanh và trung bình di chuyển chậm để tạo ra tín hiệu giao dịch. Chiến lược xác định thời gian EMA nhanh là 12 ngày và thời gian EMA chậm là 26 ngày. Phương pháp tính toán là như sau:
Sử dụng sự chéo chéo của trung bình di chuyển nhanh và chậm để xác định xu hướng thị trường và tạo ra tín hiệu giao dịch là một chiến lược di chuyển trung bình kép điển hình.
Chiến lược phá vỡ trung bình di chuyển kép có những lợi thế sau:
Chiến lược phá vỡ trung bình di chuyển kép cũng có một số rủi ro:
Giải pháp:
Chiến lược phá vỡ trung bình di chuyển kép có thể được tối ưu hóa trong các khía cạnh sau:
Chiến lược Breakout Trung bình Di chuyển kép là một chiến lược giao dịch định lượng đơn giản và thực tế. Nó có những lợi thế như logic và thực hiện dễ dàng, và cũng có một số vấn đề thích nghi thị trường. Chúng ta có thể làm cho nó trở thành một hệ thống giao dịch có lợi nhuận ổn định thông qua tối ưu hóa tham số, lọc tín hiệu, kiểm soát rủi ro vv. Nhìn chung, chiến lược trung bình di chuyển kép là một nguyên mẫu chiến lược tuyệt vời đáng nghiên cứu sâu và áp dụng cho các nhà giao dịch định lượng.
/*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")