Tendance de la moyenne mobile de la coque selon la stratégie

Auteur:ChaoZhang est là., Date: 16 septembre 2023 à 18h41
Les étiquettes:

Résumé

La stratégie de suivi de tendance de la moyenne mobile de Hull utilise la moyenne mobile de Hull pour déterminer la direction de la tendance du marché et générer des signaux d'achat et de vente.

Principaux

La stratégie utilise à la fois la moyenne mobile de Hull et la moyenne mobile simple pour déterminer la direction de la tendance. Lorsque la courte période Hull MA traverse au-dessus de la plus longue période Hull MA, elle génère un signal d'achat. Lorsque la courte Hull MA traverse en dessous de la plus longue, elle génère un signal de vente.

La moyenne mobile simple détermine la direction de la tendance en temps réel. Lorsque l'EMA plus courte traverse au-dessus de l'EMA plus longue, cela indique une tendance haussière. Lorsque l'EMA plus courte traverse au-dessous de l'EMA plus longue, cela indique une tendance à la baisse. Les transactions ne sont effectuées que lorsque les signaux Hull MA et EMA s'accordent sur le biais haussier ou baissier.

En outre, la stratégie utilise des canaux K-line pour mesurer les fluctuations du marché et éviter les transactions en consolidation.

Les avantages

  • Le MA Hull est plus sensible pour détecter les variations de prix et les changements de tendance précoces.

  • L'utilisation de la MA et de l'EMA de Hull élimine les faux signaux.

  • Les canaux K-line évitent les échanges excessifs sur les marchés latéraux.

  • Le suivi des tendances permet de réaliser des bénéfices soutenus au fur et à mesure de l'extension de la tendance.

Les risques

  • Les moyennes mobiles présentent des délais et peuvent manquer les points d'entrée de renversement de tendance optimaux.

  • Une détection inexacte de la consolidation peut entraîner de mauvaises transactions.

  • La faible fréquence des transactions entraîne un impact important des transactions à perte unique.

  • Incapable de capitaliser sur les oscillations à court terme.

Gestion des risques

  • Optimiser les périodes de MA pour générer des signaux de tendance en temps opportun.

  • Utiliser d'autres indicateurs tels que le RSI et les BBANDS pour déterminer la consolidation.

  • Exercer une gestion agressive du capital afin de limiter le pourcentage de pertes par transaction.

  • Compléter avec d'autres stratégies pour exploiter les bénéfices à court terme.

Résumé

La stratégie de suivi de la tendance moyenne mobile de Hull suit efficacement les tendances à moyen et long terme grâce à l'utilisation combinée de Hull MA et EMA. Elle accumule des bénéfices tout au long des tendances de profit et sort tôt avant les renversements.


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

///////////////////////////////////////////////////////////////////////////////////////////

Plus de