Chiến lược đột phá trung bình động kép

Tác giả:ChaoZhang, Ngày: 2023-09-11 12:31:51
Tags:

Chiến lược này sử dụng cả SMA và EMA trung bình động để xác định hướng dài và ngắn dựa trên sự đột phá giá. Nó đi dài khi đóng trên cả SMA và EMA, đi ngắn khi đóng dưới cả SMA và EMA, và phẳng ra khi đóng giữa SMA và EMA. Thời gian SMA và EMA có thể được tùy chỉnh bởi người dùng.

Ưu điểm của chiến lược đột phá trung bình động kép này là kết hợp hai hệ thống trung bình động có thể cải thiện độ chính xác. Tuy nhiên, các vấn đề như tín hiệu sai trong các thị trường giới hạn phạm vi và tín hiệu tụt lại tồn tại. Ngoài ra, không có lỗ dừng được thực hiện để kiểm soát lỗ.

Tóm lại, chiến lược này hoạt động tốt hơn khi có xu hướng mạnh, nhưng nên giao dịch thận trọng.

Nhìn chung, chiến lược đột phá trung bình động kép có logic giao dịch đơn giản, nhưng đòi hỏi kiểm soát rủi ro và điều chỉnh tham số thích hợp để được áp dụng thành công trong giao dịch trực tiếp.


/*backtest
start: 2023-08-11 00:00:00
end: 2023-09-10 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title = "Noro's Multima v1.0", shorttitle = "Multima 1.0", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)

needlong = input(true, "long")
needshort = input(true, "short")

usema1 = input(true, "Use MA1 (SMA, blue)")
usema2 = input(true, "Use MA2 (EMA, red)")
lenma1 = input(40, defval = 40, minval = 2, maxval = 1000, title = "MA1 length")
lenma2 = input(40, defval = 40, minval = 2, maxval = 1000, title = "MA2 length")
//anti = input(true, defval = true, title = "Antipila")
usecf = input(true, defval = true, title = "Use color-filter")

//Strategy
ma1 = sma(close, lenma1)
ma2 = ema(close, lenma2)
signal1 = usema1 == false ? 0 : close > ma1 ? 1 : -1
signal2 = usema2 == false ? 0 : close > ma2 ? 1 : -1
lots = signal1 + signal2

//Lines
plot(ma1, color = blue, linewidth = 3, transp = 0)
plot(ma2, color = red, linewidth = 3, transp = 0)

//Trading
if lots > 0 and (close < open or usecf == false)
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na)

if lots < 0 and (close > open or usecf == false)
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na)
    
if lots == 0
    strategy.close_all()
    
    
    

Thêm nữa