mns-common 1.5.1.7__tar.gz → 1.5.1.8__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 mns-common might be problematic. Click here for more details.
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/PKG-INFO +1 -1
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common.egg-info/PKG-INFO +1 -1
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common.egg-info/SOURCES.txt +0 -19
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/setup.py +1 -1
- mns_common-1.5.1.7/mns_common/api/akshare/k_line_api.py +0 -123
- mns_common-1.5.1.7/mns_common/api/akshare/stock_bid_ask_api.py +0 -94
- mns_common-1.5.1.7/mns_common/api/akshare/stock_dt_pool.py +0 -47
- mns_common-1.5.1.7/mns_common/api/akshare/stock_zb_pool.py +0 -48
- mns_common-1.5.1.7/mns_common/api/akshare/stock_zt_pool_api.py +0 -47
- mns_common-1.5.1.7/mns_common/api/akshare/yjyg_sync_api.py +0 -98
- mns_common-1.5.1.7/mns_common/api/em/concept/em_concept_index_api.py +0 -230
- mns_common-1.5.1.7/mns_common/api/em/gd/east_money_stock_gdfx_free_top_10_api.py +0 -252
- mns_common-1.5.1.7/mns_common/api/em/real_time/east_money_debt_api.py +0 -306
- mns_common-1.5.1.7/mns_common/api/em/real_time/east_money_etf_api.py +0 -374
- mns_common-1.5.1.7/mns_common/api/em/real_time/east_money_stock_a_api.py +0 -303
- mns_common-1.5.1.7/mns_common/api/em/real_time/east_money_stock_a_v2_api.py +0 -296
- mns_common-1.5.1.7/mns_common/api/em/real_time/east_money_stock_hk_api.py +0 -337
- mns_common-1.5.1.7/mns_common/api/em/real_time/east_money_stock_us_api.py +0 -234
- mns_common-1.5.1.7/mns_common/api/em/real_time/real_time_quotes_repeat_api.py +0 -363
- mns_common-1.5.1.7/mns_common/component/tfp/__init__.py +0 -7
- mns_common-1.5.1.7/mns_common/component/us/__init__.py +0 -7
- mns_common-1.5.1.7/mns_common/db/__init__.py +0 -7
- mns_common-1.5.1.7/mns_common/db/v2/__init__.py +0 -7
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/README.md +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/__init__.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/api/__init__.py +0 -0
- {mns_common-1.5.1.7/mns_common/api/akshare → mns_common-1.5.1.8/mns_common/api/em}/__init__.py +0 -0
- {mns_common-1.5.1.7/mns_common/api/em/concept → mns_common-1.5.1.8/mns_common/api/hk}/__init__.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/api/hk/ths_hk_company_info_api.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/api/k_line/__init__.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/api/k_line/stock_k_line_data_api.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/api/k_line/stock_minute_data_api.py +0 -0
- {mns_common-1.5.1.7/mns_common/api/em → mns_common-1.5.1.8/mns_common/api/kpl}/__init__.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/api/kpl/common/__init__.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/api/kpl/common/kpl_common_api.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/api/kpl/common/kpl_common_field_constant.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/api/kpl/concept/__init__.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/api/kpl/concept/kpl_concept_api.py +0 -0
- {mns_common-1.5.1.7/mns_common/api/kpl → mns_common-1.5.1.8/mns_common/api/kpl/constant}/__init__.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/api/kpl/constant/kpl_constant.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/api/kpl/industry/__init__.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/api/kpl/industry/kpl_industry_api.py +0 -0
- {mns_common-1.5.1.7/mns_common/api/kpl/constant → mns_common-1.5.1.8/mns_common/api/kpl/selection}/__init__.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/api/kpl/selection/kpl_selection_plate_api.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/api/kpl/symbol/__init__.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/api/kpl/symbol/kpl_real_time_quotes_api.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/api/kpl/symbol/kpl_symbol_common_field_constant.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/api/kpl/symbol/symbol_his_quotes_api.py +0 -0
- {mns_common-1.5.1.7/mns_common/api/kpl/selection → mns_common-1.5.1.8/mns_common/api/msg}/__init__.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/api/msg/push_msg_api.py +0 -0
- {mns_common-1.5.1.7/mns_common/api/em/gd → mns_common-1.5.1.8/mns_common/api/proxies}/__init__.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/api/proxies/liu_guan_proxy_api.py +0 -0
- {mns_common-1.5.1.7/mns_common/api/em/real_time → mns_common-1.5.1.8/mns_common/api/qmt}/__init__.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/api/qmt/qmt_minunte_tick_data.py +0 -0
- {mns_common-1.5.1.7/mns_common/api/msg → mns_common-1.5.1.8/mns_common/api/ths}/__init__.py +0 -0
- {mns_common-1.5.1.7/mns_common/api/ths → mns_common-1.5.1.8/mns_common/api/ths/big_deal}/__init__.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/api/ths/big_deal/ths_big_deal_api.py +0 -0
- {mns_common-1.5.1.7/mns_common/api/hk → mns_common-1.5.1.8/mns_common/api/ths/company}/__init__.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/api/ths/company/company_product_area_industry_index_query.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/api/ths/company/ths_company_announce_api.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/api/ths/company/ths_company_info_api.py +0 -0
- {mns_common-1.5.1.7/mns_common/api/ths/big_deal → mns_common-1.5.1.8/mns_common/api/ths/concept}/__init__.py +0 -0
- {mns_common-1.5.1.7/mns_common/api/ths/concept → mns_common-1.5.1.8/mns_common/api/ths/concept/app}/__init__.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/api/ths/concept/app/ths_concept_detail_app.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/api/ths/concept/app/ths_concept_index_app.py +0 -0
- {mns_common-1.5.1.7/mns_common/api/ths/concept/app → mns_common-1.5.1.8/mns_common/api/ths/concept/web}/__init__.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/api/ths/concept/web/ths_common_js_api.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/api/ths/concept/web/ths_company_info_web.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/api/ths/concept/web/ths_concept_detail_web.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/api/ths/concept/web/ths_concept_index_web.py +0 -0
- {mns_common-1.5.1.7/mns_common/api/ths/concept/web → mns_common-1.5.1.8/mns_common/api/ths/self_choose}/__init__.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/api/ths/self_choose/ths_self_choose_api.py +0 -0
- {mns_common-1.5.1.7/mns_common/api/ths/self_choose → mns_common-1.5.1.8/mns_common/api/ths/wen_cai}/__init__.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/api/ths/wen_cai/ths_wen_cai_api.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/api/ths/zt/__init__.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/api/ths/zt/ths_stock_zt_pool_api.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/api/ths/zt/ths_stock_zt_pool_v2_api.py +0 -0
- {mns_common-1.5.1.7/mns_common/api/proxies → mns_common-1.5.1.8/mns_common/api/us}/__init__.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/api/us/ths_us_company_info_api.py +0 -0
- {mns_common-1.5.1.7/mns_common/api/qmt → mns_common-1.5.1.8/mns_common/api/xueqiu}/__init__.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/api/xueqiu/xue_qiu_k_line_api.py +0 -0
- {mns_common-1.5.1.7/mns_common/api/ths/wen_cai → mns_common-1.5.1.8/mns_common/component}/__init__.py +0 -0
- {mns_common-1.5.1.7/mns_common/component → mns_common-1.5.1.8/mns_common/component/cache}/__init__.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/component/cache/cache_service.py +0 -0
- {mns_common-1.5.1.7/mns_common/api/ths/company → mns_common-1.5.1.8/mns_common/component/classify}/__init__.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/component/classify/symbol_classify_api.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/component/classify/symbol_classify_param.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/component/common_service_fun_api.py +0 -0
- {mns_common-1.5.1.7/mns_common/component/cache → mns_common-1.5.1.8/mns_common/component/company}/__init__.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/component/company/company_common_service_api.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/component/company/company_common_service_new_api.py +0 -0
- {mns_common-1.5.1.7/mns_common/component/company → mns_common-1.5.1.8/mns_common/component/concept}/__init__.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/component/concept/kpl_concept_common_service_api.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/component/concept/ths_concept_common_service_api.py +0 -0
- {mns_common-1.5.1.7/mns_common/api/us → mns_common-1.5.1.8/mns_common/component/cookie}/__init__.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/component/cookie/cookie_enum.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/component/cookie/cookie_info_service.py +0 -0
- {mns_common-1.5.1.7/mns_common/component/concept → mns_common-1.5.1.8/mns_common/component/data}/__init__.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/component/data/data_init_api.py +0 -0
- {mns_common-1.5.1.7/mns_common/api/xueqiu → mns_common-1.5.1.8/mns_common/component/deal}/__init__.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/component/deal/deal_service_api.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/component/deal/deal_service_v2_api.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/component/deal/terminal_enum.py +0 -0
- {mns_common-1.5.1.7/mns_common/component/classify → mns_common-1.5.1.8/mns_common/component/em}/__init__.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/component/em/em_real_time_quotes_api.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/component/em/em_stock_info_api.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/component/exception/ExceptionMonitor.py +0 -0
- {mns_common-1.5.1.7/mns_common/component/cookie → mns_common-1.5.1.8/mns_common/component/exception}/__init__.py +0 -0
- {mns_common-1.5.1.7/mns_common/component/deal → mns_common-1.5.1.8/mns_common/component/hk}/__init__.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/component/hk/company_hk_service_api.py +0 -0
- {mns_common-1.5.1.7/mns_common/component/data → mns_common-1.5.1.8/mns_common/component/industry}/__init__.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/component/industry/ths_industry_index_api.py +0 -0
- {mns_common-1.5.1.7/mns_common/component/industry → mns_common-1.5.1.8/mns_common/component/k_line}/__init__.py +0 -0
- {mns_common-1.5.1.7/mns_common/component/k_line → mns_common-1.5.1.8/mns_common/component/k_line/clean}/__init__.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/component/k_line/clean/k_line_param.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/component/k_line/clean/sh_small_normal_zt_k_line_check_api.py +0 -0
- {mns_common-1.5.1.7/mns_common/component/k_line/clean → mns_common-1.5.1.8/mns_common/component/k_line/common}/__init__.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/component/k_line/common/k_line_common_service_api.py +0 -0
- {mns_common-1.5.1.7/mns_common/component/k_line/common → mns_common-1.5.1.8/mns_common/component/k_line/patterns}/__init__.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/component/k_line/patterns/k_line_patterns_service_api.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/component/k_line/patterns/pattern_Enum.py +0 -0
- {mns_common-1.5.1.7/mns_common/component/em → mns_common-1.5.1.8/mns_common/component/price}/__init__.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/component/price/trade_price_service_api.py +0 -0
- {mns_common-1.5.1.7/mns_common/component/exception → mns_common-1.5.1.8/mns_common/component/proxies}/__init__.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/component/proxies/proxy_common_api.py +0 -0
- {mns_common-1.5.1.7/mns_common/component/hk → mns_common-1.5.1.8/mns_common/component/qmt}/__init__.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/component/qmt/qmt_buy_service.py +0 -0
- {mns_common-1.5.1.7/mns_common/component/k_line/patterns → mns_common-1.5.1.8/mns_common/component/real_time}/__init__.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/component/real_time/real_time_common_service_api.py +0 -0
- {mns_common-1.5.1.7/mns_common/component/price → mns_common-1.5.1.8/mns_common/component/redis_msg}/__init__.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/component/redis_msg/redis_msg_publish_service.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/component/self_choose/__init__.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/component/self_choose/black_list_service_api.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/component/self_choose/self_choose_service_api.py +0 -0
- {mns_common-1.5.1.7/mns_common/component/proxies → mns_common-1.5.1.8/mns_common/component/task}/__init__.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/component/task/real_time_data_sync_check.py +0 -0
- {mns_common-1.5.1.7/mns_common/component/qmt → mns_common-1.5.1.8/mns_common/component/tfp}/__init__.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/component/tfp/stock_tfp_api.py +0 -0
- {mns_common-1.5.1.7/mns_common/component/real_time → mns_common-1.5.1.8/mns_common/component/trade_date}/__init__.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/component/trade_date/trade_date_common_service_api.py +0 -0
- {mns_common-1.5.1.7/mns_common/component/redis_msg → mns_common-1.5.1.8/mns_common/component/us}/__init__.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/component/us/us_stock_etf_info_api.py +0 -0
- {mns_common-1.5.1.7/mns_common/component/trade_date → mns_common-1.5.1.8/mns_common/component/zt}/__init__.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/component/zt/zt_common_service_api.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/constant/__init__.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/constant/black_list_classify_enum.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/constant/db_name_constant.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/constant/east_money_stock_api.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/constant/extra_income_db_name.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/constant/price_enum.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/constant/redis_msg_constant.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/constant/self_choose_constant.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/constant/strategy_classify.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/db/MongodbUtil.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/db/MongodbUtilLocal.py +0 -0
- {mns_common-1.5.1.7/mns_common/component/zt → mns_common-1.5.1.8/mns_common/db}/__init__.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/db/v2/MongodbUtilV2.py +0 -0
- {mns_common-1.5.1.7/mns_common/component/task → mns_common-1.5.1.8/mns_common/db/v2}/__init__.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/utils/__init__.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/utils/async_fun.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/utils/cmd_util.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/utils/data_frame_util.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/utils/date_handle_util.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/utils/db_util.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/utils/file_util.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common/utils/ip_util.py +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common.egg-info/dependency_links.txt +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/mns_common.egg-info/top_level.txt +0 -0
- {mns_common-1.5.1.7 → mns_common-1.5.1.8}/setup.cfg +0 -0
|
@@ -6,26 +6,7 @@ mns_common.egg-info/SOURCES.txt
|
|
|
6
6
|
mns_common.egg-info/dependency_links.txt
|
|
7
7
|
mns_common.egg-info/top_level.txt
|
|
8
8
|
mns_common/api/__init__.py
|
|
9
|
-
mns_common/api/akshare/__init__.py
|
|
10
|
-
mns_common/api/akshare/k_line_api.py
|
|
11
|
-
mns_common/api/akshare/stock_bid_ask_api.py
|
|
12
|
-
mns_common/api/akshare/stock_dt_pool.py
|
|
13
|
-
mns_common/api/akshare/stock_zb_pool.py
|
|
14
|
-
mns_common/api/akshare/stock_zt_pool_api.py
|
|
15
|
-
mns_common/api/akshare/yjyg_sync_api.py
|
|
16
9
|
mns_common/api/em/__init__.py
|
|
17
|
-
mns_common/api/em/concept/__init__.py
|
|
18
|
-
mns_common/api/em/concept/em_concept_index_api.py
|
|
19
|
-
mns_common/api/em/gd/__init__.py
|
|
20
|
-
mns_common/api/em/gd/east_money_stock_gdfx_free_top_10_api.py
|
|
21
|
-
mns_common/api/em/real_time/__init__.py
|
|
22
|
-
mns_common/api/em/real_time/east_money_debt_api.py
|
|
23
|
-
mns_common/api/em/real_time/east_money_etf_api.py
|
|
24
|
-
mns_common/api/em/real_time/east_money_stock_a_api.py
|
|
25
|
-
mns_common/api/em/real_time/east_money_stock_a_v2_api.py
|
|
26
|
-
mns_common/api/em/real_time/east_money_stock_hk_api.py
|
|
27
|
-
mns_common/api/em/real_time/east_money_stock_us_api.py
|
|
28
|
-
mns_common/api/em/real_time/real_time_quotes_repeat_api.py
|
|
29
10
|
mns_common/api/hk/__init__.py
|
|
30
11
|
mns_common/api/hk/ths_hk_company_info_api.py
|
|
31
12
|
mns_common/api/k_line/__init__.py
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
import sys
|
|
2
|
-
import os
|
|
3
|
-
|
|
4
|
-
file_path = os.path.abspath(__file__)
|
|
5
|
-
end = file_path.index('mns') + 14
|
|
6
|
-
project_path = file_path[0:end]
|
|
7
|
-
sys.path.append(project_path)
|
|
8
|
-
import requests
|
|
9
|
-
import pandas as pd
|
|
10
|
-
import mns_common.component.common_service_fun_api as common_service_fun_api
|
|
11
|
-
from datetime import datetime
|
|
12
|
-
import numpy as np
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
def stock_zh_a_hist(
|
|
16
|
-
symbol: str = "0.000001",
|
|
17
|
-
period: str = 'daily',
|
|
18
|
-
start_date: str = "19700101",
|
|
19
|
-
end_date: str = "22220101",
|
|
20
|
-
adjust: str = "",
|
|
21
|
-
proxies: str = None
|
|
22
|
-
) -> pd.DataFrame:
|
|
23
|
-
"""
|
|
24
|
-
东方财富网-行情首页-沪深京 A 股-每日行情
|
|
25
|
-
http://quote.eastmoney.com/concept/sh603777.html?from=classic
|
|
26
|
-
:param symbol: 股票代码
|
|
27
|
-
:type symbol: str
|
|
28
|
-
:param period: choice of {'daily', 'weekly', 'monthly'}
|
|
29
|
-
:type period: str
|
|
30
|
-
:param start_date: 开始日期
|
|
31
|
-
:type start_date: str
|
|
32
|
-
:param end_date: 结束日期
|
|
33
|
-
:type end_date: str
|
|
34
|
-
:param adjust: choice of {"qfq": "前复权", "hfq": "后复权", "": "不复权"}
|
|
35
|
-
:type adjust: str
|
|
36
|
-
:param proxies: 代理ip
|
|
37
|
-
:type proxies: str
|
|
38
|
-
|
|
39
|
-
:return: 每日行情
|
|
40
|
-
:rtype: pandas.DataFrame
|
|
41
|
-
"""
|
|
42
|
-
adjust_dict = {"qfq": "1", "hfq": "2", "": "0"}
|
|
43
|
-
period_dict = {'daily': '101', 'weekly': '102', 'monthly': '103'}
|
|
44
|
-
url = "http://push2his.eastmoney.com/api/qt/stock/kline/get"
|
|
45
|
-
now_date = datetime.now()
|
|
46
|
-
now_time = int(now_date.timestamp() * 1000)
|
|
47
|
-
now_time = str(now_time)
|
|
48
|
-
|
|
49
|
-
params = {
|
|
50
|
-
"fields1": "f1,f2,f3,f4,f5,f6",
|
|
51
|
-
"fields2": "f51,f52,f53,f54,f55,f56,f57,f58,f59,f60,f61,f116",
|
|
52
|
-
"ut": "7eea3edcaed734bea9cbfc24409ed989",
|
|
53
|
-
"klt": period_dict[period],
|
|
54
|
-
"fqt": adjust_dict[adjust],
|
|
55
|
-
"secid": symbol,
|
|
56
|
-
"beg": "0",
|
|
57
|
-
"end": "20500000",
|
|
58
|
-
"_": now_time,
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
if proxies is None:
|
|
62
|
-
r = requests.get(url, params=params)
|
|
63
|
-
else:
|
|
64
|
-
r = requests.get(url, params=params, proxies=proxies)
|
|
65
|
-
|
|
66
|
-
data_json = r.json()
|
|
67
|
-
temp_df = pd.DataFrame([item.split(",") for item in data_json["data"]["klines"]])
|
|
68
|
-
temp_df.columns = [
|
|
69
|
-
"date",
|
|
70
|
-
"open",
|
|
71
|
-
"close",
|
|
72
|
-
"high",
|
|
73
|
-
"low",
|
|
74
|
-
"volume",
|
|
75
|
-
"amount",
|
|
76
|
-
"pct_chg",
|
|
77
|
-
"chg",
|
|
78
|
-
"change",
|
|
79
|
-
"exchange",
|
|
80
|
-
]
|
|
81
|
-
|
|
82
|
-
temp_df['date'] = temp_df['date'].apply(
|
|
83
|
-
lambda x: x.replace("-", ""))
|
|
84
|
-
temp_df.index = temp_df["date"]
|
|
85
|
-
temp_df = temp_df[start_date:end_date]
|
|
86
|
-
temp_df.reset_index(inplace=True, drop=True)
|
|
87
|
-
temp_df['open'] = pd.to_numeric(temp_df['open'])
|
|
88
|
-
temp_df['close'] = pd.to_numeric(temp_df['close'])
|
|
89
|
-
temp_df['high'] = pd.to_numeric(temp_df['high'])
|
|
90
|
-
temp_df['low'] = pd.to_numeric(temp_df['low'])
|
|
91
|
-
temp_df['volume'] = pd.to_numeric(temp_df['volume'])
|
|
92
|
-
temp_df['amount'] = pd.to_numeric(temp_df['amount'])
|
|
93
|
-
temp_df['pct_chg'] = pd.to_numeric(temp_df['pct_chg'])
|
|
94
|
-
temp_df['chg'] = pd.to_numeric(temp_df['chg'])
|
|
95
|
-
temp_df['change'] = pd.to_numeric(temp_df['change'])
|
|
96
|
-
temp_df['exchange'] = pd.to_numeric(temp_df['exchange'])
|
|
97
|
-
|
|
98
|
-
temp_df['symbol'] = symbol
|
|
99
|
-
temp_df['_id'] = temp_df['symbol'] + '-' + temp_df['date']
|
|
100
|
-
temp_df['last_price'] = round(((temp_df['close']) / (1 + temp_df['chg'] / 100)), 2)
|
|
101
|
-
temp_df['max_chg'] = round(
|
|
102
|
-
((temp_df['high'] - temp_df['last_price']) / temp_df['last_price']) * 100, 2)
|
|
103
|
-
temp_df['amount_level'] = round((temp_df['amount'] / common_service_fun_api.HUNDRED_MILLION), 2)
|
|
104
|
-
temp_df['flow_mv'] = round(temp_df['amount'] * 100 / temp_df['exchange'], 2)
|
|
105
|
-
temp_df['flow_mv_sp'] = round(temp_df['flow_mv'] / common_service_fun_api.HUNDRED_MILLION, 2)
|
|
106
|
-
|
|
107
|
-
temp_df.replace([np.inf, -np.inf], 0, inplace=True)
|
|
108
|
-
temp_df.fillna(0, inplace=True)
|
|
109
|
-
return temp_df
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
import mns_common.component.proxies.proxy_common_api as proxy_common_api
|
|
113
|
-
|
|
114
|
-
if __name__ == '__main__':
|
|
115
|
-
while True:
|
|
116
|
-
proxy_ip = proxy_common_api.get_proxy_ip(5)
|
|
117
|
-
df = stock_zh_a_hist("0.000001",
|
|
118
|
-
'daily',
|
|
119
|
-
"19700101",
|
|
120
|
-
"22220101",
|
|
121
|
-
"",
|
|
122
|
-
proxy_ip)
|
|
123
|
-
print(df)
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
import sys
|
|
2
|
-
import os
|
|
3
|
-
|
|
4
|
-
file_path = os.path.abspath(__file__)
|
|
5
|
-
end = file_path.index('mns') + 7
|
|
6
|
-
project_path = file_path[0:end]
|
|
7
|
-
sys.path.append(project_path)
|
|
8
|
-
import pandas as pd
|
|
9
|
-
import requests
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
def stock_bid_ask_em(symbol: str = "000001") -> pd.DataFrame:
|
|
13
|
-
"""
|
|
14
|
-
东方财富-行情报价
|
|
15
|
-
https://quote.eastmoney.com/sz000001.html
|
|
16
|
-
:param symbol: 股票代码
|
|
17
|
-
:type symbol: str
|
|
18
|
-
:return: 行情报价
|
|
19
|
-
:rtype: pandas.DataFrame
|
|
20
|
-
"""
|
|
21
|
-
url = "https://push2.eastmoney.com/api/qt/stock/get"
|
|
22
|
-
params = {
|
|
23
|
-
"fltt": "2",
|
|
24
|
-
"invt": "2",
|
|
25
|
-
"fields": "f120,f121,f122,f174,f175,f59,f163,f43,f57,f58,f169,f170,f46,f44,f51,"
|
|
26
|
-
"f168,f47,f164,f116,f60,f45,f52,f50,f48,f167,f117,f71,f161,f49,f530,"
|
|
27
|
-
"f135,f136,f137,f138,f139,f141,f142,f144,f145,f147,f148,f140,f143,f146,"
|
|
28
|
-
"f149,f55,f62,f162,f92,f173,f104,f105,f84,f85,f183,f184,f185,f186,f187,"
|
|
29
|
-
"f188,f189,f190,f191,f192,f107,f111,f86,f177,f78,f110,f262,f263,f264,f267,"
|
|
30
|
-
"f268,f255,f256,f257,f258,f127,f199,f128,f198,f259,f260,f261,f171,f277,f278,"
|
|
31
|
-
"f279,f288,f152,f250,f251,f252,f253,f254,f269,f270,f271,f272,f273,f274,f275,"
|
|
32
|
-
"f276,f265,f266,f289,f290,f286,f285,f292,f293,f294,f295",
|
|
33
|
-
|
|
34
|
-
"secid": symbol,
|
|
35
|
-
}
|
|
36
|
-
r = requests.get(url, params=params)
|
|
37
|
-
data_json = r.json()
|
|
38
|
-
tick_dict = {
|
|
39
|
-
"now_price": data_json["data"]["f43"],
|
|
40
|
-
"dt_price": data_json["data"]["f52"],
|
|
41
|
-
"zt_price": data_json["data"]["f51"],
|
|
42
|
-
"wei_bi": data_json["data"]["f191"],
|
|
43
|
-
"sell_5": data_json["data"]["f31"],
|
|
44
|
-
"sell_5_vol": data_json["data"]["f32"] * 100,
|
|
45
|
-
"sell_4": data_json["data"]["f33"],
|
|
46
|
-
"sell_4_vol": data_json["data"]["f34"] * 100,
|
|
47
|
-
"sell_3": data_json["data"]["f35"],
|
|
48
|
-
"sell_3_vol": data_json["data"]["f36"] * 100,
|
|
49
|
-
"sell_2": data_json["data"]["f37"],
|
|
50
|
-
"sell_2_vol": data_json["data"]["f38"] * 100,
|
|
51
|
-
"sell_1": data_json["data"]["f39"],
|
|
52
|
-
"sell_1_vol": data_json["data"]["f40"] * 100,
|
|
53
|
-
"buy_1": data_json["data"]["f19"],
|
|
54
|
-
"buy_1_vol": data_json["data"]["f20"] * 100,
|
|
55
|
-
"buy_2": data_json["data"]["f17"],
|
|
56
|
-
"buy_2_vol": data_json["data"]["f18"] * 100,
|
|
57
|
-
"buy_3": data_json["data"]["f15"],
|
|
58
|
-
"buy_3_vol": data_json["data"]["f16"] * 100,
|
|
59
|
-
"buy_4": data_json["data"]["f13"],
|
|
60
|
-
"buy_4_vol": data_json["data"]["f14"] * 100,
|
|
61
|
-
"buy_5": data_json["data"]["f11"],
|
|
62
|
-
"buy_5_vol": data_json["data"]["f12"] * 100,
|
|
63
|
-
}
|
|
64
|
-
temp_df = pd.DataFrame(tick_dict, index=[1])
|
|
65
|
-
temp_df.reset_index(inplace=True)
|
|
66
|
-
temp_df.loc[temp_df['wei_bi'] == '-', 'wei_bi'] = 0
|
|
67
|
-
temp_df.loc[temp_df['sell_5_vol'] == '-', 'sell_5_vol'] = 0
|
|
68
|
-
temp_df.loc[temp_df['sell_5'] == '-', 'sell_5'] = 0
|
|
69
|
-
temp_df.loc[temp_df['sell_4_vol'] == '-', 'sell_4_vol'] = 0
|
|
70
|
-
temp_df.loc[temp_df['sell_4'] == '-', 'sell_4'] = 0
|
|
71
|
-
temp_df.loc[temp_df['sell_3_vol'] == '-', 'sell_3_vol'] = 0
|
|
72
|
-
temp_df.loc[temp_df['sell_3'] == '-', 'sell_3'] = 0
|
|
73
|
-
temp_df.loc[temp_df['sell_2_vol'] == '-', 'sell_2_vol'] = 0
|
|
74
|
-
temp_df.loc[temp_df['sell_2'] == '-', 'sell_2'] = 0
|
|
75
|
-
temp_df.loc[temp_df['sell_1_vol'] == '-', 'sell_1_vol'] = 0
|
|
76
|
-
temp_df.loc[temp_df['sell_1'] == '-', 'sell_1'] = 0
|
|
77
|
-
temp_df.loc[temp_df['buy_1_vol'] == '-', 'buy_1_vol'] = 0
|
|
78
|
-
temp_df.loc[temp_df['buy_1'] == '-', 'buy_1'] = 0
|
|
79
|
-
temp_df.loc[temp_df['buy_2_vol'] == '-', 'buy_2_vol'] = 0
|
|
80
|
-
temp_df.loc[temp_df['buy_2'] == '-', 'buy_2'] = 0
|
|
81
|
-
temp_df.loc[temp_df['buy_3_vol'] == '-', 'buy_3_vol'] = 0
|
|
82
|
-
temp_df.loc[temp_df['buy_3'] == '-', 'buy_3'] = 0
|
|
83
|
-
temp_df.loc[temp_df['buy_4_vol'] == '-', 'buy_4_vol'] = 0
|
|
84
|
-
temp_df.loc[temp_df['buy_4'] == '-', 'buy_4'] = 0
|
|
85
|
-
temp_df.loc[temp_df['buy_5_vol'] == '-', 'buy_5_vol'] = 0
|
|
86
|
-
temp_df.loc[temp_df['buy_5'] == '-', 'buy_5'] = 0
|
|
87
|
-
temp_df['symbol'] = symbol
|
|
88
|
-
return temp_df
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
if __name__ == '__main__':
|
|
92
|
-
while True:
|
|
93
|
-
df = stock_bid_ask_em('0.000001')
|
|
94
|
-
print(df)
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import sys
|
|
2
|
-
import os
|
|
3
|
-
|
|
4
|
-
file_path = os.path.abspath(__file__)
|
|
5
|
-
end = file_path.index('mns') + 14
|
|
6
|
-
project_path = file_path[0:end]
|
|
7
|
-
sys.path.append(project_path)
|
|
8
|
-
import akshare as ak
|
|
9
|
-
from loguru import logger
|
|
10
|
-
import mns_common.utils.data_frame_util as data_frame_util
|
|
11
|
-
import mns_common.utils.date_handle_util as date_handle_util
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
def stock_em_dt_pool_df(date):
|
|
15
|
-
try:
|
|
16
|
-
date = date_handle_util.no_slash_date(date)
|
|
17
|
-
stock_dt_pool_df = ak.stock_zt_pool_dtgc_em(date)
|
|
18
|
-
if data_frame_util.is_empty(stock_dt_pool_df):
|
|
19
|
-
return None
|
|
20
|
-
stock_dt_pool_df.rename(columns={"序号": "index",
|
|
21
|
-
"代码": "symbol",
|
|
22
|
-
"名称": "name",
|
|
23
|
-
"涨跌幅": "chg",
|
|
24
|
-
"最新价": "now_price",
|
|
25
|
-
"成交额": "amount",
|
|
26
|
-
"流通市值": "flow_mv",
|
|
27
|
-
"总市值": "total_mv",
|
|
28
|
-
"动态市盈率": "ttm_pe",
|
|
29
|
-
"换手率": "exchange",
|
|
30
|
-
"封单资金": "closure_funds",
|
|
31
|
-
"最后封板时间": "last_closure_time",
|
|
32
|
-
"板上成交额": "plates_deal",
|
|
33
|
-
"连续跌停": "connected_boards_numbers",
|
|
34
|
-
"开板次数": "frying_plates_numbers",
|
|
35
|
-
"所属行业": "industry"
|
|
36
|
-
}, inplace=True)
|
|
37
|
-
stock_dt_pool_df.loc[stock_dt_pool_df['amount'] == '-', 'amount'] = 0
|
|
38
|
-
stock_dt_pool_df.loc[stock_dt_pool_df['exchange'] == '-', 'exchange'] = 0
|
|
39
|
-
stock_dt_pool_df.loc[stock_dt_pool_df['closure_funds'] == '-', 'closure_funds'] = 0
|
|
40
|
-
return stock_dt_pool_df
|
|
41
|
-
except BaseException as e:
|
|
42
|
-
logger.error("同步股票跌停数据出现异常:{},{}", date, e)
|
|
43
|
-
return None
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
if __name__ == '__main__':
|
|
47
|
-
stock_em_dt_pool_df('20231215')
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import sys
|
|
2
|
-
import os
|
|
3
|
-
|
|
4
|
-
file_path = os.path.abspath(__file__)
|
|
5
|
-
end = file_path.index('mns') + 14
|
|
6
|
-
project_path = file_path[0:end]
|
|
7
|
-
sys.path.append(project_path)
|
|
8
|
-
import akshare as ak
|
|
9
|
-
from loguru import logger
|
|
10
|
-
import mns_common.utils.data_frame_util as data_frame_util
|
|
11
|
-
import mns_common.utils.date_handle_util as date_handle_util
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
def stock_zb_pool_df(date):
|
|
15
|
-
try:
|
|
16
|
-
date = date_handle_util.no_slash_date(date)
|
|
17
|
-
stock_zb_pool = ak.stock_zt_pool_zbgc_em(date)
|
|
18
|
-
if data_frame_util.is_empty(stock_zb_pool):
|
|
19
|
-
return None
|
|
20
|
-
stock_zb_pool.rename(columns={"序号": "index",
|
|
21
|
-
"代码": "symbol",
|
|
22
|
-
"名称": "name",
|
|
23
|
-
"涨跌幅": "chg",
|
|
24
|
-
"最新价": "now_price",
|
|
25
|
-
"炸板股价": "zt_price",
|
|
26
|
-
"成交额": "amount",
|
|
27
|
-
"流通市值": "flow_mv",
|
|
28
|
-
"总市值": "total_mv",
|
|
29
|
-
"动态市盈率": "ttm_pe",
|
|
30
|
-
"换手率": "exchange",
|
|
31
|
-
"涨速": "speed",
|
|
32
|
-
"首次封板时间": "first_closure_time",
|
|
33
|
-
"炸板次数": "frying_plates_numbers",
|
|
34
|
-
"炸板股统计": "statistics",
|
|
35
|
-
"振幅": "pct_chg",
|
|
36
|
-
"所属行业": "industry"
|
|
37
|
-
}, inplace=True)
|
|
38
|
-
stock_zb_pool.loc[stock_zb_pool['amount'] == '-', 'amount'] = 0
|
|
39
|
-
stock_zb_pool.loc[stock_zb_pool['exchange'] == '-', 'exchange'] = 0
|
|
40
|
-
return stock_zb_pool
|
|
41
|
-
except BaseException as e:
|
|
42
|
-
logger.error("同步股票炸板数据出现异常:{},{}", date, e)
|
|
43
|
-
return None
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
if __name__ == '__main__':
|
|
47
|
-
df = stock_zb_pool_df('2024-09-04')
|
|
48
|
-
print(df)
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import sys
|
|
2
|
-
import os
|
|
3
|
-
|
|
4
|
-
file_path = os.path.abspath(__file__)
|
|
5
|
-
end = file_path.index('mns') + 14
|
|
6
|
-
project_path = file_path[0:end]
|
|
7
|
-
sys.path.append(project_path)
|
|
8
|
-
import akshare as ak
|
|
9
|
-
from loguru import logger
|
|
10
|
-
import mns_common.utils.date_handle_util as date_handle_util
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
def stock_em_zt_pool_df(date):
|
|
14
|
-
try:
|
|
15
|
-
date = date_handle_util.no_slash_date(date)
|
|
16
|
-
zt_df = ak.stock_zt_pool_em(date)
|
|
17
|
-
if zt_df is None or zt_df.shape[0] == 0:
|
|
18
|
-
return None
|
|
19
|
-
zt_df.rename(columns={"序号": "index",
|
|
20
|
-
"代码": "symbol",
|
|
21
|
-
"名称": "name",
|
|
22
|
-
"最新价": "now_price",
|
|
23
|
-
"涨跌幅": "chg",
|
|
24
|
-
"成交额": "amount",
|
|
25
|
-
"流通市值": "flow_mv",
|
|
26
|
-
"总市值": "total_mv",
|
|
27
|
-
"换手率": "exchange",
|
|
28
|
-
"封板资金": "closure_funds",
|
|
29
|
-
"首次封板时间": "first_closure_time",
|
|
30
|
-
"最后封板时间": "last_closure_time",
|
|
31
|
-
"炸板次数": "frying_plates_numbers",
|
|
32
|
-
"涨停统计": "statistics",
|
|
33
|
-
"连板数": "connected_boards_numbers",
|
|
34
|
-
"所属行业": "industry"
|
|
35
|
-
}, inplace=True)
|
|
36
|
-
zt_df.loc[zt_df['amount'] == '-', 'amount'] = 0
|
|
37
|
-
zt_df.loc[zt_df['exchange'] == '-', 'exchange'] = 0
|
|
38
|
-
zt_df.loc[zt_df['closure_funds'] == '-', 'closure_funds'] = 0
|
|
39
|
-
return zt_df
|
|
40
|
-
except BaseException as e:
|
|
41
|
-
logger.error("同步股票涨停数据出现异常:{},{}", date, e)
|
|
42
|
-
return None
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
if __name__ == '__main__':
|
|
46
|
-
df = stock_em_zt_pool_df('2025-10-24')
|
|
47
|
-
print(df)
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
import sys
|
|
2
|
-
import os
|
|
3
|
-
import akshare as ak
|
|
4
|
-
from mns_common.db.MongodbUtil import MongodbUtil
|
|
5
|
-
import mns_common.utils.data_frame_util as data_frame_util
|
|
6
|
-
import pandas as pd
|
|
7
|
-
from datetime import datetime
|
|
8
|
-
|
|
9
|
-
file_path = os.path.abspath(__file__)
|
|
10
|
-
end = file_path.index('mns') + 14
|
|
11
|
-
project_path = file_path[0:end]
|
|
12
|
-
sys.path.append(project_path)
|
|
13
|
-
mongodb_util = MongodbUtil('27017')
|
|
14
|
-
|
|
15
|
-
predictor_translation_map = {
|
|
16
|
-
"主营业务收入": "main_operating_revenue",
|
|
17
|
-
"净利润": "net_profit",
|
|
18
|
-
"归属于上市公司股东的净利润": "net_profit_attributable_to_shareholders",
|
|
19
|
-
"扣除后营业收入": "operating_revenue_deducted",
|
|
20
|
-
"扣除非经常性损益后的净利润": "net_profit_excluding_non_recurring_items",
|
|
21
|
-
"扣非后每股收益": "earnings_per_share_excluding_non_recurring_items",
|
|
22
|
-
"每股收益": "earnings_per_share",
|
|
23
|
-
"营业收入": "operating_revenue",
|
|
24
|
-
"非经常性损益": "non_recurring_items"
|
|
25
|
-
}
|
|
26
|
-
# ['net_profit', 'net_profit_attributable_to_shareholders', 'net_profit_excluding_non_recurring_items',
|
|
27
|
-
# 'earnings_per_share_excluding_non_recurring_items', 'earnings_per_share']
|
|
28
|
-
predict_type_translation_map = {
|
|
29
|
-
"不确定": "uncertain",
|
|
30
|
-
"减亏": "loss_reduction",
|
|
31
|
-
"增亏": "increased_loss",
|
|
32
|
-
"扭亏": "turnaround",
|
|
33
|
-
"略减": "slight_decrease",
|
|
34
|
-
"略增": "slight_increase",
|
|
35
|
-
"续亏": "continued_loss",
|
|
36
|
-
"续盈": "continued_profit",
|
|
37
|
-
"预减": "pre_loss",
|
|
38
|
-
"预增": "pre_increase",
|
|
39
|
-
"首亏": "first_loss"
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
# ['turnaround', 'slight_increase', 'continued_profit', 'pre_increase']
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
def sync_yjyg_data(period):
|
|
47
|
-
stock_yjyg_em_df = ak.stock_yjyg_em(date=period)
|
|
48
|
-
if data_frame_util.is_empty(stock_yjyg_em_df):
|
|
49
|
-
return None
|
|
50
|
-
now_date = datetime.now()
|
|
51
|
-
str_now_date = now_date.strftime('%Y-%m-%d %H:%M:%S')
|
|
52
|
-
sync_day = now_date.strftime('%Y-%m-%d')
|
|
53
|
-
stock_yjyg_em_df.rename(columns={"序号": "index",
|
|
54
|
-
"股票代码": "symbol",
|
|
55
|
-
"股票简称": "name",
|
|
56
|
-
"预测指标": "predictor",
|
|
57
|
-
"业绩变动": "perform_change_detail",
|
|
58
|
-
"预测数值": "predicted_value",
|
|
59
|
-
"业绩变动幅度": "perform_chg",
|
|
60
|
-
"业绩变动原因": "perform_change_reason",
|
|
61
|
-
"预告类型": "predict_type",
|
|
62
|
-
"上年同期值": "last_year_period",
|
|
63
|
-
"公告日期": "release_day"}, inplace=True)
|
|
64
|
-
|
|
65
|
-
stock_yjyg_em_df['predictor_en'] = stock_yjyg_em_df['predictor'].map(lambda x: predictor_translation_map.get(x, x))
|
|
66
|
-
stock_yjyg_em_df['predict_type_en'] = stock_yjyg_em_df['predict_type'].map(
|
|
67
|
-
lambda x: predict_type_translation_map.get(x, x))
|
|
68
|
-
|
|
69
|
-
stock_yjyg_em_df.loc[:, 'period'] = period
|
|
70
|
-
stock_yjyg_em_df.loc[:, 'sync_day'] = sync_day
|
|
71
|
-
stock_yjyg_em_df.loc[:, 'str_now_date'] = str_now_date
|
|
72
|
-
stock_yjyg_em_df['release_day'] = pd.to_datetime(stock_yjyg_em_df['release_day'])
|
|
73
|
-
stock_yjyg_em_df['release_day'] = stock_yjyg_em_df['release_day'].dt.strftime('%Y-%m-%d')
|
|
74
|
-
|
|
75
|
-
stock_yjyg_em_df['perform_chg'].fillna(0, inplace=True)
|
|
76
|
-
stock_yjyg_em_df['_id'] = stock_yjyg_em_df['symbol'] + '_' + period + '_' + stock_yjyg_em_df[
|
|
77
|
-
'predictor_en'] + '_' + stock_yjyg_em_df['predict_type_en']
|
|
78
|
-
stock_yjyg_em_df = stock_yjyg_em_df[
|
|
79
|
-
['_id', 'symbol', 'name', 'predictor',
|
|
80
|
-
'predictor_en',
|
|
81
|
-
'perform_change_detail',
|
|
82
|
-
'predicted_value',
|
|
83
|
-
'perform_chg',
|
|
84
|
-
'perform_change_reason',
|
|
85
|
-
'predict_type',
|
|
86
|
-
'predict_type_en',
|
|
87
|
-
'last_year_period',
|
|
88
|
-
'release_day',
|
|
89
|
-
'period',
|
|
90
|
-
'sync_day',
|
|
91
|
-
'str_now_date',
|
|
92
|
-
'index']]
|
|
93
|
-
|
|
94
|
-
mongodb_util.save_mongo(stock_yjyg_em_df, 'stock_yjyg_em_df')
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
if __name__ == '__main__':
|
|
98
|
-
sync_yjyg_data('20230630')
|