Chiến lược theo dõi xu hướng trung bình động Hull


Ngày tạo: 2023-11-02 14:57:37 sửa đổi lần cuối: 2023-12-01 15:02:29
sao chép: 0 Số nhấp chuột: 778
1
tập trung vào
1617
Người theo dõi

Chiến lược theo dõi xu hướng trung bình động Hull

Tổng quan

Chiến lược này dựa trên các chỉ số trung bình di chuyển của Hull để xây dựng hệ thống giao dịch theo dõi xu hướng, quyết định làm nhiều giao dịch theo hướng của đường cong Hull, là một trong những chiến lược theo dõi xu hướng điển hình.

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

Chiến lược này sử dụng đường trung bình di chuyển Hull làm chỉ số kỹ thuật chính. Đường trung bình di chuyển Hull được đề xuất bởi nhà giao dịch người Mỹ Alan Hull vào năm 2005 và được cải tiến dựa trên đường trung bình di chuyển, sử dụng hàm gốc vuông để giảm độ trễ của đường trung bình di chuyển.

Cụ thể, đường trung bình di chuyển của Hull bao gồm hai đường trung bình, một là đường trung bình di chuyển MA của khoảng thời gian n, và một là đường trung bình di chuyển MA của khoảng thời gian n / 2 (n / 2). Sự khác biệt giữa hai đường trung bình tạo thành đường cong chênh lệch Hull, sau đó tính toán đường cong chênh lệch Hull cho đường trung bình di chuyển của chính nó, tức là đường cong Hull.

Khi đường cong Hull đi lên, biểu thị đường trung bình di chuyển ngắn hạn trên đường trung bình di chuyển dài hạn, kích hoạt nhiều tín hiệu; khi đường cong Hull đi xuống, biểu thị đường trung bình di chuyển ngắn hạn dưới đường trung bình di chuyển dài hạn, kích hoạt tín hiệu trống.

Chiến lược này đặt thời gian Hull là 16, tính n/2 = 8 trung bình di chuyển, n = 16 trung bình di chuyển, và tính đường cong Hull khác nhau, sau đó tính đường cong Hull cho n = 4 trung bình di chuyển của chính nó (( lấy gốc vuông n = 4). Khi đi trên đường cong Hull, hãy làm nhiều và khi đi xuống, hãy làm trống.

Phân tích lợi thế chiến lược

So với trung bình di chuyển thông thường, trung bình di chuyển Hull có những lợi thế sau:

  1. Giảm độ trễ. Sử dụng hàm gốc vuông, đường cong Hull gần hơn giá, có thể nắm bắt biến đổi giá nhanh hơn.

  2. Giảm sai lệch. Đường trung bình di chuyển truyền thống có xu hướng tạo ra nhiều giao dịch sai lệch hơn, trong khi đường cong Hull có thể lọc ra một số tiếng ồn và tránh các giao dịch không cần thiết.

  3. ít tham số. Đường cong Hull chỉ cần một tham số n để tối ưu hóa, trong khi hệ thống hai đường đều cần tối ưu hóa hai tham số.

  4. Có thể tùy chỉnh. Giá trị n của đường cong Hull có thể được điều chỉnh theo thị trường, có thể tùy chỉnh chu kỳ, thích ứng với các giống khác nhau.

  5. Có hệ thống mạnh mẽ. Đường cong Hull có hệ thống mạnh mẽ, tránh lựa chọn bằng tay, tuân theo sự thống nhất của hệ thống giao dịch cơ khí.

Phân tích rủi ro

Mặc dù có nhiều ưu điểm so với hệ thống trung bình di chuyển, hệ thống Hull vẫn có những rủi ro sau:

  1. Các giới hạn của chính chiến lược theo dõi xu hướng. Hệ thống Hull là một chiến lược theo dõi xu hướng, dễ bị dừng khi xu hướng thay đổi mạnh.

  2. Dễ bị giao dịch thường xuyên. Tính năng phản ứng nhanh của đường cong Hull làm tăng tần suất giao dịch, dễ bị giao dịch quá mức.

  3. parameters dễ bị tối ưu hóa quá mức. Chỉ có một tham số n dễ bị tối ưu hóa quá mức, nguy cơ của đường cong.

  4. Hiệu quả khác nhau tùy theo giống. Hệ thống Hull không hiệu quả đối với một số giống có tỷ lệ dao động cao, cần điều chỉnh tham số cho giống.

Hướng tối ưu hóa chiến lược

Dựa trên những hạn chế của chiến lược trung bình di chuyển Hull trên, có thể tối ưu hóa từ:

  1. Kết hợp với các chỉ số bổ sung để lọc tín hiệu giao dịch, tránh phá vỡ giả. Có thể tham gia vào các chỉ số MACD, KD và các chỉ số đánh giá xu hướng.

  2. Thêm chiến lược dừng lỗ, kiểm soát tổn thất đơn. Ví dụ: thiết lập dừng di động hoặc dừng đơn.

  3. Lựa chọn tối ưu hóa các tham số n, tránh tối ưu hóa quá mức. Bạn có thể sử dụng phương pháp phân tích tiến bộ để tối ưu hóa cuộn.

  4. Các tham số tối ưu hóa động học kết hợp với kỹ thuật học máy. Sử dụng các mô hình như RNN để dự đoán các tham số n có giá trị tối ưu nhất.

  5. Tối ưu hóa tham số phân giống. Sử dụng học máy để tối ưu hóa các tham số khác nhau.

  6. Tối ưu hóa quản lý vị trí, giảm tần suất giao dịch. Có thể áp dụng các phương pháp như luật cổ phần cố định.

Tóm tắt

Chiến lược trung bình di chuyển của Hull là một chiến lược theo dõi xu hướng điển hình. Có lợi thế so với trung bình di chuyển, nhưng cũng có những vấn đề như quá tối ưu hóa, giao dịch thường xuyên. Chúng ta có thể cải thiện chiến lược này bằng các phương pháp như tối ưu hóa tham số, chiến lược dừng lỗ, quản lý vị trí.

Mã nguồn chiến lược
/*backtest
start: 2023-10-25 00:00:00
end: 2023-11-01 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=3
strategy(title = "Noro's HullMA Strategy", shorttitle = "HullMA str", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
n = input(title = "HullMA period", defval=16)
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//HullMA
n2ma=2*wma(close,round(n/2))
nma=wma(close,n)
diff=n2ma-nma
sqn=round(sqrt(n))
n2ma1=2*wma(close[1],round(n/2))
nma1=wma(close[1],n)
diff1=n2ma1-nma1
sqn1=round(sqrt(n))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
c=n1>n2?green:red
ma=plot(n1,color=c)
    
//Trading
lot = 0.0
lot := strategy.position_size != strategy.position_size[1] ? strategy.equity / close * capital / 100 : lot[1]
if n1 > n2
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot)
if n1 < n2
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot)
if true
    strategy.close_all()