파이썬 주식정보 분석 (2) 파이썬 FinancedataReader 사용 및 설치 방법, 기본 메서드, 특징과 한계점

이번 포스팅은 파이썬을 통한 주식정보 분석에 대한 두번째 글로 파이썬 FinancedataReader 라이브러리 사용법 및 특징과 한계점에 대해 알아보려고 합니다. 파이썬 FinancedataReader 설치 방법과 주요 매서드 예시 코드를 알아보고 장단점에 대해서 함께 알아볼 예정입니다.

앞선 포스팅에서 파이썬 yfinance 라이브러리를 사용하여 주가 데이터를 가져오는 방법에 대해 알아보았습니다. yfinance의 경우 한국 주식 데이터의 정확성과 안정성이 떨어질 수 있습니다. 예를 들어, 특정 일자의 데이터가 누락되거나 수정 종가가 틀린 경우가 있습니다.

반면, 파이썬 FinanceDataReader 라이브러리는 한국 거래소에서 직접 데이터를 가져오기 때문에 한국 주식 데이터의 정확성이 높습니다. 따라서, 두 라이브러리를 함께 사용하면 데이터의 정확성과 안정성을 높일 수 있습니다.

이번 포스팅에서는 파이썬 FinanceDataReader의 기본적인 특징과 한계점에 대해 알아보고 파이썬 FinanceDataReader설치 및 사용법에 대해 예시 코드와 함께 정리해볼 예정입니다.


파이썬 FinanceDataReader 특징

파이썬 FinanceDataReader 라이브러리의 경우 아래와 같은 특징이 있습니다.

  1. 다양한 금융 데이터 지원: 국내 주식(코스피, 코스닥), 미국 주식, 가상화폐, 선물, 옵션 등 다양한 금융 데이터를 지원
  2. 종목 코드와 종목명 쉽게 가져오기: 한국 시장의 종목 코드와 종목명을 쉽게 가져올 수 있음
  3. 간편한 설치와 사용: pip 명령어를 통해 쉽게 설치할 수 있으며, 사용법도 간단함


FinanceDataReader에서 가져올 수 있는 데이터

파이썬의 FinanceDataReader 라이브러리를 사용하면, 다양한 주식과 금융 데이터를 손쉽게 가져올 수 있습니다. 이 라이브러리를 통해 얻을 수 있는 주요 데이터는 다음과 같습니다.

  1. 한국거래소(KRX) 및 코넥스(비상장) 주식종목 리스트: KRX에 상장된 모든 종목과 코넥스에 있는 종목을 가져올 수 있습니다. 예시: ‘KRX’, ‘KOSPI’, ‘KODAQ’, ‘KONEX’
  2. 글로벌 주식종목 리스트: 미국과 일본, 중국, 홍콩 등 주요 거래소에 상장된 종목 리스트를 가져올 수 있습니다. 예시: ‘NASDAQ’, ‘NYSE’, ‘AMEX’, ‘S&P500’, ‘SSE'(상해), ‘SZSE'(심천), ‘HKEX'(홍콩), ‘TSE'(도쿄)
  3. 한국거래소 상장폐지 및 관리종목 리스트: 상장폐지된 종목과 관리종목의 리스트를 확인할 수 있습니다. 예시: ‘KRX-DELISTING'(상장폐지종목), ‘KRX-ADMINISTRATIVE'(관리종목)
  4. 한국, 미국, 일본 ETF 리스트: 각 국가의 ETF 종목 리스트를 가져올 수 있습니다. 예시: ‘KR’, ‘US’, ‘JP’
  5. 개별 주가 정보: 국내외 주식 종목의 개별 주가를 조회할 수 있습니다. 예시: ‘005930’(삼성전자), ‘091990’(셀트리온헬스케어), ‘AAPL’, ‘AMZN’, ‘GOOG’
  6. 주요 지수 정보: 주요 국가의 주가 지수를 확인할 수 있습니다. 예시: ‘KS11′(코스피지수), ‘KQ11′(코스닥지수), ‘DJI'(다우존스지수), ‘IXIC'(나스닥지수), ‘US500′(S&P 500지수)
  7. 환율 정보: 다양한 통화간의 환율 정보를 일자별로 확인할 수 있습니다. 예시: ‘USD/KRX’, ‘USD/EUR’, ‘CNY/KRW’
  8. 가상화폐 가격 데이터: 주요 거래소의 가상화폐 가격 정보를 조회할 수 있습니다. 예시: ‘BTC/USD'(Bitfinex), ‘BTC/KRW'(Bithumb)

FinanceDataReader 한계점

다만 개인적인 의견이지만 아래와 같은 한계점도 존재합니다. 그래서 앞서 소개한 yfinance나 이어서 소개할 pykrx 등의 라이브러리를 함께 사용하게 되는 이유 입니다.

  1. 데이터 갱신 지연: 거래소에서 제공하는 데이터를 기반으로 하지만, 일부 지연된 데이터가 제공될 수 있음
  2. 데이터 정확성: 대부분의 데이터는 정확하게 제공되지만, 일부 데이터가 부정확하거나 누락될 수 있습니다. 따라서 데이터를 사용하기 전에 검증 과정이 필요합니다.

파이썬 FinanceDataReader 사용법

파이썬 FinanceDataReader는 앞서 소개한 바와 같이 금융 데이터를 쉽게 가져올 수 있는 파이썬 라이브러리로, 다양한 금융 시장 데이터를 지원하며, 한국 시장에 대한 데이터도 포함되어 있습니다.


FinanceDataReader 설치 방법

FinanceDataReader를 설치하려면 다음과 같은 명령어를 사용합니다.

pip install finance-datareader

설치가 완료되면, 파이썬 스크립트에서 FinanceDataReader를 불러와 사용할 수 있습니다.

import FinanceDataReader as fdr

FinanceDataReader 주요 메서드와 사용법

파이썬 FinanceDataReader 라이브러리의 주요 메서드와 사용법을 소개합니다.

1. DataReader 메서드

DataReader 메서드를 사용하여 주가 데이터를 가져옵니다. 사용법은 다음과 같습니다.

import FinanceDataReader as fdr

# 종목코드, 시작날짜, 종료날짜를 입력합니다.
# 여기서는 삼성전자(005930)의 2022년 1월 1일부터 2022년 12월 31일까지의 주가 데이터를 가져옵니다.
data = fdr.DataReader('005930', '2022-01-01', '2022-12-31')
print(data)
파이썬 FinanceDataReader

2. StockListing 메서드

StockListing 메서드를 사용하여 코스피, 코스닥 종목 코드와 종목명을 가져옵니다. 사용법은 다음과 같습니다.

import FinanceDataReader as fdr

# 코스피 종목 코드와 종목명 가져오기
kospi_list = fdr.StockListing('KOSPI')
print(kospi_list)

# 코스닥 종목 코드와 종목명 가져오기
kosdaq_list = fdr.StockListing('KOSDAQ')
print(kosdaq_list)
파이썬 FinanceDataReader

이 외에도 FinanceDataReader는 다양한 금융 데이터를 수집할 수 있는 메서드들을 제공하므로, 필요한 데이터에 따라 적절한 메서드를 사용하면 됩니다. 자세한 사용법은 공식 홈페이지-사용자 가이드를 참고할 수 있습니다.


FinanceDataReader 예시 코드

위의 주요 메서드에 대한 설명과 더불어 아래와 같이 예시 코드도 함께 정리해보았습니다.

FinanceDataReader를 이용하여 코스피와 코스닥 종목의 기본 정보를 가져올 수 있습니다. 아래의 코드를 사용하여 종목 목록을 불러옵니다.

# 코스피 종목 목록 가져오기
kospi_list = fdr.StockListing('KOSPI')
print(kospi_list.head())

# 코스닥 종목 목록 가져오기
kosdaq_list = fdr.StockListing('KOSDAQ')
print(kosdaq_list.head())
파이썬 FinanceDataReader

또한 아래와 같은 예시 코드를 통해 국내 주식 시장에 대한 기본 정보(시가총액, 거래량 등) 가져오기가 가능합니다. 아래의 코드를 이용하여 코스피와 코스닥 지수에 대한 기본 정보를 조회할 수 있습니다.

# 코스피 지수 정보 가져오기
kospi_index = fdr.DataReader('KS11', '2022-01-01')
print(kospi_index.head())

# 코스닥 지수 정보 가져오기
kosdaq_index = fdr.DataReader('KQ11', '2022-01-01')
print(kosdaq_index.head())
파이썬 FinanceDataReader

위의 코드를 실행하면, 코스피와 코스닥 지수의 일별 시가총액, 거래량, 변동률 등의 기본 정보를 가져올 수 있습니다.


yfinance와 FinanceDataReader

개인적으로 yfinance와 FinanceDataReader를 함께 사용하는 경우가 많은데요, 이러한 주된 이유는 두 라이브러리가 각각 장단점을 보완하기 때문입니다. 이렇게 함께 사용하면 국내와 해외 주식 데이터에 대한 접근성이 높아지고, 필요한 데이터를 더 효과적으로 가져올 수 있습니다.

  1. 데이터 출처의 차이: yfinance는 주로 Yahoo Finance에서 데이터를 가져오는 반면, FinanceDataReader는 한국 주식 데이터에 대해 한국 거래소(KRX)에서 데이터를 가져옵니다. 이로 인해 두 라이브러리를 함께 사용하면 국내와 해외 주식 데이터를 모두 취급할 수 있게 됩니다.
  2. 데이터 정확성과 안정성: yfinance의 경우 한국 주식 데이터의 정확성과 안정성이 떨어질 수 있습니다. 예를 들어, 특정 일자의 데이터가 누락되거나 수정 종가가 틀린 경우가 있습니다. 반면, FinanceDataReader는 한국 거래소에서 직접 데이터를 가져오기 때문에 한국 주식 데이터의 정확성이 높습니다. 따라서, 두 라이브러리를 함께 사용하면 데이터의 정확성과 안정성을 높일 수 있습니다.
  3. 데이터 종류의 보완: 두 라이브러리는 서로 다른 종류의 데이터를 제공합니다. yfinance는 주가 데이터 외에도 재무제표, 주주 정보 등 다양한 데이터를 제공하는 반면, FinanceDataReader는 주가 데이터와 종목 코드, 시가총액 등 한정된 데이터를 제공합니다. 이런 차이점 때문에 필요한 데이터 종류에 따라 두 라이브러리를 혼합하여 사용하는 것이 유리할 수 있습니다.

yfinance와 FinanceDataReader를 함께 사용하면 국내와 해외 주식 데이터에 대한 접근성을 높이고, 정확성과 안정성을 유지하면서 다양한 종류의 데이터를 효과적으로 가져올 수 있습니다.

다음 포스팅에서는 국내 시장 주식 데이터 분석에 많이 사용되는 또 다른 라이브러리인 pykrx에 대해서도 정리해볼 예정입니다.


앞선 포스팅에서 정리한 파이썬 프로그래밍/코딩 관련 글은 아래와 같습니다.

[파이썬 x VSCODE 기초] ① 아나콘다 설치 및 가상환경 설정 3분 끝내기

파이썬 웹자동화 (2) 웹 요소 선택 : 셀레니움 find_element 사용법

Leave a Comment