Chiến lược theo xu hướng trung bình di chuyển Hull sử dụng trung bình di chuyển Hull để xác định hướng xu hướng thị trường và tạo ra tín hiệu mua và bán. Nó nắm bắt xu hướng trung và dài hạn, thiết lập các vị trí sớm khi xu hướng bắt đầu và đóng các vị trí trước khi xu hướng đảo ngược.
Chiến lược này sử dụng cả trung bình động Hull và trung bình động đơn giản để xác định hướng xu hướng. Khi thời gian ngắn hơn Hull MA vượt qua trên thời gian dài hơn Hull MA, nó tạo ra tín hiệu mua. Khi thời gian ngắn hơn Hull MA vượt qua dưới thời gian dài hơn, nó tạo ra tín hiệu bán.
Đường trung bình di chuyển đơn giản xác định hướng xu hướng thời gian thực. Khi EMA ngắn hơn vượt qua trên EMA dài hơn, nó chỉ ra xu hướng tăng. Khi EMA ngắn hơn vượt qua dưới EMA dài hơn, nó chỉ ra xu hướng giảm. Các giao dịch chỉ được thực hiện khi các tín hiệu Hull MA và EMA đồng ý về xu hướng tăng hoặc giảm.
Ngoài ra, chiến lược sử dụng các kênh cơ thể đường K để đo lường biến động thị trường và tránh giao dịch trong hợp nhất.
Hull MA nhạy cảm hơn trong việc phát hiện thay đổi giá và thay đổi xu hướng sớm.
Sử dụng cả Hull MA và EMA loại bỏ tín hiệu sai.
Các kênh K-line tránh giao dịch quá mức trên các thị trường bên cạnh.
Theo xu hướng cho phép nắm bắt lợi nhuận bền vững khi xu hướng mở rộng.
Các đường trung bình động có sự chậm trễ và có thể bỏ lỡ các điểm đầu vào đảo ngược xu hướng tối ưu.
Khám phá hợp nhất không chính xác có thể gây ra giao dịch xấu.
Tần suất giao dịch thấp dẫn đến tác động lớn từ các giao dịch thua lỗ duy nhất.
Không thể tận dụng được những dao động ngắn hạn.
Tối ưu hóa thời gian MA để tạo ra tín hiệu xu hướng kịp thời.
Sử dụng các chỉ số khác như RSI và BBANDS để xác định hợp nhất.
Thực hiện quản lý vốn tích cực để hạn chế tỷ lệ thua lỗ cho mỗi giao dịch.
Hoàn thành với các chiến lược khác để khai thác lợi nhuận ngắn hạn.
Chiến lược theo xu hướng trung bình động Hull theo dõi hiệu quả xu hướng trung và dài hạn thông qua việc sử dụng kết hợp Hull MA và EMA. Nó tích lũy lợi nhuận trong suốt xu hướng lợi nhuận và thoát sớm trước khi đảo ngược. Đây là một chiến lược giao dịch lượng đơn giản và thực tế đáng khuyến cáo.
/*backtest start: 2023-08-16 00:00:00 end: 2023-09-15 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 // strategy(title='HULLMiguel 2019/ Strategy v3', shorttitle='HULLMiguel_2019_Strategy', overlay=true, pyramiding=0, default_qty_value=1000, initial_capital=1000, currency=currency.USD) //Candle body resistance Channel-----------------------------// len = 34 src = input(close, title="Candle body resistance Channel") out = sma(src, len) last8h = highest(close, 13) lastl8 = lowest(close, 13) bearish = cross(close,out) == 1 and falling(close, 1) bullish = cross(close,out) == 1 and rising(close, 1) channel2=input(false, title="Bar Channel On/Off") ul2=plot(channel2?last8h:last8h==nz(last8h[1])?last8h:na, color=black, linewidth=1, style=linebr, title="Candle body resistance level top", offset=0) ll2=plot(channel2?lastl8:lastl8==nz(lastl8[1])?lastl8:na, color=blue, linewidth=1, style=linebr, title="Candle body resistance level bottom", offset=0) //fill(ul2, ll2, color=black, transp=95, title="Candle body resistance Channel") //-----------------Support and Resistance RST = input(title='Support / Resistance length:', defval=15) RSTT = valuewhen(high >= highest(high, RST), high, 0) RSTB = valuewhen(low <= lowest(low, RST), low, 0) RT2 = plot(RSTT, color=RSTT != RSTT[1] ? na : red, linewidth=1, offset=+0) RB2 = plot(RSTB, color=RSTB != RSTB[1] ? na : green, linewidth=1, offset=0) //--------------------Trend colour ema------------------------------------------------// src0 = close, len0 = input(13, minval=1, title="EMA 1") ema0 = ema(src0, len0) direction = rising(ema0, 2) ? +1 : falling(ema0, 2) ? -1 : 0 plot_color = direction > 0 ? lime: direction < 0 ? red : na plot(ema0, title="EMA", style=line, linewidth=3, color = plot_color) //-------------------- ema 2------------------------------------------------// src02 = close, len02 = input(21, minval=1, title="EMA 2") ema02 = ema(src02, len02) direction2 = rising(ema02, 2) ? +1 : falling(ema02, 2) ? -1 : 0 plot_color2 = direction2 > 0 ? green: direction2 < 0 ? red : na plot(ema02, title="EMA Signal 2", style=line, linewidth=2, color = plot_color2) //=============Hull MA// show_hma = input(false, title="Display Hull MA Set:") hma_src = input(close, title="Hull MA's Source:") hma_base_length = input(16, minval=1, title="Hull MA's Base Length:") hma_length_scalar = input(10, minval=0, title="Hull MA's Length Scalar:") hullma(src, length)=>wma(2*wma(src, length/2)-wma(src, length), round(sqrt(length))) plot(not show_hma ? na : hullma(hma_src, hma_base_length+hma_length_scalar*6), color=black, linewidth=5, title="Hull MA") dif_close_hull= (close-hullma(hma_src, hma_base_length+hma_length_scalar*6))/close Percent_dif = (dif_close_hull/(hullma(hma_src, hma_base_length+hma_length_scalar*6))) //direction3 = Percent_dif>0 ? +1 : Percent_dif<0 ? -1 : 0 //plot_color3 = direction3 > 0 ? lime: direction3 < 0 ? red : na //plot(dif_close_hull, title="dif close hull", style=line, linewidth=6, color = plot_color3) //============ signal Generator ==================================// Piriod=input('720') ch1 = security(syminfo.tickerid, Piriod, open) ch2 = security(syminfo.tickerid, Piriod, close) plot(ch1, title="EMA Signal 2", style=line, linewidth=1, color = blue) //longCondition = crossover(security(tickerid, Piriod, close),security(tickerid, Piriod, open)) //plot((close-ema02)/ema02+close) longCondition = direction > 0 and direction2> 0 if (longCondition) strategy.entry("BUY", strategy.long) //shortCondition = crossunder(security(tickerid, Piriod, close),security(tickerid, Piriod, open)) shortCondition = direction < 0 and direction2 < 0 if (shortCondition) strategy.entry("SELL", strategy.short) ///////////////////////////////////////////////////////////////////////////////////////////