스토캐스틱 RSI, 파이썬 바이낸스 API로 시계열 데이터 분석

주식이나 코인 가격의 시계열 데이터로부터 과매수 상태인지, 과매도 상태인지, 강세인지, 약세인지를 알아낼 수 있는 지표 4개를 정리한 적이 있습니다. 각각 스토캐스틱 오실레이터, RSI, 현금흐름지수, 일중강도지수였는데요. 이번 포스팅에서는 여기에 스토캐스틱 RSI를 하나 더 추가해보겠습니다.

 

 


글의 순서

스토캐스틱 RSI
스토캐스틱 RSI 계산 방법
스토캐스틱 RSI로 과매수, 과매도 상태를 확인하는 법
스토캐스틱 RSI 장점
파이썬 코드 : 스토캐스틱 RSI


스토캐스틱 RSI

스토캐스틱 RSI (Stochastic RSI)는 주식이나 코인 등, 금융 자산의 기술적 분석에 사용되는 지표로, 상대강도지수(RSI)의 값을 스토캐스틱 오실레이터로 변환한 것입니다. RSI와 스토캐스틱 오실레이터의 특성을 결합한 만큼 보다 시장에 보다 민감하게 반응합니다.

스토캐스틱 RSI는 스토캐스틱 오실레이터나 RSI처럼 특정 기간 동안 자산의 과매수(overbought) 또는 과매도(oversold) 상태를 보여줍니다. 각각의 지표를 복습해보겠습니다.

(1) 스토캐스틱 오실레이터(Stochastic Oscillator)

스토캐스틱 오실레이터는 주어진 기간 동안의 최고가와 최저가 대비 현재 가격의 위치를 나타내는 지표입니다. %K와 %D 두 가지 선으로 구성되며, %K는 현재 가격의 상대적 위치를, %D는 %K의 이동평균을 나타냅니다.

(2) 상대강도지수 (RSI, Relative Strength Index)

RSI는 특정 기간 동안 주가가 전일 가격에 비해 상승했는지, 하락했는지의 추세를 0 ~ 100의 퍼센트 수치로 나타낸 지표입니다. RSI는 현재가 과매수 상태인지, 과매도 상태인지를 알려줍니다. 보통 RSI 퍼센트 수치로는 30이하면 과매도, 70 이상이면 과매수로 해석합니다.

 

 


스토캐스틱 RSI 계산 방법

스토캐스틱 RSI는 상대강도지수(RSI)의 값을 스토캐스틱 오실레이터를 이용하여 변환한 것입니다. 그러니까 스토캐스틱 오실레이터 공식에 현재가 대신 RSI를 대입하여 구합니다. 지금부터는 기간을 14일 동안으로 정하고 RSI를 구한다고 가정해보겠습니다.

RSI 값을 스토캐스틱 오실레이터에 적용합니다.
stochastic RSI = (RSI – RSI_min) / (RSI_max – RSI_min)

여기서, RSI_min은 14일이라는 기간 동안의 RSI 최소값이고 RSI_max는 14일이라는 기간 동안의 RSI 최대값입니다.

▶%K
m일 동안 stochastic RSI(%)의 평균

▶%D
t일 동안 %K의 평균


스토캐스틱 RSI로 과매수, 과매도 상태를 확인하는 법

과매수(overbought) 상태 : 스토캐스틱 RSI가 0.8 이상이면 자산이 과매수 상태에 있을 수 있음을 나타냅니다. 과매수로 자산이 과도하게 상승한 상태를 의미하며, 매도 신호로 해석될 수 있습니다.

과매도(oversold) 상태 : 스토캐스틱 RSI가 0.2 이하이면 자산이 과매도 상태에 있을 수 있음을 나타냅니다. 과매도로 자산이 과도하게 하락한 상태를 의미하며, 매수 신호로 해석될 수 있습니다.

중립 상태 : 스토캐스틱 RSI가 0.5 근처에 있으면 자산의 가격이 안정된 상태에 있음을 의미합니다. 중립 상태라고 표현할 수도 있습니다.


스토캐스틱 RSI 장점

스토캐스틱 RSI는 RSI보다 더 민감하게 반응하여 단기적인 저점과 고점을 판단할 때 유용합니다. 결과적으로 빠르게 매수 및 매도 신호를 포착할 수 있기 때문에 트레이더들도 많이 사용하고 있습니다.


파이썬 코드 : 스토캐스틱 RSI

스토캐스틱 RSI를 구하는 방법을 아래 코드의 calculate_stochastic_RSI 함수에 구현하였습니다. 스토캐스틱 RSI는 스토캐스틱 오실레이터에서 현재가 대신 RSI를 대입하여 구합니다. 그래서 가장 먼저 해야할 일이 RSI를 구하는 일입니다. calculate_stochastic_RSI 함수의 첫 번째 줄인 df[‘RSI’] = calculate_rsi(df, period)가 바로 RSI 계산 함수로부터 RSI를 구하는 루틴입니다.

판다스의 rolling 함수와 min, max 함수로 스토캐스틱 RSI를 간단하게 구할 수 있습니다. rolling 함수를 쓸 때, min_periods=1 이라고 지정하면, 1이라는 개수만 만족해도 연산을 수행합니다. 데이터 개수가 윈도우 크기보다 적더라도 연산을 수행하라는 의미입니다.

print(df.tail(5)) 부분을 유심히 봐주시기 바랍니다.


마치며 …

이번 포스팅에서는 시계열 데이터로부터 과매수 상태인지, 과매도 상태인지, 강세인지, 약세인지를 알아낼 수 있는 지표인 스토캐스틱 RSI에 대해 알아보았습니다. 이로써 과매수 상태인지, 과매도 상태인지, 강세인지, 약세인지를 알아낼 수 있는 시계열 데이터 분석 지표를 아래와 같이 하나 더 추가하였습니다.

(1) 스토캐스틱 오실레이터 (Stochastic Oscillator) : Slow %K, Slow %D
(2) 상대강도지수 (RSI, Relative Strength Index)
(3) 현금흐름지수 (MFI, Money Flow Index)
(4) 일중 강도 (Intraday Intensity, II)
(5) 스토캐스틱 RSI (Stochastic RSI) : Slow %K, Slow %D

스토캐스틱RSI는 상대강도지수(RSI) 값을 스토캐스틱 오실레이터로 변환한 것입니다. RSI와 스토캐스틱 오실레이터의 특성을 결합한 만큼 보다 시장에 보다 민감하게 반응합니다. 민감하게 반응하는 만큼 빠르게 매수 및 매도 신호를 포착할 수 있습니다.

 

 

함께 참고하면 좋은 글
파이썬 바이낸스 API로 시계열 데이터를 가져오는 파이썬 프로그래밍
시계열 데이터 분석 : 과매수, 과매도, 강세, 약세
시계열 데이터 분석 : 추세분석 지표 6가지


참고자료

▶ Investopedia, Stochastic RSI -StochRSI Definition

Leave a Comment