Stratégie de trading multi-périodes basée sur le MACD


Date de création: 2024-01-12 11:46:59 Dernière modification: 2024-01-12 11:46:59
Copier: 0 Nombre de clics: 1114
1
Suivre
1617
Abonnés

Stratégie de trading multi-périodes basée sur le MACD

Résumé: Cette stratégie utilise l’indicateur MACD pour générer des signaux de négociation sur plusieurs périodes de temps afin de suivre la tendance. Son idée de base est de confirmer la direction de la tendance dans les périodes de temps à haute fréquence, puis de rechercher des moments d’entrée spécifiques dans les périodes de temps à basse fréquence.

Le principe de la stratégie: La stratégie utilise la divergence de l’indicateur MACD et la croisée des lignes de signal pour déterminer la direction de la tendance. Plus précisément, elle calcule la divergence du MACD et la ligne de signal dans le cadre de la période de haute période (default 60 minutes). Un signal d’achat est généré lorsque la divergence de l’indicateur MACD traverse la ligne de signal et un signal de vente lorsque la ligne de signal est traversée.

La stratégie calcule ensuite le MACD dans le cadre de la période de basse période (la période actuelle) et entre dans la position correspondante lorsque la déviation et la ligne de signal se croisent. La période haute est donc utilisée pour déterminer la direction de la tendance et la période basse pour trouver un point d’entrée spécifique.

La stratégie utilise également les changements de couleurs du diagramme de colonnes pour aider à déterminer la tendance, les colonnes vertes indiquant une hausse et les colonnes rouges une baisse.

Analyse des avantages:

  1. La conception du cadre multi-temps, le cycle élevé détermine la direction de la tendance, le cycle bas cherche un point d’entrée, une bonne systématique.

  2. Le croisement des indicateurs MACD est utilisé pour déterminer le moment d’achat et de vente, les paramètres de l’indicateur sont optimisés et le signal est plus fiable.

  3. Les couleurs de la colonne aident à juger de l’état actuel des tendances, créent une vérification multiple et améliorent la précision de la prise de décision.

  4. Le suivi automatique des tendances fonctionne sans trop d’intervention humaine et réduit les erreurs de jugement émotionnelles.

Analyse des risques:

  1. Le MACD est un indicateur de tendance à long terme qui peut générer de faux signaux à court terme entraînant des pertes inutiles.

  2. Les stratégies multi-cadres sont plus difficiles à optimiser et à tester en raison de la nécessité de prendre en compte plusieurs cycles à la fois.

  3. La stratégie n’a pas de stop-loss et peut entraîner des pertes plus importantes.

Les directions d’optimisation

  1. Optimiser les paramètres du MACD pour trouver la meilleure combinaison de paramètres

  2. Le gouvernement a décidé d’augmenter les mécanismes d’arrêt des pertes et de limiter les pertes maximales.

  3. Évaluer la nécessité d’ajouter d’autres indicateurs pour filtrer le signal et améliorer sa qualité.

  4. Testez différentes combinaisons de fuseaux horaires pour trouver la meilleure correspondance de fuseaux horaires.

Résumé: Cette stratégie est globalement conçue de manière systématique et, combinant les multiples avantages de l’indicateur MACD, elle permet de suivre efficacement les tendances à long terme. Cependant, il est difficile d’éviter le risque d’expansion des pertes à court terme en raison de la non-établissement d’un stop-loss, ce qui nécessite une optimisation supplémentaire.

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

//@author : SudeepBisht
//@version=2
strategy(title="SB_CM_MacD_Ult_MTF", shorttitle="SB_CM_Ult_MacD_MTF")
source = close
useCurrentRes = input(true, title="Use Current Chart Resolution?")
resCustom = input(title="Use Different Timeframe? Uncheck Box Above",  defval="60")
smd = input(true, title="Show MacD & Signal Line? Also Turn Off Dots Below")
sd = input(true, title="Show Dots When MacD Crosses Signal Line?")
sh = input(true, title="Show Histogram?")
macd_colorChange = input(true,title="Change MacD Line Color-Signal Line Cross?")
hist_colorChange = input(true,title="MacD Histogram 4 Colors?")

res = useCurrentRes ? timeframe.period : resCustom

fastLength = input(12, minval=1), slowLength=input(26,minval=1)
signalLength=input(9,minval=1)

fastMA = ema(source, fastLength)
slowMA = ema(source, slowLength)

macd = fastMA - slowMA
signal = sma(macd, signalLength)
hist = macd - signal

outMacD = request.security(syminfo.tickerid, res, macd)
outSignal = request.security(syminfo.tickerid, res, signal)
outHist = request.security(syminfo.tickerid, res, hist)

histA_IsUp = outHist > outHist[1] and outHist > 0
histA_IsDown = outHist < outHist[1] and outHist > 0
histB_IsDown = outHist < outHist[1] and outHist <= 0
histB_IsUp = outHist > outHist[1] and outHist <= 0

//MacD Color Definitions
macd_IsAbove = outMacD >= outSignal
macd_IsBelow = outMacD < outSignal

plot_color = hist_colorChange ? histA_IsUp ? aqua : histA_IsDown ? blue : histB_IsDown ? red : histB_IsUp ? maroon :yellow :gray
macd_color = macd_colorChange ? macd_IsAbove ? lime : red : red
signal_color = macd_colorChange ? macd_IsAbove ? yellow : yellow : lime

circleYPosition = outSignal
 
plot(smd and outMacD ? outMacD : na, title="MACD", color=macd_color, linewidth=4)
plot(smd and outSignal ? outSignal : na, title="Signal Line", color=signal_color, style=line ,linewidth=2)
plot(sh and outHist ? outHist : na, title="Histogram", color=plot_color, style=histogram, linewidth=4)
plot(sd and cross(outMacD, outSignal) ? circleYPosition : na, title="Cross", style=circles, linewidth=4, color=macd_color)
// hline(0, '0 Line', linestyle=solid, linewidth=2, color=white)

macd_chk=smd and outMacD ? outMacD : na
checker=smd and outSignal ? outSignal : na
if (crossover(macd_chk,checker))
    strategy.entry("BBandLE", strategy.long, comment="BBandLE")

if (crossunder(macd_chk, checker))
    strategy.entry("BBandSE", strategy.short, comment="BBandSE")