Umkehrstrategie basierend auf dem mehrperiodischen RSI-Indikator


Erstellungsdatum: 2023-09-14 20:42:55 zuletzt geändert: 2023-09-14 20:42:55
Kopie: 1 Klicks: 450
1
konzentrieren Sie sich auf
1219
Anhänger

In diesem Artikel wird eine quantitative Handelsstrategie beschrieben, die einen Wendepunkt anhand eines mehrperiodischen RSI-Indikators ermittelt. Diese Strategie analysiert mehrere RSI-Indikatoren gleichzeitig und identifiziert die Entstehung eines Wendepunkts.

  1. Strategische Grundlagen

Die Strategie verwendet 3 Gruppen von RSI-Indikatoren mit unterschiedlichen Parameter-Sätzen, die folgender Logik folgen:

  1. Die RSI-Werte werden für 2, 7 und 14 Zyklen berechnet.

  2. Wenn der RSI-2 kleiner als 10, der RSI-7 kleiner als 20 und der RSI-14 kleiner als 30 ist, wird er als Bottom bezeichnet.

  3. Wenn der RSI-2 größer als 90, der RSI-7 größer als 80 und der RSI-14 größer als 70 ist, wird er als Spitze beurteilt.

  4. Der RSI-Indikator erzeugt ein Kauf- und Verkaufssignal.

  5. Die Parameter für die Anforderung der Kennwertkonformität können vorgegeben werden, um die Signalfrequenz zu steuern.

So kann die Sammelanalyse von mehrperiodischen RSI-Indikatoren die Genauigkeit der Entscheidung für den Umkehrpunkt verbessern.

  1. Strategische Vorteile

Der größte Vorteil dieser Strategie ist die Verwendung von mehrperiodischen RSI-Indikatoren für die Sammelanalyse, die die Genauigkeit der Beurteilung von Schlüsselpunkten verbessern und falsche Signale auswählen können.

Ein weiterer Vorteil ist, dass die Handelsfrequenz durch Anpassung der Konsistenzparameter an unterschiedliche Marktbedingungen angepasst werden kann.

Schließlich bietet die Kombination verschiedener periodischer RSI mehr Spielraum für Optimierungen.

  1. Potenzielle Risiken

Aber diese Strategie birgt auch folgende Risiken:

Zunächst einmal ist die Beurteilung der Preisumkehr durch den RSI-Indikator selbst problematisch.

Zweitens ist es schwierig, die Signale aus einer Kombination von mehreren Indikatoren zu erkennen, und es müssen klare Filterregeln festgelegt werden.

Schließlich ist die Umkehrung selbst mit einer gewissen Ausfallrate verbunden, was eine gewisse psychologische Vorbereitung erfordert.

Vier Inhalte, Zusammenfassung

In diesem Artikel wird eine quantitative Handelsstrategie beschrieben, die auf der Identifizierung von Wendepunkten basiert, die auf mehrperiodischen RSI-Indikatoren basieren. Sie verbessert die Identifizierung von Wendepunkten im Markt, indem sie die Konsistenz der RSI-Indikatoren beurteilt. Es ist jedoch erforderlich, Verzögerungsprobleme und Signalfehler zu vermeiden.

Strategiequellcode
/*backtest
start: 2023-09-06 00:00:00
end: 2023-09-13 00:00:00
period: 45m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=2
strategy(title = "Noro's Triple RSI Top/Bottom v1.1", shorttitle = "3RSI Top/Bottom 1.1", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
leverage = input(1, defval = 1, minval = 1, maxval = 100, title = "leverage")
indi = input(3, defval = 3, minval = 1, maxval = 3, title = "Indicators")
accuracy = input(3, defval = 3, minval = 1, maxval = 10, title = "accuracy")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//RSI-2
fastup = rma(max(change(close), 0), 2)
fastdown = rma(-min(change(close), 0), 2)
fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))

//RSI-7
middleup = rma(max(change(close), 0), 7)
middledown = rma(-min(change(close), 0), 7)
middlersi = middledown == 0 ? 100 : middleup == 0 ? 0 : 100 - (100 / (1 + middleup / middledown))

//RSI-14
slowup = rma(max(change(close), 0), 14)
slowdown = rma(-min(change(close), 0), 14)
slowrsi = slowdown == 0 ? 100 : slowup == 0 ? 0 : 100 - (100 / (1 + slowup / slowdown))

//Body
body = abs(close - open)
abody = sma(body, 10)

//Signals
acc = 10 - accuracy
signalup1 = fastrsi < (5 + acc) ? 1 : 0
signalup2 = middlersi < (10 + acc * 2) ? 1 : 0
signalup3 = slowrsi < (15 + acc * 3) ? 1 : 0

signaldn1 = fastrsi > (95 - acc) ? 1 : 0
signaldn2 = middlersi > (90 - acc * 2) ? 1 : 0
signaldn3 = slowrsi > (85 - acc * 3) ? 1 : 0

up = signalup1 + signalup2 + signalup3 >= indi
dn = signaldn1 + signaldn2 + signaldn3 >= indi
exit = ((strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open)) and body > abody / 3

//Trading
lot = strategy.position_size == 0 ? strategy.equity / close * leverage : lot[1]

if up
    if strategy.position_size < 0
        strategy.close_all()
        
    strategy.entry("Bottom", strategy.long, needlong == false ? 0 : lot)

if dn
    if strategy.position_size > 0
        strategy.close_all()
        
    strategy.entry("Top", strategy.short, needshort == false ? 0 : lot)
    
if time > timestamp(toyear, tomonth, today, 23, 59) or exit
    strategy.close_all()