Doppel-Überkauft/Überverkauft-Strategie basierend auf dem RSI-Indikator

Schriftsteller:ChaoZhang, Datum: 2023-09-13 16:58:55
Tags:

Diese Strategie wird Dual Overbought/Oversold Strategy Based on RSI Indicator genannt. Sie verwendet sowohl den RSI-Indikator als auch den Stoch RSI-Indikator, um Überkauf- und Überverkaufsbedingungen für zuverlässigere Handelssignale zu bestimmen.

Der RSI-Indikator spiegelt überkaufte/überverkaufte Preise wider. RSI über 70 deutet auf einen überkauften Zustand hin, während unter 30 überverkauft ist. Der Stoch RSI-Indikator zeigt, ob der RSI selbst in Überkauf- oder Überverkaufszonen eingetreten ist.

Die Handelslogik lautet:

Wenn der RSI über die vom Benutzer definierte Überkauflinie geht, signalisiert er Überkaufbedingungen für die Berücksichtigung von Short Trades.

Wenn der RSI unter die vom Benutzer definierte Überverkaufslinie fällt, markiert er Überverkaufsbedingungen für die Berücksichtigung von Long Trades.

In der Zwischenzeit muss der Stoch RSI auch überkaufte oder überverkaufte Signale zeigen, um die entsprechenden Eintrittssignale zu bestätigen.

Diese doppelte Bedingung wird kombiniert, um mehr zweideutige Signale zu filtern und falsche Ausbrüche zu vermeiden.

Der Vorteil dieser Strategie besteht darin, die verschiedenen abgeleiteten Indikatoren des RSI zu nutzen, um ein genaueres Überkauf-/Überverkaufs-Bereich zu beurteilen.

Zusammenfassend muss die Kombination von Indikatoren sorgfältig ausgewogen werden. Eine vernünftige Nutzung kann die Ergebnisse verbessern, kann aber auch zu Risiken bei der Überoptimierung führen.


/*backtest
start: 2023-01-01 00:00:00
end: 2023-09-12 00:00:00
period: 4d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("test1","t1",overlay=true, default_qty_type = strategy.percent_of_equity,default_qty_value=100,initial_capital=200, currency=currency.USD)
//user input
k_param = input(title = "k length", type = input.integer, defval = 14)
d_param = input(title = "d length", type = input.integer, defval = 3)
rsi_param = input(title = "RSI", type = input.integer, defval = 5)
upper = input(title = "over brought", type = input.integer, defval = 80)
lower = input(title = "over sold", type = input.integer, defval = 20)

//calculation
rsi = rsi(close,rsi_param)
stochastic = 100*(rsi - lowest(rsi,k_param))/(highest(rsi,k_param)-lowest(rsi,k_param))
SMA = sma(stochastic,d_param)

//DRAW
plot(upper,color = color.blue,linewidth = 2, title ="超买")
plot(lower,color = color.blue,linewidth = 2, title ="超卖")
plot(rsi,color = rsi>upper ?color.red:rsi<lower? color.green:color.black, linewidth=2,title ="ris超买超卖")
plot(stochastic,color = color.purple,title="震荡指数")
plot(SMA, color = color.orange,title="移动平均")

//trading
shortposition = crossover(rsi,upper)
longposition = crossunder(rsi,lower)
strategy.entry("卖",false,when =(shortposition))
strategy.entry("买",true,when = (longposition))
strategy.exit("止盈",profit = close*0.013/syminfo.mintick)

Mehr