La stratégie de suivi de tendance EMA est une stratégie de suivi de tendance basée sur l'indicateur EMA. Elle juge la direction de la tendance en calculant la ligne EMA d'une période spécifiée et suit la tendance.
Le noyau de cette stratégie est de déterminer la tendance à l'aide de l'indicateur EMA. L'EMA est une moyenne mobile exponentielle qui donne plus de poids aux prix récents et répond plus rapidement aux changements de prix. En calculant le prix moyen sur une période EMA, il produit une courbe lissée. Lorsque le prix traverse au-dessus de la ligne EMA depuis le bas, cela indique une tendance à la hausse; lorsque le prix traverse en dessous de la ligne EMA depuis le haut, cela indique une tendance à la baisse.
Sur la base de cette logique, la stratégie court lorsque le prix dépasse la EMA et va long lorsque le prix dépasse la EMA, en suivant la tendance en suivant la ligne EMA. Plus précisément, elle calcule une EMA de 8 périodes sur le prix de clôture - court lorsque la clôture dépasse la EMA et long lorsque la clôture dépasse la EMA. Elle définit également un stop loss pour contrôler les risques.
Suivi efficace des tendances: l'EMA atténue les fluctuations des prix, filtre le bruit du marché et suit les tendances à moyen et long terme.
Fréquence de négociation raisonnable Comparée aux indicateurs à courte durée, l'EMA a une fréquence d'ajustement moyenne, évitant ainsi les sur-échanges.
La stratégie repose uniquement sur un seul indicateur EMA et atteint l'objectif de suivre la tendance.
Extensibilité: la stratégie peut être améliorée en optimisant les paramètres de l'EMA ou en ajoutant d'autres indicateurs.
Lorsque les prix s'inverseront rapidement, l'EMA aura besoin de temps pour s'ajuster et peut manquer les meilleurs points d'entrée.
L'EMA suit les tendances et ne peut pas déterminer avec précision les points de réglage. Les renversements peuvent entraîner de grosses pertes. La solution consiste à définir un stop loss raisonnable.
La fréquence est trop élevée ou trop basse. Différentes périodes EMA conduisent à des fréquences de négociation différentes. Trop court peut sur-trader, trop long peut manquer des opportunités. La solution est de tester différentes périodes EMA pour trouver l'optimum.
Optimisez les paramètres de l'EMA pour trouver le meilleur équilibre.
Ajoutez d'autres indicateurs pour déterminer les points de réglage. Combinez avec des indicateurs comme le RSI pour mieux détecter les renversements.
Optimiser la stratégie de stop loss pour trouver le meilleur niveau de stop loss grâce au backtesting.
Optimiser la sélection des symboles et ajuster les périodes EMA en fonction des caractéristiques des symboles pour obtenir les meilleurs résultats.
La stratégie de suivi des tendances EMA est une stratégie de suivi des tendances très typique basée sur un indicateur. Elle est simple et facile à mettre en œuvre, adaptée aux débutants.
/*backtest start: 2022-10-09 00:00:00 end: 2023-10-15 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(title = "EMA Close Strategy", shorttitle = "EMA Close",calc_on_order_fills=true,calc_on_every_tick =true, initial_capital=21000,commission_value=.25,overlay = true,default_qty_type = strategy.percent_of_equity, default_qty_value = 100) EmaSource = input(defval = close, title = "EMA Source") EmaLength = input(defval = 8, title = "EMA Period", minval = 1) StartYear = input(2018, "Backtest Start Year") StartMonth = input(1, "Backtest Start Month") StartDay = input(1, "Backtest Start Day") stopLoss = input(30, title = "Stop loss percentage(0.1%)") UseStopLoss = input(true,"UseStopLoss") window() => time >= timestamp(StartYear, StartMonth, StartDay,00,00) ? true : false EMA = ema(EmaSource,EmaLength) plot(EMA, title = "EMA", color = green, linewidth = 2, style = line, transp = 50) long = crossunder(EMA, close) short= crossover(EMA, close) if (long) strategy.entry("LongId", strategy.long, when=window()) if (short) strategy.entry("ShortId", strategy.short, when=window()) if (UseStopLoss) strategy.exit("StopLoss", "LongId", loss = close * stopLoss / 1000 / syminfo.mintick) strategy.exit("StopLoss", "ShortId", loss = close * stopLoss / 1000 / syminfo.mintick)