La stratégie de suivi de la tendance des moyennes mobiles de Hull est une stratégie de négociation quantitative qui utilise les moyennes mobiles de Hull pour déterminer la direction de la tendance du marché et émettre des signaux d’achat et de vente. Cette stratégie est capable de capturer les tendances des lignes moyennes et longues, d’établir des positions au début de la tendance et d’arrêter la position avant que la tendance ne se retourne.
Cette stratégie utilise à la fois les moyennes mobiles de Hull et les moyennes mobiles ordinaires pour déterminer la direction de la tendance. Il s’agit d’un signal d’achat lorsque le Hull MA de la courte période traverse le Hull MA de la longue période.
Les moyennes mobiles ordinaires sont utilisées pour déterminer la direction de la tendance immédiate. Les signaux de négociation ne sont émis que lorsque le signal Hull MA et l’EMA sont en hausse ou en baisse.
En outre, la stratégie utilise les canaux de K-ligne pour juger de la volatilité du marché et éviter les erreurs de trading dans les marchés en crise. Seuls les canaux de rupture de prix sont considérés comme des positions.
La Hull Moving Average est plus sensible aux variations de prix et permet de détecter les changements de tendance plus tôt.
Le Hull MA et l’EMA combinés permettent de filtrer les fausses informations.
Utilisez le canal K pour évaluer les fluctuations et éviter les transactions fréquentes lors de la liquidation.
L’utilisation d’une méthode de suivi des tendances permet de capturer les profits des tendances à long et moyen terme.
Les moyennes mobiles sont en retard et risquent de manquer les meilleurs points d’entrée pour inverser la tendance.
Les jugements sur l’ampleur des tremblements de terre sont inexacts et peuvent entraîner des erreurs de calcul.
Le nombre de transactions est plus faible et les pertes sont plus fréquentes.
Les réseaux de téléphonie mobile sont devenus de plus en plus complexes, et les réseaux de téléphonie mobile sont devenus de plus en plus complexes.
Optimiser les paramètres cycliques des moyennes mobiles pour rechercher des tendances réactives en temps opportun.
Il est possible d’utiliser d’autres indicateurs pour évaluer les oscillations, tels que le RSI, les BBANDS, etc.
La gestion active des fonds et le contrôle des pertes individuelles.
Il est possible d’utiliser d’autres stratégies pour capturer des bénéfices à court terme.
La stratégie de suivi de la tendance des moyennes mobiles de Hull permet de suivre efficacement la tendance de la ligne médiane longue en utilisant une combinaison de la MA et de l’EMA de Hull. Elle permet de continuer à accumuler des bénéfices dans la tendance à la hausse et de s’arrêter le plus tôt possible avant que la tendance ne se retourne.
/*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)
///////////////////////////////////////////////////////////////////////////////////////////