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:
Calcul de la période EMA rapide, par exemple de 12 jours
Calcul de la période d'EMA lente, par exemple 26 jours
Soustraire rapide de l'EMA lente pour obtenir MACD
Prenez l'EMA du MACD comme ligne de signal, par exemple 9 jours
L'EMA du MACD moins le signal donne un signal amélioré
Allez long quand le signal amélioré traverse la ligne zéro.
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
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
Optimisation minutieuse des périodes d'EMA nécessaire
LONG ne peut utiliser que des opportunités courtes
Occurrence moins fréquente du signal
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)