본문 바로가기

정보/프로그래밍

[Python] FinanceDataReader 증권 데이터 수집 라이브러리 기초 사용법

오늘은 증권 데이터 수집 라이브러리

yfinance, pykrx, FinanceDataReader 중 pykrx에 대해 다뤄보도록 하겠습니다.

 

다른 증권 데이터 수집 라이브러리 설명을 보고 싶으면 아래 링크를 클릭하시면 됩니다.

 

yfinance : https://bigdata-doctrine.tistory.com/6

 

[Python] yfinance 증권 데이터 수집 라이브러리 기초 사용법

세 가지 증권 데이터 수집 라이브러리를 비교하고 사용법을 익히는 시간을 가져보려 합니다. 바로 yfinance, pykrx, FinanceDataReader입니다. 오늘은 그중에서 yfinance에 대해 다뤄보려 합니다. 파이썬에

bigdata-doctrine.tistory.com

pykrx : https://bigdata-doctrine.tistory.com/7

 

[Python] pykrx 증권 데이터 수집 라이브러리 기초 사용법

오늘은 증권 데이터 수집 라이브러리인 yfinance, pykrx, FinanceDataReader 라이브러리 중 pykrx에 대해 다뤄보도록 하겠습니다. 다른 증권 데이터 수집 라이브러리 설명을 보고 싶으면 아래 링크를 클릭

bigdata-doctrine.tistory.com

 

 

FinanceDataReader 특징, 사용법


FinanceDataReader는 다양한 웹사이트에서 크롤링하여 데이터를 수집합니다.

 

S&P500 기업 리스트는 위키피디아에서, 미국 거시경제 데이터(GDP, 통화량, 기준금리)는 FRED에서,

해외 주식은 Investing.com에서, 국내 주식은 krx에서, 나스닥 종목은 nasdaq.com에서 수집합니다.

 

이전에 소개드렸던 yfinance나 pykrx 라이브러리보다 훨씬 다양한 곳에서 크롤링하고 있습니다.

 

각 데이터를 수집하기 좋은 곳에서 크롤링을 함으로써 신뢰성을 높였습니다.

 

기본적인 사용법은 다음과 같습니다. 

pip install finance-datareader

import FinanceDataReader as fdr

# fdr.DataReader(주식 종목 [, 시작일(YYYY-mm-dd)] [,종료일(YYYY-mm-dd)])
# dfr.StockListing(거래소이름("SSE", "SZSE", ...))

SAM = fdr.DataReader("005930")
SAM2 = fdr.DataReader("005930", "2021-01-01", "2022-02-23")
SAM3 = fdr.DataReader("005930", "2021")

NYSE_df = fdr.StockListing('NYSE') # 뉴욕거래소
# 한국:"KRX", 뉴욕:"NYSE", 상해:"SSE" 등등
# 코스피:"KOSPI", 코스닥:"KOSDAQ", 코넥스:"KONEX", S&P500:"S&P500" 이런것들도 가능
  1. "DataReader"메서드는 주식 시세를 가져옵니다.
  2. "StockListing"메서드는 주식 종목들을 가져옵니다.

 

SAM의 출력결과는 다음과 같습니다.

SAM 출력 결과

삼성전자의 모든 기간의 Open, High, Low, Close, Volume, Change 데이터를 가져옵니다.

 

 

SAM2의 출력결과는 다음과 같습니다.

SAM2 출력 결과

삼성전자의 2021년 1월 1일부터 2022년 2월 23일까지의 데이터를 가져옵니다.

 

 

SAM3의 출력결과는 다음과 같습니다.

SAM3 출력 결과

삼성전자의 2021년부터 현재 날짜까지의 데이터를 가져옵니다.

 

 

NYSE_df의 출력결과는 다음과 같습니다.

NYSE_df 출력 결과

뉴욕 거래소의 모든 종목들의 심볼과 이름, 분야, 산업 분류 코드를 가져옵니다.

 

 

이처럼 FinanceDataReader는 국내, 해외의 다양한 데이터를 수집하는 것이 가능합니다.

 

이런 기본적인 기능뿐만 아니라 유용한 기능도 소개해드리도록 하겠습니다.

 

KRX_df = fdr.DataReader('000150', '2018-01-01', '2019-10-30', exchange='KRX') # 두산
SZSE_df = fdr.DataReader('000150', '2018-01-01', '2019-10-30', exchange='SZSE') # Yihua Healthcare Co Ltd

delisting_df = fdr.DataReader('036360', exchange='KRX-DELISTING')
  1. "exchange" 인자에 거래소 이름을 넣으면 여러 거래소에 같은 심볼이 있을 경우에 특정 거래소의 심볼 데이터를 가져옵니다. (기본값은 KRX이므로 "exchange"를 넣지 않으면 두산의 데이터를 가져옵니다)
  2. "exchange" 인자에 "KRX-DELISTING"을 넣으면 상장 폐지된 종목의 가격 데이터를 가져옵니다.

 

이와 같은 기능 외에도 채권, 상품 선물, 거시경제 데이터, 캔들 차트 등 다양한 기능을 지원하므로 

필요한 기능이 있으시다면 찾아서 사용하시길 바랍니다.

 


이번 시간에는 증권 데이터 라이브러리 중 FinanceDataReader에 대해 알아보았습니다.

 

FinanceDataReader 같은 경우 국내외 주식 데이터를 다른 라이브러리보다 정확하게 가져올 수 있을 뿐 아니라

다양한 기능을 지원한다는 특징이 있습니다.

 

국내 주식 데이터가 필요할 땐 pykrx를, 해외 주식 데이터가 필요할 땐 yfinance를 사용한다면

FinanceDataReader는 국내외 주식뿐 아니라 각종 다양한 데이터를 수집할 수 있기 때문에

FinanceDataReader 라이브러리 하나만으로도 증권 데이터 수집에는 큰 문제가 없으리라 생각합니다.

 

하지만 FinanceDataReader에 없는 기능을 사용하고 싶다면 pykrx나 yfinance를 사용하는 것도 좋겠죠.

 

지금까지 세 가지 증권 데이터 수집 라이브러리를 비교하고 사용법을 익혀보았습니다.

 

감사합니다.

 

 

FinanceDataReader 개발자 깃허브

 

GitHub - FinanceData/FinanceDataReader: Financial data reader

Financial data reader. Contribute to FinanceData/FinanceDataReader development by creating an account on GitHub.

github.com