python 파이썬으로 주식 차트 분석 / 기술적 지표 사용하기 : pandas-ta

반응형

2024.03.29 - [주가 예측 모델/관련 package] - python 파이썬으로 주식 차트 분석 / 기술적 지표 사용하기 : TA-Lib

 

python 파이썬으로 주식 차트 분석 / 기술적 지표 사용하기 : TA-Lib

이번엔 앞서 yfinance, finance-datareader, pykrx 에서 가져온 주식 가격 데이터에 기술적 분석 및 보조지표를 곁들일 수 있는 패키지를 소개한다. TA-Lib 이라는 패키지인데 기본은 C/C++로 만들어진 패키지

antsinvest.tistory.com

 

  지난번 TA-Lib에 이어 이번엔 pandas-ta를 설명하려고 한다. 기술적 지표를 만들어주는 패키지야 여럿이고 그중에서 왜 TA-Lib과 pandas-ta냐 하면 기능적으로는 pandas-ta가 가장 많은 지표를 제공하고 이 pandas-ta가 TA-Lib을 호출해 쓰기 때문. 때문에 pandas-ta를 설치하기 전에 TA-Lib을 먼저 설치해 주길 바란다.​

https://github.com/twopirllc/pandas-ta

 

GitHub - twopirllc/pandas-ta: Technical Analysis Indicators - Pandas TA is an easy to use Python 3 Pandas Extension with 150+ In

Technical Analysis Indicators - Pandas TA is an easy to use Python 3 Pandas Extension with 150+ Indicators - twopirllc/pandas-ta

github.com

  우선 설치부터 해보자.

pip install pandas_ta

  설치가 완료되면 간단히 이동평균선을 넣어보겠다. 이번에는 EMA(Exponential Moving Average)를 넣어보자.

import pandas_ta as ta
import FinanceDataReader as fdr

df = fdr.DataReader('005930', '20220720', '20240310')
df['EMA14'] = ta.ema(df['Close'],14)
df.dropna(inplace=True)

print(df)

pandas-ta EMA14 추가 결과

  재밌는 것은 이 pandas-ta에는 별의별 이동평균을 긋는 방법이 다 있다는 것이다. 이런 것들 하나씩 확인만 해도 하루가 뚝딱 간다.

 

  pandas-ta가 TA-Lib보다 편한 점 또 한 가지는, 캔들 스틱 패턴을 추가할 때 일괄로 한방에 추가할 수 있다는 점. 단, 이 경우에 return을 dataframe형태로 하기 때문에 별도의 dataframe에 저장했다가 원본 OLHCV dataframe과 concat 해줘야 한다. 이때 axis가 1일 때는 열로 합치는 거고 0일 때는 열로 합치는 거다.

import pandas as pd
import pandas_ta as ta
import FinanceDataReader as fdr

df = fdr.DataReader('005930', '20220720', '20240310')
cdl_df = df.ta.cdl_pattern(name="all")
df = pd.concat([df, cdl_df], axis=1)
df.dropna(inplace=True)

print(df)

pandas-ta 캔들 분석 지표 추가 결과

  이렇게 전체 추가 외에도 뽑고 싶은 지표만 콕콕 찝어서 한 번에 뽑을 수도 있다.

cdl_df = df.ta.cdl_pattern(name=["doji", "inside"])
cdl_df.dropna(inplace=True)

print(cdl_df)

pandas-ta doji, inside 추가 결과

  이 외에도 MACD, RSI, 일목균형, 스토캐스틱, 블린저밴드, 각종 오실레이터 등 증권사에서 제공하는 차팅 툴을 모두 지원하며, 이를 세부적으로 조정할 수도 있다.

  추가로 표준편차니, Z-Score니 하는 통계기능과 간단한 전략 기능도 제공하는데, 어차피 백테스트/성과평과 툴을 사용할 예정이므로 넘어간다.

반응형