mns-scheduler 1.1.1.1__tar.gz → 1.1.1.4__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-scheduler might be problematic. Click here for more details.

Files changed (138) hide show
  1. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/PKG-INFO +1 -1
  2. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/concept/common/detaill/ths_concept_detail_api.py +3 -2
  3. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/concept/ths/common/ths_concept_sync_common_api.py +38 -14
  4. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/concept/ths/update_concept_info/sync_one_concept_all_symbols_api.py +1 -1
  5. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/concept/ths/update_concept_info/sync_one_symbol_all_concepts_api.py +1 -1
  6. mns-scheduler-1.1.1.4/mns_scheduler/db/__init__.py +10 -0
  7. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/db/col_move_service.py +1 -2
  8. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/db/db_status.py +1 -1
  9. mns-scheduler-1.1.1.4/mns_scheduler/db/real_time_task_check.py +79 -0
  10. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/k_line/sync/daily_week_month_line_sync.py +1 -0
  11. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/open/sync_one_day_open_data_to_db_service.py +5 -20
  12. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/real_time/realtime_quotes_now_create_db_index.py +4 -2
  13. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/trade/auto_ipo_buy_api.py +2 -2
  14. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/trade/auto_sell_service_api.py +6 -4
  15. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/trade/sync_position_api.py +2 -2
  16. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/zt/high_chg/sync_high_chg_pool_service.py +0 -1
  17. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/zt/high_chg/sync_high_chg_real_time_quotes_service.py +8 -5
  18. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/zt/open_data/kcx_high_chg_open_data_sync.py +8 -24
  19. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/zt/script/kcx_high_chg_open_his_data_handle.py +1 -1
  20. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/zt/zt_pool/em_zt_pool_sync_api.py +1 -1
  21. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/zt/zt_pool/ths_zt_pool_sync_api.py +27 -13
  22. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/zz_task/data_sync_task.py +11 -1
  23. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler.egg-info/PKG-INFO +1 -1
  24. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler.egg-info/SOURCES.txt +1 -0
  25. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/setup.py +1 -1
  26. mns-scheduler-1.1.1.1/mns_scheduler/zz_task/__init__.py +0 -7
  27. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/README.md +0 -0
  28. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/__init__.py +0 -0
  29. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/backup/__init__.py +0 -0
  30. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/backup/em/__init__.py +0 -0
  31. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/backup/em/em_new_concept_his_sync.py +0 -0
  32. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/backup/em/em_new_concept_sync_common_api.py +0 -0
  33. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/backup/em/em_new_concept_sync_web.py +0 -0
  34. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/backup/ths/__init__.py +0 -0
  35. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/backup/ths/sync_ths_concept_by_ak_api.py +0 -0
  36. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/backup/ths/sync_ths_new_concept_by_web_api.py +0 -0
  37. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/big_deal/__init__.py +0 -0
  38. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/big_deal/ths_big_deal_sync.py +0 -0
  39. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/company_info/__init__.py +0 -0
  40. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/company_info/base/__init__.py +0 -0
  41. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/company_info/base/sync_company_base_info_api.py +0 -0
  42. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/company_info/clean/__init__.py +0 -0
  43. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/company_info/clean/company_info_clean_api.py +0 -0
  44. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/company_info/constant/__init__.py +0 -0
  45. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/company_info/constant/company_constant_data.py +0 -0
  46. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/company_info/de_list_stock/__init__.py +0 -0
  47. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/company_info/de_list_stock/de_list_stock_service.py +0 -0
  48. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/concept/__init__.py +0 -0
  49. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/concept/clean/__init__.py +0 -0
  50. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/concept/clean/kpl_concept_clean_api.py +0 -0
  51. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/concept/clean/ths_concept_clean_api.py +0 -0
  52. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/concept/common/__init__.py +0 -0
  53. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/concept/common/detaill/__init__.py +0 -0
  54. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/concept/ths/__init__.py +0 -0
  55. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/concept/ths/common/__init__.py +0 -0
  56. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/concept/ths/common/ths_concept_update_common_api.py +0 -0
  57. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/concept/ths/sync_new_index/__init__.py +0 -0
  58. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/concept/ths/sync_new_index/sync_ths_concept_new_index_api.py +0 -0
  59. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/concept/ths/update_concept_info/__init__.py +0 -0
  60. {mns-scheduler-1.1.1.1/mns_scheduler/db → mns-scheduler-1.1.1.4/mns_scheduler/dt}/__init__.py +0 -0
  61. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/dt/stock_dt_pool_sync.py +0 -0
  62. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/finance/__init__.py +0 -0
  63. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/finance/em_financial_asset_liability_sync_service_api.py +0 -0
  64. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/finance/em_financial_profit_sync_service_api.py +0 -0
  65. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/finance/finance_common_api.py +0 -0
  66. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/finance/sync_financial_report_service_api.py +0 -0
  67. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/hk/__init__.py +0 -0
  68. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/hk/hk_company_info_sync_service_api.py +0 -0
  69. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/irm/__init__.py +0 -0
  70. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/irm/api/__init__.py +0 -0
  71. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/irm/api/sh_stock_sns_sse_info_api.py +0 -0
  72. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/irm/api/sz_stock_sns_sse_info_api.py +0 -0
  73. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/irm/stock_irm_cninfo_service.py +0 -0
  74. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/k_line/__init__.py +0 -0
  75. {mns-scheduler-1.1.1.1/mns_scheduler/dt → mns-scheduler-1.1.1.4/mns_scheduler/k_line/clean}/__init__.py +0 -0
  76. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/k_line/clean/daily/__init__.py +0 -0
  77. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/k_line/clean/daily/daily_k_line_clean_common_service.py +0 -0
  78. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/k_line/clean/daily/daily_k_line_service.py +0 -0
  79. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/k_line/clean/k_line_info_clean_impl.py +0 -0
  80. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/k_line/clean/k_line_info_clean_task.py +0 -0
  81. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/k_line/clean/week_month/__init__.py +0 -0
  82. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/k_line/clean/week_month/normal_week_month_k_line_service.py +0 -0
  83. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/k_line/clean/week_month/sub_new_week_month_k_line_service.py +0 -0
  84. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/k_line/hot_stocks/__init__.py +0 -0
  85. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/k_line/hot_stocks/recent_hot_stocks_clean_service.py +0 -0
  86. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/k_line/sync/__init__.py +0 -0
  87. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/k_line/sync/bfq_k_line_sync.py +0 -0
  88. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/k_line/test/__init__.py +0 -0
  89. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/k_line/test/k_line_info_clean_his_data.py +0 -0
  90. {mns-scheduler-1.1.1.1/mns_scheduler/k_line/clean → mns-scheduler-1.1.1.4/mns_scheduler/kpl}/__init__.py +0 -0
  91. {mns-scheduler-1.1.1.1/mns_scheduler/kpl → mns-scheduler-1.1.1.4/mns_scheduler/kpl/selection}/__init__.py +0 -0
  92. {mns-scheduler-1.1.1.1/mns_scheduler/kpl/selection → mns-scheduler-1.1.1.4/mns_scheduler/kpl/selection/index}/__init__.py +0 -0
  93. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/kpl/selection/index/sync_best_choose_his_index.py +0 -0
  94. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/kpl/selection/index/sync_best_choose_index.py +0 -0
  95. {mns-scheduler-1.1.1.1/mns_scheduler/kpl/selection/index → mns-scheduler-1.1.1.4/mns_scheduler/kpl/selection/symbol}/__init__.py +0 -0
  96. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/kpl/selection/symbol/sync_best_choose_symbol.py +0 -0
  97. {mns-scheduler-1.1.1.1/mns_scheduler/kpl/selection/symbol → mns-scheduler-1.1.1.4/mns_scheduler/kpl/selection/total}/__init__.py +0 -0
  98. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/kpl/selection/total/sync_kpl_best_total_sync_api.py +0 -0
  99. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/lhb/__init__.py +0 -0
  100. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/lhb/stock_lhb_sync_service.py +0 -0
  101. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/open/__init__.py +0 -0
  102. {mns-scheduler-1.1.1.1/mns_scheduler/kpl/selection/total → mns-scheduler-1.1.1.4/mns_scheduler/real_time}/__init__.py +0 -0
  103. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/real_time/realtime_quotes_now_sync.py +0 -0
  104. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/risk/__init__.py +0 -0
  105. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/risk/compliance/__init__.py +0 -0
  106. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/risk/compliance/undisclosed_annual_report_api.py +0 -0
  107. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/risk/financial/__init__.py +0 -0
  108. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/risk/financial/annual_report_audit_check_api.py +0 -0
  109. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/risk/financial/net_assets_check_api.py +0 -0
  110. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/risk/financial/profit_income_check_api.py +0 -0
  111. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/risk/financial/stock_equity_mortgage_check_api.py +0 -0
  112. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/risk/financial_report_risk_check_api.py +0 -0
  113. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/risk/major_violations/__init__.py +0 -0
  114. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/risk/major_violations/register_and_investigate_stock_sync_api.py +0 -0
  115. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/risk/self/__init__.py +0 -0
  116. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/risk/self/wei_pan_stock_api.py +0 -0
  117. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/risk/test/__init__.py +0 -0
  118. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/risk/test/fix_blask_list.py +0 -0
  119. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/risk/transactions/__init__.py +0 -0
  120. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/risk/transactions/transactions_check_api.py +0 -0
  121. {mns-scheduler-1.1.1.1/mns_scheduler/real_time → mns-scheduler-1.1.1.4/mns_scheduler/trade}/__init__.py +0 -0
  122. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/zb/__init__.py +0 -0
  123. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/zb/stock_zb_pool_sync.py +0 -0
  124. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/zt/__init__.py +0 -0
  125. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/zt/connected_boards/__init__.py +0 -0
  126. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/zt/connected_boards/zt_five_boards_sync_api.py +0 -0
  127. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/zt/export/__init__.py +0 -0
  128. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/zt/export/export_kcx_high_chg_open_data_to_excel.py +0 -0
  129. {mns-scheduler-1.1.1.1/mns_scheduler/trade → mns-scheduler-1.1.1.4/mns_scheduler/zt/high_chg}/__init__.py +0 -0
  130. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/zt/open_data/__init__.py +0 -0
  131. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/zt/script/__init__.py +0 -0
  132. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/zt/script/sync_high_chg_pool_his_data.py +0 -0
  133. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/zt/zt_pool/__init__.py +0 -0
  134. {mns-scheduler-1.1.1.1/mns_scheduler/zt/high_chg → mns-scheduler-1.1.1.4/mns_scheduler/zz_task}/__init__.py +0 -0
  135. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler/zz_task/sync_realtime_quotes_task.py +0 -0
  136. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler.egg-info/dependency_links.txt +0 -0
  137. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/mns_scheduler.egg-info/top_level.txt +0 -0
  138. {mns-scheduler-1.1.1.1 → mns-scheduler-1.1.1.4}/setup.cfg +0 -0
@@ -1,3 +1,3 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mns-scheduler
3
- Version: 1.1.1.1
3
+ Version: 1.1.1.4
@@ -189,8 +189,9 @@ def merge_data_common_fun(result_df, real_time_quotes_all_stocks):
189
189
 
190
190
 
191
191
  if __name__ == '__main__':
192
- get_ths_concept_detail('886073', '铜缆高速连接')
192
+
193
193
  real_time_quotes_all_stocks_df = east_money_stock_api.get_real_time_quotes_all_stocks()
194
- get_ths_concept_detail_from_web('886072', real_time_quotes_all_stocks_df)
195
194
  get_ths_concept_detail_by_explain('886078', real_time_quotes_all_stocks_df)
195
+ get_ths_concept_detail_from_web('886078', real_time_quotes_all_stocks_df)
196
+ get_ths_concept_detail('886073', '铜缆高速连接')
196
197
  get_ths_concept_detail_by_wen_cai('PCB概念', real_time_quotes_all_stocks_df)
@@ -14,6 +14,10 @@ import mns_common.api.msg.push_msg_api as push_msg_api
14
14
  import mns_scheduler.company_info.base.sync_company_base_info_api as company_info_sync_api
15
15
  import mns_scheduler.company_info.clean.company_info_clean_api as company_info_clean_api
16
16
  import mns_scheduler.concept.common.detaill.ths_concept_detail_api as ths_concept_detail_api
17
+ import mns_common.component.concept.ths_concept_common_service_api as ths_concept_common_service_api
18
+ import mns_common.component.company.company_common_service_new_api as company_common_service_new_api
19
+ import mns_common.utils.data_frame_util as data_frame_util
20
+ import mns_common.constant.db_name_constant as db_name_constant
17
21
 
18
22
  max_concept_code = 886110
19
23
 
@@ -70,12 +74,13 @@ def save_ths_concept_detail(new_concept_symbol_df,
70
74
 
71
75
  new_concept_symbol_df['concept_name'] = new_concept_symbol_df['concept_name'].replace(" ", "")
72
76
 
73
- query_ths_concept = {'symbol': concept_code}
74
- ths_concept_list = mongodb_util.find_query_data('ths_concept_list', query_ths_concept)
75
- if ths_concept_list.shape[0] == 0:
77
+ all_ths_concept_df = ths_concept_common_service_api.get_all_ths_concept()
78
+ ths_concept_one_df = all_ths_concept_df.loc[all_ths_concept_df['symbol'] == int(concept_code)]
79
+
80
+ if data_frame_util.is_empty(ths_concept_one_df):
76
81
  concept_create_day = str_day
77
82
  else:
78
- concept_create_day = list(ths_concept_list['str_day'])[0]
83
+ concept_create_day = list(ths_concept_one_df['str_day'])[0]
79
84
 
80
85
  new_concept_symbol_df['str_day'] = str_day
81
86
  new_concept_symbol_df['str_now_time'] = str_now_time
@@ -84,24 +89,42 @@ def save_ths_concept_detail(new_concept_symbol_df,
84
89
  new_concept_symbol_list = list(new_concept_symbol_df['symbol'])
85
90
 
86
91
  query_company_info = {'symbol': {'$in': new_concept_symbol_list}}
92
+ query_company_info_key = str(query_company_info)
87
93
  query_field = {"first_industry": 1, "first_industry": 1, "industry": 1,
88
94
  "company_type": 1, "flow_mv_sp": 1,
89
95
  "total_mv_sp": 1}
90
- company_info = mongodb_util.find_query_data_choose_field('company_info',
91
- query_company_info, query_field)
96
+ query_field_key = str(query_field)
97
+ company_info = company_common_service_new_api.get_company_info_by_field(query_company_info_key, query_field_key)
98
+
99
+ if 'industry' in new_concept_symbol_df.columns:
100
+ del new_concept_symbol_df['industry']
101
+ if 'company_type' in new_concept_symbol_df.columns:
102
+ del new_concept_symbol_df['company_type']
103
+ if 'flow_mv_sp' in new_concept_symbol_df.columns:
104
+ del new_concept_symbol_df['flow_mv_sp']
105
+ if 'total_mv_sp' in new_concept_symbol_df.columns:
106
+ del new_concept_symbol_df['total_mv_sp']
92
107
 
93
108
  company_info = company_info.set_index(['_id'], drop=True)
94
109
  new_concept_symbol_df = new_concept_symbol_df.set_index(['symbol'], drop=False)
95
110
 
96
111
  new_concept_symbol_df = pd.merge(new_concept_symbol_df, company_info, how='outer',
97
112
  left_index=True, right_index=True)
113
+
114
+ if 'index' not in company_info.columns:
115
+ new_concept_symbol_df['index'] = 0
116
+
117
+ if 'change' not in company_info.columns:
118
+ new_concept_symbol_df['change'] = 0
119
+
98
120
  new_concept_symbol_df['concept_name'] = new_concept_symbol_df['concept_name'].replace(" ", "")
99
- query = {'concept_code': concept_code}
100
121
 
101
122
  if bool(1 - ('way' in new_concept_symbol_df.columns)):
102
123
  new_concept_symbol_df['way'] = 'symbol_sync'
103
124
  if "long" not in new_concept_symbol_df.columns:
104
125
  new_concept_symbol_df['long'] = ''
126
+ if "short" not in new_concept_symbol_df.columns:
127
+ new_concept_symbol_df['short'] = new_concept_symbol_df['long']
105
128
  new_concept_symbol_df = new_concept_symbol_df[[
106
129
  "_id",
107
130
  "index",
@@ -122,24 +145,25 @@ def save_ths_concept_detail(new_concept_symbol_df,
122
145
  "company_type",
123
146
  "concept_create_day",
124
147
  "way",
125
- "long"
148
+ "long",
149
+ 'short'
126
150
  ]]
127
-
128
- exist_concept_detail = mongodb_util.find_query_data('ths_stock_concept_detail', query)
151
+ query_detail = {"concept_code": int(concept_code)}
152
+ exist_concept_detail = mongodb_util.find_query_data(db_name_constant.THS_STOCK_CONCEPT_DETAIL, query_detail)
129
153
  if exist_concept_detail is None or exist_concept_detail.shape[0] == 0:
130
- mongodb_util.save_mongo(new_concept_symbol_df, 'ths_stock_concept_detail')
154
+ mongodb_util.save_mongo(new_concept_symbol_df, db_name_constant.THS_STOCK_CONCEPT_DETAIL)
131
155
  # 保存到当日新增概念列表
132
156
  new_concept_symbol_df['concept_type'] = 'ths'
133
- mongodb_util.save_mongo(new_concept_symbol_df, 'today_new_concept_list')
157
+ mongodb_util.save_mongo(new_concept_symbol_df, db_name_constant.TODAY_NEW_CONCEPT_LIST)
134
158
  else:
135
159
  exist_concept_detail_symbol_list = list(exist_concept_detail['symbol'])
136
160
  new_concept_symbol_df = new_concept_symbol_df.loc[~(
137
161
  new_concept_symbol_df['symbol'].isin(exist_concept_detail_symbol_list))]
138
162
  if new_concept_symbol_df.shape[0] > 0:
139
- mongodb_util.save_mongo(new_concept_symbol_df, 'ths_stock_concept_detail')
163
+ mongodb_util.save_mongo(new_concept_symbol_df, db_name_constant.THS_STOCK_CONCEPT_DETAIL)
140
164
  # 保存到当日新增概念列表
141
165
  new_concept_symbol_df['concept_type'] = 'ths'
142
- mongodb_util.save_mongo(new_concept_symbol_df, 'today_new_concept_list')
166
+ mongodb_util.save_mongo(new_concept_symbol_df, db_name_constant.TODAY_NEW_CONCEPT_LIST)
143
167
  update_company_info(new_concept_symbol_df)
144
168
  # 公司缓存信息清除
145
169
  company_common_service_api.company_info_industry_cache_clear()
@@ -41,7 +41,7 @@ if __name__ == '__main__':
41
41
  now_date = datetime.datetime.now()
42
42
  begin_date = now_date.strftime('%Y-%m-%d %H:%M:%S')
43
43
  print('同步开始:' + begin_date)
44
- update_concept_all_symbol_detail()
44
+ update_concept_all_detail_info()
45
45
  now_date = datetime.datetime.now()
46
46
  end_date = now_date.strftime('%Y-%m-%d %H:%M:%S')
47
47
  print('同步结束:' + end_date)
@@ -178,4 +178,4 @@ def sync_symbol_all_concept(symbol):
178
178
 
179
179
 
180
180
  if __name__ == '__main__':
181
- sync_symbol_all_concept(None)
181
+ sync_symbol_all_concept('301218')
@@ -0,0 +1,10 @@
1
+ import sys
2
+ import os
3
+
4
+ file_path = os.path.abspath(__file__)
5
+ end = file_path.index('mns') + 17
6
+ project_path = file_path[0:end]
7
+ sys.path.append(project_path)
8
+ import os
9
+
10
+ os.system("exit")
@@ -112,5 +112,4 @@ if __name__ == '__main__':
112
112
  # sync_col_move('2024-05-28')
113
113
  # sync_col_move('2024-05-30')
114
114
  # sync_col_move('2024-05-31')
115
- sync_col_move('2024-06-11')
116
- sync_col_move('2024-06-12')
115
+ sync_col_move('2024-06-21')
@@ -21,4 +21,4 @@ def db_status_check():
21
21
  ip = ip_util.get_host_ip()
22
22
  push_msg_api.push_msg_to_wechat("数据库挂了", "地址:" + ip + "-" + "数据库挂了")
23
23
  logger.error("出现异常:{}", e)
24
- return
24
+
@@ -0,0 +1,79 @@
1
+ import os
2
+ import sys
3
+
4
+ file_path = os.path.abspath(__file__)
5
+ end = file_path.index('mns') + 16
6
+ project_path = file_path[0:end]
7
+ sys.path.append(project_path)
8
+ import mns_common.constant.db_name_constant as db_name_constant
9
+ import mns_common.component.common_service_fun_api as common_service_fun_api
10
+ import mns_common.component.cache.cache_service as cache_service
11
+ import mns_common.utils.cmd_util as cmd_util
12
+ import mns_common.utils.data_frame_util as data_frame_util
13
+ from loguru import logger
14
+ from datetime import datetime
15
+ import mns_common.utils.date_handle_util as date_handle_util
16
+
17
+ MAX_NUMBER_KEY = 'max_number_key'
18
+ # 实时行情同步任务 python名称
19
+ REAL_TIME_SCHEDULER_NAME = "sync_realtime_quotes_task"
20
+ # 实时行情补偿任务 python名称
21
+ REAL_TIME_TASK_NAME = "realtime_quotes_now_sync"
22
+
23
+ REAL_TIME_SCHEDULER_NAME_PATH = 'H:\\real_time_task.bat'
24
+
25
+
26
+ def get_real_time_max_number():
27
+ number = common_service_fun_api.realtime_quotes_now_max_number(db_name_constant.REAL_TIME_QUOTES_NOW,
28
+ 'number')
29
+
30
+ return number
31
+
32
+
33
+ # 检查数据同步最大值
34
+ def check_max_number():
35
+ now_max_number = get_real_time_max_number()
36
+ last_minute_number = cache_service.get_cache(MAX_NUMBER_KEY)
37
+ if last_minute_number is None:
38
+ cache_service.set_cache(MAX_NUMBER_KEY, now_max_number)
39
+ return True
40
+ elif now_max_number == last_minute_number:
41
+ return False
42
+ else:
43
+ cache_service.set_cache(MAX_NUMBER_KEY, now_max_number)
44
+ return True
45
+
46
+
47
+ # 实时行情数据同步状态check
48
+ def run_check_real_time_data_sync_status():
49
+ now_date = datetime.now()
50
+ if date_handle_util.is_close_time(now_date):
51
+ return False
52
+ flag = check_max_number()
53
+ if bool(1 - flag):
54
+ all_cmd_processes = cmd_util.get_cmd_processes()
55
+ if data_frame_util.is_empty(all_cmd_processes):
56
+ return None
57
+ all_cmd_processes_real_time_task = get_real_time_quotes_task(all_cmd_processes)
58
+ if data_frame_util.is_empty(all_cmd_processes_real_time_task):
59
+ return None
60
+ for match_task_one in all_cmd_processes_real_time_task.itertuples():
61
+ try:
62
+ processes_pid = match_task_one.process_pid
63
+ # 关闭当前进程
64
+ cmd_util.kill_process_by_pid(processes_pid)
65
+ except BaseException as e:
66
+ logger.error("关闭实时行情任务异常:{}", e)
67
+ # 重开任务进程
68
+ cmd_util.open_bat_file(REAL_TIME_SCHEDULER_NAME_PATH)
69
+
70
+
71
+ def get_real_time_quotes_task(all_cmd_processes):
72
+ return all_cmd_processes[
73
+ (all_cmd_processes['total_info'].str.contains(REAL_TIME_SCHEDULER_NAME, case=False, na=False))
74
+ | (all_cmd_processes['total_info'].str.contains(REAL_TIME_TASK_NAME, case=False, na=False))]
75
+
76
+
77
+ if __name__ == '__main__':
78
+ while True:
79
+ run_check_real_time_data_sync_status()
@@ -106,6 +106,7 @@ def create_db_index(db_name):
106
106
 
107
107
  if __name__ == '__main__':
108
108
  sync_all_daily_data('daily', 'qfq', 'stock_qfq_daily', None, None)
109
+ sync_all_daily_data('daily', 'qfq', 'stock_qfq_weekly', None, None)
109
110
  # sync_all_daily_data('weekly', 'qfq', 'stock_qfq_weekly', None, None)
110
111
  # sync_all_daily_data('monthly', 'qfq', 'stock_qfq_monthly', None, None)
111
112
 
@@ -11,7 +11,7 @@ from loguru import logger
11
11
  from datetime import time
12
12
  from mns_common.db.MongodbUtil import MongodbUtil
13
13
  import mns_common.component.common_service_fun_api as common_service_fun_api
14
- import mns_common.component.company.company_common_service_api as company_common_service_api
14
+ import mns_common.component.company.company_common_service_new_api as company_common_service_new_api
15
15
  import mns_common.component.data.data_init_api as data_init_api
16
16
  import pandas as pd
17
17
  import mns_common.utils.db_util as db_util
@@ -51,12 +51,13 @@ def sync_one_day_open_data(str_day):
51
51
 
52
52
 
53
53
  def handle_init_real_time_quotes_data(real_time_quotes_now, str_now_date, number):
54
+ # fix industry
55
+ real_time_quotes_now = company_common_service_new_api.amend_ths_industry(real_time_quotes_now.copy())
54
56
  # exclude b symbol
55
57
  real_time_quotes_now = common_service_fun_api.exclude_b_symbol(real_time_quotes_now.copy())
56
58
  # classification symbol
57
59
  real_time_quotes_now = common_service_fun_api.classify_symbol(real_time_quotes_now.copy())
58
- # fix industry
59
- real_time_quotes_now = fix_industry_data(real_time_quotes_now.copy())
60
+
60
61
  # calculate parameter
61
62
  real_time_quotes_now = data_init_api.calculate_parameter_factor(real_time_quotes_now.copy())
62
63
 
@@ -66,21 +67,5 @@ def handle_init_real_time_quotes_data(real_time_quotes_now, str_now_date, number
66
67
  return real_time_quotes_now
67
68
 
68
69
 
69
- # fix 错杀数据 有成交量的数据
70
- def fix_industry_data(real_time_quotes_now):
71
- # fix industry
72
- real_time_quotes_now_r = company_common_service_api.amendment_industry(real_time_quotes_now.copy())
73
-
74
- symbol_list = list(real_time_quotes_now_r['symbol'])
75
-
76
- na_real_now = real_time_quotes_now.loc[
77
- ~(real_time_quotes_now['symbol'].isin(symbol_list))]
78
-
79
- na_real_now = na_real_now.loc[na_real_now['amount'] != 0]
80
-
81
- real_time_quotes_now_result = pd.concat([real_time_quotes_now_r, na_real_now], axis=0)
82
- return real_time_quotes_now_result
83
-
84
-
85
70
  if __name__ == '__main__':
86
- sync_one_day_open_data('2024-06-04')
71
+ sync_one_day_open_data('2024-06-21')
@@ -7,8 +7,10 @@ project_path = file_path[0:end]
7
7
  sys.path.append(project_path)
8
8
  from loguru import logger
9
9
  from mns_common.db.MongodbUtil import MongodbUtil
10
+
10
11
  mongodb_util = MongodbUtil('27017')
11
12
 
13
+
12
14
  def create_db_index(str_day):
13
15
  query_trade_day = {'_id': str_day}
14
16
  is_trade_day = mongodb_util.exist_data_query('trade_date_list', query_trade_day)
@@ -19,8 +21,8 @@ def create_db_index(str_day):
19
21
  mongodb_util.create_index('realtime_quotes_now_' + str_day, [("symbol", 1), ("number", 1)])
20
22
  mongodb_util.create_index('realtime_quotes_now_' + str_day, [("str_now_date", 1)])
21
23
  logger.info("创建索引成功:{}", str_day)
22
- except BaseException:
23
- logger.warning("创建索引异常:{}", )
24
+ except BaseException as e:
25
+ logger.warning("创建索引异常:{}", e)
24
26
 
25
27
 
26
28
  if __name__ == '__main__':
@@ -6,12 +6,12 @@ end = file_path.index('mns') + 17
6
6
  project_path = file_path[0:end]
7
7
  sys.path.append(project_path)
8
8
 
9
- import mns_common.component.trade.trade_service_api as trade_service_api
9
+ import mns_common.component.deal.deal_service_api as deal_service_api
10
10
 
11
11
 
12
12
  ## 自动一键打新
13
13
  def auto_ipo_buy():
14
- trade_service_api.auto_ipo_buy()
14
+ deal_service_api.auto_ipo_buy('easy_trader')
15
15
 
16
16
 
17
17
  if __name__ == '__main__':
@@ -11,11 +11,13 @@ import mns_common.constant.db_name_constant as db_name_constant
11
11
  import datetime
12
12
  import mns_common.component.cache.cache_service as cache_service
13
13
  from mns_common.db.MongodbUtil import MongodbUtil
14
- import mns_common.component.trade.trade_service_api as trade_service_api
14
+ import mns_common.component.deal.deal_service_api as deal_service_api
15
15
  from loguru import logger
16
16
  from mns_common.utils.async_fun import async_fun
17
+ import mns_common.component.price.trade_price_service_api as trade_price_service_api
17
18
 
18
19
  mongodb_util = MongodbUtil('27017')
20
+ from mns_common.constant.price_enum import PriceEnum
19
21
 
20
22
  AUTO_SELL_KEY = "AUTO_SELL_KEY"
21
23
 
@@ -51,11 +53,11 @@ def sell_stock_detail(realtime_quotes_now_position, position_stock_df, str_day,
51
53
  try:
52
54
 
53
55
  symbol = stock_one.symbol
54
- sell_price = trade_service_api.get_last_sell_price(symbol)
56
+ sell_price = trade_price_service_api.get_trade_price(symbol, PriceEnum.SEll_PRICE_LIMIT.price_code)
55
57
  position_stock_df_one = position_stock_df.loc[position_stock_df['symbol'] == symbol]
56
58
  available_position = list(position_stock_df_one['available_position'])[0]
57
59
  if sell_signal(stock_one, now_date, position_stock_df_one):
58
- sell_result = trade_service_api.order_sell(symbol, sell_price, available_position)
60
+ sell_result = deal_service_api.trade_sell(symbol, sell_price, available_position)
59
61
  if "message" in sell_result:
60
62
  result_msg = sell_result['message']
61
63
  if result_msg == 'success':
@@ -110,7 +112,7 @@ def update_position_status(symbol, sell_entrust_no, str_day):
110
112
  import mns_common.api.em.east_money_stock_api as east_money_stock_api
111
113
 
112
114
  if __name__ == '__main__':
113
- sell_price_01 = trade_service_api.get_last_sell_price('002336')
115
+ sell_price_01 = trade_price_service_api.get_trade_price('002336',PriceEnum.SEll_PRICE_LIMIT.price_code)
114
116
  while True:
115
117
  real_time_quotes_now = east_money_stock_api.get_real_time_quotes_all_stocks()
116
118
  auto_sell_stock(real_time_quotes_now)
@@ -5,7 +5,7 @@ file_path = os.path.abspath(__file__)
5
5
  end = file_path.index('mns') + 16
6
6
  project_path = file_path[0:end]
7
7
  sys.path.append(project_path)
8
- import mns_common.component.trade.trade_service_api as trade_service_api
8
+ import mns_common.component.deal.deal_service_api as deal_service_api
9
9
  import pandas as pd
10
10
  import mns_common.utils.data_frame_util as data_frame_util
11
11
  import mns_common.constant.db_name_constant as db_name_constant
@@ -23,7 +23,7 @@ def sync_position():
23
23
  query_exist = {'str_day': str_day}
24
24
  if mongodb_util.exist_data_query(db_name_constant.POSITION_STOCK, query_exist):
25
25
  return None
26
- position_list = trade_service_api.get_position()
26
+ position_list = deal_service_api.get_position('easy_trader')
27
27
  position_df = pd.DataFrame(position_list)
28
28
  position_df = position_df.rename(columns={"明细": "detail",
29
29
  "序号": "index",
@@ -294,4 +294,3 @@ def get_symbol_last_concept(symbol, str_day):
294
294
  return mongodb_util.descend_query(query, db_name_constant.THS_STOCK_CONCEPT_DETAIL, 'str_day', 1)
295
295
 
296
296
 
297
-
@@ -9,7 +9,7 @@ sys.path.append(project_path)
9
9
  from loguru import logger
10
10
  import mns_common.component.common_service_fun_api as common_service_fun_api
11
11
  import mns_common.utils.date_handle_util as date_handle_util
12
- import mns_common.component.company.company_common_service_api as company_common_service_api
12
+ import mns_common.component.company.company_common_service_new_api as company_common_service_new_api
13
13
  import mns_common.component.data.data_init_api as data_init_api
14
14
  from mns_common.db.MongodbUtil import MongodbUtil
15
15
  import mns_common.utils.db_util as db_util
@@ -73,7 +73,7 @@ choose_field = ["_id",
73
73
  def sync_high_chg_real_time_quotes(str_day):
74
74
  mongo = db_util.get_db(str_day)
75
75
 
76
- realtime_quotes_db_name = 'realtime_quotes_now_' + str_day
76
+ realtime_quotes_db_name = db_name_constant.REAL_TIME_QUOTES_NOW + "_" + str_day
77
77
  high_chg_list = get_high_chg_symbol(str_day)
78
78
  if high_chg_list is None or len(high_chg_list) == 0:
79
79
  return
@@ -84,9 +84,8 @@ def sync_high_chg_real_time_quotes(str_day):
84
84
  real_time_quotes_now_high_chg_all = mongo.find_query_data(realtime_quotes_db_name, query_all)
85
85
  if real_time_quotes_now_high_chg_all.shape[0] == 0:
86
86
  return
87
- real_time_quotes_now_high_chg_all = company_common_service_api.amendment_industry_exist_na(
88
- real_time_quotes_now_high_chg_all,
89
- high_chg_list)
87
+ real_time_quotes_now_high_chg_all = company_common_service_new_api.amend_ths_industry(
88
+ real_time_quotes_now_high_chg_all)
90
89
  real_time_quotes_now_high_chg_all.dropna(subset=['symbol'], axis=0,
91
90
  inplace=True)
92
91
  real_time_quotes_now_high_chg_all = data_init_api.calculate_parameter_factor(
@@ -139,3 +138,7 @@ def save_realtime_quotes_now_zt_data(realtime_quotes_now_zt, str_day, symbol):
139
138
  result = mongodb_util.remove_data(remove_query, db_name_constant.ZT_STOCK_REAL_TIME_QUOTES).acknowledged
140
139
  if result:
141
140
  mongodb_util.insert_mongo(realtime_quotes_now_zt, db_name_constant.ZT_STOCK_REAL_TIME_QUOTES)
141
+
142
+
143
+ if __name__ == '__main__':
144
+ sync_high_chg_real_time_quotes('2024-06-21')
@@ -10,7 +10,7 @@ import mns_common.utils.date_handle_util as date_handle_util
10
10
  from loguru import logger
11
11
 
12
12
  import mns_common.component.trade_date.trade_date_common_service_api as trade_date_common_service_api
13
- import mns_common.component.company.company_common_service_api as company_common_service_api
13
+ import mns_common.component.company.company_common_service_new_api as company_common_service_new_api
14
14
  import mns_common.component.common_service_fun_api as common_service_fun_api
15
15
  import mns_common.component.data.data_init_api as data_init_api
16
16
  import pandas as pd
@@ -62,21 +62,6 @@ realtime_quotes_now_zt_new_kc_open_field = ['_id',
62
62
  'real_disk_diff_amount_exchange', 'no_open_data']
63
63
 
64
64
 
65
- # fix 错杀数据 有成交量的数据
66
- def fix_industry_data(real_time_quotes_now):
67
- # fix industry
68
- real_time_quotes_now_r = company_common_service_api.amendment_industry(real_time_quotes_now.copy())
69
-
70
- symbol_list = list(real_time_quotes_now_r['symbol'])
71
-
72
- na_real_now = real_time_quotes_now.loc[
73
- ~(real_time_quotes_now['symbol'].isin(symbol_list))]
74
-
75
- na_real_now = na_real_now.loc[na_real_now['amount'] != 0]
76
-
77
- real_time_quotes_now_result = pd.concat([real_time_quotes_now_r, na_real_now], axis=0)
78
- return real_time_quotes_now_result
79
-
80
65
 
81
66
  def sync_all_kc_zt_data(str_day, symbols):
82
67
  if symbols is None:
@@ -92,11 +77,9 @@ def sync_all_kc_zt_data(str_day, symbols):
92
77
  logger.error("无k线数据:{}", symbols)
93
78
  return
94
79
 
95
- company_info = company_common_service_api.get_company_info_industry_list_date()
96
- company_info['symbol'] = company_info['_id']
97
- company_info = company_info.loc[company_info['_id'].isin(list(kc_stock_qfq_daily['symbol']))]
80
+ kc_stock_qfq_daily = company_common_service_new_api.amend_ths_industry(kc_stock_qfq_daily)
98
81
 
99
- for stock_one in company_info.itertuples():
82
+ for stock_one in kc_stock_qfq_daily.itertuples():
100
83
  try:
101
84
 
102
85
  kc_stock_qfq_daily.loc[
@@ -150,7 +133,9 @@ def sync_all_kc_zt_data(str_day, symbols):
150
133
  query_real_time = {'symbol': kc_one.symbol}
151
134
  db = db_util.get_db(str_day)
152
135
  realtime_quotes_now_kc = db.find_query_data(db_name, query_real_time)
153
- realtime_quotes_now_kc = common_service_fun_api.exclude_new_stock(realtime_quotes_now_kc)
136
+ stock_name = kc_one.name
137
+ if stock_name.startswith('N'):
138
+ continue
154
139
  if realtime_quotes_now_kc.shape[0] == 0:
155
140
  logger.error("当期日期代码无开盘数据:{},{}", str_day, kc_one.symbol)
156
141
  continue
@@ -182,7 +167,8 @@ def one_symbol_day_open_data(realtime_quotes_now_kc, kc_one, str_day):
182
167
  realtime_quotes_now_zt_new_kc_open_copy.loc[:, 'yesterday_high_chg'] = kc_one.yesterday_high_chg
183
168
  realtime_quotes_now_zt_new_kc_open_copy.loc[:, 'today_chg'] = kc_one.chg
184
169
  realtime_quotes_now_zt_new_kc_open_copy.loc[:, 'str_day'] = str_day
185
-
170
+ realtime_quotes_now_zt_new_kc_open_copy = company_common_service_new_api.amend_ths_industry(
171
+ realtime_quotes_now_zt_new_kc_open_copy)
186
172
  realtime_quotes_now_zt_new_kc_open_copy = handle_init_real_time_quotes_data(
187
173
  realtime_quotes_now_zt_new_kc_open_copy.copy(),
188
174
  str_now_date,
@@ -219,8 +205,6 @@ def handle_init_real_time_quotes_data(real_time_quotes_now, str_now_date, number
219
205
  real_time_quotes_now = common_service_fun_api.exclude_b_symbol(real_time_quotes_now.copy())
220
206
  # classification symbol
221
207
  real_time_quotes_now = common_service_fun_api.classify_symbol(real_time_quotes_now.copy())
222
- # fix industry
223
- real_time_quotes_now = fix_industry_data(real_time_quotes_now.copy())
224
208
  # calculate parameter
225
209
  real_time_quotes_now = data_init_api.calculate_parameter_factor(real_time_quotes_now.copy())
226
210
 
@@ -84,7 +84,7 @@ def fix_miss_data(str_end):
84
84
 
85
85
 
86
86
  if __name__ == '__main__':
87
- kcx_high_chg_open_data_sync.sync_all_kc_zt_data('2024-06-19', None)
87
+ kcx_high_chg_open_data_sync.sync_all_kc_zt_data('2024-06-21', None)
88
88
  # sync_all_kc_zt_data('2023-08-16')
89
89
  # sync_all_kc_zt_data('2023-07-07')
90
90
  # realtime_quotes_now_zt_new_kc_open_sync()
@@ -132,7 +132,7 @@ def save_zt_info(str_day):
132
132
 
133
133
 
134
134
  if __name__ == '__main__':
135
- save_zt_info('2024-06-07')
135
+ save_zt_info('2024-06-21')
136
136
  # from datetime import datetime
137
137
  #
138
138
  # if __name__ == '__main__':
@@ -172,7 +172,7 @@ def get_bfq_daily_line(ths_zt_pool_df, str_day):
172
172
  return bfq_k_line_df
173
173
 
174
174
 
175
- def save_ths_zt_pool(ths_zt_pool_df):
175
+ def save_ths_zt_pool(ths_zt_pool_df, str_day):
176
176
  ths_zt_pool_df = ths_zt_pool_df[[
177
177
  "symbol",
178
178
  "name",
@@ -213,19 +213,33 @@ def save_ths_zt_pool(ths_zt_pool_df):
213
213
  ]]
214
214
  ths_zt_pool_df['_id'] = ths_zt_pool_df['symbol'] + '_' + ths_zt_pool_df['str_day']
215
215
  ths_zt_pool_df = ths_zt_pool_df.sort_values(by=['connected_boards_numbers'], ascending=False)
216
+
217
+ # 将日期数值转换为日期时间格式
218
+ ths_zt_pool_df['list_date_01'] = pd.to_datetime(ths_zt_pool_df['list_date'], format='%Y%m%d')
219
+ str_day_date = date_handle_util.str_to_date(str_day, '%Y-%m-%d')
220
+ # 计算日期差值 距离现在上市时间
221
+ ths_zt_pool_df['diff_days'] = ths_zt_pool_df.apply(
222
+ lambda row: (str_day_date - row['list_date_01']).days, axis=1)
223
+ del ths_zt_pool_df['list_date_01']
224
+
216
225
  mongodb_util.save_mongo(ths_zt_pool_df, db_name_constant.THS_ZT_POOL)
217
226
 
218
227
 
219
228
  if __name__ == '__main__':
220
- while True:
221
- query = {'_id': {"$lte": '2019-10-29'}}
222
- trade_date_list = mongodb_util.find_query_data('trade_date_list', query)
223
- trade_date_list = trade_date_list.sort_values(by=['trade_date'], ascending=False)
224
- for trade_one in trade_date_list.itertuples():
225
- try:
226
- trade_date = trade_one.trade_date
227
- zt_df = ths_zt_pool(trade_date, None)
228
- save_ths_zt_pool(zt_df)
229
- logger.info("同步到日期:{}", trade_date)
230
- except BaseException as e:
231
- logger.warning("同步涨停到日期:{},{}", trade_one.trade_date, e)
229
+ trade_date = '2024-06-21'
230
+ zt_df = ths_zt_pool(trade_date, None)
231
+ save_ths_zt_pool(zt_df, trade_date)
232
+ # while True:
233
+ # query = {"$and": [{'_id': {"$gte": '2013-07-04'}}, {'_id': {"$lte": '2019-07-04'}}]}
234
+ #
235
+ # trade_date_list = mongodb_util.find_query_data('trade_date_list', query)
236
+ # trade_date_list = trade_date_list.sort_values(by=['trade_date'], ascending=False)
237
+ # for trade_one in trade_date_list.itertuples():
238
+ # try:
239
+ # trade_date = trade_one.trade_date
240
+ # zt_df = ths_zt_pool(trade_date, None)
241
+ # # zt_df = mongodb_util.find_query_data(db_name_constant.THS_ZT_POOL, query={"str_day": trade_date})
242
+ # save_ths_zt_pool(zt_df, trade_date)
243
+ # logger.info("同步到日期:{}", trade_date)
244
+ # except BaseException as e:
245
+ # logger.warning("同步涨停到日期:{},{}", trade_one.trade_date, e)
@@ -48,6 +48,7 @@ import mns_scheduler.risk.transactions.transactions_check_api as transactions_ch
48
48
  import mns_scheduler.concept.ths.sync_new_index.sync_ths_concept_new_index_api as sync_ths_concept_new_index_api
49
49
  import mns_scheduler.company_info.clean.company_info_clean_api as company_info_clean_api
50
50
  import mns_scheduler.zt.zt_pool.ths_zt_pool_sync_api as ths_zt_pool_sync_api
51
+ import mns_scheduler.db.real_time_task_check as real_time_task_check_api
51
52
 
52
53
 
53
54
  # 同步交易日期任务完成
@@ -152,7 +153,8 @@ def sync_stock_zt_pool():
152
153
  em_stock_zt_pool = em_zt_pool_sync_api.save_zt_info(str_day)
153
154
  zt_five_boards_sync_api.update_five_connected_boards_task(em_stock_zt_pool)
154
155
  logger.info('同步ths股票涨停池')
155
- ths_zt_pool_sync_api.ths_zt_pool(str_day, None)
156
+ ths_zt_pool_df = ths_zt_pool_sync_api.ths_zt_pool(str_day, None)
157
+ ths_zt_pool_sync_api.save_ths_zt_pool(ths_zt_pool_df, str_day)
156
158
  logger.info('同步当天涨停池股票完成')
157
159
 
158
160
 
@@ -341,6 +343,11 @@ def sync_all_interactive_questions():
341
343
  stock_irm_cninfo_service.sync_all_interactive_questions(None)
342
344
 
343
345
 
346
+ # 数据同步状态check
347
+ def real_time_task_check_status():
348
+ real_time_task_check_api.run_check_real_time_data_sync_status()
349
+
350
+
344
351
  # # 定义BlockingScheduler
345
352
  blockingScheduler = BlockingScheduler()
346
353
  # sync_trade_date 同步交易日期
@@ -419,6 +426,9 @@ blockingScheduler.add_job(sync_high_risk_stocks, 'cron', hour='0,09,12,16', minu
419
426
  # 同步互动回答
420
427
  blockingScheduler.add_job(sync_all_interactive_questions, 'cron', hour='08,12,17', minute='05')
421
428
 
429
+ # 实时数据状态同步check
430
+ blockingScheduler.add_job(real_time_task_check_status, 'interval', seconds=59, max_instances=4)
431
+
422
432
  print('定时任务启动成功')
423
433
  blockingScheduler.start()
424
434
  #
@@ -1,3 +1,3 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mns-scheduler
3
- Version: 1.1.1.1
3
+ Version: 1.1.1.4
@@ -43,6 +43,7 @@ mns_scheduler/concept/ths/update_concept_info/sync_one_symbol_all_concepts_api.p
43
43
  mns_scheduler/db/__init__.py
44
44
  mns_scheduler/db/col_move_service.py
45
45
  mns_scheduler/db/db_status.py
46
+ mns_scheduler/db/real_time_task_check.py
46
47
  mns_scheduler/dt/__init__.py
47
48
  mns_scheduler/dt/stock_dt_pool_sync.py
48
49
  mns_scheduler/finance/__init__.py
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
2
2
 
3
3
  setup(
4
4
  name='mns-scheduler',
5
- version='1.1.1.1',
5
+ version='1.1.1.4',
6
6
  packages=find_packages(),
7
7
  install_requires=[], # 如果有依赖项,可以在这里列出
8
8
  )
@@ -1,7 +0,0 @@
1
- import sys
2
- import os
3
-
4
- file_path = os.path.abspath(__file__)
5
- end = file_path.index('mns') + 17
6
- project_path = file_path[0:end]
7
- sys.path.append(project_path)