python 파이썬으로 주식/주가 정보 가져오기 : yfinance(Yahoo! Finance)

반응형

  아마 python을 이용해서 주가 정보를 가져올 때 가장 많이 이용하는 패키지가 아닌가 싶다. yahoo finance 데이터를 api를 통해 가져오는 데 사용하기 편해서 국내외에서 많이 사용하는 패키지.

https://github.com/ranaroussi/yfinance

 

GitHub - ranaroussi/yfinance: Download market data from Yahoo! Finance's API

Download market data from Yahoo! Finance's API. Contribute to ranaroussi/yfinance development by creating an account on GitHub.

github.com

 

  단점이라 하면 api를 콜 할 때 가끔 값을 못 받아오는 경우가 있는데, yfinance 측에서는 지네 잘못이 아니라 야후 정책이라며 모른다고 하는데 딱히 방법은 없는 듯하다. 유로로 api 키를 받아 사용하던가 해야 하나 봄. 또 국내 주식은 안 나오는 종목이 많다. 그럼에도 불구하고 미국 주식이나 암호화폐 관련해 프로젝트를 할 경우에는 yfinance만큼 사용자가 많고 편하게 쓸 수 있는 패키지가 없다.

  설치방법은

pip install yfinance

  설치완료 후 애플(AAPL)의 종목 정보를 가져와 뿌려보겠다.

  Ticker(종목)으로 오브젝트에 지정을 해 노면, 이걸로 종목정보, 시세, 재무제표 다 호출할 수 있다.

import yfinance as yf

ticker = yf.Ticker('AAPL')
print(ticker.info)

yfinance로 종목 기본 정보 출력

  하면 뭔가 나오는데 알아보기 힘들다. pretty print를 설치해서 보기 좋게 출력해 보자.

pip install pprint
import yfinance as yf
import pprint

ticker = yf.Ticker('AAPL')
pprint.pprint(ticker.info)

pprint로 yfinance로 종목 기본 정보를 보기 좋게 출력

  pprint를 사용해 출력하면 보기 좋게 출력된다. 위 정보는 yahoo finance에 있는 정보가 그대로 나온다. 내용을 보다 보면 회사 기본정보나 52주 최저/최고가, PER, PBR, PSR 등 기본적인 지표뿐만 아니라, trailing PER, Forward PER, EV/EVITDA 등 직접 계산하기 힘든 정보도 제공되는 걸 볼 수 있다.

  이제 10일 치 애플의 가격정보를 가져와보자

ticker = yf.Ticker('AAPL')
print(ticker.history(period='10d'))

yfinance로 종목 가격 정보 출력

  가격정보는 dataframe 형태로 리턴 받기 때문에 print로만 출력해도 보기 좋게 나온다. 기본적으로 OHLCV 형태로 제공되며 이외에 배당이나 분할 정보도 같이 나온다.

  이외 쓸만한 데이터는 재무제표 데이턴데, 이건 연간, 분기로 제공되나 야후 fiancne에서 종목 - financials 탭에 나오는 기간까지만 나온다. 예를 들어 4년 치 연간 재무제표, 5개 분기 재무제표.

ticker = yf.Ticker('AAPL')
print(ticker.income_stmt)

yfinance로 종목 재무제표 정보 출력

  손익계산서를 print 해보았는데, 우리가 K-전자공시 dart에 들어가서 보는 것과 역시 차이가 있다. 요약 손익계산서에 EBITDA, EPS에 추가적인 데이터가 포함돼서 나온다고 보면 된다. 이렇게 되면 소위 퀀트 투자를 한다고 했을 때의 필요한 데이터를 엄청 손쉽게 뽑을 수 있는데 재무제표를 받아서 순이익을 찾고, 당기 발행주식수로 나누고, 이걸 모수로 현재가를 나누면 나오는 PER을 거의 떠먹여 주는 수준으로 구할 수 있다.

  이 외에도 시장 컨센서스, 매수/매도 의견도 볼 수 있다.

ticker = yf.Ticker('AAPL')
print(ticker.recommendations)

yfinance로 종목 컨센서스 정보 출력

  그 외에도, 배당이력, 주요 주주, 종목 뉴스, 종목 옵션 리스트 등을 확인할 수 있다. 미국 주식을 하는 사람들이 야후 파이낸스를 많이 참조하는데, 야후 파이낸스에서 제공하는 데이터를 그대로 파이썬으로 받아볼 수 있기 때문에 여러모로 많이 사용되는 패키지.

반응형