TA-Lib을 활용한 기술적 분석 (2/2)

2024. 5. 12. 22:43금융 데이터 분석

반응형

지난 포스팅에 이어서, 이번 포스팅에서도 많이 활용되는 주요지표를 정리하고 talib을 활용하여 어떻게 계산할 수 있는지에 대해서 다루어보도록 하겠습니다.

 

[RSI(Relative Strength Index)]

RSI는 지난번에도 다룬적이 있지만, 기술적분석에서 활발히 활용되는 지표로, 현재 주가의 움직임이 어떠한 속도로 움직이고 있는지를 측정하는 지표입니다. 이를 활용해서, 과매수가 이루어지고 있는지 과매도가 이루어지고 있는지 확인할 수 있습니다. 보통 RSI 70~80 이상을 과매수, RSI 20~30 이하를 과매도 상태로 판단하게 됩니다. 

RSI의 계산 수식은 아래와 같습니다.

여기서 RS는 특정기간에 평균 상승폭을 평균 하락폭으로 나눈 값입니다.

 

 

https://alphasquare.co.kr/home/insight/posts/303a3bf1-a9bf-4d25-a367-3e783e97f2c3?code=005930

 

수식에서 확인할 수 있듯이 RS는 증가폭이 커지면 커지게 되며, RSI도 음수부분의 값이 작아지게 되면서 RSI가 커지게 됩니다. 따라서 매수가 활발히 이루어질수록 주가는 크게 증가할것이고 이는 RSI의 증가를 이끌 것입니다.

import pandas as pd
import yfinance as yf
import talib
import matplotlib.pyplot as plt

df = yf.download("IBM", start="2020-01-01", end="2020-12-31", progress=False, auto_adjust=True)
df["RSI"] = talib.RSI(df["Close"], timeperiod = 20)

[MACD(Moving Average Convergence Divergence)]

MACD는 장단기 이동평균선의 차이를 계산한 것입니다. 일반적으로 장기 이동평균은 26일, 단기 이동평균은 12일을 활용합니다. 그렇기 때문에 MACD는 일반적으로 12일 단기이동평균에서 26일 장기이동평균을 차감한 것이고 MACD가 0보다 크다는 것은 최근 주가가 올라가는 추세를 보이는 것을 뜻하며, MACD가 0보다 작으면 최근 하락하는 추세를 나타냄을 뜻합니다.

보통 이동평균의 차이가 많이 벌어졌을 때 저점이나 고점을 형성하는 경우가 많기 때문에 MACD값이 최대가 되거나 최소가되는 지점을 찾는것이 중요하지만 MACD지표만 가지고는 힘든 경우가 많습니다. 따라서 시그널(K)을 많이 활용하며 시그널은 MACD의 K일 이동평균이며, 보통 9일을 많이 활용합니다.

일반적으로 MACD의 추세전환을 판단하기 위해 MACD곡선과 MACD 시그널(K)곡선이 만날때를 MACD의 추세변환점으로 보는 경우가 많습니다.

df["macd"], df["macd_signal"], df["macd_hist"] = talib.MACD(df["Close"], fastperiod = 12, slowperiod = 26, signalperiod = 9)

[AD(Accumulation/Distribuition)]

AD는 가격과 거래량을 동시에 고려하는 지표입니다. 가격움직이도 크고 거래량도 크다면 향후 해당 주식은 더 큰 가격움직임을 가질 확률이 높은 원리를 활용합니다. 수식은 아래와 같습니다.

CLV = (종가-저가)-(고가-종가)/(고가-저가)

AD = 거래량 x CVL

수식에서 보는것과 같이 거래량이 크고 가격움직이 크면 AD지표는 커집니다. 여기서 만약 저가와 종가의 차이가 크면 CLV는 양수가 될 것이고 고가와 종가의 차이가 크면 CLV는 음수가 될 것입니다.

이 말을 다시 생각해보면 저가와 종가의 차이가 크다는 것은 종가가 고가와 붙어있다는 의미이고 이는 CLV가 양수이면 매수압력이 크다는 것을 나타냅니다. 반대로 CLV가 음수이면 고가와 종가의 차이가 크고 종가가 저가에 붙어있다는 의미 이기 때문에 매도압력이 큼을 나타냅니다.

df["AD"] = talib.AD(df["High"], df["Low"],df["Close"],df["Volume"])

 

가볍게 정리해본 지표들보다 훨씬 무수한 지표들이 존재합니다. ta-lib에서 활용할 수 있는 함수리스트는 아래 경로에서 확인해보실 수 있습니다.

https://ta-lib.org/functions/

반응형

'금융 데이터 분석' 카테고리의 다른 글

TA-Lib을 활용한 기술적 분석 (1/2)  (0) 2024.04.23
시계열 데이터 Trend 감지  (0) 2024.04.01
Outlier 식별  (0) 2024.03.13
Portfolio optimization(포트폴리오 최적화)  (1) 2023.10.10
Sharpe ratio, CAPM  (0) 2023.10.09