mns-scheduler 1.1.8.0__py3-none-any.whl → 1.1.8.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.

@@ -421,6 +421,8 @@ def get_recent_year_income(symbol, company_info_type, exist_company_df):
421
421
  return company_info_type
422
422
 
423
423
 
424
+ import mns_scheduler.company_info.constant.company_constant_data as company_constant_data
425
+
424
426
  if __name__ == '__main__':
425
427
  # sync_company_base_info()
426
428
  # fix_company_industry()
@@ -432,5 +434,6 @@ if __name__ == '__main__':
432
434
  # query = {"total_operate_income": 0}
433
435
  # un_report_company_info = mongodb_util.find_query_data(db_name_constant.COMPANY_INFO, query)
434
436
  # symbol_list = list(un_report_company_info['symbol'])
435
- sync_company_base_info(['001309', '002693', '000670'])
437
+ fix_symbol_industry_df = company_constant_data.get_fix_symbol_industry()
438
+ sync_company_base_info(list(fix_symbol_industry_df['symbol']))
436
439
  # group_by_industry()
@@ -12,6 +12,7 @@ import mns_common.utils.data_frame_util as data_frame_util
12
12
  mongodb_util = MongodbUtil('27017')
13
13
 
14
14
 
15
+ # 修改行业分类的股票
15
16
  def get_fix_symbol_industry():
16
17
  return pd.DataFrame([['688480', '赛恩斯', '760103', '环境治理'],
17
18
  ['000032', '深桑达A', '730204', '通信网络设备及器件'],
@@ -35,7 +36,12 @@ def get_fix_symbol_industry():
35
36
  ['301112', '信邦智能', '640704', '其他自动化设备'],
36
37
  ['002693', '双成药业', '270104', '数字芯片设计'],
37
38
  ['000670', '盈方微', '270401', '其他电子'],
38
-
39
+ ['300803', '指南针', '490101', '证券'],
40
+ ['300085', '银之杰', '490101', '证券'],
41
+ ['300380', '安硕信息', '490101', '证券'],
42
+ ['600446', '金证股份', '490101', '证券'],
43
+ ['688318', '财富趋势', '490101', '证券'],
44
+ ['600570', '恒生电子', '490101', '证券'],
39
45
 
40
46
  ],
41
47
  columns=['symbol', 'name', 'new_industry_code', 'new_industry'])
@@ -121,7 +121,7 @@ def self_choose_stock_handle():
121
121
  # 本地自选
122
122
  add_self_choose_local()
123
123
  # 连板股票
124
- add_continue_boards_zt_stocks()
124
+ # add_continue_boards_zt_stocks()
125
125
  # 固定自选
126
126
  add_fixed_optional()
127
127
 
@@ -16,6 +16,9 @@ import mns_common.utils.data_frame_util as data_frame_util
16
16
  import mns_common.component.common_service_fun_api as common_service_fun_api
17
17
  import mns_common.component.trade_date.trade_date_common_service_api as trade_date_common_service_api
18
18
  import mns_common.api.ths.zt.ths_stock_zt_pool_v2_api as ths_stock_zt_pool_v2_api
19
+ import mns_common.component.zt.zt_common_service_api as zt_common_service_api
20
+ import mns_common.api.em.east_money_stock_api as east_money_stock_api
21
+ from datetime import datetime
19
22
 
20
23
  '''
21
24
  东方财富涨停池
@@ -50,6 +53,9 @@ def save_zt_info(str_day):
50
53
  stock_em_zt_pool_df_data = stock_zt_pool_api.stock_em_zt_pool_df(
51
54
  date_handle_util.no_slash_date(str_day))
52
55
 
56
+ # fix 涨停池没有的股票
57
+ stock_em_zt_pool_df_data = sync_miss_zt_data(stock_em_zt_pool_df_data, str_day)
58
+
53
59
  stock_em_zt_pool_df_data = common_service_fun_api.total_mv_classification(stock_em_zt_pool_df_data)
54
60
 
55
61
  stock_em_zt_pool_df_data = common_service_fun_api.classify_symbol(stock_em_zt_pool_df_data)
@@ -57,6 +63,10 @@ def save_zt_info(str_day):
57
63
  stock_em_zt_pool_df_data = common_service_fun_api.symbol_amount_simple(stock_em_zt_pool_df_data)
58
64
 
59
65
  stock_em_zt_pool_df_data = company_common_service_api.amendment_industry(stock_em_zt_pool_df_data)
66
+
67
+ # 上个交易交易日涨停股票
68
+ last_trade_day_zt_df = zt_common_service_api.get_last_trade_day_zt(str_day)
69
+
60
70
  try:
61
71
  # 同花顺问财涨停池
62
72
  ths_zt_pool_df_data = ths_stock_zt_pool_v2_api.get_ths_stock_zt_reason_with_cache(str_day)
@@ -69,6 +79,10 @@ def save_zt_info(str_day):
69
79
  stock_em_zt_pool_df_data = ths_concept_common_service_api.set_last_ths_concept(stock_one.symbol,
70
80
  stock_em_zt_pool_df_data,
71
81
  str_day)
82
+ # 设置连板数目
83
+ stock_em_zt_pool_df_data = set_connected_boards_numbers(stock_em_zt_pool_df_data,
84
+ stock_one.symbol, last_trade_day_zt_df)
85
+
72
86
  ths_zt_pool_one_df = ths_zt_pool_df_data.loc[ths_zt_pool_df_data['symbol'] == stock_one.symbol]
73
87
  if data_frame_util.is_empty(ths_zt_pool_one_df):
74
88
  stock_em_zt_pool_df_data['zt_reason'] = '0'
@@ -121,8 +135,61 @@ def save_zt_info(str_day):
121
135
  return stock_em_zt_pool_df_data
122
136
 
123
137
 
138
+ # 设置连板数目
139
+ def set_connected_boards_numbers(stock_em_zt_pool_df_data, symbol, last_trade_day_zt_df):
140
+ connected_boards_df = last_trade_day_zt_df.loc[
141
+ last_trade_day_zt_df['symbol'].isin(stock_em_zt_pool_df_data['symbol'])]
142
+
143
+ connected_boards_df['connected_boards_numbers'] = connected_boards_df['connected_boards_numbers'] + 1
144
+
145
+ connected_boards_df_one = connected_boards_df.loc[connected_boards_df['symbol'] == symbol]
146
+ if data_frame_util.is_not_empty(connected_boards_df_one):
147
+ connected_boards_df_one.loc[connected_boards_df_one['symbol'] == symbol, 'connected_boards_numbers'] = \
148
+ list(connected_boards_df_one['connected_boards_numbers'])[0]
149
+
150
+ return stock_em_zt_pool_df_data
151
+
152
+
153
+ def sync_miss_zt_data(stock_em_zt_pool_df_data, str_day):
154
+ now_date = datetime.now()
155
+ now_day = now_date.strftime('%Y-%m-%d')
156
+ if now_day == str_day:
157
+ real_time_quotes_all_stocks_df = east_money_stock_api.get_real_time_quotes_all_stocks()
158
+ real_time_quotes_all_stocks_df = real_time_quotes_all_stocks_df.loc[
159
+ (real_time_quotes_all_stocks_df['wei_bi'] == 100) & (real_time_quotes_all_stocks_df['chg'] >= 9)]
160
+ miss_zt_data_df = real_time_quotes_all_stocks_df.loc[~(
161
+ real_time_quotes_all_stocks_df['symbol'].isin(stock_em_zt_pool_df_data['symbol']))]
162
+ if data_frame_util.is_not_empty(miss_zt_data_df):
163
+ miss_zt_data_df['buy_1_num'] = miss_zt_data_df['buy_1_num'].astype(float)
164
+ miss_zt_data_df['now_price'] = miss_zt_data_df['now_price'].astype(float)
165
+ miss_zt_data_df['closure_funds'] = round(miss_zt_data_df['buy_1_num'] * 100 * miss_zt_data_df['now_price'],
166
+ 2)
167
+ miss_zt_data_df = miss_zt_data_df[[
168
+ 'symbol',
169
+ 'name',
170
+ 'chg',
171
+ 'now_price',
172
+ 'amount',
173
+ 'flow_mv',
174
+ 'total_mv',
175
+ 'exchange',
176
+ 'industry',
177
+ 'closure_funds'
178
+
179
+ ]]
180
+ miss_zt_data_df['index'] = 10000
181
+ miss_zt_data_df['first_closure_time'] = '150000'
182
+ miss_zt_data_df['last_closure_time'] = '150000'
183
+ miss_zt_data_df['statistics'] = '1/1'
184
+ miss_zt_data_df['frying_plates_numbers'] = 0
185
+ miss_zt_data_df['connected_boards_numbers'] = 0
186
+
187
+ stock_em_zt_pool_df_data = pd.concat([miss_zt_data_df, stock_em_zt_pool_df_data])
188
+ return stock_em_zt_pool_df_data
189
+
190
+
124
191
  if __name__ == '__main__':
125
- save_zt_info('2024-10-18')
192
+ save_zt_info('2024-10-30')
126
193
  # from datetime import datetime
127
194
  #
128
195
  # if __name__ == '__main__':
@@ -1,4 +1,4 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mns-scheduler
3
- Version: 1.1.8.0
3
+ Version: 1.1.8.3
4
4
 
@@ -5,12 +5,12 @@ mns_scheduler/big_deal/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9
5
5
  mns_scheduler/big_deal/ths_big_deal_sync.py,sha256=aMFj-_pLprh4vGjSSzmr_tlYoPA0L4Lm0SkLRkQwIiw,4564
6
6
  mns_scheduler/company_info/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
7
7
  mns_scheduler/company_info/base/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
8
- mns_scheduler/company_info/base/sync_company_base_info_api.py,sha256=Qbvh__IH9RZhWQm8QCLj-2cevCeTpDxJxd-NwC_Q31s,20111
8
+ mns_scheduler/company_info/base/sync_company_base_info_api.py,sha256=xH4awVhaXBvkGV79Hpxa8AWQonTIUnO1qgfEKBU2wNo,20290
9
9
  mns_scheduler/company_info/base/sync_company_hold_info_api.py,sha256=W3Nj9st45efx8cy_42PRTcOXijWKnkO1-ZFRyyfR3S0,1587
10
10
  mns_scheduler/company_info/clean/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
11
11
  mns_scheduler/company_info/clean/company_info_clean_api.py,sha256=n3kxsqihPjKJvGDkAjMYqB_U2EPemOi1Yjez5yOYJeo,4858
12
12
  mns_scheduler/company_info/constant/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
13
- mns_scheduler/company_info/constant/company_constant_data.py,sha256=sj24Uji9XR85RDhW9hKKHq1cDGp7nEe8o3ldtzIu_EY,16289
13
+ mns_scheduler/company_info/constant/company_constant_data.py,sha256=PTzWoNWz1F0EccAfT70tXmiVP5zwXvDOfzLbnIAawtc,16756
14
14
  mns_scheduler/company_info/de_list_stock/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
15
15
  mns_scheduler/company_info/de_list_stock/de_list_stock_service.py,sha256=GCp6hlvO-SuH1oIpEsYZwEnGUOa6fXb2D7CqAUYXKQA,1993
16
16
  mns_scheduler/company_info/remark/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
@@ -105,7 +105,7 @@ mns_scheduler/risk/test/fix_blask_list.py,sha256=jjLhhIWH1L4CgNp2jQ_HAHbC3wVgeX1
105
105
  mns_scheduler/risk/transactions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
106
106
  mns_scheduler/risk/transactions/transactions_check_api.py,sha256=_VOiUyIPyTGbcrbuxzJnp1KiLdKBJsRS584f-jqHXA0,6682
107
107
  mns_scheduler/self_choose/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
108
- mns_scheduler/self_choose/ths_self_choose_service.py,sha256=kTVV3yo4Ybf78byCAazpWS1T5oFJAM1RpsMMFOpx6DU,5524
108
+ mns_scheduler/self_choose/ths_self_choose_service.py,sha256=X0eiw5oAMQGBcyQVjUeBGBZi0WI-gI6ORRBUDnuUxAk,5526
109
109
  mns_scheduler/trade/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
110
110
  mns_scheduler/trade/auto_ipo_buy_api.py,sha256=jVe5ZiXwzkDy_j_4X4rUamSzJpmzhV16lNKwbeWgpQw,386
111
111
  mns_scheduler/trade/auto_sell_service_api.py,sha256=b-4xmW6W6cd6dMuLPD7ZJu3tUtchMcUG-p7wOMm_RRY,4640
@@ -131,12 +131,12 @@ mns_scheduler/zt/script/kcx_high_chg_open_his_data_handle.py,sha256=aTrYgshcccoH
131
131
  mns_scheduler/zt/script/sync_high_chg_pool_his_data.py,sha256=dtREQdNpoDM4KLTvdXuiEhXmdjpc1dScMDgR3fbEbww,1685
132
132
  mns_scheduler/zt/script/sync_now_higt_chg_zt.py,sha256=bhoIGDWTI3w0YKVfIAVNHWpUrYqJYDMGPt-1i3d_Zmw,1850
133
133
  mns_scheduler/zt/zt_pool/__init__.py,sha256=Tyvi_iQlv3jz59EdH67Mycnt9CSixcWPQoJwu55bOq0,165
134
- mns_scheduler/zt/zt_pool/em_zt_pool_sync_api.py,sha256=Am5N29FStM2NaNPdwhDymFP61Y42YrwONFRcmwfkl2Y,7070
134
+ mns_scheduler/zt/zt_pool/em_zt_pool_sync_api.py,sha256=Dian2Ebzm3qdYcuEfXETvydZdg697ECDVN3ufccY_Kc,10352
135
135
  mns_scheduler/zt/zt_pool/ths_zt_pool_sync_api.py,sha256=Sy39T-yFwLSIIoSZqQzS-6-W1RlaFWvYpksEXKQVFdI,10456
136
136
  mns_scheduler/zt/zt_pool/update_null_zt_reason_api.py,sha256=OuklSKUhZMj1aKcwDLpZilKIqFbHY3hvvIuA_UFnPqA,2135
137
137
  mns_scheduler/zz_task/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
138
138
  mns_scheduler/zz_task/data_sync_task.py,sha256=UjKrV1TEhRH7Khmwh7cJnAu3pIKn7HOa22LsualCmRE,20518
139
- mns_scheduler-1.1.8.0.dist-info/METADATA,sha256=lSmmCUmzDJ1FaOxSo21lsu-LOi_tmCwLuBElO9Y1PeM,64
140
- mns_scheduler-1.1.8.0.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
141
- mns_scheduler-1.1.8.0.dist-info/top_level.txt,sha256=PXQDFBGR1pWmsUbH5yiLAh71P5HZODTRED0zJ8CCgOc,14
142
- mns_scheduler-1.1.8.0.dist-info/RECORD,,
139
+ mns_scheduler-1.1.8.3.dist-info/METADATA,sha256=vLS3oW-lEXGH-BUslUkEor-v4JIm6Ja7LZ4fRZkipUs,64
140
+ mns_scheduler-1.1.8.3.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
141
+ mns_scheduler-1.1.8.3.dist-info/top_level.txt,sha256=PXQDFBGR1pWmsUbH5yiLAh71P5HZODTRED0zJ8CCgOc,14
142
+ mns_scheduler-1.1.8.3.dist-info/RECORD,,