akshare 1.12.99__py3-none-any.whl → 1.15.72__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 +441 -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.72.dist-info}/METADATA +52 -69
- akshare-1.15.72.dist-info/RECORD +385 -0
- {akshare-1.12.99.dist-info → akshare-1.15.72.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.72.dist-info}/LICENSE +0 -0
- {akshare-1.12.99.dist-info → akshare-1.15.72.dist-info}/top_level.txt +0 -0
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
# -*- coding:utf-8 -*-
|
|
2
2
|
# !/usr/bin/env python
|
|
3
3
|
"""
|
|
4
|
-
Date:
|
|
4
|
+
Date: 2024/4/22 14:00
|
|
5
5
|
Desc: 东方财富网-数据中心-龙虎榜单
|
|
6
6
|
https://data.eastmoney.com/stock/tradedetail.html
|
|
7
7
|
"""
|
|
8
|
+
|
|
8
9
|
import pandas as pd
|
|
9
10
|
import requests
|
|
10
|
-
from tqdm import
|
|
11
|
+
from akshare.utils.tqdm import get_tqdm
|
|
11
12
|
|
|
12
13
|
|
|
13
14
|
def stock_lhb_detail_em(
|
|
@@ -32,7 +33,10 @@ def stock_lhb_detail_em(
|
|
|
32
33
|
"pageSize": "5000",
|
|
33
34
|
"pageNumber": "1",
|
|
34
35
|
"reportName": "RPT_DAILYBILLBOARD_DETAILSNEW",
|
|
35
|
-
"columns": "SECURITY_CODE,SECUCODE,SECURITY_NAME_ABBR,TRADE_DATE,EXPLAIN,CLOSE_PRICE,CHANGE_RATE,
|
|
36
|
+
"columns": "SECURITY_CODE,SECUCODE,SECURITY_NAME_ABBR,TRADE_DATE,EXPLAIN,CLOSE_PRICE,CHANGE_RATE,"
|
|
37
|
+
"BILLBOARD_NET_AMT,BILLBOARD_BUY_AMT,BILLBOARD_SELL_AMT,BILLBOARD_DEAL_AMT,ACCUM_AMOUNT,"
|
|
38
|
+
"DEAL_NET_RATIO,DEAL_AMOUNT_RATIO,TURNOVERRATE,FREE_MARKET_CAP,EXPLANATION,D1_CLOSE_ADJCHRATE,"
|
|
39
|
+
"D2_CLOSE_ADJCHRATE,D5_CLOSE_ADJCHRATE,D10_CLOSE_ADJCHRATE,SECURITY_TYPE_CODE",
|
|
36
40
|
"source": "WEB",
|
|
37
41
|
"client": "WEB",
|
|
38
42
|
"filter": f"(TRADE_DATE<='{end_date}')(TRADE_DATE>='{start_date}')",
|
|
@@ -41,7 +45,8 @@ def stock_lhb_detail_em(
|
|
|
41
45
|
data_json = r.json()
|
|
42
46
|
total_page_num = data_json["result"]["pages"]
|
|
43
47
|
big_df = pd.DataFrame()
|
|
44
|
-
|
|
48
|
+
tqdm = get_tqdm()
|
|
49
|
+
for page in tqdm(range(1, total_page_num + 1), leave=False):
|
|
45
50
|
params.update(
|
|
46
51
|
{
|
|
47
52
|
"pageNumber": page,
|
|
@@ -106,8 +111,7 @@ def stock_lhb_detail_em(
|
|
|
106
111
|
"上榜后10日",
|
|
107
112
|
]
|
|
108
113
|
]
|
|
109
|
-
big_df["上榜日"] = pd.to_datetime(big_df["上榜日"]).dt.date
|
|
110
|
-
|
|
114
|
+
big_df["上榜日"] = pd.to_datetime(big_df["上榜日"], errors="coerce").dt.date
|
|
111
115
|
big_df["收盘价"] = pd.to_numeric(big_df["收盘价"], errors="coerce")
|
|
112
116
|
big_df["涨跌幅"] = pd.to_numeric(big_df["涨跌幅"], errors="coerce")
|
|
113
117
|
big_df["龙虎榜净买额"] = pd.to_numeric(big_df["龙虎榜净买额"], errors="coerce")
|
|
@@ -115,8 +119,12 @@ def stock_lhb_detail_em(
|
|
|
115
119
|
big_df["龙虎榜卖出额"] = pd.to_numeric(big_df["龙虎榜卖出额"], errors="coerce")
|
|
116
120
|
big_df["龙虎榜成交额"] = pd.to_numeric(big_df["龙虎榜成交额"], errors="coerce")
|
|
117
121
|
big_df["市场总成交额"] = pd.to_numeric(big_df["市场总成交额"], errors="coerce")
|
|
118
|
-
big_df["净买额占总成交比"] = pd.to_numeric(
|
|
119
|
-
|
|
122
|
+
big_df["净买额占总成交比"] = pd.to_numeric(
|
|
123
|
+
big_df["净买额占总成交比"], errors="coerce"
|
|
124
|
+
)
|
|
125
|
+
big_df["成交额占总成交比"] = pd.to_numeric(
|
|
126
|
+
big_df["成交额占总成交比"], errors="coerce"
|
|
127
|
+
)
|
|
120
128
|
big_df["换手率"] = pd.to_numeric(big_df["换手率"], errors="coerce")
|
|
121
129
|
big_df["流通市值"] = pd.to_numeric(big_df["流通市值"], errors="coerce")
|
|
122
130
|
big_df["上榜后1日"] = pd.to_numeric(big_df["上榜后1日"], errors="coerce")
|
|
@@ -145,7 +153,7 @@ def stock_lhb_stock_statistic_em(symbol: str = "近一月") -> pd.DataFrame:
|
|
|
145
153
|
params = {
|
|
146
154
|
"sortColumns": "BILLBOARD_TIMES,LATEST_TDATE,SECURITY_CODE",
|
|
147
155
|
"sortTypes": "-1,-1,1",
|
|
148
|
-
"pageSize": "
|
|
156
|
+
"pageSize": "5000",
|
|
149
157
|
"pageNumber": "1",
|
|
150
158
|
"reportName": "RPT_BILLBOARD_TRADEALL",
|
|
151
159
|
"columns": "ALL",
|
|
@@ -209,12 +217,14 @@ def stock_lhb_stock_statistic_em(symbol: str = "近一月") -> pd.DataFrame:
|
|
|
209
217
|
"近1年涨跌幅",
|
|
210
218
|
]
|
|
211
219
|
]
|
|
212
|
-
temp_df["最近上榜日"] = pd.to_datetime(
|
|
220
|
+
temp_df["最近上榜日"] = pd.to_datetime(
|
|
221
|
+
temp_df["最近上榜日"], errors="coerce"
|
|
222
|
+
).dt.date
|
|
213
223
|
return temp_df
|
|
214
224
|
|
|
215
225
|
|
|
216
226
|
def stock_lhb_jgmmtj_em(
|
|
217
|
-
start_date: str = "
|
|
227
|
+
start_date: str = "20240417", end_date: str = "20240430"
|
|
218
228
|
) -> pd.DataFrame:
|
|
219
229
|
"""
|
|
220
230
|
东方财富网-数据中心-龙虎榜单-机构买卖每日统计
|
|
@@ -232,7 +242,7 @@ def stock_lhb_jgmmtj_em(
|
|
|
232
242
|
params = {
|
|
233
243
|
"sortColumns": "NET_BUY_AMT,TRADE_DATE,SECURITY_CODE",
|
|
234
244
|
"sortTypes": "-1,-1,1",
|
|
235
|
-
"pageSize": "
|
|
245
|
+
"pageSize": "500",
|
|
236
246
|
"pageNumber": "1",
|
|
237
247
|
"reportName": "RPT_ORGANIZATION_TRADE_DETAILS",
|
|
238
248
|
"columns": "ALL",
|
|
@@ -242,10 +252,22 @@ def stock_lhb_jgmmtj_em(
|
|
|
242
252
|
}
|
|
243
253
|
r = requests.get(url, params=params)
|
|
244
254
|
data_json = r.json()
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
255
|
+
total_page = data_json["result"]["pages"]
|
|
256
|
+
big_df = pd.DataFrame()
|
|
257
|
+
tqdm = get_tqdm()
|
|
258
|
+
for page in tqdm(range(1, total_page + 1), leave=False):
|
|
259
|
+
params.update(
|
|
260
|
+
{
|
|
261
|
+
"pageNumber": page,
|
|
262
|
+
}
|
|
263
|
+
)
|
|
264
|
+
r = requests.get(url, params=params)
|
|
265
|
+
data_json = r.json()
|
|
266
|
+
temp_df = pd.DataFrame(data_json["result"]["data"])
|
|
267
|
+
big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
|
|
268
|
+
big_df.reset_index(inplace=True)
|
|
269
|
+
big_df["index"] = big_df.index + 1
|
|
270
|
+
big_df.columns = [
|
|
249
271
|
"序号",
|
|
250
272
|
"-",
|
|
251
273
|
"名称",
|
|
@@ -273,7 +295,7 @@ def stock_lhb_jgmmtj_em(
|
|
|
273
295
|
"-",
|
|
274
296
|
"-",
|
|
275
297
|
]
|
|
276
|
-
|
|
298
|
+
big_df = big_df[
|
|
277
299
|
[
|
|
278
300
|
"序号",
|
|
279
301
|
"代码",
|
|
@@ -293,20 +315,21 @@ def stock_lhb_jgmmtj_em(
|
|
|
293
315
|
"上榜日期",
|
|
294
316
|
]
|
|
295
317
|
]
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
318
|
+
big_df["上榜日期"] = pd.to_datetime(big_df["上榜日期"], errors="coerce").dt.date
|
|
319
|
+
big_df["收盘价"] = pd.to_numeric(big_df["收盘价"], errors="coerce")
|
|
320
|
+
big_df["涨跌幅"] = pd.to_numeric(big_df["涨跌幅"], errors="coerce")
|
|
321
|
+
big_df["买方机构数"] = pd.to_numeric(big_df["买方机构数"], errors="coerce")
|
|
322
|
+
big_df["卖方机构数"] = pd.to_numeric(big_df["卖方机构数"], errors="coerce")
|
|
323
|
+
big_df["机构买入总额"] = pd.to_numeric(big_df["机构买入总额"], errors="coerce")
|
|
324
|
+
big_df["机构卖出总额"] = pd.to_numeric(big_df["机构卖出总额"], errors="coerce")
|
|
325
|
+
big_df["机构买入净额"] = pd.to_numeric(big_df["机构买入净额"], errors="coerce")
|
|
326
|
+
big_df["市场总成交额"] = pd.to_numeric(big_df["市场总成交额"], errors="coerce")
|
|
327
|
+
big_df["机构净买额占总成交额比"] = pd.to_numeric(
|
|
328
|
+
big_df["机构净买额占总成交额比"], errors="coerce"
|
|
329
|
+
)
|
|
330
|
+
big_df["换手率"] = pd.to_numeric(big_df["换手率"], errors="coerce")
|
|
331
|
+
big_df["流通市值"] = pd.to_numeric(big_df["流通市值"], errors="coerce")
|
|
332
|
+
return big_df
|
|
310
333
|
|
|
311
334
|
|
|
312
335
|
def stock_lhb_jgstatistic_em(symbol: str = "近一月") -> pd.DataFrame:
|
|
@@ -340,12 +363,13 @@ def stock_lhb_jgstatistic_em(symbol: str = "近一月") -> pd.DataFrame:
|
|
|
340
363
|
data_json = r.json()
|
|
341
364
|
total_page = data_json["result"]["pages"]
|
|
342
365
|
big_df = pd.DataFrame()
|
|
366
|
+
tqdm = get_tqdm()
|
|
343
367
|
for page in tqdm(range(1, total_page + 1), leave=False):
|
|
344
368
|
params.update({"pageNumber": page})
|
|
345
369
|
r = requests.get(url, params=params)
|
|
346
370
|
data_json = r.json()
|
|
347
371
|
temp_df = pd.DataFrame(data_json["result"]["data"])
|
|
348
|
-
big_df = pd.concat([big_df, temp_df], ignore_index=True)
|
|
372
|
+
big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
|
|
349
373
|
big_df.reset_index(inplace=True)
|
|
350
374
|
big_df["index"] = big_df.index + 1
|
|
351
375
|
big_df.rename(
|
|
@@ -411,7 +435,7 @@ def stock_lhb_hyyyb_em(
|
|
|
411
435
|
) -> pd.DataFrame:
|
|
412
436
|
"""
|
|
413
437
|
东方财富网-数据中心-龙虎榜单-每日活跃营业部
|
|
414
|
-
https://data.eastmoney.com/stock/
|
|
438
|
+
https://data.eastmoney.com/stock/hyyyb.html
|
|
415
439
|
:param start_date: 开始日期
|
|
416
440
|
:type start_date: str
|
|
417
441
|
:param end_date: 结束日期
|
|
@@ -436,14 +460,14 @@ def stock_lhb_hyyyb_em(
|
|
|
436
460
|
r = requests.get(url, params=params)
|
|
437
461
|
data_json = r.json()
|
|
438
462
|
total_page = data_json["result"]["pages"]
|
|
439
|
-
|
|
440
463
|
big_df = pd.DataFrame()
|
|
464
|
+
tqdm = get_tqdm()
|
|
441
465
|
for page in tqdm(range(1, total_page + 1), leave=False):
|
|
442
466
|
params.update({"pageNumber": page})
|
|
443
467
|
r = requests.get(url, params=params)
|
|
444
468
|
data_json = r.json()
|
|
445
469
|
temp_df = pd.DataFrame(data_json["result"]["data"])
|
|
446
|
-
big_df = pd.concat([big_df, temp_df], ignore_index=True)
|
|
470
|
+
big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
|
|
447
471
|
big_df.reset_index(inplace=True)
|
|
448
472
|
big_df["index"] = big_df.index + 1
|
|
449
473
|
big_df.columns = [
|
|
@@ -475,12 +499,12 @@ def stock_lhb_hyyyb_em(
|
|
|
475
499
|
]
|
|
476
500
|
]
|
|
477
501
|
|
|
478
|
-
big_df["上榜日"] = pd.to_datetime(big_df["上榜日"]).dt.date
|
|
479
|
-
big_df["买入个股数"] = pd.to_numeric(big_df["买入个股数"])
|
|
480
|
-
big_df["卖出个股数"] = pd.to_numeric(big_df["卖出个股数"])
|
|
481
|
-
big_df["买入总金额"] = pd.to_numeric(big_df["买入总金额"])
|
|
482
|
-
big_df["卖出总金额"] = pd.to_numeric(big_df["卖出总金额"])
|
|
483
|
-
big_df["总买卖净额"] = pd.to_numeric(big_df["总买卖净额"])
|
|
502
|
+
big_df["上榜日"] = pd.to_datetime(big_df["上榜日"], errors="coerce").dt.date
|
|
503
|
+
big_df["买入个股数"] = pd.to_numeric(big_df["买入个股数"], errors="coerce")
|
|
504
|
+
big_df["卖出个股数"] = pd.to_numeric(big_df["卖出个股数"], errors="coerce")
|
|
505
|
+
big_df["买入总金额"] = pd.to_numeric(big_df["买入总金额"], errors="coerce")
|
|
506
|
+
big_df["卖出总金额"] = pd.to_numeric(big_df["卖出总金额"], errors="coerce")
|
|
507
|
+
big_df["总买卖净额"] = pd.to_numeric(big_df["总买卖净额"], errors="coerce")
|
|
484
508
|
return big_df
|
|
485
509
|
|
|
486
510
|
|
|
@@ -515,12 +539,13 @@ def stock_lhb_yybph_em(symbol: str = "近一月") -> pd.DataFrame:
|
|
|
515
539
|
data_json = r.json()
|
|
516
540
|
total_page = data_json["result"]["pages"]
|
|
517
541
|
big_df = pd.DataFrame()
|
|
542
|
+
tqdm = get_tqdm()
|
|
518
543
|
for page in tqdm(range(1, total_page + 1), leave=False):
|
|
519
544
|
params.update({"pageNumber": page})
|
|
520
545
|
r = requests.get(url, params=params)
|
|
521
546
|
data_json = r.json()
|
|
522
547
|
temp_df = pd.DataFrame(data_json["result"]["data"])
|
|
523
|
-
big_df = pd.concat([big_df, temp_df], ignore_index=True)
|
|
548
|
+
big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
|
|
524
549
|
big_df.reset_index(inplace=True)
|
|
525
550
|
big_df["index"] = big_df.index + 1
|
|
526
551
|
big_df.rename(
|
|
@@ -567,25 +592,55 @@ def stock_lhb_yybph_em(symbol: str = "近一月") -> pd.DataFrame:
|
|
|
567
592
|
]
|
|
568
593
|
]
|
|
569
594
|
|
|
570
|
-
big_df["上榜后1天-买入次数"] = pd.to_numeric(
|
|
571
|
-
|
|
572
|
-
|
|
595
|
+
big_df["上榜后1天-买入次数"] = pd.to_numeric(
|
|
596
|
+
big_df["上榜后1天-买入次数"], errors="coerce"
|
|
597
|
+
)
|
|
598
|
+
big_df["上榜后1天-平均涨幅"] = pd.to_numeric(
|
|
599
|
+
big_df["上榜后1天-平均涨幅"], errors="coerce"
|
|
600
|
+
)
|
|
601
|
+
big_df["上榜后1天-上涨概率"] = pd.to_numeric(
|
|
602
|
+
big_df["上榜后1天-上涨概率"], errors="coerce"
|
|
603
|
+
)
|
|
573
604
|
|
|
574
|
-
big_df["上榜后2天-买入次数"] = pd.to_numeric(
|
|
575
|
-
|
|
576
|
-
|
|
605
|
+
big_df["上榜后2天-买入次数"] = pd.to_numeric(
|
|
606
|
+
big_df["上榜后2天-买入次数"], errors="coerce"
|
|
607
|
+
)
|
|
608
|
+
big_df["上榜后2天-平均涨幅"] = pd.to_numeric(
|
|
609
|
+
big_df["上榜后2天-平均涨幅"], errors="coerce"
|
|
610
|
+
)
|
|
611
|
+
big_df["上榜后2天-上涨概率"] = pd.to_numeric(
|
|
612
|
+
big_df["上榜后2天-上涨概率"], errors="coerce"
|
|
613
|
+
)
|
|
577
614
|
|
|
578
|
-
big_df["上榜后3天-买入次数"] = pd.to_numeric(
|
|
579
|
-
|
|
580
|
-
|
|
615
|
+
big_df["上榜后3天-买入次数"] = pd.to_numeric(
|
|
616
|
+
big_df["上榜后3天-买入次数"], errors="coerce"
|
|
617
|
+
)
|
|
618
|
+
big_df["上榜后3天-平均涨幅"] = pd.to_numeric(
|
|
619
|
+
big_df["上榜后3天-平均涨幅"], errors="coerce"
|
|
620
|
+
)
|
|
621
|
+
big_df["上榜后3天-上涨概率"] = pd.to_numeric(
|
|
622
|
+
big_df["上榜后3天-上涨概率"], errors="coerce"
|
|
623
|
+
)
|
|
581
624
|
|
|
582
|
-
big_df["上榜后5天-买入次数"] = pd.to_numeric(
|
|
583
|
-
|
|
584
|
-
|
|
625
|
+
big_df["上榜后5天-买入次数"] = pd.to_numeric(
|
|
626
|
+
big_df["上榜后5天-买入次数"], errors="coerce"
|
|
627
|
+
)
|
|
628
|
+
big_df["上榜后5天-平均涨幅"] = pd.to_numeric(
|
|
629
|
+
big_df["上榜后5天-平均涨幅"], errors="coerce"
|
|
630
|
+
)
|
|
631
|
+
big_df["上榜后5天-上涨概率"] = pd.to_numeric(
|
|
632
|
+
big_df["上榜后5天-上涨概率"], errors="coerce"
|
|
633
|
+
)
|
|
585
634
|
|
|
586
|
-
big_df["上榜后10天-买入次数"] = pd.to_numeric(
|
|
587
|
-
|
|
588
|
-
|
|
635
|
+
big_df["上榜后10天-买入次数"] = pd.to_numeric(
|
|
636
|
+
big_df["上榜后10天-买入次数"], errors="coerce"
|
|
637
|
+
)
|
|
638
|
+
big_df["上榜后10天-平均涨幅"] = pd.to_numeric(
|
|
639
|
+
big_df["上榜后10天-平均涨幅"], errors="coerce"
|
|
640
|
+
)
|
|
641
|
+
big_df["上榜后10天-上涨概率"] = pd.to_numeric(
|
|
642
|
+
big_df["上榜后10天-上涨概率"], errors="coerce"
|
|
643
|
+
)
|
|
589
644
|
return big_df
|
|
590
645
|
|
|
591
646
|
|
|
@@ -620,12 +675,13 @@ def stock_lhb_traderstatistic_em(symbol: str = "近一月") -> pd.DataFrame:
|
|
|
620
675
|
data_json = r.json()
|
|
621
676
|
total_page = data_json["result"]["pages"]
|
|
622
677
|
big_df = pd.DataFrame()
|
|
678
|
+
tqdm = get_tqdm()
|
|
623
679
|
for page in tqdm(range(1, total_page + 1), leave=False):
|
|
624
680
|
params.update({"pageNumber": page})
|
|
625
681
|
r = requests.get(url, params=params)
|
|
626
682
|
data_json = r.json()
|
|
627
683
|
temp_df = pd.DataFrame(data_json["result"]["data"])
|
|
628
|
-
big_df = pd.concat([big_df, temp_df], ignore_index=True)
|
|
684
|
+
big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
|
|
629
685
|
big_df.reset_index(inplace=True)
|
|
630
686
|
big_df["index"] = big_df.index + 1
|
|
631
687
|
big_df.rename(
|
|
@@ -784,11 +840,15 @@ def stock_lhb_stock_detail_em(
|
|
|
784
840
|
"类型",
|
|
785
841
|
]
|
|
786
842
|
]
|
|
787
|
-
temp_df["买入金额"] = pd.to_numeric(temp_df["买入金额"])
|
|
788
|
-
temp_df["买入金额-占总成交比例"] = pd.to_numeric(
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
temp_df.
|
|
843
|
+
temp_df["买入金额"] = pd.to_numeric(temp_df["买入金额"], errors="coerce")
|
|
844
|
+
temp_df["买入金额-占总成交比例"] = pd.to_numeric(
|
|
845
|
+
temp_df["买入金额-占总成交比例"], errors="coerce"
|
|
846
|
+
)
|
|
847
|
+
temp_df["卖出金额"] = pd.to_numeric(temp_df["卖出金额"], errors="coerce")
|
|
848
|
+
temp_df["卖出金额-占总成交比例"] = pd.to_numeric(
|
|
849
|
+
temp_df["卖出金额-占总成交比例"], errors="coerce"
|
|
850
|
+
)
|
|
851
|
+
temp_df.sort_values("类型", inplace=True, ignore_index=True)
|
|
792
852
|
temp_df.reset_index(inplace=True, drop=True)
|
|
793
853
|
temp_df["序号"] = range(1, len(temp_df["序号"]) + 1)
|
|
794
854
|
else:
|
|
@@ -827,11 +887,15 @@ def stock_lhb_stock_detail_em(
|
|
|
827
887
|
"类型",
|
|
828
888
|
]
|
|
829
889
|
]
|
|
830
|
-
temp_df["买入金额"] = pd.to_numeric(temp_df["买入金额"])
|
|
831
|
-
temp_df["买入金额-占总成交比例"] = pd.to_numeric(
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
temp_df.
|
|
890
|
+
temp_df["买入金额"] = pd.to_numeric(temp_df["买入金额"], errors="coerce")
|
|
891
|
+
temp_df["买入金额-占总成交比例"] = pd.to_numeric(
|
|
892
|
+
temp_df["买入金额-占总成交比例"], errors="coerce"
|
|
893
|
+
)
|
|
894
|
+
temp_df["卖出金额"] = pd.to_numeric(temp_df["卖出金额"], errors="coerce")
|
|
895
|
+
temp_df["卖出金额-占总成交比例"] = pd.to_numeric(
|
|
896
|
+
temp_df["卖出金额-占总成交比例"], errors="coerce"
|
|
897
|
+
)
|
|
898
|
+
temp_df.sort_values("类型", inplace=True, ignore_index=True)
|
|
835
899
|
temp_df.reset_index(inplace=True, drop=True)
|
|
836
900
|
temp_df["序号"] = range(1, len(temp_df["序号"]) + 1)
|
|
837
901
|
return temp_df
|
|
@@ -856,7 +920,7 @@ if __name__ == "__main__":
|
|
|
856
920
|
print(stock_lhb_stock_statistic_em_df)
|
|
857
921
|
|
|
858
922
|
stock_lhb_jgmmtj_em_df = stock_lhb_jgmmtj_em(
|
|
859
|
-
start_date="
|
|
923
|
+
start_date="20240417", end_date="20240430"
|
|
860
924
|
)
|
|
861
925
|
print(stock_lhb_jgmmtj_em_df)
|
|
862
926
|
|
|
@@ -864,7 +928,7 @@ if __name__ == "__main__":
|
|
|
864
928
|
print(stock_lhb_jgstatistic_em_df)
|
|
865
929
|
|
|
866
930
|
stock_lhb_hyyyb_em_df = stock_lhb_hyyyb_em(
|
|
867
|
-
start_date="
|
|
931
|
+
start_date="20240401", end_date="20240430"
|
|
868
932
|
)
|
|
869
933
|
print(stock_lhb_hyyyb_em_df)
|
|
870
934
|
|
|
@@ -883,6 +947,6 @@ if __name__ == "__main__":
|
|
|
883
947
|
print(stock_lhb_stock_detail_em_df)
|
|
884
948
|
|
|
885
949
|
stock_lhb_stock_detail_em_df = stock_lhb_stock_detail_em(
|
|
886
|
-
symbol="
|
|
950
|
+
symbol="600077", date="20070416", flag="买入"
|
|
887
951
|
)
|
|
888
952
|
print(stock_lhb_stock_detail_em_df)
|