/ PROGRAMING, PYTHON

FinanceDataReader

FinanceDataReader

Python에서 주가 정보를 얻을 수 있는 라이브러리입니다.

함수 정리

입력값으로 해당 주식의 거래

  • FinanceDataReader.StockListing(market)
    • market 단축코드를 넣으면 해당 시장에 상장된 정보를 가져옵니다.
      • 한국
        • KRX : KRX 종목 전체
        • KOSPI : KOSPI 종목
        • KOSDAQ : KOSDAQ 종목
        • KONEX : KONEX 종목
      • 미국
        • NASDAQ : NASDAQ 종목
        • NYSE : 뉴욕 증권거래소 종목
        • AMEX : AMEX 종목
        • SP500 : S&P 500 종목
  • FinanceDataReader.DataReader(symbol, start_yyyy)
  • FinanceDataReader.DataReader(symbol, start_y_m_d, end_y_m_d)
    • 해당 종목의 원하는 범위의 가격 데이터를 수집합니다.

라이브러리 설치 및 import

# 설치
!pip install -U finance-datareader
# 차트 설정
%matplotlib inline
import matplotlib.pyplot as plt

plt.rcParams["font.family"] = 'HYHeadLine-Medium'
plt.rcParams["figure.figsize"] = (14,4)
plt.rcParams['lines.linewidth'] = 2
plt.rcParams["axes.grid"] = True

# FinanceDataReader 라이브러리 fdr로 설정
import FinanceDataReader as fdr
print(fdr.__version__)
0.9.50

한국거래소 상장종목 전체 KRX

df_krx = fdr.StockListing('KRX') 
print(f"한국거래소 상장종목 전체 KRX : {len(df_krx)}")
한국거래소 상장종목 전체 KRX : 2705
display(df_krx.head())
출력 보기(클릭)
Code ISU_CD Name Market Dept Close ChangeCode Changes ChagesRatio Open High Low Volume Amount Marcap Stocks MarketId
0 005930 KR7005930003 삼성전자 KOSPI 60700 2 -800 -1.30 61400 61400 60700 11445731 697231172000 362962779040000 5969782550 STK
1 373220 KR7373220003 LG에너지솔루션 KOSPI 566000 1 19000 3.47 548000 570000 543000 829918 465315655000 132444000000000 234000000 STK
2 000660 KR7000660001 SK하이닉스 KOSPI 88900 2 -800 -0.89 89700 90000 88800 1605515 143506111000 64719410248500 728002365 STK
3 207940 KR7207940008 삼성바이오로직스 KOSPI 794000 2 -7000 -0.87 801000 804000 792000 50075 39926732000 56440982000000 71174000 STK
4 006400 KR7006400006 삼성SDI KOSPI 793000 1 12000 1.54 779000 801000 768000 579283 456986290868 54461507760000 68764530 STK

S&P 500 종목 전체 S&P500

df_spx = fdr.StockListing('S&P500')

print(f"S&P 500 종목 전체 S&P500 : {len(df_spx)}")
S&P 500 종목 전체 S&P500 : 503
display(df_spx.head())
출력 보기(클릭)
Symbol Name Sector Industry
0 MMM 3M Industrials Industrial Conglomerates
1 AOS A. O. Smith Industrials Building Products
2 ABT Abbott Health Care Health Care Equipment
3 ABBV AbbVie Health Care Pharmaceuticals
4 ACN Accenture Information Technology IT Consulting & Other Services

신라젠, 2021 년

df = fdr.DataReader('068270', '2021')
display(df.head(20))
출력 보기(클릭)
Open High Low Close Volume Change
Date
2021-01-04 332320 335157 324285 328540 2122278 -0.032035
2021-01-05 332320 336575 326176 335158 1328247 0.020144
2021-01-06 337520 339884 334211 334213 1033942 -0.002820
2021-01-07 335629 339884 331848 337995 1011751 0.011316
2021-01-08 339884 349812 336575 346976 1819183 0.026571
2021-01-11 356429 365411 346975 353594 2776258 0.019073
2021-01-12 359738 365883 349812 363048 2618009 0.026737
2021-01-13 359265 368720 354538 360685 2203856 -0.006509
2021-01-14 346030 353593 331848 333267 3623245 -0.076016
2021-01-15 329957 330429 307739 311049 3594398 -0.066667
2021-01-18 309630 327121 296867 296867 2751296 -0.045594
2021-01-19 291194 299703 280322 295450 3490677 -0.004773
2021-01-20 298285 306322 291194 294032 1475955 -0.004799
2021-01-21 296867 300176 289776 294977 1146479 0.003214
2021-01-22 295448 298285 291194 293086 883444 -0.006411
2021-01-25 294503 304431 294030 303486 995440 0.035484
2021-01-26 309630 316721 303958 304904 1328530 0.004672
2021-01-27 308212 314830 300649 311049 1072477 0.020154
2021-01-28 302067 319557 298758 316250 1574846 0.016721
2021-01-29 316248 320503 304903 306322 1139059 -0.031393
df = fdr.DataReader('068270', '2017')
df['Close'].plot()
plt.show()

애플(AAPL), 2018-01-01 ~ 2018-05-30

df = fdr.DataReader('AAPL', '2018-01-01', '2018-05-30')
display(df.tail())
출력 보기(클릭)
Open High Low Close Adj Close Volume
Date
2018-05-22 47.095001 47.220001 46.695000 46.790001 44.777905 60962800
2018-05-23 46.587502 47.125000 46.439999 47.090000 45.064995 80233600
2018-05-24 47.192501 47.209999 46.552502 47.037498 45.014755 92936000
2018-05-25 47.057499 47.412498 46.912498 47.145000 45.117626 69844000
2018-05-29 46.900002 47.187500 46.717499 46.974998 44.954941 90056400

애플(AAPL), 2017년~

df = fdr.DataReader('AAPL', '2017')
df['Close'].plot()
plt.show()

활용

주가 정보를 간단한 방법으로 얻을 수 있어서 간단한 주가 변동등을 다른 자료들과 같이 사용할 수 있을 것 같습니다.
추가로 주가변동을 예측해보는 프로젝트를 진행해보겠습니다.