Chiến lược đường trung bình động HULL kép


Ngày tạo: 2023-09-15 16:39:48 sửa đổi lần cuối: 2023-09-15 16:43:45
sao chép: 0 Số nhấp chuột: 1525
1
tập trung vào
1617
Người theo dõi

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

Chiến lược trung bình di chuyển HULL kép là một chiến lược giao dịch dựa trên chỉ số trung bình di chuyển HULL được tạo ra bởi Alan HULL. Chiến lược này sử dụng hai đường trung bình di chuyển HULL, một đường dài và một đường ngắn, để đánh giá thời gian mua và bán.

Công thức tính toán của trung bình di chuyển HULL như sau:

HmaL = wma(2*wma(close, round(PDL/2)) - wma(close, PDL), round(sqrt(PDL)))
HmaS = wma(2*wma(close, round(PDS/2)) - wma(close, PDS), round(sqrt(PDS)))

Trong đó, PDL đại diện cho chu kỳ dài và PDS đại diện cho chu kỳ ngắn. Chiến lược đánh giá điều kiện mua và bán bằng cách so sánh giá trị của đường ngắn và đường dài.

Phân tích lợi thế:

  1. Giảm độ trễ: HULL có độ trễ thấp hơn so với trung bình di chuyển truyền thống, có thể phản ứng nhanh hơn với sự thay đổi xu hướng giá và cung cấp tín hiệu mua bán chính xác hơn.
  2. Đơn giản và dễ hiểu: Chiến lược này sử dụng hai đường trung bình di chuyển để đánh giá chéo, logic tương đối đơn giản, dễ hiểu và thực hiện.
  3. Khả năng tùy chỉnh cao: Các tham số chu kỳ trong chiến lược có thể được điều chỉnh theo thị trường cụ thể và loại giao dịch, giúp chiến lược thích nghi hơn với môi trường giao dịch khác nhau.

Phân tích rủi ro:

  1. Thị trường biến động: Trong giai đoạn biến động của thị trường, đường trung bình di chuyển có thể xuyên qua, dẫn đến tín hiệu mua và bán thường xuyên, dễ tạo ra tín hiệu sai, gây ra giao dịch thường xuyên và thua lỗ.
  2. Điểm trượt và chậm trễ: Việc thực hiện chiến lược bị ảnh hưởng bởi điểm trượt và chậm trễ, đặc biệt là trong giao dịch tần số cao, điều này có thể dẫn đến việc giá thực hiện không phù hợp với giá dự kiến, ảnh hưởng đến kết quả giao dịch.
  3. Tùy thuộc vào chỉ số duy nhất: Chiến lược này chỉ dựa vào chỉ số trung bình di chuyển HULL, không kết hợp với các chỉ số kỹ thuật khác hoặc thông tin thị trường, có thể không thể nắm bắt được toàn bộ sự thay đổi và xu hướng của thị trường.

Tóm lại:

Chiến lược trung bình di chuyển HULL kép là một chiến lược giao dịch dựa trên trung bình di chuyển HULL để đánh giá thời gian mua và bán bằng cách so sánh các điểm giao thoa của đường ngắn và đường dài. Chiến lược này có lợi thế là giảm sự chậm trễ, đơn giản, dễ hiểu và có thể tùy chỉnh cao, nhưng cũng có nguy cơ biến động thị trường, trượt và chậm trễ và phụ thuộc vào chỉ số duy nhất. Trong ứng dụng thực tế, chiến lược có thể được điều chỉnh và tối ưu hóa theo tình huống cụ thể, kết hợp với các chỉ số kỹ thuật khác và phương pháp quản lý rủi ro để tăng tỷ lệ thành công và lợi nhuận của giao dịch.

Mã nguồn chiến lược
/*backtest
start: 2023-09-07 00:00:00
end: 2023-09-14 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
// Credit Indicator from KIVANC
// author and idea: KIVANC @fr3762 on twitter
// creator: Alan HULL
// 
strategy("Double HULL Moving Average Strategy", overlay=true)
PDL=input(title="LongerPeriod", defval=21, minval=1,maxval=500)
PDS=input(title="ShorterPeriod",  defval=8, minval=1,maxval=500)

// === INPUT BACKTEST RANGE ===
FromYear  = input(defval = 2019, title = "From Year", minval = 2009)
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 = 2009)
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"

HmaL=wma(2*wma(close,round(PDL/2))-wma(close,PDL),round(sqrt(PDL)))
HmaS=wma(2*wma(close,round(PDS/2))-wma(close,PDS),round(sqrt(PDS)))
plot(HmaL,color=red, linewidth=2)
plot(HmaS,color=blue, linewidth=2)

Buy = HmaS > HmaL
Sell = HmaS < HmaL

strategy.entry("Buy",true,when=window() and Buy)
strategy.close_all(when=window() and Sell)