Doppel-MACD-Quantitative Handelsstrategie

Schriftsteller:ChaoZhang, Datum: 2023-11-13 18:04:07
Tags:

img

Übersicht

Diese Strategie nutzt die Kombination von dualen EMA-Systemen und RSI-Indikatoren, um Markttrends zu bestimmen, während Handelssignale generiert werden.

Strategie Logik

Diese Strategie verwendet zwei MACDs mit unterschiedlichen Parameter-Einstellungen als primäre Handelsindikatoren. Der erste MACD verwendet eine 10-Perioden-Short EMA, eine 22-Perioden-Lange EMA und eine 9-Perioden-Signallinie. Der zweite MACD verwendet eine 21-Perioden-Short EMA, eine 45-Perioden-Lange EMA und eine 20-Perioden-Signallinie.

Der erste MACD erzeugt Kaufsignale, wenn die DIFF-Linie über Null geht, und Verkaufssignale, wenn sie unter Null geht.

Darüber hinaus verwendet die Strategie eine Preisdynamikformel, um den Trend zu bestimmen. Der letzte Schluß + Höchst durch den vorherigen Schluß + Höchst über 1 zeigt einen Aufwärtstrend an und erzeugt Kaufsignale und umgekehrt für Verkaufssignale.

Schließlich unterstützt der Stoch RSI K-Streifen über 20 die Bestätigung von Verkaufssignalen.

Analyse der Vorteile

Der doppelte EMA-Mechanismus in dieser Strategie kann falsche Ausbrüche effektiv filtern. Die ergänzende Momentum-Formel vermeidet auch falsche Signale, die durch Volatilität verursacht werden.

Diese Strategie verwendet nur einfache Kombinationen mehrerer gemeinsamer Indikatoren ohne übermäßig komplexe logische Beziehungen, was es sehr einfach zu verstehen und zu ändern macht. Die Parameter-Einstellungen sind auch ziemlich universell ohne Optimierung für verschiedene Produkte, was der Strategie eine große Anpassungsfähigkeit gibt.

Nach den Rücktestresultaten hat diese Strategie anständige kumulative Renditen und maximale Drawdown-Kontrolle über verschiedene Produkte wie Aktienindizes und Kryptowährungen erreicht.

Risikoanalyse

Das Hauptrisiko dieser Strategie liegt in der Verwendung gleitender Durchschnitte für die Bestimmung, die bei starken Kursschwankungen leicht zu Schlagsauen und Verlusten führen kann.

Die Effektivität des Stoch RSI bei der Erkennung von Überkauf-/Überverkaufswerten ist nicht ideal.

Wenn die Preise stark zusammenbrechen, aber der MACD noch kein Todeskreuz gebildet hat, wird diese Strategie Verlustpositionen halten und weiterhin Verluste nehmen.

Optimierungsrichtlinien

Überlegen Sie, ob Sie Stop-Loss hinzufügen, um Einzelpositionverluste zu kontrollieren, z. B. ATR-Stop-Loss oder Stop-Loss, der auf niedrigeren gleitenden Durchschnitten basiert.

Hinzufügen anderer Indikatoren zur Bestätigung, z. B. Kombination von KD oder Bollinger Bands mit dem Stoch RSI für eine zuverlässigere Erkennung von Überkauf/Überverkauf.

Verwenden Sie die Analyse des Volumens, z. B. indem Sie den Stop-Loss erhöhen, wenn ein erhebliches Verkaufsvolumen auftritt, oder neue Positionen vermeiden, wenn das Volumen schwach ist.

Testen Sie verschiedene Parameterkombinationen und optimieren Sie MACD-Perioden. Testen Sie auch MACDs anderer Zeitrahmen für mehrfache Bestätigung.

Schlussfolgerung

Die doppelte MACD-Quantitative-Handelsstrategie hat eine einfache und klare Logik, indem sie doppelte EMA-Kreuzungen verwendet, um Trends zu bestimmen, ergänzt durch Impulsindikatoren, um falsche Signale zu vermeiden. Sie kann hochwahrscheinliche Handelsmöglichkeiten herausfiltern. Die universellen Parameter-Einstellungen und die solide Performance machen sie zu einer guten Grundstrategie. Die nächsten Schritte sind die weitere Steigerung seiner Stabilität und Rentabilität durch Verbesserung von Stop-Loss-Mechanismen, Hinzufügen von Volumenanalysen, Kombination anderer Indikatoren usw.


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

//@version=2
strategy("Multiple MACD RSI simple strategy", overlay=true, initial_capital=5000, default_qty_type=strategy.percent_of_equity, default_qty_value=80, pyramiding=0, calc_on_order_fills=true)

fastLength = input(10)
slowlength = input(22)
MACDLength = input(9)

MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = sma(MACD, MACDLength)
delta = MACD - aMACD

fastLength2 = input(21)
slowlength2 = input(45)
MACDLength2 = input(20)

MACD2 = ema(open, fastLength2) - ema(open, slowlength2)
aMACD2 = sma(MACD2, MACDLength2)
delta2 = MACD2 - aMACD2


uptrend = (close + high)/(close[1] + high[1])
downtrend = (close + low)/(close[1] + low[1])

smoothK = input(2, minval=1, title="K smoothing Stoch RSI")
smoothD = input(3, minval=1, title= "D smoothing for Stoch RSI")
lengthRSI = input(7, minval=1, title="RSI Length")
lengthStoch = input(8, minval=1, title="Stochastic Length")
src = input(close, title="RSI Source")

rsi1 = rsi(src, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)
h0 = hline(80)
h1 = hline(20)

yearin = input(2018, title="Year to start backtesting from")

if (delta > 0) and (year>=yearin) and (delta2 > 0) and (uptrend > 1)
    strategy.entry("buy", strategy.long, comment="buy")

if (delta < 0) and (year>=yearin) and (delta2 < 0) and (downtrend < 1) and (d > 20)
    strategy.entry("sell", strategy.short, comment="sell")

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

Mehr