Stratégie de filtrage des tendances EMA

EMA stdev Trend
Date de création: 2024-06-14 15:51:05 Dernière modification: 2024-06-14 15:51:05
Copier: 0 Nombre de clics: 715
1
Suivre
1617
Abonnés

Stratégie de filtrage des tendances EMA

Aperçu

La stratégie utilise les moyennes mobiles indicielles de trois périodes différentes (EMA) pour juger de la tendance du marché et des signaux d’achat et de vente. Les intersections entre les EMA rapides, les EMA lentes et les EMA filtrant les tendances, ainsi que la position des prix par rapport aux EMA filtrant les tendances, constituent la logique centrale de la stratégie.

Principe de stratégie

  1. Calculer trois EMA de différentes périodes: l’EMA rapide (default 9 cycles), l’EMA lente (default 21 cycles) et le filtre de tendance (default 200 cycles).
  2. Le calcul de la différence standard de prix sur 20 cycles est utilisé pour mesurer la volatilité du marché.
  3. Introduction de l’indicateur de tendance Fukuiz ((EMA de 14 cycles par défaut) et détermination de la couleur en fonction de sa relation avec la taille du cycle précédent ((augmentation en vert, baisse en rouge))
  4. Un signal d’achat est généré lorsque l’EMA rapide traverse l’EMA lente et que l’EMA rapide est supérieure à l’EMA lente et que le prix est supérieur à l’EMA filtrée par la tendance.
  5. Un signal de vente est généré lorsque l’EMA rapide est inférieure à l’EMA lente et que l’EMA rapide est inférieure à l’EMA lente et que le prix est inférieur à l’EMA filtre tendance.
  6. Lorsqu’un trader détient une position à plusieurs têtes, il peut annuler sa position à plusieurs têtes si l’indicateur de tendance Fukuiz devient rouge.
  7. Lorsqu’une position de tête vide est détenue, elle est liquidée si l’indicateur de tendance de Fukuiz devient vert.

Analyse des avantages

  1. La combinaison d’EMA sur plusieurs cycles permet de mieux saisir les tendances du marché.
  2. L’introduction de l’indicateur de tendance Fukuiz fournit une base supplémentaire pour juger de la tendance et, dans certains cas, joue le rôle de frein à la perte.
  3. Les paramètres sont réglables, adaptatifs et peuvent être optimisés en fonction des différents marchés et cycles.

Analyse des risques

  1. L’EMA est essentiellement un indicateur de retard, et il peut y avoir un retard de signal lorsque le marché se transforme rapidement.
  2. Le filtrage des tendances sur les EMA de longue durée peut permettre à la stratégie de rater certaines tendances à court terme.
  3. La logique de placement à la baisse de l’indicateur de tendance Fukuiz peut entraîner un arrêt prématuré de la stratégie et ainsi manquer la tendance suivante.

Direction d’optimisation

  1. Optimiser les paramètres cycliques de chaque EMA pour trouver la combinaison de paramètres la plus adaptée au marché actuel.
  2. L’introduction d’autres indicateurs auxiliaires, tels que le RSI, le MACD, etc., fournit plus de bases d’entrée et de sortie.
  3. Optimisation de la logique d’arrêt de l’indicateur de tendance Fukuiz, comme l’ajout d’une certaine zone de protection pour éviter un arrêt prématuré.
  4. Envisager d’ajouter des modules de gestion des positions et de contrôle des risques pour améliorer la stabilité et la résistance aux risques de la stratégie.

Résumer

La stratégie est basée sur une combinaison de plusieurs EMAs cycliques et d’indicateurs de tendance de Fukuiz, ce qui permet de construire un cadre de jugement de tendance et de négociation relativement complet. La logique de la stratégie est claire, les paramètres sont réglables et adaptatifs.

Code source de la stratégie
/*backtest
start: 2023-06-08 00:00:00
end: 2024-06-13 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EvilRed Trading Indicator Trend Filter", overlay=true)

// Parameters Definition
fastLength = input(9, title="Fast EMA Length")
slowLength = input(21, title="Slow EMA Length")
trendFilterLength = input(200, title="Trend Filter EMA Length")

// Moving Averages Calculation
fastEMA = ta.ema(close, fastLength)
slowEMA = ta.ema(close, slowLength)
trendEMA = ta.ema(close, trendFilterLength)

// Volatility Calculation
volatility = ta.stdev(close, 20)

// Add Fukuiz Trend Indicator
fukuizTrend = ta.ema(close, 14)
fukuizColor = fukuizTrend > fukuizTrend[1] ? color.green : color.red
plot(fukuizTrend, color=fukuizColor, title="Fukuiz Trend")

// Plotting Moving Averages
plot(fastEMA, color=color.blue, title="Fast EMA")
plot(slowEMA, color=color.red, title="Slow EMA")
plot(trendEMA, color=color.orange, title="Trend Filter")

// Plotting Buy and Sell Signals
buySignal = ta.crossover(fastEMA, slowEMA) and fastEMA > slowEMA and close > trendEMA
sellSignal = ta.crossunder(fastEMA, slowEMA) and fastEMA < slowEMA and close < trendEMA

// Entry and Exit Conditions
if (strategy.position_size > 0 and fukuizColor == color.red)
    strategy.close("Long", comment="Fukuiz Trend is Red")

if (strategy.position_size < 0 and fukuizColor == color.green)
    strategy.close("Short", comment="Fukuiz Trend is Green")

if (buySignal)
    strategy.entry("Long", strategy.long)
    
if (sellSignal)
    strategy.entry("Short", strategy.short)




plotshape(buySignal, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal")
plotshape(sellSignal, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, title="Sell Signal")