Chiến lược trung bình di động Double HULL

Tác giả:ChaoZhang, Ngày: 2023-09-15 16:39:48
Tags:

Tổng quan chiến lược:

Chiến lược trung bình di chuyển Double HULL là một chiến lược giao dịch dựa trên chỉ số HULL Moving Average (HMA) được tạo ra bởi Alan HULL. Chiến lược sử dụng hai đường HMA, một đường dài hạn và một đường ngắn hạn, để xác định các điểm nhập và ra. HMA là một đường trung bình di chuyển được cải thiện làm giảm sự chậm trễ bằng cách áp dụng trung bình trọng số vào dữ liệu giá.

Công thức tính toán cho HMA là 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 trường hợp này, PDL đại diện cho giai đoạn dài hạn và PDS đại diện cho giai đoạn ngắn hạn. Chiến lược so sánh giá trị của các dòng ngắn hạn và dài hạn để xác định các điều kiện mua và bán.

Ưu điểm:

  1. Giảm chậm trễ: HMA có chậm trễ ít hơn so với trung bình động truyền thống, cho phép nó phản ứng nhanh hơn với những thay đổi trong xu hướng giá và cung cấp các tín hiệu chính xác hơn để mua và bán.
  2. Sự đơn giản: Chiến lược sử dụng hai đường trung bình động cho phân tích chéo, làm cho nó tương đối đơn giản để hiểu và thực hiện.
  3. Tùy chỉnh cao: Các tham số thời gian của chiến lược có thể được điều chỉnh dựa trên thị trường và công cụ giao dịch cụ thể, làm cho nó thích nghi hơn với các điều kiện thị trường khác nhau.

Rủi ro:

  1. Sự biến động của thị trường: Trong thời gian biến động của thị trường, các đường trung bình động có thể vượt qua thường xuyên, dẫn đến các tín hiệu thường xuyên có thể tạo ra các tín hiệu sai và dẫn đến giao dịch và lỗ quá mức.
  2. Trượt và trễ: Việc thực hiện chiến lược có thể bị trượt và trễ, đặc biệt là trong giao dịch tần số cao, có thể khiến giá được thực hiện lệch khỏi giá dự kiến và ả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 chỉ dựa vào chỉ số HMA mà không kết hợp các chỉ số kỹ thuật hoặc thông tin thị trường khác, có thể hạn chế khả năng của nó để nắm bắt toàn bộ các thay đổi và xu hướng thị trường.

Kết luận:

Chiến lược trung bình chuyển động HULL là một chiến lược giao dịch dựa trên chỉ số trung bình chuyển động HULL. Nó sử dụng sự chéo chéo của các đường HMA ngắn hạn và dài hạn để xác định điểm nhập và thoát. Chiến lược này mang lại những lợi thế như giảm chậm trễ, đơn giản và tùy biến cao. Tuy nhiên, nó cũng mang lại rủi ro liên quan đến biến động thị trường, trượt và trễ, và dựa vào một chỉ số duy nhất. Trong các ứng dụng thực tế, chiến lược có thể được điều chỉnh và tối ưu hóa dựa trên các hoàn cảnh cụ thể, kết hợp các chỉ số kỹ thuật khác và các phương pháp quản lý rủi ro để tăng sự thành công và lợi nhuận của giao dịch.


/*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)

Thêm nữa