FinanceDataReader에 의한 금융자료 호출
파이썬 라이브러리인 FinanceDataReader를 사용하여 웹을 통해 다양한 금융데이터를 호출하여 사용할 수 있으며 이 데이터의 기본 구조는 pandas.DataFrame 구조로서 pandas의 여러 메소드나 함수를 적용하여 데이터를 조정할 수 있습니다.
FinanceDataReader 라이브러리를 사용하여 국내외 다양한 자료를 입수할 수 있습니다.
이 모듈은 두개의 함수를 가지고 있습니다.
- StockListing(market):
- market에 포함된 종목의 코드, 이름, 개요 등을 호출
- RX : KRX 종목 전체
- OSPI : KOSPI 종목
- OSDAQ : KOSDAQ 종목
- ONEX : KONEX 종목
- ASDAQ : 나스닥 종목
- NYSE : 뉴욕증권거래소 종목
- P500 : S&P500 종목
- DataReader(symbol, start=None, end=None, country=None)
- 코드(symbol)에 대응하는 가격 데이터를 호출
- 시작 날짜만 입력하면 현재까지의 자료를 호출
import numpy as np import pandas as pd import FinanceDataReader as fdr import matplotlib.pyplot as plt
df_krx=fdr.StockListing('KRX') df_krx.head(2)
Code | ISU_CD | Name | … | |
---|---|---|---|---|
0 | 005930 | KR7005930003 | 삼성전자 | … |
1 | 000660 | KR7000660001 | SK하이닉스 | … |
fdr.StockListing('KOSPI').iloc[:,[0, 2]]
Code | Name | |
---|---|---|
0 | 005930 | 삼성전자 |
1 | 000660 | SK하이닉스 |
2 | 373220 | LG에너지솔루션 |
3 | 207940 | 삼성바이오로직스 |
4 | 005380 | 현대차 |
... | ... | ... |
953 | 014915 | 성문전자우 |
954 | 004415 | 서울식품우 |
955 | 001525 | 동양우 |
956 | 001527 | 동양2우B |
957 | 002995 | 금호건설우 |
개별 주가 데이터
sd=pd.Timestamp(2024,8, 23) d=fdr.DataReader("005930", sd) d
Open | High | Low | Close | Volume | Change | |
---|---|---|---|---|---|---|
Date | ||||||
2024-08-23 | 77700 | 78400 | 77500 | 77700 | 9420306 | -0.007663 |
2024-08-26 | 78100 | 78200 | 76100 | 76300 | 10554181 | -0.018018 |
ed=pd.Timestamp(2024,8, 22) d1=fdr.DataReader("000660", sd, ed) d1
Open | High | Low | Close | Volume | Change | |
---|---|---|---|---|---|---|
Date | ||||||
2024-08-20 | 198700 | 202500 | 198100 | 199700 | 4258190 | 0.029912 |
2024-08-21 | 193000 | 195400 | 191100 | 192600 | 4508983 | -0.035553 |
2024-08-22 | 192000 | 194400 | 189000 | 191100 | 3166217 | -0.007788 |
한국과 미국 등 외국의 주요지수는 다음 코드(심볼)로 호출합니다.
심볼(한국) | 설명 | 심볼(미국) | 설명 | |
---|---|---|---|---|
KS11 | KOSPI 지수 | DJI | 다우지수 | |
KQ11 | KOSDAQ 지수 | IXIC | 나스닥지수 | |
KS50 | KOSPI50지수 | US500 | S&P500 지수 | |
KS100 | KOSPI100 지수 | VIX | VIX | |
KRX100 | KRX100 | ^sox | 필라델피아반도체 지수 | |
KS200 | KOSPI200 지수 |
sd=pd.Timestamp(2024,8, 20) ed=pd.Timestamp(2024,8, 22) d1=fdr.DataReader("^sox", sd, ed) d1
Open | High | Low | Close | Adj Close | Volume | |
---|---|---|---|---|---|---|
Date | ||||||
2024-08-20 | 5237.290039 | 5273.270020 | 5159.100098 | 5196.299805 | 5196.299805 | 0 |
2024-08-21 | 5232.299805 | 5288.540039 | 5205.089844 | 5267.930176 | 5267.930176 | 0 |
환율 데이터
심볼 | 설명 |
---|---|
USD/KRW | 달러당 원화 |
USD/EUR | 달러당 유로화 |
USD/JPY | 달러당 엔화 |
CNY/KRW | 위엔화 원화 |
EUR/USD | 유로화 달러 |
USD/JPY | 달러 엔화 |
JPY/KRW | 엔화 원화 |
AUD/USD | 오스트레일리아 달러 |
EUR/JPY | 유로화 엔화 |
USD/RUB | 달러 루블화 |
ex=fdr.DataReader("USD/KRW", sd, ed) ex
Open | High | Low | Close | Adj Close | Volume | |
---|---|---|---|---|---|---|
Date | ||||||
2024-08-20 | 1330.880005 | 1335.619995 | 1313.410034 | 1330.880005 | 1330.880005 | 0 |
2024-08-21 | 1327.579956 | 1339.640015 | 1324.400024 | 1327.579956 | 1327.579956 | 0 |
호출한 데이터는 DataFrame으로 다음의 인덱스와 컬럼을 가집니다.
type(ex)
pandas.core.frame.DataFrame
ex.index
DatetimeIndex(['2024-08-20', '2024-08-21'], dtype='datetime64[ns]', name='Date', freq=None)
ex.columns
Index(['Open', 'High', 'Low', 'Close', 'Adj Close', 'Volume'], dtype='object')
호출한 데이터의 인덱스는 datetime64형으로 시간을 나타내는 pandas의 자료형입니다. 즉, 호출한 데이터는 시간에 따라 정돈된 시계열(time series)입니다. 이러한 시계열 인덱스는 pandas의 함수 또는 메서드를 사용하여 생성하고 조정할 수 있습니다.
댓글
댓글 쓰기