mns-scheduler 1.1.1.0__tar.gz → 1.1.1.1__tar.gz

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 (136) hide show
  1. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/PKG-INFO +1 -1
  2. mns-scheduler-1.1.1.1/mns_scheduler/k_line/sync/bfq_k_line_sync.py +92 -0
  3. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/zt/script/kcx_high_chg_open_his_data_handle.py +1 -9
  4. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/zt/script/sync_high_chg_pool_his_data.py +1 -1
  5. mns-scheduler-1.1.1.0/mns_scheduler/zt/zt_pool/zt_pool_sync_api.py → mns-scheduler-1.1.1.1/mns_scheduler/zt/zt_pool/em_zt_pool_sync_api.py +4 -0
  6. mns-scheduler-1.1.1.1/mns_scheduler/zt/zt_pool/ths_zt_pool_sync_api.py +231 -0
  7. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/zz_task/data_sync_task.py +6 -3
  8. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler.egg-info/PKG-INFO +1 -1
  9. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler.egg-info/SOURCES.txt +3 -1
  10. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/setup.py +1 -1
  11. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/README.md +0 -0
  12. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/__init__.py +0 -0
  13. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/backup/__init__.py +0 -0
  14. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/backup/em/__init__.py +0 -0
  15. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/backup/em/em_new_concept_his_sync.py +0 -0
  16. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/backup/em/em_new_concept_sync_common_api.py +0 -0
  17. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/backup/em/em_new_concept_sync_web.py +0 -0
  18. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/backup/ths/__init__.py +0 -0
  19. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/backup/ths/sync_ths_concept_by_ak_api.py +0 -0
  20. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/backup/ths/sync_ths_new_concept_by_web_api.py +0 -0
  21. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/big_deal/__init__.py +0 -0
  22. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/big_deal/ths_big_deal_sync.py +0 -0
  23. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/company_info/__init__.py +0 -0
  24. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/company_info/base/__init__.py +0 -0
  25. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/company_info/base/sync_company_base_info_api.py +0 -0
  26. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/company_info/clean/__init__.py +0 -0
  27. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/company_info/clean/company_info_clean_api.py +0 -0
  28. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/company_info/constant/__init__.py +0 -0
  29. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/company_info/constant/company_constant_data.py +0 -0
  30. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/company_info/de_list_stock/__init__.py +0 -0
  31. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/company_info/de_list_stock/de_list_stock_service.py +0 -0
  32. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/concept/__init__.py +0 -0
  33. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/concept/clean/__init__.py +0 -0
  34. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/concept/clean/kpl_concept_clean_api.py +0 -0
  35. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/concept/clean/ths_concept_clean_api.py +0 -0
  36. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/concept/common/__init__.py +0 -0
  37. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/concept/common/detaill/__init__.py +0 -0
  38. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/concept/common/detaill/ths_concept_detail_api.py +0 -0
  39. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/concept/ths/__init__.py +0 -0
  40. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/concept/ths/common/__init__.py +0 -0
  41. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/concept/ths/common/ths_concept_sync_common_api.py +0 -0
  42. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/concept/ths/common/ths_concept_update_common_api.py +0 -0
  43. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/concept/ths/sync_new_index/__init__.py +0 -0
  44. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/concept/ths/sync_new_index/sync_ths_concept_new_index_api.py +0 -0
  45. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/concept/ths/update_concept_info/__init__.py +0 -0
  46. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/concept/ths/update_concept_info/sync_one_concept_all_symbols_api.py +0 -0
  47. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/concept/ths/update_concept_info/sync_one_symbol_all_concepts_api.py +0 -0
  48. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/db/__init__.py +0 -0
  49. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/db/col_move_service.py +0 -0
  50. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/db/db_status.py +0 -0
  51. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/dt/__init__.py +0 -0
  52. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/dt/stock_dt_pool_sync.py +0 -0
  53. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/finance/__init__.py +0 -0
  54. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/finance/em_financial_asset_liability_sync_service_api.py +0 -0
  55. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/finance/em_financial_profit_sync_service_api.py +0 -0
  56. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/finance/finance_common_api.py +0 -0
  57. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/finance/sync_financial_report_service_api.py +0 -0
  58. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/hk/__init__.py +0 -0
  59. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/hk/hk_company_info_sync_service_api.py +0 -0
  60. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/irm/__init__.py +0 -0
  61. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/irm/api/__init__.py +0 -0
  62. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/irm/api/sh_stock_sns_sse_info_api.py +0 -0
  63. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/irm/api/sz_stock_sns_sse_info_api.py +0 -0
  64. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/irm/stock_irm_cninfo_service.py +0 -0
  65. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/k_line/__init__.py +0 -0
  66. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/k_line/clean/__init__.py +0 -0
  67. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/k_line/clean/daily/__init__.py +0 -0
  68. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/k_line/clean/daily/daily_k_line_clean_common_service.py +0 -0
  69. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/k_line/clean/daily/daily_k_line_service.py +0 -0
  70. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/k_line/clean/k_line_info_clean_impl.py +0 -0
  71. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/k_line/clean/k_line_info_clean_task.py +0 -0
  72. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/k_line/clean/week_month/__init__.py +0 -0
  73. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/k_line/clean/week_month/normal_week_month_k_line_service.py +0 -0
  74. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/k_line/clean/week_month/sub_new_week_month_k_line_service.py +0 -0
  75. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/k_line/hot_stocks/__init__.py +0 -0
  76. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/k_line/hot_stocks/recent_hot_stocks_clean_service.py +0 -0
  77. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/k_line/sync/__init__.py +0 -0
  78. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/k_line/sync/daily_week_month_line_sync.py +0 -0
  79. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/k_line/test/__init__.py +0 -0
  80. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/k_line/test/k_line_info_clean_his_data.py +0 -0
  81. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/kpl/__init__.py +0 -0
  82. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/kpl/selection/__init__.py +0 -0
  83. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/kpl/selection/index/__init__.py +0 -0
  84. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/kpl/selection/index/sync_best_choose_his_index.py +0 -0
  85. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/kpl/selection/index/sync_best_choose_index.py +0 -0
  86. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/kpl/selection/symbol/__init__.py +0 -0
  87. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/kpl/selection/symbol/sync_best_choose_symbol.py +0 -0
  88. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/kpl/selection/total/__init__.py +0 -0
  89. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/kpl/selection/total/sync_kpl_best_total_sync_api.py +0 -0
  90. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/lhb/__init__.py +0 -0
  91. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/lhb/stock_lhb_sync_service.py +0 -0
  92. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/open/__init__.py +0 -0
  93. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/open/sync_one_day_open_data_to_db_service.py +0 -0
  94. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/real_time/__init__.py +0 -0
  95. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/real_time/realtime_quotes_now_create_db_index.py +0 -0
  96. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/real_time/realtime_quotes_now_sync.py +0 -0
  97. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/risk/__init__.py +0 -0
  98. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/risk/compliance/__init__.py +0 -0
  99. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/risk/compliance/undisclosed_annual_report_api.py +0 -0
  100. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/risk/financial/__init__.py +0 -0
  101. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/risk/financial/annual_report_audit_check_api.py +0 -0
  102. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/risk/financial/net_assets_check_api.py +0 -0
  103. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/risk/financial/profit_income_check_api.py +0 -0
  104. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/risk/financial/stock_equity_mortgage_check_api.py +0 -0
  105. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/risk/financial_report_risk_check_api.py +0 -0
  106. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/risk/major_violations/__init__.py +0 -0
  107. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/risk/major_violations/register_and_investigate_stock_sync_api.py +0 -0
  108. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/risk/self/__init__.py +0 -0
  109. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/risk/self/wei_pan_stock_api.py +0 -0
  110. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/risk/test/__init__.py +0 -0
  111. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/risk/test/fix_blask_list.py +0 -0
  112. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/risk/transactions/__init__.py +0 -0
  113. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/risk/transactions/transactions_check_api.py +0 -0
  114. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/trade/__init__.py +0 -0
  115. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/trade/auto_ipo_buy_api.py +0 -0
  116. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/trade/auto_sell_service_api.py +0 -0
  117. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/trade/sync_position_api.py +0 -0
  118. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/zb/__init__.py +0 -0
  119. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/zb/stock_zb_pool_sync.py +0 -0
  120. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/zt/__init__.py +0 -0
  121. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/zt/connected_boards/__init__.py +0 -0
  122. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/zt/connected_boards/zt_five_boards_sync_api.py +0 -0
  123. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/zt/export/__init__.py +0 -0
  124. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/zt/export/export_kcx_high_chg_open_data_to_excel.py +0 -0
  125. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/zt/high_chg/__init__.py +0 -0
  126. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/zt/high_chg/sync_high_chg_pool_service.py +0 -0
  127. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/zt/high_chg/sync_high_chg_real_time_quotes_service.py +0 -0
  128. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/zt/open_data/__init__.py +0 -0
  129. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/zt/open_data/kcx_high_chg_open_data_sync.py +0 -0
  130. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/zt/script/__init__.py +0 -0
  131. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/zt/zt_pool/__init__.py +0 -0
  132. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/zz_task/__init__.py +0 -0
  133. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler/zz_task/sync_realtime_quotes_task.py +0 -0
  134. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler.egg-info/dependency_links.txt +0 -0
  135. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/mns_scheduler.egg-info/top_level.txt +0 -0
  136. {mns-scheduler-1.1.1.0 → mns-scheduler-1.1.1.1}/setup.cfg +0 -0
@@ -1,3 +1,3 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mns-scheduler
3
- Version: 1.1.1.0
3
+ Version: 1.1.1.1
@@ -0,0 +1,92 @@
1
+ import os
2
+ import sys
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
+ from loguru import logger
10
+ import mns_common.api.em.east_money_stock_api as east_money_stock_api
11
+ from mns_common.db.MongodbUtil import MongodbUtil
12
+ import mns_common.utils.date_handle_util as date_handle_util
13
+ import mns_common.component.common_service_fun_api as common_service_fun_api
14
+ import mns_common.api.akshare.k_line_api as k_line_api
15
+ import mns_common.component.company.company_common_service_new_api as company_common_service_new_api
16
+
17
+ mongodb_util = MongodbUtil('27017')
18
+
19
+
20
+ def sync_bfq_k_line_data(period='daily',
21
+ hq='hfq',
22
+ hq_col='stock_hfq_daily',
23
+ end_date='22220101',
24
+ symbol=None):
25
+ stock_hfq_df = k_line_api.stock_zh_a_hist(symbol=symbol, period=period,
26
+ start_date=date_handle_util.no_slash_date('1990-12-19'),
27
+ end_date=date_handle_util.no_slash_date(end_date),
28
+ adjust=hq)
29
+
30
+ stock_hfq_df.rename(columns={"日期": "date", "开盘": "open",
31
+ "收盘": "close", "最高": "high",
32
+ "最低": "low", "成交量": "volume",
33
+ "成交额": "amount", "振幅": "pct_chg",
34
+ "涨跌幅": "chg", "涨跌额": "change",
35
+ "换手率": "exchange"}, inplace=True)
36
+
37
+ stock_hfq_df['symbol'] = symbol
38
+ stock_hfq_df['_id'] = stock_hfq_df['symbol'] + '-' + stock_hfq_df['date']
39
+ stock_hfq_df['last_price'] = round(((stock_hfq_df['close']) / (1 + stock_hfq_df['chg'] / 100)), 2)
40
+ stock_hfq_df['max_chg'] = round(
41
+ ((stock_hfq_df['high'] - stock_hfq_df['last_price']) / stock_hfq_df['last_price']) * 100, 2)
42
+ stock_hfq_df['amount_level'] = round((stock_hfq_df['amount'] / common_service_fun_api.HUNDRED_MILLION), 2)
43
+ stock_hfq_df['flow_mv'] = round(stock_hfq_df['amount'] * 100 / stock_hfq_df['exchange'], 2)
44
+ stock_hfq_df['flow_mv_sp'] = round(stock_hfq_df['flow_mv'] / common_service_fun_api.HUNDRED_MILLION, 2)
45
+
46
+ classification = common_service_fun_api.classify_symbol_one(symbol)
47
+ stock_hfq_df['classification'] = classification
48
+ stock_hfq_df = stock_hfq_df.sort_values(by=['date'], ascending=False)
49
+ insert_data(stock_hfq_df, hq_col, symbol)
50
+ logger.info(period + 'k线同步-' + hq + '-' + symbol)
51
+ return stock_hfq_df
52
+
53
+
54
+ def sync_all_bfq_k_line(period='daily',
55
+ hq='hfq',
56
+ hq_col='stock_hfq_daily',
57
+ end_date='22220101',
58
+ symbol=None):
59
+ real_time_quotes_now_es = east_money_stock_api.get_real_time_quotes_all_stocks()
60
+
61
+ symbol_list = list(real_time_quotes_now_es['symbol'])
62
+ # 退市公司
63
+ de_list_company = company_common_service_new_api.get_de_list_company()
64
+ symbol_list.extend(de_list_company)
65
+ symbol_list = set(symbol_list)
66
+ if symbol is not None:
67
+ symbol_list = [symbol]
68
+ for symbol in symbol_list:
69
+ try:
70
+ sync_bfq_k_line_data(period,
71
+ hq,
72
+ hq_col,
73
+ end_date,
74
+ symbol)
75
+ except BaseException as e:
76
+ logger.warning("同步不复权k线:{},{}", symbol, e)
77
+
78
+
79
+ def insert_data(stock_hfq_df, hq_col, symbol):
80
+ query = {'symbol': symbol}
81
+ tag = mongodb_util.remove_data(query, hq_col)
82
+ success = tag.acknowledged
83
+ if success:
84
+ mongodb_util.insert_mongo(stock_hfq_df, hq_col)
85
+
86
+
87
+ if __name__ == '__main__':
88
+ sync_all_bfq_k_line('daily',
89
+ '',
90
+ 'stock_bfq_daily',
91
+ None,
92
+ None)
@@ -52,14 +52,6 @@ realtime_quotes_now_zt_new_kc_open_field = ['_id',
52
52
  'max_real_main_inflow_multiple', 'list_date',
53
53
  'real_super_main_inflow_multiple', 'real_flow_mv',
54
54
  'real_disk_diff_amount_exchange', 'no_open_data']
55
- # kcx 高涨幅开盘数据同步
56
- def realtime_quotes_now_zt_new_kc_open_sync():
57
- realtime_quotes_now_zt_new_kc_open = mongodb_util.find_all_data('realtime_quotes_now_zt_new_kc_open')
58
- realtime_quotes_now_zt_new_kc_open = realtime_quotes_now_zt_new_kc_open[realtime_quotes_now_zt_new_kc_open_field]
59
- realtime_quotes_now_zt_new_kc_open = realtime_quotes_now_zt_new_kc_open.sort_values(by=['str_day'], ascending=False)
60
-
61
- mongodb_util.insert_mongo(realtime_quotes_now_zt_new_kc_open, 'realtime_quotes_now_zt_new_kc_open_copy')
62
-
63
55
 
64
56
  # query = {'$and': [{"_id": {'$lte': str_end}}, {"_id": {'$gte': '2022-04-25'}}]}
65
57
  def sync_all_high_chg_data(str_end):
@@ -92,7 +84,7 @@ def fix_miss_data(str_end):
92
84
 
93
85
 
94
86
  if __name__ == '__main__':
95
- kcx_high_chg_open_data_sync.sync_all_kc_zt_data('2024-06-04', None)
87
+ kcx_high_chg_open_data_sync.sync_all_kc_zt_data('2024-06-19', None)
96
88
  # sync_all_kc_zt_data('2023-08-16')
97
89
  # sync_all_kc_zt_data('2023-07-07')
98
90
  # realtime_quotes_now_zt_new_kc_open_sync()
@@ -36,4 +36,4 @@ def sync_his_zt_pool_data(begin_day, end_day):
36
36
 
37
37
 
38
38
  if __name__ == '__main__':
39
- sync_high_chg_pool_service.sync_stock_high_chg_pool_list('2024-06-07', ['605058'])
39
+ sync_high_chg_pool_service.sync_stock_high_chg_pool_list('2024-06-19', None)
@@ -17,6 +17,10 @@ import mns_common.utils.data_frame_util as data_frame_util
17
17
  import mns_common.component.common_service_fun_api as common_service_fun_api
18
18
  import mns_common.component.trade_date.trade_date_common_service_api as trade_date_common_service_api
19
19
 
20
+ '''
21
+ 东方财富涨停池
22
+ '''
23
+
20
24
  mongodb_util = MongodbUtil('27017')
21
25
 
22
26
  ZT_FIELD = ['_id', 'symbol', 'name', 'now_price', 'chg', 'first_closure_time',
@@ -0,0 +1,231 @@
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.api.ths.zt.ths_stock_zt_pool_api as ths_stock_zt_pool_api
9
+ from datetime import datetime
10
+ import mns_common.utils.data_frame_util as data_frame_util
11
+ import pandas as pd
12
+ import mns_common.api.em.east_money_stock_api as east_money_stock_api
13
+ import mns_common.component.company.company_common_service_new_api as company_common_service_new_api
14
+ import mns_common.component.common_service_fun_api as common_service_fun_api
15
+ from loguru import logger
16
+ import mns_common.api.akshare.k_line_api as k_line_api
17
+ import mns_common.utils.date_handle_util as date_handle_util
18
+ from mns_common.db.MongodbUtil import MongodbUtil
19
+ import mns_common.constant.db_name_constant as db_name_constant
20
+
21
+ mongodb_util = MongodbUtil('27017')
22
+
23
+
24
+ def ths_zt_pool(str_day, real_time_quotes_all_stocks):
25
+ '''
26
+ 获取请求头
27
+ :param str_day: 日期
28
+ :param real_time_quotes_all_stocks: 实时行情
29
+ :return:
30
+ '''
31
+ now_date = datetime.now()
32
+ now_day_str_day = now_date.strftime('%Y-%m-%d')
33
+ ths_zt_pool_df = ths_stock_zt_pool_api.get_zt_reason(str_day)
34
+ if data_frame_util.is_empty(ths_zt_pool_df):
35
+ return pd.DataFrame()
36
+ if str_day == now_day_str_day:
37
+ ths_zt_pool_df = merge_now_day_zt_info(ths_zt_pool_df, real_time_quotes_all_stocks)
38
+ else:
39
+ ths_zt_pool_df = merge_his_day_zt_info(ths_zt_pool_df, str_day)
40
+
41
+ return ths_zt_pool_df
42
+
43
+
44
+ def merge_now_day_zt_info(ths_zt_pool_df, real_time_quotes_all_stocks):
45
+ if real_time_quotes_all_stocks is None:
46
+ real_time_quotes_all_stocks = east_money_stock_api.get_real_time_quotes_all_stocks()
47
+ real_time_quotes_all_stocks = real_time_quotes_all_stocks[['symbol', 'amount',
48
+ 'exchange', 'flow_mv', 'total_mv']]
49
+ real_time_quotes_all_stocks_zt = real_time_quotes_all_stocks.loc[
50
+ real_time_quotes_all_stocks['symbol'].isin(ths_zt_pool_df['symbol'])]
51
+
52
+ query_field = {
53
+ "ths_concept_name": 1,
54
+ "ths_concept_code": 1,
55
+ "ths_concept_sync_day": 1,
56
+ "company_type": 1,
57
+ "concept_create_day": 1,
58
+ "first_sw_industry": 1,
59
+ "third_sw_industry": 1,
60
+ "industry": 1,
61
+ "list_date": 1,
62
+ }
63
+ query_field_key = str(query_field)
64
+ query_key = str({'symbol': {"$in": list(ths_zt_pool_df['symbol'])}})
65
+ company_df_zt = company_common_service_new_api.get_company_info_by_field(query_key, query_field_key)
66
+
67
+ company_df_zt = company_df_zt.set_index(['_id'], drop=True)
68
+ real_time_quotes_all_stocks_zt = real_time_quotes_all_stocks_zt.set_index(['symbol'], drop=True)
69
+ ths_zt_pool_df = ths_zt_pool_df.set_index(['symbol'], drop=False)
70
+
71
+ ths_zt_pool_df = pd.merge(ths_zt_pool_df, company_df_zt, how='outer',
72
+ left_index=True, right_index=True)
73
+
74
+ ths_zt_pool_df = pd.merge(ths_zt_pool_df, real_time_quotes_all_stocks_zt, how='outer',
75
+ left_index=True, right_index=True)
76
+ ths_zt_pool_df['amount_level'] = round(ths_zt_pool_df['amount'] / common_service_fun_api.HUNDRED_MILLION, 2)
77
+ ths_zt_pool_df = common_service_fun_api.classify_symbol(ths_zt_pool_df)
78
+ ths_zt_pool_df = common_service_fun_api.total_mv_classification(ths_zt_pool_df)
79
+ ths_zt_pool_df.fillna('', inplace=True)
80
+ if 'zt_flag' in ths_zt_pool_df.columns:
81
+ del ths_zt_pool_df['zt_flag']
82
+ if 'zt_tag' in ths_zt_pool_df.columns:
83
+ del ths_zt_pool_df['zt_tag']
84
+
85
+ return ths_zt_pool_df
86
+
87
+
88
+ # 历史数据merge
89
+ def merge_his_day_zt_info(ths_zt_pool_df, str_day):
90
+ '''
91
+ 获取请求头
92
+ :param ths_zt_pool_df: 涨停df
93
+ :param str_day: 日期
94
+ :return:
95
+ '''
96
+
97
+ query_field = {
98
+ "ths_concept_name": 1,
99
+ "ths_concept_code": 1,
100
+ "ths_concept_sync_day": 1,
101
+ "company_type": 1,
102
+ "concept_create_day": 1,
103
+ "first_sw_industry": 1,
104
+ "third_sw_industry": 1,
105
+ "industry": 1,
106
+ "list_date": 1,
107
+ }
108
+ query_field_key = str(query_field)
109
+ query_key = str({'symbol': {"$in": list(ths_zt_pool_df['symbol'])}})
110
+ company_df_zt = company_common_service_new_api.get_company_info_by_field(query_key, query_field_key)
111
+
112
+ bfq_k_line_df = get_bfq_daily_line(ths_zt_pool_df, str_day)
113
+ bfq_k_line_df['total_mv'] = bfq_k_line_df['flow_mv']
114
+
115
+ company_df_zt = company_df_zt.set_index(['_id'], drop=True)
116
+ bfq_k_line_df = bfq_k_line_df.set_index(['symbol'], drop=True)
117
+ ths_zt_pool_df = ths_zt_pool_df.set_index(['symbol'], drop=False)
118
+
119
+ if 'chg' in ths_zt_pool_df.columns:
120
+ del ths_zt_pool_df['chg']
121
+ if 'now_price' in ths_zt_pool_df.columns:
122
+ del ths_zt_pool_df['now_price']
123
+
124
+ ths_zt_pool_df = pd.merge(ths_zt_pool_df, company_df_zt, how='outer',
125
+ left_index=True, right_index=True)
126
+
127
+ ths_zt_pool_df = pd.merge(ths_zt_pool_df, bfq_k_line_df, how='outer',
128
+ left_index=True, right_index=True)
129
+ ths_zt_pool_df = common_service_fun_api.classify_symbol(ths_zt_pool_df)
130
+ ths_zt_pool_df = common_service_fun_api.total_mv_classification(ths_zt_pool_df)
131
+ ths_zt_pool_df.fillna('', inplace=True)
132
+ if 'zt_flag' in ths_zt_pool_df.columns:
133
+ del ths_zt_pool_df['zt_flag']
134
+ if 'zt_tag' in ths_zt_pool_df.columns:
135
+ del ths_zt_pool_df['zt_tag']
136
+
137
+ return ths_zt_pool_df
138
+
139
+
140
+ # 获取不复权k线信息
141
+ def get_bfq_daily_line(ths_zt_pool_df, str_day):
142
+ query_k_line = {'symbol': {"$in": list(ths_zt_pool_df['symbol'])}, 'date': date_handle_util.no_slash_date(str_day)}
143
+ bfq_daily_line_df = mongodb_util.find_query_data('stock_bfq_daily', query_k_line)
144
+ if data_frame_util.is_not_empty(bfq_daily_line_df):
145
+ bfq_daily_line_df = bfq_daily_line_df[['amount', 'chg', 'close', 'exchange',
146
+ 'symbol', 'amount_level',
147
+ 'flow_mv', 'flow_mv_sp'
148
+ ]]
149
+ bfq_daily_line_df = bfq_daily_line_df.rename(columns={"close": 'now_price'})
150
+ return bfq_daily_line_df
151
+
152
+ bfq_k_line_df = pd.DataFrame()
153
+ for zt_one in ths_zt_pool_df.itertuples():
154
+ try:
155
+ symbol = zt_one.symbol
156
+ bfq_daily_line_df = k_line_api.stock_zh_a_hist(symbol,
157
+ 'daily',
158
+ date_handle_util.no_slash_date(str_day),
159
+ date_handle_util.no_slash_date(str_day),
160
+ '')
161
+ if data_frame_util.is_empty(bfq_daily_line_df):
162
+ continue
163
+ bfq_daily_line_df = bfq_daily_line_df[['amount', 'chg', 'close', 'exchange',
164
+ 'symbol', 'amount_level',
165
+ 'flow_mv', 'flow_mv_sp'
166
+ ]]
167
+ bfq_daily_line_df = bfq_daily_line_df.rename(columns={"close": 'now_price'})
168
+ bfq_k_line_df = pd.concat([bfq_k_line_df, bfq_daily_line_df])
169
+ except BaseException as e:
170
+ logger.warning("同步不复权k线异常:{},{}", symbol, e)
171
+
172
+ return bfq_k_line_df
173
+
174
+
175
+ def save_ths_zt_pool(ths_zt_pool_df):
176
+ ths_zt_pool_df = ths_zt_pool_df[[
177
+ "symbol",
178
+ "name",
179
+ "chg",
180
+ "connected_boards_numbers",
181
+ "statistics",
182
+ "statistics_detail",
183
+ "first_closure_time",
184
+ "last_closure_time",
185
+ "zt_detail",
186
+ "zt_reason",
187
+ "closure_volume",
188
+ "closure_funds",
189
+ "closure_funds_per_amount",
190
+ "closure_funds_per_flow_mv",
191
+ "frying_plates_numbers",
192
+ "zt_type",
193
+ "market_code",
194
+ "str_day",
195
+ "industry",
196
+ "first_sw_industry",
197
+ "third_sw_industry",
198
+ "ths_concept_name",
199
+ "ths_concept_code",
200
+ "ths_concept_sync_day",
201
+ "list_date",
202
+ "company_type",
203
+ "amount",
204
+ "now_price",
205
+ "exchange",
206
+ "amount_level",
207
+ "flow_mv",
208
+ "flow_mv_sp",
209
+ "total_mv",
210
+ "classification",
211
+ "total_mv_sp",
212
+ "flow_mv_level"
213
+ ]]
214
+ ths_zt_pool_df['_id'] = ths_zt_pool_df['symbol'] + '_' + ths_zt_pool_df['str_day']
215
+ ths_zt_pool_df = ths_zt_pool_df.sort_values(by=['connected_boards_numbers'], ascending=False)
216
+ mongodb_util.save_mongo(ths_zt_pool_df, db_name_constant.THS_ZT_POOL)
217
+
218
+
219
+ if __name__ == '__main__':
220
+ while True:
221
+ query = {'_id': {"$lte": '2019-10-29'}}
222
+ trade_date_list = mongodb_util.find_query_data('trade_date_list', query)
223
+ trade_date_list = trade_date_list.sort_values(by=['trade_date'], ascending=False)
224
+ for trade_one in trade_date_list.itertuples():
225
+ try:
226
+ trade_date = trade_one.trade_date
227
+ zt_df = ths_zt_pool(trade_date, None)
228
+ save_ths_zt_pool(zt_df)
229
+ logger.info("同步到日期:{}", trade_date)
230
+ except BaseException as e:
231
+ logger.warning("同步涨停到日期:{},{}", trade_one.trade_date, e)
@@ -23,7 +23,7 @@ import mns_scheduler.big_deal.ths_big_deal_sync as ths_big_deal_sync_api
23
23
  import mns_scheduler.zt.open_data.kcx_high_chg_open_data_sync as kcx_high_chg_open_data_sync
24
24
  import mns_scheduler.zt.export.export_kcx_high_chg_open_data_to_excel as export_kcx_high_chg_open_data_to_excel
25
25
  import mns_scheduler.zt.connected_boards.zt_five_boards_sync_api as zt_five_boards_sync_api
26
- import mns_scheduler.zt.zt_pool.zt_pool_sync_api as zt_pool_sync_api
26
+ import mns_scheduler.zt.zt_pool.em_zt_pool_sync_api as em_zt_pool_sync_api
27
27
  import mns_scheduler.k_line.clean.k_line_info_clean_task as k_line_info_clean_service
28
28
  import mns_scheduler.concept.clean.ths_concept_clean_api as ths_concept_choose_api
29
29
  import mns_common.api.em.east_money_stock_gdfx_free_top_10_api as east_money_stock_gdfx_free_top_10_api
@@ -47,6 +47,7 @@ import mns_scheduler.risk.self.wei_pan_stock_api as wei_pan_stock_api
47
47
  import mns_scheduler.risk.transactions.transactions_check_api as transactions_check_api
48
48
  import mns_scheduler.concept.ths.sync_new_index.sync_ths_concept_new_index_api as sync_ths_concept_new_index_api
49
49
  import mns_scheduler.company_info.clean.company_info_clean_api as company_info_clean_api
50
+ import mns_scheduler.zt.zt_pool.ths_zt_pool_sync_api as ths_zt_pool_sync_api
50
51
 
51
52
 
52
53
  # 同步交易日期任务完成
@@ -148,8 +149,10 @@ def sync_stock_zt_pool():
148
149
  str_day = now_date.strftime('%Y-%m-%d')
149
150
  if trade_date_common_service_api.is_trade_day(str_day):
150
151
  logger.info('同步当天涨停池股开始')
151
- stock_zt_pool = zt_pool_sync_api.save_zt_info(str_day)
152
- zt_five_boards_sync_api.update_five_connected_boards_task(stock_zt_pool)
152
+ em_stock_zt_pool = em_zt_pool_sync_api.save_zt_info(str_day)
153
+ zt_five_boards_sync_api.update_five_connected_boards_task(em_stock_zt_pool)
154
+ logger.info('同步ths股票涨停池')
155
+ ths_zt_pool_sync_api.ths_zt_pool(str_day, None)
153
156
  logger.info('同步当天涨停池股票完成')
154
157
 
155
158
 
@@ -1,3 +1,3 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mns-scheduler
3
- Version: 1.1.1.0
3
+ Version: 1.1.1.1
@@ -70,6 +70,7 @@ mns_scheduler/k_line/clean/week_month/sub_new_week_month_k_line_service.py
70
70
  mns_scheduler/k_line/hot_stocks/__init__.py
71
71
  mns_scheduler/k_line/hot_stocks/recent_hot_stocks_clean_service.py
72
72
  mns_scheduler/k_line/sync/__init__.py
73
+ mns_scheduler/k_line/sync/bfq_k_line_sync.py
73
74
  mns_scheduler/k_line/sync/daily_week_month_line_sync.py
74
75
  mns_scheduler/k_line/test/__init__.py
75
76
  mns_scheduler/k_line/test/k_line_info_clean_his_data.py
@@ -126,7 +127,8 @@ mns_scheduler/zt/script/__init__.py
126
127
  mns_scheduler/zt/script/kcx_high_chg_open_his_data_handle.py
127
128
  mns_scheduler/zt/script/sync_high_chg_pool_his_data.py
128
129
  mns_scheduler/zt/zt_pool/__init__.py
129
- mns_scheduler/zt/zt_pool/zt_pool_sync_api.py
130
+ mns_scheduler/zt/zt_pool/em_zt_pool_sync_api.py
131
+ mns_scheduler/zt/zt_pool/ths_zt_pool_sync_api.py
130
132
  mns_scheduler/zz_task/__init__.py
131
133
  mns_scheduler/zz_task/data_sync_task.py
132
134
  mns_scheduler/zz_task/sync_realtime_quotes_task.py
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
2
2
 
3
3
  setup(
4
4
  name='mns-scheduler',
5
- version='1.1.1.0',
5
+ version='1.1.1.1',
6
6
  packages=find_packages(),
7
7
  install_requires=[], # 如果有依赖项,可以在这里列出
8
8
  )