Chiến lược xu hướng giao nhau của đường trung bình động kép HullMA


Ngày tạo: 2024-02-26 11:21:45 sửa đổi lần cuối: 2024-02-26 11:21:45
sao chép: 0 Số nhấp chuột: 588
1
tập trung vào
1617
Người theo dõi

Chiến lược xu hướng giao nhau của đường trung bình động kép HullMA

Tổng quan

Chiến lược HullMA chéo xu hướng hai trung bình di chuyển là một chiến lược theo dõi xu hướng dựa trên chéo hai trung bình di chuyển. Nó sử dụng trung bình di chuyển nặng WMA để xây dựng hệ thống trung bình di chuyển hai và tạo ra tín hiệu giao dịch khi chúng chéo. Chiến lược này kết hợp với phán đoán phá vỡ giá cùng một lúc để lọc thêm tín hiệu.

Nguyên tắc chiến lược

HullMA sử dụng ba đường WMA có thời kỳ khác nhau, bao gồm wma1, wma2 và wma3. Wma2 và wma3 xây dựng hệ thống đường trung bình đôi, tạo ra tín hiệu bullish khi wma2 đi qua wma3 và tín hiệu bearish khi wma2 đi qua wma3.

Chiến lược này sử dụng các trung bình di chuyển Hull để tăng cường phán đoán tín hiệu. Cụ thể, nó tính toán chênh lệch n2ma và nma của hai lần trung bình di chuyển 2 ngày và đo lường sự thay đổi của các giá trị chênh lệch. Chỉ khi chênh lệch tăng, tín hiệu lạc quan sẽ được xác nhận và tín hiệu giảm sẽ được xác nhận.

Chiến lược này kết hợp với việc xác định giá. Chỉ khi giá cao hơn giá ngày trước, tín hiệu bullish sẽ được xác nhận để tạo ra nhiều đơn đặt hàng. Chỉ khi giá thấp hơn giá ngày trước, tín hiệu bearish sẽ được xác nhận để tạo ra đơn đặt hàng.

Phân tích lợi thế

Chiến lược HullMA giao thoa xu hướng hai trung bình di chuyển kết hợp hai trung bình di chuyển giao thoa và giá định, có thể loại bỏ hiệu quả các tín hiệu giả, đây là lợi thế lớn nhất của nó. Ngoài ra, chiến lược này sử dụng trung bình di chuyển của ba chu kỳ khác nhau để nắm bắt các mức độ khác nhau của xu hướng, có thể vào thị trường ngay từ đầu xu hướng.

Phân tích rủi ro

HullMA là một chiến lược theo dõi xu hướng, có khả năng tạo ra nhiều giao dịch và mất điểm trượt hơn trong tình huống cân bằng. Ngoài ra, hệ thống giao chéo đường trung bình di chuyển đôi quá nhạy cảm, có thể phát tín hiệu sai ở phía bên.

Hướng tối ưu hóa

Chiến lược HullMA có thể được tối ưu hóa từ các khía cạnh sau:

  1. Tối ưu hóa các tham số trung bình di chuyển để tìm các tham số kết hợp tối ưu

  2. Tăng bộ lọc như khối lượng giao dịch hoặc tỷ lệ dao động, loại trừ đột phá giả

  3. Kết hợp với các chỉ số khác để hỗ trợ đánh giá, cải thiện chất lượng tín hiệu

  4. Động thái tối ưu hóa các tham số trung bình di chuyển

Tóm tắt

HullMA là một chiến lược theo dõi xu hướng ổn định và đáng tin cậy. Nó kết hợp hai đường trung bình di chuyển và định giá để tạo ra tín hiệu chất lượng cao. Bằng cách tối ưu hóa tham số và thêm bộ lọc, bạn có thể giảm thêm tín hiệu sai, do đó có thể có hiệu suất chiến lược tốt hơn.

Mã nguồn chiến lược
/*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)