mns-scheduler 1.3.5.0__py3-none-any.whl → 1.4.3.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.
- 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 +161 -0
- 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/{debt → finance/em}/__init__.py +1 -1
- mns_scheduler/finance/{em_financial_asset_liability_sync_service_api.py → em/em_financial_asset_liability_sync_service_api.py} +1 -1
- mns_scheduler/finance/{em_financial_profit_sync_service_api.py → em/em_financial_profit_sync_service_api.py} +5 -3
- mns_scheduler/finance/{sync_financial_report_service_api.py → sync_financial_report_service_task.py} +75 -22
- mns_scheduler/finance/xue_qiu/__init__.py +7 -0
- mns_scheduler/finance/xue_qiu/down_load_xueqiu_report_api.py +77 -0
- mns_scheduler/finance/xue_qiu/sync_xue_qiu_fiance_data.py +161 -0
- 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/k_line/sync_status/__init__.py +7 -0
- mns_scheduler/k_line/sync_status/k_line_sync_status_check.py +54 -0
- mns_scheduler/kpl/selection/symbol/sync_kpl_concept_symbol_choose_reason_api.py +7 -1
- mns_scheduler/risk/compliance/undisclosed_annual_report_api.py +1 -1
- 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/zt/zt_pool/em_zt_pool_sync_api.py +36 -17
- 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 +27 -7
- {mns_scheduler-1.3.5.0.dist-info → mns_scheduler-1.4.3.0.dist-info}/METADATA +1 -1
- {mns_scheduler-1.3.5.0.dist-info → mns_scheduler-1.4.3.0.dist-info}/RECORD +31 -26
- mns_scheduler/debt/kzz_bond_info_sync.py +0 -33
- /mns_scheduler/finance/{finance_common_api.py → em/finance_common_api.py} +0 -0
- {mns_scheduler-1.3.5.0.dist-info → mns_scheduler-1.4.3.0.dist-info}/WHEEL +0 -0
- {mns_scheduler-1.3.5.0.dist-info → mns_scheduler-1.4.3.0.dist-info}/top_level.txt +0 -0
|
@@ -9,16 +9,16 @@ import mns_common.component.deal.deal_service_api as deal_service_api
|
|
|
9
9
|
import pandas as pd
|
|
10
10
|
import mns_common.utils.data_frame_util as data_frame_util
|
|
11
11
|
import mns_common.constant.db_name_constant as db_name_constant
|
|
12
|
-
import datetime
|
|
13
|
-
|
|
12
|
+
from datetime import datetime
|
|
13
|
+
from mns_common.component.deal.terminal_enum import TerminalEnum
|
|
14
14
|
from mns_common.db.MongodbUtil import MongodbUtil
|
|
15
15
|
|
|
16
16
|
mongodb_util = MongodbUtil('27017')
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
# 同步持仓
|
|
20
|
-
def
|
|
21
|
-
now_date = datetime.
|
|
20
|
+
def sync_position_ths():
|
|
21
|
+
now_date = datetime.now()
|
|
22
22
|
str_day = now_date.strftime('%Y-%m-%d')
|
|
23
23
|
query_exist = {'str_day': str_day}
|
|
24
24
|
if mongodb_util.exist_data_query(db_name_constant.POSITION_STOCK, query_exist):
|
|
@@ -52,5 +52,38 @@ def sync_position():
|
|
|
52
52
|
mongodb_util.save_mongo(position_df, db_name_constant.POSITION_STOCK)
|
|
53
53
|
|
|
54
54
|
|
|
55
|
+
def sync_position_qmt():
|
|
56
|
+
now_date = datetime.now()
|
|
57
|
+
str_day = now_date.strftime('%Y-%m-%d')
|
|
58
|
+
query_exist = {'str_day': str_day}
|
|
59
|
+
# if mongodb_util.exist_data_query(db_name_constant.POSITION_STOCK, query_exist):
|
|
60
|
+
# return None
|
|
61
|
+
position_list = deal_service_api.get_position(TerminalEnum.QMT.terminal_code)
|
|
62
|
+
if len(position_list) == 0:
|
|
63
|
+
return None
|
|
64
|
+
position_df = pd.DataFrame(position_list)
|
|
65
|
+
position_df = position_df.rename(columns={
|
|
66
|
+
"stock_code": "symbol",
|
|
67
|
+
"avg_price": "cost_price",
|
|
68
|
+
"profit_loss": "floating_profit_loss",
|
|
69
|
+
"market_value": "flow_mv",
|
|
70
|
+
"can_use_volume": "available_position",
|
|
71
|
+
"frozen_volume": "frozen_position",
|
|
72
|
+
})
|
|
73
|
+
|
|
74
|
+
position_df['cost_price'] = round(position_df['cost_price'], 2)
|
|
75
|
+
position_df['open_price'] = round(position_df['open_price'], 2)
|
|
76
|
+
|
|
77
|
+
position_df['open_position'] = position_df['available_position'] + position_df['frozen_position'] + position_df[
|
|
78
|
+
'on_road_volume']
|
|
79
|
+
|
|
80
|
+
position_df['symbol'] = position_df['symbol'].str.slice(0, 6)
|
|
81
|
+
|
|
82
|
+
position_df["_id"] = position_df['symbol'] + '-' + str_day
|
|
83
|
+
position_df["str_day"] = str_day
|
|
84
|
+
position_df["valid"] = True
|
|
85
|
+
mongodb_util.save_mongo(position_df, db_name_constant.POSITION_STOCK)
|
|
86
|
+
|
|
87
|
+
|
|
55
88
|
if __name__ == '__main__':
|
|
56
|
-
|
|
89
|
+
sync_position_qmt()
|
|
@@ -18,8 +18,8 @@ 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.
|
|
22
|
-
import mns_common.
|
|
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
23
|
|
|
24
24
|
'''
|
|
25
25
|
东方财富涨停池
|
|
@@ -44,7 +44,7 @@ ZT_FIELD = ['_id', 'symbol', 'name', 'now_price', 'chg', 'first_closure_time',
|
|
|
44
44
|
'list_date',
|
|
45
45
|
'exchange', 'flow_mv', 'total_mv',
|
|
46
46
|
'classification', 'flow_mv_sp', 'total_mv_sp', 'flow_mv_level',
|
|
47
|
-
'amount_level', 'new_stock', 'list_date_01', 'index', 'str_day', 'main_line']
|
|
47
|
+
'amount_level', 'new_stock', 'list_date_01', 'index', 'str_day', 'main_line', 'sub_main_line']
|
|
48
48
|
|
|
49
49
|
|
|
50
50
|
def save_zt_info(str_day):
|
|
@@ -66,6 +66,7 @@ def save_zt_info(str_day):
|
|
|
66
66
|
stock_em_zt_pool_df_data = company_common_service_api.amendment_industry(stock_em_zt_pool_df_data.copy())
|
|
67
67
|
# 主线标记 复盘用
|
|
68
68
|
stock_em_zt_pool_df_data['main_line'] = '无'
|
|
69
|
+
stock_em_zt_pool_df_data['sub_main_line'] = '无'
|
|
69
70
|
# 上个交易交易日涨停股票
|
|
70
71
|
last_trade_day_zt_df = zt_common_service_api.get_last_trade_day_zt(str_day)
|
|
71
72
|
|
|
@@ -75,12 +76,16 @@ def save_zt_info(str_day):
|
|
|
75
76
|
|
|
76
77
|
# del stock_em_zt_pool_df_data['ths_concept_name']
|
|
77
78
|
# del stock_em_zt_pool_df_data['ths_concept_code']
|
|
79
|
+
|
|
80
|
+
today_main_line_df = mongodb_util.find_query_data(db_name_constant.MAIN_LINE_DETAIL, {'str_day': str_day})
|
|
81
|
+
|
|
78
82
|
for stock_one in stock_em_zt_pool_df_data.itertuples():
|
|
79
83
|
try:
|
|
80
84
|
|
|
81
85
|
# 设置连板数目
|
|
82
86
|
stock_em_zt_pool_df_data = set_connected_boards_numbers(stock_em_zt_pool_df_data.copy(),
|
|
83
|
-
stock_one.symbol,
|
|
87
|
+
stock_one.symbol,
|
|
88
|
+
last_trade_day_zt_df.copy())
|
|
84
89
|
|
|
85
90
|
ths_zt_pool_one_df = ths_zt_pool_df_data.loc[ths_zt_pool_df_data['symbol'] == stock_one.symbol]
|
|
86
91
|
if data_frame_util.is_empty(ths_zt_pool_one_df):
|
|
@@ -95,11 +100,26 @@ def save_zt_info(str_day):
|
|
|
95
100
|
stock_em_zt_pool_df_data.loc[
|
|
96
101
|
stock_em_zt_pool_df_data['symbol'] == stock_one.symbol, 'first_closure_time'] = first_closure_time
|
|
97
102
|
|
|
98
|
-
|
|
99
|
-
|
|
103
|
+
# 涨停分析
|
|
104
|
+
zt_result_dict = ths_stock_zt_pool_api.zt_analyse_reason(stock_one.symbol)
|
|
105
|
+
zt_analysis = zt_result_dict['zt_analyse_detail']
|
|
106
|
+
zt_reason = zt_result_dict['zt_reason']
|
|
107
|
+
|
|
108
|
+
stock_em_zt_pool_df_data.loc[
|
|
109
|
+
stock_em_zt_pool_df_data['symbol'] == stock_one.symbol, 'zt_reason'] = zt_reason
|
|
110
|
+
|
|
100
111
|
stock_em_zt_pool_df_data.loc[
|
|
101
112
|
stock_em_zt_pool_df_data['symbol'] == stock_one.symbol, 'zt_analysis'] = zt_analysis
|
|
102
113
|
|
|
114
|
+
today_main_line_one_df = today_main_line_df.loc[today_main_line_df['symbol'] == stock_one.symbol]
|
|
115
|
+
if data_frame_util.is_not_empty(today_main_line_one_df):
|
|
116
|
+
stock_em_zt_pool_df_data.loc[
|
|
117
|
+
stock_em_zt_pool_df_data['symbol'] == stock_one.symbol, 'main_line'] = \
|
|
118
|
+
list(today_main_line_one_df['main_line'])[0]
|
|
119
|
+
|
|
120
|
+
stock_em_zt_pool_df_data.loc[
|
|
121
|
+
stock_em_zt_pool_df_data['symbol'] == stock_one.symbol, 'sub_main_line'] = \
|
|
122
|
+
list(today_main_line_one_df['sub_main_line'])[0]
|
|
103
123
|
except BaseException as e:
|
|
104
124
|
stock_em_zt_pool_df_data['zt_reason'] = '0'
|
|
105
125
|
logger.error("出现异常:{}", e)
|
|
@@ -138,14 +158,6 @@ def save_zt_info(str_day):
|
|
|
138
158
|
exist_zt_pool_today = mongodb_util.find_query_data('stock_zt_pool', {'str_day': str_day})
|
|
139
159
|
if data_frame_util.is_empty(exist_zt_pool_today):
|
|
140
160
|
mongodb_util.save_mongo(stock_em_zt_pool_df_data, 'stock_zt_pool')
|
|
141
|
-
else:
|
|
142
|
-
exist_zt_pool_today_not_nan = exist_zt_pool_today.loc[exist_zt_pool_today['zt_reason'] != '0']
|
|
143
|
-
|
|
144
|
-
stock_em_zt_pool_df_data = stock_em_zt_pool_df_data.loc[:, ~stock_em_zt_pool_df_data.columns.duplicated()]
|
|
145
|
-
stock_em_zt_pool_df_data_new = stock_em_zt_pool_df_data.loc[~(
|
|
146
|
-
stock_em_zt_pool_df_data['symbol'].isin(exist_zt_pool_today_not_nan['symbol']))]
|
|
147
|
-
if data_frame_util.is_not_empty(stock_em_zt_pool_df_data_new):
|
|
148
|
-
mongodb_util.save_mongo(stock_em_zt_pool_df_data_new, 'stock_zt_pool')
|
|
149
161
|
return stock_em_zt_pool_df_data
|
|
150
162
|
|
|
151
163
|
|
|
@@ -161,8 +173,13 @@ def set_connected_boards_numbers(stock_em_zt_pool_df_data, symbol, last_trade_da
|
|
|
161
173
|
stock_em_zt_pool_df_data.loc[stock_em_zt_pool_df_data['symbol'] == symbol, 'connected_boards_numbers'] = \
|
|
162
174
|
list(connected_boards_df_one['connected_boards_numbers'])[0]
|
|
163
175
|
|
|
164
|
-
|
|
165
|
-
|
|
176
|
+
if 'main_line' in connected_boards_df_one.columns:
|
|
177
|
+
stock_em_zt_pool_df_data.loc[stock_em_zt_pool_df_data['symbol'] == symbol, 'main_line'] = \
|
|
178
|
+
list(connected_boards_df_one['main_line'])[0]
|
|
179
|
+
|
|
180
|
+
if 'sub_main_line' in connected_boards_df_one.columns:
|
|
181
|
+
stock_em_zt_pool_df_data.loc[stock_em_zt_pool_df_data['symbol'] == symbol, 'sub_main_line'] = \
|
|
182
|
+
list(connected_boards_df_one['sub_main_line'])[0]
|
|
166
183
|
|
|
167
184
|
return stock_em_zt_pool_df_data
|
|
168
185
|
|
|
@@ -172,6 +189,8 @@ def sync_miss_zt_data(stock_em_zt_pool_df_data, str_day):
|
|
|
172
189
|
now_day = now_date.strftime('%Y-%m-%d')
|
|
173
190
|
if now_day == str_day:
|
|
174
191
|
real_time_quotes_all_stocks_df = em_real_time_quotes_api.get_real_time_quotes_now(None, None)
|
|
192
|
+
if data_frame_util.is_empty(real_time_quotes_all_stocks_df):
|
|
193
|
+
return stock_em_zt_pool_df_data
|
|
175
194
|
real_time_quotes_all_stocks_df = real_time_quotes_all_stocks_df.loc[
|
|
176
195
|
(real_time_quotes_all_stocks_df['wei_bi'] == 100) & (real_time_quotes_all_stocks_df['chg'] >= 9)]
|
|
177
196
|
miss_zt_data_df_copy = real_time_quotes_all_stocks_df.loc[~(
|
|
@@ -222,7 +241,7 @@ def sync_miss_zt_data(stock_em_zt_pool_df_data, str_day):
|
|
|
222
241
|
|
|
223
242
|
|
|
224
243
|
if __name__ == '__main__':
|
|
225
|
-
save_zt_info('2025-
|
|
244
|
+
save_zt_info('2025-11-14')
|
|
226
245
|
# from datetime import datetime
|
|
227
246
|
#
|
|
228
247
|
# 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')
|
|
@@ -53,13 +53,15 @@ import mns_scheduler.company_info.clean.company_info_clean_api as company_info_c
|
|
|
53
53
|
import mns_scheduler.zt.zt_pool.ths_zt_pool_sync_api as ths_zt_pool_sync_api
|
|
54
54
|
import mns_scheduler.trade.task.trader_task_service as trader_task_service
|
|
55
55
|
import mns_scheduler.company_info.remark.company_remark_info_sync as company_remark_info_sync
|
|
56
|
-
import mns_scheduler.finance.
|
|
56
|
+
import mns_scheduler.finance.sync_financial_report_service_task as sync_financial_report_service_task
|
|
57
57
|
import mns_scheduler.hk.hk_industry_info_sync_service_api as hk_industry_info_sync_service_api
|
|
58
58
|
import mns_scheduler.hk.hk_company_info_sync_service_api as hk_company_info_sync_service_api
|
|
59
59
|
import mns_scheduler.zt.zt_pool.update_null_zt_reason_api as update_null_zt_reason_api
|
|
60
60
|
import mns_scheduler.trade.tfp.stock_tfp_info_sync as stock_tfp_info_sync
|
|
61
61
|
import mns_scheduler.industry.ths.ths_industry_sync_service as ths_industry_sync_service
|
|
62
62
|
import mns_scheduler.k_line.year_quarter.year_quarter_line_sync as year_quarter_line_sync
|
|
63
|
+
import mns_scheduler.k_line.sync_status.k_line_sync_status_check as k_line_sync_status_check
|
|
64
|
+
import mns_scheduler.company_info.base.sync_company_product_area_industry as sync_company_product_area_industry_api
|
|
63
65
|
|
|
64
66
|
|
|
65
67
|
# 同步交易日期任务完成
|
|
@@ -319,7 +321,7 @@ def sync_position():
|
|
|
319
321
|
# 同步持仓
|
|
320
322
|
if trade_date_common_service_api.is_trade_day(str_day):
|
|
321
323
|
logger.info('同步持仓任务完成')
|
|
322
|
-
sync_position_api.
|
|
324
|
+
sync_position_api.sync_position_qmt()
|
|
323
325
|
|
|
324
326
|
|
|
325
327
|
# 同步开盘啦当日精选指数行情数据
|
|
@@ -352,7 +354,7 @@ def sync_all_interactive_questions():
|
|
|
352
354
|
tag = bool(1 - trade_date_common_service_api.is_trade_day(str_day))
|
|
353
355
|
if tag:
|
|
354
356
|
logger.info('同步互动回答')
|
|
355
|
-
stock_irm_cninfo_service.
|
|
357
|
+
stock_irm_cninfo_service.sync_symbols_interactive_questions([])
|
|
356
358
|
|
|
357
359
|
|
|
358
360
|
# # 重开定时任务同步
|
|
@@ -387,7 +389,7 @@ def self_choose_stock_task():
|
|
|
387
389
|
# 同步财务报表
|
|
388
390
|
def sync_financial_report_task():
|
|
389
391
|
logger.info('同步财务报表任务')
|
|
390
|
-
|
|
392
|
+
sync_financial_report_service_task.sync_financial_report()
|
|
391
393
|
|
|
392
394
|
|
|
393
395
|
# 同步hk公司信息
|
|
@@ -438,6 +440,17 @@ def sync_all_em_stock_info():
|
|
|
438
440
|
sync_em_stock_info_sync.sync_all_em_stock_info()
|
|
439
441
|
|
|
440
442
|
|
|
443
|
+
# check 前复权k线和下一个交易日策略k线数据同步状态
|
|
444
|
+
def check_k_line_sync_count():
|
|
445
|
+
logger.info("check前复权k线和下一个交易日策略k线数据同步状态")
|
|
446
|
+
k_line_sync_status_check.check_k_line_sync_count()
|
|
447
|
+
|
|
448
|
+
|
|
449
|
+
# 同步公司产品区域信息
|
|
450
|
+
def sync_company_product_area_industry():
|
|
451
|
+
sync_company_product_area_industry_api.sync_company_product_area_industry_task(None)
|
|
452
|
+
|
|
453
|
+
|
|
441
454
|
# # 定义BlockingScheduler
|
|
442
455
|
blockingScheduler = BlockingScheduler()
|
|
443
456
|
|
|
@@ -461,10 +474,10 @@ blockingScheduler.add_job(sync_position, 'cron', hour='0,08,09', minute='14')
|
|
|
461
474
|
blockingScheduler.add_job(update_company_base_info, 'cron', hour='08,18', minute='05')
|
|
462
475
|
|
|
463
476
|
# 同步互动回答
|
|
464
|
-
blockingScheduler.add_job(sync_all_interactive_questions, 'cron', hour='
|
|
477
|
+
blockingScheduler.add_job(sync_all_interactive_questions, 'cron', hour='06,17', minute='30')
|
|
465
478
|
|
|
466
479
|
# 同步十大流通股东信息
|
|
467
|
-
blockingScheduler.add_job(sync_stock_gdfx_free_top_10_one_day, 'cron', hour='
|
|
480
|
+
blockingScheduler.add_job(sync_stock_gdfx_free_top_10_one_day, 'cron', hour='06,18', minute='05')
|
|
468
481
|
|
|
469
482
|
# 同步港股公司和行业信息
|
|
470
483
|
blockingScheduler.add_job(sync_hk_company_industry_info, 'cron', hour='08,15', minute='10')
|
|
@@ -552,8 +565,15 @@ blockingScheduler.add_job(sync_all_kpl_plate_info, 'interval', minutes=5, max_in
|
|
|
552
565
|
# 同步新公告信息 感觉没有必要同步 直接连接过去查看
|
|
553
566
|
# blockingScheduler.add_job(sync_company_announce, 'cron', hour='07,18,23', minute='33')
|
|
554
567
|
|
|
568
|
+
# check 前复权k线和下一个交易日策略k线数据同步状态
|
|
569
|
+
blockingScheduler.add_job(check_k_line_sync_count, 'cron', hour='6,23', minute='10')
|
|
570
|
+
|
|
571
|
+
# 同步公司产品区域信息
|
|
572
|
+
blockingScheduler.add_job(sync_company_product_area_industry, 'cron', day_of_week='sat,sun', hour='10,20',
|
|
573
|
+
minute='10')
|
|
574
|
+
|
|
555
575
|
print('定时任务启动成功')
|
|
556
576
|
blockingScheduler.start()
|
|
557
577
|
#
|
|
558
578
|
# if __name__ == '__main__':
|
|
559
|
-
#
|
|
579
|
+
# sync_company_product_area_industry()
|
|
@@ -3,16 +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=
|
|
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
|
|
8
9
|
mns_scheduler/company_info/clean/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
9
|
-
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
|
|
10
11
|
mns_scheduler/company_info/constant/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
11
|
-
mns_scheduler/company_info/constant/company_constant_data.py,sha256=
|
|
12
|
+
mns_scheduler/company_info/constant/company_constant_data.py,sha256=7emiXUeAla8nfyYYauGjsMarfY3ckN4TgYlON477jQE,22566
|
|
12
13
|
mns_scheduler/company_info/de_list_stock/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
13
14
|
mns_scheduler/company_info/de_list_stock/de_list_stock_service.py,sha256=QNtKc1ZI6xHjupcxbOBN7fBhi6oAGtL7X1TQZVzfpnk,1993
|
|
14
15
|
mns_scheduler/company_info/em_stock_info/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
15
|
-
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
|
|
16
17
|
mns_scheduler/company_info/remark/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
17
18
|
mns_scheduler/company_info/remark/company_remark_info_sync.py,sha256=L8wC8LU7-GYZb1TyKLjODJURROOEO4izZBxnWEM7Ahc,2334
|
|
18
19
|
mns_scheduler/concept/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
@@ -45,15 +46,17 @@ mns_scheduler/db/script/sync/sync_hui_ce_test_data.py,sha256=oymZRnt-cMnrrHod796
|
|
|
45
46
|
mns_scheduler/db/script/sync/sync_hui_ce_test_data_01.py,sha256=32F7kmxgube7F-_9-QhAHdjqWAQfRZZ51p7MdKi1u6I,2172
|
|
46
47
|
mns_scheduler/db/script/update/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
47
48
|
mns_scheduler/db/script/update/update_col_field.py,sha256=m7RJbNLTcaeknwHR50i3aebT--Rc6udpbOqyGwt61qg,1274
|
|
48
|
-
mns_scheduler/debt/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
49
|
-
mns_scheduler/debt/kzz_bond_info_sync.py,sha256=FOefhRDqSN1YRqY6drCN3p6PgzVD_isWQ15l9OllCGI,1346
|
|
50
49
|
mns_scheduler/dt/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
51
50
|
mns_scheduler/dt/stock_dt_pool_sync.py,sha256=5ivRUOnFtOapZniwTbujf1lVq3y4btm2Cmd5R6JJAVo,3466
|
|
52
51
|
mns_scheduler/finance/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
53
|
-
mns_scheduler/finance/
|
|
54
|
-
mns_scheduler/finance/
|
|
55
|
-
mns_scheduler/finance/
|
|
56
|
-
mns_scheduler/finance/
|
|
52
|
+
mns_scheduler/finance/sync_financial_report_service_task.py,sha256=ROJ4aOtv3lRqMIhCyy9uV54Of5Q-LhzvvJslu33Jp08,8867
|
|
53
|
+
mns_scheduler/finance/em/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
|
|
54
|
+
mns_scheduler/finance/em/em_financial_asset_liability_sync_service_api.py,sha256=1e5VIdQV4U19CBJP0Ow_fp3WvfUF8sPQQQXG8zv5qjo,19420
|
|
55
|
+
mns_scheduler/finance/em/em_financial_profit_sync_service_api.py,sha256=j5xnzcSthy6qc5dYr52DnxqN2T4zf_rldlRWbLyz90I,14550
|
|
56
|
+
mns_scheduler/finance/em/finance_common_api.py,sha256=rqsVJZEklJjvM9ogl-9GQaWxyh1LE6IKoTkQkN5cBvE,2453
|
|
57
|
+
mns_scheduler/finance/xue_qiu/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
|
|
58
|
+
mns_scheduler/finance/xue_qiu/down_load_xueqiu_report_api.py,sha256=r_RtfM2SBzQcvO1MH8Dt8mOXg2tbZOLz0sNwqne9jFs,2769
|
|
59
|
+
mns_scheduler/finance/xue_qiu/sync_xue_qiu_fiance_data.py,sha256=aRqNPqnyCP_sKl7afdk3Xrfa9IRCbU6MDK3_AlxTDBQ,7218
|
|
57
60
|
mns_scheduler/hk/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
58
61
|
mns_scheduler/hk/hk_company_info_sync_service_api.py,sha256=MGIKodN9oXaY0iwtdsrg4wwHXkMglFvY8eyeTpbas6k,3724
|
|
59
62
|
mns_scheduler/hk/hk_industry_info_sync_service_api.py,sha256=WdCTaBi4GDicWfmiYbI-byBCXZwknkYZHk6y2IloMys,2275
|
|
@@ -62,14 +65,14 @@ mns_scheduler/industry/ths/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlI
|
|
|
62
65
|
mns_scheduler/industry/ths/ths_industry_index_service.py,sha256=MHvzUsDHnmdQn-mJc_D2uBKP0qvVWWagDV568xChPqg,2686
|
|
63
66
|
mns_scheduler/industry/ths/ths_industry_sync_service.py,sha256=r0jLbY3JcnCGgLWYzRrXiqIbeT8PBGnG2dT_INuN824,2762
|
|
64
67
|
mns_scheduler/irm/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
65
|
-
mns_scheduler/irm/stock_irm_cninfo_service.py,sha256=
|
|
68
|
+
mns_scheduler/irm/stock_irm_cninfo_service.py,sha256=ChOl_zWNSCXpj-NlveLaSsfie8hARusU4Ut1V_LAeOc,9759
|
|
66
69
|
mns_scheduler/irm/api/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
67
70
|
mns_scheduler/irm/api/sh_stock_sns_sse_info_api.py,sha256=EE09q9iIPNAEzxhKCM-2tsm1FZID3-fqdfikK1VS6H8,4931
|
|
68
71
|
mns_scheduler/irm/api/sz_stock_sns_sse_info_api.py,sha256=iJ9K8FhatQpCx5PqusIH5x4MAw3F1v3fYC1Ztsp_2Zw,6199
|
|
69
72
|
mns_scheduler/k_line/__init__.py,sha256=ffZXFCLFdIwOsbxnw__u1MbQYh9yz7Bs8UMP6VF0X2M,161
|
|
70
73
|
mns_scheduler/k_line/clean/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
71
74
|
mns_scheduler/k_line/clean/k_line_info_clean_impl.py,sha256=ZTnSpQ2zKnNPWCkHKPJkLdkxVK29szgufxNV6uvXG7s,1344
|
|
72
|
-
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
|
|
73
76
|
mns_scheduler/k_line/clean/daily/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
74
77
|
mns_scheduler/k_line/clean/daily/daily_k_line_clean_common_service.py,sha256=gIoInwd1eCKCmhIOJHo8MuNEwj8ehMxYw83j52pxmxk,20447
|
|
75
78
|
mns_scheduler/k_line/clean/daily/daily_k_line_service.py,sha256=1S-6sih0KptZEWYBN3jgVJHlv5y11QPONYjR-MpOQn8,6906
|
|
@@ -83,6 +86,8 @@ mns_scheduler/k_line/hot_stocks/recent_hot_stocks_clean_service.py,sha256=8woZzG
|
|
|
83
86
|
mns_scheduler/k_line/month_week_daily/__init__.py,sha256=ffZXFCLFdIwOsbxnw__u1MbQYh9yz7Bs8UMP6VF0X2M,161
|
|
84
87
|
mns_scheduler/k_line/month_week_daily/bfq_k_line_sync.py,sha256=ccHC9W3tQsZJI6BEpeH5DJ_Zvb6PZb5hYgF_OlGM-14,2668
|
|
85
88
|
mns_scheduler/k_line/month_week_daily/daily_week_month_line_sync.py,sha256=xhPgLUhb-pGg-nYXvsiJzsPAnIzQuQ46es6oWsDiiqg,5619
|
|
89
|
+
mns_scheduler/k_line/sync_status/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
|
|
90
|
+
mns_scheduler/k_line/sync_status/k_line_sync_status_check.py,sha256=GXKUiRggwk9phisd_QzPgC8gVezEpPbjitUJYxYjAXs,2218
|
|
86
91
|
mns_scheduler/k_line/test/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
87
92
|
mns_scheduler/k_line/test/k_line_info_clean_his_data.py,sha256=eWtzWL1geX5rrwfrlvDCuaTvy1CI9Zgk7CC4zlsncD4,1663
|
|
88
93
|
mns_scheduler/k_line/year_quarter/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
@@ -94,7 +99,7 @@ mns_scheduler/kpl/selection/index/sync_best_choose_his_index.py,sha256=Cle5cU90H
|
|
|
94
99
|
mns_scheduler/kpl/selection/index/sync_best_choose_index.py,sha256=-34drqAMsx792DxR8P1A8DrGCM5yIVGsop3UzDNzsPw,8016
|
|
95
100
|
mns_scheduler/kpl/selection/symbol/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
96
101
|
mns_scheduler/kpl/selection/symbol/sync_best_choose_symbol.py,sha256=Z0p3r-JWpxlEK2u00HIzVqEEg64r5AE72KQ2Bivwv_k,4756
|
|
97
|
-
mns_scheduler/kpl/selection/symbol/sync_kpl_concept_symbol_choose_reason_api.py,sha256=
|
|
102
|
+
mns_scheduler/kpl/selection/symbol/sync_kpl_concept_symbol_choose_reason_api.py,sha256=KHFo3v_xpjHqWTmXw0P1kP14DXJxIcXVj3c3AtIC6W8,5622
|
|
98
103
|
mns_scheduler/kpl/selection/total/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
99
104
|
mns_scheduler/kpl/selection/total/sync_kpl_best_total_sync_api.py,sha256=ljacoCP2gGtiwOT89FywE38vGGwZv1FmHNxS0PSx6-A,10755
|
|
100
105
|
mns_scheduler/lhb/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
@@ -104,7 +109,7 @@ mns_scheduler/open/sync_one_day_open_data_to_db_service.py,sha256=4ghPSJaeSZB974
|
|
|
104
109
|
mns_scheduler/risk/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
105
110
|
mns_scheduler/risk/financial_report_risk_check_api.py,sha256=cOW_zh0bGn432cjj_kLlXW1Yp66Ne17aPwwg77yzOmE,1648
|
|
106
111
|
mns_scheduler/risk/compliance/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
107
|
-
mns_scheduler/risk/compliance/undisclosed_annual_report_api.py,sha256=
|
|
112
|
+
mns_scheduler/risk/compliance/undisclosed_annual_report_api.py,sha256=nlA4Mc6rhuCt_cveaVpKtbSTN1JJtzJcXudUAzJyCkE,3873
|
|
108
113
|
mns_scheduler/risk/financial/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
109
114
|
mns_scheduler/risk/financial/annual_report_audit_check_api.py,sha256=bNiMXDNt88XEsk0W8oUOQ4OdBvJzwRGjN9SNAygYlhI,2580
|
|
110
115
|
mns_scheduler/risk/financial/net_assets_check_api.py,sha256=glhBAyixc4mNfFUCRyT22wsAQC20R67jthyg8uvsOS4,4737
|
|
@@ -117,13 +122,13 @@ mns_scheduler/risk/self/wei_pan_stock_api.py,sha256=ac_hhdwoK8-uI_ag40YEj4iTOkB8
|
|
|
117
122
|
mns_scheduler/risk/test/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
118
123
|
mns_scheduler/risk/test/fix_blask_list.py,sha256=IRDedHWuTi9y8EIZSwdiRxEUZcYAY3TH15GgJRmnQEw,1245
|
|
119
124
|
mns_scheduler/risk/transactions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
120
|
-
mns_scheduler/risk/transactions/transactions_check_api.py,sha256=
|
|
125
|
+
mns_scheduler/risk/transactions/transactions_check_api.py,sha256=8lXid7P8NTVW9aPKS-v6Tv0wiseCnasVQQzD9sR49XI,7379
|
|
121
126
|
mns_scheduler/self_choose/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
122
|
-
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
|
|
123
128
|
mns_scheduler/trade/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
124
129
|
mns_scheduler/trade/auto_ipo_buy_api.py,sha256=jVe5ZiXwzkDy_j_4X4rUamSzJpmzhV16lNKwbeWgpQw,386
|
|
125
130
|
mns_scheduler/trade/auto_sell_service_api.py,sha256=A2RB3WFxVHqbNPaPvhIgO-3uaicFZVmBKUy2TsfMU90,4624
|
|
126
|
-
mns_scheduler/trade/sync_position_api.py,sha256=
|
|
131
|
+
mns_scheduler/trade/sync_position_api.py,sha256=o73_qdh_2uzOed6HFzAipM5hKOLqVhThph2DcAri3Oc,4136
|
|
127
132
|
mns_scheduler/trade/auto_login/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
128
133
|
mns_scheduler/trade/auto_login/trader_auto_service.py,sha256=bsagj26s74Zv5OEyGahhBX_OK4Iuo5ZmuItsON9DDmY,795
|
|
129
134
|
mns_scheduler/trade/balance/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
@@ -150,15 +155,15 @@ mns_scheduler/zt/script/kcx_high_chg_open_his_data_handle.py,sha256=k2nrBjG41LU4
|
|
|
150
155
|
mns_scheduler/zt/script/sync_high_chg_pool_his_data.py,sha256=WX5ZlV0x2kkXiLTep8fcs2ZkWY5BMWS8lQv8xpq4DlY,1685
|
|
151
156
|
mns_scheduler/zt/script/sync_now_higt_chg_zt.py,sha256=7qUtn58ty9Vc6kY33BooCDIOojDGmSf9U5ncAtZt4cc,1853
|
|
152
157
|
mns_scheduler/zt/zt_pool/__init__.py,sha256=Tyvi_iQlv3jz59EdH67Mycnt9CSixcWPQoJwu55bOq0,165
|
|
153
|
-
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=LP2g24LMDHaVolEttNhWtkKn2oSLJPrsmaJISt9CCRA,13108
|
|
154
159
|
mns_scheduler/zt/zt_pool/ths_zt_pool_sync_api.py,sha256=LI4o4_sovmLj1tMROPRQRCj5gaITKLGoYH-nUCuysbU,7501
|
|
155
|
-
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
|
|
156
161
|
mns_scheduler/zz_task/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
157
|
-
mns_scheduler/zz_task/data_sync_task.py,sha256=
|
|
162
|
+
mns_scheduler/zz_task/data_sync_task.py,sha256=GbOJ0DhHVxTAz9W09POLZl3AzYFlTsPP7Q1VikSfQkY,23545
|
|
158
163
|
mns_scheduler/zz_task/compensation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
159
164
|
mns_scheduler/zz_task/compensation/compensate_task.py,sha256=Dyo66NcSnXZ-Cne4_v77BBb27SemAiuGXRLnvQ26X0E,6464
|
|
160
|
-
mns_scheduler/zz_task/compensation/compensate_task_one_day.py,sha256=
|
|
161
|
-
mns_scheduler-1.3.
|
|
162
|
-
mns_scheduler-1.3.
|
|
163
|
-
mns_scheduler-1.3.
|
|
164
|
-
mns_scheduler-1.3.
|
|
165
|
+
mns_scheduler/zz_task/compensation/compensate_task_one_day.py,sha256=jvaYpUS8AyJHgJTNchbco6eXMSzW1o4YNHgUBqrRTDk,5753
|
|
166
|
+
mns_scheduler-1.4.3.0.dist-info/METADATA,sha256=MPMKv5kiMXNq_AFqGA3lCDRd1e6tf0p_WmjFgHyJrXY,64
|
|
167
|
+
mns_scheduler-1.4.3.0.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
|
|
168
|
+
mns_scheduler-1.4.3.0.dist-info/top_level.txt,sha256=PXQDFBGR1pWmsUbH5yiLAh71P5HZODTRED0zJ8CCgOc,14
|
|
169
|
+
mns_scheduler-1.4.3.0.dist-info/RECORD,,
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import sys
|
|
2
|
-
import os
|
|
3
|
-
|
|
4
|
-
file_path = os.path.abspath(__file__)
|
|
5
|
-
end = file_path.index('mns') + 17
|
|
6
|
-
project_path = file_path[0:end]
|
|
7
|
-
sys.path.append(project_path)
|
|
8
|
-
import mns_common.api.em.real_time.east_money_debt_api as east_money_debt_api
|
|
9
|
-
from datetime import datetime
|
|
10
|
-
import mns_common.constant.db_name_constant as db_name_constant
|
|
11
|
-
from mns_common.db.MongodbUtil import MongodbUtil
|
|
12
|
-
|
|
13
|
-
mongodb_util = MongodbUtil('27017')
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
# 同步可转债信息
|
|
17
|
-
def sync_debt_info():
|
|
18
|
-
now_date = datetime.now()
|
|
19
|
-
str_now_day = now_date.strftime('%Y-%m-%d')
|
|
20
|
-
kzz_bond_info_df = east_money_debt_api.get_kzz_bond_info()
|
|
21
|
-
kzz_bond_info_df = kzz_bond_info_df.fillna(0)
|
|
22
|
-
kzz_bond_info_df['apply_date'] = kzz_bond_info_df['apply_date'].astype(str)
|
|
23
|
-
kzz_bond_info_df['winning_date'] = kzz_bond_info_df['winning_date'].astype(str)
|
|
24
|
-
kzz_bond_info_df['list_date'] = kzz_bond_info_df['list_date'].astype(str)
|
|
25
|
-
kzz_bond_info_df['due_date'] = kzz_bond_info_df['due_date'].astype(str)
|
|
26
|
-
kzz_bond_info_df = kzz_bond_info_df.loc[kzz_bond_info_df['due_date'] >= str_now_day]
|
|
27
|
-
mongodb_util.remove_all_data(db_name_constant.KZZ_DEBT_INFO)
|
|
28
|
-
kzz_bond_info_df['_id'] = kzz_bond_info_df['symbol']
|
|
29
|
-
mongodb_util.insert_mongo(kzz_bond_info_df, db_name_constant.KZZ_DEBT_INFO)
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
if __name__ == '__main__':
|
|
33
|
-
sync_debt_info()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|