FinanceDataReader
FinanceDataReader
Python에서 주가 정보를 얻을 수 있는 라이브러리입니다.
함수 정리
입력값으로 해당 주식의 거래
- FinanceDataReader.StockListing(market)
- market 단축코드를 넣으면 해당 시장에 상장된 정보를 가져옵니다.
- 한국
- KRX : KRX 종목 전체
- KOSPI : KOSPI 종목
- KOSDAQ : KOSDAQ 종목
- KONEX : KONEX 종목
- 미국
- NASDAQ : NASDAQ 종목
- NYSE : 뉴욕 증권거래소 종목
- AMEX : AMEX 종목
- SP500 : S&P 500 종목
- 한국
- market 단축코드를 넣으면 해당 시장에 상장된 정보를 가져옵니다.
- 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()
활용
주가 정보를 간단한 방법으로 얻을 수 있어서 간단한 주가 변동등을 다른 자료들과 같이 사용할 수 있을 것 같습니다.
추가로 주가변동을 예측해보는 프로젝트를 진행해보겠습니다.