RSI Moving Average Crossover-Strategie


Erstellungsdatum: 2023-11-07 15:35:58 zuletzt geändert: 2023-11-07 15:35:58
Kopie: 0 Klicks: 1004
1
konzentrieren Sie sich auf
1617
Anhänger

RSI Moving Average Crossover-Strategie

Überblick

Die RSI-Linienkreuzung ist eine Strategie, die für den Handel mit Kryptowährungen angewendet wird. Die Strategie verwendet einen beweglichen Durchschnitt auf den RSI-Indikator und gibt ein Kauf- und Verkaufssignal an, wenn der RSI mit seinem beweglichen Durchschnitt gekreuzt wird.

Strategieprinzip

Die Strategie berechnet zunächst den RSI. Der RSI basiert auf den Veränderungen der Kursbewegungen innerhalb eines bestimmten Zeitraums und spiegelt die Stärke der Preise wider. Der RSI ist über 70 als Überkaufzone und unter 30 als Überverkaufzone.

Die Strategie wendet dann einen Moving Average an, der auf dem RSI-Indikator basiert. Der Moving Average kann zufällige Schwankungen filtern, um die Richtung des Trends zu bestimmen. Hier wird ein RSI Moving Average mit 10 Zyklen festgelegt.

Wenn der RSI seinen Moving Average überschreitet, gilt dies als Kaufsignal; wenn der RSI seinen Moving Average unterschreitet, gilt dies als Verkaufssignal. Händeln Sie nach diesen beiden Signalen.

In dem Code wird zunächst der RSI-Indikator für die Länge berechnet. Dann wird der Moving Average für die 10-Zyklus-RSI ma berechnet. Wenn ma über rsi geht, wird gekauft; wenn ma unter rsi geht, wird verkauft.

Darüber hinaus zeichnet der Code die Linienbilder rsi, ma und rsi-ma sowie die Kolonnenbilder rsi=70, rsi=30 und die entsprechenden Signalpfeile auf dem Diagramm bei Kauf und Verkauf.

Strategische Stärkenanalyse

  • Der RSI kann überkauft und überverkauft werden, und der Moving Average kann zufällige Schwankungen filtern, um einen Trendwechsel zu finden.
  • Die RSI-Linienüberschreitung ist eine eher erfahrene Handelsstrategie, die einige falsche Signale herausfiltern kann.
  • Der Strategie-Code ist einfach, klar und leicht zu verstehen. Die Karten sind vollständig und die Handelssignale sind deutlich zu sehen.
  • Die Strategie ist für Kryptowährungen mit deutlicher Tendenz geeignet und wirkt besser.

Strategische Risikoanalyse

  • Der RSI und der Moving Average verwenden falsche Periodenparameter, was zu einer Überflutung der falschen Signale führen kann.
  • Die Beurteilung der Gefahr einer Gefährdung durch die Überschneidung von Kennzahlen allein kann nicht vollständig verhindert werden.
  • Die Gebühren für den Handel beeinflussen die Gewinnspanne.
  • Die Kryptowährungsmärkte sind sehr volatil und es ist wichtig, auf die Gefahr von Stop-Loss-Verlusten zu achten.

Die Parameter können an das Risiko angepasst werden, um die Wirkung des Indikators zu optimieren, die Positionen angemessen zu verkürzen, die Stop-Loss-Linie einzurichten und die Signalfilter mit der Trendanalyse zu kombinieren.

Richtung der Strategieoptimierung

  • Die optimale Kombination von RSI und Durchschnittslinie kann unter verschiedenen Periodenparametern untersucht werden
  • Erhöhen Sie Ihre Position bei starken Trends und verringern Sie Ihre Position bei unklaren Trends
  • Sie können dynamische Stop-Loss-Einstellungen verwenden, um Trends zu verfolgen.
  • Andere Indikatoren können in Kombination mit dem RSI erforscht werden, um neue Handelssignale zu erzeugen
  • Es können maschinelle Lernmodelle auf der Grundlage dieser Strategie erforscht werden, um die Erfolgsrate der Strategie zu verbessern.

Zusammenfassen

Die RSI-Linienkreuzstrategie kombiniert die Vorzüge von Trendindikatoren und Filterindikatoren und ist vergleichsweise ausgereift und zuverlässig. Die Strategie ist einfach zu verstehen, der Code ist vollständig implementiert und ist insgesamt eine gute Kryptowährungs-Handelsstrategie. Jede Strategie muss jedoch optimiert werden.

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

//@version=4
strategy("RSI w MA Strategy", shorttitle="RSI w MA Strategy", overlay=false, initial_capital=10000, currency='USD',process_orders_on_close=true)

//TIME FRAME AND BACKGROUND CONTROL/////////////////////////////////////////////
testStartYear = input(2019, "Backtest Start Year")
testStartMonth = input(01, "Backtest Start Month")
testStartDay = input(01, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 0, 0)
testStopYear = input(2022, "Backtest Stop Year")
testStopMonth = input(1, "Backtest Stop Month")
testStopDay = input(1, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0)
testPeriodBackground = input(title="Color Background?", type=input.bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and time >= testPeriodStart and time <= testPeriodStop ? 
   color.teal : na
//bgcolor(testPeriodBackgroundColor, transp=50)
testPeriod() => true
////////////////////////////////////////////////////////////////////////////////

src = close, len = input(27, 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))
window = input(10, "RSI MA Window")
ma = sma(rsi,window)
plot(rsi, color=color.orange)
colorr= ma > rsi ? color.red : color.green
plot(ma,color=colorr)
band1 = hline(70)
band0 = hline(30)
fill(band1, band0, color=color.purple, transp=90)
diff = rsi - ma

plot(diff,style= plot.style_columns,transp=50,color = colorr)

plotshape(crossunder(rsi,ma)?rsi:na,title="top",style=shape.triangledown,location=location.absolute,size=size.tiny,color=color.red,transp=0)
plotshape(crossover(rsi,ma)?rsi:na,title="bottom",style=shape.triangleup,location=location.absolute,size=size.tiny,color=color.lime,transp=0)

buySignal = crossover(rsi,ma)
sellSignal = crossunder(rsi,ma)

//TRADE CONTROL/////////////////////////////////////////////////////////////////
if testPeriod()
    if buySignal
        strategy.close("Short", qty_percent = 100, comment = "Close Short")
        strategy.entry("Long", strategy.long, qty=.1)

    if sellSignal
        strategy.close("Long", qty_percent = 100, comment = "Close Long")
        strategy.entry("Short", strategy.short, qty=.1)

////////////////////////////////////////////////////////////////////////////////