mns-scheduler 1.1.8.4__py3-none-any.whl → 1.4.3.2__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.
- mns_scheduler/__init__.py +1 -3
- mns_scheduler/company_info/announce/company_announce_sync_service.py +65 -0
- mns_scheduler/company_info/base/__init__.py +1 -1
- mns_scheduler/company_info/base/sync_company_base_info_api.py +171 -79
- mns_scheduler/company_info/base/sync_company_hold_info_api.py +3 -6
- mns_scheduler/company_info/base/sync_company_product_area_industry.py +161 -0
- mns_scheduler/company_info/clean/__init__.py +1 -1
- mns_scheduler/company_info/clean/company_info_clean_api.py +29 -9
- mns_scheduler/company_info/constant/__init__.py +1 -1
- mns_scheduler/company_info/constant/company_constant_data.py +285 -184
- mns_scheduler/company_info/de_list_stock/__init__.py +1 -1
- mns_scheduler/company_info/de_list_stock/de_list_stock_service.py +1 -1
- mns_scheduler/company_info/em_stock_info/__init__.py +7 -0
- mns_scheduler/company_info/em_stock_info/sync_em_stock_info_sync.py +80 -0
- mns_scheduler/company_info/remark/__init__.py +1 -1
- mns_scheduler/company_info/remark/company_remark_info_sync.py +3 -3
- mns_scheduler/concept/clean/kpl_concept_clean_api.py +1 -1
- mns_scheduler/concept/clean/ths_concept_clean_api.py +20 -4
- mns_scheduler/concept/ths/common/ths_concept_sync_common_api.py +21 -16
- mns_scheduler/concept/ths/common/ths_concept_update_common_api.py +4 -1
- mns_scheduler/concept/ths/detaill/ths_concept_detail_api.py +7 -7
- mns_scheduler/concept/ths/sync_new_index/sync_ths_concept_new_index_api.py +9 -4
- mns_scheduler/concept/ths/update_concept_info/sync_one_symbol_all_concepts_api.py +3 -3
- mns_scheduler/db/col_move_service.py +3 -3
- mns_scheduler/db/script/__init__.py +1 -1
- mns_scheduler/db/script/col_move_script.py +1 -1
- mns_scheduler/db/script/db_move/__init__.py +7 -0
- mns_scheduler/db/script/db_move/col_move_one_service.py +34 -0
- mns_scheduler/db/script/sync/__init__.py +1 -1
- mns_scheduler/db/script/sync/remote_data_sync_to_local.py +57 -4
- mns_scheduler/db/script/sync/sync_hui_ce_test_data.py +80 -0
- mns_scheduler/db/script/sync/sync_hui_ce_test_data_01.py +69 -0
- mns_scheduler/db/script/update/__init__.py +7 -0
- mns_scheduler/db/script/update/update_col_field.py +36 -0
- mns_scheduler/finance/__init__.py +1 -1
- mns_scheduler/finance/{em_financial_asset_liability_sync_service_api.py → em/em_financial_asset_liability_sync_service_api.py} +2 -2
- mns_scheduler/finance/{em_financial_profit_sync_service_api.py → em/em_financial_profit_sync_service_api.py} +27 -26
- mns_scheduler/finance/{finance_common_api.py → em/finance_common_api.py} +3 -3
- mns_scheduler/finance/{sync_financial_report_service_api.py → sync_financial_report_service_task.py} +80 -27
- 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/hk/__init__.py +1 -1
- mns_scheduler/hk/hk_company_info_sync_service_api.py +4 -4
- mns_scheduler/hk/hk_industry_info_sync_service_api.py +3 -5
- mns_scheduler/industry/__init__.py +7 -0
- mns_scheduler/industry/ths/__init__.py +7 -0
- mns_scheduler/industry/ths/ths_industry_index_service.py +58 -0
- mns_scheduler/industry/ths/ths_industry_sync_service.py +68 -0
- mns_scheduler/irm/__init__.py +1 -1
- mns_scheduler/irm/api/__init__.py +1 -1
- mns_scheduler/irm/api/sh_stock_sns_sse_info_api.py +1 -1
- mns_scheduler/irm/api/sz_stock_sns_sse_info_api.py +1 -1
- mns_scheduler/irm/stock_irm_cninfo_service.py +12 -8
- mns_scheduler/k_line/clean/daily/__init__.py +1 -1
- mns_scheduler/k_line/clean/daily/daily_k_line_clean_common_service.py +52 -6
- mns_scheduler/k_line/clean/daily/daily_k_line_service.py +7 -2
- mns_scheduler/k_line/clean/k_line_info_clean_impl.py +3 -2
- mns_scheduler/k_line/clean/k_line_info_clean_task.py +42 -15
- mns_scheduler/k_line/clean/week_month/__init__.py +1 -1
- mns_scheduler/k_line/clean/week_month/normal_week_month_k_line_service.py +124 -26
- mns_scheduler/k_line/clean/week_month/sub_new_week_month_k_line_service.py +2 -2
- mns_scheduler/k_line/common/__init__.py +7 -0
- mns_scheduler/k_line/common/k_line_common_api.py +188 -0
- mns_scheduler/k_line/hot_stocks/__init__.py +1 -1
- mns_scheduler/k_line/hot_stocks/recent_hot_stocks_clean_service.py +1 -1
- mns_scheduler/k_line/{sync → month_week_daily}/bfq_k_line_sync.py +14 -29
- mns_scheduler/k_line/{sync → month_week_daily}/daily_week_month_line_sync.py +11 -12
- 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/k_line/test/__init__.py +1 -1
- mns_scheduler/k_line/test/k_line_info_clean_his_data.py +14 -3
- mns_scheduler/k_line/year_quarter/__init__.py +7 -0
- mns_scheduler/k_line/year_quarter/year_quarter_line_sync.py +76 -0
- mns_scheduler/kpl/selection/symbol/sync_best_choose_symbol.py +1 -2
- mns_scheduler/kpl/selection/symbol/sync_kpl_concept_symbol_choose_reason_api.py +108 -0
- mns_scheduler/kpl/selection/total/sync_kpl_best_total_sync_api.py +5 -0
- mns_scheduler/lhb/__init__.py +1 -1
- mns_scheduler/lhb/stock_lhb_sync_service.py +1 -1
- mns_scheduler/open/__init__.py +1 -1
- mns_scheduler/open/sync_one_day_open_data_to_db_service.py +2 -3
- mns_scheduler/risk/__init__.py +1 -1
- mns_scheduler/risk/compliance/undisclosed_annual_report_api.py +8 -2
- mns_scheduler/risk/financial/annual_report_audit_check_api.py +13 -3
- mns_scheduler/risk/financial/net_assets_check_api.py +21 -18
- mns_scheduler/risk/financial/profit_income_check_api.py +7 -2
- mns_scheduler/risk/financial_report_risk_check_api.py +1 -1
- mns_scheduler/risk/major_violations/register_and_investigate_stock_sync_api.py +1 -1
- mns_scheduler/risk/self/wei_pan_stock_api.py +1 -1
- mns_scheduler/risk/test/__init__.py +1 -1
- mns_scheduler/risk/test/fix_blask_list.py +4 -6
- mns_scheduler/risk/transactions/transactions_check_api.py +22 -4
- mns_scheduler/self_choose/__init__.py +1 -1
- mns_scheduler/self_choose/ths_self_choose_service.py +60 -32
- mns_scheduler/trade/auto_login/trader_auto_service.py +6 -4
- mns_scheduler/trade/auto_sell_service_api.py +4 -4
- mns_scheduler/trade/balance/__init__.py +7 -0
- mns_scheduler/trade/balance/ths_account_balance_service.py +7 -0
- mns_scheduler/trade/sync_position_api.py +39 -6
- mns_scheduler/trade/task/trader_task_service.py +26 -9
- mns_scheduler/trade/tfp/__init__.py +7 -0
- mns_scheduler/trade/tfp/stock_tfp_info_sync.py +56 -0
- mns_scheduler/zb/stock_zb_pool_sync.py +1 -16
- mns_scheduler/zt/high_chg/sync_high_chg_pool_service.py +2 -2
- mns_scheduler/zt/high_chg/sync_high_chg_real_time_quotes_service.py +1 -1
- mns_scheduler/zt/script/__init__.py +1 -1
- mns_scheduler/zt/script/fix_error_deal_day.py +41 -0
- mns_scheduler/zt/script/kcx_high_chg_open_his_data_handle.py +2 -2
- mns_scheduler/zt/script/sync_high_chg_pool_his_data.py +2 -2
- mns_scheduler/zt/script/sync_now_higt_chg_zt.py +8 -7
- mns_scheduler/zt/zt_pool/em_zt_pool_sync_api.py +256 -55
- mns_scheduler/zt/zt_pool/ths_zt_pool_sync_api.py +33 -90
- mns_scheduler/zt/zt_pool/update_null_zt_reason_api.py +24 -13
- mns_scheduler/zz_task/compensation/__init__.py +0 -0
- mns_scheduler/zz_task/compensation/compensate_task.py +161 -0
- mns_scheduler/zz_task/compensation/compensate_task_one_day.py +142 -0
- mns_scheduler/zz_task/data_sync_task.py +177 -91
- {mns_scheduler-1.1.8.4.dist-info → mns_scheduler-1.4.3.2.dist-info}/METADATA +1 -1
- mns_scheduler-1.4.3.2.dist-info/RECORD +169 -0
- {mns_scheduler-1.1.8.4.dist-info → mns_scheduler-1.4.3.2.dist-info}/WHEEL +1 -1
- mns_scheduler/2014-2015-test/2014_2015_chg_statistics.py +0 -87
- mns_scheduler/big_deal/ths_big_deal_sync.py +0 -98
- mns_scheduler/db/real_time_task_check.py +0 -84
- mns_scheduler/debt/kzz_bond_info_sync.py +0 -33
- mns_scheduler-1.1.8.4.dist-info/RECORD +0 -142
- /mns_scheduler/{big_deal → company_info/announce}/__init__.py +0 -0
- /mns_scheduler/{2014-2015-test → finance/em}/__init__.py +0 -0
- /mns_scheduler/{debt → finance/xue_qiu}/__init__.py +0 -0
- /mns_scheduler/k_line/{sync → month_week_daily}/__init__.py +0 -0
- {mns_scheduler-1.1.8.4.dist-info → mns_scheduler-1.4.3.2.dist-info}/top_level.txt +0 -0
|
@@ -2,7 +2,7 @@ import sys
|
|
|
2
2
|
import os
|
|
3
3
|
|
|
4
4
|
file_path = os.path.abspath(__file__)
|
|
5
|
-
end = file_path.index('mns') +
|
|
5
|
+
end = file_path.index('mns') + 17
|
|
6
6
|
project_path = file_path[0:end]
|
|
7
7
|
sys.path.append(project_path)
|
|
8
8
|
from mns_common.db.MongodbUtil import MongodbUtil
|
|
@@ -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')
|
|
File without changes
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
|
|
2
|
+
import warnings
|
|
3
|
+
# 忽略所有警告
|
|
4
|
+
warnings.filterwarnings("ignore")
|
|
5
|
+
from loguru import logger
|
|
6
|
+
from datetime import datetime
|
|
7
|
+
import mns_scheduler.dt.stock_dt_pool_sync as stock_dt_pool_sync_api
|
|
8
|
+
import mns_scheduler.zb.stock_zb_pool_sync as stock_zb_pool_sync_api
|
|
9
|
+
import mns_common.component.trade_date.trade_date_common_service_api as trade_date_common_service_api
|
|
10
|
+
import mns_scheduler.k_line.month_week_daily.daily_week_month_line_sync as daily_week_month_line_sync_api
|
|
11
|
+
import mns_scheduler.db.col_move_service as col_move_service
|
|
12
|
+
import mns_scheduler.zt.open_data.kcx_high_chg_open_data_sync as kcx_high_chg_open_data_sync
|
|
13
|
+
import mns_scheduler.zt.export.export_kcx_high_chg_open_data_to_excel as export_kcx_high_chg_open_data_to_excel
|
|
14
|
+
import mns_scheduler.zt.connected_boards.zt_five_boards_sync_api as zt_five_boards_sync_api
|
|
15
|
+
import mns_scheduler.zt.zt_pool.em_zt_pool_sync_api as em_zt_pool_sync_api
|
|
16
|
+
import mns_scheduler.k_line.clean.k_line_info_clean_task as k_line_info_clean_service
|
|
17
|
+
|
|
18
|
+
import mns_scheduler.open.sync_one_day_open_data_to_db_service as sync_one_day_open_data_to_db_service
|
|
19
|
+
import mns_scheduler.zt.high_chg.sync_high_chg_pool_service as sync_high_chg_pool_service
|
|
20
|
+
import mns_scheduler.zt.high_chg.sync_high_chg_real_time_quotes_service as sync_high_chg_real_time_quotes_service
|
|
21
|
+
import mns_scheduler.zt.zt_pool.ths_zt_pool_sync_api as ths_zt_pool_sync_api
|
|
22
|
+
import mns_scheduler.trade.tfp.stock_tfp_info_sync as stock_tfp_info_sync
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
# 定时同步每日交易行情数据(前复权)
|
|
26
|
+
def stock_daily_sync_qfq():
|
|
27
|
+
now_date = datetime.now()
|
|
28
|
+
str_now_date = now_date.strftime('%Y-%m-%d')
|
|
29
|
+
logger.info('同步每日行情数据(前复权):' + str_now_date)
|
|
30
|
+
daily_week_month_line_sync_api.sync_all_daily_data('daily',
|
|
31
|
+
'qfq', 'stock_qfq_daily', str_now_date)
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
# 同步当日k c x 高涨幅数据
|
|
35
|
+
def realtime_quotes_now_zt_kc_data_sync():
|
|
36
|
+
now_date = datetime.now()
|
|
37
|
+
str_day = now_date.strftime('%Y-%m-%d')
|
|
38
|
+
if trade_date_common_service_api.is_trade_day(str_day):
|
|
39
|
+
# 同步当日kcx 高涨幅 当天交易数据和开盘数据
|
|
40
|
+
kcx_high_chg_open_data_sync.sync_all_kc_zt_data(str_day, None)
|
|
41
|
+
# 同步当日开盘数据
|
|
42
|
+
sync_one_day_open_data_to_db_service.sync_one_day_open_data(str_day)
|
|
43
|
+
# 涨停数据同步到excel
|
|
44
|
+
export_kcx_high_chg_open_data_to_excel.export_kc_zt_data(str_day)
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
# 同步涨停池
|
|
48
|
+
def sync_stock_zt_pool():
|
|
49
|
+
now_date = datetime.now()
|
|
50
|
+
str_day = now_date.strftime('%Y-%m-%d')
|
|
51
|
+
if trade_date_common_service_api.is_trade_day(str_day):
|
|
52
|
+
logger.info('同步当天涨停池股开始')
|
|
53
|
+
em_stock_zt_pool = em_zt_pool_sync_api.save_zt_info(str_day)
|
|
54
|
+
zt_five_boards_sync_api.update_five_connected_boards_task(em_stock_zt_pool)
|
|
55
|
+
logger.info('同步ths股票涨停池')
|
|
56
|
+
ths_zt_pool_df = ths_zt_pool_sync_api.ths_zt_pool(str_day, None)
|
|
57
|
+
ths_zt_pool_sync_api.save_ths_zt_pool(ths_zt_pool_df, str_day)
|
|
58
|
+
logger.info('同步当天涨停池股票完成')
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
# 保存今天高涨幅数据
|
|
62
|
+
def sync_toady_stock_zt_pool():
|
|
63
|
+
logger.info('同步今天涨幅大于9.5的symbol')
|
|
64
|
+
now_date = datetime.now()
|
|
65
|
+
str_day = now_date.strftime('%Y-%m-%d')
|
|
66
|
+
# 同步高涨幅实时行情
|
|
67
|
+
sync_high_chg_real_time_quotes_service.sync_high_chg_real_time_quotes(str_day)
|
|
68
|
+
# 同步高涨幅列表
|
|
69
|
+
sync_high_chg_pool_service.sync_stock_high_chg_pool_list(str_day, None)
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
# 计算下一个交易日k线数据
|
|
73
|
+
def generate_new_day_k_line_info():
|
|
74
|
+
now_date = datetime.now()
|
|
75
|
+
str_day = now_date.strftime('%Y-%m-%d')
|
|
76
|
+
# 生成下一个交易日日期k线数据 number=2 获取下一个交易日 日期
|
|
77
|
+
if trade_date_common_service_api.is_trade_day(str_day):
|
|
78
|
+
dis_number = 2
|
|
79
|
+
else:
|
|
80
|
+
dis_number = 1
|
|
81
|
+
next_trade_day = trade_date_common_service_api.get_further_trade_date(str_day, dis_number)
|
|
82
|
+
k_line_info_clean_service.sync_k_line_info_task(next_trade_day)
|
|
83
|
+
logger.info('计算当日k线信息完成:{}', str_day)
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
# 同步一天k线 涨停 数据
|
|
87
|
+
def sync_daily_data_info():
|
|
88
|
+
# 同步k线数据
|
|
89
|
+
try:
|
|
90
|
+
stock_daily_sync_qfq()
|
|
91
|
+
except BaseException as e:
|
|
92
|
+
logger.error("同步当日k线数据异常:{}", e)
|
|
93
|
+
|
|
94
|
+
# 同步当日k c x 高涨幅数据
|
|
95
|
+
try:
|
|
96
|
+
realtime_quotes_now_zt_kc_data_sync()
|
|
97
|
+
except BaseException as e:
|
|
98
|
+
logger.error("同步当日kcx高涨幅数据异常:{}", e)
|
|
99
|
+
|
|
100
|
+
# 同步涨停池数据信息
|
|
101
|
+
try:
|
|
102
|
+
sync_stock_zt_pool()
|
|
103
|
+
except BaseException as e:
|
|
104
|
+
logger.error("同步涨停数据信息异常:{}", e)
|
|
105
|
+
|
|
106
|
+
# 同步今日高涨幅数据 依赖涨停股票池的数据
|
|
107
|
+
try:
|
|
108
|
+
sync_toady_stock_zt_pool()
|
|
109
|
+
except BaseException as e:
|
|
110
|
+
logger.error("同步今日高涨幅数据异常:{}", e)
|
|
111
|
+
|
|
112
|
+
# 计算当日k线数据
|
|
113
|
+
try:
|
|
114
|
+
generate_new_day_k_line_info()
|
|
115
|
+
except BaseException as e:
|
|
116
|
+
logger.error("计算当日k线数据异常:{}", e)
|
|
117
|
+
|
|
118
|
+
# 跌停信息
|
|
119
|
+
def sync_stock_dt_pool():
|
|
120
|
+
now_date = datetime.now()
|
|
121
|
+
str_now_day = now_date.strftime('%Y-%m-%d')
|
|
122
|
+
if trade_date_common_service_api.is_trade_day(str_now_day):
|
|
123
|
+
stock_dt_pool_sync_api.sync_stock_dt_pool(str_now_day)
|
|
124
|
+
logger.info("同步跌停信息任务执行成功:{}", str_now_day)
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
# 炸板信息
|
|
128
|
+
def sync_stock_zb_pool():
|
|
129
|
+
now_date = datetime.now()
|
|
130
|
+
str_now_day = now_date.strftime('%Y-%m-%d')
|
|
131
|
+
if trade_date_common_service_api.is_trade_day(str_now_day):
|
|
132
|
+
stock_zb_pool_sync_api.sync_stock_zb_pool(str_now_day)
|
|
133
|
+
logger.info("同步炸板信息任务执行成功:{}", str_now_day)
|
|
134
|
+
# 同步停复牌信息
|
|
135
|
+
sync_stock_tfp()
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
# 同步停复牌信息
|
|
139
|
+
def sync_stock_tfp():
|
|
140
|
+
now_date = datetime.now()
|
|
141
|
+
str_day = now_date.strftime('%Y-%m-%d')
|
|
142
|
+
stock_tfp_info_sync.sync_stock_tfp(str_day)
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
# 当天实时数据备份
|
|
148
|
+
def col_data_move():
|
|
149
|
+
now_date = datetime.now()
|
|
150
|
+
str_day = now_date.strftime('%Y-%m-%d')
|
|
151
|
+
logger.info('当天实时数据备份:{}', str_day)
|
|
152
|
+
if trade_date_common_service_api.is_trade_day(str_day):
|
|
153
|
+
col_move_service.sync_col_move(str_day)
|
|
154
|
+
|
|
155
|
+
if __name__ == '__main__':
|
|
156
|
+
col_data_move()
|
|
157
|
+
sync_daily_data_info()
|
|
158
|
+
sync_stock_zt_pool()
|
|
159
|
+
sync_stock_dt_pool()
|
|
160
|
+
sync_stock_zb_pool()
|
|
161
|
+
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import warnings
|
|
2
|
+
|
|
3
|
+
# 忽略所有警告
|
|
4
|
+
warnings.filterwarnings("ignore")
|
|
5
|
+
from loguru import logger
|
|
6
|
+
import mns_scheduler.dt.stock_dt_pool_sync as stock_dt_pool_sync_api
|
|
7
|
+
import mns_scheduler.zb.stock_zb_pool_sync as stock_zb_pool_sync_api
|
|
8
|
+
import mns_common.component.trade_date.trade_date_common_service_api as trade_date_common_service_api
|
|
9
|
+
import mns_scheduler.k_line.month_week_daily.daily_week_month_line_sync as daily_week_month_line_sync_api
|
|
10
|
+
import mns_scheduler.db.col_move_service as col_move_service
|
|
11
|
+
import mns_scheduler.zt.open_data.kcx_high_chg_open_data_sync as kcx_high_chg_open_data_sync
|
|
12
|
+
import mns_scheduler.zt.export.export_kcx_high_chg_open_data_to_excel as export_kcx_high_chg_open_data_to_excel
|
|
13
|
+
import mns_scheduler.zt.connected_boards.zt_five_boards_sync_api as zt_five_boards_sync_api
|
|
14
|
+
import mns_scheduler.zt.zt_pool.em_zt_pool_sync_api as em_zt_pool_sync_api
|
|
15
|
+
import mns_scheduler.k_line.clean.k_line_info_clean_task as k_line_info_clean_service
|
|
16
|
+
import mns_scheduler.open.sync_one_day_open_data_to_db_service as sync_one_day_open_data_to_db_service
|
|
17
|
+
import mns_scheduler.zt.high_chg.sync_high_chg_pool_service as sync_high_chg_pool_service
|
|
18
|
+
import mns_scheduler.zt.high_chg.sync_high_chg_real_time_quotes_service as sync_high_chg_real_time_quotes_service
|
|
19
|
+
import mns_scheduler.zt.zt_pool.ths_zt_pool_sync_api as ths_zt_pool_sync_api
|
|
20
|
+
import mns_scheduler.trade.tfp.stock_tfp_info_sync as stock_tfp_info_sync
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
# 定时同步每日交易行情数据(前复权)
|
|
24
|
+
def stock_daily_sync_qfq():
|
|
25
|
+
logger.info('同步每日行情数据(前复权):' + str_day)
|
|
26
|
+
daily_week_month_line_sync_api.sync_all_daily_data('daily',
|
|
27
|
+
'qfq', 'stock_qfq_daily', str_day)
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
# 同步当日k c x 高涨幅数据
|
|
31
|
+
def realtime_quotes_now_zt_kc_data_sync():
|
|
32
|
+
if trade_date_common_service_api.is_trade_day(str_day):
|
|
33
|
+
# 同步当日kcx 高涨幅 当天交易数据和开盘数据
|
|
34
|
+
kcx_high_chg_open_data_sync.sync_all_kc_zt_data(str_day, None)
|
|
35
|
+
# 同步当日开盘数据
|
|
36
|
+
sync_one_day_open_data_to_db_service.sync_one_day_open_data(str_day)
|
|
37
|
+
# 涨停数据同步到excel
|
|
38
|
+
export_kcx_high_chg_open_data_to_excel.export_kc_zt_data(str_day)
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
# 同步涨停池
|
|
42
|
+
def sync_stock_zt_pool():
|
|
43
|
+
if trade_date_common_service_api.is_trade_day(str_day):
|
|
44
|
+
logger.info('同步当天涨停池股开始')
|
|
45
|
+
em_stock_zt_pool = em_zt_pool_sync_api.save_zt_info(str_day)
|
|
46
|
+
zt_five_boards_sync_api.update_five_connected_boards_task(em_stock_zt_pool)
|
|
47
|
+
logger.info('同步ths股票涨停池')
|
|
48
|
+
ths_zt_pool_df = ths_zt_pool_sync_api.ths_zt_pool(str_day, None)
|
|
49
|
+
ths_zt_pool_sync_api.save_ths_zt_pool(ths_zt_pool_df, str_day)
|
|
50
|
+
logger.info('同步当天涨停池股票完成')
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
# 保存今天高涨幅数据
|
|
54
|
+
def sync_toady_stock_zt_pool():
|
|
55
|
+
logger.info('同步今天涨幅大于9.5的symbol')
|
|
56
|
+
# 同步高涨幅实时行情
|
|
57
|
+
sync_high_chg_real_time_quotes_service.sync_high_chg_real_time_quotes(str_day)
|
|
58
|
+
# 同步高涨幅列表
|
|
59
|
+
sync_high_chg_pool_service.sync_stock_high_chg_pool_list(str_day, None)
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
# 计算下一个交易日k线数据
|
|
63
|
+
def generate_new_day_k_line_info():
|
|
64
|
+
# 生成下一个交易日日期k线数据 number=2 获取下一个交易日 日期
|
|
65
|
+
if trade_date_common_service_api.is_trade_day(str_day):
|
|
66
|
+
dis_number = 2
|
|
67
|
+
else:
|
|
68
|
+
dis_number = 1
|
|
69
|
+
next_trade_day = trade_date_common_service_api.get_further_trade_date(str_day, dis_number)
|
|
70
|
+
k_line_info_clean_service.sync_k_line_info_task(next_trade_day)
|
|
71
|
+
logger.info('计算当日k线信息完成:{}', str_day)
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
# 同步一天k线 涨停 数据
|
|
75
|
+
def sync_daily_data_info():
|
|
76
|
+
# 同步k线数据
|
|
77
|
+
try:
|
|
78
|
+
stock_daily_sync_qfq()
|
|
79
|
+
except BaseException as e:
|
|
80
|
+
logger.error("同步当日k线数据异常:{}", e)
|
|
81
|
+
|
|
82
|
+
# 同步当日k c x 高涨幅数据
|
|
83
|
+
try:
|
|
84
|
+
realtime_quotes_now_zt_kc_data_sync()
|
|
85
|
+
except BaseException as e:
|
|
86
|
+
logger.error("同步当日kcx高涨幅数据异常:{}", e)
|
|
87
|
+
|
|
88
|
+
# 同步涨停池数据信息
|
|
89
|
+
try:
|
|
90
|
+
sync_stock_zt_pool()
|
|
91
|
+
except BaseException as e:
|
|
92
|
+
logger.error("同步涨停数据信息异常:{}", e)
|
|
93
|
+
|
|
94
|
+
# 同步今日高涨幅数据 依赖涨停股票池的数据
|
|
95
|
+
try:
|
|
96
|
+
sync_toady_stock_zt_pool()
|
|
97
|
+
except BaseException as e:
|
|
98
|
+
logger.error("同步今日高涨幅数据异常:{}", e)
|
|
99
|
+
|
|
100
|
+
# 计算当日k线数据
|
|
101
|
+
try:
|
|
102
|
+
generate_new_day_k_line_info()
|
|
103
|
+
except BaseException as e:
|
|
104
|
+
logger.error("计算当日k线数据异常:{}", e)
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
# 跌停信息
|
|
108
|
+
def sync_stock_dt_pool():
|
|
109
|
+
if trade_date_common_service_api.is_trade_day(str_day):
|
|
110
|
+
stock_dt_pool_sync_api.sync_stock_dt_pool(str_day)
|
|
111
|
+
logger.info("同步跌停信息任务执行成功:{}", str_day)
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
# 炸板信息
|
|
115
|
+
def sync_stock_zb_pool():
|
|
116
|
+
if trade_date_common_service_api.is_trade_day(str_day):
|
|
117
|
+
stock_zb_pool_sync_api.sync_stock_zb_pool(str_day)
|
|
118
|
+
logger.info("同步炸板信息任务执行成功:{}", str_day)
|
|
119
|
+
# 同步停复牌信息
|
|
120
|
+
sync_stock_tfp()
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
# 同步停复牌信息
|
|
124
|
+
def sync_stock_tfp():
|
|
125
|
+
stock_tfp_info_sync.sync_stock_tfp(str_day)
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
# 当天实时数据备份
|
|
129
|
+
def col_data_move():
|
|
130
|
+
logger.info('当天实时数据备份:{}', str_day)
|
|
131
|
+
if trade_date_common_service_api.is_trade_day(str_day):
|
|
132
|
+
col_move_service.sync_col_move(str_day)
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
if __name__ == '__main__':
|
|
136
|
+
# todo 修改日期
|
|
137
|
+
str_day = '2025-11-13'
|
|
138
|
+
# col_data_move()
|
|
139
|
+
sync_daily_data_info()
|
|
140
|
+
sync_stock_zt_pool()
|
|
141
|
+
sync_stock_dt_pool()
|
|
142
|
+
sync_stock_zb_pool()
|