akshare 1.13.46__py3-none-any.whl → 1.17.99__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.
- akshare/__init__.py +757 -161
- akshare/air/air_hebei.py +79 -53
- akshare/air/air_zhenqi.py +3 -7
- akshare/air/cons.py +1 -0
- akshare/air/crypto.js +1 -1
- akshare/air/outcrypto.js +1 -1
- akshare/air/sunrise_tad.py +32 -17
- akshare/article/cons.py +1 -0
- akshare/article/epu_index.py +4 -3
- akshare/article/ff_factor.py +19 -8
- akshare/article/fred_md.py +4 -1
- akshare/article/risk_rv.py +3 -8
- akshare/bank/bank_cbirc_2020.py +11 -11
- akshare/bank/cons.py +7 -6
- akshare/bond/bond_buy_back_em.py +228 -0
- akshare/bond/bond_cb_sina.py +1 -0
- akshare/bond/bond_cb_ths.py +17 -9
- akshare/bond/bond_cbond.py +19 -14
- akshare/bond/bond_china.py +38 -39
- akshare/bond/bond_china_money.py +75 -48
- akshare/bond/bond_convert.py +10 -9
- akshare/bond/bond_em.py +37 -17
- akshare/bond/bond_info_cm.py +28 -8
- akshare/bond/bond_issue_cninfo.py +73 -30
- akshare/bond/bond_summary.py +38 -37
- akshare/bond/bond_zh_cov.py +31 -40
- akshare/bond/bond_zh_sina.py +61 -51
- akshare/bond/cons.py +14 -11
- akshare/cal/__init__.py +0 -0
- akshare/cal/rv.py +170 -0
- akshare/cost/cost_living.py +7 -5
- akshare/crypto/__init__.py +1 -1
- akshare/crypto/crypto_bitcoin_cme.py +9 -7
- akshare/crypto/crypto_hold.py +4 -2
- akshare/currency/currency.py +1 -0
- akshare/currency/currency_china_bank_sina.py +11 -6
- akshare/currency/currency_safe.py +7 -6
- akshare/data/__init__.py +1 -1
- akshare/data/cninfo.js +1 -1
- akshare/datasets.py +10 -21
- akshare/economic/cons.py +10 -3
- akshare/economic/macro_australia.py +74 -69
- akshare/economic/macro_bank.py +95 -653
- akshare/economic/macro_canada.py +92 -81
- akshare/economic/macro_china.py +163 -117
- akshare/economic/macro_china_hk.py +0 -1
- akshare/economic/macro_china_nbs.py +24 -7
- akshare/economic/macro_euro.py +103 -56
- akshare/economic/macro_finance_ths.py +135 -0
- akshare/economic/macro_germany.py +1 -1
- akshare/economic/macro_info_ws.py +100 -0
- akshare/economic/macro_japan.py +0 -1
- akshare/economic/macro_other.py +1 -6
- akshare/economic/macro_swiss.py +2 -3
- akshare/economic/macro_uk.py +1 -1
- akshare/economic/macro_usa.py +7 -9
- akshare/economic/marco_cnbs.py +11 -6
- akshare/energy/energy_carbon.py +94 -126
- akshare/energy/energy_oil_em.py +1 -2
- akshare/event/cons.py +1 -0
- akshare/event/migration.py +3 -2
- akshare/exceptions.py +43 -0
- akshare/file_fold/calendar.json +245 -2
- akshare/forex/__init__.py +0 -0
- akshare/forex/cons.py +192 -0
- akshare/forex/forex_em.py +149 -0
- akshare/fortune/fortune_500.py +15 -48
- akshare/fortune/fortune_bloomberg.py +6 -3
- akshare/fortune/fortune_forbes_500.py +3 -6
- akshare/fortune/fortune_hurun.py +2 -1
- akshare/fortune/fortune_xincaifu_500.py +17 -14
- akshare/fund/fund_amac.py +38 -15
- akshare/fund/fund_announcement_em.py +145 -0
- akshare/fund/fund_aum_em.py +49 -35
- akshare/fund/fund_em.py +251 -220
- akshare/fund/fund_etf_em.py +44 -35
- akshare/fund/fund_etf_sina.py +76 -27
- akshare/fund/fund_etf_ths.py +95 -0
- akshare/fund/fund_fee_em.py +172 -0
- akshare/fund/fund_fhsp_em.py +42 -32
- akshare/fund/fund_init_em.py +8 -5
- akshare/fund/fund_lof_em.py +12 -19
- akshare/fund/fund_manager.py +25 -11
- akshare/fund/fund_overview_em.py +42 -0
- akshare/fund/fund_portfolio_em.py +78 -66
- akshare/fund/fund_position_lg.py +19 -8
- akshare/fund/fund_rank_em.py +90 -84
- akshare/fund/fund_rating.py +33 -12
- akshare/fund/fund_report_cninfo.py +63 -48
- akshare/fund/fund_scale_em.py +24 -13
- akshare/fund/fund_scale_sina.py +20 -10
- akshare/fund/fund_xq.py +3 -2
- akshare/futures/cons.py +141 -46
- akshare/futures/cot.py +89 -88
- akshare/futures/futures_basis.py +99 -33
- akshare/futures/futures_comex_em.py +1 -0
- akshare/futures/futures_comm_ctp.py +13 -2
- akshare/futures/futures_contract_detail.py +59 -9
- akshare/futures/futures_daily_bar.py +75 -62
- akshare/futures/futures_foreign.py +14 -8
- akshare/futures/futures_hf_em.py +215 -61
- akshare/futures/futures_hist_em.py +191 -0
- akshare/futures/futures_hq_sina.py +79 -61
- akshare/futures/futures_index_ccidx.py +24 -82
- akshare/futures/futures_inventory_99.py +70 -272
- akshare/futures/futures_inventory_em.py +14 -11
- akshare/futures/futures_news_shmet.py +2 -2
- akshare/futures/futures_roll_yield.py +11 -24
- akshare/futures/futures_rule.py +7 -3
- akshare/futures/futures_rule_em.py +38 -0
- akshare/futures/futures_settlement_price_sgx.py +21 -6
- akshare/futures/futures_stock_js.py +1 -2
- akshare/futures/futures_to_spot.py +43 -39
- akshare/futures/futures_warehouse_receipt.py +53 -48
- akshare/futures/futures_zh_sina.py +4 -4
- akshare/futures/receipt.py +298 -165
- akshare/futures/requests_fun.py +16 -3
- akshare/futures/symbol_var.py +32 -13
- akshare/futures_derivative/cons.py +100 -103
- akshare/futures_derivative/futures_contract_info_cffex.py +55 -39
- akshare/futures_derivative/futures_contract_info_czce.py +2 -0
- akshare/futures_derivative/futures_contract_info_dce.py +43 -17
- akshare/futures_derivative/futures_contract_info_gfex.py +43 -31
- akshare/futures_derivative/futures_contract_info_ine.py +43 -34
- akshare/futures_derivative/futures_contract_info_shfe.py +7 -8
- akshare/futures_derivative/futures_cot_sina.py +28 -19
- akshare/futures_derivative/futures_index_sina.py +25 -13
- akshare/fx/cons.py +12 -7
- akshare/fx/currency_investing.py +19 -285
- akshare/fx/fx_c_swap_cm.py +62 -0
- akshare/fx/fx_quote.py +3 -2
- akshare/fx/fx_quote_baidu.py +2 -1
- akshare/hf/__init__.py +1 -1
- akshare/hf/hf_sp500.py +8 -7
- akshare/index/cons.py +132 -28
- akshare/index/index_cflp.py +29 -26
- akshare/index/index_cni.py +89 -91
- akshare/index/index_cons.py +26 -10
- akshare/index/index_csindex.py +68 -0
- akshare/index/index_cx.py +263 -62
- akshare/index/index_drewry.py +17 -16
- akshare/index/index_eri.py +1 -0
- akshare/index/index_global_em.py +167 -0
- akshare/index/index_global_sina.py +82 -0
- akshare/index/index_kq_fz.py +17 -14
- akshare/index/index_kq_ss.py +1 -0
- akshare/index/index_option_qvix.py +351 -16
- akshare/index/index_research_sw.py +38 -38
- akshare/index/index_spot.py +9 -5
- akshare/index/index_stock_hk.py +6 -10
- akshare/index/index_stock_us_sina.py +1 -1
- akshare/index/index_stock_zh.py +193 -101
- akshare/index/index_stock_zh_csindex.py +15 -369
- akshare/index/index_sugar.py +18 -4
- akshare/index/index_sw.py +62 -34
- akshare/index/index_yw.py +53 -75
- akshare/index/index_zh_em.py +15 -82
- akshare/interest_rate/interbank_rate_em.py +14 -10
- akshare/movie/artist_yien.py +32 -5
- akshare/movie/jm.js +0 -1
- akshare/movie/movie_yien.py +92 -18
- akshare/movie/video_yien.py +28 -5
- akshare/news/__init__.py +1 -1
- akshare/news/news_baidu.py +395 -220
- akshare/news/news_cctv.py +38 -38
- akshare/news/news_stock.py +49 -13
- akshare/nlp/nlp_interface.py +7 -8
- akshare/option/cons.py +12 -12
- akshare/option/option_comm_qihuo.py +86 -0
- akshare/option/option_commodity.py +355 -211
- akshare/option/option_commodity_sina.py +22 -26
- akshare/option/option_contract_info_ctp.py +63 -0
- akshare/option/option_current_sse.py +61 -0
- akshare/option/option_current_szse.py +84 -0
- akshare/option/option_czce.py +37 -9
- akshare/option/option_daily_stats_sse_szse.py +145 -0
- akshare/option/option_em.py +4 -8
- akshare/option/option_finance.py +60 -12
- akshare/option/option_finance_sina.py +28 -26
- akshare/option/option_lhb_em.py +62 -57
- akshare/option/option_margin.py +62 -0
- akshare/option/option_premium_analysis_em.py +58 -53
- akshare/option/option_risk_analysis_em.py +11 -8
- akshare/option/option_risk_indicator_sse.py +18 -16
- akshare/option/option_value_analysis_em.py +62 -55
- akshare/other/__init__.py +1 -1
- akshare/other/other_car_cpca.py +20 -20
- akshare/pro/__init__.py +0 -1
- akshare/pro/client.py +6 -4
- akshare/pro/cons.py +3 -2
- akshare/pro/data_pro.py +6 -5
- akshare/qdii/__init__.py +0 -0
- akshare/qdii/qdii_jsl.py +233 -0
- akshare/qhkc/__init__.py +1 -6
- akshare/qhkc/qhkc_api.py +64 -22
- akshare/qhkc_web/__init__.py +1 -6
- akshare/qhkc_web/qhkc_fund.py +10 -6
- akshare/qhkc_web/qhkc_index.py +28 -14
- akshare/qhkc_web/qhkc_tool.py +62 -59
- akshare/rate/__init__.py +1 -1
- akshare/rate/repo_rate.py +36 -32
- akshare/reits/__init__.py +1 -1
- akshare/reits/reits_basic.py +149 -13
- akshare/request.py +117 -0
- akshare/spot/__init__.py +1 -1
- akshare/spot/spot_hog_soozhu.py +232 -0
- akshare/spot/spot_price_qh.py +121 -0
- akshare/spot/spot_sge.py +70 -9
- akshare/stock/cons.py +60 -23
- akshare/stock/stock_allotment_cninfo.py +10 -9
- akshare/stock/stock_ask_bid_em.py +3 -78
- akshare/stock/stock_board_concept_em.py +160 -35
- akshare/stock/stock_board_industry_em.py +163 -70
- 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 +36 -16
- akshare/stock/stock_dzjy_em.py +347 -260
- akshare/stock/stock_fund_em.py +73 -64
- akshare/stock/stock_fund_hold.py +1 -2
- akshare/stock/stock_gsrl_em.py +1 -0
- akshare/stock/stock_hk_comparison_em.py +175 -0
- akshare/stock/stock_hk_famous.py +107 -0
- akshare/stock/stock_hk_fhpx_ths.py +2 -1
- akshare/stock/stock_hk_hot_rank_em.py +1 -0
- akshare/stock/stock_hk_sina.py +91 -42
- akshare/stock/stock_hold_control_cninfo.py +100 -15
- akshare/stock/stock_hold_control_em.py +4 -5
- akshare/stock/stock_hold_num_cninfo.py +18 -12
- akshare/stock/stock_hot_rank_em.py +4 -1
- akshare/stock/stock_hot_search_baidu.py +32 -19
- akshare/stock/stock_hot_up_em.py +4 -1
- akshare/stock/stock_hsgt_em.py +155 -0
- akshare/stock/stock_industry.py +1 -0
- akshare/stock/stock_industry_cninfo.py +25 -20
- akshare/stock/stock_industry_pe_cninfo.py +45 -31
- akshare/stock/stock_industry_sw.py +5 -9
- akshare/stock/stock_info.py +31 -19
- akshare/stock/stock_info_em.py +17 -11
- akshare/stock/stock_intraday_em.py +9 -80
- akshare/stock/stock_intraday_sina.py +2 -2
- 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_profile_em.py +302 -0
- akshare/stock/stock_rank_forecast.py +8 -6
- akshare/stock/stock_repurchase_em.py +7 -2
- akshare/stock/stock_share_changes_cninfo.py +18 -14
- akshare/stock/stock_share_hold.py +24 -20
- akshare/stock/stock_stop.py +6 -6
- akshare/stock/stock_summary.py +153 -417
- akshare/stock/stock_us_famous.py +19 -11
- akshare/stock/stock_us_js.py +3 -2
- akshare/stock/stock_us_pink.py +38 -27
- akshare/stock/stock_us_sina.py +15 -12
- akshare/stock/stock_weibo_nlp.py +18 -20
- akshare/stock/stock_xq.py +36 -9
- akshare/stock/stock_zh_a_sina.py +58 -80
- akshare/stock/stock_zh_a_special.py +240 -243
- akshare/stock/stock_zh_a_tick_tx.py +11 -3
- akshare/stock/stock_zh_ah_tx.py +23 -26
- akshare/stock/stock_zh_b_sina.py +32 -55
- akshare/stock/stock_zh_comparison_em.py +250 -0
- akshare/stock/stock_zh_kcb_report.py +11 -9
- akshare/stock/stock_zh_kcb_sina.py +67 -64
- akshare/stock_a/__init__.py +0 -0
- akshare/stock_a/stock_board_concept_name_em.py +170 -0
- akshare/stock_a/stock_individual_fund_flow_rank.py +258 -0
- akshare/stock_a/stock_zh_a_spot.py +212 -0
- akshare/stock_feature/cons.py +1 -0
- 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 +15 -57
- akshare/stock_feature/stock_a_pe_and_pb.py +39 -9
- akshare/stock_feature/stock_account_em.py +0 -1
- akshare/stock_feature/stock_all_pb.py +2 -1
- akshare/stock_feature/stock_analyst_em.py +36 -30
- akshare/stock_feature/stock_board_concept_ths.py +144 -252
- akshare/stock_feature/stock_board_industry_ths.py +137 -401
- akshare/stock_feature/stock_buffett_index_lg.py +10 -8
- akshare/stock_feature/stock_classify_sina.py +3 -6
- akshare/stock_feature/stock_comment_em.py +81 -144
- akshare/stock_feature/stock_concept_futu.py +183 -0
- akshare/stock_feature/stock_congestion_lg.py +2 -1
- akshare/stock_feature/stock_cyq_em.py +5 -11
- akshare/stock_feature/stock_disclosure_cninfo.py +20 -10
- akshare/stock_feature/stock_dxsyl_em.py +121 -74
- akshare/stock_feature/stock_ebs_lg.py +5 -4
- akshare/stock_feature/stock_esg_sina.py +33 -15
- akshare/stock_feature/stock_fhps_em.py +62 -26
- akshare/stock_feature/stock_fhps_ths.py +34 -7
- akshare/stock_feature/stock_fund_flow.py +38 -25
- akshare/stock_feature/stock_gddh_em.py +19 -11
- akshare/stock_feature/stock_gdfx_em.py +226 -113
- akshare/stock_feature/stock_gdhs.py +75 -50
- akshare/stock_feature/stock_gdzjc_em.py +21 -10
- akshare/stock_feature/stock_gpzy_em.py +78 -46
- akshare/stock_feature/stock_gxl_lg.py +3 -2
- akshare/stock_feature/stock_hist_em.py +158 -237
- akshare/stock_feature/stock_hist_tx.py +13 -10
- akshare/stock_feature/stock_hk_valuation_baidu.py +20 -8
- akshare/stock_feature/stock_hot_xq.py +4 -6
- akshare/stock_feature/stock_hsgt_em.py +269 -97
- akshare/stock_feature/stock_hsgt_exchange_rate.py +115 -87
- akshare/stock_feature/stock_hsgt_min_em.py +13 -16
- akshare/stock_feature/stock_info.py +8 -81
- akshare/stock_feature/stock_inner_trade_xq.py +38 -31
- akshare/stock_feature/stock_irm_cninfo.py +32 -9
- akshare/stock_feature/stock_jgdy_em.py +43 -40
- akshare/stock_feature/stock_lh_yybpm.py +36 -37
- akshare/stock_feature/stock_lhb_em.py +165 -35
- akshare/stock_feature/stock_lhb_sina.py +93 -46
- akshare/stock_feature/stock_margin_em.py +101 -0
- akshare/stock_feature/{stock_sse_margin.py → stock_margin_sse.py} +21 -17
- akshare/stock_feature/{stock_szse_margin.py → stock_margin_szse.py} +7 -7
- akshare/stock_feature/stock_market_legu.py +4 -2
- akshare/stock_feature/stock_pankou_em.py +71 -35
- akshare/stock_feature/stock_qsjy_em.py +13 -4
- akshare/stock_feature/stock_report_em.py +152 -8
- akshare/stock_feature/stock_research_report_em.py +55 -20
- akshare/stock_feature/stock_sns_sseinfo.py +15 -12
- akshare/stock_feature/stock_sy_em.py +20 -15
- akshare/stock_feature/stock_technology_ths.py +152 -120
- akshare/stock_feature/stock_tfp_em.py +37 -14
- akshare/stock_feature/stock_three_report_em.py +120 -78
- akshare/stock_feature/stock_ttm_lyr.py +18 -9
- akshare/stock_feature/stock_value_em.py +83 -0
- akshare/stock_feature/stock_yjbb_em.py +58 -32
- akshare/stock_feature/stock_yjyg_cninfo.py +6 -2
- akshare/stock_feature/stock_yjyg_em.py +1 -1
- akshare/stock_feature/stock_yzxdr_em.py +24 -22
- akshare/stock_feature/stock_zdhtmx_em.py +20 -6
- akshare/stock_feature/stock_zh_valuation_baidu.py +3 -2
- akshare/stock_feature/stock_zh_vote_baidu.py +4 -1
- akshare/stock_feature/stock_ztb_em.py +39 -24
- akshare/stock_fundamental/__init__.py +1 -1
- akshare/stock_fundamental/stock_basic_info_xq.py +119 -0
- akshare/stock_fundamental/{stock_finance_hk.py → stock_finance_hk_em.py} +23 -16
- akshare/stock_fundamental/{stock_finance.py → stock_finance_sina.py} +203 -59
- akshare/stock_fundamental/stock_finance_ths.py +524 -57
- akshare/stock_fundamental/stock_finance_us_em.py +268 -0
- akshare/stock_fundamental/stock_gbjg_em.py +80 -0
- akshare/stock_fundamental/stock_hold.py +26 -17
- akshare/stock_fundamental/stock_ipo_declare.py +1 -0
- akshare/stock_fundamental/stock_kcb_detail_sse.py +10 -10
- akshare/stock_fundamental/stock_kcb_sse.py +26 -25
- akshare/stock_fundamental/stock_notice.py +41 -18
- akshare/stock_fundamental/stock_profit_forecast_em.py +31 -13
- akshare/stock_fundamental/stock_profit_forecast_hk_etnet.py +64 -41
- akshare/stock_fundamental/stock_profit_forecast_ths.py +86 -35
- akshare/stock_fundamental/stock_recommend.py +20 -4
- akshare/stock_fundamental/stock_register_em.py +448 -0
- akshare/stock_fundamental/stock_zygc.py +5 -62
- akshare/tool/trade_date_hist.py +1 -1
- akshare/utils/context.py +43 -0
- akshare/utils/demjson.py +2009 -1338
- akshare/utils/func.py +49 -2
- akshare/utils/multi_decrypt.py +53 -0
- akshare/utils/token_process.py +6 -5
- akshare/utils/tqdm.py +13 -3
- {akshare-1.13.46.dist-info → akshare-1.17.99.dist-info}/METADATA +56 -86
- akshare-1.17.99.dist-info/RECORD +409 -0
- {akshare-1.13.46.dist-info → akshare-1.17.99.dist-info}/WHEEL +1 -1
- {akshare-1.13.46.dist-info → akshare-1.17.99.dist-info/licenses}/LICENSE +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/fund/fund_announcement.py +0 -56
- 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 -78
- akshare/index/index_investing.py +0 -232
- akshare/sport/__init__.py +0 -6
- akshare/sport/sport_olympic.py +0 -27
- akshare/sport/sport_olympic_winter.py +0 -39
- akshare/stock_feature/stock_wencai.py +0 -104
- akshare/stock_fundamental/stock_mda_ym.py +0 -40
- akshare/stock_fundamental/stock_register.py +0 -292
- akshare-1.13.46.dist-info/RECORD +0 -380
- {akshare-1.13.46.dist-info → akshare-1.17.99.dist-info}/top_level.txt +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env python
|
|
2
2
|
# -*- coding:utf-8 -*-
|
|
3
3
|
"""
|
|
4
|
-
Date: 2024/
|
|
4
|
+
Date: 2024/10/23 13:00
|
|
5
5
|
Desc: 申万宏源研究-指数系列
|
|
6
|
-
https://www.
|
|
6
|
+
https://www.swsresearch.com/institute_sw/allIndex/releasedIndex
|
|
7
7
|
"""
|
|
8
8
|
|
|
9
9
|
import math
|
|
@@ -17,7 +17,7 @@ from akshare.utils.tqdm import get_tqdm
|
|
|
17
17
|
def index_hist_sw(symbol: str = "801030", period: str = "day") -> pd.DataFrame:
|
|
18
18
|
"""
|
|
19
19
|
申万宏源研究-指数发布-指数详情-指数历史数据
|
|
20
|
-
https://www.
|
|
20
|
+
https://www.swsresearch.com/institute_sw/allIndex/releasedIndex/releasedetail?code=801001&name=%E7%94%B3%E4%B8%8750
|
|
21
21
|
:param symbol: 指数代码
|
|
22
22
|
:type symbol: str
|
|
23
23
|
:param period: choice of {"day", "week", "month"}
|
|
@@ -30,16 +30,16 @@ def index_hist_sw(symbol: str = "801030", period: str = "day") -> pd.DataFrame:
|
|
|
30
30
|
"week": "WEEK",
|
|
31
31
|
"month": "MONTH",
|
|
32
32
|
}
|
|
33
|
-
url = "https://www.
|
|
33
|
+
url = "https://www.swsresearch.com/institute-sw/api/index_publish/trend/"
|
|
34
34
|
params = {
|
|
35
35
|
"swindexcode": symbol,
|
|
36
36
|
"period": period_map[period],
|
|
37
37
|
}
|
|
38
38
|
headers = {
|
|
39
39
|
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
|
|
40
|
-
"Chrome/114.0.0.0 Safari/537.36"
|
|
40
|
+
"Chrome/114.0.0.0 Safari/537.36",
|
|
41
41
|
}
|
|
42
|
-
r = requests.get(url, params=params, headers=headers)
|
|
42
|
+
r = requests.get(url, params=params, headers=headers, verify=False)
|
|
43
43
|
data_json = r.json()
|
|
44
44
|
temp_df = pd.DataFrame(data_json["data"])
|
|
45
45
|
temp_df.rename(
|
|
@@ -81,14 +81,14 @@ def index_hist_sw(symbol: str = "801030", period: str = "day") -> pd.DataFrame:
|
|
|
81
81
|
def index_min_sw(symbol: str = "801001") -> pd.DataFrame:
|
|
82
82
|
"""
|
|
83
83
|
申万宏源研究-指数发布-指数详情-指数分时数据
|
|
84
|
-
https://www.
|
|
84
|
+
https://www.swsresearch.com/institute_sw/allIndex/releasedIndex/releasedetail?code=801001&name=%E7%94%B3%E4%B8%8750
|
|
85
85
|
:param symbol: 指数代码
|
|
86
86
|
:type symbol: str
|
|
87
87
|
:return: 指数分时数据
|
|
88
88
|
:rtype: pandas.DataFrame
|
|
89
89
|
"""
|
|
90
90
|
url = (
|
|
91
|
-
"https://www.
|
|
91
|
+
"https://www.swsresearch.com/institute-sw/api/index_publish/details/timelines/"
|
|
92
92
|
)
|
|
93
93
|
params = {
|
|
94
94
|
"swindexcode": symbol,
|
|
@@ -97,7 +97,7 @@ def index_min_sw(symbol: str = "801001") -> pd.DataFrame:
|
|
|
97
97
|
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
|
|
98
98
|
"Chrome/114.0.0.0 Safari/537.36"
|
|
99
99
|
}
|
|
100
|
-
r = requests.get(url, params=params, headers=headers)
|
|
100
|
+
r = requests.get(url, params=params, headers=headers, verify=False)
|
|
101
101
|
data_json = r.json()
|
|
102
102
|
temp_df = pd.DataFrame(data_json["data"])
|
|
103
103
|
temp_df.rename(
|
|
@@ -127,19 +127,19 @@ def index_min_sw(symbol: str = "801001") -> pd.DataFrame:
|
|
|
127
127
|
def index_component_sw(symbol: str = "801001") -> pd.DataFrame:
|
|
128
128
|
"""
|
|
129
129
|
申万宏源研究-指数发布-指数详情-成分股
|
|
130
|
-
https://www.
|
|
130
|
+
https://www.swsresearch.com/institute_sw/allIndex/releasedIndex/releasedetail?code=801001&name=%E7%94%B3%E4%B8%8750
|
|
131
131
|
:param symbol: 指数代码
|
|
132
132
|
:type symbol: str
|
|
133
133
|
:return: 成分股
|
|
134
134
|
:rtype: pandas.DataFrame
|
|
135
135
|
"""
|
|
136
|
-
url = "https://www.
|
|
136
|
+
url = "https://www.swsresearch.com/institute-sw/api/index_publish/details/component_stocks/"
|
|
137
137
|
params = {"swindexcode": symbol, "page": "1", "page_size": "10000"}
|
|
138
138
|
headers = {
|
|
139
139
|
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
|
|
140
140
|
"Chrome/114.0.0.0 Safari/537.36"
|
|
141
141
|
}
|
|
142
|
-
r = requests.get(url, params=params, headers=headers)
|
|
142
|
+
r = requests.get(url, params=params, headers=headers, verify=False)
|
|
143
143
|
data_json = r.json()
|
|
144
144
|
temp_df = pd.DataFrame(data_json["data"]["results"])
|
|
145
145
|
temp_df.reset_index(inplace=True)
|
|
@@ -190,7 +190,7 @@ def __index_realtime_sw(symbol: str = "大类风格指数") -> pd.DataFrame:
|
|
|
190
190
|
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
|
|
191
191
|
"Chrome/114.0.0.0 Safari/537.36"
|
|
192
192
|
}
|
|
193
|
-
r = requests.post(url, json=payload, headers=headers)
|
|
193
|
+
r = requests.post(url, json=payload, headers=headers, verify=False)
|
|
194
194
|
data_json = r.json()
|
|
195
195
|
temp_df = pd.DataFrame(data_json["data"]["list"])
|
|
196
196
|
temp_df.rename(
|
|
@@ -221,7 +221,7 @@ def __index_realtime_sw(symbol: str = "大类风格指数") -> pd.DataFrame:
|
|
|
221
221
|
def index_realtime_sw(symbol: str = "二级行业") -> pd.DataFrame:
|
|
222
222
|
"""
|
|
223
223
|
申万宏源研究-指数系列
|
|
224
|
-
https://www.
|
|
224
|
+
https://www.swsresearch.com/institute_sw/allIndex/releasedIndex
|
|
225
225
|
:param symbol: choice of {"市场表征", "一级行业", "二级行业", "风格指数", "大类风格指数", "金创指数"}
|
|
226
226
|
:type symbol: str
|
|
227
227
|
:return: 指数系列实时行情数据
|
|
@@ -230,13 +230,13 @@ def index_realtime_sw(symbol: str = "二级行业") -> pd.DataFrame:
|
|
|
230
230
|
if symbol in {"大类风格指数", "金创指数"}:
|
|
231
231
|
temp_df = __index_realtime_sw(symbol)
|
|
232
232
|
return temp_df
|
|
233
|
-
url = "https://www.
|
|
233
|
+
url = "https://www.swsresearch.com/institute-sw/api/index_publish/current/"
|
|
234
234
|
params = {"page": "1", "page_size": "50", "indextype": symbol}
|
|
235
235
|
headers = {
|
|
236
236
|
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
|
|
237
237
|
"Chrome/114.0.0.0 Safari/537.36"
|
|
238
238
|
}
|
|
239
|
-
r = requests.get(url, params=params, headers=headers)
|
|
239
|
+
r = requests.get(url, params=params, headers=headers, verify=False)
|
|
240
240
|
data_json = r.json()
|
|
241
241
|
total_num = data_json["data"]["count"]
|
|
242
242
|
total_page = math.ceil(total_num / 50)
|
|
@@ -244,7 +244,7 @@ def index_realtime_sw(symbol: str = "二级行业") -> pd.DataFrame:
|
|
|
244
244
|
tqdm = get_tqdm()
|
|
245
245
|
for page in tqdm(range(1, total_page + 1), leave=False):
|
|
246
246
|
params.update({"page": page})
|
|
247
|
-
r = requests.get(url, params=params, headers=headers)
|
|
247
|
+
r = requests.get(url, params=params, headers=headers, verify=False)
|
|
248
248
|
data_json = r.json()
|
|
249
249
|
temp_df = pd.DataFrame(data_json["data"]["results"])
|
|
250
250
|
big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
|
|
@@ -289,7 +289,7 @@ def index_analysis_daily_sw(
|
|
|
289
289
|
) -> pd.DataFrame:
|
|
290
290
|
"""
|
|
291
291
|
申万宏源研究-指数分析
|
|
292
|
-
https://www.
|
|
292
|
+
https://www.swsresearch.com/institute_sw/allIndex/analysisIndex
|
|
293
293
|
:param symbol: choice of {"市场表征", "一级行业", "二级行业", "风格指数"}
|
|
294
294
|
:type symbol: str
|
|
295
295
|
:param start_date: 开始日期
|
|
@@ -299,7 +299,7 @@ def index_analysis_daily_sw(
|
|
|
299
299
|
:return: 指数分析
|
|
300
300
|
:rtype: pandas.DataFrame
|
|
301
301
|
"""
|
|
302
|
-
url = "https://www.
|
|
302
|
+
url = "https://www.swsresearch.com/institute-sw/api/index_analysis/index_analysis_report/"
|
|
303
303
|
params = {
|
|
304
304
|
"page": "1",
|
|
305
305
|
"page_size": "50",
|
|
@@ -313,7 +313,7 @@ def index_analysis_daily_sw(
|
|
|
313
313
|
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
|
|
314
314
|
"Chrome/114.0.0.0 Safari/537.36"
|
|
315
315
|
}
|
|
316
|
-
r = requests.get(url, params=params, headers=headers)
|
|
316
|
+
r = requests.get(url, params=params, headers=headers, verify=False)
|
|
317
317
|
data_json = r.json()
|
|
318
318
|
total_num = data_json["data"]["count"]
|
|
319
319
|
total_page = math.ceil(total_num / 50)
|
|
@@ -321,10 +321,10 @@ def index_analysis_daily_sw(
|
|
|
321
321
|
tqdm = get_tqdm()
|
|
322
322
|
for page in tqdm(range(1, total_page + 1), leave=False):
|
|
323
323
|
params.update({"page": page})
|
|
324
|
-
r = requests.get(url, params=params, headers=headers)
|
|
324
|
+
r = requests.get(url, params=params, headers=headers, verify=False)
|
|
325
325
|
data_json = r.json()
|
|
326
326
|
temp_df = pd.DataFrame(data_json["data"]["results"])
|
|
327
|
-
big_df = pd.concat([big_df, temp_df], ignore_index=True)
|
|
327
|
+
big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
|
|
328
328
|
big_df.rename(
|
|
329
329
|
columns={
|
|
330
330
|
"swindexcode": "指数代码",
|
|
@@ -363,19 +363,19 @@ def index_analysis_daily_sw(
|
|
|
363
363
|
def index_analysis_week_month_sw(symbol: str = "month") -> pd.DataFrame:
|
|
364
364
|
"""
|
|
365
365
|
申万宏源研究-周/月报表-日期序列
|
|
366
|
-
https://www.
|
|
366
|
+
https://www.swsresearch.com/institute_sw/allIndex/analysisIndex
|
|
367
367
|
:param symbol: choice of {"week", "month"}
|
|
368
368
|
:type symbol: str
|
|
369
369
|
:return: 日期序列
|
|
370
370
|
:rtype: pandas.DataFrame
|
|
371
371
|
"""
|
|
372
|
-
url = "https://www.
|
|
372
|
+
url = "https://www.swsresearch.com/institute-sw/api/index_analysis/week_month_datetime/"
|
|
373
373
|
params = {"type": symbol.upper()}
|
|
374
374
|
headers = {
|
|
375
375
|
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
|
|
376
376
|
"Chrome/114.0.0.0 Safari/537.36"
|
|
377
377
|
}
|
|
378
|
-
r = requests.get(url, params=params, headers=headers)
|
|
378
|
+
r = requests.get(url, params=params, headers=headers, verify=False)
|
|
379
379
|
data_json = r.json()
|
|
380
380
|
temp_df = pd.DataFrame(data_json["data"])
|
|
381
381
|
temp_df["bargaindate"] = pd.to_datetime(
|
|
@@ -392,7 +392,7 @@ def index_analysis_weekly_sw(
|
|
|
392
392
|
) -> pd.DataFrame:
|
|
393
393
|
"""
|
|
394
394
|
申万宏源研究-指数分析-周报告
|
|
395
|
-
https://www.
|
|
395
|
+
https://www.swsresearch.com/institute_sw/allIndex/analysisIndex
|
|
396
396
|
:param symbol: choice of {"市场表征", "一级行业", "二级行业", "风格指数"}
|
|
397
397
|
:type symbol: str
|
|
398
398
|
:param date: 查询日期; 通过调用 ak.index_analysis_week_month_sw(date="20221104") 接口获取
|
|
@@ -400,7 +400,7 @@ def index_analysis_weekly_sw(
|
|
|
400
400
|
:return: 指数分析
|
|
401
401
|
:rtype: pandas.DataFrame
|
|
402
402
|
"""
|
|
403
|
-
url = "https://www.
|
|
403
|
+
url = "https://www.swsresearch.com/institute-sw/api/index_analysis/index_analysis_reports/"
|
|
404
404
|
params = {
|
|
405
405
|
"page": "1",
|
|
406
406
|
"page_size": "50",
|
|
@@ -413,7 +413,7 @@ def index_analysis_weekly_sw(
|
|
|
413
413
|
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
|
|
414
414
|
"Chrome/114.0.0.0 Safari/537.36"
|
|
415
415
|
}
|
|
416
|
-
r = requests.get(url, params=params, headers=headers)
|
|
416
|
+
r = requests.get(url, params=params, headers=headers, verify=False)
|
|
417
417
|
data_json = r.json()
|
|
418
418
|
total_num = data_json["data"]["count"]
|
|
419
419
|
total_page = math.ceil(total_num / 50)
|
|
@@ -421,10 +421,10 @@ def index_analysis_weekly_sw(
|
|
|
421
421
|
tqdm = get_tqdm()
|
|
422
422
|
for page in tqdm(range(1, total_page + 1), leave=False):
|
|
423
423
|
params.update({"page": page})
|
|
424
|
-
r = requests.get(url, params=params, headers=headers)
|
|
424
|
+
r = requests.get(url, params=params, headers=headers, verify=False)
|
|
425
425
|
data_json = r.json()
|
|
426
426
|
temp_df = pd.DataFrame(data_json["data"]["results"])
|
|
427
|
-
big_df = pd.concat([big_df, temp_df], ignore_index=True)
|
|
427
|
+
big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
|
|
428
428
|
big_df.rename(
|
|
429
429
|
columns={
|
|
430
430
|
"swindexcode": "指数代码",
|
|
@@ -467,7 +467,7 @@ def index_analysis_monthly_sw(
|
|
|
467
467
|
) -> pd.DataFrame:
|
|
468
468
|
"""
|
|
469
469
|
申万宏源研究-指数分析-月报告
|
|
470
|
-
https://www.
|
|
470
|
+
https://www.swsresearch.com/institute_sw/allIndex/analysisIndex
|
|
471
471
|
:param symbol: choice of {"市场表征", "一级行业", "二级行业", "风格指数"}
|
|
472
472
|
:type symbol: str
|
|
473
473
|
:param date: 查询日期; 通过调用 ak.index_analysis_week_month_sw() 接口获取
|
|
@@ -475,7 +475,7 @@ def index_analysis_monthly_sw(
|
|
|
475
475
|
:return: 指数分析
|
|
476
476
|
:rtype: pandas.DataFrame
|
|
477
477
|
"""
|
|
478
|
-
url = "https://www.
|
|
478
|
+
url = "https://www.swsresearch.com/institute-sw/api/index_analysis/index_analysis_reports/"
|
|
479
479
|
params = {
|
|
480
480
|
"page": "1",
|
|
481
481
|
"page_size": "50",
|
|
@@ -488,7 +488,7 @@ def index_analysis_monthly_sw(
|
|
|
488
488
|
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
|
|
489
489
|
"Chrome/114.0.0.0 Safari/537.36"
|
|
490
490
|
}
|
|
491
|
-
r = requests.get(url, params=params, headers=headers)
|
|
491
|
+
r = requests.get(url, params=params, headers=headers, verify=False)
|
|
492
492
|
data_json = r.json()
|
|
493
493
|
total_num = data_json["data"]["count"]
|
|
494
494
|
total_page = math.ceil(total_num / 50)
|
|
@@ -496,10 +496,10 @@ def index_analysis_monthly_sw(
|
|
|
496
496
|
tqdm = get_tqdm()
|
|
497
497
|
for page in tqdm(range(1, total_page + 1), leave=False):
|
|
498
498
|
params.update({"page": page})
|
|
499
|
-
r = requests.get(url, params=params, headers=headers)
|
|
499
|
+
r = requests.get(url, params=params, headers=headers, verify=False)
|
|
500
500
|
data_json = r.json()
|
|
501
501
|
temp_df = pd.DataFrame(data_json["data"]["results"])
|
|
502
|
-
big_df = pd.concat([big_df, temp_df], ignore_index=True)
|
|
502
|
+
big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
|
|
503
503
|
big_df.rename(
|
|
504
504
|
columns={
|
|
505
505
|
"swindexcode": "指数代码",
|
|
@@ -549,7 +549,7 @@ if __name__ == "__main__":
|
|
|
549
549
|
print(index_realtime_sw_df)
|
|
550
550
|
|
|
551
551
|
index_analysis_daily_sw_df = index_analysis_daily_sw(
|
|
552
|
-
symbol="市场表征", start_date="
|
|
552
|
+
symbol="市场表征", start_date="20241025", end_date="20241025"
|
|
553
553
|
)
|
|
554
554
|
print(index_analysis_daily_sw_df)
|
|
555
555
|
|
|
@@ -557,11 +557,11 @@ if __name__ == "__main__":
|
|
|
557
557
|
print(index_analysis_week_month_sw_df)
|
|
558
558
|
|
|
559
559
|
index_analysis_weekly_sw_df = index_analysis_weekly_sw(
|
|
560
|
-
symbol="市场表征", date="
|
|
560
|
+
symbol="市场表征", date="20241025"
|
|
561
561
|
)
|
|
562
562
|
print(index_analysis_weekly_sw_df)
|
|
563
563
|
|
|
564
564
|
index_analysis_monthly_sw_df = index_analysis_monthly_sw(
|
|
565
|
-
symbol="市场表征", date="
|
|
565
|
+
symbol="市场表征", date="20240930"
|
|
566
566
|
)
|
|
567
567
|
print(index_analysis_monthly_sw_df)
|
akshare/index/index_spot.py
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env python
|
|
2
2
|
# -*- coding:utf-8 -*-
|
|
3
3
|
"""
|
|
4
|
-
Date:
|
|
4
|
+
Date: 2024/12/26 18:30
|
|
5
5
|
Desc: 商品现货价格指数
|
|
6
|
-
|
|
6
|
+
https://finance.sina.com.cn/futuremarket/spotprice.shtml#titlePos_0
|
|
7
7
|
"""
|
|
8
|
+
|
|
8
9
|
import pandas as pd
|
|
9
10
|
import requests
|
|
10
11
|
|
|
@@ -12,13 +13,13 @@ import requests
|
|
|
12
13
|
def spot_goods(symbol: str = "波罗的海干散货指数") -> pd.DataFrame:
|
|
13
14
|
"""
|
|
14
15
|
新浪财经-商品现货价格指数
|
|
15
|
-
|
|
16
|
+
https://finance.sina.com.cn/futuremarket/spotprice.shtml#titlePos_0
|
|
16
17
|
:param symbol: choice of {"波罗的海干散货指数", "钢坯价格指数", "澳大利亚粉矿价格"}
|
|
17
18
|
:type symbol: str
|
|
18
19
|
:return: 商品现货价格指数
|
|
19
20
|
:rtype: pandas.DataFrame
|
|
20
21
|
"""
|
|
21
|
-
url = "
|
|
22
|
+
url = "https://stock.finance.sina.com.cn/futures/api/openapi.php/GoodsIndexService.get_goods_index"
|
|
22
23
|
symbol_url_dict = {
|
|
23
24
|
"波罗的海干散货指数": "BDI",
|
|
24
25
|
"钢坯价格指数": "GP",
|
|
@@ -31,10 +32,13 @@ def spot_goods(symbol: str = "波罗的海干散货指数") -> pd.DataFrame:
|
|
|
31
32
|
temp_df = pd.DataFrame(data_json["result"]["data"]["data"])
|
|
32
33
|
temp_df = temp_df[["opendate", "price", "zde", "zdf"]]
|
|
33
34
|
temp_df.columns = ["日期", "指数", "涨跌额", "涨跌幅"]
|
|
34
|
-
temp_df["日期"] = pd.to_datetime(
|
|
35
|
+
temp_df["日期"] = pd.to_datetime(
|
|
36
|
+
temp_df["日期"], format="%Y-%m-%d", errors="coerce"
|
|
37
|
+
).dt.date
|
|
35
38
|
temp_df["指数"] = pd.to_numeric(temp_df["指数"], errors="coerce")
|
|
36
39
|
temp_df["涨跌额"] = pd.to_numeric(temp_df["涨跌额"], errors="coerce")
|
|
37
40
|
temp_df["涨跌幅"] = pd.to_numeric(temp_df["涨跌幅"], errors="coerce")
|
|
41
|
+
temp_df.dropna(inplace=True, ignore_index=True)
|
|
38
42
|
return temp_df
|
|
39
43
|
|
|
40
44
|
|
akshare/index/index_stock_hk.py
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env python
|
|
2
2
|
# -*- coding:utf-8 -*-
|
|
3
3
|
"""
|
|
4
|
-
Date:
|
|
4
|
+
Date: 2025/3/15 22:30
|
|
5
5
|
Desc: 港股股票指数数据-新浪-东财
|
|
6
6
|
所有指数-实时行情数据和历史行情数据
|
|
7
7
|
https://finance.sina.com.cn/realstock/company/sz399552/nc.shtml
|
|
@@ -12,11 +12,12 @@ import re
|
|
|
12
12
|
|
|
13
13
|
import pandas as pd
|
|
14
14
|
import requests
|
|
15
|
-
|
|
15
|
+
import py_mini_racer
|
|
16
16
|
|
|
17
17
|
from functools import lru_cache
|
|
18
18
|
|
|
19
19
|
from akshare.stock.cons import hk_js_decode
|
|
20
|
+
from akshare.utils.func import fetch_paginated_data
|
|
20
21
|
|
|
21
22
|
|
|
22
23
|
def _replace_comma(x) -> str:
|
|
@@ -154,7 +155,7 @@ def stock_hk_index_spot_em() -> pd.DataFrame:
|
|
|
154
155
|
url = "https://15.push2.eastmoney.com/api/qt/clist/get"
|
|
155
156
|
params = {
|
|
156
157
|
"pn": "1",
|
|
157
|
-
"pz": "
|
|
158
|
+
"pz": "100",
|
|
158
159
|
"po": "1",
|
|
159
160
|
"np": "1",
|
|
160
161
|
"ut": "bd1d9ddb04089700cf9c27f6f7426281",
|
|
@@ -165,13 +166,8 @@ def stock_hk_index_spot_em() -> pd.DataFrame:
|
|
|
165
166
|
"fs": "m:124,m:125,m:305",
|
|
166
167
|
"fields": "f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f12,f13,f14,f15,f16,f17,f18,f20,f21,f23,f24,f25,"
|
|
167
168
|
"f26,f22,f33,f11,f62,f128,f136,f115,f152",
|
|
168
|
-
"_": "1683800547682",
|
|
169
169
|
}
|
|
170
|
-
|
|
171
|
-
data_json = r.json()
|
|
172
|
-
temp_df = pd.DataFrame(data_json["data"]["diff"])
|
|
173
|
-
temp_df.reset_index(inplace=True)
|
|
174
|
-
temp_df["index"] = temp_df["index"] + 1
|
|
170
|
+
temp_df = fetch_paginated_data(url, params)
|
|
175
171
|
temp_df.rename(
|
|
176
172
|
columns={
|
|
177
173
|
"index": "序号",
|
|
@@ -302,5 +298,5 @@ if __name__ == "__main__":
|
|
|
302
298
|
stock_hk_index_spot_em_df = stock_hk_index_spot_em()
|
|
303
299
|
print(stock_hk_index_spot_em_df)
|
|
304
300
|
|
|
305
|
-
stock_hk_index_daily_em_df = stock_hk_index_daily_em(symbol="
|
|
301
|
+
stock_hk_index_daily_em_df = stock_hk_index_daily_em(symbol="HSTECH")
|
|
306
302
|
print(stock_hk_index_daily_em_df)
|