Stratégie de conversion haussière-baissière de la moyenne mobile MACD


Date de création: 2023-12-08 15:29:41 Dernière modification: 2023-12-08 15:29:41
Copier: 0 Nombre de clics: 772
1
Suivre
1621
Abonnés

Stratégie de conversion haussière-baissière de la moyenne mobile MACD

Aperçu

La stratégie de conversion en hausse et en baisse du MACD est basée sur le calcul du DIFF et du DEA du MACD pour déterminer si la tendance du marché est en train de s’inverser, ce qui génère un signal de transaction. Lorsque le DIFF est en hausse, faites plus; lorsque le DIFF est en baisse, faites moins.

Principe de stratégie

La stratégie est principalement basée sur les moyennes DIFF et DEA de l’indicateur MACD. La MACD représente la différence entre les moyennes mobiles de l’indicateur et se compose de lignes DIFF, DEA et MACD. La ligne DIFF représente la différence entre la moyenne EMA à court terme et la moyenne EMA à long terme.

Lorsque le DIFF monte au-dessus du DEA, la courte moyenne commence à se renforcer et le marché entre en hausse. Lorsque le DIFF descend au-dessus du DEA, la courte moyenne commence à s’affaiblir et le marché entre en baisse.

En même temps, la stratégie est combinée avec la moyenne EMA du prix pour filtrer les fausses ruptures. La rupture est effectuée uniquement lorsque le DIFF a franchi le DEA à la hausse et que le prix est inférieur au prix de la plus-value précédente. La rupture est effectuée uniquement lorsque le DIFF a franchi le DEA à la baisse et que le prix est supérieur au prix de la plus-value précédente.

Analyse des avantages

La stratégie de conversion en hausse ou en baisse de la MACD, combinant l’indicateur MACD et la moyenne des prix EMA, évite les faux signaux produits uniquement par l’indicateur MACD et améliore l’efficacité des transactions. Cette stratégie juge que les tendances du marché changent rapidement et convient aux opérations en ligne courte.

Les principaux avantages sont les suivants:

  1. Utilisez l’indicateur MACD pour déterminer les points de basculement des tendances et saisir le moment où le marché se retourne
  2. Filtrage combiné avec la moyenne des EMA pour réduire les chances de fausses ruptures
  3. Les signaux de transaction sont générés rapidement et conviennent aux opérations sur courte ligne.
  4. Le suivi de la tendance permet d’obtenir des bénéfices à moyen terme
  5. L’utilisation d’une approche d’opération de conversion de tendance qui correspond à la mentalité de la plupart des traders

Analyse des risques

La stratégie de conversion en hausse ou en baisse du MACD présente également des risques, principalement:

  1. Les indicateurs MACD sont sujets à des signaux erronés et nécessitent une vérification par un filtre EMA de prix, mais manquent également une partie du mouvement
  2. Attention à la DIFF et à la DEA, car si les paramètres ne sont pas ajustés correctement, le signal d’erreur est amplifié.
  3. Les signaux de rupture ne détectent qu’une seule ligne K, ce qui peut entraîner un phénomène de couplage.
  4. Stratégie utilisant le DIFF et le DEA comme signaux de trading principaux. Si le marché est incertain, le signal de croisement est généré fréquemment, ce qui augmente la fréquence des transactions

Ces risques peuvent être optimisés principalement dans les domaines suivants:

  1. Ajustez les paramètres MACD pour réduire le nombre de signaux erronés
  2. Augmentation de l’intensité des filtres pour réduire la probabilité de piège
  3. Augmentation du filtrage des positions et limitation de la fréquence des transactions

Direction d’optimisation

La stratégie de conversion en hausse ou en baisse du MACD a également de la place pour l’optimisation et peut être optimisée à partir des dimensions suivantes:

  1. Optimisation des paramètres MACD, réglage des cycles DIFF et DEA;
  2. Le filtrage des délais de détention et la réduction de la fréquence des transactions;
  3. L’augmentation des stratégies de stop loss et de stop loss pour contrôler les pertes monétaires;
  4. En combinaison avec d’autres indicateurs de filtrage, tels que BOLL sur et en dessous de la voie, KD, etc.;
  5. Les traders doivent être en mesure d’évaluer les tendances et d’éviter les transactions à contre-courant.
  6. Des modèles de stratégie de départ ou de stratégie d’arrêt peuvent être développés à partir de ce cadre de stratégie.

Résumer

La stratégie de conversion de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la

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

//@version=3
strategy("macd_strategy", 
          shorttitle="macd", 
          overlay=true, 
          pyramiding=1, 
          max_bars_back=5000, 
          calc_on_order_fills = false, 
          calc_on_every_tick=true, 
          default_qty_type=strategy.percent_of_equity, 
          default_qty_value=100, 
          commission_type =strategy.commission.percent, 
          commission_value=0.00075)
[diff, dea, _] = macd(close, 12, 26, 7)
dea_close = ema(diff, 3)
price = ema(close, 9)
plot(price)
cross_over_price = na
cross_over_signal = na
cross_over_price := cross_over_price[1]
cross_over_signal := cross_over_signal[1]

cross_under_price = na
cross_under_signal = na
cross_under_price := cross_under_price[1]
cross_under_signal := cross_under_signal[1]
if (crossover(diff,dea))
    cross_over_price := price[1]
    cross_over_signal := diff
if (crossunder(diff,dea))
    cross_under_price := price[1]
    cross_under_signal := diff
if dea > 0
    cross_over_price = na
    cross_over_signal = na
else
    cross_under_price = na
    cross_under_signal = na
if diff > 0
    if cross_under_price > cross_under_price[1]*1 and cross_under_signal < cross_under_signal[1]*0.95
        strategy.entry("S", strategy.short,  comment="S")
else
    if cross_over_price < cross_over_price[1]*1 and cross_over_signal > cross_over_signal[1]*0.95
        strategy.entry("B", strategy.long,  comment="B")
// strategy.exit("exit_s", "S", stop = strategy.position_avg_price*1.05, when=strategy.position_size < 0)
// strategy.exit("exit_b", "B", stop = strategy.position_avg_price*0.95, when=strategy.position_size > 0)
strategy.close_all(when=(strategy.position_size < 0 and (dea < 0 or diff > cross_under_signal*1 or crossover(diff, dea)) or (strategy.position_size > 0 and (dea > 0 or diff < cross_over_signal*1 or crossunder(diff, dea)))))