Zweiwege-RSI-Strategie zur Wiederherstellung des gleitenden Durchschnitts


Erstellungsdatum: 2023-10-23 15:46:33 zuletzt geändert: 2023-10-23 15:46:33
Kopie: 0 Klicks: 671
1
konzentrieren Sie sich auf
1617
Anhänger

Zweiwege-RSI-Strategie zur Wiederherstellung des gleitenden Durchschnitts

Überblick

Die zweiseitige RSI-Linienreaktion ist eine Trendverfolgungsstrategie, bei der zwei verschiedene Zeiträume des RSI verwendet werden, um Überkauf und Überverkauf zu identifizieren. Die Strategie zielt darauf ab, einen Gewinn zu erzielen, indem sie nach einem Überkauf überschreitet und nach einem Überkauf aufhört. Die Strategie verwendet einen glatten asymmetrischen Moving Average, den RSI-Indikator und einen Farbfilter für die Positionöffnung, um Handelsmöglichkeiten zu identifizieren.

Strategielogik

Die Strategie verwendet zwei RSI-Indikatoren mit unterschiedlichen Perioden, um einen auf dem 5-Minuten-Chart und einen auf dem 1-Stunden-Chart zu platzieren. Für den RSI-Indikator wird ein Überverkauf unter 30 und ein Überkauf über 70 erkannt.

Es verfolgt den RSI-Wert und sucht nach Zuständen, in denen der RSI in einer überverkauften oder überkauften Zone liegt, was auf einen expandierenden Überverkauf oder Überkauf hinweist.

Darüber hinaus verwendet es einen glatten asymmetrischen Moving Average, der die roten oder grünen K-Linien eines bestimmten Zeitraums überprüft, um die Richtung des Trends zu bestätigen, bevor er in den Handel eintritt. Der Farbfilter für die Position hilft, falsche Signale zu vermeiden.

Wenn die Bedingungen für den RSI und den gleitenden Abweichungen und den Moving Averages erfüllt sind, macht die Strategie nach dem Überverkauf einen Plus, nach dem Überkauf einen Minus und der Wettpreis kehrt zurück in die Gewinnlinie.

Die Bank muss am Ende des Tages ihre Positionen auszahlen, um keine Übernachtungen zu vermeiden.

Analyse der Stärken

  • Überkauf und Überverkauf mit mehreren Zeitrahmen
  • Glatte Asymmetrie Filterung von Moving Average-Geräuschen, um Trends zu erkennen
  • Farbfilter zur Vermeidung von Fehlsignalen
  • Anschließend werden die beiden Kennzahlen anhand einer eindeutigen Regel für die Ein- und Aussetzung von Positionen abgestimmt.
  • Risiken der täglichen Frühstücksplatzkontrolle

Risikoanalyse

  • Wenn der starke Trend weiter anhält, könnte der RSI nach einem Überkauf-Überverkauf-Signal zu einer Erschütterung kommen
  • Marktlücke könnte zu Stop Losses führen
  • Die Verzögerung bei der Eröffnung von Positionen kann zu Verzögerungen führen, wodurch der Markt verpasst wird.
  • Die Gewinne, die sich aus dem Verzicht auf eine Übernachtung am Ende des Tages ergeben

Optimierungsrichtung

  • Hinzufügen von zusätzlichen Filtern wie Handelsvolumen oder Schwankungen zur Bestätigung des Signals
  • Optimierung der RSI-Zyklen und der Überkauf-Überverkauf-Level-Parameter
  • Erwägen Sie eine dynamische Positionskontrolle basierend auf der Volatilität
  • Testen Sie Stop-Loss-Exits, anstatt die Positionen vor dem Ende des Tages zu platzieren
  • Testen Sie die Wirkung in verschiedenen Sorten und passen Sie die Parameter an

Zusammenfassen

Die BSI-RSI-Linienwiederholungsstrategie verwendet eine Regulierungsmethode, um die Handelsdynamik zu regulieren. Durch die Kombination von zwei Zeiträumen, Überkauf-Überverkauf-Indikatoren, K-Line-Form-Analyse und Positionsfilter zielt darauf ab, Gelegenheiten für eine hohe Wahrscheinlichkeit einer Linienwiederkehr zu identifizieren. Strenge Risikomanagement und sorgfältige Positionskontrolle helfen, Rücknahmen zu kontrollieren, während sie profitabel sind.

Strategiequellcode
/*backtest
start: 2023-09-01 00:00:00
end: 2023-09-30 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Gidra
//2018

//@version=2
strategy(title = "Gidra's Vchain Strategy v0.1", shorttitle = "Gidra's Vchain Strategy v0.1", overlay = false, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 100)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %")
rsiperiod = input(14, defval = 14, minval = 2, maxval = 100, title = "RSI period")
rsilimit = input(30, defval = 30, minval = 1, maxval = 50, title = "RSI limit")
rsibars = input(3, defval = 3, minval = 1, maxval = 20, title = "RSI signals")
useocf = input(true, defval = true, title = "Use Open Color Filter")
openbars = input(2, defval = 2, minval = 1, maxval = 20, title = "Open Color, Bars")
showrsi = input(true, defval = true, title = "Show indicator RSI")
fromyear = input(2018, defval = 2018, 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")


//Heikin Ashi Open/Close Price
o=open
c=close
h=high
l=low
haclose = (o+h+l+c)/4
haopen = na(haopen[1]) ? (o + c)/2 : (haopen[1] + haclose[1]) / 2
hahigh = max (h, max(haopen,haclose))
halow = min (l, min(haopen,haclose))
col=haopen>haclose ? red : lime
plotcandle(haopen, hahigh, halow, haclose, title="heikin", color=col)

//RSI
uprsi = rma(max(change(close), 0), rsiperiod)
dnrsi = rma(-min(change(close), 0), rsiperiod)
rsi = dnrsi == 0 ? 100 : uprsi == 0 ? 0 : 100 - (100 / (1 + uprsi / dnrsi))
uplimit = 100 - rsilimit
dnlimit = rsilimit
rsidn = rsi < dnlimit ? 1 : 0
rsiup = rsi > uplimit ? 1 : 0

//RSI condition
rsidnok = highest(rsidn, rsibars) == 1? 1 : 0
rsiupok = highest(rsiup, rsibars) == 1? 1 : 0

//Color Filter
bar = haclose > haopen ? 1 : haclose < haopen ? -1 : 0
gbar = bar == 1 ? 1 : 0
rbar = bar == -1 ? 1 : 0
openrbarok = sma(gbar, openbars) == 1 or useocf == false
opengbarok = sma(rbar, openbars) == 1 or useocf == false

//Signals
up = openrbarok and rsidnok
dn = opengbarok and rsiupok

lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 : lot[1]

//Indicator RSI
colbg = showrsi == false ? na : rsi > uplimit ? red : rsi < dnlimit ? lime : na
bgcolor(colbg, transp = 20)

//Trading
if up
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if dn
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if time > timestamp(toyear, tomonth, today, 23, 59)// or exit
    strategy.close_all()