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

La stratégie de suivi de la tendance sur plusieurs délais avec filtre EMA 200 - Longue uniquement

Auteur:ChaoZhang est là., Date: 2024-05-23 18h07:50
Les étiquettes:Le taux d'intérêt

img

Résumé

Cette stratégie est une stratégie de suivi des tendances basée sur des moyennes mobiles exponentielles (EMA) sur plusieurs périodes et un filtre EMA de 200 périodes. L'idée principale est d'utiliser des EMA sur différentes périodes pour identifier la direction de la tendance du marché et établir des positions longues lorsque la tendance est à la hausse et que le prix est au-dessus de la EMA de 200 périodes. Cela garantit que les transactions ne sont effectuées que lors de fortes tendances haussières, dans le but de capturer des mouvements ascendants soutenus tout en gérant le risque avec des mécanismes de stop-loss et de prise de profit définis.

La stratégie utilise trois délais: 5 minutes, 15 minutes et 30 minutes, en calculant des EMA rapides et lents pour chacun. En comparant les EMA rapides et lents pour chaque délais, la direction de la tendance peut être déterminée. Les signaux de tendance des trois délais sont ensuite additionnés pour obtenir un signal de tendance combiné. Lorsque le signal de tendance combiné est de 3 (indiquant une tendance haussière sur tous les délais) et que le prix de clôture actuel est supérieur à l'EMA de 200 périodes sur le délai de 5 minutes, la stratégie entre dans une position longue. La position est fermée lorsque le signal de tendance combiné tombe en dessous de 3 ou que le prix tombe en dessous de l'EMA de 200 périodes de 5 minutes.

Principes de stratégie

  1. Calculer l'EMA rapide (9 périodes par défaut) et l'EMA lente (21 périodes par défaut) pour les périodes de 5 minutes, 15 minutes et 30 minutes.
  2. Calculer l'EMA de 200 périodes sur la période de 5 minutes comme filtre de tendance.
  3. Pour chaque échéancier, comparez les EMA rapides et lents. Rapide au-dessus du lent indique une tendance haussière (+1), lent au-dessus du rapide indique une tendance à la baisse (-1).
  4. La valeur de l'indicateur de tendance est la valeur de l'indicateur de tendance de l'indicateur de tendance.
  5. Entrez dans une position longue lorsque le signal de tendance combiné est égal à 3 (trend haussier fort) et que le prix de clôture actuel est supérieur à l'EMA de 200 périodes de 5 minutes.
  6. Fermez la position lorsque le signal de tendance combiné tombe en dessous de 3 (affaiblissement de la tendance haussière) ou lorsque le prix tombe en dessous de l'EMA de 200 périodes de 5 minutes.
  7. Définir le stop-loss 1% en dessous du prix d'entrée et le take-profit 3% au-dessus du prix d'entrée.

Les avantages

  1. En utilisant des signaux de tendance provenant de plusieurs délais, la stratégie peut évaluer plus complètement la tendance du marché et réduire les faux signaux.
  2. Le filtre EMA à 200 périodes garantit que les transactions ne sont effectuées que lors de fortes tendances à la hausse, ce qui augmente le taux de réussite.
  3. Des conditions d'entrée et de sortie strictes, ainsi que des conditions de stop-loss et de take-profit, aident à contrôler le risque et à améliorer le rapport risque/rendement.
  4. Les paramètres réglables rendent la stratégie adaptable à différents marchés et styles de négociation.

Les risques

  1. La stratégie peut réagir lentement aux points de basculement de la tendance, manquant des opportunités d'entrée optimales.
  2. Les entrées et sorties fréquentes peuvent augmenter les coûts de négociation.
  3. Des niveaux fixes de stop-loss peuvent conduire à des sorties prématurées sur des marchés très volatils.
  4. La détermination de la tendance est basée sur des données historiques et peut ne pas réagir rapidement aux mouvements soudains des prix causés par des événements inattendus.

Directions d'optimisation

  1. Mettre en place davantage de délais ou optimiser la sélection des délais existants pour améliorer l'exactitude et la rapidité de l'identification des tendances.
  2. Optimiser les niveaux de stop-loss et de take-profit, par exemple en mettant en œuvre des trailing stops ou des take-profits dynamiques, afin de s'adapter aux différentes conditions du marché.
  3. Incorporer des signaux supplémentaires tels que le volume, l'élan, etc., aux côtés des signaux de tendance pour former des conditions d'entrée et de sortie multifactorielles, améliorant la robustesse de la stratégie.
  4. Optimiser les paramètres pour trouver la combinaison la plus adaptée au marché actuel.
  5. Il convient d'envisager d'ajouter un mécanisme de vente à découvert pour élargir l'applicabilité de la stratégie.

Résumé

Cette stratégie détermine la direction de la tendance en comparant les EMA sur plusieurs délais tout en utilisant une EMA de 200 périodes comme filtre de tendance. Elle établit des positions longues lorsque la tendance est nettement à la hausse et que le prix est supérieur à la moyenne mobile à long terme, dans le but de capturer de fortes tendances haussières. Des conditions d'entrée et de sortie strictes et des niveaux fixes de stop-loss et de take-profit aident à gérer le risque. Cependant, la stratégie peut réagir lentement aux points tournants de la tendance et a des limites pour faire face à la volatilité soudaine du marché due aux niveaux fixes de stop-loss et de take-profit. À l'avenir, l'adaptabilité et la robustesse de la stratégie peuvent être améliorées par l'introduction de plus de délais, l'optimisation des niveaux de stop-loss et de take-profit, l'intégration de signaux de trading supplémentaires, l'optimisation des paramètres, etc. Cela permettra à la stratégie de mieux saisir les opportunités du marché tout en contrôlant les risques.


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

//@version=5
strategy("Multi-Timeframe Trend Following with 200 EMA Filter - Longs Only", shorttitle="MTF_TF_200EMA_Longs", overlay=true, initial_capital=1000, default_qty_type=strategy.fixed, default_qty_value=1)

// Inputs
fast_length = input.int(9, title="Fast EMA Length", minval=1)
slow_length = input.int(21, title="Slow EMA Length", minval=1)
filter_length_200 = input.int(200, title="200 EMA Length", minval=1)
stop_loss_perc = input.float(1.0, title="Stop Loss Percentage", minval=0.1) / 100
take_profit_perc = input.float(3.0, title="Take Profit Percentage", minval=0.1) / 100

// Calculate EMAs for 5-minute, 15-minute, and 30-minute timeframes
ema_fast_5min = request.security(syminfo.tickerid, "5", ta.ema(close, fast_length), lookahead=barmerge.lookahead_on)
ema_slow_5min = request.security(syminfo.tickerid, "5", ta.ema(close, slow_length), lookahead=barmerge.lookahead_on)

ema_fast_15min = request.security(syminfo.tickerid, "15", ta.ema(close, fast_length), lookahead=barmerge.lookahead_on)
ema_slow_15min = request.security(syminfo.tickerid, "15", ta.ema(close, slow_length), lookahead=barmerge.lookahead_on)

ema_fast_30min = request.security(syminfo.tickerid, "30", ta.ema(close, fast_length), lookahead=barmerge.lookahead_on)
ema_slow_30min = request.security(syminfo.tickerid, "30", ta.ema(close, slow_length), lookahead=barmerge.lookahead_on)

// Calculate 200 EMA for the 5-minute timeframe
ema_200_5min = ta.ema(close, filter_length_200)

// Determine the trend for each timeframe
trend_5min = ema_fast_5min > ema_slow_5min ? 1 : -1
trend_15min = ema_fast_15min > ema_slow_15min ? 1 : -1
trend_30min = ema_fast_30min > ema_slow_30min ? 1 : -1

// Combine trend signals
combined_trend = trend_5min + trend_15min + trend_30min

// Define entry and exit conditions with 200 EMA filter
enter_long = combined_trend == 3 and close > ema_200_5min
exit_long = combined_trend < 3 or close < ema_200_5min

// Plot EMAs for the 5-minute timeframe
plot(ema_fast_5min, color=color.blue, linewidth=2, title="Fast EMA 5min")
plot(ema_slow_5min, color=color.red, linewidth=2, title="Slow EMA 5min")
plot(ema_200_5min, color=color.green, linewidth=2, title="200 EMA 5min")

// Strategy execution
if (enter_long)
    strategy.entry("Long", strategy.long, stop=close * (1 - stop_loss_perc), limit=close * (1 + take_profit_perc))
if (exit_long)
    strategy.close("Long")


Relationnée

Plus de