MACD Trendfolgestrategie


Erstellungsdatum: 2023-12-11 14:57:00 zuletzt geändert: 2023-12-11 14:57:00
Kopie: 0 Klicks: 649
1
konzentrieren Sie sich auf
1621
Anhänger

MACD Trendfolgestrategie

Überblick

Die MACD-Trend-Tracking-Strategie ist eine quantitative Handelsstrategie, die auf MACD-Indikatoren basiert. Die Strategie beurteilt Markttrends durch die Identifizierung von MACD-Indikator-Gold- und Todesfork-Signalen und ermöglicht die Verfolgung von Aktienpreistrends.

Strategieprinzip

Die Kernlogik der MACD-Trend-Tracking-Strategie lautet:

  1. Berechnen von MACD- und Signalleitungen.
  2. Wenn die MACD-Linie von unten nach oben auf 0 fällt, notieren Sie den höchsten Punkt dieser Zeit und warten Sie auf die Todesforke.
  3. Wenn die MACD-Linie von oben nach unten unter 0 fällt, notieren Sie den niedrigsten Punkt und warten Sie auf das Goldfork-Signal.
  4. Wenn ein Goldfork auftritt, wird der aktuelle Schlusskurs als Mehr-Eintritts-Punkt aufgezeichnet, ein Stop-Loss-Punkt gesetzt und eine Mehr-Position eröffnet.
  5. Wenn ein Dead Fork auftritt, wird der aktuelle Schlusskurs als Eintrittspunkt für den Short-Off aufgezeichnet, ein Stop-Loss-Punkt gesetzt und die Position für den Short-Off eröffnet.
  6. Bei einer Position mit mehreren Positionen wird die Position am Ende der Platzierung profitabel, wenn die Rendite das vorgegebene Ziel erreicht oder der Rückzug den Stop-Loss erreicht.
  7. Bei einer Short-Term-Position wird der Kauf zu einem Gewinn abgeschlossen, wenn die Ertragsrate das vorgegebene Ziel erreicht oder der Rückzug den Stop-Loss erreicht.

Durch diese Trend-Tracking-Methode kann die Strategie die Umkehrung der Markttrends rechtzeitig erfassen und profitabel sein.

Analyse der Stärken

Die MACD-Trend-Tracking-Strategie hat folgende Vorteile:

  1. Die Strategie-Signalquelle ist eindeutig und wird direkt von MACD-Indikatoren erzeugt, um Signalstörungen zu vermeiden.
  2. Die MACD-Indikator ist ein schneller, langsamer, linearer, dreckiger und dreckiger Indikator, der die Richtung des Markttrends bestimmen kann, um genau zu beurteilen.
  3. Es ist wichtig, dass man die Trends und die Umkehrungen rechtzeitig beobachtet.
  4. Die Risiken sind kontrolliert und es gibt einen Stop-Loss-Mechanismus.

Risikoanalyse

Die MACD-Trend-Tracking-Strategie birgt auch folgende Risiken:

  1. Die MACD-Indikatoren sind anfällig für falsche Signale, die zu Verlusten bei Überkurzläufen führen können.
  2. Ein falscher Stop-Loss-Satz kann den Einzelschaden ausweiten.
  3. Es ist schwierig, die Gewinnquote und die Stop-Loss-Punkte zu verfolgen, und es besteht die Gefahr, dass eine übermäßige Verfolgung zu Verlusten führt.

Im Hinblick auf diese Risiken können folgende Optimierungsmaßnahmen ergriffen werden:

  1. In Kombination mit anderen Indikatoren filtert er falsche Signale.
  2. Dynamische Anpassung der Stop-Loss-Punkte
  3. Optimierung der Parameter für die Erfolgsquote und die Stop-Loss-Punkte.

Optimierungsrichtung

Eine Trend-Tracking-Strategie für den MACD kann optimiert werden durch:

  1. Optimierung der MACD-Indikatorparameter und Verringerung der Falschsignalrate. Es können MACDs mit unterschiedlichen Periodendaten getestet werden.

  2. Andere Kennzahlen wie die Erhöhung der Transaktionsmenge werden durch Filtersignale gefiltert. Es können Mindesttransaktionsbedingungen festgelegt werden.

  3. Ein dynamischer Stop-Tracking-Mechanismus. Der Stop-Loss kann in Echtzeit an die Schwankungen angepasst werden.

  4. Optimierung der Signalentscheidungslogik für die Eröffnung von Positionen. Sie können strengere Signal-Triggerbedingungen festlegen.

  5. In Kombination mit einem maschinellen Lernmodell wird ein Signal gefiltert. Das Modell kann trainiert werden, die Zuverlässigkeit des Signals zu beurteilen.

Zusammenfassen

Die MACD-Trend-Tracking-Strategie ist insgesamt eine ausgereiftere quantitative Strategie. Die Strategie nutzt die MACD-Indikatoren, um die Richtung der Markttrends zu bestimmen und die Risiken des Stop-Loss-Mechanismus zu steuern, um die Aktienpreistrends effektiv zu verfolgen. Die MACD-Indikatoren selbst haben jedoch bestimmte Mängel und sind anfällig für falsche Signale.

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

//@version=5
strategy("MACD Cross Strategy", overlay=true)

// Get MACD values
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
var float entryLongPrice = na
var float entryShortPrice = na

var float highestLongProfit = 0
var float highestShortProfit = 0

var float highestMACD = 0
var float lowestMACD = 0
var bool haveOpenedLong = false
var bool haveOpenedShort = false

var float stoploss = 0.04 // To be adjust for different investment
var float minProfit = 0.05 // To be adjust for different investment

if macdLine > 0
    lowestMACD := 0
    highestMACD := math.max(highestMACD, macdLine)
    haveOpenedShort := false
else
    highestMACD := 0
    lowestMACD := math.min(lowestMACD, macdLine)
    haveOpenedLong := false

// Enter long position when MACD line crosses above the signal line
if ta.crossover(macdLine, signalLine) and macdLine < highestMACD and macdLine > 0 and haveOpenedLong == false
    strategy.entry("Long", strategy.long)
    strategy.exit("Exit Long", from_entry = "Long", stop=close*(1 - stoploss))
    entryLongPrice := close
    haveOpenedLong := true

if ta.crossunder(macdLine, signalLine) and macdLine > lowestMACD and macdLine < 0 and haveOpenedShort == false
    strategy.entry("Short", strategy.short)
    strategy.exit("Exit Short", from_entry = "Short", stop=close*(1 + stoploss))
    entryShortPrice := close
    haveOpenedShort := true

// log.info("entryLongPrice:{0}", entryLongPrice)
if strategy.position_size > 0
    profit = close - entryLongPrice
    log.info("profit:{0}", profit)
    if profit > 0
        highestLongProfit := math.max(highestLongProfit, profit)
        if profit / entryLongPrice > minProfit and highestLongProfit * 0.8 > profit
            strategy.close("Long")
            highestLongProfit := 0

if strategy.position_size < 0
    profit = entryShortPrice - close
    if profit > 0
        highestShortProfit := math.max(highestShortProfit, profit)
        log.info("highestShortProfit={0}, profit={1}", highestShortProfit, profit)
        if profit / entryShortPrice > minProfit and highestShortProfit * 0.8 > profit
            strategy.close("Short")
            highestShortProfit := 0