mns-scheduler 1.0.8.7__tar.gz → 1.0.9.0__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 (129) hide show
  1. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/PKG-INFO +1 -1
  2. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/finance/sync_financial_report_service_api.py +5 -5
  3. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/finance/test/fix_blask_list.py +3 -5
  4. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/k_line/clean/k_line_info_clean_task.py +0 -16
  5. mns-scheduler-1.0.9.0/mns_scheduler/k_line/test/k_line_info_clean_his_data.py +28 -0
  6. mns-scheduler-1.0.9.0/mns_scheduler/risk/compliance/__init__.py +0 -0
  7. mns-scheduler-1.0.9.0/mns_scheduler/risk/compliance/undisclosed_annual_report_api.py +65 -0
  8. mns-scheduler-1.0.9.0/mns_scheduler/risk/financial/__init__.py +0 -0
  9. mns-scheduler-1.0.9.0/mns_scheduler/risk/financial/annual_report_audit_check_api.py +43 -0
  10. mns-scheduler-1.0.9.0/mns_scheduler/risk/financial/net_assets_check_api.py +54 -0
  11. mns-scheduler-1.0.9.0/mns_scheduler/risk/financial/profit_income_check_api.py +75 -0
  12. mns-scheduler-1.0.9.0/mns_scheduler/risk/financial/stock_equity_mortgage_check_api.py +1 -0
  13. mns-scheduler-1.0.9.0/mns_scheduler/risk/financial_report_risk_check_api.py +42 -0
  14. mns-scheduler-1.0.9.0/mns_scheduler/risk/major_violations/__init__.py +0 -0
  15. {mns-scheduler-1.0.8.7/mns_scheduler/risk → mns-scheduler-1.0.9.0/mns_scheduler/risk/major_violations}/register_and_investigate_stock_sync_api.py +10 -6
  16. mns-scheduler-1.0.9.0/mns_scheduler/risk/self/__init__.py +0 -0
  17. {mns-scheduler-1.0.8.7/mns_scheduler/risk → mns-scheduler-1.0.9.0/mns_scheduler/risk/self}/wei_pan_stock_api.py +7 -1
  18. mns-scheduler-1.0.9.0/mns_scheduler/risk/transactions/__init__.py +0 -0
  19. mns-scheduler-1.0.9.0/mns_scheduler/zt/script/__init__.py +7 -0
  20. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/zz_task/data_sync_task.py +6 -5
  21. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler.egg-info/PKG-INFO +1 -1
  22. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler.egg-info/SOURCES.txt +15 -4
  23. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/setup.py +1 -1
  24. mns-scheduler-1.0.8.7/mns_scheduler/finance/financial_high_risk_stock_clean_service_api.py +0 -202
  25. mns-scheduler-1.0.8.7/mns_scheduler/risk/stock_equity_mortgage_sync_api.py +0 -32
  26. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/README.md +0 -0
  27. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/__init__.py +0 -0
  28. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/backup/__init__.py +0 -0
  29. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/backup/app/__init__.py +0 -0
  30. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/backup/app/ths_new_concept_sync_app.py +0 -0
  31. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/backup/em/__init__.py +0 -0
  32. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/backup/em/em_new_concept_his_sync.py +0 -0
  33. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/backup/em/em_new_concept_sync_common_api.py +0 -0
  34. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/backup/em/em_new_concept_sync_web.py +0 -0
  35. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/backup/wen_cai/__init__.py +0 -0
  36. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/backup/wen_cai/wen_cai_concept_sync.py +0 -0
  37. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/big_deal/__init__.py +0 -0
  38. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/big_deal/ths_big_deal_sync.py +0 -0
  39. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/company_info/__init__.py +0 -0
  40. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/company_info/company_constant_data.py +0 -0
  41. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/company_info/company_info_sync_api.py +0 -0
  42. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/company_info/de_list_stock_service.py +0 -0
  43. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/concept/__init__.py +0 -0
  44. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/concept/clean/__init__.py +0 -0
  45. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/concept/clean/kpl_concept_clean_api.py +0 -0
  46. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/concept/clean/ths_concept_clean_api.py +0 -0
  47. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/concept/ths/__init__.py +0 -0
  48. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/concept/ths/common/__init__.py +0 -0
  49. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/concept/ths/common/ths_concept_sync_common_api.py +0 -0
  50. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/concept/ths/common/ths_concept_update_common_api.py +0 -0
  51. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/concept/ths/sync_new_index/__init__.py +0 -0
  52. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/concept/ths/sync_new_index/sync_ths_concept_by_ak_api.py +0 -0
  53. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/concept/ths/sync_new_index/sync_ths_new_concept_by_web_api.py +0 -0
  54. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/concept/ths/update_concept_info/__init__.py +0 -0
  55. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/concept/ths/update_concept_info/sync_one_concept_all_symbols_api.py +0 -0
  56. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/concept/ths/update_concept_info/sync_one_symbol_all_concepts_api.py +0 -0
  57. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/db/__init__.py +0 -0
  58. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/db/col_move_service.py +0 -0
  59. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/db/db_status.py +0 -0
  60. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/dt/__init__.py +0 -0
  61. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/dt/stock_dt_pool_sync.py +0 -0
  62. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/finance/__init__.py +0 -0
  63. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/finance/em_financial_asset_liability_sync_service_api.py +0 -0
  64. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/finance/em_financial_profit_sync_service_api.py +0 -0
  65. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/finance/finance_common_api.py +0 -0
  66. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/finance/test/__init__.py +0 -0
  67. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/hk/__init__.py +0 -0
  68. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/hk/hk_company_info_sync_service_api.py +0 -0
  69. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/irm/__init__.py +0 -0
  70. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/irm/api/__init__.py +0 -0
  71. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/irm/api/sh_stock_sns_sse_info_api.py +0 -0
  72. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/irm/api/sz_stock_sns_sse_info_api.py +0 -0
  73. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/irm/stock_irm_cninfo_service.py +0 -0
  74. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/k_line/__init__.py +0 -0
  75. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/k_line/clean/__init__.py +0 -0
  76. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/k_line/clean/daily/__init__.py +0 -0
  77. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/k_line/clean/daily/daily_k_line_clean_common_service.py +0 -0
  78. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/k_line/clean/daily/daily_k_line_service.py +0 -0
  79. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/k_line/clean/k_line_info_clean_impl.py +0 -0
  80. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/k_line/clean/week_month/__init__.py +0 -0
  81. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/k_line/clean/week_month/normal_week_month_k_line_service.py +0 -0
  82. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/k_line/clean/week_month/sub_new_week_month_k_line_service.py +0 -0
  83. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/k_line/hot_stocks/__init__.py +0 -0
  84. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/k_line/hot_stocks/recent_hot_stocks_clean_service.py +0 -0
  85. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/k_line/sync/__init__.py +0 -0
  86. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/k_line/sync/daily_week_month_line_sync.py +0 -0
  87. {mns-scheduler-1.0.8.7/mns_scheduler/lhb → mns-scheduler-1.0.9.0/mns_scheduler/k_line/test}/__init__.py +0 -0
  88. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/kpl/__init__.py +0 -0
  89. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/kpl/selection/__init__.py +0 -0
  90. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/kpl/selection/index/__init__.py +0 -0
  91. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/kpl/selection/index/sync_best_choose_his_index.py +0 -0
  92. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/kpl/selection/index/sync_best_choose_index.py +0 -0
  93. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/kpl/selection/symbol/__init__.py +0 -0
  94. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/kpl/selection/symbol/sync_best_choose_symbol.py +0 -0
  95. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/kpl/selection/total/__init__.py +0 -0
  96. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/kpl/selection/total/sync_kpl_best_total_sync_api.py +0 -0
  97. {mns-scheduler-1.0.8.7/mns_scheduler/open → mns-scheduler-1.0.9.0/mns_scheduler/lhb}/__init__.py +0 -0
  98. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/lhb/stock_lhb_sync_service.py +0 -0
  99. {mns-scheduler-1.0.8.7/mns_scheduler/risk → mns-scheduler-1.0.9.0/mns_scheduler/open}/__init__.py +0 -0
  100. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/open/sync_one_day_open_data_to_db_service.py +0 -0
  101. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/real_time/__init__.py +0 -0
  102. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/real_time/realtime_quotes_now_create_db_index.py +0 -0
  103. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/real_time/realtime_quotes_now_sync.py +0 -0
  104. {mns-scheduler-1.0.8.7/mns_scheduler/zt/script → mns-scheduler-1.0.9.0/mns_scheduler/risk}/__init__.py +0 -0
  105. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/trade/__init__.py +0 -0
  106. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/trade/auto_ipo_buy_api.py +0 -0
  107. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/trade/auto_sell_service_api.py +0 -0
  108. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/trade/sync_position_api.py +0 -0
  109. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/zb/__init__.py +0 -0
  110. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/zb/stock_zb_pool_sync.py +0 -0
  111. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/zt/__init__.py +0 -0
  112. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/zt/connected_boards/__init__.py +0 -0
  113. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/zt/connected_boards/zt_five_boards_sync_api.py +0 -0
  114. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/zt/export/__init__.py +0 -0
  115. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/zt/export/export_kcx_high_chg_open_data_to_excel.py +0 -0
  116. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/zt/high_chg/__init__.py +0 -0
  117. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/zt/high_chg/sync_high_chg_pool_service.py +0 -0
  118. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/zt/high_chg/sync_high_chg_real_time_quotes_service.py +0 -0
  119. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/zt/open_data/__init__.py +0 -0
  120. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/zt/open_data/kcx_high_chg_open_data_sync.py +0 -0
  121. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/zt/script/kcx_high_chg_open_his_data_handle.py +0 -0
  122. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/zt/script/sync_high_chg_pool_his_data.py +0 -0
  123. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/zt/zt_pool/__init__.py +0 -0
  124. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/zt/zt_pool/zt_pool_sync_api.py +0 -0
  125. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/zz_task/__init__.py +0 -0
  126. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler/zz_task/sync_realtime_quotes_task.py +0 -0
  127. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler.egg-info/dependency_links.txt +0 -0
  128. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/mns_scheduler.egg-info/top_level.txt +0 -0
  129. {mns-scheduler-1.0.8.7 → mns-scheduler-1.0.9.0}/setup.cfg +0 -0
@@ -1,3 +1,3 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mns-scheduler
3
- Version: 1.0.8.7
3
+ Version: 1.0.9.0
@@ -13,10 +13,10 @@ from mns_common.db.MongodbUtil import MongodbUtil
13
13
  from loguru import logger
14
14
  import \
15
15
  mns_scheduler.finance.em_financial_asset_liability_sync_service_api as em_financial_asset_liability_sync_service_api
16
- import mns_scheduler.finance.financial_high_risk_stock_clean_service_api as financial_high_risk_stock_clean_service_api
16
+ import mns_scheduler.risk.financial_report_risk_check_api as financial_report_risk_check_api
17
17
  import mns_common.utils.data_frame_util as data_frame_util
18
18
  import mns_scheduler.finance.finance_common_api as finance_common_api
19
-
19
+ import mns_scheduler.risk.compliance.undisclosed_annual_report_api as undisclosed_annual_report_api
20
20
  mongodb_util = MongodbUtil('27017')
21
21
 
22
22
 
@@ -59,7 +59,7 @@ def sync_financial_report():
59
59
  sync_profit_report(period_time, sync_time, period)
60
60
  sync_asset_liability_report(period_time, sync_time, period)
61
61
  # 未出报告check
62
- financial_high_risk_stock_clean_service_api.un_report_check(sync_time, now_year, period, period_time)
62
+ undisclosed_annual_report_api.un_disclosed_report_check(sync_time, now_year, period, period_time)
63
63
 
64
64
 
65
65
  # 同步资产表
@@ -81,7 +81,7 @@ def sync_asset_liability_report(period_time, sync_time, period):
81
81
  mongodb_util.insert_mongo(new_asset_df, db_name_constant.EM_STOCK_ASSET_LIABILITY)
82
82
 
83
83
  # 年报审核
84
- financial_high_risk_stock_clean_service_api.financial_report_check(new_asset_df, period_time, period,
84
+ financial_report_risk_check_api.financial_report_check(new_asset_df, period_time, period,
85
85
  db_name_constant.EM_STOCK_ASSET_LIABILITY)
86
86
 
87
87
  except Exception as e:
@@ -103,7 +103,7 @@ def sync_profit_report(period_time, sync_time, period):
103
103
  mongodb_util.insert_mongo(new_profit_df, db_name_constant.EM_STOCK_PROFIT)
104
104
 
105
105
  # 年报审核
106
- financial_high_risk_stock_clean_service_api.financial_report_check(new_profit_df, period_time,
106
+ financial_report_risk_check_api.financial_report_check(new_profit_df, period_time,
107
107
  period, db_name_constant.EM_STOCK_PROFIT)
108
108
  except Exception as e:
109
109
  logger.error("同步利润表异常:{},{},{}", symbol, period_time, e)
@@ -6,13 +6,11 @@ end = file_path.index('mns') + 16
6
6
  project_path = file_path[0:end]
7
7
  sys.path.append(project_path)
8
8
 
9
-
10
9
  import mns_common.constant.db_name_constant as db_name_constant
11
10
 
12
11
  from mns_common.db.MongodbUtil import MongodbUtil
13
12
 
14
- import mns_scheduler.finance.financial_high_risk_stock_clean_service_api as financial_high_risk_stock_clean_service_api
15
-
13
+ import mns_scheduler.risk.financial_report_risk_check_api as financial_report_risk_check_api
16
14
 
17
15
  mongodb_util = MongodbUtil('27017')
18
16
 
@@ -28,8 +26,8 @@ def fix_profit_black_list():
28
26
  em_stock_one_df = em_stock_profit_df_list.loc[
29
27
  em_stock_profit_df_list['SECURITY_CODE'] == em_stock_one.SECURITY_CODE]
30
28
 
31
- financial_high_risk_stock_clean_service_api.financial_report_check(em_stock_one_df, period_time, period,
32
- report_type)
29
+ financial_report_risk_check_api.financial_report_check(em_stock_one_df, period_time, period,
30
+ report_type)
33
31
 
34
32
 
35
33
  if __name__ == '__main__':
@@ -176,19 +176,3 @@ def create_k_line_index():
176
176
  mongodb_util.create_index('k_line_info', [("str_day", 1), ("symbol", 1)])
177
177
 
178
178
 
179
- def clean_history_data():
180
- query = {"$and": [{"trade_date": {"$gte": '2023-11-06'}}, {"trade_date": {"$lte": '2023-11-16'}}]}
181
- trade_date_list_df = mongodb_util.find_query_data('trade_date_list', query)
182
- trade_date_list_df = trade_date_list_df.sort_values(by=['trade_date'], ascending=False)
183
- for trade_data_one in trade_date_list_df.itertuples():
184
- try:
185
- sync_k_line_info_task(trade_data_one.trade_date)
186
- logger.info("清洗数据到:{}", trade_data_one.trade_date)
187
- except BaseException as e:
188
- logger.error("发生异常:{},{}", trade_data_one.trade_date, e)
189
-
190
-
191
- if __name__ == '__main__':
192
- sync_k_line_info("2024-06-03", None)
193
- # clean_history_data()
194
- # sync_k_line_info("2023-12-22")
@@ -0,0 +1,28 @@
1
+ import sys
2
+ import os
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
+ from mns_common.db.MongodbUtil import MongodbUtil
9
+ from loguru import logger
10
+ import mns_scheduler.k_line.clean.k_line_info_clean_task as k_line_info_clean_task
11
+
12
+ mongodb_util = MongodbUtil('27017')
13
+
14
+
15
+ def clean_history_data():
16
+ query = {"$and": [{"trade_date": {"$gte": '2023-11-06'}}, {"trade_date": {"$lte": '2024-05-29'}}]}
17
+ trade_date_list_df = mongodb_util.find_query_data('trade_date_list', query)
18
+ trade_date_list_df = trade_date_list_df.sort_values(by=['trade_date'], ascending=False)
19
+ for trade_data_one in trade_date_list_df.itertuples():
20
+ try:
21
+ k_line_info_clean_task.sync_k_line_info_task(trade_data_one.trade_date)
22
+ logger.info("清洗数据到:{}", trade_data_one.trade_date)
23
+ except BaseException as e:
24
+ logger.error("发生异常:{},{}", trade_data_one.trade_date, e)
25
+
26
+
27
+ if __name__ == '__main__':
28
+ clean_history_data()
@@ -0,0 +1,65 @@
1
+ from datetime import datetime
2
+ import mns_common.component.self_choose.black_list_service_api as black_list_service_api
3
+ import mns_scheduler.finance.finance_common_api as finance_common_api
4
+ from loguru import logger
5
+ import mns_common.constant.db_name_constant as db_name_constant
6
+ import mns_common.component.trade_date.trade_date_common_service_api as trade_date_common_service_api
7
+ import pandas as pd
8
+ from mns_common.constant.black_list_classify_enum import BlackClassify
9
+ import mns_common.component.company.company_common_service_api as company_common_service_api
10
+ import mns_common.utils.date_handle_util as date_handle_util
11
+
12
+ # 最迟出报告的交易天数
13
+ LATE_REPORT_DAYS = 3
14
+
15
+
16
+ # 未出财报检查
17
+ def un_disclosed_report_check(sync_time, now_year, period, period_time):
18
+ un_report_asset_df = finance_common_api.find_un_report_symbol(period_time,
19
+ db_name_constant.EM_STOCK_ASSET_LIABILITY)
20
+ un_report_profit_df = finance_common_api.find_un_report_symbol(period_time,
21
+ db_name_constant.EM_STOCK_PROFIT)
22
+ un_report_df = pd.concat([un_report_asset_df, un_report_profit_df])
23
+ if period == 4 or period == 1:
24
+ last_report_day = str(now_year) + "-05-01"
25
+ elif period == 2:
26
+ last_report_day = str(now_year) + "-07-01"
27
+ elif period == 3:
28
+ last_report_day = str(now_year) + "-10-01"
29
+ max_report_day = trade_date_common_service_api.get_before_trade_date(last_report_day, LATE_REPORT_DAYS)
30
+ all_company_info = company_common_service_api.get_company_info_industry_list_date()
31
+ if max_report_day >= sync_time:
32
+
33
+ for un_asset_one in un_report_df.itertuples():
34
+ symbol = un_asset_one.symbol
35
+ company_info_one = all_company_info.loc[all_company_info['_id'] == symbol]
36
+ list_date = list(company_info_one['list_date'])[0]
37
+ list_date = str(list_date)
38
+ list_date_time = date_handle_util.add_date_day(list_date[0:8], 0)
39
+ list_date_str = list_date_time.strftime('%Y-%m-%d')
40
+ if max_report_day < list_date_str:
41
+ continue
42
+ id_key = symbol + "_" + period_time + "_" + BlackClassify.UNDISCLOSED_REPORT.level_code
43
+ name = un_asset_one.name
44
+ now_date = datetime.now()
45
+ str_day = now_date.strftime('%Y-%m-%d')
46
+ try:
47
+
48
+ black_list_service_api.save_black_stock(id_key,
49
+ symbol,
50
+ name,
51
+ str_day,
52
+ sync_time,
53
+ '未披露财务报告',
54
+ '未披露财务报告',
55
+ '',
56
+ BlackClassify.UNDISCLOSED_REPORT.up_level_code,
57
+ BlackClassify.UNDISCLOSED_REPORT.up_level_name,
58
+ BlackClassify.UNDISCLOSED_REPORT.level_code,
59
+ BlackClassify.UNDISCLOSED_REPORT.level_name)
60
+ except Exception as e:
61
+ logger.error("更新未出报告异常:{},{},{}", symbol, period_time, e)
62
+
63
+
64
+ if __name__ == '__main__':
65
+ un_disclosed_report_check('2024-04-20', 2024, 4, '2023-12-31 00:00:00')
@@ -0,0 +1,43 @@
1
+ import sys
2
+ import os
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.component.self_choose.black_list_service_api as black_list_service_api
9
+ from mns_common.db.MongodbUtil import MongodbUtil
10
+ from datetime import datetime
11
+ from mns_common.constant.black_list_classify_enum import BlackClassify
12
+
13
+ # 年报审计意见check
14
+ mongodb_util = MongodbUtil('27017')
15
+ # 审核标准意见
16
+ OPINION_TYPE = "标准无保留意见"
17
+
18
+
19
+ def annual_report_audit_check(new_report_df, period_time):
20
+ new_report_one_df = new_report_df.loc[new_report_df['REPORT_DATE'] == period_time]
21
+ # 审核意见
22
+ opinion_type = list(new_report_one_df['OPINION_TYPE'])[0]
23
+ symbol = list(new_report_one_df['SECURITY_CODE'])[0]
24
+ name = list(new_report_one_df['SECURITY_NAME_ABBR'])[0]
25
+ now_date = datetime.now()
26
+ str_day = now_date.strftime('%Y-%m-%d')
27
+ str_now_date = now_date.strftime('%Y-%m-%d %H:%M:%S')
28
+
29
+ # 年报有问题
30
+ if opinion_type != OPINION_TYPE:
31
+ id_key = symbol + "_" + period_time + "_" + BlackClassify.AUDIT_PROBLEM.level_code
32
+ black_list_service_api.save_black_stock(id_key,
33
+ symbol,
34
+ name,
35
+ str_day,
36
+ str_now_date,
37
+ '年报审计有问题:' + "[" + str(opinion_type) + "]",
38
+ '年报审计有问题',
39
+ '',
40
+ BlackClassify.AUDIT_PROBLEM.up_level_code,
41
+ BlackClassify.AUDIT_PROBLEM.up_level_name,
42
+ BlackClassify.AUDIT_PROBLEM.level_code,
43
+ BlackClassify.AUDIT_PROBLEM.level_name)
@@ -0,0 +1,54 @@
1
+ from datetime import datetime
2
+ import mns_common.component.self_choose.black_list_service_api as black_list_service_api
3
+ import mns_common.constant.db_name_constant as db_name_constant
4
+ from mns_common.db.MongodbUtil import MongodbUtil
5
+ import mns_common.component.common_service_fun_api as common_service_fun_api
6
+ from mns_common.constant.black_list_classify_enum import BlackClassify
7
+
8
+ mongodb_util = MongodbUtil('27017')
9
+ # 最大负债比
10
+ MAX_LIABILITY_RATIO = 90
11
+ # 负载超过90%时候最小净资产
12
+ MIN_NET_ASSET = 1000000000
13
+ # 排除校验负债比的行业
14
+ EXCLUDE_INDUSTRY = ['保险', '银行', '证券']
15
+
16
+
17
+ # 负债比校验| 净资产check
18
+ def net_assets_check(report_type, new_report_df, period_time):
19
+ if report_type == db_name_constant.EM_STOCK_ASSET_LIABILITY:
20
+ new_report_df = new_report_df.sort_values(by=['REPORT_DATE'], ascending=False)
21
+ new_report_one_df = new_report_df.iloc[0:1]
22
+ # 负债比
23
+ liability_ratio = list(new_report_one_df['liability_ratio'])[0]
24
+ # 净资产
25
+ net_asset = round(list(new_report_one_df['TOTAL_ASSETS'])[0] - list(new_report_one_df['TOTAL_LIABILITIES'])[0],
26
+ 2)
27
+
28
+ symbol = list(new_report_one_df['SECURITY_CODE'])[0]
29
+ name = list(new_report_one_df['SECURITY_NAME_ABBR'])[0]
30
+ now_date = datetime.now()
31
+ str_day = now_date.strftime('%Y-%m-%d')
32
+ str_now_date = now_date.strftime('%Y-%m-%d %H:%M:%S')
33
+ id_key = symbol + "_" + period_time + "_" + BlackClassify.FINANCIAL_PROBLEM_DEBT.level_code
34
+
35
+ query_company = {'_id': symbol, 'industry': {'$in': EXCLUDE_INDUSTRY}}
36
+ if mongodb_util.exist_data_query(db_name_constant.COMPANY_INFO, query_company):
37
+ return None
38
+
39
+ if liability_ratio >= MAX_LIABILITY_RATIO:
40
+ black_list_service_api.save_black_stock(id_key,
41
+ symbol,
42
+ name,
43
+ str_day,
44
+ str_now_date,
45
+ '负债过高:' + "[" + str(
46
+ liability_ratio) + "]" + "," + "净资产:"
47
+ + str(round(net_asset / common_service_fun_api.HUNDRED_MILLION,
48
+ 0)) + "亿",
49
+ '负债过高:' + "[" + str(liability_ratio) + "]",
50
+ '',
51
+ BlackClassify.FINANCIAL_PROBLEM_DEBT.up_level_code,
52
+ BlackClassify.FINANCIAL_PROBLEM_DEBT.up_level_name,
53
+ BlackClassify.FINANCIAL_PROBLEM_DEBT.level_code,
54
+ BlackClassify.FINANCIAL_PROBLEM_DEBT.level_name)
@@ -0,0 +1,75 @@
1
+ import sys
2
+ import os
3
+ from datetime import datetime
4
+ import mns_common.constant.db_name_constant as db_name_constant
5
+ import mns_common.component.self_choose.black_list_service_api as black_list_service_api
6
+ import mns_common.component.common_service_fun_api as common_service_fun_api
7
+ from mns_common.constant.black_list_classify_enum import BlackClassify
8
+
9
+ file_path = os.path.abspath(__file__)
10
+ end = file_path.index('mns') + 16
11
+ project_path = file_path[0:end]
12
+ sys.path.append(project_path)
13
+
14
+ # 利润为负的时候最小营业收入 主板 3.2亿
15
+ MIN_INCOME_MAIN = 320000000
16
+ # 利润为负的时候最小营业收入 科创 创业 1.2亿
17
+ MIN_INCOME_SUB = 120000000
18
+
19
+
20
+ # 营收利润check
21
+
22
+ def profit_income_check(new_report_df, period_time, report_type):
23
+ new_report_one_df = new_report_df.loc[new_report_df['REPORT_DATE'] == period_time]
24
+ symbol = list(new_report_one_df['SECURITY_CODE'])[0]
25
+ name = list(new_report_one_df['SECURITY_NAME_ABBR'])[0]
26
+ now_date = datetime.now()
27
+ str_day = now_date.strftime('%Y-%m-%d')
28
+ str_now_date = now_date.strftime('%Y-%m-%d %H:%M:%S')
29
+
30
+ if report_type == db_name_constant.EM_STOCK_PROFIT:
31
+ # 利润总额 净利润 扣除非经常性损益后的净利润 三者最小为负
32
+ # 利润总额
33
+ total_profit = list(new_report_one_df['TOTAL_PROFIT'])[0]
34
+ # 净利润
35
+ net_profit = list(new_report_one_df['NETPROFIT'])[0]
36
+ # 营业利润
37
+ operate_profit = list(new_report_one_df['OPERATE_PROFIT'])[0]
38
+ # 持续经营净利润
39
+ continued_profit = list(new_report_one_df['CONTINUED_NETPROFIT'])[0]
40
+ # 归属于母公司股东的净利润
41
+ parent_profit = list(new_report_one_df['PARENT_NETPROFIT'])[0]
42
+ # 扣除非经常性损益后的净利润
43
+ deduct_parent_profit = list(new_report_one_df['DEDUCT_PARENT_NETPROFIT'])[0]
44
+ # 营业总收入
45
+ total_operate_income = list(new_report_one_df['TOTAL_OPERATE_INCOME'])[0]
46
+ if total_operate_income == 0:
47
+ # 营业收入
48
+ total_operate_income = list(new_report_one_df['OPERATE_INCOME'])[0]
49
+
50
+ # 最小利润收入
51
+ min_profit = min(total_profit, net_profit, operate_profit,
52
+ continued_profit, parent_profit, deduct_parent_profit)
53
+ if min_profit < 0:
54
+
55
+ classification = common_service_fun_api.classify_symbol_one(symbol)
56
+ if ((classification in ['S', 'H'] and total_operate_income < MIN_INCOME_MAIN)
57
+ | (classification in ['K', 'C'] and total_operate_income < MIN_INCOME_SUB)):
58
+ id_key = symbol + "_" + period_time + "_" + BlackClassify.FINANCIAL_PROBLEM_PROFIT.level_code
59
+ min_profit = round(min_profit / common_service_fun_api.TEN_THOUSAND, 1)
60
+ total_operate_income = round(total_operate_income / common_service_fun_api.HUNDRED_MILLION, 1)
61
+
62
+ black_list_service_api.save_black_stock(id_key,
63
+ symbol,
64
+ name,
65
+ str_day,
66
+ str_now_date,
67
+ '年报:利润:' + '[' + str(min_profit) + '万]' + '收入:' + str(
68
+ total_operate_income) + '[' + '亿元]--' + '触发退市风险',
69
+ '年报:利润:' + '[' + str(min_profit) + '万]' + '收入:' + str(
70
+ total_operate_income) + '[' + '亿元]--' + '触发退市风险',
71
+ '',
72
+ BlackClassify.FINANCIAL_PROBLEM_PROFIT.up_level_code,
73
+ BlackClassify.FINANCIAL_PROBLEM_PROFIT.up_level_name,
74
+ BlackClassify.FINANCIAL_PROBLEM_PROFIT.level_code,
75
+ BlackClassify.FINANCIAL_PROBLEM_PROFIT.level_name)
@@ -0,0 +1,42 @@
1
+ import sys
2
+ import os
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_scheduler.risk.financial.net_assets_check_api as net_assets_check_api
9
+ import mns_scheduler.risk.financial.annual_report_audit_check_api as annual_report_audit_check_api
10
+ import mns_scheduler.risk.financial.profit_income_check_api as profit_income_check_api
11
+
12
+
13
+ # 1.无保留意见/标准报告:报告没问题。(没有发现造假,但也不能保证为真)
14
+ #
15
+ # 2.带强调事项段的无保留意见:报告没问题,但是有亏损获对其可持续经营有重大疑虑(可能造假,至少是在粉饰报表)
16
+ #
17
+ # 3.保留意见报告:有问题,财务造假
18
+ #
19
+ # 4.否定意见报告:有很大问题
20
+ #
21
+ # 5.无法表示意见报告:不让查
22
+ #
23
+
24
+
25
+ #### 退市新规 ####
26
+ # 1 股价类:连续20个交易日估价低于1元
27
+ # 2 市值类: 主板小于5亿、创业板3亿
28
+ # 3 财务类: (1) 利润总额 净利润 扣非净利润三者最小值为负 且营业收入小于3亿 创业板营业收入小于1元
29
+ # (2) 资不抵债
30
+
31
+
32
+ # 财报审核
33
+ def financial_report_check(new_report_df, period_time, period, report_type):
34
+ # 年报审核
35
+ if period == 4:
36
+ # 年报审计意见
37
+ annual_report_audit_check_api.annual_report_audit_check(new_report_df, period_time)
38
+ # 年报收入利润check
39
+ profit_income_check_api.profit_income_check(new_report_df, period_time, report_type)
40
+
41
+ # 负债过高
42
+ net_assets_check_api.net_assets_check(report_type, new_report_df, period_time)
@@ -14,7 +14,7 @@ from loguru import logger
14
14
  import mns_common.constant.db_name_constant as db_name_constant
15
15
  from mns_common.db.MongodbUtil import MongodbUtil
16
16
  import mns_common.utils.data_frame_util as data_frame_util
17
-
17
+ from mns_common.constant.black_list_classify_enum import BlackClassify
18
18
  mongodb_util = MongodbUtil('27017')
19
19
 
20
20
 
@@ -62,7 +62,7 @@ def sync_all_investigate_stocks(page_size, search_key, begin_day, end_day):
62
62
 
63
63
  # 立案调查的股票
64
64
  def sync_new_high_risk_stocks():
65
- before_days = 30
65
+ before_days = 500
66
66
  const_num = 30
67
67
  init_date = datetime.now()
68
68
  str_day = init_date.strftime('%Y-%m-%d')
@@ -109,13 +109,17 @@ def sync_new_high_risk_stocks():
109
109
  high_risk_stocks_one.announcementTitle,
110
110
  high_risk_stocks_one.announcementTitle,
111
111
  announce_url,
112
- black_list_service_api.REGISTER_INVESTIGATE)
112
+ BlackClassify.MAJOR_VIOLATIONS.up_level_code,
113
+ BlackClassify.MAJOR_VIOLATIONS.up_level_name,
114
+ BlackClassify.REGISTER_INVESTIGATE.level_code,
115
+ BlackClassify.REGISTER_INVESTIGATE.level_name,
116
+ )
113
117
  except Exception as e:
114
118
  logger.error("保存风险警示股票异常:{},{}", symbol, e)
115
119
 
116
120
 
117
121
  if __name__ == '__main__':
118
122
  sync_new_high_risk_stocks()
119
- result_df = sync_all_investigate_stocks(30, '立案', '2023-01-01', '2024-05-15')
120
- result_df = result_df.sort_values(by=['announcementTime'], ascending=False)
121
- print(result_df)
123
+ # result_df = sync_all_investigate_stocks(30, '立案', '2023-01-01', '2024-06-15')
124
+ # result_df = result_df.sort_values(by=['announcementTime'], ascending=False)
125
+ # print(result_df)
@@ -11,6 +11,7 @@ import mns_common.component.self_choose.black_list_service_api as black_list_ser
11
11
  from datetime import datetime
12
12
  from loguru import logger
13
13
  import mns_common.utils.data_frame_util as data_frame_util
14
+ from mns_common.constant.black_list_classify_enum import BlackClassify
14
15
 
15
16
 
16
17
  def add_concept_to_lack_list(concept_code, reason):
@@ -34,7 +35,12 @@ def add_concept_to_lack_list(concept_code, reason):
34
35
  reason,
35
36
  reason,
36
37
  '',
37
- black_list_service_api.SELF_SHIELD)
38
+ BlackClassify.SELF_SHIELD_OTHER.up_level_code,
39
+ BlackClassify.SELF_SHIELD_OTHER.up_level_name,
40
+ BlackClassify.SELF_SHIELD_OTHER.level_code,
41
+ BlackClassify.SELF_SHIELD_OTHER.level_name,
42
+
43
+ )
38
44
  except BaseException as e:
39
45
  logger.error("概念拉黑异常:{}", e)
40
46
 
@@ -0,0 +1,7 @@
1
+ import sys
2
+ import os
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)
@@ -6,7 +6,8 @@ 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_scheduler.risk.register_and_investigate_stock_sync_api as register_and_investigate_stock_sync_api
9
+ import mns_scheduler.risk.major_violations.register_and_investigate_stock_sync_api \
10
+ as register_and_investigate_stock_sync_api
10
11
  from loguru import logger
11
12
  from apscheduler.schedulers.blocking import BlockingScheduler
12
13
  from datetime import datetime
@@ -44,7 +45,7 @@ import mns_scheduler.irm.stock_irm_cninfo_service as stock_irm_cninfo_service
44
45
  import mns_scheduler.open.sync_one_day_open_data_to_db_service as sync_one_day_open_data_to_db_service
45
46
  import mns_scheduler.zt.high_chg.sync_high_chg_pool_service as sync_high_chg_pool_service
46
47
  import mns_scheduler.zt.high_chg.sync_high_chg_real_time_quotes_service as sync_high_chg_real_time_quotes_service
47
- import mns_scheduler.risk.wei_pan_stock_api as wei_pan_stock_api
48
+ import mns_scheduler.risk.self.wei_pan_stock_api as wei_pan_stock_api
48
49
 
49
50
 
50
51
  # 同步交易日期任务完成
@@ -97,7 +98,7 @@ def col_data_move():
97
98
  logger.info('当天实时数据备份:{}', str_day)
98
99
  if trade_date_common_service_api.is_trade_day(str_day):
99
100
  mac_address = ip_util.get_mac_address()
100
- if mac_address is not None and mac_address == ip_util.MAC_ADDRESS_CD:
101
+ if mac_address is not None and mac_address == ip_util.WINDOWS_MAC_ADDRESS_CD:
101
102
  col_move_service.sync_col_move(str_day)
102
103
  else:
103
104
  # 删除最早一天数据
@@ -159,7 +160,7 @@ def sync_toady_stock_zt_pool():
159
160
  # 同步高涨幅实时行情
160
161
  sync_high_chg_real_time_quotes_service.sync_high_chg_real_time_quotes(str_day)
161
162
  # 同步高涨幅列表
162
- sync_high_chg_pool_service.sync_stock_high_chg_pool_list(str_day,None)
163
+ sync_high_chg_pool_service.sync_stock_high_chg_pool_list(str_day, None)
163
164
 
164
165
 
165
166
  # 计算下一个交易日k线数据
@@ -426,4 +427,4 @@ print('定时任务启动成功')
426
427
  blockingScheduler.start()
427
428
  #
428
429
  # if __name__ == '__main__':
429
- # sync_kpl_best_his_quotes()
430
+ # col_data_move()
@@ -1,3 +1,3 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mns-scheduler
3
- Version: 1.0.8.7
3
+ Version: 1.0.9.0
@@ -43,7 +43,6 @@ mns_scheduler/finance/__init__.py
43
43
  mns_scheduler/finance/em_financial_asset_liability_sync_service_api.py
44
44
  mns_scheduler/finance/em_financial_profit_sync_service_api.py
45
45
  mns_scheduler/finance/finance_common_api.py
46
- mns_scheduler/finance/financial_high_risk_stock_clean_service_api.py
47
46
  mns_scheduler/finance/sync_financial_report_service_api.py
48
47
  mns_scheduler/finance/test/__init__.py
49
48
  mns_scheduler/finance/test/fix_blask_list.py
@@ -68,6 +67,8 @@ mns_scheduler/k_line/hot_stocks/__init__.py
68
67
  mns_scheduler/k_line/hot_stocks/recent_hot_stocks_clean_service.py
69
68
  mns_scheduler/k_line/sync/__init__.py
70
69
  mns_scheduler/k_line/sync/daily_week_month_line_sync.py
70
+ mns_scheduler/k_line/test/__init__.py
71
+ mns_scheduler/k_line/test/k_line_info_clean_his_data.py
71
72
  mns_scheduler/kpl/__init__.py
72
73
  mns_scheduler/kpl/selection/__init__.py
73
74
  mns_scheduler/kpl/selection/index/__init__.py
@@ -85,9 +86,19 @@ mns_scheduler/real_time/__init__.py
85
86
  mns_scheduler/real_time/realtime_quotes_now_create_db_index.py
86
87
  mns_scheduler/real_time/realtime_quotes_now_sync.py
87
88
  mns_scheduler/risk/__init__.py
88
- mns_scheduler/risk/register_and_investigate_stock_sync_api.py
89
- mns_scheduler/risk/stock_equity_mortgage_sync_api.py
90
- mns_scheduler/risk/wei_pan_stock_api.py
89
+ mns_scheduler/risk/financial_report_risk_check_api.py
90
+ mns_scheduler/risk/compliance/__init__.py
91
+ mns_scheduler/risk/compliance/undisclosed_annual_report_api.py
92
+ mns_scheduler/risk/financial/__init__.py
93
+ mns_scheduler/risk/financial/annual_report_audit_check_api.py
94
+ mns_scheduler/risk/financial/net_assets_check_api.py
95
+ mns_scheduler/risk/financial/profit_income_check_api.py
96
+ mns_scheduler/risk/financial/stock_equity_mortgage_check_api.py
97
+ mns_scheduler/risk/major_violations/__init__.py
98
+ mns_scheduler/risk/major_violations/register_and_investigate_stock_sync_api.py
99
+ mns_scheduler/risk/self/__init__.py
100
+ mns_scheduler/risk/self/wei_pan_stock_api.py
101
+ mns_scheduler/risk/transactions/__init__.py
91
102
  mns_scheduler/trade/__init__.py
92
103
  mns_scheduler/trade/auto_ipo_buy_api.py
93
104
  mns_scheduler/trade/auto_sell_service_api.py
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
2
2
 
3
3
  setup(
4
4
  name='mns-scheduler',
5
- version='1.0.8.7',
5
+ version='1.0.9.0',
6
6
  packages=find_packages(),
7
7
  install_requires=[], # 如果有依赖项,可以在这里列出
8
8
  )