akshare 1.14.95__py3-none-any.whl → 1.14.97__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.
Potentially problematic release.
This version of akshare might be problematic. Click here for more details.
- akshare/__init__.py +4 -26
- akshare/stock/stock_profile_cninfo.py +7 -7
- akshare/stock/stock_xq.py +7 -12
- akshare/stock_feature/stock_board_industry_ths.py +55 -0
- akshare/stock_feature/stock_ztb_em.py +4 -4
- {akshare-1.14.95.dist-info → akshare-1.14.97.dist-info}/METADATA +1 -1
- {akshare-1.14.95.dist-info → akshare-1.14.97.dist-info}/RECORD +10 -14
- akshare/futures_derivative/futures_index_price_nh.py +0 -61
- akshare/futures_derivative/futures_index_return_nh.py +0 -47
- akshare/futures_derivative/futures_index_volatility_nh.py +0 -53
- akshare/futures_derivative/futures_other_index_nh.py +0 -144
- {akshare-1.14.95.dist-info → akshare-1.14.97.dist-info}/LICENSE +0 -0
- {akshare-1.14.95.dist-info → akshare-1.14.97.dist-info}/WHEEL +0 -0
- {akshare-1.14.95.dist-info → akshare-1.14.97.dist-info}/top_level.txt +0 -0
akshare/__init__.py
CHANGED
|
@@ -2906,9 +2906,11 @@ amac_manager_cancelled_info # 中国证券投资基金业协会-信息公示-诚
|
|
|
2906
2906
|
1.14.93 fix: fix stock_zt_pool_em interface
|
|
2907
2907
|
1.14.94 fix: fix stock_zt_pool_strong_em interface
|
|
2908
2908
|
1.14.95 fix: fix stock_zt_pool_sub_new_em interface
|
|
2909
|
+
1.14.96 fix: fix stock_zt_pool_sub_new_em interface
|
|
2910
|
+
1.14.97 fix: fix stock_profile_cninfo interface
|
|
2909
2911
|
"""
|
|
2910
2912
|
|
|
2911
|
-
__version__ = "1.14.
|
|
2913
|
+
__version__ = "1.14.97"
|
|
2912
2914
|
__author__ = "AKFamily"
|
|
2913
2915
|
|
|
2914
2916
|
import sys
|
|
@@ -3456,17 +3458,6 @@ from akshare.stock_feature.stock_hot_xq import (
|
|
|
3456
3458
|
stock_hot_tweet_xq,
|
|
3457
3459
|
)
|
|
3458
3460
|
|
|
3459
|
-
"""
|
|
3460
|
-
南华期货-板块指数涨跌
|
|
3461
|
-
南华期货-品种指数涨跌
|
|
3462
|
-
南华期货-相关系数矩阵
|
|
3463
|
-
"""
|
|
3464
|
-
from akshare.futures_derivative.futures_other_index_nh import (
|
|
3465
|
-
futures_correlation_nh,
|
|
3466
|
-
futures_board_index_nh,
|
|
3467
|
-
futures_variety_index_nh,
|
|
3468
|
-
)
|
|
3469
|
-
|
|
3470
3461
|
"""
|
|
3471
3462
|
东方财富-股票数据-龙虎榜
|
|
3472
3463
|
"""
|
|
@@ -4152,6 +4143,7 @@ from akshare.stock_feature.stock_board_industry_ths import (
|
|
|
4152
4143
|
stock_board_industry_info_ths,
|
|
4153
4144
|
stock_board_industry_index_ths,
|
|
4154
4145
|
stock_ipo_benefit_ths,
|
|
4146
|
+
stock_xgsr_ths,
|
|
4155
4147
|
)
|
|
4156
4148
|
|
|
4157
4149
|
"""
|
|
@@ -4962,20 +4954,6 @@ from akshare.index.index_sw import (
|
|
|
4962
4954
|
"""
|
|
4963
4955
|
from akshare.article.epu_index import article_epu_index
|
|
4964
4956
|
|
|
4965
|
-
"""
|
|
4966
|
-
南华期货-南华指数
|
|
4967
|
-
"""
|
|
4968
|
-
from akshare.futures_derivative.futures_index_return_nh import (
|
|
4969
|
-
futures_return_index_nh,
|
|
4970
|
-
)
|
|
4971
|
-
from akshare.futures_derivative.futures_index_price_nh import (
|
|
4972
|
-
futures_price_index_nh,
|
|
4973
|
-
futures_index_symbol_table_nh,
|
|
4974
|
-
)
|
|
4975
|
-
from akshare.futures_derivative.futures_index_volatility_nh import (
|
|
4976
|
-
futures_volatility_index_nh,
|
|
4977
|
-
)
|
|
4978
|
-
|
|
4979
4957
|
"""
|
|
4980
4958
|
空气-河北
|
|
4981
4959
|
"""
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env python
|
|
2
2
|
# -*- coding:utf-8 -*-
|
|
3
3
|
"""
|
|
4
|
-
Date: 2024/
|
|
4
|
+
Date: 2024/10/14 22:00
|
|
5
5
|
Desc: 巨潮资讯-个股-公司概况
|
|
6
|
-
|
|
6
|
+
https://webapi.cninfo.com.cn/#/company
|
|
7
7
|
"""
|
|
8
8
|
|
|
9
9
|
import pandas as pd
|
|
10
|
-
import requests
|
|
11
10
|
import py_mini_racer
|
|
11
|
+
import requests
|
|
12
12
|
|
|
13
13
|
from akshare.datasets import get_ths_js
|
|
14
14
|
|
|
@@ -30,14 +30,14 @@ def _get_file_content_ths(file: str = "cninfo.js") -> str:
|
|
|
30
30
|
def stock_profile_cninfo(symbol: str = "600030") -> pd.DataFrame:
|
|
31
31
|
"""
|
|
32
32
|
巨潮资讯-个股-公司概况
|
|
33
|
-
|
|
33
|
+
https://webapi.cninfo.com.cn/#/company
|
|
34
34
|
:param symbol: 股票代码
|
|
35
35
|
:type symbol: str
|
|
36
36
|
:return: 公司概况
|
|
37
37
|
:rtype: pandas.DataFrame
|
|
38
38
|
:raise: Exception,如果服务器返回的数据无法被解析
|
|
39
39
|
"""
|
|
40
|
-
url = "
|
|
40
|
+
url = "https://webapi.cninfo.com.cn/api/sysapi/p_sysapi1133"
|
|
41
41
|
params = {
|
|
42
42
|
"scode": symbol,
|
|
43
43
|
}
|
|
@@ -53,10 +53,10 @@ def stock_profile_cninfo(symbol: str = "600030") -> pd.DataFrame:
|
|
|
53
53
|
"Content-Length": "0",
|
|
54
54
|
"Host": "webapi.cninfo.com.cn",
|
|
55
55
|
"Accept-Enckey": mcode,
|
|
56
|
-
"Origin": "
|
|
56
|
+
"Origin": "https://webapi.cninfo.com.cn",
|
|
57
57
|
"Pragma": "no-cache",
|
|
58
58
|
"Proxy-Connection": "keep-alive",
|
|
59
|
-
"Referer": "
|
|
59
|
+
"Referer": "https://webapi.cninfo.com.cn/",
|
|
60
60
|
"X-Requested-With": "XMLHttpRequest",
|
|
61
61
|
}
|
|
62
62
|
r = requests.post(url, params=params, headers=headers)
|
akshare/stock/stock_xq.py
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# !/usr/bin/env python
|
|
2
2
|
# -*- coding:utf-8 -*-
|
|
3
3
|
"""
|
|
4
|
-
Date: 2024/
|
|
4
|
+
Date: 2024/10/14 21:20
|
|
5
5
|
Desc: 雪球-行情中心-个股
|
|
6
6
|
https://xueqiu.com/S/SH513520
|
|
7
7
|
"""
|
|
@@ -13,22 +13,18 @@ import pandas as pd
|
|
|
13
13
|
import requests
|
|
14
14
|
|
|
15
15
|
|
|
16
|
-
def _convert_timestamp(timestamp_ms):
|
|
16
|
+
def _convert_timestamp(timestamp_ms: int) -> str:
|
|
17
17
|
"""
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
返回:
|
|
24
|
-
datetime: 对应的日期和时间,保留到秒
|
|
18
|
+
时间戳转换为字符串时间
|
|
19
|
+
:param timestamp_ms: 时间戳
|
|
20
|
+
:type timestamp_ms: int
|
|
21
|
+
:return: 字符串
|
|
22
|
+
:rtype: str
|
|
25
23
|
"""
|
|
26
24
|
# 将毫秒转换为秒
|
|
27
25
|
timestamp_s = timestamp_ms / 1000
|
|
28
|
-
|
|
29
26
|
# 使用 fromtimestamp 方法将时间戳转换为 datetime 对象
|
|
30
27
|
datetime_obj = datetime.fromtimestamp(timestamp_s)
|
|
31
|
-
|
|
32
28
|
return datetime_obj.strftime("%Y-%m-%d %H:%M:%S")
|
|
33
29
|
|
|
34
30
|
|
|
@@ -122,7 +118,6 @@ def stock_individual_spot_xq(
|
|
|
122
118
|
temp_df.loc[temp_df["item"] == "时间", "value"] = temp_df.loc[
|
|
123
119
|
temp_df["item"] == "时间", "value"
|
|
124
120
|
].apply(lambda x: _convert_timestamp(int(x)))
|
|
125
|
-
|
|
126
121
|
return temp_df
|
|
127
122
|
|
|
128
123
|
|
|
@@ -219,6 +219,58 @@ def stock_board_industry_index_ths(
|
|
|
219
219
|
return big_df
|
|
220
220
|
|
|
221
221
|
|
|
222
|
+
def stock_xgsr_ths() -> pd.DataFrame:
|
|
223
|
+
"""
|
|
224
|
+
同花顺-数据中心-新股数据-新股上市首日
|
|
225
|
+
https://data.10jqka.com.cn/ipo/xgsr/
|
|
226
|
+
:return: 新股上市首日
|
|
227
|
+
:rtype: pandas.DataFrame
|
|
228
|
+
"""
|
|
229
|
+
js_code = py_mini_racer.MiniRacer()
|
|
230
|
+
js_content = _get_file_content_ths("ths.js")
|
|
231
|
+
js_code.eval(js_content)
|
|
232
|
+
v_code = js_code.call("v")
|
|
233
|
+
headers = {
|
|
234
|
+
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
|
|
235
|
+
"Chrome/89.0.4389.90 Safari/537.36",
|
|
236
|
+
"Cookie": f"v={v_code}",
|
|
237
|
+
"hexin-v": v_code,
|
|
238
|
+
}
|
|
239
|
+
url = "https://data.10jqka.com.cn/ipo/xgsr/field/SSRQ/order/desc/page/1/ajax/1/free/1/"
|
|
240
|
+
r = requests.get(url, headers=headers)
|
|
241
|
+
soup = BeautifulSoup(r.text, features="lxml")
|
|
242
|
+
page_num = soup.find(name="span", attrs={"class": "page_info"}).text.split("/")[1]
|
|
243
|
+
big_df = pd.DataFrame()
|
|
244
|
+
tqdm = get_tqdm()
|
|
245
|
+
for page in tqdm(range(1, int(page_num) + 1), leave=False):
|
|
246
|
+
url = f"https://data.10jqka.com.cn/ipo/xgsr/field/SSRQ/order/desc/page/{page}/ajax/1/free/1/"
|
|
247
|
+
v_code = js_code.call("v")
|
|
248
|
+
headers = {
|
|
249
|
+
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
|
|
250
|
+
"Chrome/89.0.4389.90 Safari/537.36",
|
|
251
|
+
"Cookie": f"v={v_code}",
|
|
252
|
+
"hexin-v": v_code,
|
|
253
|
+
}
|
|
254
|
+
r = requests.get(url, headers=headers)
|
|
255
|
+
temp_df = pd.read_html(StringIO(r.text))[0]
|
|
256
|
+
big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
|
|
257
|
+
|
|
258
|
+
big_df.rename(columns={"发行价(元)": "发行价"}, inplace=True)
|
|
259
|
+
big_df["序号"] = pd.to_numeric(big_df["序号"], errors="coerce")
|
|
260
|
+
big_df["股票代码"] = big_df["股票代码"].astype(str).str.zfill(6)
|
|
261
|
+
big_df["发行价"] = pd.to_numeric(big_df["发行价"], errors="coerce")
|
|
262
|
+
big_df["最新价"] = pd.to_numeric(big_df["最新价"], errors="coerce")
|
|
263
|
+
big_df["首日开盘价"] = pd.to_numeric(big_df["首日开盘价"], errors="coerce")
|
|
264
|
+
big_df["首日收盘价"] = pd.to_numeric(big_df["首日收盘价"], errors="coerce")
|
|
265
|
+
big_df["首日最高价"] = pd.to_numeric(big_df["首日最高价"], errors="coerce")
|
|
266
|
+
big_df["首日最低价"] = pd.to_numeric(big_df["首日最低价"], errors="coerce")
|
|
267
|
+
big_df["首日涨跌幅"] = (
|
|
268
|
+
pd.to_numeric(big_df["首日涨跌幅"].str.strip("%"), errors="coerce") / 100
|
|
269
|
+
)
|
|
270
|
+
big_df["上市日期"] = pd.to_datetime(big_df["上市日期"], errors="coerce").dt.date
|
|
271
|
+
return big_df
|
|
272
|
+
|
|
273
|
+
|
|
222
274
|
def stock_ipo_benefit_ths() -> pd.DataFrame:
|
|
223
275
|
"""
|
|
224
276
|
同花顺-数据中心-新股数据-IPO受益股
|
|
@@ -350,5 +402,8 @@ if __name__ == "__main__":
|
|
|
350
402
|
stock_board_industry_index_ths_df = stock_board_industry_index_ths(symbol=stock)
|
|
351
403
|
print(stock_board_industry_index_ths_df)
|
|
352
404
|
|
|
405
|
+
stock_xgsr_ths_df = stock_xgsr_ths()
|
|
406
|
+
print(stock_xgsr_ths_df)
|
|
407
|
+
|
|
353
408
|
stock_ipo_benefit_ths_df = stock_ipo_benefit_ths()
|
|
354
409
|
print(stock_ipo_benefit_ths_df)
|
|
@@ -345,7 +345,7 @@ def stock_zt_pool_sub_new_em(date: str = "20241011") -> pd.DataFrame:
|
|
|
345
345
|
return temp_df
|
|
346
346
|
|
|
347
347
|
|
|
348
|
-
def stock_zt_pool_zbgc_em(date: str = "
|
|
348
|
+
def stock_zt_pool_zbgc_em(date: str = "20241011") -> pd.DataFrame:
|
|
349
349
|
"""
|
|
350
350
|
东方财富网-行情中心-涨停板行情-炸板股池
|
|
351
351
|
https://quote.eastmoney.com/ztb/detail#type=zbgc
|
|
@@ -428,7 +428,7 @@ def stock_zt_pool_zbgc_em(date: str = "20231129") -> pd.DataFrame:
|
|
|
428
428
|
return temp_df
|
|
429
429
|
|
|
430
430
|
|
|
431
|
-
def stock_zt_pool_dtgc_em(date: str = "
|
|
431
|
+
def stock_zt_pool_dtgc_em(date: str = "20241011") -> pd.DataFrame:
|
|
432
432
|
"""
|
|
433
433
|
东方财富网-行情中心-涨停板行情-跌停股池
|
|
434
434
|
https://quote.eastmoney.com/ztb/detail#type=dtgc
|
|
@@ -528,8 +528,8 @@ if __name__ == "__main__":
|
|
|
528
528
|
stock_zt_pool_sub_new_em_df = stock_zt_pool_sub_new_em(date="20241011")
|
|
529
529
|
print(stock_zt_pool_sub_new_em_df)
|
|
530
530
|
|
|
531
|
-
stock_zt_pool_zbgc_em_df = stock_zt_pool_zbgc_em(date="
|
|
531
|
+
stock_zt_pool_zbgc_em_df = stock_zt_pool_zbgc_em(date="20241011")
|
|
532
532
|
print(stock_zt_pool_zbgc_em_df)
|
|
533
533
|
|
|
534
|
-
stock_zt_pool_dtgc_em_df = stock_zt_pool_dtgc_em(date="
|
|
534
|
+
stock_zt_pool_dtgc_em_df = stock_zt_pool_dtgc_em(date="20241011")
|
|
535
535
|
print(stock_zt_pool_dtgc_em_df)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
akshare/__init__.py,sha256=
|
|
1
|
+
akshare/__init__.py,sha256=kAKFKMxOwOtG6XNSbtazOqwPfsCBLwYdVWne2qPTSEo,182171
|
|
2
2
|
akshare/datasets.py,sha256=-qdwaQjgBlftX84uM74KJqCYJYkQ50PV416_neA4uls,995
|
|
3
3
|
akshare/air/__init__.py,sha256=RMTf1bT5EOE3ttWpn3hGu1LtUmsVxDoa0W7W0gXHOy8,81
|
|
4
4
|
akshare/air/air_hebei.py,sha256=xIXNGLK7IGYqrkteM9fxnHAwWqk6PCQs6D9-ggZ7byY,4442
|
|
@@ -139,11 +139,7 @@ akshare/futures_derivative/futures_contract_info_ine.py,sha256=DTG8S5ZaovlXpcQ5A
|
|
|
139
139
|
akshare/futures_derivative/futures_contract_info_shfe.py,sha256=2LtmACu_PcVlM9k5bEfMM44Vz5yDHXA7mE9alEZepgA,2462
|
|
140
140
|
akshare/futures_derivative/futures_cot_sina.py,sha256=jWvy20Budu0ZtJw9-O2pXWJX80kp6zK5fe8s9KCqEyk,2742
|
|
141
141
|
akshare/futures_derivative/futures_hog.py,sha256=8VVd7w5LCUZWFdkffV7-dqihGcqdJlR1ks1evpcU9O0,11613
|
|
142
|
-
akshare/futures_derivative/futures_index_price_nh.py,sha256=TzrGGHvyz93UPdPGMokQb16plE1CMSaJaDq4vHdE-2g,2275
|
|
143
|
-
akshare/futures_derivative/futures_index_return_nh.py,sha256=56V3Mic8a-bKlkv4bUm_vTUC1u5qdDzrlZwsbUTCTPM,1734
|
|
144
142
|
akshare/futures_derivative/futures_index_sina.py,sha256=G1dPeQcsHwMG81J4MqVjkHqFBM363ktzJmNI-EBsi3A,5902
|
|
145
|
-
akshare/futures_derivative/futures_index_volatility_nh.py,sha256=IInn3yf2RqBStFcS8dHtqr3YW8myBD71v_04KA5JAy0,1824
|
|
146
|
-
akshare/futures_derivative/futures_other_index_nh.py,sha256=b2oUWSuUIEL-lr2tUK6bIVxIhFNXbp7y2IaVXWqkcz0,4414
|
|
147
143
|
akshare/futures_derivative/futures_spot_sys.py,sha256=Ufqh7S7UAeW_zkASap_DZGqwyW_Vgrf2UOhedYhe-BU,3351
|
|
148
144
|
akshare/fx/__init__.py,sha256=fvH_pVxTFPnzXvnPvJZDD_vv0IBJusHkJxZ3dJ8ogl8,82
|
|
149
145
|
akshare/fx/cons.py,sha256=6xxySOGmJ-sd4mygg0dT48oz-vcyOQcqWY4T2h3wjQQ,585
|
|
@@ -266,7 +262,7 @@ akshare/stock/stock_intraday_sina.py,sha256=HMuAAO2Teu4NUrOcBvyJdxYgWx-51qJCdtcq
|
|
|
266
262
|
akshare/stock/stock_ipo_summary_cninfo.py,sha256=Ma-54GsOOhRWxilLH-Qmm0VVbpJQGf2XWKaJ8NBSgAY,3847
|
|
267
263
|
akshare/stock/stock_new_cninfo.py,sha256=EOuZowDLQSSHyPAwXcuPXbQkqhbz2nRBZsM7o2ZWILE,5725
|
|
268
264
|
akshare/stock/stock_news_cx.py,sha256=IuNo67ToW6SNT9aZVTDqQMnlLFw4QV-_FWSw-9vgfB4,1055
|
|
269
|
-
akshare/stock/stock_profile_cninfo.py,sha256=
|
|
265
|
+
akshare/stock/stock_profile_cninfo.py,sha256=UgUH3GK52Xl25s3WIXlFmVTlKzDd6QGiTTjj0l-GKsk,3170
|
|
270
266
|
akshare/stock/stock_rank_forecast.py,sha256=5U0fa4tzhqKrw5kDRahUCFSrbrEx_aRtlqZq2mpeJaU,3199
|
|
271
267
|
akshare/stock/stock_repurchase_em.py,sha256=XVAUD_yd48wqxbMbfU0Ne2SNFOSG9NBklUhf3pl6cKc,5000
|
|
272
268
|
akshare/stock/stock_share_changes_cninfo.py,sha256=zg-1KHPbxdMRMr4wYY8LA30D-u47YesbEDt_MgCMk_k,4846
|
|
@@ -278,7 +274,7 @@ akshare/stock/stock_us_js.py,sha256=wwZpRvVHqjxwd0cb2O5vtRW8Zw90Kdl5O4XNwoevN64,
|
|
|
278
274
|
akshare/stock/stock_us_pink.py,sha256=jgkEjPm_qa4zSN1MH0unHJopSkcF-8Rqlp5Kus2KaQ8,3062
|
|
279
275
|
akshare/stock/stock_us_sina.py,sha256=3bD41Y5GqDTv52bx5jbjrt0psaHZS10UL_e7E2B6wW8,8146
|
|
280
276
|
akshare/stock/stock_weibo_nlp.py,sha256=eM7ofsNSrKiYeS0g38Qj9CxT6dkJZrn_pmziIiTqp4U,3286
|
|
281
|
-
akshare/stock/stock_xq.py,sha256=
|
|
277
|
+
akshare/stock/stock_xq.py,sha256=pdqikdhjWR_eqAVJ8bMWDdsa8BE8E1MBNagvMKSvymg,4619
|
|
282
278
|
akshare/stock/stock_zh_a_sina.py,sha256=gryRmUwqF9PyNl-fPhD72y5nfNmLVEnvzjZDhAe-cpg,18862
|
|
283
279
|
akshare/stock/stock_zh_a_special.py,sha256=RRXkeZtRWm_maIPWgxvhBdX6eNybECjhSuEesZHRFJI,10294
|
|
284
280
|
akshare/stock/stock_zh_a_tick_tx.py,sha256=TJUAWLKAeoLEaVVJQlj0t-1smZGoAO0X0rPsUPVhZZ4,2131
|
|
@@ -295,7 +291,7 @@ akshare/stock_feature/stock_a_pe_and_pb.py,sha256=8R67gE1vUYtu9bLbZNXD88kHMcKSnB
|
|
|
295
291
|
akshare/stock_feature/stock_account_em.py,sha256=PA-531xnv5uerFrYGc40mk8q8O0DGciHC_XVlE9udis,3342
|
|
296
292
|
akshare/stock_feature/stock_all_pb.py,sha256=2yQLq03qXNbTB5AtJ-Q8uJldOluElH5zTjYneY3aaZ0,1194
|
|
297
293
|
akshare/stock_feature/stock_analyst_em.py,sha256=Md3_G-Px0O1lk4dx5dCEKl8Vjgwt79Sh-FSh_sW1Elo,9508
|
|
298
|
-
akshare/stock_feature/stock_board_industry_ths.py,sha256=
|
|
294
|
+
akshare/stock_feature/stock_board_industry_ths.py,sha256=KvaWYEdxidYo4qL4LRJOZRsTNe0e3GeiBq1YLi8mf0I,15084
|
|
299
295
|
akshare/stock_feature/stock_buffett_index_lg.py,sha256=NpNccHmGjtqLz6aUladB6InPzO2pjoImbgCgmNEYUuM,2027
|
|
300
296
|
akshare/stock_feature/stock_classify_sina.py,sha256=Lg7ROG5W9HioFRplJI2rZ6tAAHM09N3g9qF6kReIQYI,3210
|
|
301
297
|
akshare/stock_feature/stock_comment_em.py,sha256=uSOS5YmyXB9jSDsZf1fNC0RPGTE6_4RzjwxaewhJQtc,13697
|
|
@@ -352,7 +348,7 @@ akshare/stock_feature/stock_zdhtmx_em.py,sha256=2BpJQntGgUlEIOmDlepOiOkw-e-tKLRa
|
|
|
352
348
|
akshare/stock_feature/stock_zf_pg.py,sha256=nYJ1uLOBdzM_PDyq4MNeWoCTripFMAPoAiaPfhDqkcg,6343
|
|
353
349
|
akshare/stock_feature/stock_zh_valuation_baidu.py,sha256=oxYIHP68pFvAYyqjCvZp3a9tpczTFiWhSxZ0w4eyo7I,1904
|
|
354
350
|
akshare/stock_feature/stock_zh_vote_baidu.py,sha256=SsSNnCq7PDFMzWFcPFcC_MSc9rua412P14vHc923gmo,1761
|
|
355
|
-
akshare/stock_feature/stock_ztb_em.py,sha256=
|
|
351
|
+
akshare/stock_feature/stock_ztb_em.py,sha256=DducYpjOOZmguhVlMbFX33EHVzoAMMjNvbef_oXuZPo,17019
|
|
356
352
|
akshare/stock_feature/ths.js,sha256=AWPkHf3L2Il1UUL0F5qDqNn1dfU0OlZBNUbMf8AmI3Y,39664
|
|
357
353
|
akshare/stock_fundamental/__init__.py,sha256=jiXoO9OXiMxB0wHaPQkuxNckYuoFKtzuhZL1ytnE2nQ,82
|
|
358
354
|
akshare/stock_fundamental/stock_finance.py,sha256=WuYvLo8xZxH-VS-6P-S31yzsKA1ojrwegcLXP2byle4,30676
|
|
@@ -382,8 +378,8 @@ akshare/utils/token_process.py,sha256=K4rGXjh_tgugbRcyOK2h2x0jP3PT65IIK7nxhUKhOe
|
|
|
382
378
|
akshare/utils/tqdm.py,sha256=MuPNwcswkOGjwWQOMWXi9ZvQ_RmW4obCWRj2i7HM7FE,847
|
|
383
379
|
tests/__init__.py,sha256=gNzhlO0UPjFq6Ieb38kaVIODXv4cTDByrdohAZnDYt4,82
|
|
384
380
|
tests/test_func.py,sha256=j1MGYbZI2if2j_LY1S4FLsf4qfq4NwVqD5wmRlv5Log,832
|
|
385
|
-
akshare-1.14.
|
|
386
|
-
akshare-1.14.
|
|
387
|
-
akshare-1.14.
|
|
388
|
-
akshare-1.14.
|
|
389
|
-
akshare-1.14.
|
|
381
|
+
akshare-1.14.97.dist-info/LICENSE,sha256=mmSZCPgfHiVw34LXuFArd-SUgQtBJ_QsIlh-kWlDHfs,1073
|
|
382
|
+
akshare-1.14.97.dist-info/METADATA,sha256=aGlWSLMZYDW_jzOTgWPQ2jIHNqbxw8EddhIVgFNPXM8,14163
|
|
383
|
+
akshare-1.14.97.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
|
|
384
|
+
akshare-1.14.97.dist-info/top_level.txt,sha256=jsf9ZzZPmHaISTVumQPsAw7vv7Yv-PdEVW70SMEelQQ,14
|
|
385
|
+
akshare-1.14.97.dist-info/RECORD,,
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env python
|
|
2
|
-
# -*- coding:utf-8 -*-
|
|
3
|
-
"""
|
|
4
|
-
Date: 2023/11/17 18:20
|
|
5
|
-
Desc: 南华期货-商品指数历史走势-价格指数-数值
|
|
6
|
-
https://www.nanhua.net/nhzc/varietytrend.html
|
|
7
|
-
1000 点开始, 用收益率累计
|
|
8
|
-
https://www.nanhua.net/ianalysis/varietyindex/price/A.json?t=1574932974280
|
|
9
|
-
"""
|
|
10
|
-
import time
|
|
11
|
-
|
|
12
|
-
import pandas as pd
|
|
13
|
-
import requests
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
def futures_index_symbol_table_nh() -> pd.DataFrame:
|
|
17
|
-
"""
|
|
18
|
-
南华期货-南华指数所有品种一览表
|
|
19
|
-
https://www.nanhua.net/ianalysis/varietyindex/price/A.json?t=1574932974280
|
|
20
|
-
:return: 南华指数所有品种一览表
|
|
21
|
-
:rtype: pandas.DataFrame
|
|
22
|
-
"""
|
|
23
|
-
url = "https://www.nanhua.net/ianalysis/plate-variety.json"
|
|
24
|
-
r = requests.get(url)
|
|
25
|
-
data_json = r.json()
|
|
26
|
-
temp_df = pd.DataFrame(data_json)
|
|
27
|
-
temp_df["firstday"] = pd.to_datetime(temp_df["firstday"], errors="coerce").dt.date
|
|
28
|
-
return temp_df
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
def futures_price_index_nh(symbol: str = "A") -> pd.DataFrame:
|
|
32
|
-
"""
|
|
33
|
-
南华期货-南华指数单品种-价格-所有历史数据
|
|
34
|
-
https://www.nanhua.net/ianalysis/varietyindex/price/A.json?t=1574932974280
|
|
35
|
-
:param symbol: 通过 ak.futures_index_symbol_table_nh() 获取
|
|
36
|
-
:type symbol: str
|
|
37
|
-
:return: 南华期货-南华指数单品种-价格-所有历史数据
|
|
38
|
-
:rtype: pandas.Series
|
|
39
|
-
"""
|
|
40
|
-
symbol_df = futures_index_symbol_table_nh()
|
|
41
|
-
symbol_list = symbol_df["code"].tolist()
|
|
42
|
-
if symbol in symbol_list:
|
|
43
|
-
t = time.time()
|
|
44
|
-
url = f"https://www.nanhua.net/ianalysis/varietyindex/price/{symbol}.json?t={int(round(t * 1000))}"
|
|
45
|
-
r = requests.get(url)
|
|
46
|
-
data_json = r.json()
|
|
47
|
-
temp_df = pd.DataFrame(data_json)
|
|
48
|
-
temp_df.columns = ["date", "value"]
|
|
49
|
-
temp_df["date"] = pd.to_datetime(temp_df["date"], unit="ms", errors="coerce")
|
|
50
|
-
temp_df["date"] = temp_df["date"].dt.tz_localize("UTC")
|
|
51
|
-
temp_df["date"] = temp_df["date"].dt.tz_convert("Asia/Shanghai").dt.date
|
|
52
|
-
temp_df["value"] = pd.to_numeric(temp_df["value"], errors="coerce")
|
|
53
|
-
return temp_df
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
if __name__ == "__main__":
|
|
57
|
-
futures_index_symbol_table_nh_df = futures_index_symbol_table_nh()
|
|
58
|
-
print(futures_index_symbol_table_nh_df)
|
|
59
|
-
|
|
60
|
-
futures_price_index_nh_df = futures_price_index_nh(symbol="A")
|
|
61
|
-
print(futures_price_index_nh_df)
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env python
|
|
2
|
-
# -*- coding:utf-8 -*-
|
|
3
|
-
"""
|
|
4
|
-
Date: 2023/11/17 18:20
|
|
5
|
-
Desc: 南华期货-商品指数历史走势-收益率指数-数值
|
|
6
|
-
https://www.nanhua.net/nhzc/varietytrend.html
|
|
7
|
-
1000 点开始, 用收益率累计
|
|
8
|
-
https://www.nanhua.net/ianalysis/varietyindex/index/NHCI.json?t=1574932290494
|
|
9
|
-
"""
|
|
10
|
-
import time
|
|
11
|
-
|
|
12
|
-
import pandas as pd
|
|
13
|
-
import requests
|
|
14
|
-
|
|
15
|
-
from akshare.futures_derivative.futures_index_price_nh import (
|
|
16
|
-
futures_index_symbol_table_nh,
|
|
17
|
-
)
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
def futures_return_index_nh(symbol: str = "Y") -> pd.DataFrame:
|
|
21
|
-
"""
|
|
22
|
-
南华期货-南华指数单品种-收益率-所有历史数据
|
|
23
|
-
https://www.nanhua.net/ianalysis/varietyindex/index/NHCI.json?t=1574932290494
|
|
24
|
-
:param symbol: 通过 ak.futures_index_symbol_table_nh() 获取
|
|
25
|
-
:type symbol: str
|
|
26
|
-
:return: 南华指数单品种-收益率-所有历史数据
|
|
27
|
-
:rtype: pandas.Series
|
|
28
|
-
"""
|
|
29
|
-
symbol_df = futures_index_symbol_table_nh()
|
|
30
|
-
symbol_list = symbol_df["code"].tolist()
|
|
31
|
-
if symbol in symbol_list:
|
|
32
|
-
t = time.time()
|
|
33
|
-
url = f"https://www.nanhua.net/ianalysis/varietyindex/index/{symbol}.json?t={int(round(t * 1000))}"
|
|
34
|
-
r = requests.get(url)
|
|
35
|
-
data_json = r.json()
|
|
36
|
-
temp_df = pd.DataFrame(data_json)
|
|
37
|
-
temp_df.columns = ["date", "value"]
|
|
38
|
-
temp_df["date"] = pd.to_datetime(temp_df["date"], unit="ms", errors="coerce")
|
|
39
|
-
temp_df["date"] = temp_df["date"].dt.tz_localize("UTC")
|
|
40
|
-
temp_df["date"] = temp_df["date"].dt.tz_convert("Asia/Shanghai").dt.date
|
|
41
|
-
temp_df["value"] = pd.to_numeric(temp_df["value"], errors="coerce")
|
|
42
|
-
return temp_df
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
if __name__ == "__main__":
|
|
46
|
-
futures_return_index_nh_df = futures_return_index_nh(symbol="NHCI")
|
|
47
|
-
print(futures_return_index_nh_df)
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env python
|
|
2
|
-
# -*- coding:utf-8 -*-
|
|
3
|
-
"""
|
|
4
|
-
Date: 2024/5/19 15:30
|
|
5
|
-
Desc: 南华期货-商品指数历史走势-收益率指数-波动率
|
|
6
|
-
https://www.nanhua.net/nhzc/varietytrend.html
|
|
7
|
-
1000 点开始, 用收益率累计
|
|
8
|
-
目标地址: https://www.nanhua.net/ianalysis/volatility/20/NHCI.json?t=1574932291399
|
|
9
|
-
"""
|
|
10
|
-
|
|
11
|
-
import time
|
|
12
|
-
|
|
13
|
-
import pandas as pd
|
|
14
|
-
import requests
|
|
15
|
-
|
|
16
|
-
from akshare.futures_derivative.futures_index_price_nh import (
|
|
17
|
-
futures_index_symbol_table_nh,
|
|
18
|
-
)
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
def futures_volatility_index_nh(
|
|
22
|
-
symbol: str = "NHCI", period: str = "20"
|
|
23
|
-
) -> pd.DataFrame:
|
|
24
|
-
"""
|
|
25
|
-
南华期货-南华指数单品种-波动率-所有历史数据
|
|
26
|
-
https://www.nanhua.net/nhzc/varietytrend.html
|
|
27
|
-
:param symbol: 通过 ak.futures_index_symbol_table_nh() 获取
|
|
28
|
-
:type symbol: str
|
|
29
|
-
:param period: 波动周期 choice of {'5', '20', '60', '120'}
|
|
30
|
-
:type period: str
|
|
31
|
-
:return: 波动率-所有历史数据
|
|
32
|
-
:rtype: pandas.DataFrame
|
|
33
|
-
"""
|
|
34
|
-
symbol_df = futures_index_symbol_table_nh()
|
|
35
|
-
if symbol in symbol_df["code"].tolist():
|
|
36
|
-
t = time.time()
|
|
37
|
-
url = f"https://www.nanhua.net/ianalysis/volatility/{period}/{symbol}.json?t={int(round(t * 1000))}"
|
|
38
|
-
r = requests.get(url)
|
|
39
|
-
data_json = r.json()
|
|
40
|
-
temp_df = pd.DataFrame(data_json)
|
|
41
|
-
temp_df.columns = ["date", "value"]
|
|
42
|
-
temp_df["date"] = pd.to_datetime(temp_df["date"], unit="ms", errors="coerce")
|
|
43
|
-
temp_df["date"] = temp_df["date"].dt.tz_localize("UTC")
|
|
44
|
-
temp_df["date"] = temp_df["date"].dt.tz_convert("Asia/Shanghai").dt.date
|
|
45
|
-
temp_df["value"] = pd.to_numeric(temp_df["value"], errors="coerce")
|
|
46
|
-
return temp_df
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
if __name__ == "__main__":
|
|
50
|
-
futures_volatility_index_nh_df = futures_volatility_index_nh(
|
|
51
|
-
symbol="SA", period="5"
|
|
52
|
-
)
|
|
53
|
-
print(futures_volatility_index_nh_df)
|
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
# -*- coding:utf-8 -*-
|
|
2
|
-
# !/usr/bin/env python
|
|
3
|
-
"""
|
|
4
|
-
Date: 2023/12/2 19:00
|
|
5
|
-
Desc: 板块指数、品种指数和相关系数矩阵
|
|
6
|
-
南华期货-板块指数涨跌
|
|
7
|
-
https://www.nanhua.net/nhzc/platechange.html
|
|
8
|
-
南华期货-品种指数涨跌
|
|
9
|
-
https://www.nanhua.net/nhzc/varietychange.html
|
|
10
|
-
南华期货-相关系数矩阵
|
|
11
|
-
https://www.nanhua.net/nhzc/correltable.html
|
|
12
|
-
"""
|
|
13
|
-
|
|
14
|
-
import pandas as pd
|
|
15
|
-
import requests
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
def futures_board_index_nh(
|
|
19
|
-
start_date: str = "20231110", end_date: str = "20231116"
|
|
20
|
-
) -> pd.DataFrame:
|
|
21
|
-
"""
|
|
22
|
-
南华期货-市场涨跌-板块指数涨跌
|
|
23
|
-
https://www.nanhua.net/nhzc/platechange.html
|
|
24
|
-
:param start_date: 开始时间
|
|
25
|
-
:type start_date: str
|
|
26
|
-
:param end_date: 结束时间
|
|
27
|
-
:type end_date: str
|
|
28
|
-
:return: 板块指数涨跌
|
|
29
|
-
:rtype: pandas.DataFrame
|
|
30
|
-
"""
|
|
31
|
-
# 获取 start_date 的数据
|
|
32
|
-
url = f"https://www.nanhua.net/ianalysis/plate/{start_date[:4]}/{start_date[4:6]}/{start_date}.json"
|
|
33
|
-
params = {"t": "1649920913503"}
|
|
34
|
-
r = requests.get(url, params=params)
|
|
35
|
-
start_df = pd.DataFrame(r.json())
|
|
36
|
-
start_df.columns = [
|
|
37
|
-
"name",
|
|
38
|
-
"code",
|
|
39
|
-
start_date,
|
|
40
|
-
]
|
|
41
|
-
|
|
42
|
-
# 获取 end_date 的数据
|
|
43
|
-
url = f"https://www.nanhua.net/ianalysis/plate/{end_date[:4]}/{end_date[4:6]}/{end_date}.json"
|
|
44
|
-
params = {"t": "1649920913503"}
|
|
45
|
-
r = requests.get(url, params=params)
|
|
46
|
-
end_df = pd.DataFrame(r.json())
|
|
47
|
-
end_df.columns = [
|
|
48
|
-
"name",
|
|
49
|
-
"code",
|
|
50
|
-
end_date,
|
|
51
|
-
]
|
|
52
|
-
end_df.reset_index(inplace=True, drop=True)
|
|
53
|
-
|
|
54
|
-
# 计算数据
|
|
55
|
-
start_df = start_df.merge(end_df, on=["name", "code"], how="inner")
|
|
56
|
-
# 去除异常数据 IF
|
|
57
|
-
start_df = start_df[start_df["code"] != "IF"]
|
|
58
|
-
start_df["return"] = start_df[end_date] / start_df[start_date] - 1
|
|
59
|
-
temp_df = start_df[["name", "return"]]
|
|
60
|
-
|
|
61
|
-
return temp_df
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
def futures_variety_index_nh(
|
|
65
|
-
start_date: str = "20231110", end_date: str = "20231116"
|
|
66
|
-
) -> pd.DataFrame:
|
|
67
|
-
"""
|
|
68
|
-
南华期货-市场涨跌-品种指数涨跌
|
|
69
|
-
https://www.nanhua.net/nhzc/varietychange.html
|
|
70
|
-
:param start_date: 开始时间
|
|
71
|
-
:type start_date: str
|
|
72
|
-
:param end_date: 结束时间
|
|
73
|
-
:type end_date: str
|
|
74
|
-
:return: 品种指数涨跌
|
|
75
|
-
:rtype: pandas.DataFrame
|
|
76
|
-
"""
|
|
77
|
-
url = f"https://www.nanhua.net/ianalysis/variety/{start_date[:4]}/{start_date[4:6]}/{start_date}.json"
|
|
78
|
-
params = {"t": "1649920913503"}
|
|
79
|
-
r = requests.get(url, params=params)
|
|
80
|
-
start_df = pd.DataFrame(r.json())
|
|
81
|
-
start_df.columns = [
|
|
82
|
-
"name",
|
|
83
|
-
"code",
|
|
84
|
-
start_date,
|
|
85
|
-
]
|
|
86
|
-
|
|
87
|
-
url = f"http://www.nanhua.net/ianalysis/variety/{end_date[:4]}/{end_date[4:6]}/{end_date}.json"
|
|
88
|
-
params = {"t": "1649920913503"}
|
|
89
|
-
r = requests.get(url, params=params)
|
|
90
|
-
end_df = pd.DataFrame(r.json())
|
|
91
|
-
end_df.columns = [
|
|
92
|
-
"name",
|
|
93
|
-
"code",
|
|
94
|
-
"end_date",
|
|
95
|
-
]
|
|
96
|
-
start_df[end_date] = end_df["end_date"]
|
|
97
|
-
|
|
98
|
-
start_df["gap"] = start_df[end_date] - start_df[start_date]
|
|
99
|
-
start_df["return"] = start_df["gap"] / start_df[start_date]
|
|
100
|
-
|
|
101
|
-
temp_df = start_df
|
|
102
|
-
temp_df = temp_df[["name", "return"]]
|
|
103
|
-
return temp_df
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
def futures_correlation_nh(date: str = "20231110", period: str = "20") -> pd.DataFrame:
|
|
107
|
-
"""
|
|
108
|
-
南华期货-统计监控-相关系数矩阵
|
|
109
|
-
https://www.nanhua.net/nhzc/correltable.html
|
|
110
|
-
:param date: 开始时间
|
|
111
|
-
:type date: str
|
|
112
|
-
:param period: 周期; choice of {"5", "20", "60", "120"}
|
|
113
|
-
:type period: str
|
|
114
|
-
:return: 相关系数矩阵
|
|
115
|
-
:rtype: pandas.DataFrame
|
|
116
|
-
"""
|
|
117
|
-
url = f"https://www.nanhua.net/ianalysis/correl/{period}/{date[:4]}/{date[4:6]}/{date}.json"
|
|
118
|
-
params = {"t": "1649920913503"}
|
|
119
|
-
r = requests.get(url, params=params)
|
|
120
|
-
temp_df = pd.DataFrame(r.json())
|
|
121
|
-
temp_df.columns = [
|
|
122
|
-
"品种代码1",
|
|
123
|
-
"品种名称1",
|
|
124
|
-
"品种代码2",
|
|
125
|
-
"品种名称2",
|
|
126
|
-
"相关系数",
|
|
127
|
-
]
|
|
128
|
-
temp_df["相关系数"] = pd.to_numeric(temp_df["相关系数"], errors="coerce")
|
|
129
|
-
return temp_df
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
if __name__ == "__main__":
|
|
133
|
-
futures_board_index_nh_df = futures_board_index_nh(
|
|
134
|
-
start_date="20230103", end_date="20231201"
|
|
135
|
-
)
|
|
136
|
-
print(futures_board_index_nh_df)
|
|
137
|
-
|
|
138
|
-
futures_variety_index_nh_df = futures_variety_index_nh(
|
|
139
|
-
start_date="20231110", end_date="20231116"
|
|
140
|
-
)
|
|
141
|
-
print(futures_variety_index_nh_df)
|
|
142
|
-
|
|
143
|
-
futures_correlation_nh_df = futures_correlation_nh(date="20240816", period="20")
|
|
144
|
-
print(futures_correlation_nh_df)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|