Die Ressourcen sind geladen. Beförderung...

Komplexe quantitative Handelsstrategie auf Basis des MACD

Schriftsteller:ChaoZhang, Datum: 2023-12-13 16:44:46
Tags:

img

Übersicht

Dies ist eine auf dem MACD-Indikator basierende komplexe quantitative Handelsstrategie, die mehrere Indikatoren wie MACD und KDJ kombiniert, um Handelssignale durch die Kombination von Indikatoren zu generieren.

Strategieprinzip

Der Kernindikator dieser Strategie ist der MACD. Der MACD steht für Moving Average Convergence Divergence, ein Trend-Folgende Indikator. Er besteht aus einem schnellen gleitenden Durchschnitt (EMA) und einem langsamen gleitenden Durchschnitt (EMA). Die Standardparameter sind 12 für die schnelle Linie und 26 für die langsame Linie. Die Strategie berechnet den Unterschied zwischen den beiden EMA-Linien, die DIF genannt wird. Dann wird ein 9-tägiger EMA auf dem DIF berechnet, um den DEA-Indikator zu erhalten. Wenn der DIF über den DEA überschreitet, wird ein Kaufsignal generiert. Wenn er unterhalb überschreitet, wird ein Verkaufssignal generiert.

Die Strategie beinhaltet auch den KDJ-Indikator. Der KDJ-Indikator umfasst den K-Wert, den D-Wert und den J-Wert. Unter ihnen bezieht sich der K-Wert auf den zufälligen Wert, der D-Wert auf den gleitenden Durchschnitt des K-Wertes und der J-Wert auf den deterministischen Wert. Der KDJ-Indikator spiegelt die überkauften und überverkauften Niveaus auf dem Markt wider. Wenn der J-Wert größer als 100 ist, repräsentiert er überkaufte Bedingungen. Wenn er kleiner als 10 ist, repräsentiert er überverkaufte Bedingungen. Die Strategie kombiniert den KDJ-Indikator, um falsche Signale an Marktturnpunkten zu vermeiden.

Vorteile der Strategie

Die Strategie kombiniert mehrere Indikatoren wie MACD und KDJ, die effektiv Marktlärm filtern und Trendrichtungen identifizieren können. Der MACD-Indikator kann kurzfristige Preisänderungen rechtzeitig erfassen, während der KDJ-Indikator mittelfristige und langfristige Trends bestätigen kann. Die Kombination der beiden kann das Streben nach Agilität und Stabilität ausgleichen.

Darüber hinaus enthält die Strategie einen Zeitrahmen-Selektor, der eine größere Flexibilität bei der Bewertung der Strategieleistung bietet.

Risiken und Lösungen

  • Wenn der Markt für einen längeren Zeitraum schwankt, wird der MACD mehrere falsche Signale haben. An diesem Punkt können wir die Parameter der EMA-Linien richtig anpassen, um etwas Lärm zu filtern.

  • Wir können mehrere Parametergruppen testen und eine stabilere Parameterkombination auswählen.

  • Eine unangemessene Auswahl des Backtest-Zeitrahmens wird die Rentabilität der Strategie überschätzen oder unterschätzen.

Optimierungsrichtlinien

Die Strategie kann in folgenden Aspekten optimiert werden:

  1. Fügen Sie einen Stop-Loss-Mechanismus hinzu. Wenn der Preis die Stop-Loss-Linie auslöst, wird er einen Ausgang der Position für Stop-Loss-Zwecke erzwingen.

  2. Mehr Indikatorfilter, die Indikatoren wie RSI und Bollinger Bands kombinieren, um die Genauigkeit des Signals zu verbessern.

  3. Optimierung der Indikatorparameter, Änderung der Kombination der EMA- und KDJ-Parameter, um die optimalen Einstellungen zu finden.

  4. Verwenden Sie maschinelle Lerntechniken zur automatischen Optimierung. Verwenden Sie neuronale Netzwerke für Parameter-Training und Optimierung.

Schlussfolgerung

Dies ist eine typische quantitative Strategie, die hauptsächlich dem Trend folgt, ergänzt durch Überkauf- und Überverkaufskontrolle. Sie kombiniert die Vorteile mehrerer Indikatoren und balanciert effektiv Stabilität und Empfindlichkeit. Durch kontinuierliche Optimierung und Anpassung kann die Anwendbarkeit der Strategie weiter erweitert werden, um langfristige stabile Gewinne zu erzielen.


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

//@version=4
strategy(title="New Renaissance", shorttitle="New Renaissance", overlay=true,initial_capital=10000)

source = close

fastlength=input(12, minval=1)
slowlength=input(26,minval=1)
signallength=input(9,minval=1)

// === Defining the MACD oscillator
fastMA=ema(source,fastlength)
slowMA=ema(source,slowlength)
MACD=fastMA-slowMA
signal=sma(MACD,signallength)
delta=MACD-signal

// === Buy and Sell Signals ===
buy=crossover(MACD, signal)
sell=crossunder(MACD, signal)

// === INPUT BACKTEST RANGE ===
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 1,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2018, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 12,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 31,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2020, title = "Thru Year",       type = input.integer, minval = 1970)

// === INPUT SHOW PLOT ===
showDate  = input(defval = true, title = "Show Date Range", type = input.bool)

// === FUNCTION EXAMPLE ===
start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => true       // create function "within window of time"

// === EXECUTION ===
strategy.entry("L", strategy.long, when = window() and buy)    // enter long when "within window of time" AND crossover
strategy.close("L", when = window() and sell)                   // exit long when "within window of time" AND crossunder      

Mehr