mns-scheduler 1.1.1.4__tar.gz → 1.1.1.5__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 (137) hide show
  1. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/PKG-INFO +1 -1
  2. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/company_info/constant/company_constant_data.py +1 -1
  3. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/db/real_time_task_check.py +1 -2
  4. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/zt/high_chg/sync_high_chg_real_time_quotes_service.py +6 -5
  5. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/zt/open_data/kcx_high_chg_open_data_sync.py +2 -1
  6. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/zt/script/kcx_high_chg_open_his_data_handle.py +2 -3
  7. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/zt/script/sync_high_chg_pool_his_data.py +1 -1
  8. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler.egg-info/PKG-INFO +1 -1
  9. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler.egg-info/SOURCES.txt +1 -5
  10. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/setup.py +1 -1
  11. mns-scheduler-1.1.1.4/mns_scheduler/real_time/realtime_quotes_now_create_db_index.py +0 -29
  12. mns-scheduler-1.1.1.4/mns_scheduler/real_time/realtime_quotes_now_sync.py +0 -232
  13. mns-scheduler-1.1.1.4/mns_scheduler/zz_task/__init__.py +0 -7
  14. mns-scheduler-1.1.1.4/mns_scheduler/zz_task/sync_realtime_quotes_task.py +0 -28
  15. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/README.md +0 -0
  16. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/__init__.py +0 -0
  17. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/backup/__init__.py +0 -0
  18. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/backup/em/__init__.py +0 -0
  19. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/backup/em/em_new_concept_his_sync.py +0 -0
  20. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/backup/em/em_new_concept_sync_common_api.py +0 -0
  21. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/backup/em/em_new_concept_sync_web.py +0 -0
  22. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/backup/ths/__init__.py +0 -0
  23. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/backup/ths/sync_ths_concept_by_ak_api.py +0 -0
  24. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/backup/ths/sync_ths_new_concept_by_web_api.py +0 -0
  25. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/big_deal/__init__.py +0 -0
  26. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/big_deal/ths_big_deal_sync.py +0 -0
  27. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/company_info/__init__.py +0 -0
  28. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/company_info/base/__init__.py +0 -0
  29. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/company_info/base/sync_company_base_info_api.py +0 -0
  30. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/company_info/clean/__init__.py +0 -0
  31. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/company_info/clean/company_info_clean_api.py +0 -0
  32. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/company_info/constant/__init__.py +0 -0
  33. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/company_info/de_list_stock/__init__.py +0 -0
  34. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/company_info/de_list_stock/de_list_stock_service.py +0 -0
  35. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/concept/__init__.py +0 -0
  36. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/concept/clean/__init__.py +0 -0
  37. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/concept/clean/kpl_concept_clean_api.py +0 -0
  38. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/concept/clean/ths_concept_clean_api.py +0 -0
  39. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/concept/common/__init__.py +0 -0
  40. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/concept/common/detaill/__init__.py +0 -0
  41. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/concept/common/detaill/ths_concept_detail_api.py +0 -0
  42. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/concept/ths/__init__.py +0 -0
  43. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/concept/ths/common/__init__.py +0 -0
  44. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/concept/ths/common/ths_concept_sync_common_api.py +0 -0
  45. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/concept/ths/common/ths_concept_update_common_api.py +0 -0
  46. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/concept/ths/sync_new_index/__init__.py +0 -0
  47. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/concept/ths/sync_new_index/sync_ths_concept_new_index_api.py +0 -0
  48. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/concept/ths/update_concept_info/__init__.py +0 -0
  49. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/concept/ths/update_concept_info/sync_one_concept_all_symbols_api.py +0 -0
  50. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/concept/ths/update_concept_info/sync_one_symbol_all_concepts_api.py +0 -0
  51. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/db/__init__.py +0 -0
  52. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/db/col_move_service.py +0 -0
  53. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/db/db_status.py +0 -0
  54. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/dt/__init__.py +0 -0
  55. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/dt/stock_dt_pool_sync.py +0 -0
  56. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/finance/__init__.py +0 -0
  57. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/finance/em_financial_asset_liability_sync_service_api.py +0 -0
  58. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/finance/em_financial_profit_sync_service_api.py +0 -0
  59. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/finance/finance_common_api.py +0 -0
  60. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/finance/sync_financial_report_service_api.py +0 -0
  61. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/hk/__init__.py +0 -0
  62. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/hk/hk_company_info_sync_service_api.py +0 -0
  63. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/irm/__init__.py +0 -0
  64. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/irm/api/__init__.py +0 -0
  65. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/irm/api/sh_stock_sns_sse_info_api.py +0 -0
  66. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/irm/api/sz_stock_sns_sse_info_api.py +0 -0
  67. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/irm/stock_irm_cninfo_service.py +0 -0
  68. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/k_line/__init__.py +0 -0
  69. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/k_line/clean/__init__.py +0 -0
  70. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/k_line/clean/daily/__init__.py +0 -0
  71. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/k_line/clean/daily/daily_k_line_clean_common_service.py +0 -0
  72. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/k_line/clean/daily/daily_k_line_service.py +0 -0
  73. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/k_line/clean/k_line_info_clean_impl.py +0 -0
  74. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/k_line/clean/k_line_info_clean_task.py +0 -0
  75. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/k_line/clean/week_month/__init__.py +0 -0
  76. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/k_line/clean/week_month/normal_week_month_k_line_service.py +0 -0
  77. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/k_line/clean/week_month/sub_new_week_month_k_line_service.py +0 -0
  78. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/k_line/hot_stocks/__init__.py +0 -0
  79. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/k_line/hot_stocks/recent_hot_stocks_clean_service.py +0 -0
  80. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/k_line/sync/__init__.py +0 -0
  81. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/k_line/sync/bfq_k_line_sync.py +0 -0
  82. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/k_line/sync/daily_week_month_line_sync.py +0 -0
  83. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/k_line/test/__init__.py +0 -0
  84. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/k_line/test/k_line_info_clean_his_data.py +0 -0
  85. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/kpl/__init__.py +0 -0
  86. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/kpl/selection/__init__.py +0 -0
  87. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/kpl/selection/index/__init__.py +0 -0
  88. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/kpl/selection/index/sync_best_choose_his_index.py +0 -0
  89. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/kpl/selection/index/sync_best_choose_index.py +0 -0
  90. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/kpl/selection/symbol/__init__.py +0 -0
  91. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/kpl/selection/symbol/sync_best_choose_symbol.py +0 -0
  92. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/kpl/selection/total/__init__.py +0 -0
  93. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/kpl/selection/total/sync_kpl_best_total_sync_api.py +0 -0
  94. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/lhb/__init__.py +0 -0
  95. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/lhb/stock_lhb_sync_service.py +0 -0
  96. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/open/__init__.py +0 -0
  97. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/open/sync_one_day_open_data_to_db_service.py +0 -0
  98. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/risk/__init__.py +0 -0
  99. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/risk/compliance/__init__.py +0 -0
  100. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/risk/compliance/undisclosed_annual_report_api.py +0 -0
  101. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/risk/financial/__init__.py +0 -0
  102. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/risk/financial/annual_report_audit_check_api.py +0 -0
  103. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/risk/financial/net_assets_check_api.py +0 -0
  104. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/risk/financial/profit_income_check_api.py +0 -0
  105. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/risk/financial/stock_equity_mortgage_check_api.py +0 -0
  106. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/risk/financial_report_risk_check_api.py +0 -0
  107. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/risk/major_violations/__init__.py +0 -0
  108. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/risk/major_violations/register_and_investigate_stock_sync_api.py +0 -0
  109. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/risk/self/__init__.py +0 -0
  110. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/risk/self/wei_pan_stock_api.py +0 -0
  111. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/risk/test/__init__.py +0 -0
  112. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/risk/test/fix_blask_list.py +0 -0
  113. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/risk/transactions/__init__.py +0 -0
  114. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/risk/transactions/transactions_check_api.py +0 -0
  115. {mns-scheduler-1.1.1.4/mns_scheduler/real_time → mns-scheduler-1.1.1.5/mns_scheduler/trade}/__init__.py +0 -0
  116. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/trade/auto_ipo_buy_api.py +0 -0
  117. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/trade/auto_sell_service_api.py +0 -0
  118. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/trade/sync_position_api.py +0 -0
  119. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/zb/__init__.py +0 -0
  120. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/zb/stock_zb_pool_sync.py +0 -0
  121. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/zt/__init__.py +0 -0
  122. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/zt/connected_boards/__init__.py +0 -0
  123. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/zt/connected_boards/zt_five_boards_sync_api.py +0 -0
  124. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/zt/export/__init__.py +0 -0
  125. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/zt/export/export_kcx_high_chg_open_data_to_excel.py +0 -0
  126. {mns-scheduler-1.1.1.4/mns_scheduler/trade → mns-scheduler-1.1.1.5/mns_scheduler/zt/high_chg}/__init__.py +0 -0
  127. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/zt/high_chg/sync_high_chg_pool_service.py +0 -0
  128. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/zt/open_data/__init__.py +0 -0
  129. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/zt/script/__init__.py +0 -0
  130. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/zt/zt_pool/__init__.py +0 -0
  131. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/zt/zt_pool/em_zt_pool_sync_api.py +0 -0
  132. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/zt/zt_pool/ths_zt_pool_sync_api.py +0 -0
  133. {mns-scheduler-1.1.1.4/mns_scheduler/zt/high_chg → mns-scheduler-1.1.1.5/mns_scheduler/zz_task}/__init__.py +0 -0
  134. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler/zz_task/data_sync_task.py +0 -0
  135. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler.egg-info/dependency_links.txt +0 -0
  136. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/mns_scheduler.egg-info/top_level.txt +0 -0
  137. {mns-scheduler-1.1.1.4 → mns-scheduler-1.1.1.5}/setup.cfg +0 -0
@@ -1,3 +1,3 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mns-scheduler
3
- Version: 1.1.1.4
3
+ Version: 1.1.1.5
@@ -14,7 +14,7 @@ mongodb_util = MongodbUtil('27017')
14
14
 
15
15
  def get_fix_symbol_industry():
16
16
  return pd.DataFrame([['688480', '赛恩斯', '760103', '环境治理'],
17
- ['000032', '深桑达A', '730200', '通信网络设备及器件'],
17
+ ['000032', '深桑达A', '730204', '通信网络设备及器件'],
18
18
  ['688480', '赛恩斯', '640704', '自动化设备'],
19
19
  ['603260', '合盛硅业', '220316', '有机硅'],
20
20
  ['300559', '佳发教育', '461102', '培训教育'],
@@ -34,13 +34,12 @@ def get_real_time_max_number():
34
34
  def check_max_number():
35
35
  now_max_number = get_real_time_max_number()
36
36
  last_minute_number = cache_service.get_cache(MAX_NUMBER_KEY)
37
+ cache_service.set_cache(MAX_NUMBER_KEY, now_max_number)
37
38
  if last_minute_number is None:
38
- cache_service.set_cache(MAX_NUMBER_KEY, now_max_number)
39
39
  return True
40
40
  elif now_max_number == last_minute_number:
41
41
  return False
42
42
  else:
43
- cache_service.set_cache(MAX_NUMBER_KEY, now_max_number)
44
43
  return True
45
44
 
46
45
 
@@ -24,14 +24,15 @@ choose_field = ["_id",
24
24
  "symbol",
25
25
  "name",
26
26
  "industry",
27
- "now_price",
28
27
  "chg",
29
28
  "quantity_ratio",
30
29
  "amount_level",
30
+ 'sum_main_inflow_disk',
31
31
  "disk_ratio",
32
+ "now_price",
32
33
  "real_disk_diff_amount_exchange",
33
34
  'max_real_main_inflow_multiple',
34
- 'sum_main_inflow_disk',
35
+
35
36
  "real_main_inflow_multiple",
36
37
  "real_super_main_inflow_multiple",
37
38
  "super_main_inflow_multiple",
@@ -73,7 +74,7 @@ choose_field = ["_id",
73
74
  def sync_high_chg_real_time_quotes(str_day):
74
75
  mongo = db_util.get_db(str_day)
75
76
 
76
- realtime_quotes_db_name = db_name_constant.REAL_TIME_QUOTES_NOW + "_" + str_day
77
+ realtime_quotes_db_name = db_name_constant.REAL_TIME_QUOTES_NOW + "_" + str_day
77
78
  high_chg_list = get_high_chg_symbol(str_day)
78
79
  if high_chg_list is None or len(high_chg_list) == 0:
79
80
  return
@@ -92,7 +93,7 @@ def sync_high_chg_real_time_quotes(str_day):
92
93
  real_time_quotes_now_high_chg_all)
93
94
 
94
95
  real_time_quotes_now_high_chg_all['amount_level'] = round(
95
- (real_time_quotes_now_high_chg_all['amount'] / common_service_fun_api.HUNDRED_MILLION), 2) * 10
96
+ (real_time_quotes_now_high_chg_all['amount'] / common_service_fun_api.HUNDRED_MILLION), 2)
96
97
  real_time_quotes_now_high_chg_all['flow_mv_sp'] = round(
97
98
  (real_time_quotes_now_high_chg_all['flow_mv'] / common_service_fun_api.HUNDRED_MILLION), 2)
98
99
  real_time_quotes_now_high_chg_all['total_mv_sp'] = round(
@@ -141,4 +142,4 @@ def save_realtime_quotes_now_zt_data(realtime_quotes_now_zt, str_day, symbol):
141
142
 
142
143
 
143
144
  if __name__ == '__main__':
144
- sync_high_chg_real_time_quotes('2024-06-21')
145
+ sync_high_chg_real_time_quotes('2024-06-24')
@@ -62,7 +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
-
66
65
  def sync_all_kc_zt_data(str_day, symbols):
67
66
  if symbols is None:
68
67
  query_daily = {'date': date_handle_util.no_slash_date(str_day),
@@ -173,6 +172,8 @@ def one_symbol_day_open_data(realtime_quotes_now_kc, kc_one, str_day):
173
172
  realtime_quotes_now_zt_new_kc_open_copy.copy(),
174
173
  str_now_date,
175
174
  1)
175
+ if data_frame_util.is_empty(realtime_quotes_now_zt_new_kc_open_copy):
176
+ return None
176
177
  realtime_quotes_now_zt_new_kc_open_copy = realtime_quotes_now_zt_new_kc_open_copy[
177
178
  realtime_quotes_now_zt_new_kc_open_field]
178
179
 
@@ -8,11 +8,9 @@ sys.path.append(project_path)
8
8
  import mns_scheduler.zt.open_data.kcx_high_chg_open_data_sync as kcx_high_chg_open_data_sync
9
9
  from loguru import logger
10
10
 
11
-
12
11
  from mns_common.db.MongodbUtil import MongodbUtil
13
12
  import mns_common.utils.data_frame_util as data_frame_util
14
13
 
15
-
16
14
  mongodb_util = MongodbUtil('27017')
17
15
  mongodb_util_21019 = MongodbUtil('27019')
18
16
  realtime_quotes_now_zt_new_kc_open_field = ['_id',
@@ -53,6 +51,7 @@ realtime_quotes_now_zt_new_kc_open_field = ['_id',
53
51
  'real_super_main_inflow_multiple', 'real_flow_mv',
54
52
  'real_disk_diff_amount_exchange', 'no_open_data']
55
53
 
54
+
56
55
  # query = {'$and': [{"_id": {'$lte': str_end}}, {"_id": {'$gte': '2022-04-25'}}]}
57
56
  def sync_all_high_chg_data(str_end):
58
57
  query = {'$and': [{"_id": {'$lte': str_end}}, {"_id": {'$gte': '2024-03-01'}}]}
@@ -84,7 +83,7 @@ def fix_miss_data(str_end):
84
83
 
85
84
 
86
85
  if __name__ == '__main__':
87
- kcx_high_chg_open_data_sync.sync_all_kc_zt_data('2024-06-21', None)
86
+ kcx_high_chg_open_data_sync.sync_all_kc_zt_data('2024-06-24', None)
88
87
  # sync_all_kc_zt_data('2023-08-16')
89
88
  # sync_all_kc_zt_data('2023-07-07')
90
89
  # realtime_quotes_now_zt_new_kc_open_sync()
@@ -36,4 +36,4 @@ def sync_his_zt_pool_data(begin_day, end_day):
36
36
 
37
37
 
38
38
  if __name__ == '__main__':
39
- sync_high_chg_pool_service.sync_stock_high_chg_pool_list('2024-06-19', None)
39
+ sync_high_chg_pool_service.sync_stock_high_chg_pool_list('2024-06-24', None)
@@ -1,3 +1,3 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mns-scheduler
3
- Version: 1.1.1.4
3
+ Version: 1.1.1.5
@@ -88,9 +88,6 @@ mns_scheduler/lhb/__init__.py
88
88
  mns_scheduler/lhb/stock_lhb_sync_service.py
89
89
  mns_scheduler/open/__init__.py
90
90
  mns_scheduler/open/sync_one_day_open_data_to_db_service.py
91
- mns_scheduler/real_time/__init__.py
92
- mns_scheduler/real_time/realtime_quotes_now_create_db_index.py
93
- mns_scheduler/real_time/realtime_quotes_now_sync.py
94
91
  mns_scheduler/risk/__init__.py
95
92
  mns_scheduler/risk/financial_report_risk_check_api.py
96
93
  mns_scheduler/risk/compliance/__init__.py
@@ -131,5 +128,4 @@ mns_scheduler/zt/zt_pool/__init__.py
131
128
  mns_scheduler/zt/zt_pool/em_zt_pool_sync_api.py
132
129
  mns_scheduler/zt/zt_pool/ths_zt_pool_sync_api.py
133
130
  mns_scheduler/zz_task/__init__.py
134
- mns_scheduler/zz_task/data_sync_task.py
135
- mns_scheduler/zz_task/sync_realtime_quotes_task.py
131
+ mns_scheduler/zz_task/data_sync_task.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.4',
5
+ version='1.1.1.5',
6
6
  packages=find_packages(),
7
7
  install_requires=[], # 如果有依赖项,可以在这里列出
8
8
  )
@@ -1,29 +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)
8
- from loguru import logger
9
- from mns_common.db.MongodbUtil import MongodbUtil
10
-
11
- mongodb_util = MongodbUtil('27017')
12
-
13
-
14
- def create_db_index(str_day):
15
- query_trade_day = {'_id': str_day}
16
- is_trade_day = mongodb_util.exist_data_query('trade_date_list', query_trade_day)
17
- if is_trade_day:
18
- try:
19
- mongodb_util.create_index('realtime_quotes_now_' + str_day, [("symbol", 1)])
20
- mongodb_util.create_index('realtime_quotes_now_' + str_day, [("number", 1)])
21
- mongodb_util.create_index('realtime_quotes_now_' + str_day, [("symbol", 1), ("number", 1)])
22
- mongodb_util.create_index('realtime_quotes_now_' + str_day, [("str_now_date", 1)])
23
- logger.info("创建索引成功:{}", str_day)
24
- except BaseException as e:
25
- logger.warning("创建索引异常:{}", e)
26
-
27
-
28
- if __name__ == '__main__':
29
- create_db_index("2023-08-11")
@@ -1,232 +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)
8
-
9
- import datetime
10
- import mns_common.utils.date_handle_util as date_util
11
- import mns_common.component.company.company_common_service_api as company_common_service_api
12
- from loguru import logger
13
- import mns_common.api.em.east_money_stock_api as east_money_stock_api
14
- import time
15
- import mns_common.component.common_service_fun_api as common_service_fun_api
16
- import mns_common.component.data.data_init_api as data_init_api
17
- import mns_scheduler.real_time.realtime_quotes_now_create_db_index as realtime_quotes_now_create_db_index_api
18
- import pandas as pd
19
- from mns_common.db.MongodbUtil import MongodbUtil
20
- from mns_common.utils.async_fun import async_fun
21
- import mns_scheduler.trade.auto_sell_service_api as auto_sell_service_api
22
- import mns_common.constant.db_name_constant as db_name_constant
23
- import warnings
24
-
25
- warnings.filterwarnings("ignore")
26
-
27
- mongodb_util = MongodbUtil('27017')
28
- order = ["_id",
29
- "symbol",
30
- "name",
31
- "industry",
32
- "chg",
33
- "quantity_ratio",
34
- "amount_level",
35
- "real_exchange",
36
- "disk_ratio",
37
- 'real_disk_diff_amount_exchange',
38
- 'max_real_main_inflow_multiple',
39
- 'sum_main_inflow_disk',
40
- "main_inflow_multiple",
41
- 'super_main_inflow_multiple',
42
- 'disk_diff_amount',
43
- "disk_diff_amount_exchange",
44
- "exchange",
45
- "amount",
46
- "today_main_net_inflow",
47
- "today_main_net_inflow_ratio",
48
- "super_large_order_net_inflow",
49
- "super_large_order_net_inflow_ratio",
50
- "large_order_net_inflow",
51
- "large_order_net_inflow_ratio",
52
- "super_main_inflow_multiple",
53
- "up_speed",
54
- "up_speed_05",
55
- "now_price",
56
- "high",
57
- "low",
58
- "open",
59
- "yesterday_price",
60
- "volume",
61
- "total_mv",
62
- "flow_mv",
63
- "list_date",
64
- "wei_bi",
65
- "buy_1_num",
66
- "sell_1_num",
67
- "outer_disk",
68
- "inner_disk",
69
- "average_price",
70
- "classification",
71
- "str_now_date",
72
- "number"]
73
-
74
-
75
- # 实时表移除数据
76
- @async_fun
77
- def remove_real_time_data(number, realtime_quotes_db_name):
78
- if number % 50 == 0:
79
- remove_query = {'number': {"$lte": number - 50}}
80
- mongodb_util.remove_data(remove_query, realtime_quotes_db_name)
81
-
82
-
83
- def remove_real_time_all_data():
84
- remove_query = {}
85
- mongodb_util.remove_data(remove_query, db_name_constant.REAL_TIME_QUOTES_NOW)
86
-
87
-
88
- # 保存实时表数据
89
- def save_real_time_quotes(real_time_quotes, now_date, realtime_quotes_db_name, number):
90
- if 'first_sw_industry' in real_time_quotes.columns:
91
- real_time_quotes.drop(columns=['first_sw_industry'], inplace=True)
92
- if 'second_sw_industry' in real_time_quotes.columns:
93
- real_time_quotes.drop(columns=['second_sw_industry'], inplace=True)
94
- if 'third_sw_industry' in real_time_quotes.columns:
95
- real_time_quotes.drop(columns=['third_sw_industry'], inplace=True)
96
- real_time_quotes.symbol = real_time_quotes.symbol.astype(str)
97
- str_now_date = now_date.strftime('%Y-%m-%d %H:%M:%S:%f')
98
- real_time_quotes['_id'] = real_time_quotes['symbol'] + '-' + str_now_date
99
-
100
- try:
101
-
102
- real_time_quotes = real_time_quotes[order]
103
- real_time_quotes['sum_main_inflow_disk'] = round(real_time_quotes['sum_main_inflow_disk'], 2)
104
- mongodb_util.insert_mongo(real_time_quotes, realtime_quotes_db_name)
105
- # 移除现在的数据
106
- remove_real_time_data(number, realtime_quotes_db_name)
107
- except BaseException as e:
108
- logger.error('保存实时数据异常:{}', e)
109
-
110
-
111
- # 保存历史表数据
112
- def save_real_time_quotes_his(real_time_quotes, now_date, realtime_quotes_db_name, number_his):
113
- if 'first_sw_industry' in real_time_quotes.columns:
114
- real_time_quotes.drop(columns=['first_sw_industry'], inplace=True)
115
- if 'second_sw_industry' in real_time_quotes.columns:
116
- real_time_quotes.drop(columns=['second_sw_industry'], inplace=True)
117
- if 'third_sw_industry' in real_time_quotes.columns:
118
- real_time_quotes.drop(columns=['third_sw_industry'], inplace=True)
119
- real_time_quotes.symbol = real_time_quotes.symbol.astype(str)
120
- str_now_date = now_date.strftime('%Y-%m-%d %H:%M:%S:%f')
121
- real_time_quotes['_id'] = real_time_quotes['symbol'] + '-' + str_now_date
122
-
123
- try:
124
- real_time_quotes['number'] = number_his
125
-
126
- real_time_quotes = real_time_quotes[order]
127
- mongodb_util.insert_mongo(real_time_quotes, realtime_quotes_db_name)
128
- except Exception as e:
129
- logger.error('保存实时历史数据异常:{}', e)
130
-
131
-
132
- def handle_init_real_time_quotes_data(real_time_quotes_now, str_now_date, number):
133
- # exclude b symbol
134
- real_time_quotes_now = common_service_fun_api.exclude_b_symbol(real_time_quotes_now.copy())
135
- # classification symbol
136
- real_time_quotes_now = common_service_fun_api.classify_symbol(real_time_quotes_now.copy())
137
- # fix industry
138
- real_time_quotes_now = fix_industry_data(real_time_quotes_now.copy())
139
- # calculate parameter
140
- real_time_quotes_now = data_init_api.calculate_parameter_factor(real_time_quotes_now.copy())
141
-
142
- real_time_quotes_now = real_time_quotes_now.loc[real_time_quotes_now['amount'] != 0]
143
- real_time_quotes_now['str_now_date'] = str_now_date
144
- real_time_quotes_now['number'] = number
145
- return real_time_quotes_now
146
-
147
-
148
- # fix 错杀数据 有成交量的数据
149
- def fix_industry_data(real_time_quotes_now):
150
- # fix industry
151
- real_time_quotes_now_r = company_common_service_api.amendment_industry(real_time_quotes_now.copy())
152
-
153
- symbol_list = list(real_time_quotes_now_r['symbol'])
154
-
155
- na_real_now = real_time_quotes_now.loc[
156
- ~(real_time_quotes_now['symbol'].isin(symbol_list))]
157
-
158
- na_real_now = na_real_now.loc[na_real_now['amount'] != 0]
159
-
160
- real_time_quotes_now_result = pd.concat([real_time_quotes_now_r, na_real_now], axis=0)
161
- return real_time_quotes_now_result
162
-
163
-
164
- def sync_realtime_quotes():
165
- # 移除昨日数据
166
- remove_real_time_all_data()
167
-
168
- now_date_init = datetime.datetime.now()
169
- str_day_init = now_date_init.strftime('%Y-%m-%d')
170
- realtime_quotes_db_name = db_name_constant.REAL_TIME_QUOTES_NOW + "_" + str_day_init
171
- number_his = common_service_fun_api.realtime_quotes_now_max_number(realtime_quotes_db_name, 'number')
172
- number_his = number_his + 1
173
- number = common_service_fun_api.realtime_quotes_now_max_number(
174
- db_name_constant.REAL_TIME_QUOTES_NOW + '_' + str_day_init, 'number')
175
- number = number + 1
176
- realtime_quotes_now_create_db_index_api.create_db_index(str_day_init)
177
- while True:
178
- now_date = datetime.datetime.now()
179
-
180
- str_now_date = now_date.strftime('%Y-%m-%d %H:%M:%S')
181
- if bool(date_util.is_trade_time(now_date)):
182
- try:
183
- real_time_quotes_now = east_money_stock_api.get_real_time_quotes_all_stocks()
184
- real_time_quotes_now = handle_init_real_time_quotes_data(real_time_quotes_now.copy(),
185
- str_now_date, number)
186
- save_real_time_quotes(real_time_quotes_now.copy(), now_date, db_name_constant.REAL_TIME_QUOTES_NOW,
187
- number)
188
- try:
189
- auto_sell_service_api.auto_sell_stock(real_time_quotes_now.copy())
190
- except Exception as e:
191
- logger.error("自动卖出执行异常:{}", e)
192
- # 集合竞价前同步
193
- if date_util.is_call_auction(str_now_date):
194
- if number % 4 == 0:
195
- save_real_time_quotes_his(real_time_quotes_now.copy(), now_date, realtime_quotes_db_name,
196
- number_his)
197
- number_his = number_his + 1
198
- # 开盘前一个小时同步
199
- elif date_util.is_begin_one_hour(now_date):
200
- save_real_time_quotes_his(real_time_quotes_now.copy(), now_date, realtime_quotes_db_name,
201
- number_his)
202
- number_his = number_his + 1
203
- # 下午同步次数
204
- elif date_util.is_afternoon_time(now_date):
205
- if number % 3 == 0:
206
- save_real_time_quotes_his(real_time_quotes_now.copy(), now_date, realtime_quotes_db_name,
207
- number_his)
208
- number_his = number_his + 1
209
-
210
- else:
211
- # 10:30 到11:30
212
- if number % 2 == 0:
213
- save_real_time_quotes_his(real_time_quotes_now.copy(), now_date, realtime_quotes_db_name,
214
- number_his)
215
- number_his = number_his + 1
216
-
217
- logger.info("同步实时行情信息:{}", number)
218
- number = number + 1
219
-
220
- except Exception as e:
221
- number_his = number_his + 1
222
- number = number + 1
223
- logger.error("获取实时行情信息:{}", e)
224
- elif bool(date_util.is_no_trade_time(now_date)):
225
-
226
- break
227
- else:
228
- time.sleep(1)
229
-
230
-
231
- if __name__ == '__main__':
232
- sync_realtime_quotes()
@@ -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)
@@ -1,28 +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)
8
- import mns_scheduler.real_time.realtime_quotes_now_sync as realtime_quotes_now_sync
9
- import mns_scheduler.company_info.clean.company_info_clean_api as company_info_clean_api
10
- from loguru import logger
11
- from apscheduler.schedulers.blocking import BlockingScheduler
12
-
13
-
14
- def sync_realtime_quotes():
15
- logger.error("同步实时数据开始")
16
- # 更新新股公司信息
17
- company_info_clean_api.new_company_info_update()
18
- realtime_quotes_now_sync.sync_realtime_quotes()
19
- logger.error("同步实时数据完成")
20
-
21
-
22
- blockingScheduler = BlockingScheduler()
23
-
24
- # 同步实时数据
25
- blockingScheduler.add_job(sync_realtime_quotes, 'cron', hour='09', minute='20', max_instances=4)
26
-
27
- print('同步实时行情定时任务启动成功')
28
- blockingScheduler.start()