mns-scheduler 1.2.5.6__py3-none-any.whl → 1.2.5.8__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.

@@ -85,6 +85,12 @@ def init_day_line_data(k_line_info, stock_qfq_daily):
85
85
  k_line_info.loc[:, 'avg_thirty_last'] = 0
86
86
  k_line_info.loc[:, 'avg_sixty_last'] = 0
87
87
 
88
+ k_line_info.loc[:, 'slop_five_last'] = 0
89
+ k_line_info.loc[:, 'slop_ten_last'] = 0
90
+ k_line_info.loc[:, 'slop_twenty_last'] = 0
91
+ k_line_info.loc[:, 'slop_thirty_last'] = 0
92
+ k_line_info.loc[:, 'slop_sixty_last'] = 0
93
+
88
94
  k_line_info.loc[:, 'std_amount_ten'] = 0
89
95
  k_line_info.loc[:, 'mean_amount_ten'] = 0
90
96
  k_line_info.loc[:, 'std_amount_thirty'] = 0
@@ -219,6 +225,9 @@ def calculate_exchange_and_k_line_avg_param(stock_qfq_daily):
219
225
  100 * (stock_qfq_daily['close'] - stock_qfq_daily['avg_sixty']) / stock_qfq_daily['avg_sixty'],
220
226
  2)
221
227
 
228
+ # 计算均线斜率
229
+ stock_qfq_daily = calculate_slope(stock_qfq_daily, windows=['five', 'ten', 'twenty', 'thirty', 'sixty'])
230
+
222
231
  stock_qfq_daily = stock_qfq_daily[[
223
232
  "symbol",
224
233
  "name",
@@ -255,6 +264,11 @@ def calculate_exchange_and_k_line_avg_param(stock_qfq_daily):
255
264
  "avg_twenty",
256
265
  'avg_thirty',
257
266
  'avg_sixty',
267
+ "slope_five",
268
+ "slope_ten",
269
+ "slope_twenty",
270
+ 'slope_thirty',
271
+ 'slope_sixty',
258
272
  "classification",
259
273
  "_id",
260
274
  "date"
@@ -265,6 +279,32 @@ def calculate_exchange_and_k_line_avg_param(stock_qfq_daily):
265
279
  return stock_qfq_daily
266
280
 
267
281
 
282
+ def fix_avg_slope_name(k_line_info, stock_qfq_daily):
283
+ stock_qfq_daily_one = stock_qfq_daily.iloc[0:1]
284
+ k_line_info['slope_five_last'] = stock_qfq_daily_one['slope_five']
285
+ k_line_info['slope_ten_last'] = stock_qfq_daily_one['slope_ten']
286
+ k_line_info['slope_twenty_last'] = stock_qfq_daily_one['slope_twenty']
287
+ k_line_info['slope_thirty_last'] = stock_qfq_daily_one['slope_thirty']
288
+ k_line_info['slope_sixty_last'] = stock_qfq_daily_one['slope_sixty']
289
+ return k_line_info
290
+
291
+
292
+ # 计算均线
293
+ def calculate_moving_averages(data, windows=['five', 'ten', 'twenty', 'thirty', 'sixty']):
294
+ for window in windows:
295
+ data[f'avg_{window}', window] = data['close'].rolling(window=window).mean()
296
+ return data
297
+
298
+
299
+ # 计算均线斜率
300
+ def calculate_slope(data, windows=['five', 'ten', 'twenty', 'thirty', 'sixty']):
301
+ for window in windows:
302
+ data[f'slope_{window}'] = data[f'avg_{window}'].diff() / data[f'avg_{window}'].shift(1)
303
+ data[f'slope_{window}'] = data[f'slope_{window}'] * 100
304
+ data[f'slope_{window}'] = round(data[f'slope_{window}'], 2)
305
+ return data
306
+
307
+
268
308
  # 设置当天k线形态 下一个交易日判断当前交易日k线形态
269
309
  def set_k_line_patterns(stock_qfq_daily_one):
270
310
  open = list(stock_qfq_daily_one['open'])[0]
@@ -305,7 +345,7 @@ def set_history_list(stock_qfq_daily_one, stock_qfq_daily):
305
345
  'low'
306
346
  ]]
307
347
  # 删除index 转str
308
- stock_qfq_daily_one.loc[:, 'history_data'] = stock_qfq_daily.to_string(index=False)
348
+ # stock_qfq_daily_one.loc[:, 'history_data'] = stock_qfq_daily.to_string(index=False)
309
349
 
310
350
  daily_num = stock_qfq_daily.shape[0]
311
351
  std_amount_ten = 0
@@ -386,7 +426,7 @@ def k_line_field_fix_name(k_line_info, stock_qfq_daily_one):
386
426
  k_line_info['std_amount_sixty'] = stock_qfq_daily_one['std_amount_sixty']
387
427
  k_line_info['mean_amount_sixty'] = stock_qfq_daily_one['mean_amount_sixty']
388
428
  k_line_info['k_line_pattern'] = stock_qfq_daily_one['k_line_pattern']
389
- k_line_info['history_data'] = stock_qfq_daily_one['history_data']
429
+ # k_line_info['history_data'] = stock_qfq_daily_one['history_data']
390
430
 
391
431
  return k_line_info
392
432
 
@@ -71,6 +71,9 @@ def handle_day_line_sub_new(k_line_info, str_day, symbol, deal_days):
71
71
  # 排除最近有三板以上的股票 todo
72
72
  # 计算最近热门大涨的股票
73
73
  recent_hot_stocks_clean_service.calculate_recent_hot_stocks(stock_qfq_daily, symbol, str_day)
74
+ # 修改 avg name
75
+ k_line_info = daily_k_line_clean_common_service.fix_avg_slope_name(k_line_info, stock_qfq_daily)
76
+
74
77
  return k_line_info
75
78
 
76
79
 
@@ -107,7 +110,8 @@ def handle_day_line_normal(k_line_info, str_day, symbol, deal_days):
107
110
  # 排除最近有三板以上的股票 todo
108
111
  # 计算最近热门大涨的股票
109
112
  recent_hot_stocks_clean_service.calculate_recent_hot_stocks(stock_qfq_daily, symbol, str_day)
110
-
113
+ # 修改 avg name
114
+ k_line_info = daily_k_line_clean_common_service.fix_avg_slope_name(k_line_info, stock_qfq_daily)
111
115
  return k_line_info
112
116
 
113
117
  # if __name__ == '__main__':
@@ -26,5 +26,7 @@ def clean_history_data():
26
26
 
27
27
  if __name__ == '__main__':
28
28
  # 001389 001359
29
- k_line_info_clean_task.sync_k_line_info('2025-01-22', ['301099'])
29
+ k_line_info_clean_task.sync_k_line_info('2025-02-14', None)
30
+ k_line_info_clean_task.sync_k_line_info('2025-02-17', None)
31
+
30
32
  # clean_history_data()
@@ -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
- trade_stocks_df = mongodb_util.find_query_data(db_name_constant.POSITION_STOCK, query)
104
- ths_cookie = get_ths_cookie()
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
- for stock_one in trade_stocks_df.itertuples():
107
- ths_self_choose_api.add_stock_to_account(stock_one.symbol, ths_cookie)
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
  # 添加连板到自选
@@ -1,4 +1,4 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mns-scheduler
3
- Version: 1.2.5.6
3
+ Version: 1.2.5.8
4
4
 
@@ -69,8 +69,8 @@ mns_scheduler/k_line/clean/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlI
69
69
  mns_scheduler/k_line/clean/k_line_info_clean_impl.py,sha256=2GgRc9Nb9wXMueoZhl9egYzjQP_NPhBCvj-XYcTlG9w,1238
70
70
  mns_scheduler/k_line/clean/k_line_info_clean_task.py,sha256=ey6xTXAxxXh8_8cPzsWmUtVmG8Sd7jXFbpRpTrFrLDo,7622
71
71
  mns_scheduler/k_line/clean/daily/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
72
- mns_scheduler/k_line/clean/daily/daily_k_line_clean_common_service.py,sha256=lT_KOhph9qLQGBoy7THU7SuPLQLQQlaNzTf2cMKnnNY,18404
73
- mns_scheduler/k_line/clean/daily/daily_k_line_service.py,sha256=BOzE5smjgJyUPdNvV4CUmN2phHT1VCtusosq7uhrGCw,6654
72
+ mns_scheduler/k_line/clean/daily/daily_k_line_clean_common_service.py,sha256=12-anWppIsmcWBRqSuCjm-JMI5K7Jk_JUTLIT09yalI,20031
73
+ mns_scheduler/k_line/clean/daily/daily_k_line_service.py,sha256=JthnjPjo_h_CnuGw1xsXvFc-bqUL5Zp81BLZb3YhU5A,6904
74
74
  mns_scheduler/k_line/clean/week_month/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
75
75
  mns_scheduler/k_line/clean/week_month/normal_week_month_k_line_service.py,sha256=4qInTtReDd77Jzb7ngme8yXHRd6INSbSCq84lhS3ScI,4862
76
76
  mns_scheduler/k_line/clean/week_month/sub_new_week_month_k_line_service.py,sha256=BS5wouEZhz4WfqubDgjO2CcfmYonCFqRl1BOPnVN3r8,5518
@@ -80,7 +80,7 @@ mns_scheduler/k_line/sync/__init__.py,sha256=ffZXFCLFdIwOsbxnw__u1MbQYh9yz7Bs8UM
80
80
  mns_scheduler/k_line/sync/bfq_k_line_sync.py,sha256=i2NNdp4uVa-kiqQvOaY6odd8-DmQtlejeMXeVklKOIs,4067
81
81
  mns_scheduler/k_line/sync/daily_week_month_line_sync.py,sha256=SHAvMkDW-2TKEC4wWkMdiOQWa4Ktc0Umm59OlceK1dg,5795
82
82
  mns_scheduler/k_line/test/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
83
- mns_scheduler/k_line/test/k_line_info_clean_his_data.py,sha256=6_KKdFSRdkA9LnkkCc72Y1ILKdLY-VuKvMlHBetSSU8,1173
83
+ mns_scheduler/k_line/test/k_line_info_clean_his_data.py,sha256=akzfDKilyvfqZ2pwn_gmpp9iVsFH1lhst85EIUax8As,1234
84
84
  mns_scheduler/kpl/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
85
85
  mns_scheduler/kpl/selection/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
86
86
  mns_scheduler/kpl/selection/index/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
@@ -112,7 +112,7 @@ mns_scheduler/risk/test/fix_blask_list.py,sha256=zfUUZl-RrvSCUJPIBdj27cDt3xmz8sx
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=chx5l-b-gsHk61A9qnWJe5UnBnfoGQwj5dCabg4bfGM,6281
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.6.dist-info/METADATA,sha256=Gk1t67NKezkNOFI97_SkzqC7F-R3N_lCHjo6-ELE6D0,64
156
- mns_scheduler-1.2.5.6.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
157
- mns_scheduler-1.2.5.6.dist-info/top_level.txt,sha256=PXQDFBGR1pWmsUbH5yiLAh71P5HZODTRED0zJ8CCgOc,14
158
- mns_scheduler-1.2.5.6.dist-info/RECORD,,
155
+ mns_scheduler-1.2.5.8.dist-info/METADATA,sha256=nRCh0bLPj9Ysch1Ct73XVBFZh1_XUIlfmaKwve2dJFM,64
156
+ mns_scheduler-1.2.5.8.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
157
+ mns_scheduler-1.2.5.8.dist-info/top_level.txt,sha256=PXQDFBGR1pWmsUbH5yiLAh71P5HZODTRED0zJ8CCgOc,14
158
+ mns_scheduler-1.2.5.8.dist-info/RECORD,,