Eine einfache und effiziente MACD-Quantifizierungsstrategie

Schriftsteller:ChaoZhang, Datum: 2024-01-26 14:20:04
Tags:

一个简单高效的MACD量化交易策略

Übersicht

Die Strategie ist eine einfache und effiziente MACD-Quantifizierungs-Trading-Strategie, die speziell für den Kryptowährungsmarkt entwickelt wurde und für den Handel mit höheren Zeitrahmen wie 1 Stunde, 4 Stunden, 1 Tag usw. geeignet ist. Die Strategie verwendet MACD-Indikatoren, um die Markttrendrichtung zu bestimmen, und erzeugt Tradingsignale in Kombination mit einfachen gleitenden Durchschnitten.

Die Strategie

Die Strategie verwendet MACD-Indikatoren, um Markttrends zu bestimmen und Handelssignale zu erzeugen. Der MACD besteht aus einer schnellen Linie, einer langsamen Linie und einem MACD-Säulen. Die schnellen Linien sind kurzfristige und die langfristigen bewegliche Durchschnittslinien. Die schnellen Linien sind Kaufsignale, wenn die schnellen Linien auf der schnellen Linie verlaufen, und die langfristigen Linien sind Verkaufssignale. Die MACD-Säulen sind die Differenz zwischen der schnellen und der langsamen Linie.

Stärkenanalyse

Es ist eine sehr einfache und effiziente Strategie, deren größte Vorteile in den folgenden Bereichen liegen:

  1. Der MACD ist ein bewährter und zuverlässiger Technischer Analyseindikator, der Trends genau bestimmen kann.

  2. In Kombination mit einfachen gleitenden Durchschnitten wird das Signal gefiltert, um Falschsignale zu vermeiden und die Signalgenauigkeit zu verbessern.

  3. Es ist speziell für den hochflüchtigen Markt für Kryptowährungen geeignet, für den der MACD am besten wirkt.

  4. Strategische Logik ist einfach, klar, leicht zu verstehen und zu implementieren, die Thresholds sind niedrig und leicht anzuwenden.

  5. Es kann in höheren Zeitzyklen ausgeführt werden, was die Frequenz der Transaktionen reduziert und die Auswirkungen von Transaktionskosten und Gleitpunkten reduziert.

Risikoanalyse

Aber es gibt auch Risiken bei dieser Strategie, die hauptsächlich in folgenden Bereichen bestehen:

  1. Die Verwendung eines einfachen gleitenden Durchschnitts als Signalfilter kann die besten Eintrittszeiten in bestimmten Branchen verpassen.

  2. Wenn keine Stop-Loss-Strategie eingesetzt wird, kann es zu einem größeren Einzelschaden für das Konto kommen.

  3. Es kann ein bestimmtes Verzögerungssignal und ein falsches Signal erzeugen, was zu unnötigen Verlusten führt;

  4. Die Auswirkungen von Handelszeiten und -frequenzen auf die Gewinne werden nicht berücksichtigt.

Diese Risiken erfordern eine weitere Verfeinerung und Optimierung der Strategie.

Optimierung

Aufgrund der oben genannten Risikoanalyse kann die Strategie in folgenden Bereichen weiter optimiert werden:

  1. Versuche verschiedene Parameter-Einstellungen und verschiedene Kombinationen von Indikatoren, um die besten Parameter zu finden.

  2. Erhöhung der Stop-Loss-Strategien, um den maximalen Wert eines einzelnen Verlustes zu begrenzen;

  3. Optimierung der Wahl der Eintrittszeiten und Einführung einer strengeren Signalprüfung, um die Wirkung der Signale zu gewährleisten;

  4. Berücksichtigen Sie, wie sich verschiedene Handelszeiten und Handelsfrequenzen auf das Gesamtgewinnniveau auswirken.

Durch die Optimierung dieser Richtungen kann die Stabilität, das Profitabilitätsniveau und die Praxis dieser Strategie erheblich verbessert werden.

Zusammenfassung

Insgesamt ist dies eine MACD-Handelsstrategie mit hohem Einsatzwert. Sie ist einfach, effizient und einfach zu implementieren und ist ideal für diejenigen, die schnell quantitative Trades einführen möchten. Sie bietet auch viel Optimierungsraum, um durch ständige Optimierungstests zu einer stabilen und effizienten Quantitationsstrategie zu werden, die für den langfristigen Einsatz in der realen Welt geeignet ist.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © SoftKill21

//@version=4
strategy("MACD crypto strategy", overlay=true)

// Getting inputs
//fast_length = input(title="Fast Length", type=input.integer, defval=12)
//slow_length = input(title="Slow Length", type=input.integer, defval=26)
//src = input(title="Source", type=input.source, defval=close)
//signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
//sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=true)
//sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=false)

fast_length = 12
slow_length = 26
src = input(title="Source", type=input.source, defval=close)
signal_length = 9
sma_source = true
sma_signal = false

// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal



longcondition = hist > 0 
shortcondition = hist < 0 

//sl = input(0.5, title="SL")
//tp = input(0.1, title="tp")

strategy.entry("long",1,when=longcondition)
strategy.entry("short",0,when=shortcondition)

//strategy.exit("x_long", "long" ,loss = close * sl / syminfo.mintick, profit = close * tp / syminfo.mintick , alert_message = "closelong")
//strategy.entry("short",0, when= loss = close * sl / syminfo.mintick)

//strategy.exit("x_short", "short" , loss = close * sl / syminfo.mintick, profit  = close * tp / syminfo.mintick,alert_message = "closeshort")

// risk = input(2, type=input.float,title="Risk percentage of BALANCE")
// strategy.risk.max_intraday_loss(risk, strategy.percent_of_equity)

Weitere Informationen