
L’idée centrale de cette stratégie est d’identifier la direction de la tendance du marché en combinant la ligne moyenne de Hull et l’amplitude réelle de la vague (ATR) et d’entrer après la confirmation de la direction de la tendance. Plus précisément, il s’agit de calculer la différence entre la ligne moyenne de Hull d’un certain cycle et la ligne moyenne de Hull du cycle précédent.
Cette stratégie est basée principalement sur deux types d’indicateurs: la ligne moyenne de la coque et l’ATR.
La Hull Average est un indicateur de suivi de tendance développé par le trader américain Alan Hull. La Hull Average est similaire à la moyenne mobile, mais elle est plus sensible et permet de capturer plus rapidement les tendances des changements de prix. La stratégie dispose d’un paramètre réglable, hullLength, pour contrôler la longueur du cycle de la Hull Average, afin de déterminer la direction de la tendance actuelle des prix en calculant la différence entre le cycle actuel et le cycle précédent.
ATR signifie Average True Range, c’est-à-dire l’amplitude réelle. Il reflète l’amplitude des fluctuations quotidiennes des prix. Lorsque les fluctuations augmentent, l’amplitude réelle augmente; lorsque les fluctuations diminuent, l’amplitude réelle diminue.
La logique de la stratégie est la suivante:
Cette stratégie présente les avantages suivants:
Cette stratégie présente aussi des risques:
La réponse:
Il y a encore beaucoup à améliorer dans cette stratégie, principalement en ce qui concerne les points suivants:
Cette stratégie intègre la capacité de suivi des tendances de la ligne moyenne de Hull et la capacité de jugement des indicateurs de chaleur de l’ATR, afin de filtrer certains signaux inefficaces. L’optimisation des paramètres de l’indicateur et l’utilisation des outils de gestion des risques peuvent encore renforcer l’efficacité de la stratégie.
/*backtest
start: 2024-01-07 00:00:00
end: 2024-01-14 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
// Hull cross and ATR
strategy("Hull cross and ATR", shorttitle="H&ATR", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_order_fills=true, calc_on_every_tick=true, pyramiding=0)
keh=input(title="Hull Length",defval=50)
length = input(title="ATR Length", defval=50, minval=1)
smoothing = input(title="ATR Smoothing", defval="RMA", options=["RMA", "SMA", "EMA", "WMA"])
p=input(ohlc4,title="Price data")
n2ma=2*wma(p,round(keh/2))
nma=wma(p,keh)
diff=n2ma-nma
sqn=round(sqrt(keh))
n2ma1=2*wma(p[1],round(keh/2))
nma1=wma(p[1],keh)
diff1=n2ma1-nma1
sqn1=round(sqrt(keh))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
ma_function(source, length) =>
if smoothing == "RMA"
rma(p, length)
else
if smoothing == "SMA"
sma(p, length)
else
if smoothing == "EMA"
ema(p, length)
else
wma(p, length)
plot(ma_function(tr(true), length), title = "ATR", color=black, transp=50)
closelong = n1<n2
if (closelong)
strategy.close("buy")
closeshort = n1>n2
if (closeshort)
strategy.close("sell")
if (ma_function(tr(true), length)<p and p>p[length] and n1>n2)
strategy.entry("buy", strategy.long, comment="BUY")
if (ma_function(tr(true), length)>p and p<p[length] and n1<n2)
strategy.entry("sell", strategy.short, comment="SELL")