Handelsstrategie auf Basis von MACD- und RSI-Crossover-Signalen

Schriftsteller:ChaoZhang, Datum: 2023-12-18 17:19:03
Tags:

img

Übersicht

Diese Strategie verwendet den MACD-Indikator, um Markttrends zu beurteilen und potenzielle Handelspunkte zu identifizieren, während der RSI-Indikator kombiniert wird, um überkaufte/überverkaufte Bedingungen zu bestätigen. Handelssignale werden nur generiert, wenn der MACD ein Kauf/Verkaufsignal gibt und der RSI gleichzeitig bestätigt, dass der Markt überverkauft/überkauft ist. Dies kann falsche Signale effektiv filtern und die Stabilität der Strategie verbessern.

Strategieprinzipien

Berechnung des MACD-Indikators

Der MACD-Indikator besteht aus der Differenz zwischen der schnellen und der langsamen EMA und spiegelt die Differenz zwischen den kurzfristigen und langfristigen durchschnittlichen Kursentwicklungen wider.

Wenn die schnelle Linie über die langsame Linie geht, ist es ein goldenes Kreuzsignal, das einen Aufwärtstrend anzeigt.

Berechnung des RSI-Indikators

Der RSI-Indikator spiegelt die Überkauf-/Überverkaufszustände auf dem Markt wider.

Der RSI unter 30 deutet darauf hin, dass der Vermögenswert überverkauft wurde, da die Käufer die Verkäufer für einen längeren Zeitraum überholten.

Der RSI über 70 deutet darauf hin, dass der Vermögenswert OVERBOUGHT war, da der Verkaufsdruck den Kaufdruck über dem verfolgten Zeitfenster übertroffen hat.

Werte unter 30 deuten auf Überverkäufe hin, Werte über 70 auf Überkäufe.

Strategische Signale

Diese Strategie verwendet den RSI, um Signale zu filtern und erzeugt nur tatsächliche Handelssignale, wenn der MACD ein Signal gibt und der RSI gleichzeitig Überkauf-/Überverkaufsextreme bestätigt.

Wenn der MACD ein goldenes Kreuz erzeugt, wird ein Kaufsignal erzeugt, wenn der RSI <= 34 gleichzeitig ein überverkauftes Markt bestätigt.

Dieser Doppelbestätigungsmechanismus kann viele unzuverlässige Handelssignale herausfiltern und dadurch die Stabilität und Zuverlässigkeit der Strategie verbessern.

Analyse der Vorteile

Doppelindikatorfilterung verbessert die Signalzuverlässigkeit

Diese Strategie kombiniert die MACD- und RSI-Indikatoren für eine doppelte Bestätigung, die die Störungen durch falsche Signale effektiv reduzieren und einige unzuverlässige Handelssignale herausfiltern kann, wodurch die Signalzuverlässigkeit und -stabilität verbessert wird.

Klares Trendbeurteil

Als Preis- und Volumenindikator kann der MACD die Auf- und Abwärtstrends des Marktes eindeutig bestimmen. In Kombination mit dem Überkauf-/Überverkaufs-Urteil des RSI kann er wichtige Umkehrpunkte auf dem Markt genau erfassen. Ein- und Ausstiegssignale sind klar.

Großer Parameteroptimierungsraum

Die Parameter der MACD- und RSI-Komponenten dieser Strategie können optimiert und angepasst werden, um verschiedenen Zyklen und Handelsinstrumenten zu entsprechen.

Einfach zu verstehen und anzuwenden

Der MACD, der RSI und andere Indikatoren, die in dieser Strategie verwendet werden, sind sehr typische und häufig verwendete technische Indikatoren, die leicht zu verstehen sind.

Risikoanalyse

Einige Handelsmöglichkeiten könnten fehlen

Diese Strategie verfolgt einen relativ konservativen Ansatz der doppelten Bestätigung, der bei der Filterung falscher Signale zu verpassten Handelsmöglichkeiten führen kann, die auf der Grundlage eines einzigen Indikatorsignals zu Gewinnen geführt hätten.

  • Lösung: Erweitern Sie den RSI-Schwellenbereich angemessen, um die Bestätigungsstrenge zu verringern und der Strategie zu ermöglichen, mehr Handelsmöglichkeiten zu nutzen.

Verluste bei extremen Marktbewegungen

Bei extremer Marktvolatilität können sowohl der MACD- als auch der RSI-Indikator bei der Beurteilung verzögert sein, was zu falschen Handelssignalen durch die Strategie und zu entstandenen Verlusten führen kann.

  • Lösung: Einbeziehung von Stop-Loss-Mechanismen zur Verhinderung übermäßiger Verluste bei einzelnen Trades Anpassung der Parameter, um eine ausreichende Empfindlichkeit der Indikatoren für extreme Marktbewegungen zu schaffen.

Die Leistung hängt stark von den Parametereinstellungen ab

Die Leistung dieser Strategie hängt weitgehend von der Qualität des MACD, RSI und anderer Parameter-Einstellungen ab.

  • Lösung: Optimieren Sie Parameterkombinationen durch Backtesting, um optimale Parameter-Einstellungen zu finden.

Optimierungsrichtlinien

Einbeziehung von Stop-Loss-Mechanismen zur Risikokontrolle

Die auf Preis oder Indikatoren basierenden Stop-Loss-Regeln können für Exit-Positionen mit einer vordefinierten zulässigen Verlustschwelle implementiert werden, wodurch Verluste bei einzelnen Geschäften effektiv begrenzt werden.

Anpassung der Parameter an die Merkmale des Marktes

Kontinuierliche Optimierung von Schlüsselparametern wie MACD-Schnell-/Slow-Linienperioden und RSI-Überkauf-/Überverkaufsschwellen, um sie an die sich entwickelnden Zyklusstrukturen und Besonderheiten verschiedener Handelsinstrumente anzupassen.

Verschiedene Vermögenswerte prüfen, um die beste Passform zu finden

Durchführung von Backtests an Aktienindizes, Kryptowährungen, Devisenpaaren, Rohstoffen und anderen Vermögenswerten, um herauszufinden, welcher Markt den Merkmalen der Strategie am besten entspricht.

Einbeziehung zusätzlicher Indikatoren für die mehrdimensionale Bestätigung

Indikatoren wie Stochastics, OBV, CCI usw. können zusätzlich zu den MACD- und RSI-Komponenten hinzugefügt werden, um eine höhere Bestätigungsgenauigkeit durch einen multidimensionalen Signalfilteransatz zu erzielen.

Schlussfolgerung

Diese Strategie bestimmt Markttrends und Handelssignale auf der Grundlage des MACD-Indikators, während der RSI Überkauf-/Überverkaufszustände bestätigt, um falsche Signale zu filtern.

Die Leistung kann durch Optimierungstechniken, Stop-Losses, Multiprong-Bestätigung usw. weiter verbessert werden. Mit einfacher Logik und guter Stabilität dient es als gute Startstrategie für Anfänger, um zu üben und zu optimieren.


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

//@version=2
strategy(default_qty_type = strategy.percent_of_equity, default_qty_value = 25, pyramiding = 10, title="MACD crossover while RSI Oversold/Overbought", overlay=true, shorttitle="MACD Cross + RSI Oversold Overbought", initial_capital = 1000)

//MACD Settings
fastMA = input(title="Fast moving average",  defval = 12, minval = 7) //7 16
slowMA = input(title="Slow moving average",  defval = 26, minval = 7) //24 26 
signalLength = input(9,minval=1) //9 6

//RSI settings
RSIOverSold = input(34 ,minval=1) //26
RSIOverBought = input(75 ,minval=1) //77
src = close, len = input(14, minval=1, title="Length")
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
wasOversold = rsi[0] <= RSIOverSold or rsi[1] <= RSIOverSold or rsi[2] <= RSIOverSold or rsi[3] <= RSIOverSold or rsi[4] <= RSIOverSold or rsi[5] <= RSIOverSold
wasOverbought = rsi[0] >= RSIOverBought or rsi[1] >= RSIOverBought or rsi[2] >= RSIOverBought or rsi[3] >= RSIOverBought or rsi[4] >= RSIOverBought or rsi[5] >= RSIOverBought


[currMacd,_,_] = macd(close[0], fastMA, slowMA, signalLength)
[prevMacd,_,_] = macd(close[1], fastMA, slowMA, signalLength)
signal = ema(currMacd, signalLength)

crossoverBear = cross(currMacd, signal) and currMacd < signal ? avg(currMacd, signal) : na
crossoverBull = cross(currMacd, signal) and currMacd > signal ? avg(currMacd, signal) : na

plotshape(crossoverBear and wasOverbought , title='MACD-BEAR', style=shape.triangledown, text='overbought', location=location.abovebar, color=orange, textcolor=orange, size=size.tiny) 
plotshape(crossoverBull and wasOversold, title='MACD-BULL', style=shape.triangleup, text='oversold', location=location.belowbar, color=lime, textcolor=lime, size=size.tiny) 

// Configure backtest start date with inputs
startDate = input(title="Start Date",
     defval=8, minval=1, maxval=31)
startMonth = input(title="Start Month",
     defval=3, minval=1, maxval=12)
startYear = input(title="Start Year",
     defval=2021, minval=1800, maxval=2100)

afterStartDate = (time >= timestamp(syminfo.timezone,
     startYear, startMonth, startDate, 0, 0))
     
if (afterStartDate==true)
    posSize = abs(strategy.position_size)
    strategy.order("long", strategy.long, when = crossoverBull and wasOversold) 
    strategy.order("long", long=false, qty=posSize/3, when = crossoverBear and wasOverbought) 


Mehr