mns-scheduler 1.2.9.6__py3-none-any.whl → 1.4.2.5__py3-none-any.whl

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 (135) hide show
  1. mns_scheduler/company_info/announce/__init__.py +1 -1
  2. mns_scheduler/company_info/announce/company_announce_sync_service.py +11 -6
  3. mns_scheduler/company_info/base/__init__.py +1 -1
  4. mns_scheduler/company_info/base/sync_company_base_info_api.py +164 -74
  5. mns_scheduler/company_info/base/sync_company_hold_info_api.py +3 -6
  6. mns_scheduler/company_info/base/sync_company_product_area_industry.py +161 -0
  7. mns_scheduler/company_info/clean/__init__.py +1 -1
  8. mns_scheduler/company_info/clean/company_info_clean_api.py +2 -2
  9. mns_scheduler/company_info/constant/__init__.py +1 -1
  10. mns_scheduler/company_info/constant/company_constant_data.py +4 -0
  11. mns_scheduler/company_info/de_list_stock/__init__.py +1 -1
  12. mns_scheduler/company_info/de_list_stock/de_list_stock_service.py +1 -1
  13. mns_scheduler/company_info/em_stock_info/__init__.py +1 -1
  14. mns_scheduler/company_info/em_stock_info/sync_em_stock_info_sync.py +44 -33
  15. mns_scheduler/company_info/remark/__init__.py +1 -1
  16. mns_scheduler/company_info/remark/company_remark_info_sync.py +1 -1
  17. mns_scheduler/concept/clean/kpl_concept_clean_api.py +1 -1
  18. mns_scheduler/concept/clean/ths_concept_clean_api.py +3 -6
  19. mns_scheduler/db/script/__init__.py +1 -1
  20. mns_scheduler/db/script/col_move_script.py +1 -1
  21. mns_scheduler/db/script/db_move/__init__.py +1 -1
  22. mns_scheduler/db/script/db_move/col_move_one_service.py +1 -1
  23. mns_scheduler/db/script/sync/__init__.py +1 -1
  24. mns_scheduler/db/script/sync/remote_data_sync_to_local.py +39 -9
  25. mns_scheduler/db/script/sync/sync_hui_ce_test_data.py +35 -24
  26. mns_scheduler/db/script/sync/sync_hui_ce_test_data_01.py +23 -23
  27. mns_scheduler/db/script/update/__init__.py +1 -1
  28. mns_scheduler/db/script/update/update_col_field.py +1 -1
  29. mns_scheduler/finance/__init__.py +1 -1
  30. mns_scheduler/finance/{em_financial_asset_liability_sync_service_api.py → em/em_financial_asset_liability_sync_service_api.py} +2 -2
  31. mns_scheduler/finance/{em_financial_profit_sync_service_api.py → em/em_financial_profit_sync_service_api.py} +6 -4
  32. mns_scheduler/finance/{finance_common_api.py → em/finance_common_api.py} +1 -1
  33. mns_scheduler/finance/{sync_financial_report_service_api.py → sync_financial_report_service_task.py} +80 -27
  34. mns_scheduler/finance/xue_qiu/down_load_xueqiu_report_api.py +77 -0
  35. mns_scheduler/finance/xue_qiu/sync_xue_qiu_fiance_data.py +161 -0
  36. mns_scheduler/hk/__init__.py +1 -1
  37. mns_scheduler/hk/hk_company_info_sync_service_api.py +2 -1
  38. mns_scheduler/hk/hk_industry_info_sync_service_api.py +1 -1
  39. mns_scheduler/industry/__init__.py +1 -1
  40. mns_scheduler/industry/ths/__init__.py +1 -1
  41. mns_scheduler/industry/ths/ths_industry_index_service.py +1 -1
  42. mns_scheduler/industry/ths/ths_industry_sync_service.py +1 -1
  43. mns_scheduler/irm/__init__.py +1 -1
  44. mns_scheduler/irm/api/__init__.py +1 -1
  45. mns_scheduler/irm/api/sh_stock_sns_sse_info_api.py +1 -1
  46. mns_scheduler/irm/api/sz_stock_sns_sse_info_api.py +1 -1
  47. mns_scheduler/irm/stock_irm_cninfo_service.py +10 -6
  48. mns_scheduler/k_line/clean/daily/__init__.py +1 -1
  49. mns_scheduler/k_line/clean/daily/daily_k_line_clean_common_service.py +1 -1
  50. mns_scheduler/k_line/clean/daily/daily_k_line_service.py +1 -1
  51. mns_scheduler/k_line/clean/k_line_info_clean_task.py +7 -2
  52. mns_scheduler/k_line/clean/week_month/__init__.py +1 -1
  53. mns_scheduler/k_line/clean/week_month/normal_week_month_k_line_service.py +1 -1
  54. mns_scheduler/k_line/clean/week_month/sub_new_week_month_k_line_service.py +1 -1
  55. mns_scheduler/{extraIncome/one_minute → k_line}/common/__init__.py +1 -1
  56. mns_scheduler/k_line/common/k_line_common_api.py +188 -0
  57. mns_scheduler/k_line/hot_stocks/__init__.py +1 -1
  58. mns_scheduler/k_line/hot_stocks/recent_hot_stocks_clean_service.py +1 -1
  59. mns_scheduler/k_line/month_week_daily/bfq_k_line_sync.py +12 -32
  60. mns_scheduler/k_line/month_week_daily/daily_week_month_line_sync.py +6 -13
  61. mns_scheduler/k_line/sync_status/k_line_sync_status_check.py +54 -0
  62. mns_scheduler/k_line/test/__init__.py +1 -1
  63. mns_scheduler/k_line/test/k_line_info_clean_his_data.py +1 -1
  64. mns_scheduler/k_line/year_quarter/__init__.py +1 -1
  65. mns_scheduler/k_line/year_quarter/year_quarter_line_sync.py +17 -10
  66. mns_scheduler/kpl/selection/symbol/sync_best_choose_symbol.py +1 -2
  67. mns_scheduler/kpl/selection/symbol/sync_kpl_concept_symbol_choose_reason_api.py +108 -0
  68. mns_scheduler/kpl/selection/total/sync_kpl_best_total_sync_api.py +5 -0
  69. mns_scheduler/lhb/__init__.py +1 -1
  70. mns_scheduler/lhb/stock_lhb_sync_service.py +1 -1
  71. mns_scheduler/open/__init__.py +1 -1
  72. mns_scheduler/open/sync_one_day_open_data_to_db_service.py +1 -1
  73. mns_scheduler/risk/__init__.py +1 -1
  74. mns_scheduler/risk/compliance/undisclosed_annual_report_api.py +4 -2
  75. mns_scheduler/risk/financial/annual_report_audit_check_api.py +1 -1
  76. mns_scheduler/risk/financial/profit_income_check_api.py +1 -2
  77. mns_scheduler/risk/financial_report_risk_check_api.py +1 -1
  78. mns_scheduler/risk/major_violations/register_and_investigate_stock_sync_api.py +1 -1
  79. mns_scheduler/risk/self/wei_pan_stock_api.py +1 -1
  80. mns_scheduler/risk/test/__init__.py +1 -1
  81. mns_scheduler/risk/test/fix_blask_list.py +2 -2
  82. mns_scheduler/risk/transactions/transactions_check_api.py +2 -2
  83. mns_scheduler/self_choose/__init__.py +1 -1
  84. mns_scheduler/self_choose/ths_self_choose_service.py +37 -28
  85. mns_scheduler/trade/auto_login/trader_auto_service.py +6 -4
  86. mns_scheduler/trade/auto_sell_service_api.py +2 -2
  87. mns_scheduler/trade/balance/__init__.py +1 -1
  88. mns_scheduler/trade/balance/ths_account_balance_service.py +1 -1
  89. mns_scheduler/trade/sync_position_api.py +1 -1
  90. mns_scheduler/trade/task/trader_task_service.py +26 -9
  91. mns_scheduler/trade/tfp/__init__.py +1 -1
  92. mns_scheduler/trade/tfp/stock_tfp_info_sync.py +5 -2
  93. mns_scheduler/zt/script/__init__.py +1 -1
  94. mns_scheduler/zt/script/fix_error_deal_day.py +1 -1
  95. mns_scheduler/zt/script/kcx_high_chg_open_his_data_handle.py +2 -2
  96. mns_scheduler/zt/script/sync_high_chg_pool_his_data.py +2 -2
  97. mns_scheduler/zt/script/sync_now_higt_chg_zt.py +5 -4
  98. mns_scheduler/zt/zt_pool/em_zt_pool_sync_api.py +44 -17
  99. mns_scheduler/zt/zt_pool/ths_zt_pool_sync_api.py +33 -80
  100. mns_scheduler/zt/zt_pool/update_null_zt_reason_api.py +18 -5
  101. mns_scheduler/zz_task/compensation/__init__.py +0 -0
  102. mns_scheduler/zz_task/compensation/compensate_task.py +161 -0
  103. mns_scheduler/zz_task/compensation/compensate_task_one_day.py +142 -0
  104. mns_scheduler/zz_task/data_sync_task.py +64 -60
  105. {mns_scheduler-1.2.9.6.dist-info → mns_scheduler-1.4.2.5.dist-info}/METADATA +1 -1
  106. mns_scheduler-1.4.2.5.dist-info/RECORD +169 -0
  107. mns_scheduler/big_deal/__init__.py +0 -7
  108. mns_scheduler/big_deal/ths_big_deal_sync.py +0 -98
  109. mns_scheduler/debt/kzz_bond_info_sync.py +0 -33
  110. mns_scheduler/extraIncome/one_minute/common/db_create_index.py +0 -9
  111. mns_scheduler/extraIncome/one_minute/common/symbol_handle_util.py +0 -41
  112. mns_scheduler/extraIncome/one_minute/etf/__init__.py +0 -7
  113. mns_scheduler/extraIncome/one_minute/etf/etf_one_minute_sync_task.py +0 -87
  114. mns_scheduler/extraIncome/one_minute/index/__init__.py +0 -7
  115. mns_scheduler/extraIncome/one_minute/index/main_index_sync_task.py +0 -74
  116. mns_scheduler/extraIncome/one_minute/kzz/__init__.py +0 -7
  117. mns_scheduler/extraIncome/one_minute/kzz/kzz_one_minute_sync_task.py +0 -87
  118. mns_scheduler/extraIncome/one_minute/one_minute_sync_task.py +0 -34
  119. mns_scheduler/extraIncome/one_minute/stock/__init__.py +0 -7
  120. mns_scheduler/extraIncome/one_minute/stock/stock_one_minute_sync_task.py +0 -89
  121. mns_scheduler/extraIncome/temp/__init__.py +0 -7
  122. mns_scheduler/extraIncome/temp/tu_share_data_etf_sync.py +0 -103
  123. mns_scheduler/extraIncome/temp/tu_share_data_kzz_sync.py +0 -113
  124. mns_scheduler/extraIncome/temp/tu_share_data_stock_sync.py +0 -137
  125. mns_scheduler/extraIncome/temp/tu_share_zhi_shu_sync_api.py +0 -107
  126. mns_scheduler/us/__init__.py +0 -7
  127. mns_scheduler/us/baidu_yun_pan_handle_service.py +0 -131
  128. mns_scheduler/us/k_line.py +0 -91
  129. mns_scheduler/us/us_company_info_sync_service_api.py +0 -39
  130. mns_scheduler-1.2.9.6.dist-info/RECORD +0 -183
  131. /mns_scheduler/{debt → finance/em}/__init__.py +0 -0
  132. /mns_scheduler/{extraIncome → finance/xue_qiu}/__init__.py +0 -0
  133. /mns_scheduler/{extraIncome/one_minute → k_line/sync_status}/__init__.py +0 -0
  134. {mns_scheduler-1.2.9.6.dist-info → mns_scheduler-1.4.2.5.dist-info}/WHEEL +0 -0
  135. {mns_scheduler-1.2.9.6.dist-info → mns_scheduler-1.4.2.5.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  from datetime import datetime
2
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
3
+ import mns_scheduler.finance.em.finance_common_api as finance_common_api
4
4
  from loguru import logger
5
5
  import mns_common.constant.db_name_constant as db_name_constant
6
6
  import mns_common.component.trade_date.trade_date_common_service_api as trade_date_common_service_api
@@ -23,6 +23,8 @@ def un_disclosed_report_check(sync_time, now_year, period, period_time):
23
23
  if period == 4 or period == 1:
24
24
  month = sync_time[5:7]
25
25
  day = sync_time[8:10]
26
+ day = int(day)
27
+ month = int(month)
26
28
  if (month < 4) or (month == 4 and day < 20):
27
29
  return None
28
30
  last_report_day = str(now_year) + "-05-01"
@@ -66,4 +68,4 @@ def un_disclosed_report_check(sync_time, now_year, period, period_time):
66
68
 
67
69
 
68
70
  if __name__ == '__main__':
69
- un_disclosed_report_check('2024-04-20', 2024, 4, '2023-12-31 00:00:00')
71
+ un_disclosed_report_check('2025-04-29', 2025, 4, '2024-12-31 00:00:00')
@@ -2,7 +2,7 @@ import sys
2
2
  import os
3
3
 
4
4
  file_path = os.path.abspath(__file__)
5
- end = file_path.index('mns') + 16
5
+ end = file_path.index('mns') + 17
6
6
  project_path = file_path[0:end]
7
7
  sys.path.append(project_path)
8
8
  import mns_common.component.self_choose.black_list_service_api as black_list_service_api
@@ -9,7 +9,7 @@ from mns_common.db.MongodbUtil import MongodbUtil
9
9
 
10
10
  mongodb_util = MongodbUtil('27017')
11
11
  file_path = os.path.abspath(__file__)
12
- end = file_path.index('mns') + 16
12
+ end = file_path.index('mns') + 17
13
13
  project_path = file_path[0:end]
14
14
  sys.path.append(project_path)
15
15
 
@@ -27,7 +27,6 @@ def profit_income_check(new_report_df, period_time, report_type):
27
27
  name = list(new_report_one_df['SECURITY_NAME_ABBR'])[0]
28
28
  now_date = datetime.now()
29
29
  str_day = now_date.strftime('%Y-%m-%d')
30
- str_now_date = now_date.strftime('%Y-%m-%d %H:%M:%S')
31
30
  notice_date = list(new_report_one_df['NOTICE_DATE'])[0]
32
31
  if report_type == db_name_constant.EM_STOCK_PROFIT:
33
32
  # 利润总额 净利润 扣除非经常性损益后的净利润 三者最小为负
@@ -2,7 +2,7 @@ import sys
2
2
  import os
3
3
 
4
4
  file_path = os.path.abspath(__file__)
5
- end = file_path.index('mns') + 16
5
+ end = file_path.index('mns') + 17
6
6
  project_path = file_path[0:end]
7
7
  sys.path.append(project_path)
8
8
  import mns_scheduler.risk.financial.net_assets_check_api as net_assets_check_api
@@ -2,7 +2,7 @@ import sys
2
2
  import os
3
3
 
4
4
  file_path = os.path.abspath(__file__)
5
- end = file_path.index('mns') + 16
5
+ end = file_path.index('mns') + 17
6
6
  project_path = file_path[0:end]
7
7
  sys.path.append(project_path)
8
8
  import requests
@@ -2,7 +2,7 @@ import sys
2
2
  import os
3
3
 
4
4
  file_path = os.path.abspath(__file__)
5
- end = file_path.index('mns') + 16
5
+ end = file_path.index('mns') + 17
6
6
  project_path = file_path[0:end]
7
7
  sys.path.append(project_path)
8
8
 
@@ -2,6 +2,6 @@ import sys
2
2
  import os
3
3
 
4
4
  file_path = os.path.abspath(__file__)
5
- end = file_path.index('mns') + 16
5
+ end = file_path.index('mns') + 17
6
6
  project_path = file_path[0:end]
7
7
  sys.path.append(project_path)
@@ -2,7 +2,7 @@ import sys
2
2
  import os
3
3
 
4
4
  file_path = os.path.abspath(__file__)
5
- end = file_path.index('mns') + 16
5
+ end = file_path.index('mns') + 17
6
6
  project_path = file_path[0:end]
7
7
  sys.path.append(project_path)
8
8
 
@@ -18,7 +18,7 @@ def fix_profit_black_list():
18
18
  period = 4
19
19
  report_type_list = [db_name_constant.EM_STOCK_ASSET_LIABILITY, db_name_constant.EM_STOCK_PROFIT]
20
20
  for report_type in report_type_list:
21
- query = {'REPORT_DATE': period_time,'symbol':"002251"}
21
+ query = {'REPORT_DATE': period_time}
22
22
  em_stock_profit_df_list = mongodb_util.find_query_data(report_type, query)
23
23
  for em_stock_one in em_stock_profit_df_list.itertuples():
24
24
  em_stock_one_df = em_stock_profit_df_list.loc[
@@ -2,7 +2,7 @@ import sys
2
2
  import os
3
3
 
4
4
  file_path = os.path.abspath(__file__)
5
- end = file_path.index('mns') + 16
5
+ end = file_path.index('mns') + 17
6
6
  project_path = file_path[0:end]
7
7
  sys.path.append(project_path)
8
8
  import mns_common.component.em.em_stock_info_api as em_stock_info_api
@@ -49,7 +49,7 @@ def transactions_check_task():
49
49
  now_day_number = float(now_day_str)
50
50
 
51
51
  real_time_quotes_now = em_stock_info_api.get_a_stock_info()
52
- real_time_quotes_now['list_date'] = real_time_quotes_now['list_date'].fillna(99999999)
52
+ real_time_quotes_now['list_date'] = real_time_quotes_now['list_date'].fillna(19890604)
53
53
  real_time_quotes_now = real_time_quotes_now.loc[real_time_quotes_now['list_date'] <= now_day_number]
54
54
  real_time_quotes_now = common_service_fun_api.classify_symbol(real_time_quotes_now)
55
55
  real_time_quotes_now = common_service_fun_api.exclude_ts_symbol(real_time_quotes_now)
@@ -2,6 +2,6 @@ import sys
2
2
  import os
3
3
 
4
4
  file_path = os.path.abspath(__file__)
5
- end = file_path.index('mns') + 16
5
+ end = file_path.index('mns') + 17
6
6
  project_path = file_path[0:end]
7
7
  sys.path.append(project_path)
@@ -2,17 +2,16 @@ import sys
2
2
  import os
3
3
 
4
4
  file_path = os.path.abspath(__file__)
5
- end = file_path.index('mns') + 16
5
+ end = file_path.index('mns') + 17
6
6
  project_path = file_path[0:end]
7
7
  sys.path.append(project_path)
8
8
  import mns_common.api.ths.self_choose.ths_self_choose_api as ths_self_choose_api
9
9
  import mns_common.constant.db_name_constant as db_name_constant
10
10
  from mns_common.db.MongodbUtil import MongodbUtil
11
- import mns_common.api.ths.zt.ths_stock_zt_pool_api as ths_stock_zt_pool_api
11
+ import mns_common.component.cookie.cookie_info_service as cookie_info_service
12
12
  import mns_common.component.common_service_fun_api as common_service_fun_api
13
13
  from datetime import datetime
14
14
  import mns_common.utils.data_frame_util as data_frame_util
15
- from functools import lru_cache
16
15
  import mns_common.constant.self_choose_constant as self_choose_constant
17
16
  import mns_common.component.trade_date.trade_date_common_service_api as trade_date_common_service_api
18
17
 
@@ -41,30 +40,23 @@ mongodb_util = MongodbUtil('27017')
41
40
  fixed_optional_list = ['899050', '881157']
42
41
 
43
42
 
44
- @lru_cache()
45
- def get_ths_cookie():
46
- query = {"type": "ths_cookie"}
47
- stock_account_info = mongodb_util.find_query_data(db_name_constant.STOCK_ACCOUNT_INFO, query)
48
- ths_cookie = list(stock_account_info['cookie'])[0]
49
- return ths_cookie
50
-
51
-
52
43
  def add_fixed_optional():
53
- ths_cookie = get_ths_cookie()
44
+ ths_cookie = cookie_info_service.get_ths_cookie()
54
45
  for symbol in fixed_optional_list:
55
46
  ths_self_choose_api.add_stock_to_account(symbol, ths_cookie)
56
47
 
57
48
 
58
49
  def delete_all_self_choose_stocks():
59
- ths_cookie = get_ths_cookie()
50
+ ths_cookie = cookie_info_service.get_ths_cookie()
60
51
  all_self_choose_stock_list = ths_self_choose_api.get_all_self_choose_stock_list(ths_cookie)
61
52
  for stock_one in all_self_choose_stock_list.itertuples():
62
53
  symbol = stock_one.code
63
54
  ths_self_choose_api.del_stock_from_account(symbol, ths_cookie)
64
55
 
65
56
 
66
- def add_self_choose_local():
67
- ths_cookie = get_ths_cookie()
57
+ # 添加固定自选股票
58
+ def add_self_choose_symbol():
59
+ ths_cookie = cookie_info_service.get_ths_cookie()
68
60
  # 固定自选
69
61
  self_choose_symbol_df = mongodb_util.find_all_data(db_name_constant.SELF_CHOOSE_STOCK)
70
62
  if data_frame_util.is_not_empty(self_choose_symbol_df):
@@ -72,6 +64,10 @@ def add_self_choose_local():
72
64
  for stock_one in self_choose_symbol_df.itertuples():
73
65
  ths_self_choose_api.add_stock_to_account(stock_one.symbol, ths_cookie)
74
66
 
67
+
68
+ # 添加今日选择股票
69
+ def add_today_choose_symbol():
70
+ ths_cookie = cookie_info_service.get_ths_cookie()
75
71
  now_date = datetime.now()
76
72
  str_day = now_date.strftime('%Y-%m-%d')
77
73
  last_trade_day = trade_date_common_service_api.get_last_trade_day(str_day)
@@ -83,6 +79,10 @@ def add_self_choose_local():
83
79
  for stock_one in self_choose_symbol_today_df.itertuples():
84
80
  ths_self_choose_api.add_stock_to_account(stock_one.symbol, ths_cookie)
85
81
 
82
+
83
+ # 添加同花顺概念
84
+ def add_self_choose_concept():
85
+ ths_cookie = cookie_info_service.get_ths_cookie()
86
86
  query_plate = {'self_type': {
87
87
  "$in": [self_choose_constant.SELF_CHOOSE_THS_CONCEPT,
88
88
  self_choose_constant.SELF_CHOOSE_THS_INDUSTRY]}}
@@ -109,7 +109,7 @@ def add_trade_stocks():
109
109
  trade_stocks_df = mongodb_util.find_query_data(db_name_constant.BUY_STOCK_NAME, query)
110
110
  if data_frame_util.is_not_empty(trade_stocks_df):
111
111
  stock_list = stock_list.union(set(trade_stocks_df['symbol']))
112
- ths_cookie = get_ths_cookie()
112
+ ths_cookie = cookie_info_service.get_ths_cookie()
113
113
  if len(stock_list) > 0:
114
114
  for symbol in stock_list:
115
115
  ths_self_choose_api.add_stock_to_account(symbol, ths_cookie)
@@ -117,33 +117,42 @@ def add_trade_stocks():
117
117
 
118
118
  # 添加连板到自选
119
119
  def add_continue_boards_zt_stocks():
120
- ths_cookie = get_ths_cookie()
120
+ ths_cookie = cookie_info_service.get_ths_cookie()
121
121
  now_date = datetime.now()
122
122
  str_day = now_date.strftime('%Y-%m-%d')
123
123
  if trade_date_common_service_api.is_trade_day(str_day):
124
- ths_stock_zt_pool_df = ths_stock_zt_pool_api.get_zt_reason(None)
124
+ query = {'str_day': str_day}
125
+ stock_zt_pool_df = mongodb_util.find_query_data(db_name_constant.STOCK_ZT_POOL, query)
126
+ if data_frame_util.is_empty(stock_zt_pool_df):
127
+ str_day = trade_date_common_service_api.get_before_trade_date(str_day, 2)
128
+ query = {'str_day': str_day}
129
+ stock_zt_pool_df = mongodb_util.find_query_data(db_name_constant.STOCK_ZT_POOL, query)
125
130
  else:
126
131
  str_day = trade_date_common_service_api.get_last_trade_day(str_day)
127
- ths_stock_zt_pool_df = ths_stock_zt_pool_api.get_zt_reason(str_day)
128
- ths_stock_zt_pool_df = ths_stock_zt_pool_df.loc[ths_stock_zt_pool_df['connected_boards_numbers'] >= 3]
129
- ths_stock_zt_pool_df = common_service_fun_api.exclude_st_symbol(ths_stock_zt_pool_df)
130
- ths_stock_zt_pool_df = ths_stock_zt_pool_df.sort_values(by=['connected_boards_numbers'], ascending=False)
131
- for stock_one in ths_stock_zt_pool_df.itertuples():
132
+ query = {'str_day': str_day}
133
+ stock_zt_pool_df = mongodb_util.find_query_data(db_name_constant.STOCK_ZT_POOL, query)
134
+ stock_zt_pool_df = stock_zt_pool_df.loc[stock_zt_pool_df['connected_boards_numbers'] >= 3]
135
+ stock_zt_pool_df = common_service_fun_api.exclude_st_symbol(stock_zt_pool_df)
136
+ stock_zt_pool_df = stock_zt_pool_df.sort_values(by=['connected_boards_numbers'], ascending=False)
137
+ for stock_one in stock_zt_pool_df.itertuples():
132
138
  ths_self_choose_api.add_stock_to_account(stock_one.symbol, ths_cookie)
133
139
 
134
140
 
135
141
  # 自选股操作 删除当天自选股 增加新的连板股票 添加固定选择自选
136
142
  def self_choose_stock_handle():
137
143
  delete_all_self_choose_stocks()
138
- # 固定自选
144
+ # 固定自选板块
139
145
  add_fixed_optional()
140
- # 自己买入的股票
141
- add_trade_stocks()
142
- # 本地自选
143
- add_self_choose_local()
146
+ # 添加同花顺概念
147
+ add_self_choose_concept()
144
148
  # 连板股票
145
149
  add_continue_boards_zt_stocks()
150
+ # 自己买入的股票
151
+ add_trade_stocks()
152
+ # 添加自选股票
153
+ add_self_choose_symbol()
146
154
 
147
155
 
148
156
  if __name__ == '__main__':
157
+ # add_continue_boards_zt_stocks()
149
158
  self_choose_stock_handle()
@@ -2,13 +2,13 @@ import sys
2
2
  import os
3
3
 
4
4
  file_path = os.path.abspath(__file__)
5
- end = file_path.index('mns') + 16
5
+ end = file_path.index('mns') + 17
6
6
  project_path = file_path[0:end]
7
7
  sys.path.append(project_path)
8
8
  import mns_common.component.deal.deal_service_api as deal_service_api
9
9
  from mns_common.component.deal.terminal_enum import TerminalEnum
10
10
  import time
11
-
11
+ from loguru import logger
12
12
 
13
13
  # qmt 自动登录
14
14
  def qmt_auto_login():
@@ -21,9 +21,11 @@ def ths_auto_login():
21
21
 
22
22
 
23
23
  def auto_login():
24
- qmt_auto_login()
25
- time.sleep(5)
24
+ logger.info("打开ths下单程序")
26
25
  ths_auto_login()
26
+ time.sleep(5)
27
+ logger.info("打开qmt下单程序")
28
+ qmt_auto_login()
27
29
 
28
30
 
29
31
  if __name__ == '__main__':
@@ -2,7 +2,7 @@ import os
2
2
  import sys
3
3
 
4
4
  file_path = os.path.abspath(__file__)
5
- end = file_path.index('mns') + 16
5
+ end = file_path.index('mns') + 17
6
6
  project_path = file_path[0:end]
7
7
  sys.path.append(project_path)
8
8
 
@@ -115,4 +115,4 @@ if __name__ == '__main__':
115
115
  sell_price_01 = trade_price_service_api.get_trade_price('002336',PriceEnum.SEll_PRICE_LIMIT.price_code)
116
116
  while True:
117
117
  real_time_quotes_now = em_stock_info_api.get_a_stock_info()
118
- auto_sell_stock(real_time_quotes_now)
118
+ auto_sell_stock(real_time_quotes_now)
@@ -2,6 +2,6 @@ import sys
2
2
  import os
3
3
 
4
4
  file_path = os.path.abspath(__file__)
5
- end = file_path.index('mns') + 16
5
+ end = file_path.index('mns') + 17
6
6
  project_path = file_path[0:end]
7
7
  sys.path.append(project_path)
@@ -2,6 +2,6 @@ import sys
2
2
  import os
3
3
 
4
4
  file_path = os.path.abspath(__file__)
5
- end = file_path.index('mns') + 16
5
+ end = file_path.index('mns') + 17
6
6
  project_path = file_path[0:end]
7
7
  sys.path.append(project_path)
@@ -2,7 +2,7 @@ import sys
2
2
  import os
3
3
 
4
4
  file_path = os.path.abspath(__file__)
5
- end = file_path.index('mns') + 16
5
+ end = file_path.index('mns') + 17
6
6
  project_path = file_path[0:end]
7
7
  sys.path.append(project_path)
8
8
  import mns_common.component.deal.deal_service_api as deal_service_api
@@ -2,7 +2,7 @@ import sys
2
2
  import os
3
3
 
4
4
  file_path = os.path.abspath(__file__)
5
- end = file_path.index('mns') + 16
5
+ end = file_path.index('mns') + 17
6
6
  project_path = file_path[0:end]
7
7
  sys.path.append(project_path)
8
8
  import mns_common.utils.cmd_util as cmd_util
@@ -11,26 +11,42 @@ import mns_scheduler.trade.auto_login.trader_auto_service as trader_auto_service
11
11
  import mns_common.utils.data_frame_util as data_frame_util
12
12
  from loguru import logger
13
13
 
14
- # 交易任务
15
- TRADER_SERVER_PATH = 'H:\\mns-trader.bat'
14
+ # 交易服务端
15
+ TRADER_SERVER_PATH = 'H:\\mns_trader_server.bat'
16
16
  # 实时行情同步任务 python名称
17
- TRADER_SERVER_NAME = "mns_trader"
17
+ TRADER_SERVER_NAME = "mns_trader_server"
18
18
 
19
19
 
20
20
  # 打开交易客户端
21
21
  def open_trader_terminal():
22
- # 打开任务进程
23
- cmd_util.open_bat_file(TRADER_SERVER_PATH)
24
- # 自动登陆
22
+ # 打开 [交易web服务端]
23
+ logger.info('打开 [交易web服务端]')
24
+ if bool(1- is_open_trader_server()):
25
+ cmd_util.open_bat_file(TRADER_SERVER_PATH)
26
+ time.sleep(10)
27
+ logger.info('自动登陆ths和qmt')
28
+ # 自动登陆ths和qmt
25
29
  trader_auto_service.auto_login()
26
30
  time.sleep(5)
27
- # 需先打开同花顺终端在开始交易服务
31
+ # 杀死[交易web服务端],使用同花顺需要先打开xiadan.exe,在重新打开[交易web服务端]
32
+ logger.info('杀死[交易web服务端]')
28
33
  kill_server()
29
34
  time.sleep(5)
30
- # 打开任务进程
35
+ logger.info('重新打开 [交易web服务端]')
36
+ # 重新打开 [交易web服务端]
31
37
  cmd_util.open_bat_file(TRADER_SERVER_PATH)
32
38
 
33
39
 
40
+ def is_open_trader_server():
41
+ all_cmd_processes = cmd_util.get_all_process()
42
+ all_cmd_processes_trader = all_cmd_processes.loc[
43
+ (all_cmd_processes['total_info'].str.contains(TRADER_SERVER_NAME, case=False, na=False))]
44
+ if data_frame_util.is_not_empty(all_cmd_processes_trader):
45
+ return True
46
+ else:
47
+ return False
48
+
49
+
34
50
  def kill_server():
35
51
  all_cmd_processes = cmd_util.get_all_process()
36
52
  all_cmd_processes_trader = all_cmd_processes.loc[
@@ -45,4 +61,5 @@ def kill_server():
45
61
 
46
62
 
47
63
  if __name__ == '__main__':
64
+ # kill_server()
48
65
  open_trader_terminal()
@@ -2,6 +2,6 @@ import sys
2
2
  import os
3
3
 
4
4
  file_path = os.path.abspath(__file__)
5
- end = file_path.index('mns') + 16
5
+ end = file_path.index('mns') + 17
6
6
  project_path = file_path[0:end]
7
7
  sys.path.append(project_path)
@@ -2,7 +2,7 @@ import sys
2
2
  import os
3
3
 
4
4
  file_path = os.path.abspath(__file__)
5
- end = file_path.index('mns') + 16
5
+ end = file_path.index('mns') + 17
6
6
  project_path = file_path[0:end]
7
7
  sys.path.append(project_path)
8
8
 
@@ -28,6 +28,7 @@ def sync_stock_tfp(str_day):
28
28
  stock_tfp_df['sus_begin_time'] = stock_tfp_df['sus_begin_time'].astype(str)
29
29
  stock_tfp_df['sus_end_time'] = stock_tfp_df['sus_end_time'].astype(str)
30
30
  stock_tfp_df['resume_time'] = stock_tfp_df['resume_time'].astype(str)
31
+ stock_tfp_df['sus_begin_date'] = stock_tfp_df['sus_begin_date'].astype(str)
31
32
  stock_tfp_df = common_service_fun_api.exclude_st_symbol(stock_tfp_df)
32
33
  # 根据条件设置新列'type'的值
33
34
 
@@ -43,11 +44,13 @@ def sync_stock_tfp(str_day):
43
44
  stock_tfp_df.loc[stock_tfp_df['type'] == '2', 'valid'] = False
44
45
  stock_tfp_df.loc[stock_tfp_df['type'] == '1', 'valid'] = False
45
46
 
47
+ stock_tfp_df = stock_tfp_df.fillna(0)
48
+
46
49
  mongodb_util.save_mongo(stock_tfp_df, db_name_constant.STOCK_TFP_INFO)
47
50
 
48
51
  return stock_tfp_df
49
52
 
50
53
 
51
54
  if __name__ == '__main__':
52
- df = sync_stock_tfp('2024-12-05')
55
+ df = sync_stock_tfp('2025-07-30')
53
56
  print(df)
@@ -2,6 +2,6 @@ import sys
2
2
  import os
3
3
 
4
4
  file_path = os.path.abspath(__file__)
5
- end = file_path.index('mns') + 16
5
+ end = file_path.index('mns') + 17
6
6
  project_path = file_path[0:end]
7
7
  sys.path.append(project_path)
@@ -2,7 +2,7 @@ import sys
2
2
  import os
3
3
 
4
4
  file_path = os.path.abspath(__file__)
5
- end = file_path.index('mns') + 16
5
+ end = file_path.index('mns') + 17
6
6
  project_path = file_path[0:end]
7
7
  sys.path.append(project_path)
8
8
  from mns_common.db.MongodbUtil import MongodbUtil
@@ -2,7 +2,7 @@ import sys
2
2
  import os
3
3
 
4
4
  file_path = os.path.abspath(__file__)
5
- end = file_path.index('mns') + 16
5
+ end = file_path.index('mns') + 17
6
6
  project_path = file_path[0:end]
7
7
  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
@@ -83,7 +83,7 @@ def fix_miss_data(str_end):
83
83
 
84
84
 
85
85
  if __name__ == '__main__':
86
- kcx_high_chg_open_data_sync.sync_all_kc_zt_data('2025-02-21', None)
86
+ kcx_high_chg_open_data_sync.sync_all_kc_zt_data('2025-06-30', None)
87
87
  # sync_all_kc_zt_data('2023-08-16')
88
88
  # sync_all_kc_zt_data('2023-07-07')
89
89
  # realtime_quotes_now_zt_new_kc_open_sync()
@@ -2,7 +2,7 @@ import sys
2
2
  import os
3
3
 
4
4
  file_path = os.path.abspath(__file__)
5
- end = file_path.index('mns') + 16
5
+ end = file_path.index('mns') + 17
6
6
  project_path = file_path[0:end]
7
7
  sys.path.append(project_path)
8
8
  import mns_common.utils.date_handle_util as date_handle_util
@@ -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('2025-03-21', None)
39
+ sync_high_chg_pool_service.sync_stock_high_chg_pool_list('2025-05-23', None)
@@ -2,7 +2,7 @@ import sys
2
2
  import os
3
3
 
4
4
  file_path = os.path.abspath(__file__)
5
- end = file_path.index('mns') + 16
5
+ end = file_path.index('mns') + 17
6
6
  project_path = file_path[0:end]
7
7
  sys.path.append(project_path)
8
8
  import mns_common.component.em.em_stock_info_api as em_stock_info_api
@@ -19,13 +19,14 @@ def sync_now_day_high_chg():
19
19
  real_time_quotes_now_es = em_stock_info_api.get_a_stock_info()
20
20
  real_time_quotes_now_es_high_chg = real_time_quotes_now_es.loc[
21
21
  real_time_quotes_now_es['chg'] > common_service_fun_api.ZT_CHG]
22
+ now_date = datetime.now()
23
+
24
+ str_now_day = now_date.strftime('%Y-%m-%d')
22
25
  # 同步qfq k线
23
- daily_week_month_line_sync.sync_all_daily_data('daily', 'qfq', 'stock_qfq_daily', None,
26
+ daily_week_month_line_sync.sync_all_daily_data('daily', 'qfq', 'stock_qfq_daily', str_now_day,
24
27
  list(real_time_quotes_now_es_high_chg['symbol']))
25
28
 
26
- now_date = datetime.now()
27
29
 
28
- str_now_day = now_date.strftime('%Y-%m-%d')
29
30
  # 同步当前涨停
30
31
  em_zt_pool_sync_api.save_zt_info(str_now_day)
31
32