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

@@ -7,7 +7,6 @@ project_path = file_path[0:end]
7
7
  sys.path.append(project_path)
8
8
  import pandas as pd
9
9
  import mns_common.api.akshare.stock_zt_pool_api as stock_zt_pool_api
10
- import mns_common.api.ths.zt.ths_stock_zt_pool_api as ths_stock_zt_pool_api
11
10
  import mns_common.utils.date_handle_util as date_handle_util
12
11
  import mns_common.component.concept.ths_concept_common_service_api as ths_concept_common_service_api
13
12
  from mns_common.db.MongodbUtil import MongodbUtil
@@ -72,19 +71,15 @@ def save_zt_info(str_day):
72
71
  str_day)
73
72
  ths_zt_pool_one_df = ths_zt_pool_df_data.loc[ths_zt_pool_df_data['symbol'] == stock_one.symbol]
74
73
  if data_frame_util.is_empty(ths_zt_pool_one_df):
74
+ stock_em_zt_pool_df_data['zt_reason'] = '0'
75
75
  continue
76
76
  stock_em_zt_pool_df_data.loc[stock_em_zt_pool_df_data['symbol'] == stock_one.symbol, 'zt_reason'] = \
77
77
  list(ths_zt_pool_one_df['zt_reason'])[0]
78
78
  except BaseException as e:
79
+ stock_em_zt_pool_df_data['zt_reason'] = '0'
79
80
  logger.error("出现异常:{}", e)
80
81
  except BaseException as e:
81
- stock_em_zt_pool_df_data['zt_reason'] = ''
82
- stock_em_zt_pool_df_data['quantity_ratio'] = 0
83
- stock_em_zt_pool_df_data['high'] = 0
84
- stock_em_zt_pool_df_data['low'] = 0
85
- stock_em_zt_pool_df_data['open'] = 0
86
- stock_em_zt_pool_df_data['wei_bi'] = 0
87
- stock_em_zt_pool_df_data['buy_1_num'] = 0
82
+ stock_em_zt_pool_df_data['zt_reason'] = '0'
88
83
  logger.error("出现异常:{}", e)
89
84
 
90
85
  stock_em_zt_pool_df_data['list_date'] = stock_em_zt_pool_df_data['list_date'].apply(
@@ -112,12 +107,22 @@ def save_zt_info(str_day):
112
107
  stock_em_zt_pool_df_data['_id'] = stock_em_zt_pool_df_data['symbol'] + "_" + str_day
113
108
 
114
109
  stock_em_zt_pool_df_data = stock_em_zt_pool_df_data[ZT_FIELD]
115
- mongodb_util.save_mongo(stock_em_zt_pool_df_data, 'stock_zt_pool')
110
+ exist_zt_pool_today = mongodb_util.find_query_data('stock_zt_pool', {'str_day': str_day})
111
+ if data_frame_util.is_empty(exist_zt_pool_today):
112
+ mongodb_util.save_mongo(stock_em_zt_pool_df_data, 'stock_zt_pool')
113
+ else:
114
+ exist_zt_pool_today_not_nan = exist_zt_pool_today.loc[exist_zt_pool_today['zt_reason'] != '0']
115
+
116
+ stock_em_zt_pool_df_data = stock_em_zt_pool_df_data.loc[:, ~stock_em_zt_pool_df_data.columns.duplicated()]
117
+ stock_em_zt_pool_df_data_new = stock_em_zt_pool_df_data.loc[~(
118
+ stock_em_zt_pool_df_data['symbol'].isin(exist_zt_pool_today_not_nan['symbol']))]
119
+ if data_frame_util.is_not_empty(stock_em_zt_pool_df_data_new):
120
+ mongodb_util.save_mongo(stock_em_zt_pool_df_data_new, 'stock_zt_pool')
116
121
  return stock_em_zt_pool_df_data
117
122
 
118
123
 
119
124
  if __name__ == '__main__':
120
- save_zt_info('2024-09-30')
125
+ save_zt_info('2024-10-08')
121
126
  # from datetime import datetime
122
127
  #
123
128
  # if __name__ == '__main__':
@@ -0,0 +1,45 @@
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
+
10
+ mongodb_util = MongodbUtil('27017')
11
+ import mns_common.api.ths.zt.ths_stock_zt_pool_api as ths_stock_zt_pool_api
12
+ import mns_common.utils.data_frame_util as data_frame_util
13
+ from loguru import logger
14
+
15
+
16
+ def update_null_zt_reason(str_day):
17
+ query = {"str_day": str_day, "$or": [{"zt_reason": "0", }, {"zt_reason": float('nan')}]}
18
+ stock_zt_pool_df_null_zt_reason = mongodb_util.find_query_data('stock_zt_pool', query)
19
+ if data_frame_util.is_empty(stock_zt_pool_df_null_zt_reason):
20
+ return None
21
+ no_reason_list = list(stock_zt_pool_df_null_zt_reason['symbol'])
22
+ repeat_number = 0
23
+ # 循环10次
24
+ while len(no_reason_list) > 0 and repeat_number < 10:
25
+ ths_zt_pool_df_data = ths_stock_zt_pool_api.get_zt_reason(str_day)
26
+ for stock_zt_one in stock_zt_pool_df_null_zt_reason.itertuples():
27
+ try:
28
+ ths_pool_zt_reason_one_df = ths_zt_pool_df_data.loc[
29
+ ths_zt_pool_df_data['symbol'] == stock_zt_one.symbol]
30
+ if data_frame_util.is_not_empty(ths_pool_zt_reason_one_df):
31
+ stock_zt_pool_df_one_df = stock_zt_pool_df_null_zt_reason.loc[
32
+ stock_zt_pool_df_null_zt_reason['symbol'] == stock_zt_one.symbol]
33
+ stock_zt_pool_df_one_df['zt_reason'] = list(ths_pool_zt_reason_one_df['zt_reason'])[0]
34
+ mongodb_util.save_mongo(stock_zt_pool_df_one_df, 'stock_zt_pool')
35
+ no_reason_list.remove(stock_zt_one.symbol)
36
+ except BaseException as e:
37
+ logger.error("出现异常:{},{}", stock_zt_one.symbol, e)
38
+ continue
39
+ repeat_number = repeat_number + 1
40
+
41
+ return stock_zt_pool_df_null_zt_reason
42
+
43
+
44
+ if __name__ == '__main__':
45
+ update_null_zt_reason('2024-10-08')
@@ -54,6 +54,7 @@ import mns_scheduler.company_info.remark.company_remark_info_sync as company_rem
54
54
  import mns_scheduler.finance.sync_financial_report_service_api as sync_financial_report_service_api
55
55
  import mns_scheduler.hk.hk_industry_info_sync_service_api as hk_industry_info_sync_service_api
56
56
  import mns_scheduler.hk.hk_company_info_sync_service_api as hk_company_info_sync_service_api
57
+ import mns_scheduler.zt.zt_pool.update_null_zt_reason_api as update_null_zt_reason_api
57
58
 
58
59
 
59
60
  # 同步交易日期任务完成
@@ -384,6 +385,15 @@ def sync_hk_company_industry_info():
384
385
  hk_industry_info_sync_service_api.sync_hk_company_industry()
385
386
 
386
387
 
388
+ # 更新空的涨停原因股票
389
+ def update_null_zt_reason():
390
+ now_date = datetime.now()
391
+ str_now_day = now_date.strftime('%Y-%m-%d')
392
+ if trade_date_common_service_api.is_trade_day(str_now_day):
393
+ update_null_zt_reason_api.update_null_zt_reason(str_now_day)
394
+ logger.info("更新空涨停原因信息:{}", str_now_day)
395
+
396
+
387
397
  # # 定义BlockingScheduler
388
398
  blockingScheduler = BlockingScheduler()
389
399
  # sync_trade_date 同步交易日期
@@ -444,7 +454,7 @@ blockingScheduler.add_job(sync_all_kpl_plate_info, 'interval', minutes=5, max_in
444
454
  # 同步公司基本信息
445
455
  blockingScheduler.add_job(update_company_base_info, 'cron', hour='08,18', minute='05')
446
456
  # 更新当天涨停股票池
447
- blockingScheduler.add_job(sync_stock_zt_pool, 'cron', hour='15,19,21,23', minute='05')
457
+ blockingScheduler.add_job(sync_stock_zt_pool, 'cron', hour='15,19,', minute='05')
448
458
 
449
459
  # 自动打新 打新中签高时间段 10:30-11:30
450
460
  blockingScheduler.add_job(auto_ipo_buy, 'cron', hour='10', minute='40,50')
@@ -478,6 +488,8 @@ blockingScheduler.add_job(sync_financial_report_task, 'cron', hour='17', minute=
478
488
 
479
489
  # 同步港股公司和行业信息
480
490
  blockingScheduler.add_job(sync_hk_company_industry_info, 'cron', hour='08,15', minute='10')
491
+ # 更新空的涨停原因股票
492
+ blockingScheduler.add_job(update_null_zt_reason, 'cron', hour='16,17,18,19,20,21,22,23', minute='10')
481
493
 
482
494
  print('定时任务启动成功')
483
495
  blockingScheduler.start()
@@ -1,4 +1,4 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mns-scheduler
3
- Version: 1.1.5.9
3
+ Version: 1.1.6.0
4
4
 
@@ -126,11 +126,12 @@ mns_scheduler/zt/script/kcx_high_chg_open_his_data_handle.py,sha256=aTrYgshcccoH
126
126
  mns_scheduler/zt/script/sync_high_chg_pool_his_data.py,sha256=dtREQdNpoDM4KLTvdXuiEhXmdjpc1dScMDgR3fbEbww,1685
127
127
  mns_scheduler/zt/script/sync_now_higt_chg_zt.py,sha256=bhoIGDWTI3w0YKVfIAVNHWpUrYqJYDMGPt-1i3d_Zmw,1850
128
128
  mns_scheduler/zt/zt_pool/__init__.py,sha256=Tyvi_iQlv3jz59EdH67Mycnt9CSixcWPQoJwu55bOq0,165
129
- mns_scheduler/zt/zt_pool/em_zt_pool_sync_api.py,sha256=Y2TattsWufh8rSYxN5szSU_F5dnRELEdcA8jgF-h6Zo,6603
129
+ mns_scheduler/zt/zt_pool/em_zt_pool_sync_api.py,sha256=t2ZTNDyzEB1dgCBok_UY5du_xJ8uJjTUjEFnZWsNOlI,7070
130
130
  mns_scheduler/zt/zt_pool/ths_zt_pool_sync_api.py,sha256=Sy39T-yFwLSIIoSZqQzS-6-W1RlaFWvYpksEXKQVFdI,10456
131
+ mns_scheduler/zt/zt_pool/update_null_zt_reason_api.py,sha256=5bHFXEUE-h6kFxtKshGV8qT7eLevG8-HDJsemUBN39E,2032
131
132
  mns_scheduler/zz_task/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
132
- mns_scheduler/zz_task/data_sync_task.py,sha256=rxW_heXhyFBrkB4SPy1SK0t7zvv5f7Csdt29yoXp-E0,20200
133
- mns_scheduler-1.1.5.9.dist-info/METADATA,sha256=g3wVhh90TYb-QBwFf5330JrCHFpYm_NFtCzV7HBtCv8,64
134
- mns_scheduler-1.1.5.9.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
135
- mns_scheduler-1.1.5.9.dist-info/top_level.txt,sha256=PXQDFBGR1pWmsUbH5yiLAh71P5HZODTRED0zJ8CCgOc,14
136
- mns_scheduler-1.1.5.9.dist-info/RECORD,,
133
+ mns_scheduler/zz_task/data_sync_task.py,sha256=3Ggntt959GPAEPmNfSsgTazqNF-bMd8VtU_ZwQwFs0c,20771
134
+ mns_scheduler-1.1.6.0.dist-info/METADATA,sha256=vWSJRyyuLTYLJHuB6unk9A4D3KoUEAxaVVbjRNVc3U8,64
135
+ mns_scheduler-1.1.6.0.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
136
+ mns_scheduler-1.1.6.0.dist-info/top_level.txt,sha256=PXQDFBGR1pWmsUbH5yiLAh71P5HZODTRED0zJ8CCgOc,14
137
+ mns_scheduler-1.1.6.0.dist-info/RECORD,,