Diese Trendfolgestrategie verwendet einen erweiterten MACD-Indikator, der schnelle EMA, langsame EMA, ihre Differenz und die EMA dieser Differenz berechnet, um Signale zu erzeugen.
Die Logik lautet:
Berechnung der schnellen EMA-Periode, z. B. 12 Tage
Berechnung der langsamen EMA-Periode, z. B. 26 Tage
Abziehen Sie schnell von der langsamen EMA, um MACD zu erhalten
EMA des MACD als Signallinie, z. B. 9-Tage
EMA von MACD minus Signal gibt ein verbessertes Signal
Gehen Sie lang, wenn das verstärkte Signal über die Nulllinie geht
Schließen Sie lang, wenn das verstärkte Signal unter die Nulllinie geht
Die Strategie greift auf die Trendverfolgungsfähigkeit des MACD
Der verbesserte MACD reduziert das Rauschen und verbessert die Signale
Schnelle/langsame EMA-Kombination zeigt Richtung und Stärke
Langsamere Parameter konzentrieren sich auf mittelfristige bis langfristige Trends
Eine sorgfältige Optimierung der EMA-Perioden ist erforderlich
LANG kann nur kurze Gelegenheiten nicht nutzen
Weniger häufiges Auftreten des Signals
Diese Strategie nutzt die verbesserte MACD für eine verbesserte mittelfristige bis langfristige Trendidentifizierung.
/*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)