RSI 지표에 기초한 두 가지 과잉 구매/ 과잉 판매 전략

저자:차오장, 날짜: 2023-09-13 16:58:55
태그:

이 전략은 RSI 지표에 기반한 듀얼 오버구트/오버셀드 전략 (Dual Overbought/Oversold Strategy Based on RSI Indicator) 이라고 불립니다. 더 신뢰할 수 있는 거래 신호를 위해 오버구트 및 오버셀드 조건을 결정하기 위해 RSI 지표와 스톡 RSI 지표를 모두 사용합니다.

RSI 지표는 가격의 과잉 구매/ 과잉 판매 수준을 반영한다. RSI 70 이상은 과잉 구매 상태를 시사하고, 30 이하는 과잉 판매이다. 스톡 RSI 지표는 RSI 자체가 과잉 구매 또는 과잉 판매 구역에 진입했는지 여부를 보여줍니다.

거래의 논리는 다음과 같습니다.

RSI가 사용자 정의의 과잉 매수 라인을 넘을 때, 그것은 단위 거래를 고려하기 위한 과잉 매수 조건을 신호합니다.

RSI가 사용자 정의의 과잉 판매 라인 아래로 떨어지면, 그것은 긴 거래를 고려하기 위해 과잉 판매 조건을 표시합니다.

한편, 스톡 RSI는 해당 엔트리 신호를 확인하기 위해 과잉 구매 또는 과잉 판매 신호를 표시해야합니다.

이 이중 조건은 더 모호한 신호를 필터링하고 잘못된 파장을 피하기 위해 결합됩니다.

이 전략의 장점은 RSI의 다양한 파생 지표를 활용하여 더 정확한 과잉 구매 / 과잉 판매 범위를 판단하는 것입니다. 그러나 최적화 과잉 적합 위험도 주목해야합니다. 스톱 손실도 필수적입니다.

요약하자면, 지표 조합은 신중한 균형이 필요합니다. 합리적인 사용은 결과를 향상시킬 수 있지만 과도한 최적화 위험을 초래할 수도 있습니다. 거래자는 여전히 유연한 판단이 필요합니다.


/*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)

더 많은