mns-scheduler 1.4.0.2__py3-none-any.whl → 1.4.3.3__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.
- mns_scheduler/company_info/base/sync_company_base_info_api.py +148 -65
- mns_scheduler/company_info/base/sync_company_hold_info_api.py +2 -5
- mns_scheduler/company_info/base/sync_company_product_area_industry.py +0 -5
- mns_scheduler/company_info/clean/company_info_clean_api.py +1 -1
- mns_scheduler/company_info/constant/company_constant_data.py +3 -0
- mns_scheduler/company_info/em_stock_info/sync_em_stock_info_sync.py +33 -30
- mns_scheduler/finance/xue_qiu/sync_xue_qiu_fiance_data.py +4 -5
- mns_scheduler/irm/stock_irm_cninfo_service.py +3 -2
- mns_scheduler/k_line/clean/k_line_info_clean_task.py +7 -2
- mns_scheduler/risk/transactions/transactions_check_api.py +1 -1
- mns_scheduler/self_choose/ths_self_choose_service.py +21 -13
- mns_scheduler/trade/sync_position_api.py +38 -5
- mns_scheduler/zb/stock_zb_pool_sync.py +1 -1
- mns_scheduler/zt/zt_pool/em_zt_pool_sync_api.py +250 -55
- mns_scheduler/zt/zt_pool/update_null_zt_reason_api.py +23 -12
- mns_scheduler/zz_task/compensation/compensate_task_one_day.py +2 -2
- mns_scheduler/zz_task/data_sync_task.py +6 -6
- {mns_scheduler-1.4.0.2.dist-info → mns_scheduler-1.4.3.3.dist-info}/METADATA +1 -1
- {mns_scheduler-1.4.0.2.dist-info → mns_scheduler-1.4.3.3.dist-info}/RECORD +21 -23
- mns_scheduler/debt/__init__.py +0 -7
- mns_scheduler/debt/kzz_bond_info_sync.py +0 -33
- {mns_scheduler-1.4.0.2.dist-info → mns_scheduler-1.4.3.3.dist-info}/WHEEL +0 -0
- {mns_scheduler-1.4.0.2.dist-info → mns_scheduler-1.4.3.3.dist-info}/top_level.txt +0 -0
|
@@ -18,8 +18,13 @@ import mns_common.api.ths.zt.ths_stock_zt_pool_v2_api as ths_stock_zt_pool_v2_ap
|
|
|
18
18
|
import mns_common.component.zt.zt_common_service_api as zt_common_service_api
|
|
19
19
|
import mns_common.component.em.em_real_time_quotes_api as em_real_time_quotes_api
|
|
20
20
|
from datetime import datetime
|
|
21
|
+
import mns_common.api.ths.zt.ths_stock_zt_pool_api as ths_stock_zt_pool_api
|
|
22
|
+
import mns_common.constant.db_name_constant as db_name_constant
|
|
23
|
+
import mns_common.component.deal.deal_service_api as deal_service_api
|
|
24
|
+
import mns_common.component.company.company_common_service_new_api as company_common_service_new_api
|
|
21
25
|
import mns_common.api.ths.company.ths_company_info_api as ths_company_info_api
|
|
22
26
|
import mns_common.component.cookie.cookie_info_service as cookie_info_service
|
|
27
|
+
import time
|
|
23
28
|
|
|
24
29
|
'''
|
|
25
30
|
东方财富涨停池
|
|
@@ -44,18 +49,27 @@ ZT_FIELD = ['_id', 'symbol', 'name', 'now_price', 'chg', 'first_closure_time',
|
|
|
44
49
|
'list_date',
|
|
45
50
|
'exchange', 'flow_mv', 'total_mv',
|
|
46
51
|
'classification', 'flow_mv_sp', 'total_mv_sp', 'flow_mv_level',
|
|
47
|
-
'amount_level', 'new_stock', 'list_date_01', 'index', 'str_day', 'main_line']
|
|
52
|
+
'amount_level', 'new_stock', 'list_date_01', 'index', 'str_day', 'main_line', 'sub_main_line']
|
|
48
53
|
|
|
49
54
|
|
|
50
55
|
def save_zt_info(str_day):
|
|
51
56
|
if bool(1 - trade_date_common_service_api.is_trade_day(str_day)):
|
|
52
|
-
return
|
|
57
|
+
return pd.DataFrame()
|
|
53
58
|
|
|
54
59
|
stock_em_zt_pool_df_data = stock_zt_pool_api.stock_em_zt_pool_df(
|
|
55
60
|
date_handle_util.no_slash_date(str_day))
|
|
56
61
|
|
|
57
62
|
# fix 涨停池没有的股票
|
|
58
|
-
stock_em_zt_pool_df_data =
|
|
63
|
+
stock_em_zt_pool_df_data = handle_miss_zt_data(stock_em_zt_pool_df_data.copy(), str_day)
|
|
64
|
+
|
|
65
|
+
try:
|
|
66
|
+
# 同花顺问财涨停池
|
|
67
|
+
ths_zt_pool_df_data = ths_stock_zt_pool_v2_api.get_ths_stock_zt_reason_with_cache(str_day)
|
|
68
|
+
except BaseException as e:
|
|
69
|
+
logger.error("使用问财同步ths涨停数据异常")
|
|
70
|
+
ths_zt_pool_df_data = pd.DataFrame()
|
|
71
|
+
|
|
72
|
+
stock_em_zt_pool_df_data = handle_ths_em_diff_data(ths_zt_pool_df_data, stock_em_zt_pool_df_data)
|
|
59
73
|
|
|
60
74
|
stock_em_zt_pool_df_data = common_service_fun_api.total_mv_classification(stock_em_zt_pool_df_data.copy())
|
|
61
75
|
|
|
@@ -64,48 +78,14 @@ def save_zt_info(str_day):
|
|
|
64
78
|
stock_em_zt_pool_df_data = common_service_fun_api.symbol_amount_simple(stock_em_zt_pool_df_data.copy())
|
|
65
79
|
|
|
66
80
|
stock_em_zt_pool_df_data = company_common_service_api.amendment_industry(stock_em_zt_pool_df_data.copy())
|
|
81
|
+
|
|
67
82
|
# 主线标记 复盘用
|
|
68
83
|
stock_em_zt_pool_df_data['main_line'] = '无'
|
|
84
|
+
stock_em_zt_pool_df_data['sub_main_line'] = '无'
|
|
85
|
+
|
|
69
86
|
# 上个交易交易日涨停股票
|
|
70
87
|
last_trade_day_zt_df = zt_common_service_api.get_last_trade_day_zt(str_day)
|
|
71
88
|
|
|
72
|
-
try:
|
|
73
|
-
# 同花顺问财涨停池
|
|
74
|
-
ths_zt_pool_df_data = ths_stock_zt_pool_v2_api.get_ths_stock_zt_reason_with_cache(str_day)
|
|
75
|
-
|
|
76
|
-
# del stock_em_zt_pool_df_data['ths_concept_name']
|
|
77
|
-
# del stock_em_zt_pool_df_data['ths_concept_code']
|
|
78
|
-
for stock_one in stock_em_zt_pool_df_data.itertuples():
|
|
79
|
-
try:
|
|
80
|
-
|
|
81
|
-
# 设置连板数目
|
|
82
|
-
stock_em_zt_pool_df_data = set_connected_boards_numbers(stock_em_zt_pool_df_data.copy(),
|
|
83
|
-
stock_one.symbol, last_trade_day_zt_df.copy())
|
|
84
|
-
|
|
85
|
-
ths_zt_pool_one_df = ths_zt_pool_df_data.loc[ths_zt_pool_df_data['symbol'] == stock_one.symbol]
|
|
86
|
-
if data_frame_util.is_empty(ths_zt_pool_one_df):
|
|
87
|
-
stock_em_zt_pool_df_data['zt_reason'] = '0'
|
|
88
|
-
continue
|
|
89
|
-
stock_em_zt_pool_df_data.loc[stock_em_zt_pool_df_data['symbol'] == stock_one.symbol, 'zt_reason'] = \
|
|
90
|
-
list(ths_zt_pool_one_df['zt_reason'])[0]
|
|
91
|
-
|
|
92
|
-
first_closure_time = list(ths_zt_pool_one_df['first_closure_time'])[0]
|
|
93
|
-
first_closure_time = first_closure_time.replace(":", "")
|
|
94
|
-
|
|
95
|
-
stock_em_zt_pool_df_data.loc[
|
|
96
|
-
stock_em_zt_pool_df_data['symbol'] == stock_one.symbol, 'first_closure_time'] = first_closure_time
|
|
97
|
-
|
|
98
|
-
zt_analysis = ths_company_info_api.get_company_hot_info(stock_one.symbol,
|
|
99
|
-
cookie_info_service.get_ths_cookie())
|
|
100
|
-
stock_em_zt_pool_df_data.loc[
|
|
101
|
-
stock_em_zt_pool_df_data['symbol'] == stock_one.symbol, 'zt_analysis'] = zt_analysis
|
|
102
|
-
|
|
103
|
-
except BaseException as e:
|
|
104
|
-
stock_em_zt_pool_df_data['zt_reason'] = '0'
|
|
105
|
-
logger.error("出现异常:{}", e)
|
|
106
|
-
except BaseException as e:
|
|
107
|
-
stock_em_zt_pool_df_data['zt_reason'] = '0'
|
|
108
|
-
logger.error("出现异常:{}", e)
|
|
109
89
|
stock_em_zt_pool_df_data['first_closure_time'] = stock_em_zt_pool_df_data['first_closure_time'].str.strip()
|
|
110
90
|
stock_em_zt_pool_df_data['list_date'] = stock_em_zt_pool_df_data['list_date'].apply(
|
|
111
91
|
lambda x: pd.to_numeric(x, errors="coerce"))
|
|
@@ -130,48 +110,136 @@ def save_zt_info(str_day):
|
|
|
130
110
|
|
|
131
111
|
stock_em_zt_pool_df_data['str_day'] = str_day
|
|
132
112
|
stock_em_zt_pool_df_data['_id'] = stock_em_zt_pool_df_data['symbol'] + "_" + str_day
|
|
113
|
+
stock_em_zt_pool_df_data.drop_duplicates('symbol', keep='last', inplace=True)
|
|
133
114
|
|
|
134
|
-
|
|
115
|
+
query_today_zt = {'str_day': str_day}
|
|
135
116
|
|
|
136
|
-
|
|
117
|
+
stock_today_zt_pool_df = mongodb_util.find_query_data(db_name_constant.STOCK_ZT_POOL, query_today_zt)
|
|
118
|
+
|
|
119
|
+
if data_frame_util.is_empty(stock_today_zt_pool_df):
|
|
137
120
|
|
|
138
|
-
|
|
139
|
-
if data_frame_util.is_empty(exist_zt_pool_today):
|
|
140
|
-
mongodb_util.save_mongo(stock_em_zt_pool_df_data, 'stock_zt_pool')
|
|
121
|
+
today_new_zt_pool_df = stock_em_zt_pool_df_data.copy()
|
|
141
122
|
else:
|
|
142
|
-
|
|
123
|
+
today_new_zt_pool_df = stock_em_zt_pool_df_data.loc[
|
|
124
|
+
~stock_em_zt_pool_df_data['symbol'].isin(stock_today_zt_pool_df['symbol'])]
|
|
125
|
+
|
|
126
|
+
try:
|
|
127
|
+
|
|
128
|
+
today_main_line_df = mongodb_util.find_query_data(db_name_constant.MAIN_LINE_DETAIL, {'str_day': str_day})
|
|
143
129
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
130
|
+
for stock_one in today_new_zt_pool_df.itertuples():
|
|
131
|
+
try:
|
|
132
|
+
zt_reason = ''
|
|
133
|
+
zt_analyse_detail = ''
|
|
134
|
+
|
|
135
|
+
# 设置连板数目
|
|
136
|
+
stock_em_zt_pool_df_data = set_connected_boards_numbers(stock_em_zt_pool_df_data.copy(),
|
|
137
|
+
stock_one.symbol,
|
|
138
|
+
last_trade_day_zt_df.copy())
|
|
139
|
+
|
|
140
|
+
reason_tag = False
|
|
141
|
+
# 网页获取
|
|
142
|
+
try:
|
|
143
|
+
ths_cookie = cookie_info_service.get_ths_cookie()
|
|
144
|
+
# 问财获取涨停分析
|
|
145
|
+
zt_analyse_detail = ths_company_info_api.get_company_hot_info(stock_one.symbol, ths_cookie)
|
|
146
|
+
|
|
147
|
+
zt_reason = zt_analyse_detail.split("\n")[0]
|
|
148
|
+
reason_tag = True
|
|
149
|
+
time.sleep(2)
|
|
150
|
+
except BaseException as e:
|
|
151
|
+
time.sleep(2)
|
|
152
|
+
logger.error("网页获取涨停详情异常:{},{}", stock_one.symbol, e)
|
|
153
|
+
|
|
154
|
+
# 问财获取
|
|
155
|
+
if bool(1 - reason_tag):
|
|
156
|
+
try:
|
|
157
|
+
# 问财获取涨停分析
|
|
158
|
+
zt_result_dict = ths_stock_zt_pool_api.zt_analyse_reason(stock_one.symbol)
|
|
159
|
+
zt_analyse_detail = zt_result_dict['zt_analyse_detail']
|
|
160
|
+
zt_reason = zt_result_dict['zt_reason']
|
|
161
|
+
time.sleep(2)
|
|
162
|
+
except BaseException as e:
|
|
163
|
+
time.sleep(2)
|
|
164
|
+
logger.error("问财获取涨停详情异常:{},{}", stock_one.symbol, e)
|
|
165
|
+
|
|
166
|
+
stock_em_zt_pool_df_data.loc[
|
|
167
|
+
stock_em_zt_pool_df_data['symbol'] == stock_one.symbol, 'zt_reason'] = zt_reason
|
|
168
|
+
|
|
169
|
+
stock_em_zt_pool_df_data.loc[
|
|
170
|
+
stock_em_zt_pool_df_data['symbol'] == stock_one.symbol, 'zt_analysis'] = zt_analyse_detail
|
|
171
|
+
|
|
172
|
+
if data_frame_util.is_not_empty(today_main_line_df):
|
|
173
|
+
today_main_line_one_df = today_main_line_df.loc[today_main_line_df['symbol'] == stock_one.symbol]
|
|
174
|
+
if data_frame_util.is_not_empty(today_main_line_one_df):
|
|
175
|
+
stock_em_zt_pool_df_data.loc[
|
|
176
|
+
stock_em_zt_pool_df_data['symbol'] == stock_one.symbol, 'main_line'] = \
|
|
177
|
+
list(today_main_line_one_df['main_line'])[0]
|
|
178
|
+
|
|
179
|
+
stock_em_zt_pool_df_data.loc[
|
|
180
|
+
stock_em_zt_pool_df_data['symbol'] == stock_one.symbol, 'sub_main_line'] = \
|
|
181
|
+
list(today_main_line_one_df['sub_main_line'])[0]
|
|
182
|
+
|
|
183
|
+
query_exist = {'symbol': stock_one.symbol, 'str_day': str_day}
|
|
184
|
+
if mongodb_util.exist_data_query(db_name_constant.STOCK_ZT_POOL, query_exist):
|
|
185
|
+
continue
|
|
186
|
+
else:
|
|
187
|
+
|
|
188
|
+
stock_em_zt_pool_df_data_one = stock_em_zt_pool_df_data.loc[
|
|
189
|
+
stock_em_zt_pool_df_data['symbol'] == stock_one.symbol]
|
|
190
|
+
stock_em_zt_pool_df_data_one = stock_em_zt_pool_df_data_one[ZT_FIELD]
|
|
191
|
+
|
|
192
|
+
chg = round(float(list(stock_em_zt_pool_df_data_one['chg'])[0]), 2)
|
|
193
|
+
stock_em_zt_pool_df_data_one['chg'] = chg
|
|
194
|
+
|
|
195
|
+
mongodb_util.save_mongo(stock_em_zt_pool_df_data_one, db_name_constant.STOCK_ZT_POOL)
|
|
196
|
+
|
|
197
|
+
except BaseException as e:
|
|
198
|
+
|
|
199
|
+
logger.error("同步涨停信息出现异常:{},{}", stock_one.symbol, e)
|
|
200
|
+
except BaseException as e:
|
|
201
|
+
stock_em_zt_pool_df_data['zt_reason'] = '0'
|
|
202
|
+
logger.error("出现异常:{}", e)
|
|
203
|
+
|
|
204
|
+
stock_em_zt_pool_df_data = pd.concat([stock_today_zt_pool_df, today_new_zt_pool_df])
|
|
205
|
+
stock_em_zt_pool_df_data = stock_em_zt_pool_df_data[ZT_FIELD]
|
|
149
206
|
return stock_em_zt_pool_df_data
|
|
150
207
|
|
|
151
208
|
|
|
152
209
|
# 设置连板数目
|
|
153
210
|
def set_connected_boards_numbers(stock_em_zt_pool_df_data, symbol, last_trade_day_zt_df):
|
|
211
|
+
# 连板股票
|
|
154
212
|
connected_boards_df_copy = last_trade_day_zt_df.loc[
|
|
155
213
|
last_trade_day_zt_df['symbol'].isin(stock_em_zt_pool_df_data['symbol'])]
|
|
214
|
+
|
|
156
215
|
connected_boards_df = connected_boards_df_copy.copy()
|
|
157
216
|
connected_boards_df['connected_boards_numbers'] = connected_boards_df['connected_boards_numbers'] + 1
|
|
158
217
|
|
|
218
|
+
# 连板股票
|
|
159
219
|
connected_boards_df_one = connected_boards_df.loc[connected_boards_df['symbol'] == symbol]
|
|
220
|
+
|
|
160
221
|
if data_frame_util.is_not_empty(connected_boards_df_one):
|
|
161
222
|
stock_em_zt_pool_df_data.loc[stock_em_zt_pool_df_data['symbol'] == symbol, 'connected_boards_numbers'] = \
|
|
162
223
|
list(connected_boards_df_one['connected_boards_numbers'])[0]
|
|
163
224
|
|
|
164
|
-
|
|
165
|
-
|
|
225
|
+
if 'main_line' in connected_boards_df_one.columns:
|
|
226
|
+
stock_em_zt_pool_df_data.loc[stock_em_zt_pool_df_data['symbol'] == symbol, 'main_line'] = \
|
|
227
|
+
list(connected_boards_df_one['main_line'])[0]
|
|
228
|
+
|
|
229
|
+
if 'sub_main_line' in connected_boards_df_one.columns:
|
|
230
|
+
stock_em_zt_pool_df_data.loc[stock_em_zt_pool_df_data['symbol'] == symbol, 'sub_main_line'] = \
|
|
231
|
+
list(connected_boards_df_one['sub_main_line'])[0]
|
|
166
232
|
|
|
167
233
|
return stock_em_zt_pool_df_data
|
|
168
234
|
|
|
169
235
|
|
|
170
|
-
def
|
|
236
|
+
def handle_miss_zt_data(stock_em_zt_pool_df_data, str_day):
|
|
171
237
|
now_date = datetime.now()
|
|
172
238
|
now_day = now_date.strftime('%Y-%m-%d')
|
|
173
239
|
if now_day == str_day:
|
|
174
240
|
real_time_quotes_all_stocks_df = em_real_time_quotes_api.get_real_time_quotes_now(None, None)
|
|
241
|
+
if data_frame_util.is_empty(real_time_quotes_all_stocks_df):
|
|
242
|
+
return stock_em_zt_pool_df_data
|
|
175
243
|
real_time_quotes_all_stocks_df = real_time_quotes_all_stocks_df.loc[
|
|
176
244
|
(real_time_quotes_all_stocks_df['wei_bi'] == 100) & (real_time_quotes_all_stocks_df['chg'] >= 9)]
|
|
177
245
|
miss_zt_data_df_copy = real_time_quotes_all_stocks_df.loc[~(
|
|
@@ -221,8 +289,135 @@ def sync_miss_zt_data(stock_em_zt_pool_df_data, str_day):
|
|
|
221
289
|
return stock_em_zt_pool_df_data
|
|
222
290
|
|
|
223
291
|
|
|
292
|
+
def handle_ths_em_diff_data(ths_zt_pool_df_data, stock_em_zt_pool_df_data):
|
|
293
|
+
if data_frame_util.is_empty(ths_zt_pool_df_data):
|
|
294
|
+
return stock_em_zt_pool_df_data
|
|
295
|
+
else:
|
|
296
|
+
diff_ths_zt_df = ths_zt_pool_df_data.loc[
|
|
297
|
+
~(ths_zt_pool_df_data['symbol'].isin(stock_em_zt_pool_df_data['symbol']))]
|
|
298
|
+
if data_frame_util.is_empty(diff_ths_zt_df):
|
|
299
|
+
return stock_em_zt_pool_df_data
|
|
300
|
+
else:
|
|
301
|
+
diff_ths_zt_df = diff_ths_zt_df[[
|
|
302
|
+
'symbol',
|
|
303
|
+
'name',
|
|
304
|
+
'chg',
|
|
305
|
+
'now_price',
|
|
306
|
+
# 'amount',
|
|
307
|
+
# 'flow_mv',
|
|
308
|
+
# 'total_mv',
|
|
309
|
+
# 'exchange',
|
|
310
|
+
'closure_funds',
|
|
311
|
+
'first_closure_time',
|
|
312
|
+
'last_closure_time',
|
|
313
|
+
'frying_plates_numbers',
|
|
314
|
+
'statistics',
|
|
315
|
+
'connected_boards_numbers'
|
|
316
|
+
|
|
317
|
+
]]
|
|
318
|
+
|
|
319
|
+
company_info_df = query_company_info_with_share()
|
|
320
|
+
company_info_df['symbol'] = company_info_df['_id']
|
|
321
|
+
company_info_df = company_info_df.loc[company_info_df['symbol'].isin(list(diff_ths_zt_df['symbol']))]
|
|
322
|
+
|
|
323
|
+
company_info_df = common_service_fun_api.add_after_prefix(company_info_df)
|
|
324
|
+
|
|
325
|
+
symbol_prefix_list = list(company_info_df['symbol_prefix'])
|
|
326
|
+
real_time_quotes_list = deal_service_api.get_qmt_real_time_quotes_detail('qmt',
|
|
327
|
+
symbol_prefix_list)
|
|
328
|
+
|
|
329
|
+
real_time_quotes_df = pd.DataFrame(real_time_quotes_list)
|
|
330
|
+
|
|
331
|
+
real_time_quotes_df['symbol'] = real_time_quotes_df['symbol'].str.slice(0, 6)
|
|
332
|
+
company_info_df = company_info_df.set_index(['symbol'], drop=True)
|
|
333
|
+
real_time_quotes_df = real_time_quotes_df.set_index(['symbol'], drop=False)
|
|
334
|
+
|
|
335
|
+
real_time_quotes_df = pd.merge(company_info_df, real_time_quotes_df, how='outer',
|
|
336
|
+
left_index=True, right_index=True)
|
|
337
|
+
|
|
338
|
+
real_time_quotes_df['amount'] = round(real_time_quotes_df['amount'], 1)
|
|
339
|
+
|
|
340
|
+
real_time_quotes_df['total_mv'] = round(
|
|
341
|
+
real_time_quotes_df['lastPrice'] * real_time_quotes_df['total_share'], 1)
|
|
342
|
+
real_time_quotes_df['flow_mv'] = round(real_time_quotes_df['lastPrice'] * real_time_quotes_df['flow_share'],
|
|
343
|
+
1)
|
|
344
|
+
real_time_quotes_df['exchange'] = round(
|
|
345
|
+
real_time_quotes_df['amount'] * 100 / real_time_quotes_df['flow_mv'], 1)
|
|
346
|
+
|
|
347
|
+
real_time_quotes_df = real_time_quotes_df[
|
|
348
|
+
['symbol', 'amount', 'total_mv', 'flow_mv', 'exchange', 'industry']]
|
|
349
|
+
|
|
350
|
+
real_time_quotes_df = real_time_quotes_df.set_index(['symbol'], drop=True)
|
|
351
|
+
diff_ths_zt_df = diff_ths_zt_df.set_index(['symbol'], drop=False)
|
|
352
|
+
diff_ths_zt_df = pd.merge(real_time_quotes_df, diff_ths_zt_df, how='outer',
|
|
353
|
+
left_index=True, right_index=True)
|
|
354
|
+
|
|
355
|
+
diff_ths_zt_df = diff_ths_zt_df[[
|
|
356
|
+
'symbol',
|
|
357
|
+
'name',
|
|
358
|
+
'chg',
|
|
359
|
+
'now_price',
|
|
360
|
+
'amount',
|
|
361
|
+
'flow_mv',
|
|
362
|
+
'total_mv',
|
|
363
|
+
'exchange',
|
|
364
|
+
'closure_funds',
|
|
365
|
+
'first_closure_time',
|
|
366
|
+
'last_closure_time',
|
|
367
|
+
'frying_plates_numbers',
|
|
368
|
+
'statistics',
|
|
369
|
+
'connected_boards_numbers',
|
|
370
|
+
'industry'
|
|
371
|
+
|
|
372
|
+
]]
|
|
373
|
+
|
|
374
|
+
exist_number = stock_em_zt_pool_df_data.shape[0] + 1
|
|
375
|
+
|
|
376
|
+
diff_ths_zt_df.index = range(exist_number, exist_number + len(diff_ths_zt_df))
|
|
377
|
+
diff_ths_zt_df['index'] = diff_ths_zt_df.index
|
|
378
|
+
|
|
379
|
+
stock_em_zt_pool_df_data = pd.concat([stock_em_zt_pool_df_data, diff_ths_zt_df])
|
|
380
|
+
return stock_em_zt_pool_df_data
|
|
381
|
+
|
|
382
|
+
|
|
383
|
+
def query_company_info_with_share():
|
|
384
|
+
query_field = {"_id": 1,
|
|
385
|
+
"industry": 1,
|
|
386
|
+
"company_type": 1,
|
|
387
|
+
"ths_industry_code": 1,
|
|
388
|
+
"ths_concept_name": 1,
|
|
389
|
+
"ths_concept_code": 1,
|
|
390
|
+
"ths_concept_sync_day": 1,
|
|
391
|
+
"first_sw_industry": 1,
|
|
392
|
+
"second_sw_industry": 1,
|
|
393
|
+
"second_industry_code": 1,
|
|
394
|
+
"third_sw_industry": 1,
|
|
395
|
+
"mv_circulation_ratio": 1,
|
|
396
|
+
"list_date": 1,
|
|
397
|
+
"diff_days": 1,
|
|
398
|
+
'em_industry': 1,
|
|
399
|
+
'operate_profit': 1,
|
|
400
|
+
'total_operate_income': 1,
|
|
401
|
+
"name": 1,
|
|
402
|
+
'pb': 1,
|
|
403
|
+
'pe_ttm': 1,
|
|
404
|
+
'ROE': 1,
|
|
405
|
+
'ths_industry_name': 1,
|
|
406
|
+
'total_share': 1,
|
|
407
|
+
'flow_share': 1
|
|
408
|
+
}
|
|
409
|
+
de_list_company_symbols = company_common_service_new_api.get_de_list_company()
|
|
410
|
+
query_field_key = str(query_field)
|
|
411
|
+
query = {"_id": {"$regex": "^[^48]"},
|
|
412
|
+
'symbol': {"$nin": de_list_company_symbols}, }
|
|
413
|
+
query_key = str(query)
|
|
414
|
+
company_info_df = company_common_service_new_api.get_company_info_by_field(query_key, query_field_key)
|
|
415
|
+
|
|
416
|
+
return company_info_df
|
|
417
|
+
|
|
418
|
+
|
|
224
419
|
if __name__ == '__main__':
|
|
225
|
-
save_zt_info('2025-
|
|
420
|
+
save_zt_info('2025-11-18')
|
|
226
421
|
# from datetime import datetime
|
|
227
422
|
#
|
|
228
423
|
# if __name__ == '__main__':
|
|
@@ -14,9 +14,15 @@ from loguru import logger
|
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
def update_null_zt_reason(str_day):
|
|
17
|
-
query = {"str_day": str_day, "$or": [{"zt_reason": "0"
|
|
17
|
+
query = {"str_day": str_day, "$or": [{"zt_reason": "0"},
|
|
18
18
|
{"zt_reason": ""},
|
|
19
|
-
{"zt_reason": float('nan')}
|
|
19
|
+
{"zt_reason": float('nan')},
|
|
20
|
+
|
|
21
|
+
{"zt_analysis": "0"},
|
|
22
|
+
{"zt_analysis": ""},
|
|
23
|
+
{"zt_analysis": float('nan')},
|
|
24
|
+
|
|
25
|
+
]}
|
|
20
26
|
stock_zt_pool_df_null_zt_reason = mongodb_util.find_query_data('stock_zt_pool', query)
|
|
21
27
|
if data_frame_util.is_empty(stock_zt_pool_df_null_zt_reason):
|
|
22
28
|
return None
|
|
@@ -24,24 +30,29 @@ def update_null_zt_reason(str_day):
|
|
|
24
30
|
repeat_number = 0
|
|
25
31
|
# 循环10次
|
|
26
32
|
while len(no_reason_list) > 0 and repeat_number < 10:
|
|
27
|
-
|
|
33
|
+
|
|
28
34
|
for stock_zt_one in stock_zt_pool_df_null_zt_reason.itertuples():
|
|
29
35
|
try:
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
36
|
+
# 涨停原因
|
|
37
|
+
stock_zt_pool_df_one_df = stock_zt_pool_df_null_zt_reason.loc[
|
|
38
|
+
stock_zt_pool_df_null_zt_reason['symbol'] == stock_zt_one.symbol]
|
|
39
|
+
# 涨停分析
|
|
40
|
+
zt_result_dict = ths_stock_zt_pool_api.zt_analyse_reason(stock_zt_one.symbol)
|
|
41
|
+
zt_analysis = zt_result_dict['zt_analyse_detail']
|
|
42
|
+
zt_reason = zt_result_dict['zt_reason']
|
|
43
|
+
|
|
44
|
+
stock_zt_pool_df_one_df['zt_analysis'] = zt_analysis
|
|
45
|
+
stock_zt_pool_df_one_df['zt_reason'] = zt_reason
|
|
46
|
+
|
|
47
|
+
mongodb_util.save_mongo(stock_zt_pool_df_one_df, 'stock_zt_pool')
|
|
48
|
+
if stock_zt_one.symbol in no_reason_list:
|
|
37
49
|
no_reason_list.remove(stock_zt_one.symbol)
|
|
38
50
|
except BaseException as e:
|
|
39
51
|
logger.error("出现异常:{},{}", stock_zt_one.symbol, e)
|
|
40
52
|
continue
|
|
41
53
|
repeat_number = repeat_number + 1
|
|
42
|
-
|
|
43
54
|
return stock_zt_pool_df_null_zt_reason
|
|
44
55
|
|
|
45
56
|
|
|
46
57
|
if __name__ == '__main__':
|
|
47
|
-
update_null_zt_reason('
|
|
58
|
+
update_null_zt_reason('2025-11-14')
|
|
@@ -321,7 +321,7 @@ def sync_position():
|
|
|
321
321
|
# 同步持仓
|
|
322
322
|
if trade_date_common_service_api.is_trade_day(str_day):
|
|
323
323
|
logger.info('同步持仓任务完成')
|
|
324
|
-
sync_position_api.
|
|
324
|
+
sync_position_api.sync_position_qmt()
|
|
325
325
|
|
|
326
326
|
|
|
327
327
|
# 同步开盘啦当日精选指数行情数据
|
|
@@ -354,7 +354,7 @@ def sync_all_interactive_questions():
|
|
|
354
354
|
tag = bool(1 - trade_date_common_service_api.is_trade_day(str_day))
|
|
355
355
|
if tag:
|
|
356
356
|
logger.info('同步互动回答')
|
|
357
|
-
stock_irm_cninfo_service.
|
|
357
|
+
stock_irm_cninfo_service.sync_symbols_interactive_questions([])
|
|
358
358
|
|
|
359
359
|
|
|
360
360
|
# # 重开定时任务同步
|
|
@@ -448,7 +448,7 @@ def check_k_line_sync_count():
|
|
|
448
448
|
|
|
449
449
|
# 同步公司产品区域信息
|
|
450
450
|
def sync_company_product_area_industry():
|
|
451
|
-
sync_company_product_area_industry_api.
|
|
451
|
+
sync_company_product_area_industry_api.sync_company_product_area_industry_task(None)
|
|
452
452
|
|
|
453
453
|
|
|
454
454
|
# # 定义BlockingScheduler
|
|
@@ -474,7 +474,7 @@ blockingScheduler.add_job(sync_position, 'cron', hour='0,08,09', minute='14')
|
|
|
474
474
|
blockingScheduler.add_job(update_company_base_info, 'cron', hour='08,18', minute='05')
|
|
475
475
|
|
|
476
476
|
# 同步互动回答
|
|
477
|
-
blockingScheduler.add_job(sync_all_interactive_questions, 'cron', hour='
|
|
477
|
+
blockingScheduler.add_job(sync_all_interactive_questions, 'cron', hour='06,17', minute='30')
|
|
478
478
|
|
|
479
479
|
# 同步十大流通股东信息
|
|
480
480
|
blockingScheduler.add_job(sync_stock_gdfx_free_top_10_one_day, 'cron', hour='06,18', minute='05')
|
|
@@ -566,7 +566,7 @@ blockingScheduler.add_job(sync_all_kpl_plate_info, 'interval', minutes=5, max_in
|
|
|
566
566
|
# blockingScheduler.add_job(sync_company_announce, 'cron', hour='07,18,23', minute='33')
|
|
567
567
|
|
|
568
568
|
# check 前复权k线和下一个交易日策略k线数据同步状态
|
|
569
|
-
blockingScheduler.add_job(check_k_line_sync_count, 'cron', hour='
|
|
569
|
+
blockingScheduler.add_job(check_k_line_sync_count, 'cron', hour='6,23', minute='10')
|
|
570
570
|
|
|
571
571
|
# 同步公司产品区域信息
|
|
572
572
|
blockingScheduler.add_job(sync_company_product_area_industry, 'cron', day_of_week='sat,sun', hour='10,20',
|
|
@@ -576,4 +576,4 @@ print('定时任务启动成功')
|
|
|
576
576
|
blockingScheduler.start()
|
|
577
577
|
#
|
|
578
578
|
# if __name__ == '__main__':
|
|
579
|
-
#
|
|
579
|
+
# sync_company_product_area_industry()
|
|
@@ -3,17 +3,17 @@ mns_scheduler/company_info/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlI
|
|
|
3
3
|
mns_scheduler/company_info/announce/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
4
4
|
mns_scheduler/company_info/announce/company_announce_sync_service.py,sha256=q8zYOZJmRin_QU2uPk52wngNdgnZooabnfrnqzqFIrM,3055
|
|
5
5
|
mns_scheduler/company_info/base/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
6
|
-
mns_scheduler/company_info/base/sync_company_base_info_api.py,sha256=
|
|
7
|
-
mns_scheduler/company_info/base/sync_company_hold_info_api.py,sha256=
|
|
8
|
-
mns_scheduler/company_info/base/sync_company_product_area_industry.py,sha256=
|
|
6
|
+
mns_scheduler/company_info/base/sync_company_base_info_api.py,sha256=QAwzK7lex_BuDYwA02XNWiS8xCB402LEisdCnbcUzfo,24393
|
|
7
|
+
mns_scheduler/company_info/base/sync_company_hold_info_api.py,sha256=XEdJzDt6RQqzZOv4mEOFfeh7q7LPTTNWNwT0AR1zHJc,1409
|
|
8
|
+
mns_scheduler/company_info/base/sync_company_product_area_industry.py,sha256=fEWvYjknjC19yUiitfCdQeFKt77tfYQDSJv1bv1ZSXY,7295
|
|
9
9
|
mns_scheduler/company_info/clean/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
10
|
-
mns_scheduler/company_info/clean/company_info_clean_api.py,sha256=
|
|
10
|
+
mns_scheduler/company_info/clean/company_info_clean_api.py,sha256=vm6gr2yKoMpIFRmsz_EvKfd_7ItbfInjkISHhKWHqBA,6102
|
|
11
11
|
mns_scheduler/company_info/constant/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
12
|
-
mns_scheduler/company_info/constant/company_constant_data.py,sha256=
|
|
12
|
+
mns_scheduler/company_info/constant/company_constant_data.py,sha256=7emiXUeAla8nfyYYauGjsMarfY3ckN4TgYlON477jQE,22566
|
|
13
13
|
mns_scheduler/company_info/de_list_stock/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
14
14
|
mns_scheduler/company_info/de_list_stock/de_list_stock_service.py,sha256=QNtKc1ZI6xHjupcxbOBN7fBhi6oAGtL7X1TQZVzfpnk,1993
|
|
15
15
|
mns_scheduler/company_info/em_stock_info/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
16
|
-
mns_scheduler/company_info/em_stock_info/sync_em_stock_info_sync.py,sha256=
|
|
16
|
+
mns_scheduler/company_info/em_stock_info/sync_em_stock_info_sync.py,sha256=9NIv8HRAgjGFcTnw_i9YGQzQBZc57T2hdt66ciZcMZY,3922
|
|
17
17
|
mns_scheduler/company_info/remark/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
18
18
|
mns_scheduler/company_info/remark/company_remark_info_sync.py,sha256=L8wC8LU7-GYZb1TyKLjODJURROOEO4izZBxnWEM7Ahc,2334
|
|
19
19
|
mns_scheduler/concept/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
@@ -46,8 +46,6 @@ mns_scheduler/db/script/sync/sync_hui_ce_test_data.py,sha256=oymZRnt-cMnrrHod796
|
|
|
46
46
|
mns_scheduler/db/script/sync/sync_hui_ce_test_data_01.py,sha256=32F7kmxgube7F-_9-QhAHdjqWAQfRZZ51p7MdKi1u6I,2172
|
|
47
47
|
mns_scheduler/db/script/update/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
48
48
|
mns_scheduler/db/script/update/update_col_field.py,sha256=m7RJbNLTcaeknwHR50i3aebT--Rc6udpbOqyGwt61qg,1274
|
|
49
|
-
mns_scheduler/debt/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
50
|
-
mns_scheduler/debt/kzz_bond_info_sync.py,sha256=FOefhRDqSN1YRqY6drCN3p6PgzVD_isWQ15l9OllCGI,1346
|
|
51
49
|
mns_scheduler/dt/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
52
50
|
mns_scheduler/dt/stock_dt_pool_sync.py,sha256=5ivRUOnFtOapZniwTbujf1lVq3y4btm2Cmd5R6JJAVo,3466
|
|
53
51
|
mns_scheduler/finance/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
@@ -58,7 +56,7 @@ mns_scheduler/finance/em/em_financial_profit_sync_service_api.py,sha256=j5xnzcSt
|
|
|
58
56
|
mns_scheduler/finance/em/finance_common_api.py,sha256=rqsVJZEklJjvM9ogl-9GQaWxyh1LE6IKoTkQkN5cBvE,2453
|
|
59
57
|
mns_scheduler/finance/xue_qiu/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
|
|
60
58
|
mns_scheduler/finance/xue_qiu/down_load_xueqiu_report_api.py,sha256=r_RtfM2SBzQcvO1MH8Dt8mOXg2tbZOLz0sNwqne9jFs,2769
|
|
61
|
-
mns_scheduler/finance/xue_qiu/sync_xue_qiu_fiance_data.py,sha256=
|
|
59
|
+
mns_scheduler/finance/xue_qiu/sync_xue_qiu_fiance_data.py,sha256=aRqNPqnyCP_sKl7afdk3Xrfa9IRCbU6MDK3_AlxTDBQ,7218
|
|
62
60
|
mns_scheduler/hk/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
63
61
|
mns_scheduler/hk/hk_company_info_sync_service_api.py,sha256=MGIKodN9oXaY0iwtdsrg4wwHXkMglFvY8eyeTpbas6k,3724
|
|
64
62
|
mns_scheduler/hk/hk_industry_info_sync_service_api.py,sha256=WdCTaBi4GDicWfmiYbI-byBCXZwknkYZHk6y2IloMys,2275
|
|
@@ -67,14 +65,14 @@ mns_scheduler/industry/ths/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlI
|
|
|
67
65
|
mns_scheduler/industry/ths/ths_industry_index_service.py,sha256=MHvzUsDHnmdQn-mJc_D2uBKP0qvVWWagDV568xChPqg,2686
|
|
68
66
|
mns_scheduler/industry/ths/ths_industry_sync_service.py,sha256=r0jLbY3JcnCGgLWYzRrXiqIbeT8PBGnG2dT_INuN824,2762
|
|
69
67
|
mns_scheduler/irm/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
70
|
-
mns_scheduler/irm/stock_irm_cninfo_service.py,sha256=
|
|
68
|
+
mns_scheduler/irm/stock_irm_cninfo_service.py,sha256=ChOl_zWNSCXpj-NlveLaSsfie8hARusU4Ut1V_LAeOc,9759
|
|
71
69
|
mns_scheduler/irm/api/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
72
70
|
mns_scheduler/irm/api/sh_stock_sns_sse_info_api.py,sha256=EE09q9iIPNAEzxhKCM-2tsm1FZID3-fqdfikK1VS6H8,4931
|
|
73
71
|
mns_scheduler/irm/api/sz_stock_sns_sse_info_api.py,sha256=iJ9K8FhatQpCx5PqusIH5x4MAw3F1v3fYC1Ztsp_2Zw,6199
|
|
74
72
|
mns_scheduler/k_line/__init__.py,sha256=ffZXFCLFdIwOsbxnw__u1MbQYh9yz7Bs8UMP6VF0X2M,161
|
|
75
73
|
mns_scheduler/k_line/clean/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
76
74
|
mns_scheduler/k_line/clean/k_line_info_clean_impl.py,sha256=ZTnSpQ2zKnNPWCkHKPJkLdkxVK29szgufxNV6uvXG7s,1344
|
|
77
|
-
mns_scheduler/k_line/clean/k_line_info_clean_task.py,sha256=
|
|
75
|
+
mns_scheduler/k_line/clean/k_line_info_clean_task.py,sha256=i-6XSHUC6NxgZubCfU8NGyA0YHHMgi1b-xxlrRhg-is,9026
|
|
78
76
|
mns_scheduler/k_line/clean/daily/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
79
77
|
mns_scheduler/k_line/clean/daily/daily_k_line_clean_common_service.py,sha256=gIoInwd1eCKCmhIOJHo8MuNEwj8ehMxYw83j52pxmxk,20447
|
|
80
78
|
mns_scheduler/k_line/clean/daily/daily_k_line_service.py,sha256=1S-6sih0KptZEWYBN3jgVJHlv5y11QPONYjR-MpOQn8,6906
|
|
@@ -124,13 +122,13 @@ mns_scheduler/risk/self/wei_pan_stock_api.py,sha256=ac_hhdwoK8-uI_ag40YEj4iTOkB8
|
|
|
124
122
|
mns_scheduler/risk/test/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
125
123
|
mns_scheduler/risk/test/fix_blask_list.py,sha256=IRDedHWuTi9y8EIZSwdiRxEUZcYAY3TH15GgJRmnQEw,1245
|
|
126
124
|
mns_scheduler/risk/transactions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
127
|
-
mns_scheduler/risk/transactions/transactions_check_api.py,sha256=
|
|
125
|
+
mns_scheduler/risk/transactions/transactions_check_api.py,sha256=8lXid7P8NTVW9aPKS-v6Tv0wiseCnasVQQzD9sR49XI,7379
|
|
128
126
|
mns_scheduler/self_choose/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
129
|
-
mns_scheduler/self_choose/ths_self_choose_service.py,sha256=
|
|
127
|
+
mns_scheduler/self_choose/ths_self_choose_service.py,sha256=g3w4DBE_BGo-ey4Sj_Z5wqjUugTrMBAjEpGcoDGPyHE,7155
|
|
130
128
|
mns_scheduler/trade/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
131
129
|
mns_scheduler/trade/auto_ipo_buy_api.py,sha256=jVe5ZiXwzkDy_j_4X4rUamSzJpmzhV16lNKwbeWgpQw,386
|
|
132
130
|
mns_scheduler/trade/auto_sell_service_api.py,sha256=A2RB3WFxVHqbNPaPvhIgO-3uaicFZVmBKUy2TsfMU90,4624
|
|
133
|
-
mns_scheduler/trade/sync_position_api.py,sha256=
|
|
131
|
+
mns_scheduler/trade/sync_position_api.py,sha256=o73_qdh_2uzOed6HFzAipM5hKOLqVhThph2DcAri3Oc,4136
|
|
134
132
|
mns_scheduler/trade/auto_login/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
135
133
|
mns_scheduler/trade/auto_login/trader_auto_service.py,sha256=bsagj26s74Zv5OEyGahhBX_OK4Iuo5ZmuItsON9DDmY,795
|
|
136
134
|
mns_scheduler/trade/balance/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
@@ -140,7 +138,7 @@ mns_scheduler/trade/task/trader_task_service.py,sha256=1vdjfs-M9y0ana2OLwWdlkB9Y
|
|
|
140
138
|
mns_scheduler/trade/tfp/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
141
139
|
mns_scheduler/trade/tfp/stock_tfp_info_sync.py,sha256=7sHUhvMW_5vEyfVhFGDP7It2F27STb0OcpNnBCQjZ8I,2574
|
|
142
140
|
mns_scheduler/zb/__init__.py,sha256=Tyvi_iQlv3jz59EdH67Mycnt9CSixcWPQoJwu55bOq0,165
|
|
143
|
-
mns_scheduler/zb/stock_zb_pool_sync.py,sha256=
|
|
141
|
+
mns_scheduler/zb/stock_zb_pool_sync.py,sha256=ri8J2tgDduGY5eTYIpN6sYPNtqk_tmJxG5spvpWT2_s,1272
|
|
144
142
|
mns_scheduler/zt/__init__.py,sha256=Rzolrn2R5RZIj-eOmu9KcL6oZBY9Wjz_uBFXPlzirQc,1641
|
|
145
143
|
mns_scheduler/zt/connected_boards/__init__.py,sha256=Tyvi_iQlv3jz59EdH67Mycnt9CSixcWPQoJwu55bOq0,165
|
|
146
144
|
mns_scheduler/zt/connected_boards/zt_five_boards_sync_api.py,sha256=HfjPHKD99fU9c37kSenEX2_qNvFAjQGgy8ERuacSxwk,10916
|
|
@@ -157,15 +155,15 @@ mns_scheduler/zt/script/kcx_high_chg_open_his_data_handle.py,sha256=k2nrBjG41LU4
|
|
|
157
155
|
mns_scheduler/zt/script/sync_high_chg_pool_his_data.py,sha256=WX5ZlV0x2kkXiLTep8fcs2ZkWY5BMWS8lQv8xpq4DlY,1685
|
|
158
156
|
mns_scheduler/zt/script/sync_now_higt_chg_zt.py,sha256=7qUtn58ty9Vc6kY33BooCDIOojDGmSf9U5ncAtZt4cc,1853
|
|
159
157
|
mns_scheduler/zt/zt_pool/__init__.py,sha256=Tyvi_iQlv3jz59EdH67Mycnt9CSixcWPQoJwu55bOq0,165
|
|
160
|
-
mns_scheduler/zt/zt_pool/em_zt_pool_sync_api.py,sha256=
|
|
158
|
+
mns_scheduler/zt/zt_pool/em_zt_pool_sync_api.py,sha256=coTMbMgoFa0c7SJNzTyuON_XegzOw4rs6a3dAOGQ4Sw,20512
|
|
161
159
|
mns_scheduler/zt/zt_pool/ths_zt_pool_sync_api.py,sha256=LI4o4_sovmLj1tMROPRQRCj5gaITKLGoYH-nUCuysbU,7501
|
|
162
|
-
mns_scheduler/zt/zt_pool/update_null_zt_reason_api.py,sha256=
|
|
160
|
+
mns_scheduler/zt/zt_pool/update_null_zt_reason_api.py,sha256=A-qohVTrnSd8Bs9gubjxScGjB7zEZOBLJuVZfuIwLeU,2445
|
|
163
161
|
mns_scheduler/zz_task/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
164
|
-
mns_scheduler/zz_task/data_sync_task.py,sha256=
|
|
162
|
+
mns_scheduler/zz_task/data_sync_task.py,sha256=GbOJ0DhHVxTAz9W09POLZl3AzYFlTsPP7Q1VikSfQkY,23545
|
|
165
163
|
mns_scheduler/zz_task/compensation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
166
164
|
mns_scheduler/zz_task/compensation/compensate_task.py,sha256=Dyo66NcSnXZ-Cne4_v77BBb27SemAiuGXRLnvQ26X0E,6464
|
|
167
|
-
mns_scheduler/zz_task/compensation/compensate_task_one_day.py,sha256=
|
|
168
|
-
mns_scheduler-1.4.
|
|
169
|
-
mns_scheduler-1.4.
|
|
170
|
-
mns_scheduler-1.4.
|
|
171
|
-
mns_scheduler-1.4.
|
|
165
|
+
mns_scheduler/zz_task/compensation/compensate_task_one_day.py,sha256=jvaYpUS8AyJHgJTNchbco6eXMSzW1o4YNHgUBqrRTDk,5753
|
|
166
|
+
mns_scheduler-1.4.3.3.dist-info/METADATA,sha256=gcTNHaKsJ_Xl305CqVUkUQg4sWWQdN1-rrXcnNilEAo,64
|
|
167
|
+
mns_scheduler-1.4.3.3.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
|
|
168
|
+
mns_scheduler-1.4.3.3.dist-info/top_level.txt,sha256=PXQDFBGR1pWmsUbH5yiLAh71P5HZODTRED0zJ8CCgOc,14
|
|
169
|
+
mns_scheduler-1.4.3.3.dist-info/RECORD,,
|