MACD DEMA Handelsstrategie

Schriftsteller:ChaoZhang, Datum: 2023-09-19 16:10:19
Tags:

Übersicht

Diese Strategie kombiniert die MACD- und DEMA-Dual-Rail-Indikatoren, um Handelssignale aus Crossovers zu generieren.

Strategieprinzip

  1. Berechnen Sie die DEMAfast als DEMA-Wert des Preises mit der Periodenlänge fastmacd.

  2. Berechnen Sie die langsame Linie DEMAslow als DEMA-Wert des Preises mit der Periodenlänge slowmacd.

  3. Die MACD-Linie ist der Unterschied zwischen schnellen und langsamen Linien: DEMAfast - DEMAAslow.

  4. Die Signallinie ist der DEMA-Wert der MACD-Linie mit Periodensignalmacd.

  5. Crossovers zwischen MACD und Signallinien erzeugen Handelssignale: Long auf dem goldenen Kreuz, Short auf dem Todeskreuz.

  6. Hinzufügen von Datumsfiltern, um nur Signale innerhalb des angegebenen Datumsbereichs zu erzeugen.

Analyse der Vorteile

Die wichtigsten Vorteile dieser Strategie sind:

  1. Die Kombination von MACD und DEMA ergänzt die Indikatoren.

  2. Das DEMA-Doppelschienen-Design reduziert die Verzögerung und den Lärm des MACD-Indikators.

  3. MACD-Crossover-Signale sind leicht zu interpretieren, sauber und einfach.

  4. Die flexible Festlegung der Datumsfilter erfüllt verschiedene strategische Bedürfnisse.

  5. Die MACD-Parameter können für Flexibilität unter Marktbedingungen optimiert werden.

Risikoanalyse

Hauptrisiken dieser Strategie:

  1. Der MACD ist als Trendindikator in unruhigen Seitenmärkten schwierig.

  2. Crossovers können falsche Signale erzeugen, erfordert eine effektive Filterung.

  3. Stop-Loss-Strategie nicht robust, anfällig für übergroße Stops.

  4. Parameteroptimierung nicht umfassend genug, große Leistungsunterschiede zwischen Produkten.

  5. Die Datumsfilter sind zu steif, müssen dynamisch angepasst werden.

Lösungen:

  1. Hinzufügen des Momentum-Indikators, um einen seitlichen Markt zu vermeiden.

  2. Fügen Sie Preisbedingungen hinzu, um falsche Kreuzungen auszufiltern.

  3. Stellen Sie einen angemessenen Anfangs- und Nachstop-Loss fest.

  4. Testparameter für verschiedene Produkte, dynamische Optimierung.

  5. Filterdaten anhand von Echtzeitbedingungen anpassen.

Optimierungsrichtlinien

Einige mögliche Verbesserungen der Strategie:

  1. Fügen Sie einen Lautstärkungsfilter für Crossover-Signale hinzu.

  2. Optimieren Sie die Kombinationen der MACD-Parameter für verschiedene Produkte.

  3. Fügen Sie Stop-Loss-Strategien wie Fixed- oder Trailing-Stop-Loss hinzu.

  4. Dynamische Anpassung des Stop-Loss anhand der Marktvolatilität.

  5. Verfolgen Sie die Trendstärke für die Positionsgröße.

Zusammenfassung

Die MACD-DEMA-Strategie kombiniert die Stärken beider Indikatoren und nutzt Crossovers, um Trends zu erfassen. Aber der MACD ist von Natur aus zurückgeblieben, seien Sie vor falschen Signalen vorsichtig. Optimieren Sie auch Stops, um unangemessene Liquidationen zu vermeiden. Für den Live-Handel wird empfohlen, auf optimierten Parametern und kontinuierlichen Verbesserungen basierend vorsichtig einzutreten.


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

//@version=2
strategy(" MACD DEMA STRATEGY ", overlay=true)

source=close
price=source



fastmacd = input(12,title='MACD Fast  Line Length')
slowmacd = input(26,title='MACD Slow Line Length')
signalmacd = input(9,title='Signal Line Length')

macdslowline1 = ema(close,slowmacd)
macdslowline2 = ema(macdslowline1,slowmacd)
DEMAslow = ((2 * macdslowline1) - macdslowline2 )

macdfastline1 = ema(close,fastmacd)
macdfastline2 = ema(macdfastline1,fastmacd)
DEMAfast = ((2 * macdfastline1) - macdfastline2)

MACDLine = (DEMAfast - DEMAslow)

SignalLine1 = ema(MACDLine, signalmacd)
SignalLine2 = ema(SignalLine1, signalmacd)
SignalLine = ((2 * SignalLine1) - SignalLine2 )


MACDSignal = SignalLine-MACDLine


colorbar= MACDSignal>0?green:red




yearfrom = input(2018)
yearuntil =input(2019)
monthfrom =input(1)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)







if ( crossover(MACDLine,SignalLine) ) 
    strategy.entry("MMAL", strategy.long, stop=close, oca_name="TREND",  comment="AL")
    
else
    strategy.cancel(id="MMAL")


if (  crossunder(MACDLine,SignalLine) ) 

    strategy.entry("MMSAT", strategy.short,stop=close, oca_name="TREND",  comment="SAT")
else
    strategy.cancel(id="MMSAT")
    
    
    
    
    
    
    
    
    
    
    
    


Mehr