period = 2라는 것은 RSI 계산에 사용할 기준일이 2일이라는 것으로, 이 값을 14로 바꾸면 14일을 기준으로 한 RSI(14)를 계산할 수 있습니다.
이어서 U = np.where(df['close'].diff(1) > 0, df['close'].diff(1), 0) 코드를 보겠습니다. np.where 함수의 사용법은 다음과 같습니다.
np.where(조건절, '조건이 참이면 선택되는 영역', '거짓이면 선택되는 영역')
금일 종가와 전 영업일 종가의 차이를 계산하는 df['close'].diff(1)이 0보다 크다는 것은 금일 종가가 전일 종가보다 높다는 것을 의미합니다. 이 경우 np.where의 조건절이 참이 되므로 np.where(df['close'].diff(1) > 0, df['close'].diff(1), 0) 결과는 df['close'].diff(1)이 되고 U 변수에 저장됩니다. 반대로 df['close'].diff(1)이 0보다 작다면 np.where의 조건절은 거짓이 되므로 U 변수에는 0이 저장됩니다.
계속해서 D = np.where(df['close'].diff(1) < 0, df['close'].diff(1) * (-1), 0) 코드를 살펴보겠습니다. 금일 종가와 전일 종가의 차이를 계산하는 df['close'].diff(1)이 0보다 작다는 것은 금일 종가가 전일 종가보다 하락했다는 것을 의미합니다. 이 경우 np.where의 조건절이 참이 되므로 np.where(df['close'].diff(1) < 0, df['close'].diff(1) * (-1), 0) 결과는 df['close'].diff(1) * (-1)이 되어 D 변수에 저장됩니다. 여기서 -1을 곱하는 이유는 음수인 df['close'].diff(1)을 양수로 만들기 위해서입니다. 반대로 df['close'].diff(1)이 0보다 크면 D 변수에는 0이 저장됩니다.