Les ressources ont été chargées... Je charge...

Tendance suivant la stratégie basée sur la moyenne mobile et la plage réelle de la coque

Auteur:ChaoZhang est là., Date: 15 janvier 2024 à 15h26
Les étiquettes:

img

Résumé

L'idée de base de cette stratégie est d'identifier les directions de tendance du marché en combinant la moyenne mobile de Hull et la plage moyenne réelle (ATR), et d'entrer en position après la confirmation de la direction de la tendance. Plus précisément, elle calcule la différence entre les moyennes mobiles de Hull d'une certaine période et la période précédente. Lorsque la différence augmente, elle indique une tendance haussière; lorsque la différence diminue, elle indique une tendance baissière. En même temps, l'indice ATR est utilisé pour déterminer l'amplitude.

La logique de la stratégie

Cette stratégie repose principalement sur deux types d'indicateurs: la moyenne mobile de la coque et l'ATR.

La moyenne mobile de Hull est un indicateur de suivi des tendances développé par le trader américain Alan Hull. À l'instar des moyennes mobiles, la moyenne mobile de Hull a une sensibilité plus élevée et peut capturer les changements de prix et les tendances plus rapidement.

L'ATR est l'abréviation de Average True Range. Il reflète l'amplitude des fluctuations quotidiennes des prix. Lorsque la volatilité augmente, l'ATR augmente; lorsque la volatilité diminue, l'ATR diminue. La stratégie définit des paramètres tels que atrLength et atrSmoothing pour contrôler le calcul de l'ATR.

Plus précisément, la logique de la stratégie est la suivante:

  1. Calculer l'AM de la coque pour la période en cours (HullLength) et celle de la coque pour la période précédente.
  2. Calculer la différence: hullDiff = HullMA actuel - HullMA précédent
  3. Lorsque hullDiff > 0, il indique une tendance haussière.
  4. Calculer l'ATR (atrLength) d'une période comme référence d'amplitude.
  5. Lorsque la tendance haussière est identifiée et que l'ATR > prix > prix des périodes atrLength antérieures, passez long. Lorsque l'ATR < prix < prix des périodes atrLength antérieures, passez court.
  6. Utilisez le rapport positif/négatif de hullDiff pour déterminer les signaux de proximité.

Analyse des avantages

Les avantages de cette stratégie:

  1. En combinant le jugement de tendance et l'indice de volatilité, il peut entrer dans des positions lorsque la tendance des prix est claire et que la volatilité augmente pour éviter les fléchettes sur les marchés à fourchette.
  2. Hull MA réagit plus rapidement aux variations de prix et peut rapidement identifier de nouvelles tendances.
  3. L'ATR reflète la volatilité et la chaleur du marché et fournit des indications sur les délais d'entrée.
  4. Plusieurs paramètres réglables peuvent être optimisés pour les meilleures combinaisons de paramètres.

Analyse des risques

Quelques risques de cette stratégie:

  1. L'Hull MA et l'ATR ne peuvent pas éviter complètement les fausses fuites et courent donc le risque d'être piégés.
  2. Des paramètres mal réglés peuvent entraîner une survente ou une sensibilité insuffisante, ce qui nuit à l'efficacité de la stratégie.
  3. Il ne peut pas gérer efficacement les actions de prix violentes comme les pics ou les chutes.

Les solutions:

  1. Mettez un stop-loss approprié pour éviter d'être pris au piège par de fausses fuites.
  2. Tester et optimiser les paramètres pour les adapter à différents environnements de marché.
  3. Suspendez la stratégie face à une volatilité violente.

Directions d'optimisation

Il y a encore beaucoup de place pour l'optimisation:

  1. Testez différents paramètres de longueur de coque pour trouver les paramètres optimaux pour les marchés actuels.
  2. Testez les combinaisons de périodes ATR pour mieux saisir la chaleur du marché.
  3. Essayez différentes méthodes de lissage ATR pour voir laquelle fonctionne le mieux.
  4. Optimiser les conditions d'entrée avec d'autres indicateurs de volatilité tels que Reaction combiné à ATR.
  5. Optimisez le stop loss pour éviter d'être pris au piège.

Conclusion

Cette stratégie intègre la capacité de suivi de la tendance de Hull MA et la capacité de jugement de la chaleur d'ATR. Elle entre en position lorsque la tendance est confirmée et que la volatilité augmente pour filtrer certains signaux invalides. Une amélioration supplémentaire peut être obtenue par l'optimisation des paramètres et une meilleure gestion des risques. En résumé, cette stratégie combine plusieurs facteurs de suivi de la tendance et de jugement de la chaleur. Lorsque les paramètres sont affinés, elle peut fournir de bons résultats.


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

Plus de