Stratégie de tendance à la convergence des moyennes mobiles améliorée

Auteur:ChaoZhang est là., Date: 14 septembre 2023 à 16 h 46 min 53 s
Les étiquettes:

La logique de la stratégie

Cette stratégie de suivi de tendance utilise un indicateur MACD amélioré. Il calcule l'EMA rapide, l'EMA lente, leur différence et l'EMA de cette différence pour générer des signaux.

La logique est la suivante:

  1. Calcul de la période EMA rapide, par exemple de 12 jours

  2. Calcul de la période d'EMA lente, par exemple 26 jours

  3. Soustraire rapide de l'EMA lente pour obtenir MACD

  4. Prenez l'EMA du MACD comme ligne de signal, par exemple 9 jours

  5. L'EMA du MACD moins le signal donne un signal amélioré

  6. Allez long quand le signal amélioré traverse la ligne zéro.

  7. Fermer long lorsque le signal renforcé passe sous la ligne zéro

La stratégie s'appuie sur la capacité de suivi de tendance du MACD et l'optimise davantage pour des signaux de tendance de qualité à moyen et long terme.

Les avantages

  • Le MACD amélioré réduit le bruit et améliore les signaux

  • Indicateurs de direction et de force combinés EMA rapide/lente

  • Les paramètres plus lents se concentrent sur les tendances à moyen et long terme

Les risques

  • Optimisation minutieuse des périodes d'EMA nécessaire

  • LONG ne peut utiliser que des opportunités courtes

  • Occurrence moins fréquente du signal

Résumé

Cette stratégie tire parti du MACD amélioré pour une meilleure identification des tendances à moyen et long terme.


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

//@version=3
//study("MACDAS")
// strategy("macdas",shorttitle="macdas",overlay=true,default_qty_value=10000,initial_capital=10000,currency=currency.USD)

// Date range filter
testStartYear = input(2018, "Backtest Start Year")
testStartMonth = input(4, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 0, 0)

testStopYear = input(2018, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(31, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0)

inTimeRange = true


fastperiod = input(12,title="fastperiod",minval=1,maxval=500)
slowperiod = input(26,title="slowperiod",minval=1,maxval=500)
signalperiod = input(9,title="signalperiod",minval=1,maxval=500)
fastMA = ema(close, fastperiod)
slowMA = ema(close, slowperiod)
macd = fastMA - slowMA
signal = ema(macd, signalperiod)
macdAS = macd - signal
signalAS = ema(macdAS, signalperiod)
plot(macdAS, color=blue, linewidth=2)
plot(signalAS, color=red, linewidth=2)
plot(0, color=black)

strategy.entry("LONG", strategy.long, when =inTimeRange and crossover(macdAS,signalAS))
strategy.close("LONG", when= inTimeRange and crossunder(macdAS,signalAS))

plotshape(crossover(macdAS, signalAS) , style = shape.arrowup, text="Long",color=green,size=size.huge)
plotshape(crossover(signalAS,macdAS) , style = shape.arrowdown, text="End Long",color=red,size=size.huge)



Plus de