Stratégie mixte longue et courte CCI, DMI et MACD

CCI DMI MACD
Date de création: 2024-04-28 13:52:16 Dernière modification: 2024-04-28 13:52:16
Copier: 5 Nombre de clics: 905
1
Suivre
1617
Abonnés

Stratégie mixte longue et courte CCI, DMI et MACD

Aperçu

Cette stratégie combine trois indicateurs techniques: l’indicateur de tendance (CCI), l’indicateur de mouvement directionnel (DMI) et l’indicateur de dispersion de la moyenne mobile (MACD) pour juger de l’état de survente et de la direction de la tendance du marché. Un signal d’achat est généré lorsque le CCI franchit la zone de survente et que le DI+ est supérieur au DI- et que le MACD est supérieur à la ligne de signal. Un signal de vente est généré lorsque le CCI franchit la zone de survente et que le DI- est supérieur au DI+ et que le MACD est inférieur à la ligne de signal.

Principe de stratégie

  1. Calculer l’indicateur CCI pour déterminer l’état de survente du marché. Lorsque le CCI dépasse la zone de survente (inférieure à 100), il indique que le marché est survendu et peut augmenter. Lorsque le CCI dépasse la zone de survente (supérieure à 100), il indique que le marché est survendu et peut chuter.
  2. Calculer l’indicateur DMI pour déterminer la direction de la tendance du marché. Lorsque DI+ est supérieur à DI- indique une tendance à la hausse; lorsque DI- est supérieur à DI+ indique une tendance à la baisse.
  3. Calculer l’indicateur MACD pour déterminer la force de la tendance du marché. Lorsque le MACD est supérieur à la ligne de signal, il indique une forte dynamique ascendante; lorsque le MACD est inférieur à la ligne de signal, il indique une forte dynamique descendante.
  4. La combinaison des trois indicateurs ci-dessus génère un signal d’achat lorsque le CCI se déplace vers le haut de la zone de survente et que le DI+ est supérieur au DI- et que le MACD est supérieur à la ligne de signal; un signal de vente lorsque le CCI se déplace vers le bas de la zone de survente et que le DI- est supérieur au DI+ et que le MACD est inférieur à la ligne de signal.

Avantages stratégiques

  1. La combinaison d’indicateurs techniques permettant d’analyser le marché sous différents angles améliore la fiabilité du signal.
  2. Il prend en compte l’état de survente, la direction et la force de la tendance, afin de capturer les principales tendances du marché.
  3. Les conditions d’entrée et de sortie sont clairement définies, ce qui facilite l’automatisation des transactions.

Risque stratégique

  1. Cette stratégie peut générer de nombreux faux signaux lors de turbulences ou de tendances incertaines, entraînant des transactions fréquentes et des coûts de transaction élevés.
  2. La stratégie repose sur des données historiques et peut être lente à réagir à des événements inattendus ou à des informations importantes sur le marché.
  3. Les paramètres de la stratégie (comme le seuil de surachat et de survente du CCI, le cycle de la ligne rapide et lente du MACD, etc.) doivent être optimisés pour différents marchés et variétés, sinon ils peuvent affecter la performance de la stratégie.

Orientation de l’optimisation de la stratégie

  1. L’introduction de plus d’indicateurs techniques ou d’indicateurs de l’humeur du marché améliore la fiabilité et la stabilité du signal.
  2. L’optimisation des paramètres de la stratégie peut être réalisée par des méthodes d’optimisation intelligentes telles que l’algorithme génétique pour trouver la combinaison optimale de paramètres.
  3. L’ajout de modules de contrôle du risque, tels que le stop loss, la gestion des positions, etc., améliore le rapport risque/rendement de la stratégie.
  4. Adapter les stratégies aux différents environnements de marché, en définissant des règles de négociation différentes.

Résumer

La stratégie produit un signal d’achat et de vente en combinant les trois indicateurs techniques CCI, DMI et MACD, pour juger de manière globale de l’état de survente, de la direction de la tendance et de la force de la tendance sur le marché. L’idée de la stratégie est claire et facile à mettre en œuvre, mais dans la pratique, il faut faire attention à l’optimisation des paramètres de la stratégie, à la maîtrise de la fréquence des transactions et des risques pour améliorer la stabilité et la rentabilité de la stratégie.

Code source de la stratégie
/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("CCI, DMI, and MACD Strategy", overlay=true)

// Define inputs
cci_length = input(14, title="CCI Length")
overbought_level = input(100, title="Overbought Level")
oversold_level = input(-100, title="Oversold Level")

// Calculate CCI
cci_value = ta.cci(close, cci_length)

// Calculate DMI
[di_plus, di_minus, _] = ta.dmi(14, 14)

// Calculate MACD
[macd_line, signal_line, _] = ta.macd(close, 24, 52, 9)

// Define buy and sell conditions
buy_signal = ta.crossover(cci_value, oversold_level) and di_plus > di_minus and macd_line > signal_line // CCI crosses above -100, Di+ > Di-, and MACD > Signal
sell_signal = ta.crossunder(cci_value, overbought_level) and di_minus > di_plus and macd_line < signal_line // CCI crosses below 100, Di- > Di+, and MACD < Signal

// Define exit conditions
buy_exit_signal = ta.crossover(cci_value, overbought_level) // CCI crosses above 100
sell_exit_signal = ta.crossunder(cci_value, oversold_level) // CCI crosses below -100

// Execute trades based on conditions
strategy.entry("Buy", strategy.long, when=buy_signal)
strategy.close("Buy", when=buy_exit_signal)

strategy.entry("Sell", strategy.short, when=sell_signal)
strategy.close("Sell", when=sell_exit_signal)

// Plot CCI
plot(cci_value, title="CCI", color=color.blue)

// Plot DMI
plot(di_plus, title="DI+", color=color.green)
plot(di_minus, title="DI-", color=color.red)

// Plot MACD and Signal lines
plot(macd_line, title="MACD", color=color.orange)
plot(signal_line, title="Signal", color=color.purple)

// Plot overbought and oversold levels
hline(overbought_level, "Overbought", color=color.red)
hline(oversold_level, "Oversold", color=color.green)