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

Files changed (55) hide show
  1. mns_scheduler/company_info/em_stock_info/sync_em_stock_info_sync.py +5 -4
  2. mns_scheduler/trade/auto_login/trader_auto_service.py +1 -1
  3. mns_scheduler/trade/sync_position_api.py +2 -2
  4. mns_scheduler/zt/zt_pool/em_zt_pool_sync_api.py +9 -7
  5. mns_scheduler/zz_task/data_sync_task.py +2 -43
  6. {mns_scheduler-1.3.1.6.dist-info → mns_scheduler-1.3.1.8.dist-info}/METADATA +1 -1
  7. {mns_scheduler-1.3.1.6.dist-info → mns_scheduler-1.3.1.8.dist-info}/RECORD +9 -55
  8. mns_scheduler/baidu/__init__.py +0 -7
  9. mns_scheduler/baidu/baidu_yun_pan_handle_service.py +0 -122
  10. mns_scheduler/extraIncome/__init__.py +0 -7
  11. mns_scheduler/extraIncome/a_stock/__init__.py +0 -7
  12. mns_scheduler/extraIncome/a_stock/one_minute/__init__.py +0 -7
  13. mns_scheduler/extraIncome/a_stock/one_minute/common/__init__.py +0 -7
  14. mns_scheduler/extraIncome/a_stock/one_minute/common/db_create_index.py +0 -9
  15. mns_scheduler/extraIncome/a_stock/one_minute/common/symbol_handle_util.py +0 -41
  16. mns_scheduler/extraIncome/a_stock/one_minute/etf/__init__.py +0 -7
  17. mns_scheduler/extraIncome/a_stock/one_minute/etf/etf_one_minute_sync_task.py +0 -87
  18. mns_scheduler/extraIncome/a_stock/one_minute/index/__init__.py +0 -7
  19. mns_scheduler/extraIncome/a_stock/one_minute/index/main_index_sync_task.py +0 -74
  20. mns_scheduler/extraIncome/a_stock/one_minute/kzz/__init__.py +0 -7
  21. mns_scheduler/extraIncome/a_stock/one_minute/kzz/kzz_one_minute_sync_task.py +0 -87
  22. mns_scheduler/extraIncome/a_stock/one_minute/one_minute_sync_task.py +0 -34
  23. mns_scheduler/extraIncome/a_stock/one_minute/stock/__init__.py +0 -7
  24. mns_scheduler/extraIncome/a_stock/one_minute/stock/stock_one_minute_sync_task.py +0 -89
  25. mns_scheduler/extraIncome/a_stock/one_minute/upload/__init__.py +0 -7
  26. mns_scheduler/extraIncome/a_stock/one_minute/upload/etf_upload_to_baidu_task.py +0 -95
  27. mns_scheduler/extraIncome/a_stock/one_minute/upload/index_upload_to_baidu_task.py +0 -87
  28. mns_scheduler/extraIncome/a_stock/one_minute/upload/kzz_upload_to_baidu_task.py +0 -95
  29. mns_scheduler/extraIncome/a_stock/one_minute/upload/stock_upload_to_baidu_task.py +0 -85
  30. mns_scheduler/extraIncome/hk/__init__.py +0 -7
  31. mns_scheduler/extraIncome/hk/hk_stock_qfq_daily_k_line.py +0 -102
  32. mns_scheduler/extraIncome/us/__init__.py +0 -7
  33. mns_scheduler/extraIncome/us/daily/__init__.py +0 -7
  34. mns_scheduler/extraIncome/us/daily/us_stock_qfq_daily_k_line.py +0 -103
  35. mns_scheduler/extraIncome/us/one_minute/__init__.py +0 -7
  36. mns_scheduler/extraIncome/us/one_minute/api/__init__.py +0 -0
  37. mns_scheduler/extraIncome/us/one_minute/api/alpha_vantage_api.py +0 -34
  38. mns_scheduler/extraIncome/us/one_minute/api/em_us_one_minute_api.py +0 -139
  39. mns_scheduler/extraIncome/us/one_minute/api/stock_etf_info_api.py +0 -68
  40. mns_scheduler/extraIncome/us/one_minute/api/y_finance_api.py +0 -63
  41. mns_scheduler/extraIncome/us/one_minute/etf/__init__.py +0 -7
  42. mns_scheduler/extraIncome/us/one_minute/stock/__init__.py +0 -7
  43. mns_scheduler/extraIncome/us/one_minute/stock/down_load/__init__.py +0 -7
  44. mns_scheduler/extraIncome/us/one_minute/stock/down_load/etf/__init__.py +0 -11
  45. mns_scheduler/extraIncome/us/one_minute/stock/down_load/etf/down_load_ETF_his_2024.py +0 -152
  46. mns_scheduler/extraIncome/us/one_minute/stock/down_load/etf/handle_down_load_fail_ETF.py +0 -67
  47. mns_scheduler/extraIncome/us/one_minute/stock/down_load/stock/__init__.py +0 -7
  48. mns_scheduler/extraIncome/us/one_minute/stock/down_load/stock/down_load_stock_his_01.py +0 -203
  49. mns_scheduler/extraIncome/us/one_minute/stock/down_load/stock/down_load_stock_his_02.py +0 -202
  50. mns_scheduler/extraIncome/us/one_minute/stock/down_load/stock/down_load_stock_his_2025.py +0 -144
  51. mns_scheduler/extraIncome/us/one_minute/stock/now/__init__.py +0 -7
  52. mns_scheduler/extraIncome/us/one_minute/stock/now/us_etf_one_minute_sync.py +0 -52
  53. mns_scheduler/extraIncome/us/one_minute/stock/now/us_stock_one_minute_sync.py +0 -141
  54. {mns_scheduler-1.3.1.6.dist-info → mns_scheduler-1.3.1.8.dist-info}/WHEEL +0 -0
  55. {mns_scheduler-1.3.1.6.dist-info → mns_scheduler-1.3.1.8.dist-info}/top_level.txt +0 -0
@@ -68,7 +68,8 @@ def sync_all_em_stock_info():
68
68
 
69
69
 
70
70
  if __name__ == '__main__':
71
- em_cookie = cookie_info_service.get_em_cookie()
72
- em_us_stock_info = east_money_stock_us_api.get_us_stock_real_time_quotes(em_cookie, None)
73
- em_us_stock_info['_id'] = em_us_stock_info['symbol']
74
- mongodb_util.save_mongo(em_us_stock_info, db_name_constant.EM_US_STOCK_INFO)
71
+ sync_all_em_stock_info()
72
+ # em_cookie = cookie_info_service.get_em_cookie()
73
+ # em_us_stock_info = east_money_stock_us_api.get_us_stock_real_time_quotes(em_cookie, None)
74
+ # em_us_stock_info['_id'] = em_us_stock_info['symbol']
75
+ # mongodb_util.save_mongo(em_us_stock_info, db_name_constant.EM_US_STOCK_INFO)
@@ -21,7 +21,7 @@ def ths_auto_login():
21
21
 
22
22
 
23
23
  def auto_login():
24
- # qmt_auto_login()
24
+ qmt_auto_login()
25
25
  time.sleep(5)
26
26
  ths_auto_login()
27
27
 
@@ -21,8 +21,8 @@ def sync_position():
21
21
  now_date = datetime.datetime.now()
22
22
  str_day = now_date.strftime('%Y-%m-%d')
23
23
  query_exist = {'str_day': str_day}
24
- if mongodb_util.exist_data_query(db_name_constant.POSITION_STOCK, query_exist):
25
- return None
24
+ # if mongodb_util.exist_data_query(db_name_constant.POSITION_STOCK, query_exist):
25
+ # return None
26
26
  position_list = deal_service_api.get_position('easy_trader')
27
27
  position_df = pd.DataFrame(position_list)
28
28
  position_df = position_df.rename(columns={"明细": "detail",
@@ -64,7 +64,8 @@ def save_zt_info(str_day):
64
64
  stock_em_zt_pool_df_data = common_service_fun_api.symbol_amount_simple(stock_em_zt_pool_df_data.copy())
65
65
 
66
66
  stock_em_zt_pool_df_data = company_common_service_api.amendment_industry(stock_em_zt_pool_df_data.copy())
67
-
67
+ # 主线标记 复盘用
68
+ stock_em_zt_pool_df_data['main_line'] = '无'
68
69
  # 上个交易交易日涨停股票
69
70
  last_trade_day_zt_df = zt_common_service_api.get_last_trade_day_zt(str_day)
70
71
 
@@ -129,8 +130,6 @@ def save_zt_info(str_day):
129
130
 
130
131
  stock_em_zt_pool_df_data['str_day'] = str_day
131
132
  stock_em_zt_pool_df_data['_id'] = stock_em_zt_pool_df_data['symbol'] + "_" + str_day
132
- # 主线标记 复盘用
133
- stock_em_zt_pool_df_data['main_line'] = '无'
134
133
 
135
134
  stock_em_zt_pool_df_data = stock_em_zt_pool_df_data[ZT_FIELD]
136
135
 
@@ -152,16 +151,19 @@ def save_zt_info(str_day):
152
151
 
153
152
  # 设置连板数目
154
153
  def set_connected_boards_numbers(stock_em_zt_pool_df_data, symbol, last_trade_day_zt_df):
155
- connected_boards_df = last_trade_day_zt_df.loc[
154
+ connected_boards_df_copy = last_trade_day_zt_df.loc[
156
155
  last_trade_day_zt_df['symbol'].isin(stock_em_zt_pool_df_data['symbol'])]
157
-
156
+ connected_boards_df = connected_boards_df_copy.copy()
158
157
  connected_boards_df['connected_boards_numbers'] = connected_boards_df['connected_boards_numbers'] + 1
159
158
 
160
159
  connected_boards_df_one = connected_boards_df.loc[connected_boards_df['symbol'] == symbol]
161
160
  if data_frame_util.is_not_empty(connected_boards_df_one):
162
- connected_boards_df_one.loc[connected_boards_df_one['symbol'] == symbol, 'connected_boards_numbers'] = \
161
+ stock_em_zt_pool_df_data.loc[stock_em_zt_pool_df_data['symbol'] == symbol, 'connected_boards_numbers'] = \
163
162
  list(connected_boards_df_one['connected_boards_numbers'])[0]
164
163
 
164
+ stock_em_zt_pool_df_data.loc[stock_em_zt_pool_df_data['symbol'] == symbol, 'main_line'] = \
165
+ list(connected_boards_df_one['main_line'])[0]
166
+
165
167
  return stock_em_zt_pool_df_data
166
168
 
167
169
 
@@ -220,7 +222,7 @@ def sync_miss_zt_data(stock_em_zt_pool_df_data, str_day):
220
222
 
221
223
 
222
224
  if __name__ == '__main__':
223
- save_zt_info('2025-05-08')
225
+ save_zt_info('2025-05-14')
224
226
  # from datetime import datetime
225
227
  #
226
228
  # if __name__ == '__main__':
@@ -62,13 +62,6 @@ import mns_scheduler.trade.tfp.stock_tfp_info_sync as stock_tfp_info_sync
62
62
  import mns_scheduler.industry.ths.ths_industry_sync_service as ths_industry_sync_service
63
63
  import mns_scheduler.k_line.year_quarter.year_quarter_line_sync as year_quarter_line_sync
64
64
  import mns_common.component.task.real_time_data_sync_check as real_time_data_sync_check
65
- import mns_scheduler.extraIncome.a_stock.one_minute.one_minute_sync_task as one_minute_sync_task
66
- import mns_scheduler.extraIncome.hk.hk_stock_qfq_daily_k_line as hk_stock_qfq_daily_k_line
67
- import mns_scheduler.extraIncome.us.daily.us_stock_qfq_daily_k_line as us_stock_qfq_daily_k_line
68
- import mns_scheduler.extraIncome.a_stock.one_minute.upload.stock_upload_to_baidu_task as stock_upload_to_baidu_task
69
- import mns_scheduler.extraIncome.a_stock.one_minute.upload.etf_upload_to_baidu_task as etf_upload_to_baidu_task
70
- import mns_scheduler.extraIncome.a_stock.one_minute.upload.kzz_upload_to_baidu_task as kzz_upload_to_baidu_task
71
- import mns_scheduler.extraIncome.a_stock.one_minute.upload.index_upload_to_baidu_task as index_upload_to_baidu_task
72
65
 
73
66
 
74
67
  # 同步交易日期任务完成
@@ -432,12 +425,6 @@ def sync_ths_industry_info():
432
425
  logger.info("同步同花顺行业信息完成")
433
426
 
434
427
 
435
- # 同步1分钟交易数据
436
- def sync_one_minute_data():
437
- logger.info("同步1分钟交易数据")
438
- one_minute_sync_task.sync_one_minute_data()
439
-
440
-
441
428
  # 同步年线数据
442
429
  def sync_year_k_line():
443
430
  logger.info("同步年线数据")
@@ -449,37 +436,12 @@ def sync_all_em_stock_info():
449
436
  sync_em_stock_info_sync.sync_all_em_stock_info()
450
437
 
451
438
 
452
- # 同步外快收入数据
453
- def sync_extra_income_data():
454
- # 上传A股一分钟数据到百度网盘
455
- stock_upload_to_baidu_task.upload_stock_to_baidu()
456
- # 上传ETF一分钟数据到百度网盘
457
- etf_upload_to_baidu_task.upload_etf_to_baidu()
458
- # 上传可转债一分钟数据到百度网盘
459
- kzz_upload_to_baidu_task.upload_kzz_to_baidu()
460
- # 上传主要指数一分钟数据到百度网盘
461
- index_upload_to_baidu_task.upload_index_to_baidu()
462
-
463
- # hk前复权k线数据
464
- hk_stock_qfq_daily_k_line.hk_stock_daily_qfq_sync()
465
- # us前复权k线数据
466
- us_stock_qfq_daily_k_line.us_stock_daily_qfq_sync()
467
-
468
-
469
439
  # # 定义BlockingScheduler
470
440
  blockingScheduler = BlockingScheduler()
471
441
 
472
442
  # 同步东方财富a,etf,kzz,us,hk信息
473
443
  blockingScheduler.add_job(sync_all_em_stock_info, 'cron', hour='07', minute='31')
474
444
  blockingScheduler.add_job(sync_all_em_stock_info, 'cron', hour='15', minute='20')
475
- # 同步外快收入数据
476
- blockingScheduler.add_job(
477
- sync_extra_income_data,
478
- 'cron',
479
- day_of_week='sat,sun', # 周六和周日
480
- hour='07,18', # 16点和21点
481
- minute='37' # 37分
482
- )
483
445
 
484
446
  # 开盘前同步当天交易需要的k线数据
485
447
  blockingScheduler.add_job(sync_today_trade_k_line_info, 'cron', hour='07', minute='50')
@@ -541,12 +503,12 @@ blockingScheduler.add_job(update_one_symbol_all_concepts, 'cron', hour='12', min
541
503
  blockingScheduler.add_job(col_data_move, 'cron', hour='15', minute='06')
542
504
 
543
505
  # 更新当天涨停股票池
544
- blockingScheduler.add_job(sync_stock_zt_pool, 'cron', hour='15,19', minute='25')
506
+ blockingScheduler.add_job(sync_stock_zt_pool, 'cron', hour='15,19', minute='10')
545
507
 
546
508
  # todo 需要前后顺序执行
547
509
  # todo 当日k线信息
548
510
  # 同步一天k线 涨停 数据
549
- blockingScheduler.add_job(sync_daily_data_info, 'cron', hour='15,20', minute='26')
511
+ blockingScheduler.add_job(sync_daily_data_info, 'cron', hour='16,20', minute='11')
550
512
 
551
513
  # (前复权--月k线)
552
514
  blockingScheduler.add_job(stock_sync_qfq_monthly, 'cron', hour='15,18', minute='35')
@@ -569,9 +531,6 @@ blockingScheduler.add_job(sync_financial_report_task, 'cron', hour='17', minute=
569
531
  # 同步同花顺行业信息
570
532
  blockingScheduler.add_job(sync_ths_industry_info, 'cron', hour='17,22', minute='38')
571
533
 
572
- # 同步一分钟交易数据
573
- blockingScheduler.add_job(sync_one_minute_data, 'cron', hour='17,22', minute='55')
574
-
575
534
  # 更新开盘啦指数历史指数
576
535
  blockingScheduler.add_job(sync_kpl_best_his_quotes, 'cron', hour='18,22', minute='25')
577
536
 
@@ -1,4 +1,4 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mns-scheduler
3
- Version: 1.3.1.6
3
+ Version: 1.3.1.8
4
4
 
@@ -1,6 +1,4 @@
1
1
  mns_scheduler/__init__.py,sha256=_nhtk1b00OsMAiqRATNrb3HD44RmgjSG5jqS-QLNMrQ,130
2
- mns_scheduler/baidu/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
3
- mns_scheduler/baidu/baidu_yun_pan_handle_service.py,sha256=aUW85TV4taC4VHELskMLIRXYiDJHiy1wBJKTNz3mxuk,3320
4
2
  mns_scheduler/big_deal/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
5
3
  mns_scheduler/big_deal/ths_big_deal_sync.py,sha256=c3VmLEbEBB3uoQTFZ2HyOtijAiyVRP6wVgNgBS9EuVk,4744
6
4
  mns_scheduler/company_info/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
@@ -16,7 +14,7 @@ mns_scheduler/company_info/constant/company_constant_data.py,sha256=0qhRXLASsQlY
16
14
  mns_scheduler/company_info/de_list_stock/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
17
15
  mns_scheduler/company_info/de_list_stock/de_list_stock_service.py,sha256=QNtKc1ZI6xHjupcxbOBN7fBhi6oAGtL7X1TQZVzfpnk,1993
18
16
  mns_scheduler/company_info/em_stock_info/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
19
- mns_scheduler/company_info/em_stock_info/sync_em_stock_info_sync.py,sha256=i6wyS-hNeP6l37dn9gTQu0FFwMx-59pk5fj-VSuNSn0,3439
17
+ mns_scheduler/company_info/em_stock_info/sync_em_stock_info_sync.py,sha256=hf4Qw618J7SnMJ0qMl6yEcub37oyvCj9oY3u-0nqNWY,3477
20
18
  mns_scheduler/company_info/remark/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
21
19
  mns_scheduler/company_info/remark/company_remark_info_sync.py,sha256=L8wC8LU7-GYZb1TyKLjODJURROOEO4izZBxnWEM7Ahc,2334
22
20
  mns_scheduler/concept/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
@@ -53,50 +51,6 @@ mns_scheduler/debt/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUc
53
51
  mns_scheduler/debt/kzz_bond_info_sync.py,sha256=FOefhRDqSN1YRqY6drCN3p6PgzVD_isWQ15l9OllCGI,1346
54
52
  mns_scheduler/dt/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
55
53
  mns_scheduler/dt/stock_dt_pool_sync.py,sha256=5ivRUOnFtOapZniwTbujf1lVq3y4btm2Cmd5R6JJAVo,3466
56
- mns_scheduler/extraIncome/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
57
- mns_scheduler/extraIncome/a_stock/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
58
- mns_scheduler/extraIncome/a_stock/one_minute/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
59
- mns_scheduler/extraIncome/a_stock/one_minute/one_minute_sync_task.py,sha256=X4zC2VsTvxnOArGLwCsBs9a-XwtxtMQ4nqL6binxHp4,1589
60
- mns_scheduler/extraIncome/a_stock/one_minute/common/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
61
- mns_scheduler/extraIncome/a_stock/one_minute/common/db_create_index.py,sha256=WhCAaLNrrc4nuGpa_GW6qrWyml6I-Fk4E2jJRSbUUZw,323
62
- mns_scheduler/extraIncome/a_stock/one_minute/common/symbol_handle_util.py,sha256=cq1LVCx-an2CuRbLl3CBpgOltUx3AyMrQ4Qf1vd9VIQ,1275
63
- mns_scheduler/extraIncome/a_stock/one_minute/etf/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
64
- mns_scheduler/extraIncome/a_stock/one_minute/etf/etf_one_minute_sync_task.py,sha256=NAgnTNcUuDDnw6cUJzICCfS2hxvQiOcRggrEutYElSc,3707
65
- mns_scheduler/extraIncome/a_stock/one_minute/index/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
66
- mns_scheduler/extraIncome/a_stock/one_minute/index/main_index_sync_task.py,sha256=kbhzbRHKGO97m4hmWVKTMKMl_DOk3m0P0xVM_yBHSL0,2665
67
- mns_scheduler/extraIncome/a_stock/one_minute/kzz/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
68
- mns_scheduler/extraIncome/a_stock/one_minute/kzz/kzz_one_minute_sync_task.py,sha256=Qo7ITX-kGj_TEQve7A6Zjs8WDSyCguuGpk2dN0gCxiM,3707
69
- mns_scheduler/extraIncome/a_stock/one_minute/stock/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
70
- mns_scheduler/extraIncome/a_stock/one_minute/stock/stock_one_minute_sync_task.py,sha256=O-iDs9IZnimdC00hZOc7T35pWmgzvDCx4lh8nooFS1k,4592
71
- mns_scheduler/extraIncome/a_stock/one_minute/upload/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
72
- mns_scheduler/extraIncome/a_stock/one_minute/upload/etf_upload_to_baidu_task.py,sha256=Vy8IbF4KnWd7kxSnBvtWIlxl-VsbYb6FqZ6rzGh3I1Y,3659
73
- mns_scheduler/extraIncome/a_stock/one_minute/upload/index_upload_to_baidu_task.py,sha256=9uVWKlsy2bXR0Vz5IjtnpN8N81kOzK9BDVWPGgjHb0A,2640
74
- mns_scheduler/extraIncome/a_stock/one_minute/upload/kzz_upload_to_baidu_task.py,sha256=tNy3LB6TmC4JdQ9GHlZidmqTWH-WC83zil0NBvVpJ4U,3672
75
- mns_scheduler/extraIncome/a_stock/one_minute/upload/stock_upload_to_baidu_task.py,sha256=7ihM6-n3uWjGxlMsL0WNyMTbWW85bdtz9MLHKO8LtoI,3801
76
- mns_scheduler/extraIncome/hk/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
77
- mns_scheduler/extraIncome/hk/hk_stock_qfq_daily_k_line.py,sha256=R20XnJKaHaManU28_mo7fwDwmLwnF1GKfo_ccjU5Ydw,4236
78
- mns_scheduler/extraIncome/us/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
79
- mns_scheduler/extraIncome/us/daily/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
80
- mns_scheduler/extraIncome/us/daily/us_stock_qfq_daily_k_line.py,sha256=QToKweEXKZMGOxfC4ua2n-ZKmQ-vssdX8iilLOZspKA,4234
81
- mns_scheduler/extraIncome/us/one_minute/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
82
- mns_scheduler/extraIncome/us/one_minute/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
83
- mns_scheduler/extraIncome/us/one_minute/api/alpha_vantage_api.py,sha256=tMywgIs47_mJbEES7lhl3WTYoQbZzpJh4EW7_yiWhmk,899
84
- mns_scheduler/extraIncome/us/one_minute/api/em_us_one_minute_api.py,sha256=0sW473oQgohr17SSCCSvWZ84TLUVJep8JcSv-z0E0YQ,5198
85
- mns_scheduler/extraIncome/us/one_minute/api/stock_etf_info_api.py,sha256=jBw-EUU4YKYyMx04RiiJXRXM5ATwkuVJjsu7K8KTsZI,2538
86
- mns_scheduler/extraIncome/us/one_minute/api/y_finance_api.py,sha256=Y1QklHaxUgf5Q_79t-QIvvUcj18koYMVh-AFUTRa4_g,2139
87
- mns_scheduler/extraIncome/us/one_minute/etf/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
88
- mns_scheduler/extraIncome/us/one_minute/stock/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
89
- mns_scheduler/extraIncome/us/one_minute/stock/down_load/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
90
- mns_scheduler/extraIncome/us/one_minute/stock/down_load/etf/__init__.py,sha256=sb7uvmLWbASPFK0DTXcid92WM4ApnTnjTM9_60_sTdA,255
91
- mns_scheduler/extraIncome/us/one_minute/stock/down_load/etf/down_load_ETF_his_2024.py,sha256=DkzyISWT0jTiTfvkXHvXSB0rqx9iTSFcg7RjVD51uBo,5816
92
- mns_scheduler/extraIncome/us/one_minute/stock/down_load/etf/handle_down_load_fail_ETF.py,sha256=yv5BYVQ4P046mX_U1592vkIVKYOgEb_8HYeVdpr65rQ,2530
93
- mns_scheduler/extraIncome/us/one_minute/stock/down_load/stock/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
94
- mns_scheduler/extraIncome/us/one_minute/stock/down_load/stock/down_load_stock_his_01.py,sha256=s5CM1yAyuLxjpXUvTmJoCOOEx0Qgu3ashEVGgh-bMS0,6918
95
- mns_scheduler/extraIncome/us/one_minute/stock/down_load/stock/down_load_stock_his_02.py,sha256=oW2GvJVSFl2CWhfcXy_iKIUM_J3EGzmnWrzu_R409tk,6855
96
- mns_scheduler/extraIncome/us/one_minute/stock/down_load/stock/down_load_stock_his_2025.py,sha256=1HyYBAWatjXsWwPDxuC36ONO6RQNUJeLt8E4c-8aaWA,5310
97
- mns_scheduler/extraIncome/us/one_minute/stock/now/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
98
- mns_scheduler/extraIncome/us/one_minute/stock/now/us_etf_one_minute_sync.py,sha256=HHrICmSiDMmDBjF_7rcai4u383c0O1zc12gGjMHwqAg,2045
99
- mns_scheduler/extraIncome/us/one_minute/stock/now/us_stock_one_minute_sync.py,sha256=jvD4QeNRrUyR3gnfAZxZuiJscqEdKkxebSD_li2-l_0,5658
100
54
  mns_scheduler/finance/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
101
55
  mns_scheduler/finance/em_financial_asset_liability_sync_service_api.py,sha256=xcThdnFD5hGRkUsYpIgCi3GR_54_otQnurz-9pzHo9Y,19417
102
56
  mns_scheduler/finance/em_financial_profit_sync_service_api.py,sha256=KWUfpDs_OuUPToEeoUScQuvYFQvszh5nQu3DVDONfHc,14514
@@ -168,9 +122,9 @@ mns_scheduler/self_choose/ths_self_choose_service.py,sha256=38pXivl0CPXkCJyu8_5_
168
122
  mns_scheduler/trade/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
169
123
  mns_scheduler/trade/auto_ipo_buy_api.py,sha256=jVe5ZiXwzkDy_j_4X4rUamSzJpmzhV16lNKwbeWgpQw,386
170
124
  mns_scheduler/trade/auto_sell_service_api.py,sha256=A2RB3WFxVHqbNPaPvhIgO-3uaicFZVmBKUy2TsfMU90,4624
171
- mns_scheduler/trade/sync_position_api.py,sha256=eGJAL1WoP_WwDloKQqeUXZUqtQv8G6VlODe8EDhmgMY,2748
125
+ mns_scheduler/trade/sync_position_api.py,sha256=ooIsuxPUBWIia-8W_Zx_JEbYULODAFi0tchPKqQCfnE,2752
172
126
  mns_scheduler/trade/auto_login/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
173
- mns_scheduler/trade/auto_login/trader_auto_service.py,sha256=_rJbiD93CaHdjWikhARkvWtPmsow5php2M0DKxbGWzI,688
127
+ mns_scheduler/trade/auto_login/trader_auto_service.py,sha256=1cvKwbfAKmjG312aHLvMXVFs59y8Sg6WnDEWqS_nyMs,686
174
128
  mns_scheduler/trade/balance/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
175
129
  mns_scheduler/trade/balance/ths_account_balance_service.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
176
130
  mns_scheduler/trade/task/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
@@ -199,12 +153,12 @@ mns_scheduler/zt/script/kcx_high_chg_open_his_data_handle.py,sha256=1pm16xy_DHgd
199
153
  mns_scheduler/zt/script/sync_high_chg_pool_his_data.py,sha256=xzfjlwNqsiDQqkTTmaLlFRG0WwkOSYDI-1mw38Z_hNc,1685
200
154
  mns_scheduler/zt/script/sync_now_higt_chg_zt.py,sha256=cArTHjZmnGJFEO6kAnva8rVOg9mV3vHIuwS-zg3BobM,1844
201
155
  mns_scheduler/zt/zt_pool/__init__.py,sha256=Tyvi_iQlv3jz59EdH67Mycnt9CSixcWPQoJwu55bOq0,165
202
- mns_scheduler/zt/zt_pool/em_zt_pool_sync_api.py,sha256=tA-f0OTtQo-dcSwq2gOooYe7TFrfPcz6vVH16SWFCd0,11930
156
+ mns_scheduler/zt/zt_pool/em_zt_pool_sync_api.py,sha256=LOEUyTA5g7N6FWxUpHWimWTeXiiMAnUdsYqhG4HpuOY,12154
203
157
  mns_scheduler/zt/zt_pool/ths_zt_pool_sync_api.py,sha256=u0IvwPuI2hnjTOrwwe8EhBAMv8NbQTENpRbb-_5lDlM,9803
204
158
  mns_scheduler/zt/zt_pool/update_null_zt_reason_api.py,sha256=caW-MuF0RFLavJZafeLDYQ29-GxwGsmr5YVrN4lost8,2135
205
159
  mns_scheduler/zz_task/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
206
- mns_scheduler/zz_task/data_sync_task.py,sha256=97XQqGXS6xce8tq7I804RpYKk90MGsU2GYHsqgvLr_s,25015
207
- mns_scheduler-1.3.1.6.dist-info/METADATA,sha256=4Q9r7eo0UTBiWEVijcR__qSujh7qLhV9i_Bp6_iZNBg,64
208
- mns_scheduler-1.3.1.6.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
209
- mns_scheduler-1.3.1.6.dist-info/top_level.txt,sha256=PXQDFBGR1pWmsUbH5yiLAh71P5HZODTRED0zJ8CCgOc,14
210
- mns_scheduler-1.3.1.6.dist-info/RECORD,,
160
+ mns_scheduler/zz_task/data_sync_task.py,sha256=NU39f18zafhPARFxl6Z18l20Obi89sOaOdoPJ_dZhFc,23126
161
+ mns_scheduler-1.3.1.8.dist-info/METADATA,sha256=Y_3Xf86D9YiCjh9nvRbeQfPaQKRzNalnnbG_NPsJBWQ,64
162
+ mns_scheduler-1.3.1.8.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
163
+ mns_scheduler-1.3.1.8.dist-info/top_level.txt,sha256=PXQDFBGR1pWmsUbH5yiLAh71P5HZODTRED0zJ8CCgOc,14
164
+ mns_scheduler-1.3.1.8.dist-info/RECORD,,
@@ -1,7 +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)
@@ -1,122 +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 sys
9
- import os
10
- import json
11
- import pandas as pd
12
-
13
- file_path = os.path.abspath(__file__)
14
- end = file_path.index('mns') + 17
15
- project_path = file_path[0:end]
16
- sys.path.append(project_path)
17
- from bypy import ByPy
18
- from loguru import logger
19
- import subprocess
20
- import re
21
-
22
-
23
- def upload_to_baidu(file_name, folder_name, data_df):
24
- upload_path_temp = fr'D:\upload_temp\{file_name}.csv'
25
- bp = ByPy()
26
-
27
- data_df.to_csv(upload_path_temp, index=False, encoding='gbk')
28
-
29
- # 上传临时文件到百度云
30
- remote_path = f'/{folder_name}/{file_name}.csv'
31
- result = bp.upload(upload_path_temp, remote_path)
32
- if result == 0:
33
- logger.info("上传成功:{}", file_name)
34
- else:
35
- logger.error("上传失败:{}", file_name)
36
- del_local_file(upload_path_temp)
37
- return result
38
-
39
-
40
- def del_local_file(local_file_path):
41
- try:
42
- os.remove(local_file_path)
43
- except Exception as e:
44
- print(f"删除文件时出错: {e}")
45
-
46
-
47
- def mkdir_baidu_new_folder(remote_path):
48
- bp = ByPy()
49
- try:
50
- # 调用 mkdir 方法创建文件夹
51
- result = bp.mkdir(remote_path)
52
-
53
- if result == 0:
54
- logger.info("成功创建文件夹:{}", remote_path)
55
- else:
56
- logger.error("创建文件夹失败:{}", result)
57
-
58
- except Exception as e:
59
- logger.error("创建文件夹失败:{}", e)
60
-
61
-
62
- def del_baidu_old_folder(remote_path):
63
- bp = ByPy()
64
- try:
65
- # 调用 mkdir 方法创建文件夹
66
- result = bp.delete(remote_path)
67
-
68
- if result == 0:
69
- logger.info("成功删除文件夹:{}", remote_path)
70
- else:
71
- logger.error("删除文件夹失败:{}", result)
72
-
73
- except Exception as e:
74
- logger.error("删除文件夹失败:{}", e)
75
-
76
-
77
- def get_file_folder(path):
78
- result = subprocess.run(
79
- ['bypy', 'list', path],
80
- capture_output=True,
81
- text=True,
82
- check=True,
83
- encoding='utf-8'
84
- )
85
-
86
- # 假设 result 是 subprocess.run 的返回结果
87
- stdout = result.stdout
88
-
89
- # 正则表达式匹配文件行
90
- pattern = re.compile(
91
- r'^[FD]\s+(\S+)\s+(\d+)\s+(\d{4}-\d{2}-\d{2},\s\d{2}:\d{2}:\d{2})\s+([a-zA-Z0-9]{32})$',
92
- re.IGNORECASE
93
- )
94
-
95
- data = []
96
- for line in stdout.split('\n'):
97
- line = line.strip()
98
- if not line:
99
- continue
100
- match = pattern.match(line)
101
- if match:
102
- filename, size, mod_time, hash_val = match.groups()
103
- # 处理时间格式:替换逗号为空格
104
- mod_time = mod_time.replace(', ', ' ')
105
- data.append({
106
- 'name': filename,
107
- 'size': int(size),
108
- 'update_time': mod_time,
109
- 'hash_value': hash_val
110
- })
111
-
112
- # 创建 DataFrame 并转换时间类型
113
- df = pd.DataFrame(data)
114
- if not df.empty:
115
- df['update_time'] = pd.to_datetime(df['update_time'], format='%Y-%m-%d %H:%M:%S')
116
-
117
- return df
118
-
119
-
120
- if __name__ == '__main__':
121
- folder_name1 = '/A股/1分钟/2025/4'
122
- get_file_folder(folder_name1)
@@ -1,7 +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)
@@ -1,7 +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)
@@ -1,7 +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)
@@ -1,7 +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)
@@ -1,9 +0,0 @@
1
- def create_index(db_util, col_name):
2
- index_create = [('symbol', 1), ('time', 1)]
3
- db_util.create_index(col_name, index_create)
4
- index_create_01 = [('time', 1)]
5
- db_util.create_index(col_name, index_create_01)
6
- index_create_02 = [('symbol', 1)]
7
- db_util.create_index(col_name, index_create_02)
8
-
9
-
@@ -1,41 +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.constant.extra_income_db_name as extra_income_db_name
9
- import pandas as pd
10
- from mns_common.db.v2.MongodbUtilV2 import MongodbUtilV2
11
-
12
- mongodbUtilV2_27019 = MongodbUtilV2('27019', extra_income_db_name.EXTRA_INCOME)
13
-
14
-
15
- def symbol_add_prefix(symbol):
16
- symbol_simple = symbol[0:6]
17
- suffix = symbol[7:9]
18
- if suffix in ['SH']:
19
- return '1.' + symbol_simple
20
- elif suffix in ['SZ']:
21
- return '0.' + symbol_simple
22
- elif suffix in ['BJ']:
23
- return '0.' + symbol_simple
24
-
25
-
26
- # col_name 保存数据的结婚
27
- def save_fail_data(now_day, symbol_prefix, col_name):
28
- fail_dict = {'begin_date': now_day,
29
- 'end_date': now_day,
30
- 'symbol': symbol_prefix,
31
- 'col_name': col_name,
32
- 'type': 'kzz',
33
- 'sync_day': now_day,
34
- 'valid': True,
35
- }
36
- fail_df = pd.DataFrame(fail_dict, index=[1])
37
- mongodbUtilV2_27019.insert_mongo(fail_df, extra_income_db_name.ONE_MINUTE_SYNC_FAIL)
38
-
39
-
40
- if __name__ == '__main__':
41
- symbol_add_prefix('000001.SZ')
@@ -1,7 +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)
@@ -1,87 +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
-
9
- import mns_common.component.em.em_stock_info_api as em_stock_info_api
10
- from loguru import logger
11
- import time
12
- import mns_common.utils.data_frame_util as data_frame_util
13
- from mns_common.db.MongodbUtil import MongodbUtil
14
- import mns_scheduler.extraIncome.a_stock.one_minute.common.symbol_handle_util as symbol_handle_util
15
- from mns_common.db.v2.MongodbUtilV2 import MongodbUtilV2
16
- import mns_scheduler.extraIncome.a_stock.one_minute.common.db_create_index as db_create_index
17
- import mns_common.constant.extra_income_db_name as extra_income_db_name
18
- import mns_common.api.k_line.stock_minute_data_api as stock_minute_data_api
19
- from datetime import datetime
20
-
21
- mongodb_util_27017 = MongodbUtil('27017')
22
- mongodbUtilV2_27019 = MongodbUtilV2('27019', extra_income_db_name.EXTRA_INCOME)
23
-
24
-
25
- def sync_etf_one_minute(data_tag):
26
- etf_real_time_quotes = em_stock_info_api.get_etf_info()
27
- etf_real_time_quotes = classify_symbol(etf_real_time_quotes)
28
- etf_real_time_quotes['symbol'] = etf_real_time_quotes.apply(
29
- lambda row: row['symbol'] + '.SZ' if row['classification'] in ['S', 'C']
30
- else row['symbol'] + '.BJ' if row['classification'] in ['X']
31
- else row['symbol'] + '.SH',
32
- axis=1
33
- )
34
- # 假设数字格式为 YYYYMMDD
35
- # debt_real_time_quotes['list_date'] = pd.to_datetime(debt_real_time_quotes['list_date'],
36
- # format='%Y%m%d').dt.strftime('%Y-%m-%d')
37
-
38
- etf_real_time_quotes = etf_real_time_quotes.loc[etf_real_time_quotes['amount'] != 0]
39
-
40
- now_date = datetime.now()
41
- now_day = now_date.strftime('%Y-%m-%d')
42
- year = now_date.strftime('%Y')
43
- col_name = extra_income_db_name.ONE_MINUTE_K_LINE_BFQ_ETF + '_' + str(year)
44
- # 创建索引
45
- db_create_index.create_index(mongodbUtilV2_27019, col_name)
46
-
47
- for stock_one in etf_real_time_quotes.itertuples():
48
-
49
- symbol = stock_one.symbol
50
- symbol_prefix = symbol_handle_util.symbol_add_prefix(symbol)
51
- try:
52
- one_min_df = stock_minute_data_api.get_minute_data(symbol_prefix, now_day, now_day, '1', '')
53
- one_min_df['symbol'] = symbol
54
- one_min_df['_id'] = one_min_df['symbol'] + '_' + one_min_df['time']
55
- if data_frame_util.is_empty(one_min_df) or one_min_df.shape[0] < 241:
56
- symbol_handle_util.save_fail_data(now_day, symbol_prefix, col_name)
57
- logger.error("当前ETF分钟数据同步异常:{}", symbol)
58
- continue
59
- else:
60
- del one_min_df['ava_price']
61
- if data_tag:
62
- mongodbUtilV2_27019.insert_mongo(one_min_df, col_name)
63
- else:
64
- mongodbUtilV2_27019.save_mongo(one_min_df, col_name)
65
- except BaseException as e:
66
- time.sleep(2)
67
- symbol_handle_util.save_fail_data(now_day, symbol_prefix, col_name)
68
- logger.error("同步ETF分钟数据出现异常:{},{},{}", e, symbol, now_day)
69
- logger.info("同步完ETF分钟数据:{},{}", stock_one.symbol, stock_one.name)
70
-
71
-
72
- def classify_symbol(etf_real_time_quotes):
73
- etf_real_time_quotes['classification'] = etf_real_time_quotes['market'].apply(
74
- lambda market: classify_symbol_one(market))
75
- return etf_real_time_quotes
76
-
77
-
78
- # 单个股票分类
79
- def classify_symbol_one(market):
80
- if market == 0:
81
- return 'S'
82
- else:
83
- return 'H'
84
-
85
-
86
- if __name__ == '__main__':
87
- sync_etf_one_minute("2025-03-17", "2025-03-17")
@@ -1,7 +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)