mns-common 1.5.1.0__tar.gz → 1.5.1.1__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.

Files changed (168) hide show
  1. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/PKG-INFO +1 -1
  2. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/akshare/stock_zt_pool_api.py +1 -1
  3. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/ths/zt/ths_stock_zt_pool_v2_api.py +93 -29
  4. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common.egg-info/PKG-INFO +1 -1
  5. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/setup.py +1 -1
  6. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/README.md +0 -0
  7. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/__init__.py +0 -0
  8. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/__init__.py +0 -0
  9. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/akshare/__init__.py +0 -0
  10. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/akshare/k_line_api.py +0 -0
  11. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/akshare/stock_bid_ask_api.py +0 -0
  12. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/akshare/stock_dt_pool.py +0 -0
  13. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/akshare/stock_zb_pool.py +0 -0
  14. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/akshare/yjyg_sync_api.py +0 -0
  15. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/em/__init__.py +0 -0
  16. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/em/concept/__init__.py +0 -0
  17. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/em/concept/em_concept_index_api.py +0 -0
  18. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/em/gd/__init__.py +0 -0
  19. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/em/gd/east_money_stock_gdfx_free_top_10_api.py +0 -0
  20. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/em/real_time/__init__.py +0 -0
  21. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/em/real_time/east_money_debt_api.py +0 -0
  22. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/em/real_time/east_money_etf_api.py +0 -0
  23. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/em/real_time/east_money_stock_a_api.py +0 -0
  24. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/em/real_time/east_money_stock_a_v2_api.py +0 -0
  25. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/em/real_time/east_money_stock_hk_api.py +0 -0
  26. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/em/real_time/east_money_stock_us_api.py +0 -0
  27. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/hk/__init__.py +0 -0
  28. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/hk/ths_hk_company_info_api.py +0 -0
  29. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/k_line/__init__.py +0 -0
  30. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/k_line/stock_k_line_data_api.py +0 -0
  31. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/k_line/stock_minute_data_api.py +0 -0
  32. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/kpl/__init__.py +0 -0
  33. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/kpl/common/__init__.py +0 -0
  34. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/kpl/common/kpl_common_api.py +0 -0
  35. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/kpl/common/kpl_common_field_constant.py +0 -0
  36. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/kpl/concept/__init__.py +0 -0
  37. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/kpl/concept/kpl_concept_api.py +0 -0
  38. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/kpl/constant/__init__.py +0 -0
  39. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/kpl/constant/kpl_constant.py +0 -0
  40. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/kpl/industry/__init__.py +0 -0
  41. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/kpl/industry/kpl_industry_api.py +0 -0
  42. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/kpl/selection/__init__.py +0 -0
  43. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/kpl/selection/kpl_selection_plate_api.py +0 -0
  44. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/kpl/symbol/__init__.py +0 -0
  45. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/kpl/symbol/kpl_real_time_quotes_api.py +0 -0
  46. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/kpl/symbol/kpl_symbol_common_field_constant.py +0 -0
  47. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/kpl/symbol/symbol_his_quotes_api.py +0 -0
  48. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/msg/__init__.py +0 -0
  49. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/msg/push_msg_api.py +0 -0
  50. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/proxies/__init__.py +0 -0
  51. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/proxies/liu_guan_proxy_api.py +0 -0
  52. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/qmt/__init__.py +0 -0
  53. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/qmt/qmt_minunte_tick_data.py +0 -0
  54. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/ths/__init__.py +0 -0
  55. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/ths/big_deal/__init__.py +0 -0
  56. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/ths/big_deal/ths_big_deal_api.py +0 -0
  57. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/ths/company/__init__.py +0 -0
  58. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/ths/company/company_product_area_industry_index_query.py +0 -0
  59. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/ths/company/ths_company_announce_api.py +0 -0
  60. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/ths/company/ths_company_info_api.py +0 -0
  61. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/ths/concept/__init__.py +0 -0
  62. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/ths/concept/app/__init__.py +0 -0
  63. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/ths/concept/app/ths_concept_detail_app.py +0 -0
  64. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/ths/concept/app/ths_concept_index_app.py +0 -0
  65. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/ths/concept/web/__init__.py +0 -0
  66. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/ths/concept/web/ths_common_js_api.py +0 -0
  67. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/ths/concept/web/ths_company_info_web.py +0 -0
  68. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/ths/concept/web/ths_concept_detail_web.py +0 -0
  69. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/ths/concept/web/ths_concept_index_web.py +0 -0
  70. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/ths/self_choose/__init__.py +0 -0
  71. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/ths/self_choose/ths_self_choose_api.py +0 -0
  72. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/ths/wen_cai/__init__.py +0 -0
  73. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/ths/wen_cai/ths_wen_cai_api.py +0 -0
  74. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/ths/zt/__init__.py +0 -0
  75. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/ths/zt/ths_stock_zt_pool_api.py +0 -0
  76. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/us/__init__.py +0 -0
  77. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/us/ths_us_company_info_api.py +0 -0
  78. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/xueqiu/__init__.py +0 -0
  79. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/api/xueqiu/xue_qiu_k_line_api.py +0 -0
  80. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/__init__.py +0 -0
  81. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/cache/__init__.py +0 -0
  82. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/cache/cache_service.py +0 -0
  83. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/classify/__init__.py +0 -0
  84. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/classify/symbol_classify_api.py +0 -0
  85. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/classify/symbol_classify_param.py +0 -0
  86. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/common_service_fun_api.py +0 -0
  87. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/company/__init__.py +0 -0
  88. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/company/company_common_service_api.py +0 -0
  89. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/company/company_common_service_new_api.py +0 -0
  90. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/concept/__init__.py +0 -0
  91. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/concept/kpl_concept_common_service_api.py +0 -0
  92. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/concept/ths_concept_common_service_api.py +0 -0
  93. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/cookie/__init__.py +0 -0
  94. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/cookie/cookie_enum.py +0 -0
  95. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/cookie/cookie_info_service.py +0 -0
  96. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/data/__init__.py +0 -0
  97. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/data/data_init_api.py +0 -0
  98. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/deal/__init__.py +0 -0
  99. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/deal/deal_service_api.py +0 -0
  100. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/deal/deal_service_v2_api.py +0 -0
  101. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/deal/terminal_enum.py +0 -0
  102. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/em/__init__.py +0 -0
  103. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/em/em_real_time_quotes_api.py +0 -0
  104. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/em/em_stock_info_api.py +0 -0
  105. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/exception/ExceptionMonitor.py +0 -0
  106. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/exception/__init__.py +0 -0
  107. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/hk/__init__.py +0 -0
  108. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/hk/company_hk_service_api.py +0 -0
  109. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/industry/__init__.py +0 -0
  110. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/industry/ths_industry_index_api.py +0 -0
  111. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/k_line/__init__.py +0 -0
  112. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/k_line/clean/__init__.py +0 -0
  113. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/k_line/clean/k_line_param.py +0 -0
  114. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/k_line/clean/sh_small_normal_zt_k_line_check_api.py +0 -0
  115. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/k_line/common/__init__.py +0 -0
  116. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/k_line/common/k_line_common_service_api.py +0 -0
  117. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/k_line/patterns/__init__.py +0 -0
  118. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/k_line/patterns/k_line_patterns_service_api.py +0 -0
  119. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/k_line/patterns/pattern_Enum.py +0 -0
  120. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/price/__init__.py +0 -0
  121. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/price/trade_price_service_api.py +0 -0
  122. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/proxies/__init__.py +0 -0
  123. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/proxies/proxy_common_api.py +0 -0
  124. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/qmt/__init__.py +0 -0
  125. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/qmt/qmt_buy_service.py +0 -0
  126. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/real_time/__init__.py +0 -0
  127. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/real_time/real_time_common_service_api.py +0 -0
  128. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/redis_msg/__init__.py +0 -0
  129. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/redis_msg/redis_msg_publish_service.py +0 -0
  130. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/self_choose/__init__.py +0 -0
  131. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/self_choose/black_list_service_api.py +0 -0
  132. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/self_choose/self_choose_service_api.py +0 -0
  133. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/task/__init__.py +0 -0
  134. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/task/real_time_data_sync_check.py +0 -0
  135. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/tfp/__init__.py +0 -0
  136. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/tfp/stock_tfp_api.py +0 -0
  137. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/trade_date/__init__.py +0 -0
  138. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/trade_date/trade_date_common_service_api.py +0 -0
  139. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/us/__init__.py +0 -0
  140. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/us/us_stock_etf_info_api.py +0 -0
  141. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/zt/__init__.py +0 -0
  142. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/component/zt/zt_common_service_api.py +0 -0
  143. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/constant/__init__.py +0 -0
  144. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/constant/black_list_classify_enum.py +0 -0
  145. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/constant/db_name_constant.py +0 -0
  146. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/constant/east_money_stock_api.py +0 -0
  147. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/constant/extra_income_db_name.py +0 -0
  148. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/constant/price_enum.py +0 -0
  149. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/constant/redis_msg_constant.py +0 -0
  150. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/constant/self_choose_constant.py +0 -0
  151. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/constant/strategy_classify.py +0 -0
  152. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/db/MongodbUtil.py +0 -0
  153. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/db/MongodbUtilLocal.py +0 -0
  154. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/db/__init__.py +0 -0
  155. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/db/v2/MongodbUtilV2.py +0 -0
  156. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/db/v2/__init__.py +0 -0
  157. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/utils/__init__.py +0 -0
  158. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/utils/async_fun.py +0 -0
  159. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/utils/cmd_util.py +0 -0
  160. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/utils/data_frame_util.py +0 -0
  161. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/utils/date_handle_util.py +0 -0
  162. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/utils/db_util.py +0 -0
  163. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/utils/file_util.py +0 -0
  164. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common/utils/ip_util.py +0 -0
  165. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common.egg-info/SOURCES.txt +0 -0
  166. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common.egg-info/dependency_links.txt +0 -0
  167. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/mns_common.egg-info/top_level.txt +0 -0
  168. {mns_common-1.5.1.0 → mns_common-1.5.1.1}/setup.cfg +0 -0
@@ -1,3 +1,3 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mns_common
3
- Version: 1.5.1.0
3
+ Version: 1.5.1.1
@@ -43,5 +43,5 @@ def stock_em_zt_pool_df(date):
43
43
 
44
44
 
45
45
  if __name__ == '__main__':
46
- df = stock_em_zt_pool_df('2024-09-04')
46
+ df = stock_em_zt_pool_df('2025-10-24')
47
47
  print(df)
@@ -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[real_time_df['chg'] > common_service_fun_api.ZT_CHG]
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
- em_now_zt_pool = stock_zt_pool_api.stock_em_zt_pool_df(date_handle_util.no_slash_date(str_day))
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
- real_time_zt_df_high_chg = real_time_zt_df
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
- em_now_zt_pool = em_now_zt_pool[
209
- ['symbol', 'connected_boards_numbers',
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
- em_now_zt_pool = em_now_zt_pool.set_index(['symbol'], drop=True)
214
- real_time_zt_df_wei_bi_100 = real_time_zt_df_wei_bi_100.set_index(['symbol'], drop=False)
215
- real_time_zt_df_wei_bi_100 = pd.merge(real_time_zt_df_wei_bi_100, em_now_zt_pool, how='outer',
216
- left_index=True, right_index=True)
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
- last_trade_zt_copy = last_trade_zt_copy[['symbol', 'zt_reason']]
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'] = '暂无'
@@ -292,6 +347,16 @@ def merge_zt_reason(now_zt_pool_df, str_day, last_trade_zt):
292
347
  result_zt_df = pd.merge(now_zt_pool_df, zt_reason_df_copy, how='outer',
293
348
  left_index=True, right_index=True)
294
349
 
350
+ now_zt_pool_df['main_line'] = ''
351
+ if data_frame_util.is_not_empty(now_continue_zt):
352
+ now_continue_zt = now_continue_zt[['symbol', 'main_line']]
353
+
354
+ # 创建一个 symbol 到 main_line 的映射
355
+ main_line_mapping = now_continue_zt.set_index('symbol')['main_line'].to_dict()
356
+
357
+ # 使用 map 更新 main_line 列
358
+ now_zt_pool_df['main_line'] = now_zt_pool_df['symbol'].map(main_line_mapping).fillna("")
359
+
295
360
  # 找出 'symbol' 列中为 NaN 值的数据
296
361
  zt_reason_na = result_zt_df[result_zt_df['zt_reason'].isna()]
297
362
  zt_reason_not_na = result_zt_df[result_zt_df['zt_reason'].notna()]
@@ -363,12 +428,11 @@ def zt_reason_group(zt_pool_df):
363
428
 
364
429
 
365
430
  if __name__ == '__main__':
366
- str_day_test = '2024-10-09'
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
@@ -1,3 +1,3 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mns-common
3
- Version: 1.5.1.0
3
+ Version: 1.5.1.1
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
2
2
 
3
3
  setup(
4
4
  name='mns_common',
5
- version='1.5.1.0',
5
+ version='1.5.1.1',
6
6
  # packages=["mns_common", "mns_common.api",
7
7
  # "mns_common.api.akshare",
8
8
  # "mns_common.api.em",
File without changes
File without changes