mns-scheduler 1.2.5.5__py3-none-any.whl → 1.2.5.7__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/risk/financial/annual_report_audit_check_api.py +4 -2
- mns_scheduler/risk/financial/net_assets_check_api.py +21 -18
- mns_scheduler/risk/financial/profit_income_check_api.py +6 -0
- mns_scheduler/risk/test/fix_blask_list.py +2 -4
- mns_scheduler/self_choose/ths_self_choose_service.py +10 -4
- {mns_scheduler-1.2.5.5.dist-info → mns_scheduler-1.2.5.7.dist-info}/METADATA +1 -1
- {mns_scheduler-1.2.5.5.dist-info → mns_scheduler-1.2.5.7.dist-info}/RECORD +9 -9
- {mns_scheduler-1.2.5.5.dist-info → mns_scheduler-1.2.5.7.dist-info}/WHEEL +0 -0
- {mns_scheduler-1.2.5.5.dist-info → mns_scheduler-1.2.5.7.dist-info}/top_level.txt +0 -0
|
@@ -9,6 +9,7 @@ import mns_common.component.self_choose.black_list_service_api as black_list_ser
|
|
|
9
9
|
from mns_common.db.MongodbUtil import MongodbUtil
|
|
10
10
|
from datetime import datetime
|
|
11
11
|
from mns_common.constant.black_list_classify_enum import BlackClassify
|
|
12
|
+
import mns_common.constant.db_name_constant as db_name_constant
|
|
12
13
|
|
|
13
14
|
# 年报审计意见check
|
|
14
15
|
mongodb_util = MongodbUtil('27017')
|
|
@@ -25,11 +26,12 @@ def annual_report_audit_check(new_report_df, period_time):
|
|
|
25
26
|
notice_date = list(new_report_one_df['NOTICE_DATE'])[0]
|
|
26
27
|
now_date = datetime.now()
|
|
27
28
|
str_day = now_date.strftime('%Y-%m-%d')
|
|
28
|
-
|
|
29
|
-
|
|
29
|
+
query = {'symbol': symbol, 'level_code': BlackClassify.AUDIT_PROBLEM.up_level_code}
|
|
30
|
+
mongodb_util.remove_data(query, db_name_constant.SELF_BLACK_STOCK)
|
|
30
31
|
# 年报有问题
|
|
31
32
|
if opinion_type != OPINION_TYPE:
|
|
32
33
|
id_key = symbol + "_" + period_time + "_" + BlackClassify.AUDIT_PROBLEM.level_code
|
|
34
|
+
|
|
33
35
|
black_list_service_api.save_black_stock(id_key,
|
|
34
36
|
symbol,
|
|
35
37
|
name,
|
|
@@ -31,14 +31,17 @@ def net_assets_check(report_type, new_report_df, period_time):
|
|
|
31
31
|
name = list(new_report_one_df['SECURITY_NAME_ABBR'])[0]
|
|
32
32
|
now_date = datetime.now()
|
|
33
33
|
str_day = now_date.strftime('%Y-%m-%d')
|
|
34
|
-
str_now_date = now_date.strftime('%Y-%m-%d %H:%M:%S')
|
|
35
34
|
id_key = symbol + "_" + period_time + "_" + BlackClassify.FINANCIAL_PROBLEM_DEBT.level_code
|
|
36
35
|
notice_date = list(new_report_one_df['NOTICE_DATE'])[0]
|
|
37
36
|
query_company = {'_id': symbol, 'industry': {'$in': EXCLUDE_INDUSTRY}}
|
|
37
|
+
query = {'symbol': symbol, 'level_code': BlackClassify.FINANCIAL_PROBLEM_DEBT.up_level_code}
|
|
38
|
+
mongodb_util.remove_data(query, db_name_constant.SELF_BLACK_STOCK)
|
|
39
|
+
|
|
38
40
|
if mongodb_util.exist_data_query(db_name_constant.COMPANY_INFO, query_company):
|
|
39
41
|
return None
|
|
40
42
|
|
|
41
|
-
if liability_ratio >= MAX_LIABILITY_RATIO:
|
|
43
|
+
if liability_ratio >= MAX_LIABILITY_RATIO and net_asset < MIN_NET_ASSET:
|
|
44
|
+
|
|
42
45
|
black_list_service_api.save_black_stock(id_key,
|
|
43
46
|
symbol,
|
|
44
47
|
name,
|
|
@@ -54,19 +57,19 @@ def net_assets_check(report_type, new_report_df, period_time):
|
|
|
54
57
|
BlackClassify.FINANCIAL_PROBLEM_DEBT.up_level_name,
|
|
55
58
|
BlackClassify.FINANCIAL_PROBLEM_DEBT.level_code,
|
|
56
59
|
BlackClassify.FINANCIAL_PROBLEM_DEBT.level_name)
|
|
57
|
-
if net_asset < MIN_NET_ASSET:
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
60
|
+
# if net_asset < MIN_NET_ASSET:
|
|
61
|
+
# black_list_service_api.save_black_stock(id_key,
|
|
62
|
+
# symbol,
|
|
63
|
+
# name,
|
|
64
|
+
# str_day,
|
|
65
|
+
# notice_date,
|
|
66
|
+
# '净资产低:' + "[" + "负债比:" + str(
|
|
67
|
+
# liability_ratio) + "]" + "," + "净资产:"
|
|
68
|
+
# + str(round(net_asset / common_service_fun_api.HUNDRED_MILLION,
|
|
69
|
+
# 0)) + "亿",
|
|
70
|
+
# '净资产低:' + "[" + str(liability_ratio) + "]",
|
|
71
|
+
# '',
|
|
72
|
+
# BlackClassify.FINANCIAL_PROBLEM_DEBT.up_level_code,
|
|
73
|
+
# BlackClassify.FINANCIAL_PROBLEM_DEBT.up_level_name,
|
|
74
|
+
# BlackClassify.FINANCIAL_PROBLEM_DEBT.level_code,
|
|
75
|
+
# BlackClassify.FINANCIAL_PROBLEM_DEBT.level_name)
|
|
@@ -5,7 +5,9 @@ import mns_common.constant.db_name_constant as db_name_constant
|
|
|
5
5
|
import mns_common.component.self_choose.black_list_service_api as black_list_service_api
|
|
6
6
|
import mns_common.component.common_service_fun_api as common_service_fun_api
|
|
7
7
|
from mns_common.constant.black_list_classify_enum import BlackClassify
|
|
8
|
+
from mns_common.db.MongodbUtil import MongodbUtil
|
|
8
9
|
|
|
10
|
+
mongodb_util = MongodbUtil('27017')
|
|
9
11
|
file_path = os.path.abspath(__file__)
|
|
10
12
|
end = file_path.index('mns') + 16
|
|
11
13
|
project_path = file_path[0:end]
|
|
@@ -50,6 +52,10 @@ def profit_income_check(new_report_df, period_time, report_type):
|
|
|
50
52
|
# 最小利润收入
|
|
51
53
|
min_profit = min(total_profit, net_profit, operate_profit,
|
|
52
54
|
continued_profit, parent_profit, deduct_parent_profit)
|
|
55
|
+
|
|
56
|
+
query = {'symbol': symbol, 'level_code': BlackClassify.FINANCIAL_PROBLEM_PROFIT.up_level_code}
|
|
57
|
+
mongodb_util.remove_data(query, db_name_constant.SELF_BLACK_STOCK)
|
|
58
|
+
|
|
53
59
|
if min_profit < 0:
|
|
54
60
|
|
|
55
61
|
classification = common_service_fun_api.classify_symbol_one(symbol)
|
|
@@ -7,10 +7,8 @@ project_path = file_path[0:end]
|
|
|
7
7
|
sys.path.append(project_path)
|
|
8
8
|
|
|
9
9
|
import mns_common.constant.db_name_constant as db_name_constant
|
|
10
|
-
|
|
11
|
-
from mns_common.db.MongodbUtil import MongodbUtil
|
|
12
|
-
|
|
13
10
|
import mns_scheduler.risk.financial_report_risk_check_api as financial_report_risk_check_api
|
|
11
|
+
from mns_common.db.MongodbUtil import MongodbUtil
|
|
14
12
|
|
|
15
13
|
mongodb_util = MongodbUtil('27017')
|
|
16
14
|
|
|
@@ -18,7 +16,7 @@ mongodb_util = MongodbUtil('27017')
|
|
|
18
16
|
def fix_profit_black_list():
|
|
19
17
|
period_time = "2023-12-31 00:00:00"
|
|
20
18
|
period = 4
|
|
21
|
-
report_type_list = [db_name_constant.
|
|
19
|
+
report_type_list = [db_name_constant.EM_STOCK_ASSET_LIABILITY, db_name_constant.EM_STOCK_PROFIT]
|
|
22
20
|
for report_type in report_type_list:
|
|
23
21
|
query = {'REPORT_DATE': period_time}
|
|
24
22
|
em_stock_profit_df_list = mongodb_util.find_query_data(report_type, query)
|
|
@@ -100,11 +100,17 @@ def add_trade_stocks():
|
|
|
100
100
|
str_day = now_date.strftime('%Y-%m-%d')
|
|
101
101
|
last_trade_day = trade_date_common_service_api.get_last_trade_day(str_day)
|
|
102
102
|
query = {"$and": [{"str_day": {"$gte": last_trade_day}}, {"str_day": {"$lte": str_day}}]}
|
|
103
|
-
|
|
104
|
-
|
|
103
|
+
|
|
104
|
+
position_stock_df = mongodb_util.find_query_data(db_name_constant.POSITION_STOCK, query)
|
|
105
|
+
if data_frame_util.is_not_empty(position_stock_df):
|
|
106
|
+
stock_list = set(position_stock_df['symbol'])
|
|
107
|
+
trade_stocks_df = mongodb_util.find_query_data(db_name_constant.BUY_STOCK_NAME, query)
|
|
105
108
|
if data_frame_util.is_not_empty(trade_stocks_df):
|
|
106
|
-
|
|
107
|
-
|
|
109
|
+
stock_list = stock_list.union(set(trade_stocks_df['symbol']))
|
|
110
|
+
ths_cookie = get_ths_cookie()
|
|
111
|
+
if len(stock_list) > 0:
|
|
112
|
+
for symbol in stock_list:
|
|
113
|
+
ths_self_choose_api.add_stock_to_account(symbol, ths_cookie)
|
|
108
114
|
|
|
109
115
|
|
|
110
116
|
# 添加连板到自选
|
|
@@ -99,20 +99,20 @@ mns_scheduler/risk/financial_report_risk_check_api.py,sha256=BPkMZ7aINfOFPswIV11
|
|
|
99
99
|
mns_scheduler/risk/compliance/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
100
100
|
mns_scheduler/risk/compliance/undisclosed_annual_report_api.py,sha256=4kY6mgDsZ-zd6W8E3awURwgP3Y71rNqwDkWTAFw8hZk,3676
|
|
101
101
|
mns_scheduler/risk/financial/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
102
|
-
mns_scheduler/risk/financial/annual_report_audit_check_api.py,sha256=
|
|
103
|
-
mns_scheduler/risk/financial/net_assets_check_api.py,sha256=
|
|
104
|
-
mns_scheduler/risk/financial/profit_income_check_api.py,sha256=
|
|
102
|
+
mns_scheduler/risk/financial/annual_report_audit_check_api.py,sha256=gXVlca0pronMIfN8ThYh3P9HgnwP1eMUtm4AIAw8kJE,2292
|
|
103
|
+
mns_scheduler/risk/financial/net_assets_check_api.py,sha256=LXuEWhK3ne8qRRZuen6a5peUUvdsRWfODU_RG3v-_Rs,4740
|
|
104
|
+
mns_scheduler/risk/financial/profit_income_check_api.py,sha256=S2jgn29WT6Luoy13n0_JkW9JQUJmqLxfjl1TKsfA3zY,4630
|
|
105
105
|
mns_scheduler/risk/financial/stock_equity_mortgage_check_api.py,sha256=SQ7dieSCOf1z42Wi1zDEii3poAT5wfyBrV43dXkAaaw,22
|
|
106
106
|
mns_scheduler/risk/major_violations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
107
107
|
mns_scheduler/risk/major_violations/register_and_investigate_stock_sync_api.py,sha256=_xPQxT6OS7J7_PtA7hbfCmMS7VzpZTWoZUOXzwoesUs,5672
|
|
108
108
|
mns_scheduler/risk/self/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
109
109
|
mns_scheduler/risk/self/wei_pan_stock_api.py,sha256=5ebrjFqK49j_yEMffFBCumMeBzq_rmtsA4--lL5mhZs,1899
|
|
110
110
|
mns_scheduler/risk/test/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
|
|
111
|
-
mns_scheduler/risk/test/fix_blask_list.py,sha256=
|
|
111
|
+
mns_scheduler/risk/test/fix_blask_list.py,sha256=zfUUZl-RrvSCUJPIBdj27cDt3xmz8sxA-OSdVg1z8xI,1245
|
|
112
112
|
mns_scheduler/risk/transactions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
113
113
|
mns_scheduler/risk/transactions/transactions_check_api.py,sha256=4NzdWgLmGPlzE7EgnicYmK115ThFN8O5_APlb2ZF2Do,6890
|
|
114
114
|
mns_scheduler/self_choose/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
|
|
115
|
-
mns_scheduler/self_choose/ths_self_choose_service.py,sha256=
|
|
115
|
+
mns_scheduler/self_choose/ths_self_choose_service.py,sha256=IC2FVHr2-IEG2GVo-uZBiheQlOswK-DqB_rCzDM_U2U,6558
|
|
116
116
|
mns_scheduler/trade/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
117
117
|
mns_scheduler/trade/auto_ipo_buy_api.py,sha256=jVe5ZiXwzkDy_j_4X4rUamSzJpmzhV16lNKwbeWgpQw,386
|
|
118
118
|
mns_scheduler/trade/auto_sell_service_api.py,sha256=b-4xmW6W6cd6dMuLPD7ZJu3tUtchMcUG-p7wOMm_RRY,4640
|
|
@@ -152,7 +152,7 @@ mns_scheduler/zt/zt_pool/ths_zt_pool_sync_api.py,sha256=Sy39T-yFwLSIIoSZqQzS-6-W
|
|
|
152
152
|
mns_scheduler/zt/zt_pool/update_null_zt_reason_api.py,sha256=1uoiR2Uw46kDfjkvNg2US5rd_4OIkYO3872gIJOufUY,2135
|
|
153
153
|
mns_scheduler/zz_task/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
154
154
|
mns_scheduler/zz_task/data_sync_task.py,sha256=LZqcTIx4X9jNE_rTF3RxDzzD2X_xe7lTM7GtG_hV_fQ,22685
|
|
155
|
-
mns_scheduler-1.2.5.
|
|
156
|
-
mns_scheduler-1.2.5.
|
|
157
|
-
mns_scheduler-1.2.5.
|
|
158
|
-
mns_scheduler-1.2.5.
|
|
155
|
+
mns_scheduler-1.2.5.7.dist-info/METADATA,sha256=z2eBzsINxPSsaPEaj_rT34rkZ8IJwJZehNTRQULQU3g,64
|
|
156
|
+
mns_scheduler-1.2.5.7.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
|
157
|
+
mns_scheduler-1.2.5.7.dist-info/top_level.txt,sha256=PXQDFBGR1pWmsUbH5yiLAh71P5HZODTRED0zJ8CCgOc,14
|
|
158
|
+
mns_scheduler-1.2.5.7.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|