Umkehrhandelsstrategie auf der Grundlage des mehrjährigen RSI

Schriftsteller:ChaoZhang, Datum: 14.9.2023
Tags:

Dieser Artikel erklärt detailliert eine quantitative Handelsstrategie, die mehrjährige RSI-Indikatoren verwendet, um Umkehrpunkte zu identifizieren.

I. Strategische Logik

Die Strategie verwendet 3 Gruppen von RSI-Indikatoren mit unterschiedlichen Parametern:

  1. Berechnen Sie die RSI-Werte für die Periode 2, 7 bzw. 14.

  2. Wenn der RSI-2 unter 10, der RSI-7 unter 20 und der RSI-14 unter 30 liegt, wird ein Boden ermittelt.

  3. Wenn der RSI-2 über 90, der RSI-7 über 80 und der RSI-14 über 70 liegt, wird ein Top ermittelt.

  4. Erstellen Sie Kauf-/Verkaufssignale auf der Grundlage der Einstimmigkeit des RSI.

  5. Voreinstellungen von Einstellparametern für den Konsens der Indikatoren, Steuerung der Signalfrequenz.

Durch die gemeinsame Analyse der RSI-Indikatoren über die Perioden hinweg kann die Genauigkeit des Umkehrpunkts verbessert werden.

II. Vorteile der Strategie

Der größte Vorteil besteht darin, dass die Verwendung einer mehrfachen Zeitrahmen-RSI-Analyse die Identifizierung von Schlüsselpunkten verbessert und falsche Signale herausfiltert.

Ein weiterer Vorteil ist die Flexibilität bei der Anpassung von Konsensparametern und der Anpassung an unterschiedliche Marktumgebungen.

Schließlich bieten die RSI-Kombinationen auch mehr Einstellmöglichkeiten.

III. Potenzielle Risiken

Es bestehen jedoch folgende Risiken:

Erstens hat der RSI selbst eine inhärente Verzögerung bei der Identifizierung von Umkehrungen.

Zweitens führen mehrere Indikatoren zu einer Signalzweideutigkeit, die klare Regeln erfordert.

Abschließend ist zu erwähnen, daß bei Umkehrgeschäften die Ausfallrate sehr hoch ist, was eine psychologische Vorbereitung erfordert.

IV. Zusammenfassung

Zusammenfassend wurde in diesem Artikel eine quantitative Strategie zur Identifizierung von Umkehrungen auf der Grundlage der mehrjährigen RSI-Analyse erläutert. Sie verbessert die Erkennung von Marktturnpunkten, indem die RSI-Einmütigkeit beurteilt wird. Aber Risiken wie Verzögerungen und falsche Signale müssen verwaltet werden. Insgesamt bietet sie einen flexiblen Ansatz zur Optimierung der RSI-Strategie.


/*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()

Mehr