주식코딩

Yahoo finance를 사용해 주식 데이터 받아오기

__파이썬__ 2022. 7. 24. 20:27

요즘 꽤 많은 증권사에서 경쟁적으로 프로그램을 통해 주식 관련 데이터를 받아오는 API들을 공개하고 있다. 다만, 아직 우리나라 증권사에서 공개된 API들은 windows 환경에서만 실행할 수 있는 것으로 알고 있다. 

안타깝게도 윈도우 PC를 갖고있지 않아서, 최대한 맥, 우분투에서도 사용 가능한 API를 찾다가 yahoo finance에서 제공되(었)던 yfinance API를 사용해 보았다. 

얼핏 서핑하면서 찾은 내용은 원래는 yahoo finance에서 지원했다가 끊었다고 하던데 뭐가 맞는지는 모르겠다. 

기본적으로 다음 링크를 참고하였다 

yfinance · PyPI

 

yfinance

Download market data from Yahoo! Finance API

pypi.org

설치는 간단하다. 위의 링크에 나온 것처럼 pip install을 해주면 된다. 

pip install yfinance

이후에 yfinance를 import해주면 관련 내용을 사용할 수 있다. 

import yfinance as yf

기본적으로 Ticker라는 메소드를 통해서 내가 원하는 주식 종목을 ticker로 선택하게 하면 해당 object는 이제 내가 선택한 ticker에 대한 모든 내용을 불러올 수 있게 된다. 

예를 들어, apple (AAPL) 주식 종목에 대한 object를 만들고 싶으면, 

apple = yf.Ticker("AAPL")

라고 작성하면 된다. 그 이후에는 위에서 소개한 링크에 나와있는 예제와 함수들을 참고해서 필요한 함수를 call하여 필요한 정보를 불러오면 된다. 

예를 들어, 위의 apple 주식에 대해서 financials를 불러오면,

apple.financials

apple.financials의 결과

이와 같이, 최근 4년에 대한 재무 정보가 나온다. 

 

그렇다면, 한국 주식은 이 API를 사용해서 불러올 수 없는 것일까? 

한국 주식의 경우도 yahoo finance에 들어가면 나오므로, 다 불러올 수 있다. 다만, ticker가 미국과는 조금 다르다. 

한국의 경우에는 종목이 6자리 숫자로 구성되어 있다. 예를 들어 삼성전자의 경우에는 005930이다. yahoo finance에서 이 ticker를 사용하기 위해서는 6자리 숫자 외에 한 가지가 더 필요한데, 바로 코스피/코스닥 구분자이다. 

예를 들어 삼성전자의 경우 코스피에 속해있으므로 .KS를 뒤에 붙인다. 그러면 최종적으로 삼성전자에 대한 yahoo finance 코드는 다음과 같다.

samsung = yf.Ticker("005930.KS")

만약 코스닥에 속한 종목의 경우에는 .KQ를 붙인다. 

 

위를 잘 활용하면 자동 매매는 못하지만 좋은 분석 툴로 사용할 수 있을 것이다.