neurostats-API 0.0.25__py3-none-any.whl → 1.0.0rc1__py3-none-any.whl
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.
- neurostats_API/__init__.py +1 -1
- neurostats_API/async_mode/__init__.py +13 -0
- neurostats_API/async_mode/db/__init__.py +3 -0
- neurostats_API/async_mode/db/base.py +24 -0
- neurostats_API/async_mode/db/tej.py +10 -0
- neurostats_API/async_mode/db/twse.py +8 -0
- neurostats_API/async_mode/db/us.py +9 -0
- neurostats_API/async_mode/db_extractors/__init__.py +20 -0
- neurostats_API/async_mode/db_extractors/base.py +66 -0
- neurostats_API/async_mode/db_extractors/daily/__init__.py +7 -0
- neurostats_API/async_mode/db_extractors/daily/base.py +89 -0
- neurostats_API/async_mode/db_extractors/daily/tej_chip.py +14 -0
- neurostats_API/async_mode/db_extractors/daily/tej_tech.py +12 -0
- neurostats_API/async_mode/db_extractors/daily/twse_chip.py +44 -0
- neurostats_API/async_mode/db_extractors/daily/value.py +93 -0
- neurostats_API/async_mode/db_extractors/daily/yf.py +12 -0
- neurostats_API/async_mode/db_extractors/month_revenue/__init__.py +1 -0
- neurostats_API/async_mode/db_extractors/month_revenue/base.py +140 -0
- neurostats_API/async_mode/db_extractors/month_revenue/twse.py +5 -0
- neurostats_API/async_mode/db_extractors/seasonal/__init__.py +4 -0
- neurostats_API/async_mode/db_extractors/seasonal/balance_sheet.py +19 -0
- neurostats_API/async_mode/db_extractors/seasonal/base.py +159 -0
- neurostats_API/async_mode/db_extractors/seasonal/cashflow.py +10 -0
- neurostats_API/async_mode/db_extractors/seasonal/profit_lose.py +17 -0
- neurostats_API/async_mode/db_extractors/seasonal/tej.py +87 -0
- neurostats_API/async_mode/factory/__init__.py +1 -0
- neurostats_API/async_mode/factory/extractor_factory.py +168 -0
- neurostats_API/async_mode/factory/transformer_factory.py +164 -0
- neurostats_API/async_mode/fetchers/__init__.py +10 -0
- neurostats_API/async_mode/fetchers/balance_sheet.py +31 -0
- neurostats_API/async_mode/fetchers/base.py +48 -0
- neurostats_API/async_mode/fetchers/cash_flow.py +56 -0
- neurostats_API/async_mode/fetchers/finance_overview.py +134 -0
- neurostats_API/async_mode/fetchers/month_revenue.py +35 -0
- neurostats_API/async_mode/fetchers/profit_lose.py +46 -0
- neurostats_API/async_mode/fetchers/tech.py +205 -0
- neurostats_API/async_mode/fetchers/tej.py +88 -0
- neurostats_API/async_mode/fetchers/twse_institution.py +62 -0
- neurostats_API/async_mode/fetchers/twse_margin.py +100 -0
- neurostats_API/async_mode/fetchers/value.py +76 -0
- neurostats_API/config/company_list/ticker_index_industry_map.json +7946 -0
- neurostats_API/config/company_list/us.json +9986 -0
- neurostats_API/{tools → config}/tej_db/tej_db_skip_index.yaml +0 -2
- neurostats_API/{tools → config}/twse/profit_lose.yaml +0 -6
- neurostats_API/fetchers/finance_overview.py +27 -5
- neurostats_API/transformers/__init__.py +40 -0
- neurostats_API/transformers/balance_sheet/__init__.py +2 -0
- neurostats_API/transformers/balance_sheet/base.py +51 -0
- neurostats_API/transformers/balance_sheet/twse.py +76 -0
- neurostats_API/transformers/balance_sheet/us.py +30 -0
- neurostats_API/transformers/base.py +110 -0
- neurostats_API/transformers/cash_flow/__init__.py +2 -0
- neurostats_API/transformers/cash_flow/base.py +114 -0
- neurostats_API/transformers/cash_flow/twse.py +68 -0
- neurostats_API/transformers/cash_flow/us.py +38 -0
- neurostats_API/transformers/daily_chip/__init__.py +1 -0
- neurostats_API/transformers/daily_chip/base.py +5 -0
- neurostats_API/transformers/daily_chip/tej.py +0 -0
- neurostats_API/transformers/daily_chip/twse_chip.py +412 -0
- neurostats_API/transformers/daily_chip/utils/__init__.py +0 -0
- neurostats_API/transformers/daily_chip/utils/institution.py +90 -0
- neurostats_API/transformers/daily_chip/utils/margin_trading.py +2 -0
- neurostats_API/transformers/daily_chip/utils/security_lending.py +0 -0
- neurostats_API/transformers/daily_tech/__init__.py +1 -0
- neurostats_API/transformers/daily_tech/base.py +5 -0
- neurostats_API/transformers/daily_tech/tech.py +84 -0
- neurostats_API/transformers/daily_tech/utils/__init__.py +1 -0
- neurostats_API/transformers/daily_tech/utils/processor.py +251 -0
- neurostats_API/transformers/finance_overview/__init__.py +2 -0
- neurostats_API/transformers/finance_overview/agent_overview.py +55 -0
- neurostats_API/transformers/finance_overview/base.py +824 -0
- neurostats_API/transformers/finance_overview/stats_overview.py +64 -0
- neurostats_API/transformers/month_revenue/__init__.py +1 -0
- neurostats_API/transformers/month_revenue/base.py +60 -0
- neurostats_API/transformers/month_revenue/twse.py +129 -0
- neurostats_API/transformers/profit_lose/__init__.py +2 -0
- neurostats_API/transformers/profit_lose/base.py +82 -0
- neurostats_API/transformers/profit_lose/twse.py +133 -0
- neurostats_API/transformers/profit_lose/us.py +25 -0
- neurostats_API/transformers/tej/__init__.py +1 -0
- neurostats_API/transformers/tej/base.py +149 -0
- neurostats_API/transformers/tej/finance_statement.py +80 -0
- neurostats_API/transformers/value/__init__.py +1 -0
- neurostats_API/transformers/value/base.py +5 -0
- neurostats_API/transformers/value/tej.py +8 -0
- neurostats_API/transformers/value/twse.py +48 -0
- neurostats_API/utils/__init__.py +1 -1
- neurostats_API/utils/data_process.py +10 -6
- neurostats_API/utils/exception.py +8 -0
- neurostats_API/utils/logger.py +21 -0
- neurostats_API-1.0.0rc1.dist-info/METADATA +102 -0
- neurostats_API-1.0.0rc1.dist-info/RECORD +119 -0
- neurostats_API-0.0.25.dist-info/METADATA +0 -858
- neurostats_API-0.0.25.dist-info/RECORD +0 -36
- /neurostats_API/{tools → config}/company_list/tw.json +0 -0
- /neurostats_API/{tools → config}/company_list/us_TradingView_list.json +0 -0
- /neurostats_API/{tools → config}/tej_db/tej_db_index.yaml +0 -0
- /neurostats_API/{tools → config}/tej_db/tej_db_percent_index.yaml +0 -0
- /neurostats_API/{tools → config}/tej_db/tej_db_thousand_index.yaml +0 -0
- /neurostats_API/{tools → config}/twse/balance_sheet.yaml +0 -0
- /neurostats_API/{tools → config}/twse/cash_flow_percentage.yaml +0 -0
- /neurostats_API/{tools → config}/twse/finance_overview_dict.yaml +0 -0
- /neurostats_API/{tools → config}/twse/seasonal_data_field_dict.txt +0 -0
- {neurostats_API-0.0.25.dist-info → neurostats_API-1.0.0rc1.dist-info}/WHEEL +0 -0
- {neurostats_API-0.0.25.dist-info → neurostats_API-1.0.0rc1.dist-info}/top_level.txt +0 -0
@@ -1,858 +0,0 @@
|
|
1
|
-
Metadata-Version: 2.1
|
2
|
-
Name: neurostats_API
|
3
|
-
Version: 0.0.25
|
4
|
-
Summary: The service of NeuroStats website
|
5
|
-
Home-page: https://github.com/NeurowattStats/NeuroStats_API.git
|
6
|
-
Author: JasonWang@Neurowatt
|
7
|
-
Author-email: jason@neurowatt.ai
|
8
|
-
Requires-Python: >=3.6
|
9
|
-
Description-Content-Type: text/markdown
|
10
|
-
Requires-Dist: numpy
|
11
|
-
Requires-Dist: pandas
|
12
|
-
Requires-Dist: pymongo
|
13
|
-
Requires-Dist: pytz
|
14
|
-
Requires-Dist: python-dotenv
|
15
|
-
Requires-Dist: yfinance
|
16
|
-
Requires-Dist: holidays
|
17
|
-
|
18
|
-
# neurostats_API
|
19
|
-
|
20
|
-
- [檔案架構](#檔案架構)
|
21
|
-
- [使用方法](#使用方法)
|
22
|
-
- [下載](#下載)
|
23
|
-
- [價值投資](#得到最新一期的評價資料與歷年評價)
|
24
|
-
- [歷史評價](#得到指定公司的歷來評價)
|
25
|
-
- [財務分析-重要指標](#財務分析-重要指標)
|
26
|
-
- [月營收表](#回傳月營收表)
|
27
|
-
- [損益表](#損益表)
|
28
|
-
- [資產負債表](#資產負債表)
|
29
|
-
- [現金流量表](#現金流量表)
|
30
|
-
- [法人交易](#法人交易)
|
31
|
-
- [資券餘額](#資券餘額)
|
32
|
-
- [版本紀錄](#版本紀錄)
|
33
|
-
|
34
|
-
|
35
|
-
## 檔案架構
|
36
|
-
|
37
|
-
```
|
38
|
-
├── neurostats_API
|
39
|
-
│ ├── __init__.py
|
40
|
-
│ ├── cli.py
|
41
|
-
│ ├── main.py
|
42
|
-
│ ├── fetchers
|
43
|
-
│ │ ├── __init__.py
|
44
|
-
│ │ ├── base.py
|
45
|
-
│ │ ├── balance_sheet.py
|
46
|
-
│ │ ├── cash_flow.py
|
47
|
-
│ │ ├── finance_overview.py
|
48
|
-
│ │ ├── profit_lose.py
|
49
|
-
│ │ ├── tech.py
|
50
|
-
│ │ ├── value_invest.py
|
51
|
-
│ ├── tools
|
52
|
-
│ │ ├── balance_sheet.yaml
|
53
|
-
│ │ ├── cash_flow_percentage.yaml
|
54
|
-
│ │ ├── finance_overview_dict.yaml
|
55
|
-
│ │ ├── profit_lose.yaml
|
56
|
-
│ │ └── seasonal_data_field_dict.txt
|
57
|
-
│ └── utils
|
58
|
-
│ ├──__init__.py
|
59
|
-
│ ├── data_process.py
|
60
|
-
│ ├── datetime.py
|
61
|
-
│ ├── db_client.py
|
62
|
-
│ └── fetcher.py
|
63
|
-
├── test
|
64
|
-
│ ├── __init__.py
|
65
|
-
│ └── test_fetchers.py
|
66
|
-
├── Makefile
|
67
|
-
├── MANIFEST.in
|
68
|
-
├── README.md
|
69
|
-
├── requirement.txt
|
70
|
-
├── setup.py
|
71
|
-
|
72
|
-
```
|
73
|
-
- `neurostats_API`: 主要的package運行內容
|
74
|
-
- `fetchers`: 回傳service內容的fetcher檔案夾
|
75
|
-
- `base.py`: 基本架構
|
76
|
-
- `value_invest.py`: iFa.ai -> 價值投資
|
77
|
-
- `finance_overview.py`: iFa.ai -> 財務分析 -> 重要指標
|
78
|
-
- `tech.py`: iFa.ai -> 技術指標
|
79
|
-
- `tools`: 存放各種設定檔與資料庫index對應領域的dictionary
|
80
|
-
- `utils`:
|
81
|
-
- `fetcher.py`: Service的舊主架構, 月營收, 損益表, 資產負債表, 資產收益表目前在這裡
|
82
|
-
- `data_process.py`: config資料的讀取
|
83
|
-
- `datetime.py`: 時間格式,包括日期,年度,月份,日,季度
|
84
|
-
|
85
|
-
## 下載
|
86
|
-
```
|
87
|
-
pip install neurostats-API
|
88
|
-
```
|
89
|
-
### 確認下載成功
|
90
|
-
```Python
|
91
|
-
>>> import neurostats_API
|
92
|
-
>>> print(neurostats_API.__version__)
|
93
|
-
0.0.25
|
94
|
-
```
|
95
|
-
|
96
|
-
### 得到最新一期的評價資料與歷年評價
|
97
|
-
``` Python
|
98
|
-
from neurostats_API.utils import ValueFetcher, DBClient
|
99
|
-
db_client = DBClient("<連接的DB位置>").get_client()
|
100
|
-
ticker = "2330" # 換成tw50內任意ticker
|
101
|
-
fetcher = ValueFetcher(ticker, db_client)
|
102
|
-
|
103
|
-
fetcher.query_data()
|
104
|
-
```
|
105
|
-
|
106
|
-
#### 回傳(2330為例)
|
107
|
-
```Python
|
108
|
-
{
|
109
|
-
"ticker": 股票代碼,
|
110
|
-
"company_name": 公司中文名稱,
|
111
|
-
"daily_data":{
|
112
|
-
## 以下八個是iFa項目
|
113
|
-
"P_E": 本益比,
|
114
|
-
"P_B": 股價,
|
115
|
-
"P_FCF": 股價自由現金流比,
|
116
|
-
"P_S": 股價營收比,
|
117
|
-
"EV_EBIT: ,
|
118
|
-
"EV_EBITDA": ,
|
119
|
-
"EV_OPI": ,
|
120
|
-
"EV_S";
|
121
|
-
## 以上八個是iFa項目
|
122
|
-
"close": 收盤價,
|
123
|
-
}
|
124
|
-
|
125
|
-
"yearly_data": pd.DataFrame (下表格為範例)
|
126
|
-
year P_E P_FCF P_B P_S EV_OPI EV_EBIT EV_EBITDA EV_S
|
127
|
-
0 107 16.68 29.155555 3.71 11.369868 29.837201 28.798274 187.647704 11.107886
|
128
|
-
1 108 26.06 67.269095 5.41 17.025721 50.145736 47.853790 302.526388 17.088863
|
129
|
-
2 109 27.98 95.650723 7.69 22.055379 53.346615 51.653834 205.847232 22.481951
|
130
|
-
3 110 27.83 149.512474 7.68 22.047422 55.398018 54.221387 257.091893 22.615355
|
131
|
-
4 111 13.11 48.562021 4.25 11.524975 24.683850 24.226554 66.953260 12.129333
|
132
|
-
5 112 17.17 216.371410 4.59 16.419533 40.017707 37.699267 105.980652 17.127656
|
133
|
-
6 過去4季 NaN -24.929987 NaN 4.300817 83.102921 55.788996 -1073.037084 7.436656
|
134
|
-
}
|
135
|
-
```
|
136
|
-
> 這裡有Nan是因為本益比與P/B等資料沒有爬到最新的時間
|
137
|
-
|
138
|
-
### 得到指定公司的歷來評價
|
139
|
-
``` Python
|
140
|
-
from neurostats_API.utils import ValueFetcher, DBClient
|
141
|
-
db_client = DBClient("<連接的DB位置>").get_client()
|
142
|
-
ticker = "2330" # 換成tw50內任意ticker
|
143
|
-
fetcher = ValueFetcher(ticker, db_client)
|
144
|
-
|
145
|
-
fetcher.query_value_serie()
|
146
|
-
```
|
147
|
-
#### 回傳(2330為例)
|
148
|
-
```Python
|
149
|
-
{
|
150
|
-
'EV_EBIT': EV_EBIT
|
151
|
-
2014-01-02 NaN
|
152
|
-
2014-01-03 NaN
|
153
|
-
... ...
|
154
|
-
2024-12-12 15.021431
|
155
|
-
2024-12-13 15.088321
|
156
|
-
,
|
157
|
-
'EV_OPI': EV_OPI
|
158
|
-
2014-01-03 NaN
|
159
|
-
... ...
|
160
|
-
2024-12-12 15.999880
|
161
|
-
2024-12-13 16.071128
|
162
|
-
,
|
163
|
-
'EV_S': EV_S
|
164
|
-
2014-01-02 NaN
|
165
|
-
2014-01-03 NaN
|
166
|
-
... ...
|
167
|
-
2024-12-12 6.945457
|
168
|
-
2024-12-13 6.976385
|
169
|
-
,
|
170
|
-
'P_B': P_B
|
171
|
-
2014-01-02 NaN
|
172
|
-
2014-01-03 NaN
|
173
|
-
... ...
|
174
|
-
2024-12-12 6.79
|
175
|
-
2024-12-13 6.89
|
176
|
-
,
|
177
|
-
'P_E': P_E
|
178
|
-
2014-01-02 NaN
|
179
|
-
2014-01-03 NaN
|
180
|
-
... ...
|
181
|
-
2024-12-12 26.13
|
182
|
-
2024-12-13 26.50
|
183
|
-
,
|
184
|
-
'P_FCF': P_FCF
|
185
|
-
2014-01-02 NaN
|
186
|
-
2014-01-03 NaN
|
187
|
-
... ...
|
188
|
-
2024-12-12 45.302108
|
189
|
-
2024-12-13 45.515797
|
190
|
-
,
|
191
|
-
'P_S': P_S
|
192
|
-
2014-01-02 NaN
|
193
|
-
2014-01-03 NaN
|
194
|
-
... ...
|
195
|
-
2024-12-12 6.556760
|
196
|
-
2024-12-13 6.587688
|
197
|
-
}
|
198
|
-
```
|
199
|
-
|
200
|
-
|
201
|
-
### 回傳月營收表
|
202
|
-
``` Python
|
203
|
-
from neurostats_API.fetchers import MonthRevenueFetcher, DBClient
|
204
|
-
db_client = DBClient("<連接的DB位置>").get_client()
|
205
|
-
ticker = "2330" # 換成tw50內任意ticker
|
206
|
-
fetcher = MonthRevenueFetcherFetcher(ticker, db_client)
|
207
|
-
data = fetcher.query_data()
|
208
|
-
```
|
209
|
-
|
210
|
-
#### 回傳
|
211
|
-
```Python
|
212
|
-
{
|
213
|
-
"ticker": "2330",
|
214
|
-
"company_name": "台積電",
|
215
|
-
"month_revenue":
|
216
|
-
year 2024 ... 2014
|
217
|
-
month ...
|
218
|
-
grand_total 2.025847e+09 ... NaN
|
219
|
-
12 NaN ... 69510190.0
|
220
|
-
... ... ... ...
|
221
|
-
2 1.816483e+08 ... 46829051.0
|
222
|
-
1 2.157851e+08 ... 51429993.0
|
223
|
-
|
224
|
-
"this_month_revenue_over_years":
|
225
|
-
year 2024 ... 2015
|
226
|
-
revenue 2.518727e+08 ... 64514083.0
|
227
|
-
revenue_increment_ratio 3.960000e+01 ... -13.8
|
228
|
-
... ... ... ...
|
229
|
-
YoY_5 1.465200e+02 ... NaN
|
230
|
-
YoY_10 NaN ... NaN
|
231
|
-
|
232
|
-
"grand_total_over_years":
|
233
|
-
year 2024 ... 2015
|
234
|
-
grand_total 2.025847e+09 ... 6.399788e+08
|
235
|
-
grand_total_increment_ratio 3.187000e+01 ... 1.845000e+01
|
236
|
-
... ... ... ...
|
237
|
-
grand_total_YoY_5 1.691300e+02 ... NaN
|
238
|
-
grand_total_YoY_10 NaN ... NaN
|
239
|
-
|
240
|
-
"recent_month_revenue":
|
241
|
-
date 2024/11 2024/10 ... 2024/1 2023/12
|
242
|
-
revenue 51243946000 45451116000 ... 56451418000 55329015000
|
243
|
-
MoM 12.75% -14.77% ... 2.03% -0.52%
|
244
|
-
YoY -7.87% -30.00% ... -7.36% -11.13%
|
245
|
-
total_YoY -6.93% -6.84% ... -7.36% -15.97%
|
246
|
-
accum_YoY 85.84% 78.65% ... 7.92% 84.03%
|
247
|
-
# total_YoY為當月累計營收 / 上一年的當月累計營收
|
248
|
-
# accum_YoY為當月累計營收 / 上一年的總營收
|
249
|
-
|
250
|
-
}
|
251
|
-
```
|
252
|
-
- `'ticker'`: 股票代碼
|
253
|
-
- `'company_name'`: 公司名稱
|
254
|
-
- `'month_revenue'`: 歷年的月營收以及到今年最新月份累計的月營收表格
|
255
|
-
- `'this_month_revenue_over_years'`: 今年這個月的月營收與歷年同月份的營收比較
|
256
|
-
- `'grand_total_over_years'`: 累計至今年這個月的月營收與歷年的比較
|
257
|
-
|
258
|
-
> 大部分資料(成長率)缺失是因為尚未計算,僅先填上已經有的資料
|
259
|
-
|
260
|
-
|
261
|
-
### 財務分析: 重要指標
|
262
|
-
對應https://ifa.ai/tw-stock/2330/finance-overview
|
263
|
-
```Python
|
264
|
-
from neurostats_API.fetchers import FinanceOverviewFetcher, DBClient
|
265
|
-
db_client = DBClient("<連接的DB位置>").get_client()
|
266
|
-
ticker = "2330"
|
267
|
-
fetcher = FinanceOverviewFetcher(ticker = "2330", db_client = db_client)
|
268
|
-
data = fetcher.query_data()
|
269
|
-
```
|
270
|
-
|
271
|
-
#### 回傳
|
272
|
-
型態為Dict:
|
273
|
-
```Python
|
274
|
-
{
|
275
|
-
ticker: str #股票代碼,
|
276
|
-
company_name: str #公司名稱,
|
277
|
-
seasonal_data: Dict # 回傳資料
|
278
|
-
}
|
279
|
-
```
|
280
|
-
|
281
|
-
以下為seasonal_data目前回傳的key的中英對應(中文皆參照iFa.ai)
|
282
|
-
|
283
|
-
markdown
|
284
|
-
複製程式碼
|
285
|
-
| 英文 | 中文 |
|
286
|
-
|-----------------------------------|-----------------------------|
|
287
|
-
|**財務概況**|
|
288
|
-
| revenue | 營業收入 |
|
289
|
-
| gross_profit | 營業毛利 |
|
290
|
-
| operating_income | 營業利益 |
|
291
|
-
| net_income | 淨利 |
|
292
|
-
| operating_cash_flow | 營業活動之現金流 |
|
293
|
-
| invest_cash_flow | 投資活動之淨現金流 |
|
294
|
-
| financing_cash_flow | 籌資活動之淨現金流 |
|
295
|
-
|**每股財務狀況**|
|
296
|
-
| revenue_per_share | 每股營收 |
|
297
|
-
| gross_per_share | 每股營業毛利 |
|
298
|
-
| operating_income_per_share | 每股營業利益 |
|
299
|
-
| eps | 每股盈餘(EPS) |
|
300
|
-
| operating_cash_flow_per_share | 每股營業現金流 |
|
301
|
-
| fcf_per_share | 每股自由現金流 |
|
302
|
-
| debt_to_operating_cash_flow | 每股有息負債 |
|
303
|
-
| equity | 每股淨值 |
|
304
|
-
|**獲利能力**|
|
305
|
-
| roa | 資產報酬率 |
|
306
|
-
| roe | 股東權益報酬率 |
|
307
|
-
| gross_over_asset | 營業毛利÷總資產 |
|
308
|
-
| roce | ROCE |
|
309
|
-
| gross_profit_margin | 營業毛利率 |
|
310
|
-
| operation_profit_rate | 營業利益率 |
|
311
|
-
| net_income_rate | 淨利率 |
|
312
|
-
| operating_cash_flow_profit_rate | 營業現金流利潤率 |
|
313
|
-
|**成長動能**|
|
314
|
-
| revenue_YoY | 營收年成長率 |
|
315
|
-
| gross_prof_YoY | 營業毛利年成長率 |
|
316
|
-
| operating_income_YoY | 營業利益年成長率 |
|
317
|
-
| net_income_YoY | 淨利年成長率 |
|
318
|
-
|**營運指標**|
|
319
|
-
| dso | 應收帳款收現天數 |
|
320
|
-
| account_receive_over_revenue | 應收帳款佔營收比率 |
|
321
|
-
| dio | 平均售貨天數 |
|
322
|
-
| inventories_revenue_ratio | 存貨佔營收比率 |
|
323
|
-
| dpo | 應付帳款付現日天數 |
|
324
|
-
| cash_of_conversion_cycle | 現金循環週期 |
|
325
|
-
| asset_turnover | 總資產週轉率 |
|
326
|
-
| applcation_turnover | 不動產、廠房及設備週轉率 |
|
327
|
-
|**財務韌性**|
|
328
|
-
| current_ratio | 流動比率 |
|
329
|
-
| quick_ratio | 速動比率 |
|
330
|
-
| debt_to_equity_ratio | 負債權益比率 |
|
331
|
-
| net_debt_to_equity_ratio | 淨負債權益比率 |
|
332
|
-
| interest_coverage_ratio | 利息保障倍數 |
|
333
|
-
| debt_to_operating_cash_flow | 有息負債÷營業活動現金流 |
|
334
|
-
| debt_to_free_cash_flow | 有息負債÷自由現金流 |
|
335
|
-
| cash_flow_ratio | 現金流量比率 |
|
336
|
-
|**資產負債表**|
|
337
|
-
| current_assets | 流動資產 |
|
338
|
-
| current_liabilities | 流動負債 |
|
339
|
-
| non_current_assets | 非流動資產 |
|
340
|
-
| non_current_liabilities| 非流動負債 |
|
341
|
-
| total_asset | 資產總額 |
|
342
|
-
| total_liabilities | 負債總額 |
|
343
|
-
| equity | 權益 |
|
344
|
-
|
345
|
-
#### 以下數值未在回傳資料中,待資料庫更新
|
346
|
-
|英文|中文|
|
347
|
-
|---|----|
|
348
|
-
|**成長動能**|
|
349
|
-
| operating_cash_flow_YoY | 營業現金流年成長率 |
|
350
|
-
| fcf_YoY | 自由現金流年成長率 |
|
351
|
-
| operating_cash_flow_per_share_YoY | 每股營業現金流年成長率 |
|
352
|
-
| fcf_per_share_YoY | 每股自由現金流年成長率 |
|
353
|
-
|
354
|
-
### 損益表
|
355
|
-
```Python
|
356
|
-
from neurostats_API.fetchers import ProfitLoseFetcher, DBClient
|
357
|
-
db_client = DBClient("<連接的DB位置>").get_client()
|
358
|
-
fetcher = ProfitLoseFetcher(db_client)
|
359
|
-
ticker = "2330" # 換成tw50內任意ticker
|
360
|
-
data = fetcher.query_data()
|
361
|
-
```
|
362
|
-
|
363
|
-
#### 回傳
|
364
|
-
因項目眾多,不列出詳細內容,僅列出目前會回傳的項目
|
365
|
-
```Python
|
366
|
-
{
|
367
|
-
"ticker": "2330"
|
368
|
-
"company_name": "台積電"
|
369
|
-
# 以下皆為pd.DataFrame
|
370
|
-
"profit_lose": #損益表,
|
371
|
-
"grand_total_profit_lose": #今年度累計損益表,
|
372
|
-
# 營業收入
|
373
|
-
"revenue": # 營收成長率
|
374
|
-
"grand_total_revenue": # 營收累計成場濾
|
375
|
-
# 毛利
|
376
|
-
"gross_profit": # 毛利成長率
|
377
|
-
"grand_total_gross_profit": # 累計毛利成長率
|
378
|
-
"gross_profit_percentage": # 毛利率
|
379
|
-
"grand_total_gross_profit_percentage" # 累計毛利率
|
380
|
-
# 營利
|
381
|
-
"operating_income": # 營利成長率
|
382
|
-
"grand_total_operating_income": # 累計營利成長率
|
383
|
-
"operating_income_percentage": # 營利率
|
384
|
-
"grand_total_operating_income_percentage": # 累計營利率
|
385
|
-
# 稅前淨利
|
386
|
-
"net_income_before_tax": # 稅前淨利成長率
|
387
|
-
"grand_total_net_income_before_tax": # 累計稅前淨利成長率
|
388
|
-
"net_income_before_tax_percentage": # 稅前淨利率
|
389
|
-
"grand_total_net_income_before_tax_percentage": # 累計稅前淨利率
|
390
|
-
# 本期淨利
|
391
|
-
"net_income": # 本期淨利成長率
|
392
|
-
"grand_total_net_income": # 累計本期淨利成長率
|
393
|
-
"net_income_percentage": # 本期淨利率
|
394
|
-
"grand_total_income_percentage": # 累計本期淨利率
|
395
|
-
# EPS
|
396
|
-
"EPS": # EPS
|
397
|
-
"EPS_growth": # EPS成長率
|
398
|
-
"grand_total_EPS": # 累計EPS
|
399
|
-
"grand_total_EPS_growth": # 累計EPS成長率
|
400
|
-
}
|
401
|
-
```
|
402
|
-
|
403
|
-
### 資產負債表
|
404
|
-
``` Python
|
405
|
-
from neurostats_API.fetchers import BalanceSheetFetcher, DBClient
|
406
|
-
db_client = DBClient("<連接的DB位置>").get_client()
|
407
|
-
ticker = "2330" # 換成tw50內任意ticker
|
408
|
-
fetcher = BalanceSheetFetcher(ticker, db_client)
|
409
|
-
|
410
|
-
fetcher.query_data()
|
411
|
-
```
|
412
|
-
|
413
|
-
#### 回傳
|
414
|
-
```Python
|
415
|
-
{
|
416
|
-
"ticker": "2330"
|
417
|
-
"company_name":"台積電"
|
418
|
-
"balance_sheet":
|
419
|
-
2024Q2_value ... 2018Q2_percentage
|
420
|
-
流動資產 NaN ... NaN
|
421
|
-
現金及約當現金 1.799127e+09 ... 30.79
|
422
|
-
... ... ... ...
|
423
|
-
避險之衍生金融負債-流動 NaN ... 0.00
|
424
|
-
負債準備-流動 NaN ... 0.00
|
425
|
-
|
426
|
-
"total_asset":
|
427
|
-
2024Q2_value ... 2018Q2_percentage
|
428
|
-
資產總額 5.982364e+09 ... 100.00
|
429
|
-
負債總額 2.162216e+09 ... 27.41
|
430
|
-
權益總額 3.820148e+09 ... 72.59
|
431
|
-
|
432
|
-
|
433
|
-
"current_asset":
|
434
|
-
2024Q2_value ... 2018Q2_percentage
|
435
|
-
流動資產合計 2.591658e+09 ... 46.7
|
436
|
-
|
437
|
-
"non_current_asset":
|
438
|
-
2024Q2_value ... 2018Q2_percentage
|
439
|
-
非流動資產合計 3.390706e+09 ... 53.3
|
440
|
-
|
441
|
-
"current_debt":
|
442
|
-
2024Q2_value ... 2018Q2_percentage
|
443
|
-
流動負債合計 1.048916e+09 ... 22.55
|
444
|
-
|
445
|
-
"non_current_debt":
|
446
|
-
2024Q2_value ... 2018Q2_percentage
|
447
|
-
非流動負債合計 1.113300e+09 ... 4.86
|
448
|
-
|
449
|
-
"equity":
|
450
|
-
2024Q2_value ... 2018Q2_percentage
|
451
|
-
權益總額 3.820148e+09 ... 72.59
|
452
|
-
|
453
|
-
}
|
454
|
-
```
|
455
|
-
- `'ticker'`: 股票代碼
|
456
|
-
- `'company_name'`: 公司名稱
|
457
|
-
- `'balance_sheet'`: 歷年當季資場負債表"全表"
|
458
|
-
- `'total_asset'`: 歷年當季資產總額
|
459
|
-
- `'current_asset'`: 歷年當季流動資產總額
|
460
|
-
- `'non_current_asset'`: 歷年當季非流動資產
|
461
|
-
- `'current_debt'`: 歷年當季流動負債
|
462
|
-
- `'non_current_debt'`: 歷年當季非流動負債
|
463
|
-
- `'equity'`: 歷年當季權益
|
464
|
-
|
465
|
-
### 現金流量表
|
466
|
-
``` Python
|
467
|
-
from neurostats_API.fetchers import CashFlowFetcher
|
468
|
-
db_client = DBClient("<連接的DB位置>").get_client()
|
469
|
-
ticker = 2330 # 換成tw50內任意ticker
|
470
|
-
fetcher = StatsFetcher(ticker, db_client)
|
471
|
-
|
472
|
-
fetcher.query()
|
473
|
-
```
|
474
|
-
#### 回傳
|
475
|
-
```Python
|
476
|
-
{
|
477
|
-
"ticker": "2330"
|
478
|
-
"company_name": "台積電"
|
479
|
-
"cash_flow":
|
480
|
-
2023Q3_value ... 2018Q3_percentage
|
481
|
-
營業活動之現金流量-間接法 NaN ... NaN
|
482
|
-
繼續營業單位稅前淨利(淨損) 700890335.0 ... 0.744778
|
483
|
-
... ... ... ...
|
484
|
-
以成本衡量之金融資產減資退回股款 NaN ... NaN
|
485
|
-
除列避險之金融負債∕避險 之衍生金融負債 NaN ... -0.000770
|
486
|
-
|
487
|
-
"CASHO":
|
488
|
-
2023Q3_value ... 2018Q3_percentage
|
489
|
-
營業活動之現金流量-間接法 NaN ... NaN
|
490
|
-
繼續營業單位稅前淨利(淨損) 700890335.0 ... 0.744778
|
491
|
-
... ... ... ...
|
492
|
-
持有供交易之金融資產(增加)減少 NaN ... 0.001664
|
493
|
-
負債準備增加(減少) NaN ... NaN
|
494
|
-
|
495
|
-
"CASHI":
|
496
|
-
2023Q3_value ... 2018Q3_percentage
|
497
|
-
投資活動之現金流量 NaN ... NaN
|
498
|
-
取得透過其他綜合損益按公允價值衡量之金融資產 -54832622.0 ... 0.367413
|
499
|
-
... ... ... ...
|
500
|
-
持有至到期日金融資產到期還本 NaN ... NaN
|
501
|
-
取得以成本衡量之金融資產 NaN ... NaN
|
502
|
-
|
503
|
-
"CASHF":
|
504
|
-
2023Q3_value ... 2018Q3_percentage
|
505
|
-
籌資活動之現金流量 NaN ... NaN
|
506
|
-
短期借款減少 0.0 ... NaN
|
507
|
-
... ... ... ...
|
508
|
-
以成本衡量之金融資產減資退回股款 NaN ... NaN
|
509
|
-
除列避險之金融負債∕避險 之衍生金融負債 NaN ... -0.00077
|
510
|
-
}
|
511
|
-
```
|
512
|
-
- `'ticker'`: 股票代碼
|
513
|
-
- `'company_name'`: 公司名稱
|
514
|
-
- `'cash_flow'`: 歷年當季現金流量表"全表"
|
515
|
-
- `'CASHO'`: 歷年當季營運活動之現金流量
|
516
|
-
- `'CASHI'`: 歷年當季投資活動之現金流量
|
517
|
-
- `'CASHF'`: 歷年當季籌資活動之現金流量
|
518
|
-
|
519
|
-
> 大部分資料缺失是因為尚未計算,僅先填上已經有的資料
|
520
|
-
|
521
|
-
## 籌碼面
|
522
|
-
### 法人交易
|
523
|
-
``` Python
|
524
|
-
from neurostats_API.fetchers import InstitutionFetcher
|
525
|
-
db_client = DBClient("<連接的DB位置>").get_client()
|
526
|
-
ticker = 2330 # 換成tw50內任意ticker
|
527
|
-
fetcher = StatsFetcher(ticker, db_client)
|
528
|
-
|
529
|
-
fetcher.query()
|
530
|
-
```
|
531
|
-
### 回傳
|
532
|
-
```Python
|
533
|
-
{ 'annual_trading':
|
534
|
-
close volume ... 自營商買賣超股數(避險) 三大法人買賣超股數
|
535
|
-
2024-12-02 1035.000000 31168404.0 ... -133215.0 11176252.0
|
536
|
-
2024-11-29 996.000000 40094983.0 ... 401044.0 -7880519.0
|
537
|
-
... ... ... ... ... ...
|
538
|
-
2023-12-05 559.731873 22229723.0 ... 33,400 -5,988,621
|
539
|
-
2023-12-04 563.659790 26847171.0 ... -135,991 -5,236,743
|
540
|
-
|
541
|
-
,
|
542
|
-
'latest_trading':
|
543
|
-
{ 'date': datetime.datetime(2024, 12, 2, 0, 0),
|
544
|
-
'table':
|
545
|
-
category variable ... over_buy_sell sell
|
546
|
-
0 foreign average_price ... 0.00 0.0
|
547
|
-
1 foreign percentage ... 0.00 0.0
|
548
|
-
.. ... ... ... ... ...
|
549
|
-
14 prop price ... 0.00 0.0
|
550
|
-
15 prop stock ... -133.22 217.2
|
551
|
-
}
|
552
|
-
,
|
553
|
-
'price':
|
554
|
-
{
|
555
|
-
'52weeks_range': '555.8038940429688-1100.0', # str
|
556
|
-
'close': 1035.0, # float
|
557
|
-
'last_close': 996.0, # float
|
558
|
-
'last_open': 995.0, # float
|
559
|
-
'last_range': '994.0-1010.0', # str
|
560
|
-
'last_volume': 40094.983, # float
|
561
|
-
'open': 1020.0, # float
|
562
|
-
'range': '1015.0-1040.0', # str
|
563
|
-
'volume': 32238.019 # float
|
564
|
-
}
|
565
|
-
}
|
566
|
-
```
|
567
|
-
|
568
|
-
- `annual_trading`: 對應一年內每日的交易量
|
569
|
-
- `latest_trading`: 對應當日交易
|
570
|
-
##### 欄位項目名稱
|
571
|
-
|英文|中文對應|
|
572
|
-
|----|-------|
|
573
|
-
|buy|買進|
|
574
|
-
|sell|賣出|
|
575
|
-
|over_buy_sell|買賣超|
|
576
|
-
|
577
|
-
##### category項目名稱
|
578
|
-
|英文|中文對應|
|
579
|
-
|----|-------|
|
580
|
-
|foreign|外資|
|
581
|
-
|prop|自營商|
|
582
|
-
|mutual|投信|
|
583
|
-
|institutional_investor|三大法人|
|
584
|
-
|
585
|
-
##### variable項目名稱
|
586
|
-
|英文|中文對應|
|
587
|
-
|----|-------|
|
588
|
-
|stock|股票張數|
|
589
|
-
|price|成交金額|
|
590
|
-
|average_price|均價|
|
591
|
-
|percetage|佔成交比重|
|
592
|
-
|
593
|
-
**成交金額以及均價因為資料沒有爬到而無法計算**
|
594
|
-
**仍然先將這項目加入,只是數值都會是0**
|
595
|
-
|
596
|
-
- `price`: 對應法人買賣頁面的今日與昨日交易價
|
597
|
-
請注意`range`, `last_range`, `52week_range`這三個項目型態為字串,其餘為float
|
598
|
-
|
599
|
-
##### 項目名稱
|
600
|
-
|英文|中文對應|
|
601
|
-
|----|-------|
|
602
|
-
|open|開盤價|
|
603
|
-
|close|收盤價|
|
604
|
-
|range|當日範圍|
|
605
|
-
|volume|成交張數|
|
606
|
-
|last_open|開盤價(昨)|
|
607
|
-
|last_close|收盤價(昨)|
|
608
|
-
|last_range|昨日範圍|
|
609
|
-
|last_volume|成交張數(昨)|
|
610
|
-
|52weeks_range|52週範圍|
|
611
|
-
|
612
|
-
## 資券餘額
|
613
|
-
對應iFa.ai -> 交易資訊 -> 資券變化
|
614
|
-
```Python
|
615
|
-
from neurostats_API.fetchers import MarginTradingFetcher
|
616
|
-
db_client = DBClient("<連接的DB位置>").get_client()
|
617
|
-
ticker = 2330 # 換成tw50內任意ticker
|
618
|
-
fetcher = MarginTradingFetcher(ticker, db_client)
|
619
|
-
|
620
|
-
fetcher.query()
|
621
|
-
```
|
622
|
-
|
623
|
-
### 回傳
|
624
|
-
```Python
|
625
|
-
{ 'annual_margin':
|
626
|
-
close volume ... 借券_次一營業日可限額 資券互抵
|
627
|
-
2024-12-03 1060.000000 29637.0 ... 12222.252 0.0
|
628
|
-
2024-12-02 1035.000000 31168.0 ... 12156.872 1.0
|
629
|
-
... ... ... ... ... ...
|
630
|
-
2023-12-05 559.731873 22230.0 ... 7838.665 1.0
|
631
|
-
2023-12-04 563.659790 26847.0 ... 7722.725 2.0
|
632
|
-
|
633
|
-
'latest_trading': {
|
634
|
-
'date': datetime.datetime(2024, 12, 3, 0, 0),
|
635
|
-
'margin_trading':
|
636
|
-
financing short_selling
|
637
|
-
買進 761.0 34.0
|
638
|
-
賣出 1979.0 44.0
|
639
|
-
... ... ...
|
640
|
-
次一營業日限額 6483183.0 6483183.0
|
641
|
-
現償 3.0 12.0
|
642
|
-
|
643
|
-
|
644
|
-
'security_offset': 0.0,
|
645
|
-
'stock_lending': stock_lending
|
646
|
-
當日賣出 10
|
647
|
-
當日還券 0
|
648
|
-
當日調整 0
|
649
|
-
當日餘額 14688
|
650
|
-
次一營業日可限額 12222
|
651
|
-
},
|
652
|
-
'price': { '52weeks_range': '555.8038940429688 - 1100.0',
|
653
|
-
'close': 1060.0,
|
654
|
-
'last_close': 1035.0,
|
655
|
-
'last_open': 1020.0,
|
656
|
-
'last_range': '1015.0 - 1040.0',
|
657
|
-
'last_volume': 31168.404,
|
658
|
-
'open': 1060.0,
|
659
|
-
'range': '1055.0 - 1065.0',
|
660
|
-
'volume': 29636.523}}
|
661
|
-
```
|
662
|
-
- `annual_trading`: 對應一年內每日的資券變化量
|
663
|
-
- `latest_trading`: 對應當日交易
|
664
|
-
##### 欄位項目名稱
|
665
|
-
|英文|中文對應|
|
666
|
-
|----|-------|
|
667
|
-
|financing|融資|
|
668
|
-
|short_selling|融券|
|
669
|
-
|
670
|
-
- `price`: 對應法人買賣頁面的今日與昨日交易價
|
671
|
-
##### 項目名稱
|
672
|
-
|英文|中文對應|
|
673
|
-
|----|-------|
|
674
|
-
|open|開盤價|
|
675
|
-
|close|收盤價|
|
676
|
-
|range|當日範圍|
|
677
|
-
|volume|成交張數|
|
678
|
-
|last_open|開盤價(昨)|
|
679
|
-
|last_close|收盤價(昨)|
|
680
|
-
|last_range|昨日範圍|
|
681
|
-
|last_volume|成交張數(昨)|
|
682
|
-
|52weeks_range|52週範圍|
|
683
|
-
|
684
|
-
請注意`range`, `last_range`, `52week_range`這三個項目型態為字串,其餘為float
|
685
|
-
|
686
|
-
|
687
|
-
## TEJ 相關
|
688
|
-
### 會計師簽證財務資料
|
689
|
-
```Python
|
690
|
-
from neurostats_API import FinanceReportFetcher
|
691
|
-
|
692
|
-
mongo_uri = <MongoDB 的 URI>
|
693
|
-
db_name = 'company' # 連接的DB名稱
|
694
|
-
collection_name = "TWN/AINVFQ1" # 連接的collection對象
|
695
|
-
|
696
|
-
fetcher = FinanceReportFetcher(
|
697
|
-
mongo_uri = mongo_uri,
|
698
|
-
db_name = db_name,
|
699
|
-
collection_name = collection_name
|
700
|
-
)
|
701
|
-
|
702
|
-
data = fetcher.get(
|
703
|
-
ticker = "2330" # 任意的股票代碼
|
704
|
-
fetch_mode = fetcher.FetchMode.QOQ_NOCAL # 取得模式
|
705
|
-
start_date = "2005-01-01",
|
706
|
-
end_date = "2024-12-31",
|
707
|
-
report_type = "Q",
|
708
|
-
indexes = []
|
709
|
-
) # -> pd.DataFrame or Dict[pd.DataFrame]
|
710
|
-
```
|
711
|
-
- `ticker`: 股票代碼
|
712
|
-
|
713
|
-
- `fetch_mode` : 取得模式,為`fetcher.YOY_NOCAL` 或 `fetcher.QOQ_NOCAL`
|
714
|
-
- `YOY_NOCAL`: 以end_date為準,取得與end_date同季的歷年資料,時間範圍以start_date為起始
|
715
|
-
> 例如`start_date = "2020-07-01"`, `end_date = "2024-01-01"`,會回傳2020~2024的第一季資料
|
716
|
-
|
717
|
-
- `QOQ_NOCAL`: 時間範圍內的每季資料
|
718
|
-
|
719
|
-
- `QOQ`: 時間範圍內每季的每個index的數值以及QoQ
|
720
|
-
|
721
|
-
- `YoY`: 以end_date為準,取得與end_date同季的歷年資料以及成長率,時間範圍以start_date為起始
|
722
|
-
|
723
|
-
- `start_date`: 開始日期,不設定時預設為`2005-01-01`
|
724
|
-
|
725
|
-
- `end_date`: 結束日期,不設定時預設為資料庫最新資料的日期
|
726
|
-
|
727
|
-
- `report_type`: 選擇哪種報告,預設為`Q`
|
728
|
-
- `A`: 當年累計
|
729
|
-
- `Q`: 當季數值
|
730
|
-
- `TTM`: 移動四季 (包括當季在內,往前累計四個季度)
|
731
|
-
|
732
|
-
- `indexes`: 選擇的column,需要以TEJ提供的欄位名稱為準,不提供時或提供`[]`會回傳全部column
|
733
|
-
- 範例輸入: `['bp41', 'bp51']`
|
734
|
-
|
735
|
-
[TEJ資料集連結](https://tquant.tejwin.com/%E8%B3%87%E6%96%99%E9%9B%86/)
|
736
|
-
請看 `會計師簽證財務資料`
|
737
|
-
|
738
|
-
#### 回傳資料
|
739
|
-
##### `YOY_NOCAL` 與 `QOQ_NOCAL`
|
740
|
-
為回傳`pd.DataFrame`,column名稱為<年份>Q<季>, row名稱為指定財報項目
|
741
|
-
|
742
|
-
```Python
|
743
|
-
# fetch_mode = fetcher.FetchMode.QOQ_NOCAL
|
744
|
-
2024Q3 2024Q2 2024Q1
|
745
|
-
bp41 7.082005e+07 6.394707e+07 5.761001e+07
|
746
|
-
bp51 3.111298e+09 3.145373e+09 3.091985e+09
|
747
|
-
|
748
|
-
# fetch_mode = fetcher.FetchMode.YOY_NOCAL
|
749
|
-
2024Q3 2023Q3 2022Q3
|
750
|
-
bp41 7.082005e+07 5.377231e+07 6.201822e+07
|
751
|
-
bp51 3.111298e+09 3.173919e+09 2.453840e+09
|
752
|
-
```
|
753
|
-
|
754
|
-
##### `YOY` 與 `QOQ`
|
755
|
-
回傳為`Dict[pd.DataFrame]`, key 為指定的index, DataFrame中則是該index歷年的數值與成長率
|
756
|
-
成長率單位為`%`
|
757
|
-
```Python
|
758
|
-
# fetch_mode = fetcher.FetchMode.QOQ
|
759
|
-
{
|
760
|
-
'bp41':
|
761
|
-
2024Q3 2024Q2 2024Q1
|
762
|
-
value 7.082005e+07 6.394707e+07 5.761001e+07
|
763
|
-
growth 10.75% 11.00% 0.55%,
|
764
|
-
'bp51':
|
765
|
-
2024Q3 2024Q2 2024Q1
|
766
|
-
value 3.111298e+09 3.145373e+09 3.091985e+09
|
767
|
-
growth -1.08% 1.73% -0.42%
|
768
|
-
}
|
769
|
-
|
770
|
-
# fetch_mode = fetcher.FetchMode.YOY
|
771
|
-
{
|
772
|
-
'bp41':
|
773
|
-
2024Q3 2023Q3 2022Q3
|
774
|
-
value 7.082005e+07 5.377231e+07 6.201822e+07
|
775
|
-
YoY_1 31.70% -13.30% 41.31%
|
776
|
-
YoY_3 17.29% 9.56% 18.83%
|
777
|
-
YoY_5 13.89% 12.15% 16.43%
|
778
|
-
YoY_10 12.55% 13.56% 15.60% ,
|
779
|
-
'bp51':
|
780
|
-
2024Q3 2023Q3 2022Q3
|
781
|
-
value 3.111298e+09 3.173919e+09 2.453840e+09
|
782
|
-
YoY_1 -1.97% 29.34% 31.80%
|
783
|
-
YoY_3 18.67% 27.67% 26.39%
|
784
|
-
YoY_5 20.68% 24.80% 18.15%
|
785
|
-
YoY_10 14.20% 15.87% 15.51%
|
786
|
-
}
|
787
|
-
```
|
788
|
-
|
789
|
-
### 公司自結資料
|
790
|
-
```Python
|
791
|
-
from neurostats_API import FinanceReportFetcher
|
792
|
-
|
793
|
-
fetcher = FinanceReportFetcher(
|
794
|
-
mongo_uri = mongo_uri,
|
795
|
-
db_name = db_name,
|
796
|
-
collection_name = collection_name
|
797
|
-
)
|
798
|
-
|
799
|
-
data = fetcher.get(
|
800
|
-
ticker = "2330" # 任意的股票代碼
|
801
|
-
fetch_mode = fetcher.FetchMode.QOQ_NOCAL # 取得模式
|
802
|
-
start_date = "2005-01-01",
|
803
|
-
end_date = "2024-12-31",
|
804
|
-
report_type = "Q",
|
805
|
-
indexes = []
|
806
|
-
) # -> pd.DataFrame or Dict[pd.DataFrame]
|
807
|
-
```
|
808
|
-
- `ticker`: 股票代碼
|
809
|
-
|
810
|
-
- `fetch_mode` : 取得模式,為`fetcher.YOY_NOCAL` 或 `fetcher.QOQ_NOCAL`
|
811
|
-
- `YOY_NOCAL`: 以end_date為準,取得與end_date同季的歷年資料,時間範圍以start_date為起始
|
812
|
-
> 例如`start_date = "2020-07-01"`, `end_date = "2024-01-01"`,會回傳2020~2024的第一季資料
|
813
|
-
|
814
|
-
- `QOQ_NOCAL`: 時間範圍內的每季資料
|
815
|
-
|
816
|
-
- `QOQ`: 時間範圍內每季的每個index的數值以及QoQ
|
817
|
-
|
818
|
-
- `YoY`: 以end_date為準,取得與end_date同季的歷年資料以及成長率,時間範圍以start_date為起始
|
819
|
-
|
820
|
-
- `start_date`: 開始日期,不設定時預設為`2005-01-01`
|
821
|
-
|
822
|
-
- `end_date`: 結束日期,不設定時預設為資料庫最新資料的日期
|
823
|
-
|
824
|
-
- `report_type`: 選擇哪種報告,預設為`Q`
|
825
|
-
- `A`: 當年累計
|
826
|
-
- `Q`: 當季數值
|
827
|
-
- `TTM`: 移動四季 (包括當季在內,往前累計四個季度)
|
828
|
-
|
829
|
-
- `indexes`: 選擇的column,需要以TEJ提供的欄位名稱為準,不提供時或提供`[]`會回傳全部column
|
830
|
-
- 範例輸入: `['bp41', 'bp51']`
|
831
|
-
|
832
|
-
[TEJ資料集連結](https://tquant.tejwin.com/%E8%B3%87%E6%96%99%E9%9B%86/)
|
833
|
-
請看 `公司自結數`
|
834
|
-
|
835
|
-
### 開高低收
|
836
|
-
```Python
|
837
|
-
mongo_uri = <MongoDB 的 URI>
|
838
|
-
db_name = 'company' # 連接的DB名稱
|
839
|
-
collection_name = "TWN/APIPRCD" # 連接的collection對象
|
840
|
-
from neurostats_API import TEJStockPriceFetcher
|
841
|
-
|
842
|
-
fetcher = TEJStockPriceFetcher(
|
843
|
-
mongo_uri = mongo_uri,
|
844
|
-
db_name = db_name,
|
845
|
-
collection_name = collection_name
|
846
|
-
)
|
847
|
-
|
848
|
-
data = fetcher.get(
|
849
|
-
ticker = "2330" # 任意的股票代碼
|
850
|
-
start_date = "2005-01-01",
|
851
|
-
period = "3m"
|
852
|
-
) # -> pd.DataFrame
|
853
|
-
```
|
854
|
-
- `ticker`: 股票代碼
|
855
|
-
- `start_date`: 搜尋範圍的開始日期
|
856
|
-
- `period`: 搜尋的時間範圍長度
|
857
|
-
|
858
|
-
`period`與`start_date`同時存在時以period優先
|