mns-scheduler 1.3.3.5__py3-none-any.whl → 1.3.3.8__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.

@@ -61,7 +61,6 @@ def sync_all_em_stock_info():
61
61
  em_us_stock_info['_id'] = em_us_stock_info['symbol']
62
62
  mongodb_util.save_mongo(em_us_stock_info, extra_income_db_name.EM_US_STOCK_INFO)
63
63
  em_us_etf_info = em_us_stock_info.loc[(em_us_stock_info['amount'] != 0) & (em_us_stock_info['total_mv'] == 0)]
64
- em_us_etf_info = em_us_etf_info.loc[em_us_etf_info['amount'] > 10000000]
65
64
  em_us_etf_info = em_us_etf_info.sort_values(by=['amount'], ascending=False)
66
65
  mongodb_util.save_mongo(em_us_etf_info, extra_income_db_name.EM_US_ETF_INFO)
67
66
 
@@ -8,7 +8,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__':
@@ -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()
File without changes
@@ -0,0 +1,113 @@
1
+
2
+ from loguru import logger
3
+ from datetime import datetime
4
+ import mns_common.component.trade_date.trade_date_common_service_api as trade_date_common_service_api
5
+ import mns_scheduler.k_line.month_week_daily.daily_week_month_line_sync as daily_week_month_line_sync_api
6
+ import mns_scheduler.zt.open_data.kcx_high_chg_open_data_sync as kcx_high_chg_open_data_sync
7
+ import mns_scheduler.zt.export.export_kcx_high_chg_open_data_to_excel as export_kcx_high_chg_open_data_to_excel
8
+ import mns_scheduler.zt.connected_boards.zt_five_boards_sync_api as zt_five_boards_sync_api
9
+ import mns_scheduler.zt.zt_pool.em_zt_pool_sync_api as em_zt_pool_sync_api
10
+ import mns_scheduler.k_line.clean.k_line_info_clean_task as k_line_info_clean_service
11
+ import mns_scheduler.open.sync_one_day_open_data_to_db_service as sync_one_day_open_data_to_db_service
12
+ import mns_scheduler.zt.high_chg.sync_high_chg_pool_service as sync_high_chg_pool_service
13
+ import mns_scheduler.zt.high_chg.sync_high_chg_real_time_quotes_service as sync_high_chg_real_time_quotes_service
14
+ import mns_scheduler.zt.zt_pool.ths_zt_pool_sync_api as ths_zt_pool_sync_api
15
+
16
+
17
+
18
+ # 定时同步每日交易行情数据(前复权)
19
+ def stock_daily_sync_qfq():
20
+ now_date = datetime.now()
21
+ str_now_date = now_date.strftime('%Y-%m-%d')
22
+ logger.info('同步每日行情数据(前复权):' + str_now_date)
23
+ daily_week_month_line_sync_api.sync_all_daily_data('daily',
24
+ 'qfq', 'stock_qfq_daily', str_now_date)
25
+
26
+
27
+ # 同步当日k c x 高涨幅数据
28
+ def realtime_quotes_now_zt_kc_data_sync():
29
+ now_date = datetime.now()
30
+ str_day = now_date.strftime('%Y-%m-%d')
31
+ if trade_date_common_service_api.is_trade_day(str_day):
32
+ # 同步当日kcx 高涨幅 当天交易数据和开盘数据
33
+ kcx_high_chg_open_data_sync.sync_all_kc_zt_data(str_day, None)
34
+ # 同步当日开盘数据
35
+ sync_one_day_open_data_to_db_service.sync_one_day_open_data(str_day)
36
+ # 涨停数据同步到excel
37
+ export_kcx_high_chg_open_data_to_excel.export_kc_zt_data(str_day)
38
+
39
+
40
+ # 同步涨停池
41
+ def sync_stock_zt_pool():
42
+ now_date = datetime.now()
43
+ str_day = now_date.strftime('%Y-%m-%d')
44
+ if trade_date_common_service_api.is_trade_day(str_day):
45
+ logger.info('同步当天涨停池股开始')
46
+ em_stock_zt_pool = em_zt_pool_sync_api.save_zt_info(str_day)
47
+ zt_five_boards_sync_api.update_five_connected_boards_task(em_stock_zt_pool)
48
+ logger.info('同步ths股票涨停池')
49
+ ths_zt_pool_df = ths_zt_pool_sync_api.ths_zt_pool(str_day, None)
50
+ ths_zt_pool_sync_api.save_ths_zt_pool(ths_zt_pool_df, str_day)
51
+ logger.info('同步当天涨停池股票完成')
52
+
53
+
54
+ # 保存今天高涨幅数据
55
+ def sync_toady_stock_zt_pool():
56
+ logger.info('同步今天涨幅大于9.5的symbol')
57
+ now_date = datetime.now()
58
+ str_day = now_date.strftime('%Y-%m-%d')
59
+ # 同步高涨幅实时行情
60
+ sync_high_chg_real_time_quotes_service.sync_high_chg_real_time_quotes(str_day)
61
+ # 同步高涨幅列表
62
+ sync_high_chg_pool_service.sync_stock_high_chg_pool_list(str_day, None)
63
+
64
+
65
+ # 计算下一个交易日k线数据
66
+ def generate_new_day_k_line_info():
67
+ now_date = datetime.now()
68
+ str_day = now_date.strftime('%Y-%m-%d')
69
+ # 生成下一个交易日日期k线数据 number=2 获取下一个交易日 日期
70
+ if trade_date_common_service_api.is_trade_day(str_day):
71
+ dis_number = 2
72
+ else:
73
+ dis_number = 1
74
+ next_trade_day = trade_date_common_service_api.get_further_trade_date(str_day, dis_number)
75
+ k_line_info_clean_service.sync_k_line_info_task(next_trade_day)
76
+ logger.info('计算当日k线信息完成:{}', str_day)
77
+
78
+
79
+ # 同步一天k线 涨停 数据
80
+ def sync_daily_data_info():
81
+ # 同步k线数据
82
+ try:
83
+ stock_daily_sync_qfq()
84
+ except BaseException as e:
85
+ logger.error("同步当日k线数据异常:{}", e)
86
+
87
+ # 同步当日k c x 高涨幅数据
88
+ try:
89
+ realtime_quotes_now_zt_kc_data_sync()
90
+ except BaseException as e:
91
+ logger.error("同步当日kcx高涨幅数据异常:{}", e)
92
+
93
+ # 同步涨停池数据信息
94
+ try:
95
+ sync_stock_zt_pool()
96
+ except BaseException as e:
97
+ logger.error("同步涨停数据信息异常:{}", e)
98
+
99
+ # 同步今日高涨幅数据 依赖涨停股票池的数据
100
+ try:
101
+ sync_toady_stock_zt_pool()
102
+ except BaseException as e:
103
+ logger.error("同步今日高涨幅数据异常:{}", e)
104
+
105
+ # 计算当日k线数据
106
+ try:
107
+ generate_new_day_k_line_info()
108
+ except BaseException as e:
109
+ logger.error("计算当日k线数据异常:{}", e)
110
+
111
+
112
+ if __name__ == '__main__':
113
+ sync_daily_data_info()
@@ -455,6 +455,9 @@ blockingScheduler.add_job(update_one_symbol_all_concepts, 'cron', hour='07,08,18
455
455
  # 打开交易客户端
456
456
  blockingScheduler.add_job(trader_client_auto_login, 'cron', hour='08,09', minute='04')
457
457
 
458
+ # 获取当前持仓
459
+ blockingScheduler.add_job(sync_position, 'cron', hour='0,08,09', minute='14')
460
+
458
461
  # 同步公司基本信息
459
462
  blockingScheduler.add_job(update_company_base_info, 'cron', hour='08,18', minute='05')
460
463
 
@@ -476,26 +479,12 @@ blockingScheduler.add_job(self_choose_stock_task, 'cron', hour='08,17,21', minut
476
479
  # 开盘前同步同花顺新概念指数
477
480
  blockingScheduler.add_job(sync_new_concept_index, 'cron', hour='09,22', minute='01,10,20,28,41,58')
478
481
 
479
- # 获取同花顺持仓
480
- blockingScheduler.add_job(sync_position, 'cron', hour='0,08,09', minute='14')
481
-
482
482
  # 更新同花顺概念信息
483
483
  blockingScheduler.add_job(concept_info_clean, 'cron', hour='9,12,20', minute='24')
484
484
 
485
485
  # 更新开盘啦指数关系
486
486
  blockingScheduler.add_job(update_best_choose_plate_relation, 'cron', hour='09,18', minute='25')
487
487
 
488
- # # 打开实时行情任务同步
489
- #
490
- # blockingScheduler.add_job(real_time_sync_task_open, 'cron', hour='09', minute='15')
491
- # blockingScheduler.add_job(real_time_sync_task_open, 'cron', hour='09', minute='29')
492
- # blockingScheduler.add_job(real_time_sync_task_open, 'cron', hour='12', minute='59')
493
- # # 关闭实时行情任务
494
- #
495
- # blockingScheduler.add_job(real_time_sync_task_close, 'cron', hour='09', minute='28')
496
- # blockingScheduler.add_job(real_time_sync_task_close, 'cron', hour='11', minute='31')
497
- # blockingScheduler.add_job(real_time_sync_task_close, 'cron', hour='15', minute='01')
498
-
499
488
  # 自动打新 打新中签高时间段 10:30-11:30
500
489
  blockingScheduler.add_job(auto_ipo_buy, 'cron', hour='10', minute='40,50')
501
490
 
@@ -1,4 +1,4 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mns-scheduler
3
- Version: 1.3.3.5
3
+ Version: 1.3.3.8
4
4
 
@@ -14,7 +14,7 @@ mns_scheduler/company_info/constant/company_constant_data.py,sha256=0qhRXLASsQlY
14
14
  mns_scheduler/company_info/de_list_stock/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
15
15
  mns_scheduler/company_info/de_list_stock/de_list_stock_service.py,sha256=QNtKc1ZI6xHjupcxbOBN7fBhi6oAGtL7X1TQZVzfpnk,1993
16
16
  mns_scheduler/company_info/em_stock_info/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
17
- mns_scheduler/company_info/em_stock_info/sync_em_stock_info_sync.py,sha256=eHtnaGIuZXcLAz6De_qTo2GoxEkls5WTyCugGCIwE9w,3820
17
+ mns_scheduler/company_info/em_stock_info/sync_em_stock_info_sync.py,sha256=csPArPy7IZPcycvEB3vl1ENVsrkcv0db5dMxVXIfn0c,3738
18
18
  mns_scheduler/company_info/remark/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
19
19
  mns_scheduler/company_info/remark/company_remark_info_sync.py,sha256=L8wC8LU7-GYZb1TyKLjODJURROOEO4izZBxnWEM7Ahc,2334
20
20
  mns_scheduler/concept/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
@@ -126,11 +126,11 @@ mns_scheduler/trade/auto_ipo_buy_api.py,sha256=jVe5ZiXwzkDy_j_4X4rUamSzJpmzhV16l
126
126
  mns_scheduler/trade/auto_sell_service_api.py,sha256=A2RB3WFxVHqbNPaPvhIgO-3uaicFZVmBKUy2TsfMU90,4624
127
127
  mns_scheduler/trade/sync_position_api.py,sha256=eGJAL1WoP_WwDloKQqeUXZUqtQv8G6VlODe8EDhmgMY,2748
128
128
  mns_scheduler/trade/auto_login/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
129
- mns_scheduler/trade/auto_login/trader_auto_service.py,sha256=1cvKwbfAKmjG312aHLvMXVFs59y8Sg6WnDEWqS_nyMs,686
129
+ mns_scheduler/trade/auto_login/trader_auto_service.py,sha256=bsagj26s74Zv5OEyGahhBX_OK4Iuo5ZmuItsON9DDmY,795
130
130
  mns_scheduler/trade/balance/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
131
131
  mns_scheduler/trade/balance/ths_account_balance_service.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
132
132
  mns_scheduler/trade/task/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
133
- mns_scheduler/trade/task/trader_task_service.py,sha256=YQst2m0MWLnQ7FceCL5EkCEN-Ry7lw_ZTZm6DJdOIQc,1560
133
+ mns_scheduler/trade/task/trader_task_service.py,sha256=1vdjfs-M9y0ana2OLwWdlkB9YS-hm9LrChlw3Ectyeg,2305
134
134
  mns_scheduler/trade/tfp/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
135
135
  mns_scheduler/trade/tfp/stock_tfp_info_sync.py,sha256=ViAVG-1GWLkRxiSBPLIfNICZRnpNZ3mHf44R7X7O4IE,2440
136
136
  mns_scheduler/zb/__init__.py,sha256=Tyvi_iQlv3jz59EdH67Mycnt9CSixcWPQoJwu55bOq0,165
@@ -155,8 +155,10 @@ mns_scheduler/zt/zt_pool/em_zt_pool_sync_api.py,sha256=LOEUyTA5g7N6FWxUpHWimWTeX
155
155
  mns_scheduler/zt/zt_pool/ths_zt_pool_sync_api.py,sha256=9Sv1G88poLG3_8aLPkfr8bdwD_AzbSrwvHTGPErOtQU,7501
156
156
  mns_scheduler/zt/zt_pool/update_null_zt_reason_api.py,sha256=caW-MuF0RFLavJZafeLDYQ29-GxwGsmr5YVrN4lost8,2135
157
157
  mns_scheduler/zz_task/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
158
- mns_scheduler/zz_task/data_sync_task.py,sha256=5HchdkllTsxE1SE7eDSs0v3plPL0aJwqwgP6d336pa0,23230
159
- mns_scheduler-1.3.3.5.dist-info/METADATA,sha256=JlGIL4FSSrijaspTvPC6rCZ7umUQrW_YzPTHJiP0cFk,64
160
- mns_scheduler-1.3.3.5.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
161
- mns_scheduler-1.3.3.5.dist-info/top_level.txt,sha256=PXQDFBGR1pWmsUbH5yiLAh71P5HZODTRED0zJ8CCgOc,14
162
- mns_scheduler-1.3.3.5.dist-info/RECORD,,
158
+ mns_scheduler/zz_task/data_sync_task.py,sha256=bJgvVldBnpjfxDUGnZbYr0OTCL6c07yVBSEwp5VucUg,22628
159
+ mns_scheduler/zz_task/compensation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
160
+ mns_scheduler/zz_task/compensation/compensate_task.py,sha256=RCPBZC2waLR2HP918neXsWGvV08n5hvc15ucASFGYY8,4820
161
+ mns_scheduler-1.3.3.8.dist-info/METADATA,sha256=Vd1TZboTTBYaA--nMDpoSNavBMk0tdm_M3UsIuJhJxk,64
162
+ mns_scheduler-1.3.3.8.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
163
+ mns_scheduler-1.3.3.8.dist-info/top_level.txt,sha256=PXQDFBGR1pWmsUbH5yiLAh71P5HZODTRED0zJ8CCgOc,14
164
+ mns_scheduler-1.3.3.8.dist-info/RECORD,,