VRSI vs. MARSI-Strategie


Erstellungsdatum: 2024-02-02 17:21:09 zuletzt geändert: 2024-02-02 17:21:09
Kopie: 0 Klicks: 970
1
konzentrieren Sie sich auf
1617
Anhänger

VRSI vs. MARSI-Strategie

Überblick

Die VRSI- und MARSI-Strategie nutzt die Moving Average, um den RSI zu glätten, um eine Doppelindikator-Strategie zu realisieren. Die Strategie verwendet den RSI-Indikator für den Preis und den RSI-Indikator für den Umsatz gleichzeitig, um ein Handelssignal zu erzeugen.

Strategieprinzip

Die Strategie berechnet zunächst den 9-Zyklus-RSI des Preises (RSI) und den 9-Zyklus-RSI des Umsatzes (VRSI). Dann berechnet man den 5-Zyklus-Simple Moving Average dieser beiden RSI (MARSI und MAVRSI).

Die Erzeugung von Handelssignalen basiert auf dem MARSI-Indikator. Wenn der MARSI steigt, ist er hoch, wenn der MARSI fällt, ist er leer. Außerdem wird der MAVRSI-Indikator verwendet, um die Marktkraft und mögliche Trendänderungen zu beurteilen.

Wenn beispielsweise bei einem Mehrkopf-Geschäft die Preise weiter steigen, aber der Umsatz sinkt, ist dies ein Hinweis darauf, dass die Mehrkopf-Kraft möglicherweise schwächer wird. Umgekehrt kann man bei einem Leerkopf-Geschäft, wenn die Preise weiter sinken, aber der Umsatz steigt, was auf eine Erhöhung der Leerkopf-Kraft hinweist, weiterhin Flugtickets halten.

Analyse der Stärken

Die Strategie kombiniert zwei RSI-Indikatoren mit einem Moving Average, um Trends effektiv zu erfassen und gleichzeitig die Veränderungen der Transaktionsmenge zu nutzen, um die Marktstärke zu beurteilen und zu vermeiden, dass sie eingestellt wird. Die Strategie kann die Marktbewegung genauer erfassen als ein einzelner RSI-Indikator.

Die Verwendung von Moving Averages kann auch einen Teil des Rausches filtern und die Signalqualität verbessern. Darüber hinaus bietet die Einstellung verschiedener Parameter wie RSI-Perioden und Moving Average-Perioden die Möglichkeit, die Strategie zu optimieren.

Risikoanalyse

Das Hauptrisiko dieser Strategie besteht darin, dass es zu Abweichungen zwischen den doppelten Indikatoren kommen kann. Wenn es zu Abweichungen zwischen Preis und Transaktionsvolumen kommt, werden die Handelssignale auch weniger zuverlässig. Die Beziehung zwischen den Indikatoren muss künstlich beurteilt werden.

Ein weiteres Risiko besteht darin, dass der RSI leicht eingeschlagen werden kann. Wenn der Preis in einer horizontalen Korrektur ist, kann der RSI leicht nach oben und unten schwanken und unnötige Handelssignale auslösen. Dies erfordert die Anpassung der Parameter oder die Bestimmung der absoluten Position des Indikators.

Optimierungsrichtung

Diese Strategie kann in folgenden Bereichen optimiert werden:

  1. Anpassung der Parameter des RSI und des Moving Averages, um die optimale Kombination zu finden

  2. Hinzufügen von weiteren bedingten Urteilen bei der Erzeugung von Handelssignalen, wie z. B. eine höhere Zuverlässigkeit von Umkehrsignalen, die vom RSI-Indikator in Überkauf-Überverkaufszonen ausgelöst werden

  3. Erhöhung der Stop-Loss-Strategie, Einrichtung von Moving Stop oder Stop-Index

  4. In Kombination mit anderen Indikatoren, wie K-Linienform, Schwankungsraten, etc., um zu verhindern, dass sie eingeschlossen werden

Zusammenfassen

Der VRSI und die MARSI-Strategie kombinieren erfolgreich die RSI-Indikatoren für Preise und Volumen, und der Vergleich und die Beurteilung zwischen den doppelten Indikatoren können die Genauigkeit und die Gewinnrate des Signals verbessern. Eine optimierte Parameter-Setzung und eine Stop-Loss-Strategie ermöglichen auch einen stabilen Betrieb. Insgesamt hat die Strategie die Kombination zwischen den Indikatoren genutzt und hat eine bessere Leistung als ein einzelner RSI-Indikator.

Strategiequellcode
/*backtest
start: 2024-01-02 00:00:00
end: 2024-02-01 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("VRSI-MARSI Strategy", shorttitle="(V/MA)RSI Str.", overlay=false, default_qty_type=strategy.percent_of_equity, calc_on_order_fills=true, calc_on_every_tick=true, pyramiding=0, default_qty_value=5, initial_capital=100)

// RSI(close, ="RSI") and RSI(Volume, ="VRSI")
src = close, len = input(9, minval=1, title="Length RSI")
src2 = volume, len2 = input(9, minval=1, title="Length VRSI)")
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
up2 = rma(max(change(src2), 0), len2)
down2 = rma(-min(change(src2), 0), len2)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
rsi2 = down2 == 0 ? 100 : up2 == 0 ? 0 : 100 - (100 / (1 + up2 / down2))

// MA(=Moving Average) of RSI(close, ="MARSI") and RSI(Volume, ="MAVRSI")
len3 = input(5, minval=1, title="Length MARSI")
marsi = sma(rsi, len3)
len4 = input(5, minval=1, title="Length MAVRSI")
marsi2 = sma(rsi2, len4)

// Plot: 
// Default plot of RSI and VRSI: not visible but can be made visible
// Default plot MARSI and MAVRSI: visible
p1 = plot(rsi, linewidth=2, transp=100, color=color.yellow, title="RSI")
p2 = plot(rsi2, linewidth=2, transp=100, color=color.orange, title="VRSI")
m1 = plot(marsi, color=(marsi>=0 ? (marsi[1] < marsi ? color.yellow : color.blue) : (marsi[1] < marsi ? color.yellow : color.blue) ), linewidth = 2, transp = 0, title="MARSI")
m2 = plot(marsi2, color=color.orange, linewidth = 2, transp = 0, title="MAVRSI")

// Color fill:
// Default color fill "RSI - VRSI": not visible but can be made visible
// Default color fill "MARSI - MAVRSI": visible
fill(p1,p2, color = rsi>rsi2 ? color.green : color.red, transp=100, title="BG RSI-VRSI")
fill(m1,m2, color = marsi>marsi2 ? color.green : color.red, transp=75, title="BG MARSI-MAVRSI")

// Lines:
h2=hline(20, color=color.green, linestyle=hline.style_dotted, title="Extreme Oversold Rsi")
h3=hline(30, color=color.black, linestyle=hline.style_dotted, title="Oversold Rsi")
h5=hline(50, color=color.yellow, linestyle=hline.style_dashed, title="Middle line")
h7=hline(70, color=color.black, linestyle=hline.style_dotted, title="Overbought Rsi")
h8=hline(80, color=color.red, linestyle=hline.style_dotted, title="Extreme Overbought Rsi")

// Color fill between Lines "20-30" and "70-80" represents the crossing of "MARSI" and "MAVRSI":
fill(h2, h3, color=(marsi2 > marsi ? color.red : color.green), transp=80, title="20-30 BG color X MARSI/MAVRSI")
fill(h7, h8, color=(marsi2 > marsi ? color.red : color.green), transp=80, title="70-80 BG color X MARSI/MAVRSI")

///Long Entry///
longCondition = marsi > marsi[1] 
if (longCondition)
    strategy.entry("Long", strategy.long)

///Long exit///
Xlong =input(true)
closeConditionLong = marsi < marsi[1] and Xlong
if (closeConditionLong)
    strategy.close("Long")

///Short Entry///
shortCondition = marsi < marsi[1] 
if (shortCondition)
    strategy.entry("Short", strategy.short)
    
///Short exit///
Xshort =input(true)
closeConditionShort = marsi > marsi[1] and Xshort
if (closeConditionShort)
    strategy.close("Short")