akshare 1.12.99__py3-none-any.whl → 1.15.73__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 +442 -138
- akshare/air/air_hebei.py +79 -53
- akshare/air/air_zhenqi.py +29 -43
- akshare/air/sunrise_tad.py +32 -17
- akshare/bank/bank_cbirc_2020.py +12 -9
- akshare/bond/bond_cb_ths.py +17 -9
- akshare/bond/bond_china.py +38 -39
- akshare/bond/bond_china_money.py +75 -48
- akshare/bond/bond_info_cm.py +28 -8
- akshare/bond/bond_issue_cninfo.py +73 -30
- akshare/bond/bond_zh_cov.py +1 -1
- akshare/bond/bond_zh_sina.py +57 -51
- akshare/cal/__init__.py +0 -0
- akshare/cal/rv.py +170 -0
- akshare/cost/cost_living.py +7 -5
- akshare/currency/currency_safe.py +7 -6
- akshare/data/cninfo.js +15 -0
- akshare/datasets.py +10 -21
- akshare/economic/macro_bank.py +95 -653
- akshare/economic/macro_china.py +772 -1024
- akshare/economic/macro_china_hk.py +65 -243
- akshare/economic/macro_china_nbs.py +24 -7
- akshare/economic/macro_constitute.py +17 -12
- akshare/economic/macro_euro.py +13 -6
- akshare/economic/macro_finance_ths.py +133 -0
- akshare/economic/macro_info_ws.py +100 -0
- akshare/economic/macro_japan.py +5 -4
- akshare/economic/macro_other.py +12 -9
- akshare/economic/macro_usa.py +376 -1940
- akshare/economic/marco_cnbs.py +11 -6
- akshare/energy/energy_carbon.py +94 -125
- akshare/event/migration.py +3 -2
- akshare/exceptions.py +43 -0
- akshare/file_fold/calendar.json +245 -2
- akshare/fortune/fortune_500.py +15 -48
- akshare/fund/fund_amac.py +157 -75
- akshare/fund/fund_em.py +191 -184
- akshare/fund/fund_etf_em.py +16 -15
- akshare/fund/fund_etf_sina.py +71 -23
- akshare/fund/fund_etf_ths.py +93 -0
- akshare/fund/fund_fee_em.py +98 -0
- akshare/fund/fund_portfolio_em.py +60 -50
- akshare/fund/fund_rank_em.py +91 -82
- akshare/fund/fund_report_cninfo.py +63 -48
- akshare/fund/fund_scale_sina.py +20 -10
- akshare/fund/fund_xq.py +139 -109
- akshare/futures/cons.py +8 -31
- akshare/futures/cot.py +185 -137
- akshare/futures/futures_basis.py +97 -32
- akshare/futures/futures_comm_ctp.py +37 -0
- akshare/futures/futures_comm_qihuo.py +74 -45
- akshare/futures/futures_daily_bar.py +121 -184
- akshare/futures/futures_hf_em.py +66 -61
- akshare/futures/futures_hq_sina.py +79 -61
- akshare/futures/futures_index_ccidx.py +6 -3
- akshare/futures/futures_inventory_99.py +61 -272
- akshare/futures/futures_news_shmet.py +4 -2
- akshare/futures/futures_roll_yield.py +12 -25
- akshare/futures/futures_spot_stock_em.py +19 -13
- akshare/futures/futures_stock_js.py +14 -12
- akshare/futures/futures_to_spot.py +38 -33
- akshare/futures/futures_warehouse_receipt.py +75 -71
- akshare/futures/futures_zh_sina.py +5 -5
- akshare/futures/symbol_var.py +18 -13
- akshare/futures_derivative/futures_contract_info_czce.py +60 -52
- akshare/futures_derivative/futures_contract_info_ine.py +43 -34
- akshare/futures_derivative/futures_contract_info_shfe.py +46 -35
- akshare/futures_derivative/futures_cot_sina.py +26 -19
- akshare/futures_derivative/futures_spot_sys.py +21 -8
- akshare/fx/currency_investing.py +19 -285
- akshare/index/index_cflp.py +29 -26
- akshare/index/index_cni.py +86 -88
- akshare/index/index_cons.py +26 -10
- akshare/index/index_cx.py +248 -47
- akshare/index/index_drewry.py +17 -16
- akshare/index/index_option_qvix.py +329 -0
- akshare/index/index_research_fund_sw.py +134 -0
- akshare/index/{index_sw_research.py → index_research_sw.py} +122 -58
- akshare/index/index_spot.py +9 -5
- akshare/index/index_stock_hk.py +35 -16
- akshare/index/index_stock_us_sina.py +1 -1
- akshare/index/index_stock_zh.py +180 -89
- akshare/index/index_stock_zh_csindex.py +15 -369
- akshare/index/index_sw.py +62 -34
- akshare/index/index_yw.py +46 -23
- akshare/index/index_zh_a_scope.py +48 -0
- akshare/index/index_zh_em.py +6 -4
- akshare/interest_rate/interbank_rate_em.py +14 -9
- akshare/movie/artist_yien.py +32 -5
- akshare/movie/movie_yien.py +92 -18
- akshare/movie/video_yien.py +28 -5
- akshare/news/news_baidu.py +78 -44
- akshare/news/news_cctv.py +38 -38
- akshare/news/news_stock.py +6 -3
- akshare/nlp/nlp_interface.py +7 -8
- akshare/option/cons.py +11 -11
- akshare/option/option_comm_qihuo.py +86 -0
- akshare/option/option_commodity.py +178 -51
- akshare/option/option_daily_stats_sse_szse.py +146 -0
- akshare/option/option_em.py +147 -138
- akshare/option/option_finance_sina.py +160 -137
- akshare/option/option_lhb_em.py +62 -56
- akshare/option/option_risk_indicator_sse.py +17 -14
- akshare/other/other_car_cpca.py +934 -0
- akshare/other/{other_car.py → other_car_gasgoo.py} +15 -54
- akshare/qdii/__init__.py +0 -0
- akshare/qdii/qdii_jsl.py +233 -0
- akshare/request.py +117 -0
- akshare/spot/spot_hog_soozhu.py +232 -0
- akshare/spot/spot_price_qh.py +121 -0
- akshare/spot/spot_sge.py +63 -10
- akshare/stock/stock_allotment_cninfo.py +10 -9
- akshare/stock/stock_board_concept_em.py +23 -14
- akshare/stock/stock_board_industry_em.py +40 -34
- akshare/stock/stock_cg_equity_mortgage.py +15 -11
- akshare/stock/stock_cg_guarantee.py +41 -51
- akshare/stock/stock_cg_lawsuit.py +36 -35
- akshare/stock/stock_dividend_cninfo.py +12 -6
- akshare/stock/stock_dzjy_em.py +347 -260
- akshare/stock/stock_fund_em.py +332 -84
- akshare/stock/stock_hk_famous.py +108 -0
- akshare/stock/stock_hk_sina.py +8 -7
- akshare/stock/stock_hold_control_cninfo.py +100 -15
- akshare/stock/stock_hold_control_em.py +4 -3
- akshare/stock/stock_hold_num_cninfo.py +18 -12
- akshare/stock/stock_hot_rank_em.py +2 -1
- akshare/stock/stock_hot_search_baidu.py +5 -2
- akshare/stock/stock_industry_cninfo.py +24 -18
- akshare/stock/stock_industry_pe_cninfo.py +45 -31
- akshare/stock/stock_industry_sw.py +9 -10
- akshare/stock/stock_info.py +25 -15
- akshare/stock/stock_info_em.py +5 -2
- akshare/stock/stock_intraday_em.py +5 -2
- akshare/stock/stock_intraday_sina.py +22 -18
- akshare/stock/stock_ipo_summary_cninfo.py +25 -10
- akshare/stock/stock_new_cninfo.py +32 -19
- akshare/stock/stock_news_cx.py +39 -0
- akshare/stock/stock_profile_cninfo.py +9 -8
- akshare/stock/stock_rank_forecast.py +8 -6
- akshare/stock/stock_share_changes_cninfo.py +18 -14
- akshare/stock/stock_share_hold.py +24 -19
- akshare/stock/stock_summary.py +54 -26
- akshare/stock/stock_us_famous.py +15 -6
- akshare/stock/stock_us_pink.py +7 -5
- akshare/stock/stock_us_sina.py +15 -12
- akshare/stock/stock_xq.py +38 -12
- akshare/stock/stock_zh_a_sina.py +53 -78
- akshare/stock/stock_zh_b_sina.py +32 -55
- akshare/stock/stock_zh_kcb_report.py +11 -9
- akshare/stock/stock_zh_kcb_sina.py +67 -64
- akshare/stock_feature/stock_a_below_net_asset_statistics.py +5 -2
- akshare/stock_feature/stock_a_high_low.py +5 -2
- akshare/stock_feature/stock_a_indicator.py +12 -9
- akshare/stock_feature/stock_a_pe_and_pb.py +27 -6
- akshare/stock_feature/stock_account_em.py +58 -40
- akshare/stock_feature/stock_analyst_em.py +36 -27
- akshare/stock_feature/stock_board_industry_ths.py +136 -400
- akshare/stock_feature/stock_comment_em.py +118 -85
- akshare/stock_feature/stock_concept_futu.py +183 -0
- akshare/stock_feature/stock_cyq_em.py +58 -54
- akshare/stock_feature/stock_disclosure_cninfo.py +147 -102
- akshare/stock_feature/stock_esg_sina.py +216 -11
- akshare/stock_feature/stock_fhps_em.py +60 -25
- akshare/stock_feature/stock_fhps_ths.py +25 -6
- akshare/stock_feature/stock_fund_flow.py +38 -25
- akshare/stock_feature/stock_gdfx_em.py +180 -95
- akshare/stock_feature/stock_gdhs.py +73 -49
- akshare/stock_feature/stock_gpzy_em.py +78 -46
- akshare/stock_feature/stock_hist_em.py +55 -23
- akshare/stock_feature/stock_hk_valuation_baidu.py +20 -8
- akshare/stock_feature/stock_hsgt_em.py +184 -452
- akshare/stock_feature/stock_info.py +52 -29
- akshare/stock_feature/stock_inner_trade_xq.py +39 -31
- akshare/stock_feature/stock_irm_cninfo.py +32 -9
- akshare/stock_feature/stock_jgdy_em.py +41 -38
- akshare/stock_feature/stock_lh_yybpm.py +36 -37
- akshare/stock_feature/stock_lhb_em.py +135 -71
- akshare/stock_feature/stock_lhb_sina.py +93 -46
- akshare/stock_feature/stock_margin_em.py +102 -0
- akshare/stock_feature/{stock_sse_margin.py → stock_margin_sse.py} +21 -15
- akshare/stock_feature/{stock_szse_margin.py → stock_margin_szse.py} +23 -19
- akshare/stock_feature/stock_market_legu.py +13 -8
- akshare/stock_feature/stock_pankou_em.py +72 -34
- akshare/stock_feature/stock_report_em.py +244 -54
- akshare/stock_feature/stock_research_report_em.py +48 -19
- akshare/stock_feature/stock_sns_sseinfo.py +15 -12
- akshare/stock_feature/stock_sy_em.py +86 -33
- akshare/stock_feature/stock_technology_ths.py +152 -120
- akshare/stock_feature/stock_tfp_em.py +35 -13
- akshare/stock_feature/stock_three_report_em.py +119 -77
- akshare/stock_feature/stock_ttm_lyr.py +4 -7
- akshare/stock_feature/stock_value_em.py +83 -0
- akshare/stock_feature/stock_wencai.py +21 -9
- akshare/stock_feature/stock_yjyg_em.py +63 -28
- akshare/stock_feature/stock_zf_pg.py +61 -38
- akshare/stock_feature/stock_zh_valuation_baidu.py +3 -2
- akshare/stock_feature/stock_ztb_em.py +62 -40
- akshare/stock_fundamental/stock_finance.py +150 -58
- akshare/stock_fundamental/stock_finance_ths.py +116 -31
- akshare/stock_fundamental/stock_mda_ym.py +5 -3
- akshare/stock_fundamental/stock_notice.py +29 -15
- akshare/stock_fundamental/stock_profit_forecast_em.py +31 -13
- akshare/stock_fundamental/stock_profit_forecast_ths.py +19 -10
- akshare/stock_fundamental/stock_register_em.py +448 -0
- akshare/stock_fundamental/stock_restricted_em.py +79 -32
- akshare/stock_fundamental/stock_zygc.py +10 -8
- akshare/stock_fundamental/stock_zyjs_ths.py +5 -3
- akshare/tool/trade_date_hist.py +4 -3
- akshare/utils/cons.py +10 -0
- akshare/utils/context.py +43 -0
- akshare/utils/demjson.py +2 -2
- akshare/utils/func.py +26 -0
- akshare/utils/tqdm.py +13 -3
- {akshare-1.12.99.dist-info → akshare-1.15.73.dist-info}/METADATA +52 -69
- akshare-1.15.73.dist-info/RECORD +385 -0
- {akshare-1.12.99.dist-info → akshare-1.15.73.dist-info}/WHEEL +1 -1
- tests/test_func.py +3 -5
- akshare/bond/bond_futures.py +0 -50
- akshare/bond/bond_investing.py +0 -139
- akshare/crypto/crypto_hist_investing.py +0 -249
- akshare/fortune/fortune_it_juzi.py +0 -123
- akshare/futures/futures_international.py +0 -170
- akshare/futures/futures_news_baidu.py +0 -54
- akshare/futures/inventory_data.py +0 -100
- 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 -51
- akshare/futures_derivative/futures_other_index_nh.py +0 -145
- akshare/index/index_fear_greed_funddb.py +0 -71
- akshare/index/index_investing.py +0 -232
- akshare/sport/sport_olympic_winter.py +0 -39
- akshare/stock_feature/stock_board_concept_ths.py +0 -422
- akshare/stock_fundamental/stock_register.py +0 -292
- akshare-1.12.99.dist-info/RECORD +0 -374
- {akshare-1.12.99.dist-info → akshare-1.15.73.dist-info}/LICENSE +0 -0
- {akshare-1.12.99.dist-info → akshare-1.15.73.dist-info}/top_level.txt +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env python
|
|
2
2
|
# -*- coding:utf-8 -*-
|
|
3
3
|
"""
|
|
4
|
-
Date:
|
|
4
|
+
Date: 2024/11/22 21:30
|
|
5
5
|
Desc: 首页-行情中心-涨停板行情-涨停股池
|
|
6
6
|
https://quote.eastmoney.com/ztb/detail#type=ztgc
|
|
7
7
|
|
|
@@ -14,13 +14,14 @@ https://quote.eastmoney.com/ztb/detail#type=ztgc
|
|
|
14
14
|
6. 跌停股池:包含当日当前跌停的所有A股股票。
|
|
15
15
|
注:涨停板行情专题统计不包含ST股票及科创板股票。
|
|
16
16
|
"""
|
|
17
|
+
|
|
17
18
|
from datetime import datetime, timedelta
|
|
18
19
|
|
|
19
20
|
import pandas as pd
|
|
20
21
|
import requests
|
|
21
22
|
|
|
22
23
|
|
|
23
|
-
def stock_zt_pool_em(date: str = "
|
|
24
|
+
def stock_zt_pool_em(date: str = "20241008") -> pd.DataFrame:
|
|
24
25
|
"""
|
|
25
26
|
东方财富网-行情中心-涨停板行情-涨停股池
|
|
26
27
|
https://quote.eastmoney.com/ztb/detail#type=ztgc
|
|
@@ -29,7 +30,7 @@ def stock_zt_pool_em(date: str = "20231129") -> pd.DataFrame:
|
|
|
29
30
|
:return: 涨停股池
|
|
30
31
|
:rtype: pandas.DataFrame
|
|
31
32
|
"""
|
|
32
|
-
url = "
|
|
33
|
+
url = "https://push2ex.eastmoney.com/getTopicZTPool"
|
|
33
34
|
params = {
|
|
34
35
|
"ut": "7eea3edcaed734bea9cbfc24409ed989",
|
|
35
36
|
"dpt": "wz.ztzt",
|
|
@@ -43,6 +44,8 @@ def stock_zt_pool_em(date: str = "20231129") -> pd.DataFrame:
|
|
|
43
44
|
data_json = r.json()
|
|
44
45
|
if data_json["data"] is None:
|
|
45
46
|
return pd.DataFrame()
|
|
47
|
+
if len(data_json["data"]["pool"]) == 0:
|
|
48
|
+
return pd.DataFrame()
|
|
46
49
|
temp_df = pd.DataFrame(data_json["data"]["pool"])
|
|
47
50
|
temp_df.reset_index(inplace=True)
|
|
48
51
|
temp_df["index"] = range(1, len(temp_df) + 1)
|
|
@@ -66,9 +69,9 @@ def stock_zt_pool_em(date: str = "20231129") -> pd.DataFrame:
|
|
|
66
69
|
"涨停统计",
|
|
67
70
|
]
|
|
68
71
|
temp_df["涨停统计"] = (
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
+
temp_df["涨停统计"].apply(lambda x: dict(x)["days"]).astype(str)
|
|
73
|
+
+ "/"
|
|
74
|
+
+ temp_df["涨停统计"].apply(lambda x: dict(x)["ct"]).astype(str)
|
|
72
75
|
)
|
|
73
76
|
temp_df = temp_df[
|
|
74
77
|
[
|
|
@@ -105,7 +108,7 @@ def stock_zt_pool_em(date: str = "20231129") -> pd.DataFrame:
|
|
|
105
108
|
return temp_df
|
|
106
109
|
|
|
107
110
|
|
|
108
|
-
def stock_zt_pool_previous_em(date: str = "
|
|
111
|
+
def stock_zt_pool_previous_em(date: str = "20240415") -> pd.DataFrame:
|
|
109
112
|
"""
|
|
110
113
|
东方财富网-行情中心-涨停板行情-昨日涨停股池
|
|
111
114
|
https://quote.eastmoney.com/ztb/detail#type=zrzt
|
|
@@ -119,7 +122,7 @@ def stock_zt_pool_previous_em(date: str = "20231129") -> pd.DataFrame:
|
|
|
119
122
|
"ut": "7eea3edcaed734bea9cbfc24409ed989",
|
|
120
123
|
"dpt": "wz.ztzt",
|
|
121
124
|
"Pageindex": "0",
|
|
122
|
-
"pagesize": "
|
|
125
|
+
"pagesize": "5000",
|
|
123
126
|
"sort": "zs:desc",
|
|
124
127
|
"date": date,
|
|
125
128
|
"_": "1621590489736",
|
|
@@ -128,6 +131,8 @@ def stock_zt_pool_previous_em(date: str = "20231129") -> pd.DataFrame:
|
|
|
128
131
|
data_json = r.json()
|
|
129
132
|
if data_json["data"] is None:
|
|
130
133
|
return pd.DataFrame()
|
|
134
|
+
if len(data_json["data"]["pool"]) == 0:
|
|
135
|
+
return pd.DataFrame()
|
|
131
136
|
temp_df = pd.DataFrame(data_json["data"]["pool"])
|
|
132
137
|
temp_df.reset_index(inplace=True)
|
|
133
138
|
temp_df["index"] = range(1, len(temp_df) + 1)
|
|
@@ -151,9 +156,9 @@ def stock_zt_pool_previous_em(date: str = "20231129") -> pd.DataFrame:
|
|
|
151
156
|
"涨停统计",
|
|
152
157
|
]
|
|
153
158
|
temp_df["涨停统计"] = (
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
159
|
+
temp_df["涨停统计"].apply(lambda x: dict(x)["days"]).astype(str)
|
|
160
|
+
+ "/"
|
|
161
|
+
+ temp_df["涨停统计"].apply(lambda x: dict(x)["ct"]).astype(str)
|
|
157
162
|
)
|
|
158
163
|
temp_df = temp_df[
|
|
159
164
|
[
|
|
@@ -181,7 +186,7 @@ def stock_zt_pool_previous_em(date: str = "20231129") -> pd.DataFrame:
|
|
|
181
186
|
return temp_df
|
|
182
187
|
|
|
183
188
|
|
|
184
|
-
def stock_zt_pool_strong_em(date: str = "
|
|
189
|
+
def stock_zt_pool_strong_em(date: str = "20241231") -> pd.DataFrame:
|
|
185
190
|
"""
|
|
186
191
|
东方财富网-行情中心-涨停板行情-强势股池
|
|
187
192
|
https://quote.eastmoney.com/ztb/detail#type=qsgc
|
|
@@ -190,12 +195,12 @@ def stock_zt_pool_strong_em(date: str = "20231129") -> pd.DataFrame:
|
|
|
190
195
|
:return: 强势股池
|
|
191
196
|
:rtype: pandas.DataFrame
|
|
192
197
|
"""
|
|
193
|
-
url = "
|
|
198
|
+
url = "https://push2ex.eastmoney.com/getTopicQSPool"
|
|
194
199
|
params = {
|
|
195
200
|
"ut": "7eea3edcaed734bea9cbfc24409ed989",
|
|
196
201
|
"dpt": "wz.ztzt",
|
|
197
202
|
"Pageindex": "0",
|
|
198
|
-
"pagesize": "
|
|
203
|
+
"pagesize": "5000",
|
|
199
204
|
"sort": "zdp:desc",
|
|
200
205
|
"date": date,
|
|
201
206
|
"_": "1621590489736",
|
|
@@ -204,6 +209,8 @@ def stock_zt_pool_strong_em(date: str = "20231129") -> pd.DataFrame:
|
|
|
204
209
|
data_json = r.json()
|
|
205
210
|
if data_json["data"] is None:
|
|
206
211
|
return pd.DataFrame()
|
|
212
|
+
if len(data_json["data"]["pool"]) == 0:
|
|
213
|
+
return pd.DataFrame()
|
|
207
214
|
temp_df = pd.DataFrame(data_json["data"]["pool"])
|
|
208
215
|
temp_df.reset_index(inplace=True)
|
|
209
216
|
temp_df["index"] = range(1, len(temp_df) + 1)
|
|
@@ -228,9 +235,9 @@ def stock_zt_pool_strong_em(date: str = "20231129") -> pd.DataFrame:
|
|
|
228
235
|
"所属行业",
|
|
229
236
|
]
|
|
230
237
|
temp_df["涨停统计"] = (
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
238
|
+
temp_df["涨停统计"].apply(lambda x: dict(x)["days"]).astype(str)
|
|
239
|
+
+ "/"
|
|
240
|
+
+ temp_df["涨停统计"].apply(lambda x: dict(x)["ct"]).astype(str)
|
|
234
241
|
)
|
|
235
242
|
temp_df = temp_df[
|
|
236
243
|
[
|
|
@@ -254,10 +261,22 @@ def stock_zt_pool_strong_em(date: str = "20231129") -> pd.DataFrame:
|
|
|
254
261
|
]
|
|
255
262
|
temp_df["最新价"] = temp_df["最新价"] / 1000
|
|
256
263
|
temp_df["涨停价"] = temp_df["涨停价"] / 1000
|
|
264
|
+
explained_map = {1: "60日新高", 2: "近期多次涨停", 3: "60日新高且近期多次涨停"}
|
|
265
|
+
temp_df["入选理由"] = temp_df["入选理由"].apply(lambda x: explained_map[x])
|
|
266
|
+
temp_df["是否新高"] = temp_df["是否新高"].apply(lambda x: "是" if x == 1 else "否")
|
|
267
|
+
temp_df["涨跌幅"] = pd.to_numeric(temp_df["涨跌幅"], errors="coerce")
|
|
268
|
+
temp_df["最新价"] = pd.to_numeric(temp_df["最新价"], errors="coerce")
|
|
269
|
+
temp_df["涨停价"] = pd.to_numeric(temp_df["涨停价"], errors="coerce")
|
|
270
|
+
temp_df["成交额"] = pd.to_numeric(temp_df["成交额"], errors="coerce")
|
|
271
|
+
temp_df["流通市值"] = pd.to_numeric(temp_df["流通市值"], errors="coerce")
|
|
272
|
+
temp_df["总市值"] = pd.to_numeric(temp_df["总市值"], errors="coerce")
|
|
273
|
+
temp_df["换手率"] = pd.to_numeric(temp_df["换手率"], errors="coerce")
|
|
274
|
+
temp_df["涨速"] = pd.to_numeric(temp_df["涨速"], errors="coerce")
|
|
275
|
+
temp_df["量比"] = pd.to_numeric(temp_df["量比"], errors="coerce")
|
|
257
276
|
return temp_df
|
|
258
277
|
|
|
259
278
|
|
|
260
|
-
def stock_zt_pool_sub_new_em(date: str = "
|
|
279
|
+
def stock_zt_pool_sub_new_em(date: str = "20241231") -> pd.DataFrame:
|
|
261
280
|
"""
|
|
262
281
|
东方财富网-行情中心-涨停板行情-次新股池
|
|
263
282
|
https://quote.eastmoney.com/ztb/detail#type=cxgc
|
|
@@ -266,19 +285,19 @@ def stock_zt_pool_sub_new_em(date: str = "20231129") -> pd.DataFrame:
|
|
|
266
285
|
:return: 次新股池
|
|
267
286
|
:rtype: pandas.DataFrame
|
|
268
287
|
"""
|
|
269
|
-
url = "
|
|
288
|
+
url = "https://push2ex.eastmoney.com/getTopicCXPooll"
|
|
270
289
|
params = {
|
|
271
290
|
"ut": "7eea3edcaed734bea9cbfc24409ed989",
|
|
272
291
|
"dpt": "wz.ztzt",
|
|
273
292
|
"Pageindex": "0",
|
|
274
|
-
"pagesize": "
|
|
293
|
+
"pagesize": "5000",
|
|
275
294
|
"sort": "ods:asc",
|
|
276
295
|
"date": date,
|
|
277
296
|
"_": "1621590489736",
|
|
278
297
|
}
|
|
279
298
|
r = requests.get(url, params=params)
|
|
280
299
|
data_json = r.json()
|
|
281
|
-
if data_json["data"]["pool"] == 0:
|
|
300
|
+
if len(data_json["data"]["pool"]) == 0:
|
|
282
301
|
return pd.DataFrame()
|
|
283
302
|
temp_df = pd.DataFrame(data_json["data"]["pool"])
|
|
284
303
|
temp_df.reset_index(inplace=True)
|
|
@@ -305,9 +324,9 @@ def stock_zt_pool_sub_new_em(date: str = "20231129") -> pd.DataFrame:
|
|
|
305
324
|
"所属行业",
|
|
306
325
|
]
|
|
307
326
|
temp_df["涨停统计"] = (
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
327
|
+
temp_df["涨停统计"].apply(lambda x: dict(x)["days"]).astype(str)
|
|
328
|
+
+ "/"
|
|
329
|
+
+ temp_df["涨停统计"].apply(lambda x: dict(x)["ct"]).astype(str)
|
|
311
330
|
)
|
|
312
331
|
temp_df = temp_df[
|
|
313
332
|
[
|
|
@@ -332,13 +351,14 @@ def stock_zt_pool_sub_new_em(date: str = "20231129") -> pd.DataFrame:
|
|
|
332
351
|
temp_df["最新价"] = temp_df["最新价"] / 1000
|
|
333
352
|
temp_df["涨停价"] = temp_df["涨停价"] / 1000
|
|
334
353
|
temp_df.loc[temp_df["涨停价"] > 100000, "涨停价"] = pd.NA
|
|
335
|
-
temp_df[
|
|
336
|
-
temp_df[
|
|
354
|
+
temp_df["开板日期"] = pd.to_datetime(temp_df["开板日期"], format="%Y%m%d").dt.date
|
|
355
|
+
temp_df["上市日期"] = pd.to_datetime(temp_df["上市日期"], format="%Y%m%d").dt.date
|
|
337
356
|
temp_df.loc[temp_df["上市日期"] == 0, "上市日期"] = pd.NaT
|
|
357
|
+
temp_df["是否新高"] = temp_df["是否新高"].apply(lambda x: "是" if x == 1 else "否")
|
|
338
358
|
return temp_df
|
|
339
359
|
|
|
340
360
|
|
|
341
|
-
def stock_zt_pool_zbgc_em(date: str = "
|
|
361
|
+
def stock_zt_pool_zbgc_em(date: str = "20241011") -> pd.DataFrame:
|
|
342
362
|
"""
|
|
343
363
|
东方财富网-行情中心-涨停板行情-炸板股池
|
|
344
364
|
https://quote.eastmoney.com/ztb/detail#type=zbgc
|
|
@@ -352,12 +372,12 @@ def stock_zt_pool_zbgc_em(date: str = "20231129") -> pd.DataFrame:
|
|
|
352
372
|
if int(date) < int(thirty_days_ago_str):
|
|
353
373
|
raise ValueError("炸板股池只能获取最近 30 个交易日的数据")
|
|
354
374
|
|
|
355
|
-
url = "
|
|
375
|
+
url = "https://push2ex.eastmoney.com/getTopicZBPool"
|
|
356
376
|
params = {
|
|
357
377
|
"ut": "7eea3edcaed734bea9cbfc24409ed989",
|
|
358
378
|
"dpt": "wz.ztzt",
|
|
359
379
|
"Pageindex": "0",
|
|
360
|
-
"pagesize": "
|
|
380
|
+
"pagesize": "5000",
|
|
361
381
|
"sort": "fbt:asc",
|
|
362
382
|
"date": date,
|
|
363
383
|
"_": "1621590489736",
|
|
@@ -366,6 +386,8 @@ def stock_zt_pool_zbgc_em(date: str = "20231129") -> pd.DataFrame:
|
|
|
366
386
|
data_json = r.json()
|
|
367
387
|
if data_json["data"] is None:
|
|
368
388
|
return pd.DataFrame()
|
|
389
|
+
if len(data_json["data"]["pool"]) == 0:
|
|
390
|
+
return pd.DataFrame()
|
|
369
391
|
temp_df = pd.DataFrame(data_json["data"]["pool"])
|
|
370
392
|
temp_df.reset_index(inplace=True)
|
|
371
393
|
temp_df["index"] = range(1, len(temp_df) + 1)
|
|
@@ -389,9 +411,9 @@ def stock_zt_pool_zbgc_em(date: str = "20231129") -> pd.DataFrame:
|
|
|
389
411
|
"所属行业",
|
|
390
412
|
]
|
|
391
413
|
temp_df["涨停统计"] = (
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
414
|
+
temp_df["涨停统计"].apply(lambda x: dict(x)["days"]).astype(str)
|
|
415
|
+
+ "/"
|
|
416
|
+
+ temp_df["涨停统计"].apply(lambda x: dict(x)["ct"]).astype(str)
|
|
395
417
|
)
|
|
396
418
|
temp_df = temp_df[
|
|
397
419
|
[
|
|
@@ -419,7 +441,7 @@ def stock_zt_pool_zbgc_em(date: str = "20231129") -> pd.DataFrame:
|
|
|
419
441
|
return temp_df
|
|
420
442
|
|
|
421
443
|
|
|
422
|
-
def stock_zt_pool_dtgc_em(date: str = "
|
|
444
|
+
def stock_zt_pool_dtgc_em(date: str = "20241011") -> pd.DataFrame:
|
|
423
445
|
"""
|
|
424
446
|
东方财富网-行情中心-涨停板行情-跌停股池
|
|
425
447
|
https://quote.eastmoney.com/ztb/detail#type=dtgc
|
|
@@ -433,7 +455,7 @@ def stock_zt_pool_dtgc_em(date: str = "20231129") -> pd.DataFrame:
|
|
|
433
455
|
if int(date) < int(thirty_days_ago_str):
|
|
434
456
|
raise ValueError("跌停股池只能获取最近 30 个交易日的数据")
|
|
435
457
|
|
|
436
|
-
url = "
|
|
458
|
+
url = "https://push2ex.eastmoney.com/getTopicDTPool"
|
|
437
459
|
params = {
|
|
438
460
|
"ut": "7eea3edcaed734bea9cbfc24409ed989",
|
|
439
461
|
"dpt": "wz.ztzt",
|
|
@@ -507,20 +529,20 @@ def stock_zt_pool_dtgc_em(date: str = "20231129") -> pd.DataFrame:
|
|
|
507
529
|
|
|
508
530
|
|
|
509
531
|
if __name__ == "__main__":
|
|
510
|
-
stock_zt_pool_em_df = stock_zt_pool_em(date="
|
|
532
|
+
stock_zt_pool_em_df = stock_zt_pool_em(date="20241008")
|
|
511
533
|
print(stock_zt_pool_em_df)
|
|
512
534
|
|
|
513
|
-
stock_zt_pool_previous_em_df = stock_zt_pool_previous_em(date="
|
|
535
|
+
stock_zt_pool_previous_em_df = stock_zt_pool_previous_em(date="20240415")
|
|
514
536
|
print(stock_zt_pool_previous_em_df)
|
|
515
537
|
|
|
516
|
-
stock_zt_pool_strong_em_df = stock_zt_pool_strong_em(date="
|
|
538
|
+
stock_zt_pool_strong_em_df = stock_zt_pool_strong_em(date="20241231")
|
|
517
539
|
print(stock_zt_pool_strong_em_df)
|
|
518
540
|
|
|
519
|
-
stock_zt_pool_sub_new_em_df = stock_zt_pool_sub_new_em(date="
|
|
541
|
+
stock_zt_pool_sub_new_em_df = stock_zt_pool_sub_new_em(date="20241231")
|
|
520
542
|
print(stock_zt_pool_sub_new_em_df)
|
|
521
543
|
|
|
522
|
-
stock_zt_pool_zbgc_em_df = stock_zt_pool_zbgc_em(date="
|
|
544
|
+
stock_zt_pool_zbgc_em_df = stock_zt_pool_zbgc_em(date="20241011")
|
|
523
545
|
print(stock_zt_pool_zbgc_em_df)
|
|
524
546
|
|
|
525
|
-
stock_zt_pool_dtgc_em_df = stock_zt_pool_dtgc_em(date="
|
|
547
|
+
stock_zt_pool_dtgc_em_df = stock_zt_pool_dtgc_em(date="20241011")
|
|
526
548
|
print(stock_zt_pool_dtgc_em_df)
|