Cette stratégie utilise la moyenne mobile exponentielle double (DEMA) pour calculer la volatilité des prix et lissue davantage la volatilité pour détecter les tendances des fluctuations des prix, en allant long lorsque la volatilité augmente et court lorsque la volatilité diminue.
Calculer la moyenne mobile exponentielle double (DEMA) du prix, formule: DEMA = 2*EMA (prix, N) - EMA (prix, N), N)
Calculer la volatilité des prix par rapport à la DEMA: Volatilité = (prix - DEMA) / prix * 100%
Appliquez à nouveau l'aplatissement DEMA sur la volatilité pour obtenir le signal de tendance de la volatilité
Quand la volatilité est au-dessus d'un certain niveau, allez long.
Ne peut être mis en place que pendant une période spécifique.
DEMA détecte les changements de tendance plus rapidement que les moyennes mobiles.
La volatilité reflète le sentiment du marché, la hausse de la volatilité représente la domination des taureaux, la chute représente les ours.
L'assouplissement de la volatilité filtre le bruit à court terme et capte la tendance majeure.
La négociation dans des périodes de temps spécifiques évite les coûts inutiles de glissement.
Les stratégies de stop loss et de sortie contrôlent le risque.
DEMA peut être en retard pendant les fortes tendances, manquant les meilleurs points d'entrée.
L'indice de volatilité peut donner de faux signaux, doit être combiné avec d'autres indicateurs.
Il faut régler le stop-loss pour éviter les pertes grossis.
Opportunités manquées en dehors de la période de négociation.
La période de négociation nécessite des tests sur les données historiques, le mauvais moment peut réduire les bénéfices.
Optimisez les paramètres DEMA, utilisez des valeurs N plus petites.
Combinez d'autres indicateurs comme RSI, MACD pour la confirmation.
Définir le stop loss en fonction des données historiques et de la perte maximale tolérable.
Optimiser la sélection des périodes de négociation.
Testez les délais de négociation optimaux séparément pour les différents produits.
Testez différentes combinaisons de paramètres DEMA pour un meilleur lissage.
Essayez d'autres moyennes mobiles comme EMA, SMA.
Légalisation supplémentaire de la volatilité par différents paramètres.
Ajouter d'autres indicateurs pour la vérification multifactorielle.
Utilisez l'apprentissage automatique pour optimiser les paramètres d'entrée et de sortie.
Les paramètres optimaux doivent être testés séparément pour les différents produits.
Ajoutez des stratégies de stop loss et de sortie pour contrôler le risque.
Cette stratégie capture les changements de tendance dans le sentiment du marché en calculant la volatilité DEMA lissée, en allant long lorsque la volatilité augmente et court quand elle tombe. Mais le décalage DEMA et les faux signaux sont des risques. Les paramètres doivent être optimisés, un stop loss strict mis en œuvre et d'autres indicateurs combinés pour la confirmation. Si elle est utilisée correctement, cette stratégie peut capturer les renversements de tendance et fournir de bons rendements d'investissement.
/*backtest start: 2022-10-17 00:00:00 end: 2023-10-23 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version= 2 strategy("DEMA of DPD Strategy ",shorttitle="DPD% DEMA " ,overlay=false) buyper =input(-2) sellper=input(2) demalen = input(50,title="Dema Length") e1= ema(close,demalen) e2=ema(e1,demalen) demaprice = 2 * e1 - e2 price=close demadifper = ((price-demaprice)/price)*100 OverDemaPer = input(1, title="Band for OverBought") UnderDemaPer= input(-1,title="Band for OverSold") band1 = hline(OverDemaPer) band0 = hline(UnderDemaPer) zeroline=0 fill(band1, band0, color=green, transp=90) demalen2 = input(21,title="DEMA to Calculate dema of DPD") demaofdpd =ema(demadifper,demalen2) demaofdpd2 =ema(demaofdpd,demalen2) resultstrategy = 2*demaofdpd - demaofdpd2 plot(resultstrategy,color=blue) yearfrom = input(2018) yearuntil =input(2019) monthfrom =input(6) monthuntil =input(12) dayfrom=input(1) dayuntil=input(31) if ( crossover(resultstrategy,buyper) ) strategy.entry("BUY", strategy.long, stop=close, oca_name="TREND", comment="BUY") else strategy.cancel(id="BUY") if ( crossunder(resultstrategy,sellper) ) strategy.entry("SELL", strategy.short,stop=close, oca_name="TREND", comment="SELL") else strategy.cancel(id="SELL")