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