
Chiến lược này dựa trên chỉ số trung bình di chuyển Hull, tính Hull MA trên các đường thời gian khác nhau và so sánh Hull MA trên các đường thời gian khác nhau để phát hiện ra sự thay đổi trong xu hướng. Khi Hull MA có chu kỳ ngắn tạo ra tín hiệu mua khi Hull MA có chu kỳ dài; Khi Hull MA có chu kỳ ngắn dưới chu kỳ dài tạo ra tín hiệu bán.
Các tham số đầu vào: chu kỳ Hull MA Period, trục thời gian của HMA2 Resolution2, trục thời gian của HMA3 Resolution3
Tính HMA của Hull trên đường K hiện tại
Tính Hull MA HMA2 trên Resolution2
Tính Hull MA HMA3 trên Resolution3
So sánh HMA, HMA2 và HMA3
Khi HMA>HMA2>HMA3, tạo ra một tín hiệu mua
Khi HMA
Hull MA giá trị và tín hiệu trên các trục thời gian khác nhau được hiển thị ở phía trên bên trái của giao diện
Sử dụng màu sắc để phân biệt trạng thái thăng trầm
Sử dụng nhiều thời gian có thể lọc các đột phá giả để tránh bị mắc kẹt.
Bạn có thể tùy chỉnh các tham số về đường thời gian cho các chu kỳ khác nhau.
Tín hiệu thời gian thực, hoạt động trực quan.
Hull MA: Hull MA được sử dụng để hình dung xu hướng hiện tại.
Thiết lập tham số không đúng có thể dẫn đến giao dịch quá thường xuyên.
Chu kỳ Hull MA có sự chậm trễ, có thể bỏ lỡ điểm chuyển hướng.
Khi bò và gấu chuyển đổi, chiến thuật sẽ tạo ra tín hiệu giả.
Chiến lược đột phá, dễ bị giả mạo đột phá.
Không tính phí giao dịch, ảnh hưởng đến lợi nhuận thực tế.
Có thể giảm rủi ro bằng cách tối ưu hóa các tham số, kết hợp các chỉ số khác làm bộ lọc, và nới lỏng mức dừng thích hợp.
Tối ưu hóa các tham số chu kỳ Hull MA để thích ứng với các chu kỳ và tỷ lệ dao động khác nhau.
Tăng khả năng đánh giá số lượng giao dịch, tránh các đột phá giả mạo.
Tăng các chỉ số rung động để xác định cường độ của xu hướng.
Thêm mô hình học máy để xác định thời gian mua và bán.
Kết hợp với các chỉ số cảm xúc, tìm ra điểm nóng của thị trường.
Điều chỉnh chiến lược dừng lỗ, tối ưu hóa quản lý rủi ro.
Tùy chỉnh các điều kiện mua và bán, kết hợp các tín hiệu chỉ số khác.
Thêm chiến lược giao dịch dựa trên kênh giá và dải giá.
Chiến lược này dựa trên các chỉ số Hull MA so sánh xu hướng trung bình trên các trục thời gian khác nhau, đánh giá hướng xu hướng hiện tại, và khi xu hướng biến đổi, tạo ra tín hiệu mua và bán. So với đường trung bình đơn, Hull MA có nhiều trục thời gian có thể lọc hiệu quả phá vỡ giả. Tuy nhiên, chiến lược này cũng có các vấn đề về thiết lập tham số, đánh giá xu hướng. Bằng cách tích hợp nhiều chỉ số, tối ưu hóa thiết lập tham số và cải thiện chiến lược dừng lỗ, bạn có thể tăng cường khả năng chiến lược và kiểm soát rủi ro.
/*backtest
start: 2023-10-07 00:00:00
end: 2023-11-06 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
//
strategy("wtfBUYorSELLffs",overlay=true,currency="USD",initial_capital=100000,default_qty_type=strategy.percent_of_equity,default_qty_value=100,commission_type=strategy.commission.percent,commission_value=0.1)
Period=input(title="Hull MA Period",type=input.integer,defval=6,minval=1)
Resolution2=input(title="HMA2 Resolution", type=input.resolution,defval="60")
Resolution3=input(title="HMA3 Resolution", type=input.resolution,defval="240")
Price=input(title="Source of Price",type=input.source,defval=open)
xOffset = input(40, title="Panel offset (X-Axis)")
yOffset = input(0, title="Panel offset (y-Axis)")
lightgray = #D3D3D3FF
pnlTextColor = color.silver
pnlColor = color.black
HMA = hma(Price,Period)
HMA2 = security(syminfo.tickerid, Resolution2, HMA,barmerge.gaps_off,barmerge.lookahead_off)
HMA3 = security(syminfo.tickerid, Resolution3, HMA,barmerge.gaps_off,barmerge.lookahead_off)
HUP = HMA > HMA[1]
H1UP = security(syminfo.tickerid, Resolution2, HUP,barmerge.gaps_off,barmerge.lookahead_off)
H2UP = security(syminfo.tickerid, Resolution3, HUP,barmerge.gaps_off,barmerge.lookahead_off)
int barSize = timeframe.isdaily ? timeframe.multiplier*86400000 :
timeframe.isseconds? timeframe.multiplier*1000 :
timeframe.isminutes? timeframe.multiplier*60000 : (time[0]-time[1])
int lapos_x = timenow + barSize*xOffset
float lapos_y = highest(20) + yOffset*syminfo.mintick * syminfo.pointvalue
f_draw_infopanel(_x, _y, _line, _text)=>
_rep_text = ""
for _l = 0 to _line
_rep_text := _rep_text + "\n"
_rep_text := _rep_text + _text
// var label _la = na
// label.delete(_la)
// _la := label.new(
// x=_x, y=_y,
// text=_rep_text, xloc=xloc.bar_time, yloc=yloc.price,
// color=pnlColor, style=label.style_labelup, textcolor=pnlTextColor, size=size.normal)
// f_draw_infopanel(lapos_x, lapos_y, 8, "╚═══════════════════════╝")
f_draw_infopanel(lapos_x, lapos_y, 6, "HMA3 on TF " + Resolution3 + " = " + tostring(HMA3,"#.####") + (H2UP ? " BUY" : " SELL"))
f_draw_infopanel(lapos_x, lapos_y, 4, "HMA2 on TF " + Resolution2 + " = " + tostring(HMA2,"#.####") + (H1UP ? " BUY" : " SELL"))
f_draw_infopanel(lapos_x, lapos_y, 2, "HMA1 on TF " + timeframe.period + " = " + tostring(HMA,"#.####") + (HUP ? " BUY" : " SELL"))
f_draw_infopanel(lapos_x, lapos_y, 0, "╔═════════ HMA(" + tostring(Period,"#") +") ════════╗")
change_color=HMA>HMA3?color.green:color.red
change_color2=HMA2>HMA3?color.lime:color.yellow
plot1=plot(HMA3,color=change_color2,title="3 Hull MA Line",linewidth=2,transp=75)
plot2=plot(HMA2,color=change_color,title="2 Hull MA Line",linewidth=2,transp=75)
plot3=plot(HMA,color=color.white,title="Hull MA Line",linewidth=2,transp=75)
fill(plot1,plot3,color=change_color,transp=90)
fill(plot2,plot3,color=change_color2,transp=75)
if (H2UP and H1UP and HUP)
strategy.entry("BUY",strategy.long)
if (not H2UP and not H1UP and not HUP)
strategy.entry("SELL",strategy.short)