Stratégie MACD à plusieurs délais

Auteur:ChaoZhang est là., Date: 2023-11-28 15:33:35 Je vous en prie.
Les étiquettes:

img

Résumé

La Multi Timeframe MACD Strategy est une stratégie de trading quantitative qui suit les tendances à l'aide de l'indicateur MACD sur plusieurs délais.

La logique de la stratégie

La logique de base de cette stratégie est de calculer la situation de croisement de l'indicateur MACD sur plusieurs délais (3 minutes, 5 minutes, 15 minutes, 30 minutes). Tout d'abord, l'indicateur MACD est calculé sur chaque délais pour juger de l'évolution des prix (en hausse ou en baisse) dans ce délai. Ensuite, les tendances des prix sur plusieurs délais sont jugées de manière exhaustive:

  1. Lorsque les prix augmentent sur toutes les périodes, un signal d'achat est généré.
  2. Lorsque les prix tombent sur toutes les périodes, un signal de vente est généré.

En jugeant de la tendance à travers les délais, le bruit de marché à court terme peut être filtré efficacement, ce qui rend les signaux de trading plus fiables.

Les avantages

Cette stratégie présente les avantages suivants:

  1. La détection des tendances à travers les délais filtre le bruit et rend les signaux de trading plus fiables.
  2. Les paramètres de l'indicateur MACD peuvent être personnalisés pour s'adapter à différents environnements de marché.
  3. Les délais de jugement global peuvent être configurés de manière flexible pour définir des règles de négociation indépendamment.

Risques et solutions

Cette stratégie comporte également les risques suivants:

  1. Lorsqu'on évalue la cohérence de la tendance sur toutes les périodes, il est possible de ne pas tenir compte des renversements locaux.
  2. Des paramètres MACD mal réglés peuvent entraîner une mauvaise performance des signaux de trading.

Solution correspondante:

  1. Les règles de jugement peuvent être modérément assouplies afin de permettre aux renversements de prix sur des délais individuels de saisir davantage d'opportunités.
  2. Les paramètres MACD doivent être ajustés en fonction des différents marchés afin de rendre les signaux de négociation plus adaptés aux tendances actuelles.

Directions d'optimisation

Cette stratégie peut être encore optimisée dans les domaines suivants:

  1. Augmenter ou diminuer le nombre de délais nécessaires à un jugement complet pour trouver la combinaison optimale.
  2. Testez différents paramètres de l'indicateur MACD.
  3. Adapter les règles d'entrée et de sortie spécifiques en fonction des résultats réels des tests antérieurs.

Résumé

La stratégie MACD Multi Timeframe utilise la capacité de jugement de tendance de l'indicateur MACD pour détecter les mouvements de prix à travers les délais, ce qui peut filtrer efficacement le bruit et améliorer la qualité du signal.


/*backtest
start: 2023-10-28 00:00:00
end: 2023-11-27 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("[RichG] Easy MTF Strategy", overlay=false)

TF_1_time = input("3", "Timeframe 1")
TF_2_time = input("5", "Timeframe 2")
TF_3_time = input("15", "Timeframe 3")
TF_4_time = input("30", "Timeframe 4")

fastLen = input(title="Fast Length",  defval=12)
slowLen = input(title="Slow Length",  defval=26)
sigLen  = input(title="Signal Length",  defval=9)
[macdLine, signalLine, _] = macd(close, fastLen, slowLen, sigLen)

width = 5
upcolor = green
downcolor = red
neutralcolor = blue
linestyle = line

TF_1 = request.security(syminfo.tickerid, TF_1_time, open) < request.security(syminfo.tickerid, TF_1_time, close) ? true:false
TF_1_color = TF_1 ? upcolor:downcolor

TF_2 = request.security(syminfo.tickerid, TF_2_time, open) < request.security(syminfo.tickerid, TF_2_time, close) ? true:false
TF_2_color = TF_2 ? upcolor:downcolor

TF_3 = request.security(syminfo.tickerid, TF_3_time, open) < request.security(syminfo.tickerid, TF_3_time, close) ? true:false
TF_3_color = TF_3 ? upcolor:downcolor

TF_4 = request.security(syminfo.tickerid, TF_4_time, open) < request.security(syminfo.tickerid, TF_4_time, close) ? true:false
TF_4_color = TF_4 ? upcolor:downcolor

TF_global = TF_1 and TF_2 and TF_3 and TF_4 
TF_global_bear = TF_1 == false and TF_2 == false and TF_3 == false and TF_4 == false
TF_global_color = TF_global ? green : TF_global_bear ? red : white
TF_trigger_width = TF_global ? 6 : width

plot(1, style=linestyle, linewidth=width, color=TF_1_color)
plot(5, style=linestyle, linewidth=width, color=TF_2_color)
plot(10, style=linestyle, linewidth=width, color=TF_3_color)
plot(15, style=linestyle, linewidth=width, color=TF_4_color)
plot(25, style=linestyle, linewidth=4, color=TF_global_color)    

exitCondition_Long = TF_global_bear
exitCondition_Short = TF_global

longCondition = TF_global
if (longCondition)
    strategy.entry("MTF_Long", strategy.long)

shortCondition = TF_global_bear
if (shortCondition)
    strategy.entry("MTF_Short", strategy.short)
    
strategy.close("MTF_Long", when=exitCondition_Long)    
strategy.close("MTF_Short", when=exitCondition_Short)

Plus de