mns-common 1.5.1.0__tar.gz → 1.5.1.2__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.0 → mns_common-1.5.1.2}/PKG-INFO +1 -1
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/akshare/stock_zt_pool_api.py +1 -1
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/ths/zt/ths_stock_zt_pool_v2_api.py +93 -29
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common.egg-info/PKG-INFO +1 -1
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/setup.py +1 -1
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/README.md +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/akshare/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/akshare/k_line_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/akshare/stock_bid_ask_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/akshare/stock_dt_pool.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/akshare/stock_zb_pool.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/akshare/yjyg_sync_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/em/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/em/concept/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/em/concept/em_concept_index_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/em/gd/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/em/gd/east_money_stock_gdfx_free_top_10_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/em/real_time/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/em/real_time/east_money_debt_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/em/real_time/east_money_etf_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/em/real_time/east_money_stock_a_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/em/real_time/east_money_stock_a_v2_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/em/real_time/east_money_stock_hk_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/em/real_time/east_money_stock_us_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/hk/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/hk/ths_hk_company_info_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/k_line/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/k_line/stock_k_line_data_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/k_line/stock_minute_data_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/kpl/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/kpl/common/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/kpl/common/kpl_common_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/kpl/common/kpl_common_field_constant.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/kpl/concept/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/kpl/concept/kpl_concept_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/kpl/constant/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/kpl/constant/kpl_constant.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/kpl/industry/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/kpl/industry/kpl_industry_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/kpl/selection/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/kpl/selection/kpl_selection_plate_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/kpl/symbol/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/kpl/symbol/kpl_real_time_quotes_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/kpl/symbol/kpl_symbol_common_field_constant.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/kpl/symbol/symbol_his_quotes_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/msg/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/msg/push_msg_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/proxies/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/proxies/liu_guan_proxy_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/qmt/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/qmt/qmt_minunte_tick_data.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/ths/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/ths/big_deal/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/ths/big_deal/ths_big_deal_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/ths/company/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/ths/company/company_product_area_industry_index_query.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/ths/company/ths_company_announce_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/ths/company/ths_company_info_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/ths/concept/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/ths/concept/app/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/ths/concept/app/ths_concept_detail_app.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/ths/concept/app/ths_concept_index_app.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/ths/concept/web/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/ths/concept/web/ths_common_js_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/ths/concept/web/ths_company_info_web.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/ths/concept/web/ths_concept_detail_web.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/ths/concept/web/ths_concept_index_web.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/ths/self_choose/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/ths/self_choose/ths_self_choose_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/ths/wen_cai/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/ths/wen_cai/ths_wen_cai_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/ths/zt/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/ths/zt/ths_stock_zt_pool_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/us/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/us/ths_us_company_info_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/xueqiu/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/xueqiu/xue_qiu_k_line_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/cache/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/cache/cache_service.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/classify/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/classify/symbol_classify_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/classify/symbol_classify_param.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/common_service_fun_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/company/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/company/company_common_service_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/company/company_common_service_new_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/concept/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/concept/kpl_concept_common_service_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/concept/ths_concept_common_service_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/cookie/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/cookie/cookie_enum.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/cookie/cookie_info_service.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/data/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/data/data_init_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/deal/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/deal/deal_service_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/deal/deal_service_v2_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/deal/terminal_enum.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/em/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/em/em_real_time_quotes_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/em/em_stock_info_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/exception/ExceptionMonitor.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/exception/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/hk/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/hk/company_hk_service_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/industry/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/industry/ths_industry_index_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/k_line/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/k_line/clean/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/k_line/clean/k_line_param.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/k_line/clean/sh_small_normal_zt_k_line_check_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/k_line/common/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/k_line/common/k_line_common_service_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/k_line/patterns/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/k_line/patterns/k_line_patterns_service_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/k_line/patterns/pattern_Enum.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/price/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/price/trade_price_service_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/proxies/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/proxies/proxy_common_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/qmt/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/qmt/qmt_buy_service.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/real_time/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/real_time/real_time_common_service_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/redis_msg/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/redis_msg/redis_msg_publish_service.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/self_choose/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/self_choose/black_list_service_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/self_choose/self_choose_service_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/task/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/task/real_time_data_sync_check.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/tfp/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/tfp/stock_tfp_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/trade_date/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/trade_date/trade_date_common_service_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/us/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/us/us_stock_etf_info_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/zt/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/zt/zt_common_service_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/constant/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/constant/black_list_classify_enum.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/constant/db_name_constant.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/constant/east_money_stock_api.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/constant/extra_income_db_name.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/constant/price_enum.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/constant/redis_msg_constant.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/constant/self_choose_constant.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/constant/strategy_classify.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/db/MongodbUtil.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/db/MongodbUtilLocal.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/db/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/db/v2/MongodbUtilV2.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/db/v2/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/utils/__init__.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/utils/async_fun.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/utils/cmd_util.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/utils/data_frame_util.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/utils/date_handle_util.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/utils/db_util.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/utils/file_util.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/utils/ip_util.py +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common.egg-info/SOURCES.txt +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common.egg-info/dependency_links.txt +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common.egg-info/top_level.txt +0 -0
- {mns_common-1.5.1.0 → mns_common-1.5.1.2}/setup.cfg +0 -0
|
@@ -140,7 +140,8 @@ def convert_statistics(stat):
|
|
|
140
140
|
# 获取实时行情涨停列表
|
|
141
141
|
def get_real_time_zt_info():
|
|
142
142
|
real_time_df = em_real_time_quotes_api.get_real_time_quotes_now(None, None)
|
|
143
|
-
real_time_df_zt = real_time_df.loc[
|
|
143
|
+
real_time_df_zt = real_time_df.loc[
|
|
144
|
+
(real_time_df['chg'] > common_service_fun_api.ZT_CHG) | (real_time_df['wei_bi'] == 100)]
|
|
144
145
|
if data_frame_util.is_empty(real_time_df_zt):
|
|
145
146
|
return pd.DataFrame()
|
|
146
147
|
real_time_df_zt = real_time_df_zt[[
|
|
@@ -197,24 +198,83 @@ def get_now_zt_pool_with_reason(str_day):
|
|
|
197
198
|
real_time_zt_df = get_real_time_zt_info()
|
|
198
199
|
# 昨日涨停列表
|
|
199
200
|
last_trade_zt = zt_common_service_api.get_last_trade_day_zt(str_day)
|
|
200
|
-
|
|
201
|
-
|
|
201
|
+
|
|
202
|
+
try:
|
|
203
|
+
# 东方财富涨停列表
|
|
204
|
+
em_now_zt_pool = stock_zt_pool_api.stock_em_zt_pool_df(date_handle_util.no_slash_date(str_day))
|
|
205
|
+
except BaseException as e:
|
|
206
|
+
em_now_zt_pool = pd.DataFrame()
|
|
207
|
+
logger.error("获取东方财富涨停列表异常:{}", e)
|
|
208
|
+
|
|
202
209
|
if data_frame_util.is_not_empty(em_now_zt_pool):
|
|
203
210
|
real_time_zt_df_wei_bi_100 = real_time_zt_df.loc[real_time_zt_df['symbol'].isin(em_now_zt_pool['symbol'])]
|
|
204
211
|
real_time_zt_df_high_chg = real_time_zt_df.loc[~(real_time_zt_df['symbol'].isin(em_now_zt_pool['symbol']))]
|
|
212
|
+
|
|
213
|
+
em_now_zt_pool = em_now_zt_pool[['symbol',
|
|
214
|
+
'connected_boards_numbers',
|
|
215
|
+
'statistics',
|
|
216
|
+
'closure_funds',
|
|
217
|
+
'first_closure_time',
|
|
218
|
+
'last_closure_time',
|
|
219
|
+
'frying_plates_numbers']]
|
|
220
|
+
|
|
221
|
+
em_now_zt_pool = em_now_zt_pool.set_index(['symbol'], drop=True)
|
|
222
|
+
real_time_zt_df_wei_bi_100 = real_time_zt_df_wei_bi_100.set_index(['symbol'], drop=False)
|
|
223
|
+
real_time_zt_df_wei_bi_100 = pd.merge(real_time_zt_df_wei_bi_100, em_now_zt_pool, how='outer',
|
|
224
|
+
left_index=True, right_index=True)
|
|
225
|
+
|
|
226
|
+
now_continue_zt = last_trade_zt.loc[
|
|
227
|
+
last_trade_zt['symbol'].isin(list(real_time_zt_df_wei_bi_100['symbol']))]
|
|
228
|
+
|
|
205
229
|
else:
|
|
206
|
-
|
|
230
|
+
real_time_zt_df_wei_bi_100 = real_time_zt_df.loc[real_time_zt_df['wei_bi'] == 100]
|
|
231
|
+
|
|
232
|
+
real_time_zt_df_wei_bi_100['connected_boards_numbers'] = 1
|
|
233
|
+
real_time_zt_df_wei_bi_100['statistics'] = '1/1'
|
|
234
|
+
real_time_zt_df_wei_bi_100['closure_funds'] = real_time_zt_df_wei_bi_100['now_price'] * \
|
|
235
|
+
real_time_zt_df_wei_bi_100['buy_1_num'] * 100
|
|
236
|
+
real_time_zt_df_wei_bi_100['first_closure_time'] = '153000'
|
|
237
|
+
real_time_zt_df_wei_bi_100['last_closure_time'] = '153000'
|
|
238
|
+
real_time_zt_df_wei_bi_100['frying_plates_numbers'] = 0
|
|
239
|
+
now_continue_zt = last_trade_zt.loc[
|
|
240
|
+
last_trade_zt['symbol'].isin(list(real_time_zt_df_wei_bi_100['symbol']))]
|
|
241
|
+
|
|
242
|
+
if data_frame_util.is_not_empty(now_continue_zt):
|
|
243
|
+
now_continue_zt = now_continue_zt[['symbol', 'connected_boards_numbers', 'statistics']]
|
|
244
|
+
|
|
245
|
+
connected_boards_map = now_continue_zt.set_index('symbol')['connected_boards_numbers'].to_dict()
|
|
246
|
+
|
|
247
|
+
# 将映射的值加到原DataFrame上
|
|
248
|
+
real_time_zt_df_wei_bi_100['connected_boards_numbers'] = real_time_zt_df_wei_bi_100[
|
|
249
|
+
'connected_boards_numbers'] + \
|
|
250
|
+
real_time_zt_df_wei_bi_100['symbol'].map(
|
|
251
|
+
connected_boards_map).fillna(0)
|
|
207
252
|
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
'statistics', 'closure_funds', 'first_closure_time',
|
|
211
|
-
'last_closure_time', 'frying_plates_numbers']]
|
|
253
|
+
real_time_zt_df_wei_bi_100 = real_time_zt_df_wei_bi_100.sort_values(by=['connected_boards_numbers'],
|
|
254
|
+
ascending=False)
|
|
212
255
|
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
256
|
+
real_time_zt_df_high_chg = real_time_zt_df.loc[real_time_zt_df['wei_bi'] != 100]
|
|
257
|
+
|
|
258
|
+
# todo
|
|
259
|
+
# 高涨幅处理
|
|
260
|
+
now_zt_pool_df = handle_high_chg(real_time_zt_df_high_chg, last_trade_zt, real_time_zt_df_wei_bi_100)
|
|
261
|
+
|
|
262
|
+
now_zt_pool_df = merge_zt_reason(now_zt_pool_df, str_day, last_trade_zt, now_continue_zt)
|
|
263
|
+
|
|
264
|
+
result_first = now_zt_pool_df.loc[now_zt_pool_df['connected_boards_numbers'] == 1]
|
|
265
|
+
result_connected_boards = now_zt_pool_df.loc[now_zt_pool_df['connected_boards_numbers'] > 1]
|
|
266
|
+
result_connected_boards = result_connected_boards.sort_values(by=['connected_boards_numbers'], ascending=False)
|
|
267
|
+
result_first = result_first.sort_values(by=['first_closure_time'], ascending=True)
|
|
268
|
+
|
|
269
|
+
now_zt_pool_df = pd.concat([result_connected_boards,
|
|
270
|
+
result_first])
|
|
271
|
+
now_zt_pool_df = now_zt_pool_df.fillna('未知数据')
|
|
272
|
+
now_zt_pool_df.drop_duplicates('symbol', keep='last', inplace=True)
|
|
217
273
|
|
|
274
|
+
return now_zt_pool_df
|
|
275
|
+
|
|
276
|
+
|
|
277
|
+
def handle_high_chg(real_time_zt_df_high_chg, last_trade_zt, real_time_zt_df_wei_bi_100):
|
|
218
278
|
# 初始化数据
|
|
219
279
|
real_time_zt_df_high_chg['closure_funds'] = 0
|
|
220
280
|
real_time_zt_df_high_chg['first_closure_time'] = '153000'
|
|
@@ -228,6 +288,7 @@ def get_now_zt_pool_with_reason(str_day):
|
|
|
228
288
|
|
|
229
289
|
last_trade_zt_copy_today_high_chg = last_trade_zt.loc[
|
|
230
290
|
last_trade_zt['symbol'].isin(real_time_zt_df_high_chg_last_trade_zt['symbol'])]
|
|
291
|
+
|
|
231
292
|
last_trade_zt_copy_today_high_chg = last_trade_zt_copy_today_high_chg[
|
|
232
293
|
['symbol', 'connected_boards_numbers', 'statistics']]
|
|
233
294
|
last_trade_zt_copy_today_high_chg['connected_boards_numbers'] = last_trade_zt_copy_today_high_chg[
|
|
@@ -247,21 +308,10 @@ def get_now_zt_pool_with_reason(str_day):
|
|
|
247
308
|
real_time_zt_df_high_chg_last_trade_zt,
|
|
248
309
|
real_time_zt_df_high_chg_last_trade_no_zt])
|
|
249
310
|
|
|
250
|
-
now_zt_pool_df = merge_zt_reason(now_zt_pool_df, str_day, last_trade_zt)
|
|
251
|
-
|
|
252
|
-
result_first = now_zt_pool_df.loc[now_zt_pool_df['connected_boards_numbers'] == 1]
|
|
253
|
-
result_connected_boards = now_zt_pool_df.loc[now_zt_pool_df['connected_boards_numbers'] > 1]
|
|
254
|
-
result_connected_boards = result_connected_boards.sort_values(by=['connected_boards_numbers'], ascending=False)
|
|
255
|
-
result_first = result_first.sort_values(by=['first_closure_time'], ascending=True)
|
|
256
|
-
|
|
257
|
-
now_zt_pool_df = pd.concat([result_connected_boards,
|
|
258
|
-
result_first])
|
|
259
|
-
now_zt_pool_df = now_zt_pool_df.fillna('未知数据')
|
|
260
|
-
now_zt_pool_df.drop_duplicates('symbol', keep='last', inplace=True)
|
|
261
311
|
return now_zt_pool_df
|
|
262
312
|
|
|
263
313
|
|
|
264
|
-
def merge_zt_reason(now_zt_pool_df, str_day, last_trade_zt):
|
|
314
|
+
def merge_zt_reason(now_zt_pool_df, str_day, last_trade_zt, now_continue_zt):
|
|
265
315
|
try:
|
|
266
316
|
zt_reason_df = get_ths_stock_zt_reason_with_cache(str_day)
|
|
267
317
|
except BaseException as e:
|
|
@@ -269,9 +319,14 @@ def merge_zt_reason(now_zt_pool_df, str_day, last_trade_zt):
|
|
|
269
319
|
logger.error("获取涨停原因异常:{}", e)
|
|
270
320
|
|
|
271
321
|
last_trade_zt_copy = last_trade_zt.copy()
|
|
322
|
+
|
|
272
323
|
if "zt_reason" not in last_trade_zt.columns:
|
|
273
324
|
last_trade_zt_copy['zt_reason'] = '暂无'
|
|
274
|
-
|
|
325
|
+
|
|
326
|
+
if 'main_line' not in last_trade_zt.columns:
|
|
327
|
+
last_trade_zt['main_line'] = ''
|
|
328
|
+
|
|
329
|
+
last_trade_zt_copy = last_trade_zt_copy[['symbol', 'zt_reason', 'main_line']]
|
|
275
330
|
|
|
276
331
|
if data_frame_util.is_empty(zt_reason_df):
|
|
277
332
|
now_zt_pool_df['zt_reason'] = '暂无'
|
|
@@ -289,6 +344,16 @@ def merge_zt_reason(now_zt_pool_df, str_day, last_trade_zt):
|
|
|
289
344
|
zt_reason_df_copy = zt_reason_df_copy.set_index(['symbol'], drop=True)
|
|
290
345
|
now_zt_pool_df = now_zt_pool_df.set_index(['symbol'], drop=False)
|
|
291
346
|
|
|
347
|
+
now_zt_pool_df['main_line'] = ''
|
|
348
|
+
if data_frame_util.is_not_empty(now_continue_zt):
|
|
349
|
+
now_continue_zt = now_continue_zt[['symbol', 'main_line']]
|
|
350
|
+
|
|
351
|
+
# 创建一个 symbol 到 main_line 的映射
|
|
352
|
+
main_line_mapping = now_continue_zt.set_index('symbol')['main_line'].to_dict()
|
|
353
|
+
|
|
354
|
+
# 使用 map 更新 main_line 列
|
|
355
|
+
now_zt_pool_df['main_line'] = now_zt_pool_df['symbol'].map(main_line_mapping).fillna("")
|
|
356
|
+
|
|
292
357
|
result_zt_df = pd.merge(now_zt_pool_df, zt_reason_df_copy, how='outer',
|
|
293
358
|
left_index=True, right_index=True)
|
|
294
359
|
|
|
@@ -363,12 +428,11 @@ def zt_reason_group(zt_pool_df):
|
|
|
363
428
|
|
|
364
429
|
|
|
365
430
|
if __name__ == '__main__':
|
|
366
|
-
str_day_test = '
|
|
367
|
-
|
|
431
|
+
str_day_test = '2025-10-28'
|
|
432
|
+
# 同花顺涨停
|
|
433
|
+
ths_zt_pool_df = get_now_zt_pool_with_reason(str_day_test)
|
|
368
434
|
# 东财涨停池
|
|
369
435
|
em_now_zt_pool_test = stock_zt_pool_api.stock_em_zt_pool_df(date_handle_util.no_slash_date(str_day_test))
|
|
370
|
-
# 同花顺涨停
|
|
371
|
-
ths_zt_pool_df = get_zt_reason(str_day_test)
|
|
372
436
|
|
|
373
437
|
miss_zt_df = em_now_zt_pool_test.loc[~(em_now_zt_pool_test['symbol'].isin(ths_zt_pool_df['symbol']))]
|
|
374
438
|
pass
|
|
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
|
{mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/em/real_time/east_money_debt_api.py
RENAMED
|
File without changes
|
|
File without changes
|
{mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/em/real_time/east_money_stock_a_api.py
RENAMED
|
File without changes
|
{mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/em/real_time/east_money_stock_a_v2_api.py
RENAMED
|
File without changes
|
{mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/em/real_time/east_money_stock_hk_api.py
RENAMED
|
File without changes
|
{mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/em/real_time/east_money_stock_us_api.py
RENAMED
|
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
|
{mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/kpl/common/kpl_common_field_constant.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/kpl/selection/kpl_selection_plate_api.py
RENAMED
|
File without changes
|
|
File without changes
|
{mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/kpl/symbol/kpl_real_time_quotes_api.py
RENAMED
|
File without changes
|
|
File without changes
|
{mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/kpl/symbol/symbol_his_quotes_api.py
RENAMED
|
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
|
{mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/ths/company/ths_company_announce_api.py
RENAMED
|
File without changes
|
{mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/ths/company/ths_company_info_api.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/ths/concept/app/ths_concept_detail_app.py
RENAMED
|
File without changes
|
{mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/ths/concept/app/ths_concept_index_app.py
RENAMED
|
File without changes
|
|
File without changes
|
{mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/ths/concept/web/ths_common_js_api.py
RENAMED
|
File without changes
|
{mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/ths/concept/web/ths_company_info_web.py
RENAMED
|
File without changes
|
{mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/ths/concept/web/ths_concept_detail_web.py
RENAMED
|
File without changes
|
{mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/ths/concept/web/ths_concept_index_web.py
RENAMED
|
File without changes
|
|
File without changes
|
{mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/api/ths/self_choose/ths_self_choose_api.py
RENAMED
|
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
|
{mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/classify/symbol_classify_api.py
RENAMED
|
File without changes
|
{mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/classify/symbol_classify_param.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/company/company_common_service_api.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/cookie/cookie_info_service.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/em/em_real_time_quotes_api.py
RENAMED
|
File without changes
|
|
File without changes
|
{mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/exception/ExceptionMonitor.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/industry/ths_industry_index_api.py
RENAMED
|
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
|
{mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/k_line/patterns/pattern_Enum.py
RENAMED
|
File without changes
|
|
File without changes
|
{mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/price/trade_price_service_api.py
RENAMED
|
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
|
{mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/self_choose/black_list_service_api.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_common-1.5.1.0 → mns_common-1.5.1.2}/mns_common/component/task/real_time_data_sync_check.py
RENAMED
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|