RSI-Lange-Kürze automatisierte Handelsstrategie

Schriftsteller:ChaoZhang, Datum: 2023-10-30 17:13:24
Tags:

img

Übersicht

Diese Strategie entwirft ein automatisiertes Handelssystem für Long und Short basierend auf dem Relative Strength Index (RSI) Indikator.

Strategie Logik

Die Strategie berechnet die RSI-Werte im Bereich von 0-100 auf der Grundlage der Preissteigerungen und -rückgänge innerhalb eines bestimmten Zeitraums. Wenn der RSI unter 30 liegt, ist dies ein Überverkaufstatus. Wenn der RSI über 70 liegt, ist dies ein Überkaufstatus. Nach dieser Regel geht die Strategie automatisch lang, wenn der RSI die Überverkaufszone erreicht, und kurz, wenn der RSI die Überkaufszone erreicht.

Die Strategie berechnet zunächst den 15-Perioden-RSI. Wenn der RSI unter 20 fällt, wird er als überverkauft betrachtet. Zu diesem Zeitpunkt, wenn der Preis über den 200-Tage- gleitenden Durchschnitt bricht, wird eine Long-Position eröffnet. Wenn der RSI über 80 steigt, wird er als überkauft betrachtet. Zu diesem Zeitpunkt wird eine Short-Position eröffnet.

Darüber hinaus zeichnet die Strategie entsprechende Grenzlinien und Etiketten, wenn Preissignale auftreten, um Handelssignale intuitiver zu machen.

Vorteile der Strategie

  • Die Strategieidee ist klar und leicht zu verstehen und umzusetzen
  • Auf der Grundlage des RSI-Indikators ist das Urteil über Überkauf und Überverkauf genau
  • Vollautomatisiertes Handeln ohne manuelles Eingreifen
  • Gewinnübernahme und Stop-Loss, um Risiken wirksam zu kontrollieren
  • Handelssignale sind intuitiv und leicht zu überwachen

Risiken der Strategie

  • Der RSI-Indikator ist etwas zurückgeblieben, kann zu Fehleinschätzungen führen
  • Festgelegte Überkauf- und Überverkaufsschwellenwerte sind nicht für alle Produkte geeignet
  • Eine unsachgemäße Einstellung des Stop-Loss kann zu größeren Verlusten führen
  • Der Handel mit dem wichtigsten Trend in den Trendmärkten kann zu Verlusten führen

Risikokontrollmaßnahmen umfassen: Optimierung der RSI-Parameter, Anpassung der überkauften und überverkauften Schwellenwerte an verschiedene Produkte, angemessene Einstellung von Stop-Loss, Kombination mit Trendindikatoren, um einen gegen den Trend gerichteten Handel zu vermeiden.

Richtungen für die Optimierung der Strategie

  • Optimierung der RSI-Parameter zur Verbesserung der Genauigkeit der Beurteilung von Überkauf und Überverkauf
  • Bestätigen Sie Handelssignale mit anderen Indikatoren wie KDJ, MACD usw.
  • Optimierung der Stop-Loss-Einstellung entsprechend den Marktbedingungen
  • Hinzufügen von Trendbeurteilungen, um Umkehroperationen zu vermeiden
  • Vermögenswerte, für die die Vermögenswerte nicht mehr als 50% der Vermögenswerte des Vermögenswerts sind
  • Entwicklung eines Risikokontrollmoduls zur Kontrolle einzelner und Gesamtrisiken

Zusammenfassung

Insgesamt handelt es sich um eine automatisierte Handelsstrategie, bei der der RSI-Indikator verwendet wird, um überkaufte und überverkaufte Bedingungen zu beurteilen. Es erzeugt Handelssignale, wenn der RSI extreme Überkauf- oder Überverkaufswerte erreicht und kann automatisch Long- und Short-Trading durchführen. Die Strategieidee ist einfach und klar, einfach zu implementieren und eignet sich als grundlegende automatisierte Handelsstrategie. Der RSI-Indikator hat jedoch einige Rückstände, so dass es empfohlen wird, ihn mit anderen Indikatoren zu optimieren, um die Signalgenauigkeit zu verbessern. Darüber hinaus sollte auf die Risikokontrolle geachtet werden, den Stop-Loss-Mechanismus zu optimieren, Risikokontrollmodule zu entwickeln, um Handelsrisiken zu reduzieren. Wenn die Strategie im Live-Handel optimiert und verifiziert wird, kann sie zu einem effektiven automatisierten System für den Long- und Short-Handel werden.


/*backtest
start: 2023-10-22 00:00:00
end: 2023-10-29 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("RSI Improved strategy", overlay=true)
higherTF1 = input.timeframe('15' , "Resolution", options = ['5', '15', '1H', 'D', 'W', 'M'])
dailyopen = request.security(syminfo.tickerid, higherTF1, close)

Reward = input(1600)
Risk = input(1600)

length = input( 5 )
overSold = input( 30 )
overBought = input( 70 )
EMA = input(200)
price = close

vrsi = ta.rsi(price, length)

RSIlowest =  vrsi[1] > vrsi ? true : false
RSIhighest = vrsi[1] < vrsi ? true : false

//ro = ta.crossunder(vrsi, 20)
//ru = ta.crossover(vrsi, 80)

co = ta.crossunder(vrsi, overSold)
cu = ta.crossunder(vrsi, overBought)

plot(ta.ema(close, EMA))
plot(ta.ema(close, 50), color = color.orange)

UponEMA = close > ta.ema(close, EMA) ? true : false
belowEMA = close < ta.ema(close, EMA) ? true : false
//transfer 'float' to 'int' to 'string'
r = int(vrsi)
value = str.tostring(r)

m = int(strategy.openprofit)
money = str.tostring(m)
if (not na(vrsi))
	//when price stand up on 200ema and rsi is at oversold area, open long position 
//	if (co and UponEMA)
  //      strategy.order("Rsi long", strategy.long, 1 , comment = "Rsi long")
        
    if(vrsi < 20 and RSIlowest)
        // line1 = line.new(x1=bar_index, y1=dailyopen, x2=bar_index+1, y2=dailyopen, xloc=xloc.bar_index, style=line.style_solid,extend=extend.right, color=color.aqua, width = 2)
        // line.delete(line1[1])  // remove the previous line when new bar appears
        // label1 = label.new(x=bar_index, y=dailyopen,yloc=yloc.belowbar, text = value,textcolor = color.white, color = color.green, style = label.style_label_up)
        // label.delete(label1[1])
        strategy.order("Rsi long", strategy.long, 1 , comment = "Rsi long")
        strategy.exit("exit", "Rsi long", profit = Reward, loss = Risk, comment = "Rsi long exit")
//strategy.close("Rsi short", comment = "Rsi close")

	
	

	if(vrsi > 80 and RSIhighest)
        // line2 = line.new(x1=bar_index, y1=dailyopen, x2=bar_index+1, y2=dailyopen, xloc=xloc.bar_index, style=line.style_solid,extend=extend.right, color = #e65100, width = 2)
        // line.delete(line2[1])  // remove the previous line when new bar appears
        // label2 = label.new(x=bar_index, y=dailyopen,yloc=yloc.abovebar, text = value, textcolor = color.white, color = color.red)            
        // label.delete(label2[1])
        strategy.order("Rsi short",strategy.short, 1,  comment = "Rsi short ")
        strategy.exit("exit", "Rsi short", profit = Reward,loss = Risk, comment = "Rsi short exit")
//	if(UponEMA)
//        strategy.close("Rsi short", comment = "Rsi short close")
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_cross)
//plotshape(confirmPH, title="Label",offset = 1,text="Bull",style=shape.labeldown,location=location.abovebar,color=color.green,textcolor=color.green)




//when Rsi reaches overbought, draw a Horizontal Ray to close prices, similarly when it comes to oversold.(accomplished)
//detects when there is more lower/higher RSI values, adjust horizontal Ray and label to new posistion.(accomplished)

Mehr