akshare 1.14.95__tar.gz → 1.14.97__tar.gz
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-1.14.95 → akshare-1.14.97}/PKG-INFO +1 -1
- {akshare-1.14.95 → akshare-1.14.97}/akshare/__init__.py +4 -26
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/stock_profile_cninfo.py +7 -7
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/stock_xq.py +7 -12
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_board_industry_ths.py +55 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_ztb_em.py +4 -4
- {akshare-1.14.95 → akshare-1.14.97}/akshare.egg-info/PKG-INFO +1 -1
- {akshare-1.14.95 → akshare-1.14.97}/akshare.egg-info/SOURCES.txt +0 -4
- akshare-1.14.95/akshare/futures_derivative/futures_index_price_nh.py +0 -61
- akshare-1.14.95/akshare/futures_derivative/futures_index_return_nh.py +0 -47
- akshare-1.14.95/akshare/futures_derivative/futures_index_volatility_nh.py +0 -53
- akshare-1.14.95/akshare/futures_derivative/futures_other_index_nh.py +0 -144
- {akshare-1.14.95 → akshare-1.14.97}/LICENSE +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/README.md +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/air/__init__.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/air/air_hebei.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/air/air_zhenqi.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/air/cons.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/air/crypto.js +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/air/outcrypto.js +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/air/sunrise_tad.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/article/__init__.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/article/cons.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/article/epu_index.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/article/ff_factor.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/article/fred_md.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/article/risk_rv.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/bank/__init__.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/bank/bank_cbirc_2020.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/bank/cons.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/bond/__init__.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/bond/bond_cb_sina.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/bond/bond_cb_ths.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/bond/bond_cbond.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/bond/bond_china.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/bond/bond_china_money.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/bond/bond_convert.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/bond/bond_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/bond/bond_info_cm.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/bond/bond_investing.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/bond/bond_issue_cninfo.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/bond/bond_nafmii.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/bond/bond_summary.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/bond/bond_zh_cov.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/bond/bond_zh_sina.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/bond/cons.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/cost/__init__.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/cost/cost_living.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/crypto/__init__.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/crypto/crypto_bitcoin_cme.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/crypto/crypto_hist_investing.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/crypto/crypto_hold.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/currency/__init__.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/currency/currency.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/currency/currency_china_bank_sina.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/currency/currency_safe.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/data/__init__.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/data/cninfo.js +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/data/crypto_info.zip +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/data/ths.js +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/datasets.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/economic/__init__.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/economic/cons.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/economic/macro_australia.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/economic/macro_bank.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/economic/macro_canada.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/economic/macro_china.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/economic/macro_china_hk.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/economic/macro_china_nbs.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/economic/macro_constitute.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/economic/macro_euro.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/economic/macro_finance_ths.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/economic/macro_germany.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/economic/macro_info_ws.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/economic/macro_japan.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/economic/macro_other.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/economic/macro_swiss.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/economic/macro_uk.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/economic/macro_usa.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/economic/marco_cnbs.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/energy/__init__.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/energy/energy_carbon.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/energy/energy_oil_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/event/__init__.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/event/cons.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/event/migration.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/file_fold/__init__.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/file_fold/calendar.json +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/fortune/__init__.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/fortune/fortune_500.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/fortune/fortune_bloomberg.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/fortune/fortune_forbes_500.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/fortune/fortune_hurun.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/fortune/fortune_xincaifu_500.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/fund/__init__.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/fund/fund_amac.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/fund/fund_announcement.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/fund/fund_aum_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/fund/fund_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/fund/fund_etf_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/fund/fund_etf_sina.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/fund/fund_etf_ths.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/fund/fund_fhsp_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/fund/fund_init_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/fund/fund_lof_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/fund/fund_manager.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/fund/fund_portfolio_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/fund/fund_position_lg.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/fund/fund_rank_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/fund/fund_rating.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/fund/fund_report_cninfo.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/fund/fund_scale_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/fund/fund_scale_sina.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/fund/fund_xq.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/futures/__init__.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/futures/cons.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/futures/cot.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/futures/futures_basis.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/futures/futures_comex_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/futures/futures_comm_ctp.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/futures/futures_comm_qihuo.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/futures/futures_contract_detail.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/futures/futures_daily_bar.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/futures/futures_foreign.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/futures/futures_hf_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/futures/futures_hq_sina.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/futures/futures_index_ccidx.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/futures/futures_international.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/futures/futures_inventory_99.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/futures/futures_inventory_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/futures/futures_news_baidu.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/futures/futures_news_shmet.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/futures/futures_roll_yield.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/futures/futures_rule.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/futures/futures_settlement_price_sgx.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/futures/futures_spot_stock_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/futures/futures_stock_js.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/futures/futures_to_spot.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/futures/futures_warehouse_receipt.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/futures/futures_zh_sina.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/futures/inventory_data.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/futures/receipt.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/futures/requests_fun.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/futures/symbol_var.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/futures_derivative/__init__.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/futures_derivative/cons.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/futures_derivative/futures_contract_info_cffex.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/futures_derivative/futures_contract_info_czce.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/futures_derivative/futures_contract_info_dce.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/futures_derivative/futures_contract_info_gfex.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/futures_derivative/futures_contract_info_ine.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/futures_derivative/futures_contract_info_shfe.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/futures_derivative/futures_cot_sina.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/futures_derivative/futures_hog.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/futures_derivative/futures_index_sina.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/futures_derivative/futures_spot_sys.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/fx/__init__.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/fx/cons.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/fx/currency_investing.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/fx/fx_quote.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/fx/fx_quote_baidu.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/hf/__init__.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/hf/hf_sp500.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/index/__init__.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/index/cons.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/index/index_cflp.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/index/index_cni.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/index/index_cons.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/index/index_cx.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/index/index_drewry.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/index/index_eri.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/index/index_fear_greed_funddb.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/index/index_hog.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/index/index_investing.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/index/index_kq_fz.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/index/index_kq_ss.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/index/index_option_qvix.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/index/index_research_fund_sw.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/index/index_research_sw.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/index/index_spot.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/index/index_stock_hk.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/index/index_stock_us_sina.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/index/index_stock_zh.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/index/index_stock_zh_csindex.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/index/index_sugar.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/index/index_sw.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/index/index_yw.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/index/index_zh_a_scope.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/index/index_zh_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/interest_rate/__init__.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/interest_rate/interbank_rate_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/movie/__init__.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/movie/artist_yien.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/movie/jm.js +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/movie/movie_yien.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/movie/video_yien.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/news/__init__.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/news/news_baidu.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/news/news_cctv.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/news/news_stock.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/nlp/__init__.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/nlp/nlp_interface.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/option/__init__.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/option/cons.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/option/option_comm_qihuo.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/option/option_commodity.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/option/option_commodity_sina.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/option/option_czce.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/option/option_daily_stats_sse_szse.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/option/option_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/option/option_finance.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/option/option_finance_sina.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/option/option_lhb_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/option/option_premium_analysis_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/option/option_risk_analysis_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/option/option_risk_indicator_sse.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/option/option_value_analysis_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/other/__init__.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/other/other_car_cpca.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/other/other_car_gasgoo.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/pro/__init__.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/pro/client.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/pro/cons.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/pro/data_pro.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/qdii/__init__.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/qdii/qdii_jsl.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/qhkc/__init__.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/qhkc/qhkc_api.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/qhkc_web/__init__.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/qhkc_web/qhkc_fund.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/qhkc_web/qhkc_index.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/qhkc_web/qhkc_tool.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/rate/__init__.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/rate/repo_rate.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/reits/__init__.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/reits/reits_basic.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/sport/__init__.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/sport/sport_olympic.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/spot/__init__.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/spot/spot_hog_soozhu.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/spot/spot_price_qh.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/spot/spot_sge.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/__init__.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/cons.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/stock_allotment_cninfo.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/stock_ask_bid_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/stock_board_concept_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/stock_board_industry_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/stock_cg_equity_mortgage.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/stock_cg_guarantee.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/stock_cg_lawsuit.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/stock_dividend_cninfo.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/stock_dzjy_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/stock_fund_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/stock_fund_hold.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/stock_gsrl_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/stock_hk_famous.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/stock_hk_fhpx_ths.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/stock_hk_hot_rank_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/stock_hk_sina.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/stock_hold_control_cninfo.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/stock_hold_control_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/stock_hold_num_cninfo.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/stock_hot_rank_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/stock_hot_search_baidu.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/stock_hot_up_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/stock_industry.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/stock_industry_cninfo.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/stock_industry_pe_cninfo.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/stock_industry_sw.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/stock_info.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/stock_info_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/stock_intraday_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/stock_intraday_sina.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/stock_ipo_summary_cninfo.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/stock_new_cninfo.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/stock_news_cx.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/stock_rank_forecast.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/stock_repurchase_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/stock_share_changes_cninfo.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/stock_share_hold.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/stock_stop.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/stock_summary.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/stock_us_famous.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/stock_us_js.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/stock_us_pink.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/stock_us_sina.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/stock_weibo_nlp.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/stock_zh_a_sina.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/stock_zh_a_special.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/stock_zh_a_tick_tx.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/stock_zh_ah_tx.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/stock_zh_b_sina.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/stock_zh_kcb_report.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock/stock_zh_kcb_sina.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/__init__.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/cons.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_a_below_net_asset_statistics.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_a_high_low.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_a_indicator.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_a_pe_and_pb.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_account_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_all_pb.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_analyst_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_buffett_index_lg.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_classify_sina.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_comment_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_concept_futu.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_congestion_lg.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_cyq_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_disclosure_cninfo.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_dxsyl_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_ebs_lg.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_esg_sina.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_fhps_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_fhps_ths.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_fund_flow.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_gddh_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_gdfx_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_gdhs.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_gdzjc_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_gpzy_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_gxl_lg.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_hist_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_hist_tx.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_hk_valuation_baidu.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_hot_xq.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_hsgt_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_hsgt_exchange_rate.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_hsgt_min_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_info.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_inner_trade_xq.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_irm_cninfo.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_jgdy_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_lh_yybpm.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_lhb_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_lhb_sina.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_margin_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_margin_sse.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_margin_szse.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_market_legu.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_pankou_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_qsjy_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_report_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_research_report_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_sns_sseinfo.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_sy_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_technology_ths.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_tfp_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_three_report_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_ttm_lyr.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_wencai.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_yjbb_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_yjyg_cninfo.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_yjyg_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_yzxdr_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_zdhtmx_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_zf_pg.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_zh_valuation_baidu.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/stock_zh_vote_baidu.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_feature/ths.js +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_fundamental/__init__.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_fundamental/stock_finance.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_fundamental/stock_finance_hk.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_fundamental/stock_finance_ths.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_fundamental/stock_hold.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_fundamental/stock_ipo_declare.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_fundamental/stock_kcb_detail_sse.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_fundamental/stock_kcb_sse.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_fundamental/stock_mda_ym.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_fundamental/stock_notice.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_fundamental/stock_profit_forecast_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_fundamental/stock_profit_forecast_hk_etnet.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_fundamental/stock_profit_forecast_ths.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_fundamental/stock_recommend.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_fundamental/stock_register_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_fundamental/stock_restricted_em.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_fundamental/stock_zygc.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/stock_fundamental/stock_zyjs_ths.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/tool/__init__.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/tool/trade_date_hist.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/utils/__init__.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/utils/cons.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/utils/demjson.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/utils/func.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/utils/token_process.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare/utils/tqdm.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare.egg-info/dependency_links.txt +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare.egg-info/requires.txt +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/akshare.egg-info/top_level.txt +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/pyproject.toml +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/setup.cfg +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/setup.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/tests/__init__.py +0 -0
- {akshare-1.14.95 → akshare-1.14.97}/tests/test_func.py +0 -0
|
@@ -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)
|
|
@@ -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)
|
|
@@ -148,11 +148,7 @@ akshare/futures_derivative/futures_contract_info_ine.py
|
|
|
148
148
|
akshare/futures_derivative/futures_contract_info_shfe.py
|
|
149
149
|
akshare/futures_derivative/futures_cot_sina.py
|
|
150
150
|
akshare/futures_derivative/futures_hog.py
|
|
151
|
-
akshare/futures_derivative/futures_index_price_nh.py
|
|
152
|
-
akshare/futures_derivative/futures_index_return_nh.py
|
|
153
151
|
akshare/futures_derivative/futures_index_sina.py
|
|
154
|
-
akshare/futures_derivative/futures_index_volatility_nh.py
|
|
155
|
-
akshare/futures_derivative/futures_other_index_nh.py
|
|
156
152
|
akshare/futures_derivative/futures_spot_sys.py
|
|
157
153
|
akshare/fx/__init__.py
|
|
158
154
|
akshare/fx/cons.py
|
|
@@ -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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|