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

Stratégie de tendance croisée de la moyenne mobile double HullMA

Auteur:ChaoZhang est là., Date: le 26 février 2024 à 11h21h45
Les étiquettes:

img

Résumé

La stratégie HullMA Crossover Trend est une stratégie de suivi des tendances basée sur le croisement des moyennes mobiles doubles. Elle construit un système de moyenne mobile double en utilisant des lignes de moyenne mobile pondérée (WMA) et génère des signaux de trading lorsqu'elles se croisent.

La logique de la stratégie

La stratégie de tendance croisée HullMA emploie trois lignes WMA avec des périodes différentes, y compris wma1, wma2 et wma3.

En outre, la stratégie utilise la moyenne mobile de Hull pour renforcer la validation du signal. Plus précisément, elle calcule la différence entre la double WMA de 2 périodes (n2ma) et la WMA de n périodes (nma).

La stratégie inclut également la validation des prix. Seulement lorsque le prix est plus élevé que le jour précédent, les signaux haussiers seront confirmés comme valides pour les ordres longs. Seulement lorsque le prix est inférieur au jour précédent, les signaux baissiers seront confirmés comme valides pour les ordres courts.

Analyse des avantages

La stratégie HullMA Crossover Trend combine le double crossover de moyenne mobile et la validation des prix, ce qui lui permet de filtrer efficacement les faux signaux. C'est sa plus grande force. En outre, avec trois lignes moyennes mobiles de différentes périodes, la stratégie peut capturer les tendances de différents niveaux dès le début. Son mécanisme de stop loss est également assez stable et fiable.

Analyse des risques

En tant que stratégie de suivi de tendance, la stratégie de tendance de croisement de la moyenne mobile double HullMA peut générer relativement plus de transactions et de coûts de glissement sur les marchés à plage.

Directions d'optimisation

La stratégie de la tendance à la double moyenne mobile HullMA peut être améliorée dans les aspects suivants:

  1. Optimiser les paramètres de moyenne mobile pour trouver la meilleure combinaison de paramètres

  2. Ajouter des filtres tels que le volume ou la volatilité pour éliminer les fausses ruptures

  3. Incorporer d'autres indicateurs à titre de validation supplémentaire pour améliorer la qualité du signal

  4. Optimiser dynamiquement les paramètres de la moyenne mobile

Résumé

En résumé, la stratégie de tendance de croisement de la moyenne mobile double HullMA est une stratégie de suivi de tendance stable et fiable. Elle produit des signaux de haute qualité en combinant le croisement de la moyenne mobile double et la validation des prix.


/*backtest
start: 2023-02-25 00:00:00
end: 2024-02-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("ZendicatoR", overlay=true)
dt = input(defval=0.0010, title="Decision Threshold", type=float, step=0.0001)
keh=input(title="Double HullMA Cross",defval=7, minval=1)
che1=input(title="MA 1",defval=34,minval=1)
che2=input(title="MA 2",defval=144,minval=1)
che3=input(title="MA 3",defval=377,minval=1)
amnt=input(title="TP ($)",defval=4200,minval=1)
wma1=wma(close,che1)
wma2=wma(close,che2)
wma3=wma(close,che3)
tms=10000000000000
A=request.security(syminfo.tickerid, 'D', close)*tms
B=request.security(syminfo.tickerid, 'D', close[1])*tms
C=A>B?green:red
D=wma2>wma3?green:red
plot(wma1,style=line,color=C,linewidth=4)
p1=plot(wma2,style=line,color=D)
p2=plot(wma3,style=line,color=D)
fill(p1, p2, color=D, transp=75)
n2ma=2*wma(close,round(keh/2))
nma=wma(close,keh)
diff=n2ma-nma,sqn=round(sqrt(keh))
n2ma1=2*wma(close[2],round(keh/2))
nma1=wma(close[2],keh)
diff1=n2ma1-nma1,sqn1=round(sqrt(keh))
n1=wma(diff,sqn)*tms
n2=wma(diff1,sqn)*tms
closelong = A*tms<B*tms and n2*tms>n1*tms and strategy.openprofit>amnt
if (closelong)
    strategy.close("Long")
closeshort = A*tms>B*tms and n1*tms>n2*tms and strategy.openprofit>amnt
if (closeshort)
    strategy.close("Short") 
longCondition = A*tms>B*tms and n1*tms>n2*tms
if (longCondition)
    strategy.entry("Long",strategy.long)
shortCondition = A*tms<B*tms and n1*tms<n2*tms
if (shortCondition)
    strategy.entry("Short",strategy.short)

Plus de