Adaptive Multi-Timeframe Moving Average Crossover-Strategie

Schriftsteller:ChaoZhang, Datum: 2023-10-09 14:56:37
Tags:

Übersicht

Diese Strategie nutzt das Prinzip des adaptiven gleitenden Durchschnitts Crossovers über mehrere Zeitrahmen hinweg, um Trends zu verfolgen.

Grundsätze

Die Strategie basiert hauptsächlich auf der Kombination von doppeltem gleitendem Durchschnitts-Crossover-System und MACD-Indikator. Das doppelte gleitende Durchschnitts-Crossover-System besteht aus schneller EMA und langsamer EMA, die kurzfristige und langfristige gleitende Durchschnitte berechnen. Ein Kaufsignal wird erzeugt, wenn die schnelle Linie über die langsame Linie kreuzt, was bedeutet, dass sich der Markttrend vom Rückgang zum Anstieg verändert hat, und eine Long-Position aufgebaut werden kann. Ein Verkaufssignal wird erzeugt, wenn die schnelle Linie unter die langsame Linie kreuzt, was bedeutet, dass sich der Markttrend vom Anstieg zum Abstieg verändert hat, zu dem Zeitpunkt kann die Position geschlossen werden. Der MACD-Indikator besteht aus DIF-Linie und DEA-Linie, die die Differenz zwischen kurzfristigen EMA und langfristigen EMA und den gleitenden Durchschnitt

Die Strategie kombiniert das Trendurteil des doppelten gleitenden Durchschnitts und das Impulswechselsignal des MACD. Während sie Gewinne aus mittelfristigen bis langfristigen Trends erfasst, kann sie falsche Ausbrüche effektiv filtern. Insbesondere wird ein stärkeres Kurzsignal erzeugt, wenn die schnelle Linie über die langsame Linie geht, wenn das MACD-Histogramm gleichzeitig grün wird. Im Gegenteil, wenn die schnelle Linie unter die langsame Linie geht, wenn das MACD-Histogramm gleichzeitig rot wird, wird ein stärkeres Kurzsignal erzeugt.

Darüber hinaus beinhaltet die Strategie auch eine adaptive Parameter-Funktionalität. Während der Parameteroptimierung werden die Perioden der schnellen Linie, der langsamen Linie und der MACD-Parameter automatisch anhand der Performance über verschiedene Zeiträume angepasst, um sicherzustellen, dass die Strategie unter verschiedenen Marktbedingungen eine relativ bessere Performance erzielen kann.

Vorteile

  1. Kombiniert ein duales gleitendes Durchschnittssystem und einen MACD-Indikator für die Entscheidungsfindung, um nicht durch falsche Signale aus Lärm getäuscht zu werden.

  2. Anwendet eine anpassungsfähige Parameterfunktion, so dass die Strategie die Parameter dynamisch anpasst, um sich an Marktveränderungen anzupassen und Handelsentscheidungen automatisch zu optimieren.

  3. Erfasst mittelfristige bis langfristige Trends relativ gut, filtert falsche Ausbrüche von Märkten mit Bandbreite und erzielt zusätzliche Gewinne aus Trending-Märkten.

  4. Annahme von Analysen über Zeiträume hinweg, um eine größere Trendrichtung zu ermitteln.

  5. Einfache und klare Logik, optimierte Code-Struktur, leicht zu verstehen und an unterschiedliche Bedürfnisse anzupassen.

Risiken

  1. Das Doppel gleitende Durchschnittssystem birgt die Gefahr, verfälscht zu werden, ist für den Bereichsmarkt ungeeignet und sollte für Bestände und Zeiträume mit offensichtlichem Trend verwendet werden.

  2. Der MACD hat einen Verzögerungseffekt und ist nicht geeignet, um sich schnell verändernde Trends zu verfolgen.

  3. Die Optimierung der Parameter erfordert eine ausreichend große Rückprüfungsperiode und eine strenge Risikobewertung, um eine Überanpassung zu vermeiden.

  4. Beim Halten einer Long-Position sollten Sie auf systemische Risiken von plötzlichen Ereignissen achten und gegebenenfalls rechtzeitig einen Stop-Loss vornehmen.

  5. Risiko einer Überoptimierung für die adaptive Parameterfunktion, die eine ausreichende Überprüfung erfordert, um zu häufige Parameteranpassungen zu vermeiden.

Verbesserungsrichtlinien

  1. Verschiedene Kombinationen von schnellen und langsamen gleitenden Durchschnitten testen, um Parameter zu finden, die Lärm filtern und dem Trend entsprechen.

  2. Versuchen Sie, verschiedene MACD-Parameter zu finden, um die Kombination zu finden, die am frühesten den Trendwechselpunkt widerspiegelt.

  3. Fügen Sie einen Trendindikator als Filter hinzu, halten Sie den Handel an, wenn der Trend unklar ist, um Whipsaw zu vermeiden.

  4. Einführung von Stop-Loss-Mechanismen wie das Bewegen von Stop-Loss oder ausstehenden Aufträgen zur Kontrolle einzelner Handelsverluste.

  5. Versuchen Sie maschinelle Lernalgorithmen, um adaptive Parameterregeln mit mehr Daten zu trainieren, um die Stabilität zu verbessern.

  6. Versuchen Sie, ein Produkt-Arbitrage zu betreiben, um ein Portfolio für korrelierende Produkte zu bilden, um die systemischen Risiken des Marktes zu diversifizieren.

Schlussfolgerung

Diese Strategie kombiniert den doppelten gleitenden Durchschnitts-Crossover und den MACD-Momentumsindikator, wodurch die organische Integration von Trendfolgung und Rhythmuskontrolle erreicht wird. Die Einführung von adaptiven Parametern macht die Strategie robuster, um sich reibungslos an Marktveränderungen anzupassen. Im Vergleich zu Einzelindikatorstrategien bildet diese Strategie stärkere Entscheidungsfindungseffekte, die in der Lage sind, relativ große Handelsgewinne aus mittelfristigen bis langfristigen Trends zu erzielen. Die nächsten Schritte können Parameteroptimierung, Risikokontrolle usw. umfassen, um die Strategie weiter zu verbessern. Insgesamt bildet die Strategie ein zuverlässiges Trendfolgungssystem, das eine eingehende Forschung und Anwendung verdient.


/*backtest
start: 2023-09-08 00:00:00
end: 2023-10-08 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3

// To enable alerts: Change 'Strategy' to read 'Study' below  and you also need to comment out lines 43 and 47 - Strategy code

// strategy(title="Riz Coloured MACD", shorttitle="Riz MACD" , initial_capital=5000, default_qty_value=3  )
//study(title="Riz Coloured MACD", shorttitle="Riz MACD")

source = close
fastLength = input(21, minval=1), slowLength=input(55,minval=1)
signalLength=input(9,minval=1)
MACDCandlesCheckedBack=input(6,minval=1)
MACDTolerance=input(4,minval=1)

fastMA = ema(source, fastLength)
slowMA = ema(source, slowLength)
macd = fastMA - slowMA
signal = ema(macd, signalLength)
hist = macd - signal

// ====== BASIC COLOURING - IF HISTOGRAM IS HIGHER THAN PREVIOUS 2 CANDLES THEN WE ARE TICKING UP and VISA VERSA ============//

isTickingUp = hist > hist[1] and hist > hist[2] //and hist > hist[3]
isTickingDown = hist < hist[1] and hist < hist[2] // and hist < hist[3]


// ======= MACD STRATEGY CODE ========== //

// Check if MACD is ticking in the right direction to take a trade - adding 1 at the end means it starts at -1 so not to include the current candle
MACDHistHighestHigh= highest(hist, MACDCandlesCheckedBack)[1]
MACDHistLowestLow = lowest(hist, MACDCandlesCheckedBack)[1]

MACDConfirmsLong() => (hist - MACDHistLowestLow) > MACDTolerance
MACDConfirmsShort() => (MACDHistHighestHigh - hist) > MACDTolerance


plot(macd,  title="MACD", color=blue, linewidth=3)
plot(signal,  title="SIGNAL", color=orange, linewidth=3)

// === SIMPLE COLOURING BASED ON LAST 2 CANDLES - EASY TO REFERENCE IN DAY TO DAY MACD USE ====//

plot(hist, title="HIST", color=isTickingDown ? fuchsia : isTickingUp ? lime : green, linewidth=3, style=histogram)

// ==== ALTERNATIVE COLOURING FOR PLOT BASED ON STRATEGY SETTINGS INSTEAD

//plot(hist, title="HIST", color=MACDConfirmsLong() ? lime : MACDConfirmsShort() ? fuchsia : green, linewidth=3, style=histogram)


// === STRATEGY - ENTER POSITIONS - COMMENT OUT TO ENABLE ALERTS === //

strategy.entry(id = "Long", long = true, when = MACDConfirmsLong()) // use function to decide when to go long

strategy.entry(id = "Short", long = false, when = MACDConfirmsShort())

// === CREATE ALERT CONDITIONS === // 

alertup = MACDConfirmsLong()
alertdown = MACDConfirmsShort()

alertcondition(alertup, title='MACD Long', message='Riz MACD says go LONG!')
alertcondition(alertdown, title='MACD Short', message='Riz MACD says go SHORT!')


Mehr