Diese Strategie entwirft ein automatisiertes Handelssystem für Long und Short basierend auf dem Relative Strength Index (RSI) Indikator.
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.
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.
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)