Erweiterte Konvergenzstrategie für gleitende Durchschnittswerte

Schriftsteller:ChaoZhang, Datum: 14.9.2023
Tags:

Strategie Logik

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:

  1. Berechnung der schnellen EMA-Periode, z. B. 12 Tage

  2. Berechnung der langsamen EMA-Periode, z. B. 26 Tage

  3. Abziehen Sie schnell von der langsamen EMA, um MACD zu erhalten

  4. EMA des MACD als Signallinie, z. B. 9-Tage

  5. EMA von MACD minus Signal gibt ein verbessertes Signal

  6. Gehen Sie lang, wenn das verstärkte Signal über die Nulllinie geht

  7. Schließen Sie lang, wenn das verstärkte Signal unter die Nulllinie geht

Die Strategie greift auf die Trendverfolgungsfähigkeit des MACD zurück und optimiert ihn weiter für qualitativ hochwertige mittelfristige bis langfristige Trendsignale.

Vorteile

  • 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

Risiken

  • Eine sorgfältige Optimierung der EMA-Perioden ist erforderlich

  • LANG kann nur kurze Gelegenheiten nicht nutzen

  • Weniger häufiges Auftreten des Signals

Zusammenfassung

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)



Mehr