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