Chiến lược xu hướng chuyển động trung bình kép HullMA

Tác giả:ChaoZhang, Ngày: 2024-02-26 11:21:45
Tags:

img

Tổng quan

Chiến lược xu hướng chéo HullMA là một chiến lược theo xu hướng dựa trên sự chéo của các đường trung bình di chuyển kép. Nó xây dựng một hệ thống trung bình di chuyển kép bằng cách sử dụng các đường trung bình di chuyển cân nhắc (WMA) và tạo ra các tín hiệu giao dịch khi chúng vượt qua. Chiến lược cũng kết hợp xác nhận đột phá giá để lọc các tín hiệu hơn nữa.

Chiến lược logic

Chiến lược xu hướng chéo trung bình chuyển động kép HullMA sử dụng ba đường WMA với các giai đoạn khác nhau, bao gồm wma1, wma2 và wma3. Wma2 và wma3 xây dựng hệ thống trung bình chuyển động kép.

Ngoài ra, chiến lược này sử dụng trung bình động Hull để tăng cường xác nhận tín hiệu. Cụ thể, nó tính toán sự khác biệt giữa WMA tăng gấp đôi 2 giai đoạn (n2ma) và WMA n giai đoạn (nma). Chỉ khi sự khác biệt tăng, tín hiệu tăng sẽ được xác nhận hợp lệ. Chỉ khi sự khác biệt giảm, tín hiệu gấu sẽ được xác nhận hợp lệ.

Chiến lược này cũng kết hợp xác nhận giá. Chỉ khi giá cao hơn ngày trước, tín hiệu bò sẽ được xác nhận hợp lệ cho các lệnh dài. Chỉ khi giá thấp hơn ngày trước, tín hiệu gấu sẽ được xác nhận hợp lệ cho các lệnh ngắn.

Phân tích lợi thế

Chiến lược xu hướng chéo trung bình động kép HullMA kết hợp chéo trung bình động kép và xác thực giá, cho phép nó lọc hiệu quả các tín hiệu sai. Đây là điểm mạnh lớn nhất của nó. Ngoài ra, với ba đường trung bình động của các giai đoạn khác nhau, chiến lược có thể nắm bắt xu hướng của các mức độ khác nhau sớm. Cơ chế dừng lỗ của nó cũng khá ổn định và đáng tin cậy.

Phân tích rủi ro

Là một chiến lược theo xu hướng, chiến lược xu hướng chéo HullMA có thể tạo ra tương đối nhiều giao dịch và chi phí trượt trong các thị trường giới hạn phạm vi. Ngoài ra, các hệ thống chéo trung bình chuyển động kép có xu hướng quá nhạy cảm và có thể phát ra tín hiệu không chính xác trong xu hướng bên.

Hướng dẫn tối ưu hóa

Chiến lược xu hướng chéo HullMA có thể được cải thiện trong các khía cạnh sau:

  1. Tối ưu hóa các thông số trung bình động để tìm kết hợp thông số tốt nhất

  2. Thêm các bộ lọc như khối lượng hoặc biến động để loại bỏ breakout giả

  3. Tích hợp các chỉ số khác làm chứng thực bổ sung để cải thiện chất lượng tín hiệu

  4. Tối ưu hóa động các thông số thời gian trung bình động

Tóm lại

Tóm lại, chiến lược xu hướng chuyển động trung bình kép HullMA Crossover là một chiến lược theo xu hướng ổn định và đáng tin cậy. Nó tạo ra các tín hiệu chất lượng cao bằng cách kết hợp chuyển động trung bình chéo kép và xác nhận giá. Thông qua điều chỉnh tham số và thêm bộ lọc, nó có thể giảm thêm các tín hiệu không chính xác và đạt được hiệu suất tốt hơn. Nó phù hợp để bắt các xu hướng trung và dài hạn và là một lựa chọn vững chắc cho giao dịch định lượng.


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

//@version=2
strategy("ZendicatoR", overlay=true)
dt = input(defval=0.0010, title="Decision Threshold", type=float, step=0.0001)
keh=input(title="Double HullMA Cross",defval=7, minval=1)
che1=input(title="MA 1",defval=34,minval=1)
che2=input(title="MA 2",defval=144,minval=1)
che3=input(title="MA 3",defval=377,minval=1)
amnt=input(title="TP ($)",defval=4200,minval=1)
wma1=wma(close,che1)
wma2=wma(close,che2)
wma3=wma(close,che3)
tms=10000000000000
A=request.security(syminfo.tickerid, 'D', close)*tms
B=request.security(syminfo.tickerid, 'D', close[1])*tms
C=A>B?green:red
D=wma2>wma3?green:red
plot(wma1,style=line,color=C,linewidth=4)
p1=plot(wma2,style=line,color=D)
p2=plot(wma3,style=line,color=D)
fill(p1, p2, color=D, transp=75)
n2ma=2*wma(close,round(keh/2))
nma=wma(close,keh)
diff=n2ma-nma,sqn=round(sqrt(keh))
n2ma1=2*wma(close[2],round(keh/2))
nma1=wma(close[2],keh)
diff1=n2ma1-nma1,sqn1=round(sqrt(keh))
n1=wma(diff,sqn)*tms
n2=wma(diff1,sqn)*tms
closelong = A*tms<B*tms and n2*tms>n1*tms and strategy.openprofit>amnt
if (closelong)
    strategy.close("Long")
closeshort = A*tms>B*tms and n1*tms>n2*tms and strategy.openprofit>amnt
if (closeshort)
    strategy.close("Short") 
longCondition = A*tms>B*tms and n1*tms>n2*tms
if (longCondition)
    strategy.entry("Long",strategy.long)
shortCondition = A*tms<B*tms and n1*tms<n2*tms
if (shortCondition)
    strategy.entry("Short",strategy.short)

Thêm nữa