Stratégie de combinaison DEMA MACD

Auteur:ChaoZhang est là., Date: 21-12-2023 à 10h49h45
Les étiquettes:

img

Résumé

Le nom de cette stratégie est DEMA MACD Combination Strategy. Il combine l'indicateur de moyenne mobile DEMA et l'indicateur MACD pour générer des signaux d'achat et de vente avec confirmation de double indicateur.

La logique de la stratégie

La stratégie repose principalement sur la combinaison de l'indicateur de moyenne mobile DEMA et de l'indicateur MACD.

  1. Calculez la moyenne mobile de 21 jours de la DEMA. Lorsque le prix de clôture dépasse la ligne DEMA, il est considéré comme un signal d'achat. Lorsqu'il dépasse cette ligne, il est considéré comme un signal de vente.

  2. Calculer la valeur de l'histogramme MACD et ajouter un paramètre facultatif pour contrôler si l'histogramme MACD doit être supérieur à 0 comme confirmation supplémentaire du signal d'achat.

  3. Lorsqu'un signal d'achat DEMA apparaît, si la confirmation supplémentaire de l'histogramme MACD supérieur à 0 est activée, le signal d'achat effectif ne sera déclenché qu'après que l'histogramme MACD soit devenu positif.

  4. Lorsqu'un signal de vente DEMA apparaît, un signal de vente est émis directement sans nécessiter une confirmation MACD supplémentaire.

Grâce à cette combinaison de deux indicateurs, la ligne DEMA peut être utilisée pour juger de la direction de la tendance, tandis que l'histogramme MACD est utilisé pour déterminer si le marché est au début de la tendance afin d'éviter de fausses ruptures et d'augmenter le potentiel de profit.

Analyse des avantages

Les principaux avantages de la combinaison des indicateurs DEMA et MACD dans cette stratégie sont les suivants:

  1. DEMA est plus sensible et peut saisir rapidement les changements de tendance et éviter de se faire prendre dans des pièges liés au rang.

  2. L'histogramme MACD supérieur à 0 filtre les signaux de confirmation faux et n'achète qu'au début de la tendance, ce qui augmente le potentiel de profit.

  3. Vendre directement sur les croisements à la baisse de la DEMA sans confirmation MACD permet d'arrêter rapidement les pertes et de maximiser les bénéfices préservés.

  4. La vérification à deux indicateurs améliore la précision du signal et réduit les transactions incorrectes.

  5. Une large marge d'optimisation pour les paramètres qui peuvent être ajustés pour s'adapter aux différents environnements du marché.

Analyse des risques

Les principaux risques de cette stratégie sont les suivants:

  1. DEMA étant trop sensible peut également conduire à plus de faux signaux, ce qui oblige le MACD à filtrer les signaux.

  2. Le MACD a un décalage et peut manquer les meilleurs points d'entrée.

  3. La confiance en l'optimisation des paramètres avec des performances variables entre les marchés. Un backtesting continu est nécessaire pour trouver les paramètres optimaux.

  4. Le risque de corrélation sérielle avec le DEMA et le MACD s'appuyant sur l'EMA dans les calculs.

Les solutions:

  1. Ajouter d'autres filtres d'indicateurs pour construire des combinaisons à plusieurs indicateurs afin de réduire les faux signaux.

  2. Essayez de remplacer le MACD par des indicateurs de pointe comme BB ou KD pour capturer les tours plus tôt.

  3. Construire des mécanismes d'optimisation et de mise à jour des paramètres pour évaluer la robustesse des paramètres en temps réel.

  4. Mettre en place des indicateurs non liés pour réduire le risque de corrélation.

Directions d'optimisation

Les principales orientations d'optimisation de cette stratégie sont les suivantes:

  1. Les paramètres DEMA contrôlent directement la sensibilité de la stratégie.

  2. L'ajout de mécanismes de stop loss. Actuellement, la stratégie repose uniquement sur les baisses de DEMA pour les arrêts. Des arrêts de trailing ou des arrêts en pourcentage peuvent être ajoutés.

  3. Remplacement du MACD par d'autres indicateurs de pointe pour les signaux antérieurs, par exemple les bandes de Bollinger ou KDJ.

  4. Introduction d'indicateurs non liés pour améliorer la robustesse, par exemple les indicateurs de volume et de volatilité.

  5. Construire des mécanismes d'optimisation et de mise à jour des paramètres pour évaluer en permanence l'état des paramètres et les ajuster automatiquement.

Conclusion

Cette stratégie combine la moyenne mobile DEMA et l'indicateur MACD pour tirer parti des deux pour la confirmation et l'émission du signal. Par rapport aux stratégies d'indicateur unique, elle a une sensibilité et une précision de signal plus élevées. Il y a également place à l'amélioration en optimisant les paramètres, en ajoutant des arrêts, en introduisant des indicateurs de pointe, etc. pour rendre la stratégie plus robuste et intelligente.


/*backtest
start: 2022-12-14 00:00:00
end: 2023-12-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © melihtuna

//@version=1
strategy("DEMA Strategy with MACD", overlay=true)

// === Trend Trader Strategy ===
DemaLength = input(21, minval=1)
MacdControl = input(false, title="Control 'MACD Histogram is positive?' when Buy condition")

e1 = ema(close, DemaLength)
e2 = ema(e1, DemaLength)
dema1 = 2 * e1 - e2
pos = close > dema1 ? 1 : 0 
barcolor(pos == 0 ? red: pos == 1 ? green : blue )    
plot(dema1, color= blue , title="DEMA Strategy with MACD")

// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2020, title = "From Year", minval = 2017)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2017)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true // create function "within window of time"

// === MACD ===
[macdLine, signalLine, histLine] = macd(close, 12, 26, 9)
macdCond= MacdControl ? histLine[0] > 0 ? true : false : true

strategy.entry("BUY", strategy.long, when = window() and pos == 1 and macdCond)
strategy.entry("SELL", strategy.short, when = window() and pos == 0)




Plus de