Cette stratégie utilise la méthode d'élimination de la tendance des cours des actions pour observer l'indicateur MACD plus clairement. En calculant la ligne rapide DEMA et la ligne lente DEMA, la ligne MACD et la ligne de signal sont dérivées. Les signaux de trading sont générés par croisement entre la ligne MACD et la ligne de signal.
Tout d'abord, l'EMA du prix est calculée pour éliminer la tendance des prix et obtenir l'EMA détrendue. Ensuite, la ligne rapide DEMA, la ligne lente DEMA et la ligne MACD sont calculées sur la base de l'EMA. La ligne rapide DEMA est calculée en calculant d'abord l'EMA1 de la ligne rapide, puis en calculant l'EMA2 de l'EMA1, et enfin en calculant DEMA=(2*EMA1-EMA2). La ligne lente DEMA et la ligne de signal sont calculées de manière similaire. Après avoir obtenu la ligne MACD (ligne rapide DEMA - ligne lente DEMA) et la ligne de signal, un signal d'achat est généré lorsque la ligne MACD traverse au-dessus de la ligne de signal, et un signal de vente est généré lorsque la ligne MACD traverse la ligne de signal en dessous. Enfin, combiner les filtres de date et de mois, et définir une logique de stop-loss.
La logique de base de cette stratégie est la suivante:
Éliminez la tendance des prix pour voir plus clairement l'indicateur MACD.
Calculer la ligne rapide DEMA, la ligne lente DEMA pour dériver la ligne MACD et la ligne de signal.
Le croisement de la ligne MACD et de la ligne de signal génère des signaux de trading.
Ajoutez des filtres de date et de mois.
Mettez la logique de stop-loss.
Les principaux avantages de cette stratégie sont les suivants:
L'élimination de l'évolution des prix permet de mieux déceler la situation croisée du MACD sans être induit en erreur par cette évolution.
L'utilisation de l'algorithme DEMA pour calculer le MACD filtre un peu de bruit et rend le signal plus clair.
La combinaison de filtres de date et de mois peut réduire les transactions inutiles.
La logique de stop loss peut réduire les pertes dans le temps et contrôler les risques.
L'utilisation du crossover pour générer des signaux réduit les transactions incorrectes.
Dans l'ensemble, en combinant l'élimination de tendance, le calcul DEMA et les filtres de condition, cette stratégie peut générer des signaux de trading relativement clairs et fiables.
Certains risques liés à cette stratégie nécessitent une attention particulière:
Après avoir éliminé la tendance, les signaux de croisement du MACD peuvent augmenter, ce qui nécessite des tests en direct pour vérifier la faisabilité.
Bien que l'algorithme DEMA filtre un peu de bruit, il peut encore y avoir de nombreux faux signaux dans le calcul de l'indicateur.
Les conditions de filtrage de la date et du mois peuvent être trop rigides, ce qui fait manquer certaines opportunités commerciales.
La position de stop loss doit être réglée de manière raisonnable, trop lâche augmentera le risque, trop serrée provoquera un stop loss fréquent.
La stratégie repose principalement sur le MACD, si le marché n'est pas adapté à cet indicateur, la performance peut être affectée.
Il y a encore beaucoup de place pour l'optimisation des paramètres, qui nécessite des tests supplémentaires par le biais de backtest et de négociation en direct.
Les solutions:
Ajouter une autre confirmation d'indicateur pour éviter de faux signaux.
Optimiser les conditions de filtrage de la date de manière appropriée.
Testez et optimisez soigneusement les points de stop-loss.
Ajouter un mécanisme de jugement de tendance pour éviter de négocier contre la tendance.
Tests de retour complets et optimisation des paramètres pour améliorer la stabilité.
La stratégie peut être optimisée dans les aspects suivants:
Testez différentes moyennes mobiles des prix pour trouver une meilleure alternative à l'EMA.
Essayez différentes combinaisons de paramètres pour optimiser la ligne rapide, la ligne lente et la longueur de la ligne de signal du MACD.
Ajoutez des indicateurs auxiliaires comme le volume pour éviter de faux signaux.
Optimiser les stratégies de stop loss, définir des mouvements ou des ordres de stop loss raisonnables.
Optimiser les conditions de filtrage de la date et du mois pour les rendre plus flexibles.
Ajoutez le jugement de tendance pour éviter de négocier contre la tendance.
Optimisation complète des paramètres pour améliorer la stabilité.
Test de retour sur une période plus longue pour vérifier les performances à long terme.
Les transactions en direct permettent de vérifier et de modifier davantage les paramètres basés sur des transactions réelles.
En résumé, cette stratégie utilise l'idée d'éliminer la tendance et de calculer le MACD DEMA combiné avec des filtres de date pour générer des signaux de trading, ce qui est une idée de stratégie simple mais réalisable. Son plus grand avantage est de révéler clairement le modèle MACD sans être affecté par la tendance des prix. Cependant, il existe encore certains risques de cette stratégie qui nécessitent une optimisation des paramètres et des mesures de contrôle des risques à mettre en œuvre pour une application pratique. Il y a également une grande marge d'optimisation, et avec une vérification et une optimisation suffisantes, cette stratégie peut devenir un système de trading à court terme stable et fiable.
/*backtest start: 2022-10-23 00:00:00 end: 2023-10-29 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy(title = "Trendless MACD Strategy",shorttitle="MACD-T Strategy",default_qty_type = strategy.percent_of_equity, default_qty_value = 100,commission_type=strategy.commission.percent,commission_value=0.01,initial_capital=100000) maperiod=input(9) ema=ema(close,maperiod) fastmacd = input(12,title='MACD Fast Line Length') slowmacd = input(26,title='MACD Slow Line Length') signalmacd = input(9,title='Signal Line Length') macdslowline1 = ema(ema,slowmacd) macdslowline2 = ema(macdslowline1,slowmacd) DEMAslow = ((2 * macdslowline1) - macdslowline2 ) macdfastline1 = ema(ema,fastmacd) macdfastline2 = ema(macdfastline1,fastmacd) DEMAfast = ((2 * macdfastline1) - macdfastline2) MACDLine = (DEMAfast - DEMAslow) SignalLine1 = ema(MACDLine, signalmacd) SignalLine2 = ema(SignalLine1, signalmacd) SignalLine = ((2 * SignalLine1) - SignalLine2 ) MACDSignal = MACDLine-SignalLine colorbar= MACDSignal>0?green:red plot(MACDSignal,color=colorbar,style=columns,title='Histogram',histbase=0) p1 = plot(MACDLine,color=blue,title='MACDLine') p2=plot(SignalLine,color=red,title="SignalLine") fill(p1,p2,color=blue) longCond = crossover(MACDLine,SignalLine) shortCond = crossunder(MACDLine,SignalLine) monthfrom =input(1) monthuntil =input(12) dayfrom=input(1) dayuntil=input(31) yearfrom= input(2018) yearuntil=input(2021) if ( longCond ) strategy.entry("LONG", strategy.long, stop=close, oca_name="TREND", comment="LONG") else strategy.cancel(id="LONG") if ( shortCond ) strategy.entry("SHORT", strategy.short,stop=close, oca_name="TREND", comment="SHORT") else strategy.cancel(id="SHORT")