Verwenden der bidirektionalen RSI-Ausbruchsstrategie


Erstellungsdatum: 2023-12-27 14:33:15 zuletzt geändert: 2023-12-27 14:33:15
Kopie: 0 Klicks: 974
1
konzentrieren Sie sich auf
1623
Anhänger

Verwenden der bidirektionalen RSI-Ausbruchsstrategie

Überblick

Die Binäre RSI-Breakout-Strategie ist eine algorithmische Handelsstrategie, die den RSI-Indikator verwendet, um die Preiswendepunkte zu identifizieren. Sie vergleicht den RSI-Indikator mit den eingestellten Auf- und Abwärtswerten, um zu beurteilen, ob der Markt überkauft ist und ein Handelssignal auslöst.

Strategieprinzip

Die RSI-Indikator basiert auf der Veränderung des Schlusskurses innerhalb eines bestimmten Zeitraums und spiegelt die Kaufkraft der Aktie wider. Wenn der RSI über die festgelegte Obergrenze (default 75) geht, bedeutet dies, dass die Aktie in die Überkaufzone gelangt ist. Wenn der RSI unter die festgelegte Untergrenze (default 25) geht, bedeutet dies, dass die Aktie in die Überverkaufszone gelangt ist.

Die Strategie-Regel:

  1. Wenn der RSI überschritten hat, machen Sie eine Lücke.
  2. Wenn der RSI unterhalb der Schwelle liegt, tun Sie mehr.
  3. Nach dem Stop-Loss oder dem Stop-Out wird die Position ausgeglichen.

Die Trading-Logik ist einfach und klar, die Referenzparameter sind vernünftig eingestellt, die Konfigurationsfläche ist groß und eignet sich für die Erfassung größerer Trends in der Marktlage.

Analyse der Stärken

Diese Strategie hat folgende Vorteile:

  1. Die Logik ist einfach, leicht zu verstehen und umzusetzen.
  2. Die Referenzparameter sind vernünftig eingestellt und können individuell konfiguriert werden.
  3. Das System ist in der Lage, mit einer flexiblen Anpassung an den Markt zu handeln, und kann mit einer umgekehrten Logik konfiguriert werden.
  4. Es ist auch eine gute Methode, um Preiswechselpunkte zu erkennen und Trends zu erfassen.

Insgesamt ist die Strategie Referenzparameter vernünftig eingestellt, einfach zu implementieren, kann durch den RSI-Indikator effektiv beurteilen, ob die Preise umgekehrt sind, ist geeignet für die mittlere und lange Linie, um große Trends zu erfassen, und ist eine leicht zu handhabende quantitative Strategie.

Risikoanalyse

Obwohl die Strategie relativ einfach und zuverlässig ist, dürfen wir die potenziellen Risiken nicht ignorieren:

  1. Der RSI ist nicht perfekt in der Vorhersage von Preiswechseln und kann zu Fehleinschätzungen führen.
  2. Die RSI-Indikator kann kaum unterscheiden zwischen einer normalen Bandbreite und einer Trendwende.
  3. Der RSI ist nicht in der Lage, die Entwicklung der Erschütterung zu beurteilen, und die strategischen Verluste werden in diesem Umfeld erhöht.

Um die Risiken zu kontrollieren, müssen wir folgende Punkte beachten:

  1. Anpassung der Parameter zur Vermeidung einer zu hohen Fehleinschätzung;
  2. In Kombination mit anderen Indikatoren wird die Genauigkeit der Bestätigung von Handelssignalen erhöht.
  3. Das ist eine sehr wichtige Entscheidung, die wir alle treffen müssen.
  4. Es ist wichtig, sich vor unsicheren Geschäften zu schützen.

Optimierungsrichtung

Angesichts der Tatsache, dass die Strategie vor allem mit dem Risiko von Umkehrfehlern und Verlusten aus dem Konjunkturstadium konfrontiert ist, können wir Optimierungen in den folgenden Bereichen vornehmen:

  1. In Kombination mit anderen Indikatoren wird die Signalfilterung durchgeführt. Indikatoren wie KDJ, MACD und andere können eine Filterfunktion spielen und Fehleinschätzungen vermeiden.
  2. Erhöhung der bedingten Einzelschutzlimite. Eine angemessene Vergrößerung des Einzelschutzraums hilft der Strategie, mit dem Trend zu arbeiten.
  3. Setzen Sie eine Frequenzbegrenzung für die Positionöffnung. Fügen Sie eine logische Schwelle hinzu, bei der nur einmal oder N-mal pro Zyklus gehandelt wird, um zu intensive Positionen zu kontrollieren.
  4. Setzen Sie eine Trend-Durchsicht. Die Strategie wird nur bei einem Trend ausgeführt, um einen Schock zu vermeiden, wodurch das Ertrag-Risiko-Verhältnis der Strategie erheblich optimiert wird.

Zusammenfassen

Die zweiseitige RSI-Breakout-Strategie ist insgesamt eine einfache und praktische Quantifizierungsstrategie. Sie beurteilt die Preisumkehr durch den RSI-Indikator und ermöglicht eine einfache Trendverfolgung. Obwohl ein gewisses Risiko für Fehleinschätzungen besteht, kann sie durch Parameteranpassung und Signalfilterung optimiert werden und spielt eine wichtige Rolle bei der Erfassung von mittleren und langen Trends.

Strategiequellcode
/*backtest
start: 2023-12-19 00:00:00
end: 2023-12-26 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("RSI Algo", overlay=true)

// Calculate start/end date and time condition
DST = 1 //day light saving for usa
//--- Europe
London = iff(DST==0,"0000-0900","0100-1000")
//--- America
NewYork = iff(DST==0,"0400-1500","0500-1600")
//--- Pacific
Sydney = iff(DST==0,"1300-2200","1400-2300")
//--- Asia
Tokyo = iff(DST==0,"1500-2400","1600-0100")

//-- Time In Range
timeinrange(res, sess) => time(res, sess) != 0

london = timeinrange(timeframe.period, London)
newyork = timeinrange(timeframe.period, NewYork)

time_cond = true


myPeriod = input(defval=14, type=input.integer, title="Period")
myThresholdUp = input(defval=75, type=input.float, title="Upper Threshold")
myThresholdDn = input(defval=25, type=input.float, title="Lower Threshold")
myAlgoFlipToggle = input(defval=false, type=input.bool, title="Imverse Algorthim")
myLineToggle = input(defval=true, type=input.bool, title="Show Lines")
myLabelToggle = input(defval=true, type=input.bool, title="Show Labels")
myRSI=rsi(close, myPeriod)
buy = myAlgoFlipToggle ? falling(myRSI,1) and cross(myRSI, myThresholdDn) : rising(myRSI, 1) and cross(myRSI,myThresholdUp) //and time_cond
sell = myAlgoFlipToggle ? rising(myRSI, 1) and cross(myRSI,myThresholdUp) : falling(myRSI,1) and cross(myRSI, myThresholdDn) //and time_cond
myPosition = 0
myPosition := buy==1 ? 0 : sell==1 or myPosition[1]==1 ? 1 : 0
trendColor = buy ? color.red : sell ? color.green : na
plot(myLineToggle ? buy and myPosition[1]==1 ? low - 0.004: sell and myPosition[1]==0 ? high + 0.004 : na : na, color=trendColor, style=plot.style_line, linewidth=4, editable=false)
plotshape(myLabelToggle ? buy and myPosition[1]==1 ? low - 0.005 : na : na, style=shape.labelup, location=location.absolute, text="Buy", transp=0, textcolor = color.white, color=color.black, editable=false)
plotshape(myLabelToggle ? sell and myPosition[1]==0 ? high + 0.005 : na : na, style=shape.labeldown, location=location.absolute, text="Sell", transp=0, textcolor = color.white, color=color.black, editable=false)

strategy.initial_capital = 50000
    //Calculate the size of the next trade
balance = strategy.netprofit + strategy.initial_capital //current balance
floating = strategy.openprofit          //floating profit/loss
risk = input(2,type=input.float,title="Risk %")/100           //risk % per trade
isTwoDigit = input(false,"Is this a 2 digit pair? (JPY, XAU, XPD...")


stop = input(250, title="stop loss pips")
tp = input(2500, title="take profit pips")
if(isTwoDigit)
    stop := stop/100
    
temp01 = balance * risk     //Risk in USD
temp02 = temp01/stop        //Risk in lots
temp03 = temp02*100000      //Convert to contracts
size = 1
    
strategy.entry("long",1,size,when=buy and myPosition[1]==1 )
strategy.entry("short",0,size,when=sell and myPosition[1]==0)

strategy.exit("exit_long","long",loss=stop, profit=tp)      //Long exit (stop loss)
strategy.exit("exit_short","short",loss=stop, profit=tp)      //Short exit (stop loss)

//strategy.close_all(when= not time_cond)