finance-datareader 0.9.100__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. finance_datareader-0.9.100/.gitignore +25 -0
  2. finance_datareader-0.9.100/LICENSE.txt +22 -0
  3. finance_datareader-0.9.100/PKG-INFO +260 -0
  4. finance_datareader-0.9.100/README.md +223 -0
  5. finance_datareader-0.9.100/pyproject.toml +65 -0
  6. finance_datareader-0.9.100/src/FinanceDataReader/__init__.py +16 -0
  7. finance_datareader-0.9.100/src/FinanceDataReader/_utils.py +17 -0
  8. finance_datareader-0.9.100/src/FinanceDataReader/back_chart.py +254 -0
  9. finance_datareader-0.9.100/src/FinanceDataReader/chart/__init__.py +2 -0
  10. finance_datareader-0.9.100/src/FinanceDataReader/chart/candle.py +250 -0
  11. finance_datareader-0.9.100/src/FinanceDataReader/chart/plot.py +75 -0
  12. finance_datareader-0.9.100/src/FinanceDataReader/data.py +184 -0
  13. finance_datareader-0.9.100/src/FinanceDataReader/ecos/__init__.py +0 -0
  14. finance_datareader-0.9.100/src/FinanceDataReader/ecos/data.py +163 -0
  15. finance_datareader-0.9.100/src/FinanceDataReader/ecos/snap.py +222 -0
  16. finance_datareader-0.9.100/src/FinanceDataReader/fred/__init__.py +0 -0
  17. finance_datareader-0.9.100/src/FinanceDataReader/fred/data.py +59 -0
  18. finance_datareader-0.9.100/src/FinanceDataReader/investing/__init__.py +0 -0
  19. finance_datareader-0.9.100/src/FinanceDataReader/investing/data.py +99 -0
  20. finance_datareader-0.9.100/src/FinanceDataReader/investing/listing.py +37 -0
  21. finance_datareader-0.9.100/src/FinanceDataReader/krx/__init__.py +0 -0
  22. finance_datareader-0.9.100/src/FinanceDataReader/krx/data.py +289 -0
  23. finance_datareader-0.9.100/src/FinanceDataReader/krx/listing.py +215 -0
  24. finance_datareader-0.9.100/src/FinanceDataReader/krx/snap.py +102 -0
  25. finance_datareader-0.9.100/src/FinanceDataReader/nasdaq/__init__.py +0 -0
  26. finance_datareader-0.9.100/src/FinanceDataReader/nasdaq/listing.py +20 -0
  27. finance_datareader-0.9.100/src/FinanceDataReader/naver/__init__.py +0 -0
  28. finance_datareader-0.9.100/src/FinanceDataReader/naver/data.py +48 -0
  29. finance_datareader-0.9.100/src/FinanceDataReader/naver/listing.py +177 -0
  30. finance_datareader-0.9.100/src/FinanceDataReader/naver/snap.py +556 -0
  31. finance_datareader-0.9.100/src/FinanceDataReader/wikipedia/__init__.py +0 -0
  32. finance_datareader-0.9.100/src/FinanceDataReader/wikipedia/listing.py +51 -0
  33. finance_datareader-0.9.100/src/FinanceDataReader/yahoo/__init__.py +0 -0
  34. finance_datareader-0.9.100/src/FinanceDataReader/yahoo/data.py +74 -0
@@ -0,0 +1,25 @@
1
+
2
+ __pycache__
3
+ *.pyc
4
+ *.egg-info
5
+ .coverage
6
+ build
7
+ docs/build
8
+ .tox/
9
+ .cache/
10
+ .idea
11
+ *.iml
12
+ *~
13
+ .vscode
14
+ .pytest_cache
15
+
16
+ # pyenv
17
+ .python-version
18
+
19
+ # uv
20
+ uv.lock
21
+ requirements.lock
22
+ requirements-dev.lock
23
+
24
+ # build
25
+ /dist
@@ -0,0 +1,22 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 FinanceData.KR
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
22
+
@@ -0,0 +1,260 @@
1
+ Metadata-Version: 2.4
2
+ Name: finance-datareader
3
+ Version: 0.9.100
4
+ Summary: Financial data reader (price, stock list of markets)
5
+ Project-URL: Repository, https://github.com/financedata/financedatareader
6
+ Author-email: "FinanceData.KR" <plusjune@financedata.kr>
7
+ Maintainer-email: "FinanceData.KR" <plusjune@financedata.kr>
8
+ License: MIT License
9
+ License-File: LICENSE.txt
10
+ Keywords: data,finance
11
+ Classifier: Development Status :: 5 - Production/Stable
12
+ Classifier: License :: OSI Approved :: MIT License
13
+ Classifier: Operating System :: OS Independent
14
+ Classifier: Programming Language :: Cython
15
+ Classifier: Programming Language :: Python
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.9
18
+ Classifier: Programming Language :: Python :: 3.10
19
+ Classifier: Programming Language :: Python :: 3.11
20
+ Classifier: Programming Language :: Python :: 3.12
21
+ Requires-Python: >=3.9
22
+ Requires-Dist: beautifulsoup4
23
+ Requires-Dist: lxml
24
+ Requires-Dist: pandas>=1.1.0
25
+ Requires-Dist: plotly
26
+ Requires-Dist: requests-file
27
+ Requires-Dist: requests>=2.3.0
28
+ Requires-Dist: tqdm
29
+ Provides-Extra: docs
30
+ Requires-Dist: sphinx; extra == 'docs'
31
+ Provides-Extra: notebook
32
+ Requires-Dist: ipykernel; extra == 'notebook'
33
+ Requires-Dist: nbformat>=4.2.0; extra == 'notebook'
34
+ Provides-Extra: test
35
+ Requires-Dist: pytest; extra == 'test'
36
+ Description-Content-Type: text/markdown
37
+
38
+ # FinanceDataReader
39
+ Open Source Financial data reader
40
+
41
+ **2018-2025 [FinanceData.KR]()**
42
+
43
+ # Overview
44
+ The FinanceDataReader is financial data reader(crawler) for finance. <br>
45
+ The main functions are as follows.
46
+
47
+ * KRX Stock listings (시장별 상장 종목 리스팅): 'KRX', 'KOSPI', 'KODAQ', 'KONEX'
48
+ * Global Stock Symbol listings(해외 거래소 상장 종목 리스팅): 'NASDAQ', 'NYSE', 'AMEX', 'S&P500', 'SSE'(상해), 'SZSE'(심천), 'HKEX'(홍콩), 'TSE'(도쿄)
49
+ * KRX delistings: 'KRX-DELISTING'(상장폐지종목), 'KRX-ADMINISTRATIVE' (관리종목), 'KRX-MARCAP'(시가총액)
50
+ * ETF Symbol listings: 'ETF/KR'
51
+ * Stock price(개별종목 가격 데이터): '005930'(Samsung), '091990'(Celltrion Healthcare) ...
52
+ * Stock price(해외 거래소 개별종목 가격 데이터): 'AAPL', 'AMZN', 'GOOG' ... (you can specify exchange(market) and symbol)
53
+ * Indexes: 'KS11'(코스피지수), 'KQ11'(코스닥지수), 'DJI'(다우존스지수), 'IXIC'(나스닥지수), 'US500'(S&P 500지수) ...
54
+ * Exchanges: 'USD/KRW', 'USD/EUR', 'CNY/KRW' ... (조합가능한 화폐별 환율 데이터 일자별 데이터)
55
+ * Cryptocurrency price data (암호화폐 가격 데이터): 'BTC/USD', 'ETH/KRW' ...
56
+
57
+
58
+ # Install
59
+
60
+ ```bash
61
+ pip install finance-datareader
62
+ ```
63
+
64
+ # Quick Start
65
+ 지원하는 거래소: KRX(한국거래소), NYSE(뉴욕증권거래소), NASDAQ(나스닥), AMEX(아멕스), SSE(상해), SZSE(심천), HKEX(홍콩), TSE(도쿄)
66
+
67
+ ```python
68
+
69
+ import FinanceDataReader as fdr
70
+
71
+ # KOSPI Index 코스피 지수 데이터
72
+ df = fdr.DataReader('KS11', '2020') # 2020-01-01 ~ 현재
73
+ df = fdr.DataReader('KS11', '2022-01-01', '2022-12-31') # 2022-01-01 ~ 2022-12-31
74
+
75
+ # KRX Indices 국내 지수 데이터
76
+ df = fdr.DataReader('KS11') # KOSPI 지수 (KRX)
77
+ df = fdr.DataReader('KQ11') # KOSDAQ 지수 (KRX)
78
+ df = fdr.DataReader('KS200') # KOSPI 200 (KRX)
79
+
80
+ # US market Indices 미국 시장 지수 데이터
81
+ df = fdr.DataReader('DJI') # 다우존스 지수 (DJI - Dow Jones Industrial Average)
82
+ df = fdr.DataReader('IXIC') # 나스닥 종합지수 (IXIC - NASDAQ Composite)
83
+ df = fdr.DataReader('S&P500') # S&P500 지수 (NYSE)
84
+ df = fdr.DataReader('RUT') # 러셀2000 지수 (RUT - US Small Cap 2000)
85
+ df = fdr.DataReader('VIX') # VIX지수 (VIX - CBOE Volatility Index)
86
+
87
+ # Global Indices 글로벌 지수 데이터
88
+ df = fdr.DataReader('SSEC') # 상해 종합지수 Shanghai (SSEC -Shanghai Composite)
89
+ df = fdr.DataReader('HSI') # 항셍지수 (HSI - Hang Seng)
90
+ df = fdr.DataReader('N225') # 일본 닛케이지수 (N225 - Nikkei 225)
91
+ df = fdr.DataReader('FTSE') # 영국 FTSE100 (FTSE 100 - Financial Times Stock Exchange)
92
+ df = fdr.DataReader('FCHI') # 프랑스 FCHI 지수 (CAC 40 - CAC quarante)
93
+ df = fdr.DataReader('GDAXI') # 독일 닥스지수 (DAX30 - germany-30)
94
+
95
+ # KRX stock price 국내 시장 개별종목
96
+ df = fdr.DataReader('005930') # 삼성전자 전체 (1999년 ~ 현재)
97
+ df = fdr.DataReader('000660') # SK하이닉스 전체 (1999년 ~ 현재)
98
+ df = fdr.DataReader('068270') # 셀트리온 전체 (2004년 상장 ~ 현재)
99
+
100
+ # 여러 종목 종가(Close) 한번에
101
+ # 삼성전자(005930), SK하이닉스(000660), 기아(000270), 카카오(035720), KB금융(105560)
102
+ df = fdr.DataReader('005930,000660,000270,035720,105560', '2020') # 2020년 ~ 현재
103
+
104
+ # US stock price 미국 시장 개별종목
105
+ df = fdr.DataReader('AAPL', '2017') # Apple(AAPL), 2017-01-01 ~ 현재
106
+ df = fdr.DataReader('AMZN', '2017', '2019-12-31') # AMAZON(AMZN), 2017~2019 (3년)
107
+ df = fdr.DataReader('F', '1980-01-01', '2023-10-01') # Ford 자동차(F) (40년간)
108
+
109
+ # 여러종목 한번에 종가(Close) 데이터
110
+ df = fdr.DataReader('AAPL, TSLA, AMZN', '2020') # 애플, 테슬라, 아마존 (2020년 ~ 현재)
111
+
112
+ # 데이터 소스 지정하기
113
+ df = fdr.DataReader('KRX:000150', '2020-01-01') # 두산(000150) (한국거래소)
114
+ df = fdr.DataReader('NAVER:000150', '2020-01-01') # 두산(000150) (네이버 파이낸스)
115
+ df = fdr.DataReader('YAHOO:000150.KS', '2020-01-01') # 두산(000150) (야후 파이낸스)
116
+
117
+ # TSE (도쿄증권거래소)
118
+ df = fdr.DataReader('TSE:7203', '2020-01-01') # Toyota Motor Corp 토요타 자동차(7203)
119
+ df = fdr.DataReader('TSE:9984', '2020-01-01') # SoftBank Group Corp 소프트뱅크그룹(9984)
120
+
121
+ # HOSE (호치민증권거래소)
122
+ df = fdr.DataReader('HOSE:VCB', '2020-01-01') # 베트남 무역은행(VCB)
123
+ df = fdr.DataReader('HOSE:VIC') # Vingroup (JSC)
124
+
125
+ # 글로벌 동일한 종목코드 경우 거래소를 지정
126
+ df = fdr.DataReader('000150', '2020-01-01') # 두산:KRX 종목 (기본:네이버 파이낸스)
127
+ df = fdr.DataReader('KRX:000150', '2020-01-01') # 두산:KRX 종목 (한국거래소 데이터)
128
+ df = fdr.DataReader('SSE:000150', '2020-01-01') # SSE 380 Dividend Index (상하이 거래소)
129
+
130
+ # 상품 선물 가격 데이터
131
+ df = fdr.DataReader('CL=F') # WTI유 선물 Crude Oil (NYMEX)
132
+ df = fdr.DataReader('BZ=F') # 브렌트유 선물 Brent Oil (NYMEX)
133
+ df = fdr.DataReader('NG=F') # 천연가스 선물 (NYMEX)
134
+ df = fdr.DataReader('GC=F') # 금 선물 (COMEX)
135
+ df = fdr.DataReader('SI=F') # 은 선물 (COMEX)
136
+ df = fdr.DataReader('HG=F') # 구리 선물 (COMEX)
137
+
138
+ # 환율: 여러 조합 가능(지원 심볼: ['KRW', 'EUR', 'CNY', 'JPY', 'CHF'])
139
+ df = fdr.DataReader('USD/KRW') # 달러 원화
140
+ df = fdr.DataReader('USD/EUR') # 달러 유로화
141
+ df = fdr.DataReader('USD/CNY') # 달러 위엔화
142
+ df = fdr.DataReader('CNY/KRW') # 위엔화 원화
143
+ df = fdr.DataReader('EUR/CNY') # 유로화 위엔화
144
+
145
+ # 암호화폐 가격 데이터 (원화, 달러)
146
+ # (지원 심볼: ['BTC', 'ETH', 'USDT', 'BNB', 'USDC', 'XRP', 'BUSD', 'ADA', 'SOL', 'DOGE'])
147
+ df = fdr.DataReader('BTC/KRW') # 비트코인/원화
148
+ df = fdr.DataReader('ETH/KRW') # 이더리움/원화
149
+ df = fdr.DataReader('BTC/USD') # 비트코인/달러
150
+ df = fdr.DataReader('ETH/USD') # 이더리움/달러
151
+
152
+ # KRX delisting stock data 상장폐지 종목 전체 가격 데이터
153
+ df = fdr.DataReader('KRX-DELISTING:036360') # 3SOFT(036360)
154
+
155
+ # 미국 국채 채권 수익률
156
+ df = fdr.DataReader('US5YT') # 5년 만기 미국국채 수익률
157
+ df = fdr.DataReader('US10YT') # 10년 만기 미국국채 수익률
158
+ df = fdr.DataReader('US30YT') # 30년 만기 미국국채 수익률
159
+
160
+ # 종목 리스팅 (종목수는 2022년 10월 25일 기준, 시장 규모 가늠 용도)
161
+ # KRX 상장회사(발행회사)목록 (가격 중심, 주식 종목) - 시가총액순
162
+ stocks = fdr.StockListing('KRX') # KRX: 2,663 종목(=코스피+코스닥+코넥스)
163
+ stocks = fdr.StockListing('KOSPI') # KOSPI: 940 종목
164
+ stocks = fdr.StockListing('KOSDAQ') # KOSDAQ: 1,597 종목
165
+ stocks = fdr.StockListing('KONEX') # KONEX: 126 종목
166
+
167
+ ## KRX 전종목 목록 (설명 중심, 주식+펀드등 전종목)
168
+ stocks = fdr.StockListing('KRX-DESC') # 한국거래소: 7,632 종목
169
+ stocks = fdr.StockListing('KOSPI-DESC') # KOSPI: 5,897 종목
170
+ stocks = fdr.StockListing('KOSDAQ-DESC') # KOSDAQ: 1,609 종목
171
+ stocks = fdr.StockListing('KONEX-DESC') # KONEX: 126 종목
172
+
173
+ ## KRX 특수 종목 리스팅 (상장폐지 종목, 관리종목)
174
+ stocks = fdr.StockListing('KRX-DELISTING') # 3천+ 종목 - 상장폐지 종목 전체
175
+ stocks = fdr.StockListing('KRX-ADMIN') # 50+ 종목 - KRX 관리종목
176
+
177
+ ## US Market listings 미국 시장 거래소별 전종목 리스팅
178
+ stocks = fdr.StockListing('S&P500') # S&P500: 503 종목
179
+ stocks = fdr.StockListing('NASDAQ') # 나스닥 (NASDAQ): 4천+ 종목
180
+ stocks = fdr.StockListing('NYSE') # 뉴욕증권거래소 (NYSE): 3천+ 종목
181
+
182
+ ## Global Market listings 글로벌 시장 거래소별 전종목 리스팅
183
+ stocks = fdr.StockListing('SSE') # 상하이 증권거래소 (Shanghai Stock Exchange: SSE): 1천+ 종목
184
+ stocks = fdr.StockListing('SZSE') # 선전 증권거래소(Shenzhen Stock Exchange: SZSE): 1천+ 종목
185
+ stocks = fdr.StockListing('HKEX') # 홍콩 증권거래소(Hong Kong Exchange: HKEX): 2천5백+ 종목
186
+ stocks = fdr.StockListing('TSE') # 도쿄 증권거래소(Tokyo Stock Exchange: TSE): 3천9백+ 종목
187
+ stocks = fdr.StockListing('HOSE') # 호찌민 증권거래소(Ho Chi Minh City Stock Exchange: HOSE): 4백+ 종목
188
+
189
+ ## KRX ETFs
190
+ etfs = fdr.StockListing('ETF/KR') # 한국 ETF 전종목
191
+
192
+ # FRED 데이터
193
+ df = fdr.DataReader('FRED:M2') # M2 통화량
194
+ df = fdr.DataReader('FRED:NASDAQCOM') # NASDAQCOM 나스닥종합지수
195
+ df = fdr.DataReader('FRED:T10Y2Y') # 미국 장단기금리차 (1980년 ~)
196
+
197
+ ## 달러 인덱스
198
+ df = fdr.DataReader('^NYICDX') # ICE U.S. Dollar Index (^NYICDX) 달러인덱스 (1980~현재)
199
+
200
+ ## FRED 데이터 여러 항목 한번에
201
+ df = fdr.DataReader('FRED:M2,HSN1F,NASDAQCOM') # M2 통화량, HSN1F 주택판매지수, NASDAQCOM 나스닥종합지수
202
+
203
+ ## KRX지수및 지수 구 성종목
204
+ df = fdr.SnapDataReader('KRX/INDEX/LIST') # KRX 전체 지수목록
205
+
206
+ df = fdr.SnapDataReader('KRX/INDEX/STOCK/1001') # KOSPI 지수구성종목
207
+ df = fdr.SnapDataReader('KRX/INDEX/STOCK/1028') # 코스피 200
208
+ df = fdr.SnapDataReader('KRX/INDEX/STOCK/5106') # KRX ESG Leaders 150 테마 지수 구성종목
209
+
210
+ ## 재무제표
211
+ fs = fdr.SnapDataReader('NAVER/FINSTATE/005930') # 연간 주재무제표
212
+
213
+ fs = fdr.SnapDataReader('NAVER/FINSTATE-Y/005930') # 연간 주재무(='NAVER/FINSTATE-2Y/005930')
214
+ fs = fdr.SnapDataReader('NAVER/FINSTATE-1Y/005930') # 연간 K-IFRS 별도
215
+ fs = fdr.SnapDataReader('NAVER/FINSTATE-2Y/005930') # 연간 K-IFRS 연결
216
+ fs = fdr.SnapDataReader('NAVER/FINSTATE-3Y/005930') # 연간 K-GAAP 개별
217
+ fs = fdr.SnapDataReader('NAVER/FINSTATE-4Y/005930') # 연간 K-GAAP 연결
218
+
219
+ fs = fdr.SnapDataReader('NAVER/FINSTATE-Q/005930') # 분기 주재무(='NAVER/FINSTATE-2Q/005930')
220
+ fs = fdr.SnapDataReader('NAVER/FINSTATE-1Q/005930') # 분기 K-IFRS 별도
221
+ fs = fdr.SnapDataReader('NAVER/FINSTATE-2Q/005930') # 분기 K-IFRS 연결
222
+ fs = fdr.SnapDataReader('NAVER/FINSTATE-3Q/005930') # 분기 K-GAAP 개별
223
+ fs = fdr.SnapDataReader('NAVER/FINSTATE-4Q/005930') # 분기 K-GAAP 연결
224
+
225
+ ## 데이터 소스 지정
226
+ # 지정하지 않은 경우 (NAVER에서 가져오며 2000년 이후 데이터)
227
+ fdr.DataReader('000100') # (기간 지정 하지 않은 경우)
228
+ fdr.DataReader('000100', '2023') # 2023년 ~ 현재까지 가격 데이터
229
+ fdr.DataReader('000100', '2023', '2024') # 2023년 데이터
230
+
231
+ # KRX (2000년 이전 데이터 가능, 상세한 추가 필드)
232
+ fdr.DataReader('KRX:000100') # 1995-05-02 ~ 현재 (2년단위로 가져와 합쳐서 반환)
233
+ fdr.DataReader('KRX:000100', '2020') # 2020년 ~ 현재까지 가격 데이터
234
+ fdr.DataReader('KRX:000100', '1900') # 최대 데이터 (1995-05-02 ~ 현재까지)
235
+ fdr.DataReader('KRX:000100', '2023-09-23', '2024-12-31') # (기간 지정) 2년 단위로 가져와 병합
236
+
237
+ # NAVER (2000년 이후 데이터)
238
+ fdr.DataReader('NAVER:000100') # 2000년~현재 데이터
239
+ fdr.DataReader('NAVER:000100', '2023') # 2023년 ~ 현재까지 가격 데이터
240
+ fdr.DataReader('NAVER:000100', '2023', '2024') # 2023년 데이터
241
+
242
+ # YAHOO
243
+ fdr.DataReader('YAHOO:000100.KS') # 2000년 이후 데이터
244
+ fdr.DataReader('YAHOO:000100.KS', '2023') # 2023년 ~ 현재까지 가격 데이터
245
+ fdr.DataReader('YAHOO:000100.KS', '2023', '2024') # 2023년 데이터
246
+ ```
247
+
248
+ ## Using FinanceDataReader
249
+ * [Users-Guide](https://github.com/FinanceData/FinanceDataReader/wiki/Users-Guide)
250
+ * [Quick-Reference (Symbol List)](https://github.com/FinanceData/FinanceDataReader/wiki/Quick-Reference)
251
+
252
+ ## Tutorials
253
+ * [FRED 주요 경기 선행 지표](https://financedata.notion.site/FRED-FinanceDataReader-bfb0779c50254b138cb96416583130b9?pvs=4)
254
+ * [여러 종목 가격을 한번에](https://financedata.notion.site/FinanceDataReader-d976a299889143519793bcc45e491a73?pvs=4)
255
+
256
+ ## FinanceDataReader Notebooks
257
+ * [S&P500 가격 데이터 수집과 수익률 분석](https://nbviewer.jupyter.org/710b8f0a4bd9a8df91ae1be6c7e838b1)
258
+ * [S&P500 팩터 데이터 수집과 분석](https://nbviewer.jupyter.org/35a1b0d5248bc9b09513e53be437ac42)
259
+
260
+ **2018-2025 [FinanceData.KR]()**
@@ -0,0 +1,223 @@
1
+ # FinanceDataReader
2
+ Open Source Financial data reader
3
+
4
+ **2018-2025 [FinanceData.KR]()**
5
+
6
+ # Overview
7
+ The FinanceDataReader is financial data reader(crawler) for finance. <br>
8
+ The main functions are as follows.
9
+
10
+ * KRX Stock listings (시장별 상장 종목 리스팅): 'KRX', 'KOSPI', 'KODAQ', 'KONEX'
11
+ * Global Stock Symbol listings(해외 거래소 상장 종목 리스팅): 'NASDAQ', 'NYSE', 'AMEX', 'S&P500', 'SSE'(상해), 'SZSE'(심천), 'HKEX'(홍콩), 'TSE'(도쿄)
12
+ * KRX delistings: 'KRX-DELISTING'(상장폐지종목), 'KRX-ADMINISTRATIVE' (관리종목), 'KRX-MARCAP'(시가총액)
13
+ * ETF Symbol listings: 'ETF/KR'
14
+ * Stock price(개별종목 가격 데이터): '005930'(Samsung), '091990'(Celltrion Healthcare) ...
15
+ * Stock price(해외 거래소 개별종목 가격 데이터): 'AAPL', 'AMZN', 'GOOG' ... (you can specify exchange(market) and symbol)
16
+ * Indexes: 'KS11'(코스피지수), 'KQ11'(코스닥지수), 'DJI'(다우존스지수), 'IXIC'(나스닥지수), 'US500'(S&P 500지수) ...
17
+ * Exchanges: 'USD/KRW', 'USD/EUR', 'CNY/KRW' ... (조합가능한 화폐별 환율 데이터 일자별 데이터)
18
+ * Cryptocurrency price data (암호화폐 가격 데이터): 'BTC/USD', 'ETH/KRW' ...
19
+
20
+
21
+ # Install
22
+
23
+ ```bash
24
+ pip install finance-datareader
25
+ ```
26
+
27
+ # Quick Start
28
+ 지원하는 거래소: KRX(한국거래소), NYSE(뉴욕증권거래소), NASDAQ(나스닥), AMEX(아멕스), SSE(상해), SZSE(심천), HKEX(홍콩), TSE(도쿄)
29
+
30
+ ```python
31
+
32
+ import FinanceDataReader as fdr
33
+
34
+ # KOSPI Index 코스피 지수 데이터
35
+ df = fdr.DataReader('KS11', '2020') # 2020-01-01 ~ 현재
36
+ df = fdr.DataReader('KS11', '2022-01-01', '2022-12-31') # 2022-01-01 ~ 2022-12-31
37
+
38
+ # KRX Indices 국내 지수 데이터
39
+ df = fdr.DataReader('KS11') # KOSPI 지수 (KRX)
40
+ df = fdr.DataReader('KQ11') # KOSDAQ 지수 (KRX)
41
+ df = fdr.DataReader('KS200') # KOSPI 200 (KRX)
42
+
43
+ # US market Indices 미국 시장 지수 데이터
44
+ df = fdr.DataReader('DJI') # 다우존스 지수 (DJI - Dow Jones Industrial Average)
45
+ df = fdr.DataReader('IXIC') # 나스닥 종합지수 (IXIC - NASDAQ Composite)
46
+ df = fdr.DataReader('S&P500') # S&P500 지수 (NYSE)
47
+ df = fdr.DataReader('RUT') # 러셀2000 지수 (RUT - US Small Cap 2000)
48
+ df = fdr.DataReader('VIX') # VIX지수 (VIX - CBOE Volatility Index)
49
+
50
+ # Global Indices 글로벌 지수 데이터
51
+ df = fdr.DataReader('SSEC') # 상해 종합지수 Shanghai (SSEC -Shanghai Composite)
52
+ df = fdr.DataReader('HSI') # 항셍지수 (HSI - Hang Seng)
53
+ df = fdr.DataReader('N225') # 일본 닛케이지수 (N225 - Nikkei 225)
54
+ df = fdr.DataReader('FTSE') # 영국 FTSE100 (FTSE 100 - Financial Times Stock Exchange)
55
+ df = fdr.DataReader('FCHI') # 프랑스 FCHI 지수 (CAC 40 - CAC quarante)
56
+ df = fdr.DataReader('GDAXI') # 독일 닥스지수 (DAX30 - germany-30)
57
+
58
+ # KRX stock price 국내 시장 개별종목
59
+ df = fdr.DataReader('005930') # 삼성전자 전체 (1999년 ~ 현재)
60
+ df = fdr.DataReader('000660') # SK하이닉스 전체 (1999년 ~ 현재)
61
+ df = fdr.DataReader('068270') # 셀트리온 전체 (2004년 상장 ~ 현재)
62
+
63
+ # 여러 종목 종가(Close) 한번에
64
+ # 삼성전자(005930), SK하이닉스(000660), 기아(000270), 카카오(035720), KB금융(105560)
65
+ df = fdr.DataReader('005930,000660,000270,035720,105560', '2020') # 2020년 ~ 현재
66
+
67
+ # US stock price 미국 시장 개별종목
68
+ df = fdr.DataReader('AAPL', '2017') # Apple(AAPL), 2017-01-01 ~ 현재
69
+ df = fdr.DataReader('AMZN', '2017', '2019-12-31') # AMAZON(AMZN), 2017~2019 (3년)
70
+ df = fdr.DataReader('F', '1980-01-01', '2023-10-01') # Ford 자동차(F) (40년간)
71
+
72
+ # 여러종목 한번에 종가(Close) 데이터
73
+ df = fdr.DataReader('AAPL, TSLA, AMZN', '2020') # 애플, 테슬라, 아마존 (2020년 ~ 현재)
74
+
75
+ # 데이터 소스 지정하기
76
+ df = fdr.DataReader('KRX:000150', '2020-01-01') # 두산(000150) (한국거래소)
77
+ df = fdr.DataReader('NAVER:000150', '2020-01-01') # 두산(000150) (네이버 파이낸스)
78
+ df = fdr.DataReader('YAHOO:000150.KS', '2020-01-01') # 두산(000150) (야후 파이낸스)
79
+
80
+ # TSE (도쿄증권거래소)
81
+ df = fdr.DataReader('TSE:7203', '2020-01-01') # Toyota Motor Corp 토요타 자동차(7203)
82
+ df = fdr.DataReader('TSE:9984', '2020-01-01') # SoftBank Group Corp 소프트뱅크그룹(9984)
83
+
84
+ # HOSE (호치민증권거래소)
85
+ df = fdr.DataReader('HOSE:VCB', '2020-01-01') # 베트남 무역은행(VCB)
86
+ df = fdr.DataReader('HOSE:VIC') # Vingroup (JSC)
87
+
88
+ # 글로벌 동일한 종목코드 경우 거래소를 지정
89
+ df = fdr.DataReader('000150', '2020-01-01') # 두산:KRX 종목 (기본:네이버 파이낸스)
90
+ df = fdr.DataReader('KRX:000150', '2020-01-01') # 두산:KRX 종목 (한국거래소 데이터)
91
+ df = fdr.DataReader('SSE:000150', '2020-01-01') # SSE 380 Dividend Index (상하이 거래소)
92
+
93
+ # 상품 선물 가격 데이터
94
+ df = fdr.DataReader('CL=F') # WTI유 선물 Crude Oil (NYMEX)
95
+ df = fdr.DataReader('BZ=F') # 브렌트유 선물 Brent Oil (NYMEX)
96
+ df = fdr.DataReader('NG=F') # 천연가스 선물 (NYMEX)
97
+ df = fdr.DataReader('GC=F') # 금 선물 (COMEX)
98
+ df = fdr.DataReader('SI=F') # 은 선물 (COMEX)
99
+ df = fdr.DataReader('HG=F') # 구리 선물 (COMEX)
100
+
101
+ # 환율: 여러 조합 가능(지원 심볼: ['KRW', 'EUR', 'CNY', 'JPY', 'CHF'])
102
+ df = fdr.DataReader('USD/KRW') # 달러 원화
103
+ df = fdr.DataReader('USD/EUR') # 달러 유로화
104
+ df = fdr.DataReader('USD/CNY') # 달러 위엔화
105
+ df = fdr.DataReader('CNY/KRW') # 위엔화 원화
106
+ df = fdr.DataReader('EUR/CNY') # 유로화 위엔화
107
+
108
+ # 암호화폐 가격 데이터 (원화, 달러)
109
+ # (지원 심볼: ['BTC', 'ETH', 'USDT', 'BNB', 'USDC', 'XRP', 'BUSD', 'ADA', 'SOL', 'DOGE'])
110
+ df = fdr.DataReader('BTC/KRW') # 비트코인/원화
111
+ df = fdr.DataReader('ETH/KRW') # 이더리움/원화
112
+ df = fdr.DataReader('BTC/USD') # 비트코인/달러
113
+ df = fdr.DataReader('ETH/USD') # 이더리움/달러
114
+
115
+ # KRX delisting stock data 상장폐지 종목 전체 가격 데이터
116
+ df = fdr.DataReader('KRX-DELISTING:036360') # 3SOFT(036360)
117
+
118
+ # 미국 국채 채권 수익률
119
+ df = fdr.DataReader('US5YT') # 5년 만기 미국국채 수익률
120
+ df = fdr.DataReader('US10YT') # 10년 만기 미국국채 수익률
121
+ df = fdr.DataReader('US30YT') # 30년 만기 미국국채 수익률
122
+
123
+ # 종목 리스팅 (종목수는 2022년 10월 25일 기준, 시장 규모 가늠 용도)
124
+ # KRX 상장회사(발행회사)목록 (가격 중심, 주식 종목) - 시가총액순
125
+ stocks = fdr.StockListing('KRX') # KRX: 2,663 종목(=코스피+코스닥+코넥스)
126
+ stocks = fdr.StockListing('KOSPI') # KOSPI: 940 종목
127
+ stocks = fdr.StockListing('KOSDAQ') # KOSDAQ: 1,597 종목
128
+ stocks = fdr.StockListing('KONEX') # KONEX: 126 종목
129
+
130
+ ## KRX 전종목 목록 (설명 중심, 주식+펀드등 전종목)
131
+ stocks = fdr.StockListing('KRX-DESC') # 한국거래소: 7,632 종목
132
+ stocks = fdr.StockListing('KOSPI-DESC') # KOSPI: 5,897 종목
133
+ stocks = fdr.StockListing('KOSDAQ-DESC') # KOSDAQ: 1,609 종목
134
+ stocks = fdr.StockListing('KONEX-DESC') # KONEX: 126 종목
135
+
136
+ ## KRX 특수 종목 리스팅 (상장폐지 종목, 관리종목)
137
+ stocks = fdr.StockListing('KRX-DELISTING') # 3천+ 종목 - 상장폐지 종목 전체
138
+ stocks = fdr.StockListing('KRX-ADMIN') # 50+ 종목 - KRX 관리종목
139
+
140
+ ## US Market listings 미국 시장 거래소별 전종목 리스팅
141
+ stocks = fdr.StockListing('S&P500') # S&P500: 503 종목
142
+ stocks = fdr.StockListing('NASDAQ') # 나스닥 (NASDAQ): 4천+ 종목
143
+ stocks = fdr.StockListing('NYSE') # 뉴욕증권거래소 (NYSE): 3천+ 종목
144
+
145
+ ## Global Market listings 글로벌 시장 거래소별 전종목 리스팅
146
+ stocks = fdr.StockListing('SSE') # 상하이 증권거래소 (Shanghai Stock Exchange: SSE): 1천+ 종목
147
+ stocks = fdr.StockListing('SZSE') # 선전 증권거래소(Shenzhen Stock Exchange: SZSE): 1천+ 종목
148
+ stocks = fdr.StockListing('HKEX') # 홍콩 증권거래소(Hong Kong Exchange: HKEX): 2천5백+ 종목
149
+ stocks = fdr.StockListing('TSE') # 도쿄 증권거래소(Tokyo Stock Exchange: TSE): 3천9백+ 종목
150
+ stocks = fdr.StockListing('HOSE') # 호찌민 증권거래소(Ho Chi Minh City Stock Exchange: HOSE): 4백+ 종목
151
+
152
+ ## KRX ETFs
153
+ etfs = fdr.StockListing('ETF/KR') # 한국 ETF 전종목
154
+
155
+ # FRED 데이터
156
+ df = fdr.DataReader('FRED:M2') # M2 통화량
157
+ df = fdr.DataReader('FRED:NASDAQCOM') # NASDAQCOM 나스닥종합지수
158
+ df = fdr.DataReader('FRED:T10Y2Y') # 미국 장단기금리차 (1980년 ~)
159
+
160
+ ## 달러 인덱스
161
+ df = fdr.DataReader('^NYICDX') # ICE U.S. Dollar Index (^NYICDX) 달러인덱스 (1980~현재)
162
+
163
+ ## FRED 데이터 여러 항목 한번에
164
+ df = fdr.DataReader('FRED:M2,HSN1F,NASDAQCOM') # M2 통화량, HSN1F 주택판매지수, NASDAQCOM 나스닥종합지수
165
+
166
+ ## KRX지수및 지수 구 성종목
167
+ df = fdr.SnapDataReader('KRX/INDEX/LIST') # KRX 전체 지수목록
168
+
169
+ df = fdr.SnapDataReader('KRX/INDEX/STOCK/1001') # KOSPI 지수구성종목
170
+ df = fdr.SnapDataReader('KRX/INDEX/STOCK/1028') # 코스피 200
171
+ df = fdr.SnapDataReader('KRX/INDEX/STOCK/5106') # KRX ESG Leaders 150 테마 지수 구성종목
172
+
173
+ ## 재무제표
174
+ fs = fdr.SnapDataReader('NAVER/FINSTATE/005930') # 연간 주재무제표
175
+
176
+ fs = fdr.SnapDataReader('NAVER/FINSTATE-Y/005930') # 연간 주재무(='NAVER/FINSTATE-2Y/005930')
177
+ fs = fdr.SnapDataReader('NAVER/FINSTATE-1Y/005930') # 연간 K-IFRS 별도
178
+ fs = fdr.SnapDataReader('NAVER/FINSTATE-2Y/005930') # 연간 K-IFRS 연결
179
+ fs = fdr.SnapDataReader('NAVER/FINSTATE-3Y/005930') # 연간 K-GAAP 개별
180
+ fs = fdr.SnapDataReader('NAVER/FINSTATE-4Y/005930') # 연간 K-GAAP 연결
181
+
182
+ fs = fdr.SnapDataReader('NAVER/FINSTATE-Q/005930') # 분기 주재무(='NAVER/FINSTATE-2Q/005930')
183
+ fs = fdr.SnapDataReader('NAVER/FINSTATE-1Q/005930') # 분기 K-IFRS 별도
184
+ fs = fdr.SnapDataReader('NAVER/FINSTATE-2Q/005930') # 분기 K-IFRS 연결
185
+ fs = fdr.SnapDataReader('NAVER/FINSTATE-3Q/005930') # 분기 K-GAAP 개별
186
+ fs = fdr.SnapDataReader('NAVER/FINSTATE-4Q/005930') # 분기 K-GAAP 연결
187
+
188
+ ## 데이터 소스 지정
189
+ # 지정하지 않은 경우 (NAVER에서 가져오며 2000년 이후 데이터)
190
+ fdr.DataReader('000100') # (기간 지정 하지 않은 경우)
191
+ fdr.DataReader('000100', '2023') # 2023년 ~ 현재까지 가격 데이터
192
+ fdr.DataReader('000100', '2023', '2024') # 2023년 데이터
193
+
194
+ # KRX (2000년 이전 데이터 가능, 상세한 추가 필드)
195
+ fdr.DataReader('KRX:000100') # 1995-05-02 ~ 현재 (2년단위로 가져와 합쳐서 반환)
196
+ fdr.DataReader('KRX:000100', '2020') # 2020년 ~ 현재까지 가격 데이터
197
+ fdr.DataReader('KRX:000100', '1900') # 최대 데이터 (1995-05-02 ~ 현재까지)
198
+ fdr.DataReader('KRX:000100', '2023-09-23', '2024-12-31') # (기간 지정) 2년 단위로 가져와 병합
199
+
200
+ # NAVER (2000년 이후 데이터)
201
+ fdr.DataReader('NAVER:000100') # 2000년~현재 데이터
202
+ fdr.DataReader('NAVER:000100', '2023') # 2023년 ~ 현재까지 가격 데이터
203
+ fdr.DataReader('NAVER:000100', '2023', '2024') # 2023년 데이터
204
+
205
+ # YAHOO
206
+ fdr.DataReader('YAHOO:000100.KS') # 2000년 이후 데이터
207
+ fdr.DataReader('YAHOO:000100.KS', '2023') # 2023년 ~ 현재까지 가격 데이터
208
+ fdr.DataReader('YAHOO:000100.KS', '2023', '2024') # 2023년 데이터
209
+ ```
210
+
211
+ ## Using FinanceDataReader
212
+ * [Users-Guide](https://github.com/FinanceData/FinanceDataReader/wiki/Users-Guide)
213
+ * [Quick-Reference (Symbol List)](https://github.com/FinanceData/FinanceDataReader/wiki/Quick-Reference)
214
+
215
+ ## Tutorials
216
+ * [FRED 주요 경기 선행 지표](https://financedata.notion.site/FRED-FinanceDataReader-bfb0779c50254b138cb96416583130b9?pvs=4)
217
+ * [여러 종목 가격을 한번에](https://financedata.notion.site/FinanceDataReader-d976a299889143519793bcc45e491a73?pvs=4)
218
+
219
+ ## FinanceDataReader Notebooks
220
+ * [S&P500 가격 데이터 수집과 수익률 분석](https://nbviewer.jupyter.org/710b8f0a4bd9a8df91ae1be6c7e838b1)
221
+ * [S&P500 팩터 데이터 수집과 분석](https://nbviewer.jupyter.org/35a1b0d5248bc9b09513e53be437ac42)
222
+
223
+ **2018-2025 [FinanceData.KR]()**
@@ -0,0 +1,65 @@
1
+ [project]
2
+ name = "finance-datareader"
3
+ dynamic = ["version"]
4
+ description = "Financial data reader (price, stock list of markets)"
5
+ maintainers = [{ name = "FinanceData.KR", email = "plusjune@financedata.kr" }]
6
+ authors = [{ name = "FinanceData.KR", email = "plusjune@financedata.kr" }]
7
+ readme = "README.md"
8
+ license = { text = "MIT License" }
9
+ keywords = ["data", "finance"]
10
+ classifiers = [
11
+ "Operating System :: OS Independent",
12
+ "Development Status :: 5 - Production/Stable",
13
+ "License :: OSI Approved :: MIT License",
14
+ "Programming Language :: Cython",
15
+ "Programming Language :: Python",
16
+ "Programming Language :: Python :: 3",
17
+ "Programming Language :: Python :: 3.9",
18
+ "Programming Language :: Python :: 3.10",
19
+ "Programming Language :: Python :: 3.11",
20
+ "Programming Language :: Python :: 3.12",
21
+ ]
22
+ requires-python = ">= 3.9"
23
+ dependencies = [
24
+ "pandas>=1.1.0",
25
+ "requests>=2.3.0",
26
+ "requests-file",
27
+ "lxml",
28
+ "tqdm",
29
+ "beautifulsoup4",
30
+ "plotly",
31
+ ]
32
+
33
+ [project.urls]
34
+ Repository = "https://github.com/financedata/financedatareader"
35
+
36
+ [project.optional-dependencies]
37
+ notebook = ["ipykernel", "nbformat>=4.2.0"]
38
+ test = ["pytest"]
39
+ docs = ["sphinx"]
40
+
41
+ [dependency-groups]
42
+ dev = [
43
+ "finance-datareader[notebook,test]",
44
+ ]
45
+
46
+ [tool.uv]
47
+ managed = true
48
+ default-groups = ["dev"]
49
+
50
+ [build-system]
51
+ requires = ["hatchling"]
52
+ build-backend = "hatchling.build"
53
+
54
+ [tool.hatch.version]
55
+ path = "src/FinanceDataReader/__init__.py"
56
+
57
+ [tool.hatch.build.targets.wheel]
58
+ packages = ["src/FinanceDataReader"]
59
+
60
+ [tool.hatch.build.targets.sdist]
61
+ include = [
62
+ "src/FinanceDataReader",
63
+ "README.md",
64
+ "LICENSE.txt", # FIXME
65
+ ]
@@ -0,0 +1,16 @@
1
+ from .data import (DataReader)
2
+ from .data import (SnapDataReader)
3
+ from .data import (StockListing)
4
+ from .data import (EtfListing)
5
+ from .chart import (plot)
6
+
7
+ __version__ = '0.9.100'
8
+
9
+ __all__ = [
10
+ '__version__',
11
+ 'DataReader',
12
+ 'SnapDataReader',
13
+ 'StockListing',
14
+ 'EtfListing',
15
+ 'chart'
16
+ ]
@@ -0,0 +1,17 @@
1
+ import re
2
+ from datetime import datetime
3
+ import pandas as pd
4
+
5
+ def _convert_letter_to_num(str_num):
6
+ powers = {'B': 10 ** 9, 'M': 10 ** 6, 'K': 10 ** 3, '': 1}
7
+ m = re.search(r"([0-9\.]+)(M|B|K|)", str_num)
8
+ if m:
9
+ val = m.group(1)
10
+ mag = m.group(2)
11
+ return float(val) * powers[mag]
12
+ return 0.0
13
+
14
+ def _validate_dates(start, end):
15
+ start = pd.to_datetime(start) if start else datetime(1980, 1, 1)
16
+ end = pd.to_datetime(end) if end else datetime.today()
17
+ return start, end