MACD-Trend nach Strategie

Schriftsteller:ChaoZhang, Datum: 2023-12-11 14:57:
Tags:

img

Übersicht

Die MACD Trend Following Strategie ist eine quantitative Handelsstrategie, die auf dem MACD-Indikator basiert.

Strategie Logik

Die Kernlogik der MACD Trend Following Strategie ist:

  1. Berechnen Sie die MACD-Linie und die Signallinie.
  2. Wenn die MACD-Linie von unten nach oben über 0 geht, notieren Sie den höchsten Punkt und warten Sie auf das Todeskreuzsignal.
  3. Wenn die MACD-Linie von oben nach unten unter 0 geht, notieren Sie den niedrigsten Punkt und warten Sie auf das goldene Kreuzsignal.
  4. Wenn ein goldenes Kreuz auftritt, notieren Sie den aktuellen Schlusskurs als Long-Entry-Punkt, setzen Sie den Stop-Loss-Punkt und öffnen Sie die Long-Position.
  5. Wenn ein Death Cross auftritt, registrieren Sie den aktuellen Schlusskurs als Short-Entry-Punkt, setzen Sie den Stop-Loss-Punkt und öffnen Sie die Short-Position.
  6. Bei Halte einer Longposition, wenn die Gewinnquote das vorgegebene Ziel erreicht oder der Drawdown den Stop-Loss-Punkt erreicht, schließt man die Position, um Gewinn zu erzielen.
  7. Bei Halten einer Short-Position, wenn die Gewinnquote das vorgegebene Ziel erreicht oder der Drawdown den Stop-Loss-Punkt erreicht, schließt man die Position, um Gewinn zu erzielen.

Durch diesen Trend-Folge-Mechanismus kann die Strategie rechtzeitig Markttrends erfassen und Gewinne erzielen.

Analyse der Vorteile

Die MACD Trend Following Strategie hat folgende Vorteile:

  1. Die Quelle der Strategie-Signale ist eindeutig und eindeutig und wird direkt durch den MACD-Indikator erzeugt, so dass keine Störungen der Signale entstehen.
  2. Verwenden Sie die Eigenschaften des goldenen Kreuzes und des Todeskreuzes des MACD-Indikators, um die Markttrendrichtung mit genauen Beurteilungen zu bestimmen.
  3. Zeitgerechte Verfolgung von Trendwechseln mit starker Gewinnverfolgungsfähigkeit.
  4. Eine angemessene Risikokontrolle mit einem Stop-Loss-Mechanismus.

Risikoanalyse

Die MACD Trend Following Strategie birgt außerdem folgende Risiken:

  1. Der MACD-Indikator neigt dazu, falsche Signale zu erzeugen, die bei Ultrakurzzeitgeschäften zu Verlusten führen können.
  2. Eine falsche Einstellung des Stop-Loss-Punkts kann den Einzelverlust vergrößern.
  3. Schwierig, die Balance zwischen Profit-Tracking-Ratio und Stop-Loss-Punkt zu finden, wobei die Gefahr besteht, dass eine Überverfolgung zu Verlusten führt.

Um den oben genannten Risiken entgegenzuwirken, können folgende Optimierungsmaßnahmen ergriffen werden:

  1. Kombiniert mit anderen Indikatoren, um falsche Signale auszufiltern.
  2. Dynamische Anpassung der Stop-Loss-Punkte.
  3. Optimieren Sie die Parameter der Profit-Tracking-Ratio und Stop-Loss-Punkte.

Optimierungsrichtlinien

Die MACD Trend Following Strategie kann in folgenden Aspekten optimiert werden:

  1. Optimieren Sie die MACD-Indikatorparameter, um die Falschsignalrate zu reduzieren.

  2. Zusätzliche Indikatoren wie Handelsvolumen, um Signale auszufiltern. Mindesthandelsvolumenbedingungen können festgelegt werden.

  3. Einrichtung eines dynamischen Stop-Loss-Mechanismus, bei dem die Stop-Loss-Punkte dynamisch anhand der Volatilität angepasst werden können.

  4. Optimieren Sie die Signalbestimmungslogik für die Eröffnung von Positionen.

  5. Einbeziehung von Modellen des maschinellen Lernens, um Signale auszufiltern.

Schlussfolgerung

Im Allgemeinen ist die MACD Trend Following Strategie eine relativ ausgereifte quantitative Strategie. Sie nutzt den MACD-Indikator, um Markttrendrichtungen zu bestimmen, und kontrolliert Risiken mit einem Stop-Loss-Mechanismus, der die Preistrends effektiv verfolgen kann.


/*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

Mehr