mns-scheduler 1.2.6.1__tar.gz → 1.2.6.2__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 (163) hide show
  1. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/PKG-INFO +1 -1
  2. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/k_line/clean/daily/daily_k_line_clean_common_service.py +14 -8
  3. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/k_line/clean/daily/daily_k_line_service.py +1 -0
  4. mns_scheduler-1.2.6.2/mns_scheduler/k_line/clean/week_month/normal_week_month_k_line_service.py +179 -0
  5. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/k_line/sync/daily_week_month_line_sync.py +3 -2
  6. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/k_line/test/k_line_info_clean_his_data.py +4 -1
  7. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/self_choose/ths_self_choose_service.py +2 -0
  8. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler.egg-info/PKG-INFO +1 -1
  9. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/setup.py +1 -1
  10. mns_scheduler-1.2.6.1/mns_scheduler/k_line/clean/week_month/normal_week_month_k_line_service.py +0 -117
  11. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/README.md +0 -0
  12. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/__init__.py +0 -0
  13. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/big_deal/__init__.py +0 -0
  14. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/big_deal/ths_big_deal_sync.py +0 -0
  15. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/company_info/__init__.py +0 -0
  16. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/company_info/announce/__init__.py +0 -0
  17. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/company_info/announce/company_announce_sync_service.py +0 -0
  18. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/company_info/base/__init__.py +0 -0
  19. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/company_info/base/sync_company_base_info_api.py +0 -0
  20. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/company_info/base/sync_company_hold_info_api.py +0 -0
  21. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/company_info/clean/__init__.py +0 -0
  22. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/company_info/clean/company_info_clean_api.py +0 -0
  23. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/company_info/constant/__init__.py +0 -0
  24. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/company_info/constant/company_constant_data.py +0 -0
  25. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/company_info/de_list_stock/__init__.py +0 -0
  26. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/company_info/de_list_stock/de_list_stock_service.py +0 -0
  27. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/company_info/remark/__init__.py +0 -0
  28. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/company_info/remark/company_remark_info_sync.py +0 -0
  29. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/concept/__init__.py +0 -0
  30. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/concept/clean/__init__.py +0 -0
  31. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/concept/clean/kpl_concept_clean_api.py +0 -0
  32. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/concept/clean/ths_concept_clean_api.py +0 -0
  33. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/concept/ths/__init__.py +0 -0
  34. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/concept/ths/common/__init__.py +0 -0
  35. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/concept/ths/common/ths_concept_sync_common_api.py +0 -0
  36. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/concept/ths/common/ths_concept_update_common_api.py +0 -0
  37. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/concept/ths/detaill/__init__.py +0 -0
  38. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/concept/ths/detaill/ths_concept_detail_api.py +0 -0
  39. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/concept/ths/sync_new_index/__init__.py +0 -0
  40. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/concept/ths/sync_new_index/sync_ths_concept_new_index_api.py +0 -0
  41. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/concept/ths/update_concept_info/__init__.py +0 -0
  42. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/concept/ths/update_concept_info/sync_one_concept_all_symbols_api.py +0 -0
  43. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/concept/ths/update_concept_info/sync_one_symbol_all_concepts_api.py +0 -0
  44. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/db/__init__.py +0 -0
  45. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/db/col_move_service.py +0 -0
  46. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/db/db_status.py +0 -0
  47. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/db/real_time_task_check.py +0 -0
  48. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/db/script/__init__.py +0 -0
  49. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/db/script/col_move_script.py +0 -0
  50. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/db/script/sync/__init__.py +0 -0
  51. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/db/script/sync/local_mongo_util.py +0 -0
  52. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/db/script/sync/remote_data_sync_to_local.py +0 -0
  53. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/db/script/sync/remote_mongo_util.py +0 -0
  54. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/db/script/sync/sync_hui_ce_test_data.py +0 -0
  55. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/db/script/update/__init__.py +0 -0
  56. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/db/script/update/update_col_field.py +0 -0
  57. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/debt/__init__.py +0 -0
  58. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/debt/kzz_bond_info_sync.py +0 -0
  59. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/dt/__init__.py +0 -0
  60. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/dt/stock_dt_pool_sync.py +0 -0
  61. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/finance/__init__.py +0 -0
  62. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/finance/em_financial_asset_liability_sync_service_api.py +0 -0
  63. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/finance/em_financial_profit_sync_service_api.py +0 -0
  64. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/finance/finance_common_api.py +0 -0
  65. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/finance/sync_financial_report_service_api.py +0 -0
  66. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/hk/__init__.py +0 -0
  67. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/hk/hk_company_info_sync_service_api.py +0 -0
  68. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/hk/hk_industry_info_sync_service_api.py +0 -0
  69. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/industry/__init__.py +0 -0
  70. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/industry/ths/__init__.py +0 -0
  71. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/industry/ths/ths_industry_index_service.py +0 -0
  72. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/industry/ths/ths_industry_sync_service.py +0 -0
  73. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/irm/__init__.py +0 -0
  74. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/irm/api/__init__.py +0 -0
  75. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/irm/api/sh_stock_sns_sse_info_api.py +0 -0
  76. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/irm/api/sz_stock_sns_sse_info_api.py +0 -0
  77. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/irm/stock_irm_cninfo_service.py +0 -0
  78. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/k_line/__init__.py +0 -0
  79. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/k_line/clean/__init__.py +0 -0
  80. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/k_line/clean/daily/__init__.py +0 -0
  81. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/k_line/clean/k_line_info_clean_impl.py +0 -0
  82. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/k_line/clean/k_line_info_clean_task.py +0 -0
  83. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/k_line/clean/week_month/__init__.py +0 -0
  84. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/k_line/clean/week_month/sub_new_week_month_k_line_service.py +0 -0
  85. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/k_line/hot_stocks/__init__.py +0 -0
  86. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/k_line/hot_stocks/recent_hot_stocks_clean_service.py +0 -0
  87. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/k_line/sync/__init__.py +0 -0
  88. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/k_line/sync/bfq_k_line_sync.py +0 -0
  89. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/k_line/test/__init__.py +0 -0
  90. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/kpl/__init__.py +0 -0
  91. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/kpl/selection/__init__.py +0 -0
  92. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/kpl/selection/index/__init__.py +0 -0
  93. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/kpl/selection/index/sync_best_choose_his_index.py +0 -0
  94. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/kpl/selection/index/sync_best_choose_index.py +0 -0
  95. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/kpl/selection/symbol/__init__.py +0 -0
  96. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/kpl/selection/symbol/sync_best_choose_symbol.py +0 -0
  97. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/kpl/selection/total/__init__.py +0 -0
  98. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/kpl/selection/total/sync_kpl_best_total_sync_api.py +0 -0
  99. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/lhb/__init__.py +0 -0
  100. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/lhb/stock_lhb_sync_service.py +0 -0
  101. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/open/__init__.py +0 -0
  102. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/open/sync_one_day_open_data_to_db_service.py +0 -0
  103. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/risk/__init__.py +0 -0
  104. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/risk/compliance/__init__.py +0 -0
  105. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/risk/compliance/undisclosed_annual_report_api.py +0 -0
  106. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/risk/financial/__init__.py +0 -0
  107. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/risk/financial/annual_report_audit_check_api.py +0 -0
  108. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/risk/financial/net_assets_check_api.py +0 -0
  109. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/risk/financial/profit_income_check_api.py +0 -0
  110. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/risk/financial/stock_equity_mortgage_check_api.py +0 -0
  111. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/risk/financial_report_risk_check_api.py +0 -0
  112. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/risk/major_violations/__init__.py +0 -0
  113. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/risk/major_violations/register_and_investigate_stock_sync_api.py +0 -0
  114. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/risk/self/__init__.py +0 -0
  115. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/risk/self/wei_pan_stock_api.py +0 -0
  116. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/risk/test/__init__.py +0 -0
  117. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/risk/test/fix_blask_list.py +0 -0
  118. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/risk/transactions/__init__.py +0 -0
  119. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/risk/transactions/transactions_check_api.py +0 -0
  120. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/self_choose/__init__.py +0 -0
  121. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/trade/__init__.py +0 -0
  122. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/trade/auto_ipo_buy_api.py +0 -0
  123. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/trade/auto_login/__init__.py +0 -0
  124. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/trade/auto_login/trader_auto_service.py +0 -0
  125. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/trade/auto_sell_service_api.py +0 -0
  126. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/trade/balance/__init__.py +0 -0
  127. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/trade/balance/ths_account_balance_service.py +0 -0
  128. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/trade/sync_position_api.py +0 -0
  129. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/trade/task/__init__.py +0 -0
  130. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/trade/task/trader_task_service.py +0 -0
  131. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/trade/tfp/__init__.py +0 -0
  132. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/trade/tfp/stock_tfp_info_sync.py +0 -0
  133. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/us/__init__.py +0 -0
  134. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/us/baidu_yun_pan_handle_service.py +0 -0
  135. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/us/k_line.py +0 -0
  136. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/us/us_company_info_sync_service_api.py +0 -0
  137. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/zb/__init__.py +0 -0
  138. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/zb/stock_zb_pool_sync.py +0 -0
  139. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/zt/__init__.py +0 -0
  140. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/zt/connected_boards/__init__.py +0 -0
  141. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/zt/connected_boards/zt_five_boards_sync_api.py +0 -0
  142. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/zt/export/__init__.py +0 -0
  143. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/zt/export/export_kcx_high_chg_open_data_to_excel.py +0 -0
  144. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/zt/high_chg/__init__.py +0 -0
  145. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/zt/high_chg/sync_high_chg_pool_service.py +0 -0
  146. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/zt/high_chg/sync_high_chg_real_time_quotes_service.py +0 -0
  147. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/zt/open_data/__init__.py +0 -0
  148. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/zt/open_data/kcx_high_chg_open_data_sync.py +0 -0
  149. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/zt/script/__init__.py +0 -0
  150. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/zt/script/fix_error_deal_day.py +0 -0
  151. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/zt/script/kcx_high_chg_open_his_data_handle.py +0 -0
  152. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/zt/script/sync_high_chg_pool_his_data.py +0 -0
  153. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/zt/script/sync_now_higt_chg_zt.py +0 -0
  154. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/zt/zt_pool/__init__.py +0 -0
  155. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/zt/zt_pool/em_zt_pool_sync_api.py +0 -0
  156. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/zt/zt_pool/ths_zt_pool_sync_api.py +0 -0
  157. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/zt/zt_pool/update_null_zt_reason_api.py +0 -0
  158. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/zz_task/__init__.py +0 -0
  159. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler/zz_task/data_sync_task.py +0 -0
  160. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler.egg-info/SOURCES.txt +0 -0
  161. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler.egg-info/dependency_links.txt +0 -0
  162. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/mns_scheduler.egg-info/top_level.txt +0 -0
  163. {mns_scheduler-1.2.6.1 → mns_scheduler-1.2.6.2}/setup.cfg +0 -0
@@ -1,3 +1,3 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mns-scheduler
3
- Version: 1.2.6.1
3
+ Version: 1.2.6.2
@@ -85,11 +85,11 @@ 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
88
+ k_line_info.loc[:, 'slope_five_last'] = 0
89
+ k_line_info.loc[:, 'slope_ten_last'] = 0
90
+ k_line_info.loc[:, 'slope_twenty_last'] = 0
91
+ k_line_info.loc[:, 'slope_thirty_last'] = 0
92
+ k_line_info.loc[:, 'slope_sixty_last'] = 0
93
93
 
94
94
  k_line_info.loc[:, 'std_amount_ten'] = 0
95
95
  k_line_info.loc[:, 'mean_amount_ten'] = 0
@@ -224,9 +224,13 @@ def calculate_exchange_and_k_line_avg_param(stock_qfq_daily):
224
224
  stock_qfq_daily['close_difference_sixty'] = round(
225
225
  100 * (stock_qfq_daily['close'] - stock_qfq_daily['avg_sixty']) / stock_qfq_daily['avg_sixty'],
226
226
  2)
227
-
228
- # 计算均线斜率
229
- stock_qfq_daily = calculate_slope(stock_qfq_daily, windows=['five', 'ten', 'twenty', 'thirty', 'sixty'])
227
+ if (('slope_' + 'five' not in stock_qfq_daily.columns)
228
+ or ('slope_' + 'ten' not in stock_qfq_daily.columns) \
229
+ or ('slope_' + 'twenty' not in stock_qfq_daily.columns) \
230
+ or ('slope_' + 'thirty' not in stock_qfq_daily.columns) \
231
+ or ('slope_' + 'sixty' not in stock_qfq_daily.columns)):
232
+ # 计算均线斜率
233
+ stock_qfq_daily = calculate_slope(stock_qfq_daily, windows=['five', 'ten', 'twenty', 'thirty', 'sixty'])
230
234
 
231
235
  stock_qfq_daily = stock_qfq_daily[[
232
236
  "symbol",
@@ -299,6 +303,8 @@ def calculate_moving_averages(data, windows=['five', 'ten', 'twenty', 'thirty',
299
303
  # 计算均线斜率
300
304
  def calculate_slope(data, windows=['five', 'ten', 'twenty', 'thirty', 'sixty']):
301
305
  for window in windows:
306
+ if 'slope_' + window in data.columns:
307
+ continue
302
308
  data[f'slope_{window}'] = data[f'avg_{window}'].diff() / data[f'avg_{window}'].shift(1)
303
309
  data[f'slope_{window}'] = data[f'slope_{window}'] * 100
304
310
  data[f'slope_{window}'] = round(data[f'slope_{window}'], 2)
@@ -114,6 +114,7 @@ def handle_day_line_normal(k_line_info, str_day, symbol, deal_days):
114
114
  k_line_info = daily_k_line_clean_common_service.fix_avg_slope_name(k_line_info, stock_qfq_daily)
115
115
  return k_line_info
116
116
 
117
+
117
118
  # if __name__ == '__main__':
118
119
  # query1 = {"symbol": '301596', 'date': {"$lte": date_handle_util.no_slash_date('2024-05-31')}}
119
120
  # stock_qfq_daily_301596 = mongodb_util.descend_query(query1, 'stock_qfq_daily', 'date', 15)
@@ -0,0 +1,179 @@
1
+ import sys
2
+ import os
3
+
4
+ file_path = os.path.abspath(__file__)
5
+ end = file_path.index('mns') + 16
6
+ project_path = file_path[0:end]
7
+ sys.path.append(project_path)
8
+ from mns_common.db.MongodbUtil import MongodbUtil
9
+ import mns_common.utils.date_handle_util as date_handle_util
10
+ from mns_common.component.classify.symbol_classify_param import stock_type_classify_param
11
+ import mns_common.utils.data_frame_util as data_frame_util
12
+
13
+ mongodb_util = MongodbUtil('27017')
14
+
15
+
16
+ # 处理月线 周线 todo 暂时简单计算周线之和
17
+ def handle_month_week_line(k_line_info, str_day, symbol, deal_days):
18
+ sub_stock_new_max_deal_days = stock_type_classify_param['sub_new_stock_max_deal_days']
19
+ if deal_days > sub_stock_new_max_deal_days:
20
+ k_line_info['last_year_chg'] = 0
21
+ k_line_info['now_year_chg'] = 0
22
+ k_line_info = handle_month_line(k_line_info, str_day, symbol)
23
+ k_line_info = handle_week_line(k_line_info, str_day, symbol)
24
+
25
+ else:
26
+ k_line_info['week01'] = 0
27
+ k_line_info['week02'] = 0
28
+ k_line_info['week03'] = 0
29
+ k_line_info['week04'] = 0
30
+ k_line_info['sum_week'] = 0
31
+ k_line_info['week_num'] = 0
32
+ k_line_info['week_last_day'] = '19890729'
33
+
34
+ k_line_info['sum_month'] = 0
35
+ k_line_info['month_num'] = 0
36
+ k_line_info['month01'] = 0
37
+ k_line_info['month02'] = 0
38
+ k_line_info['month01_date'] = '19890729'
39
+ k_line_info['month02_date'] = '19890729'
40
+
41
+ k_line_info['last_year_chg'] = 0
42
+ k_line_info['now_year_chg'] = 0
43
+
44
+ return k_line_info
45
+
46
+
47
+ # 处理月线
48
+ def handle_month_line(k_line_info, str_day, symbol):
49
+ now_year = int(str_day[0:4])
50
+ last_year = str(now_year - 1)
51
+
52
+ now_month_begin_day = str_day[0:7] + '-01'
53
+
54
+ now_month = str_day[5:7]
55
+ # 前两个月
56
+ before_two_month = int(now_month) - 2
57
+
58
+ before_two_month_begin_day = str(now_year) + str(before_two_month) + '01'
59
+
60
+ last_year_begin_day = last_year + '-01-01'
61
+ now_year_begin_day = str(now_year) + '-01-01'
62
+
63
+ query = {"symbol": symbol,
64
+ 'date': {"$gte": date_handle_util.no_slash_date(last_year_begin_day)}}
65
+ stock_hfq_monthly_all = mongodb_util.find_query_data('stock_qfq_monthly', query)
66
+ if data_frame_util.is_empty(stock_hfq_monthly_all):
67
+ k_line_info['sum_month'] = 0
68
+
69
+ else:
70
+ stock_hfq_monthly_all = stock_hfq_monthly_all.sort_values(by=['date'], ascending=False)
71
+ stock_hfq_monthly_all = stock_hfq_monthly_all.loc[
72
+ stock_hfq_monthly_all['date'] <= date_handle_util.no_slash_date(now_month_begin_day)]
73
+
74
+ stock_hfq_monthly_last_year = stock_hfq_monthly_all.loc[
75
+ stock_hfq_monthly_all['date'] < date_handle_util.no_slash_date(now_year_begin_day)]
76
+
77
+ stock_hfq_monthly_now_year = stock_hfq_monthly_all.loc[
78
+ stock_hfq_monthly_all['date'] > date_handle_util.no_slash_date(now_year_begin_day)]
79
+
80
+ # 最近两个月k线
81
+ before_two_month_stock_hfq_monthly = stock_hfq_monthly_now_year.loc[
82
+ stock_hfq_monthly_now_year['date'] > before_two_month_begin_day]
83
+ month_num = before_two_month_stock_hfq_monthly.shape[0]
84
+ k_line_info['month_num'] = month_num
85
+
86
+ if month_num == 0:
87
+ k_line_info['sum_month'] = 0
88
+ k_line_info['month01'] = 0
89
+ k_line_info['month02'] = 0
90
+ k_line_info['month01_date'] = '19890729'
91
+ k_line_info['month02_date'] = '19890729'
92
+ elif month_num == 1:
93
+ k_line_info['month01'] = before_two_month_stock_hfq_monthly.iloc[0].chg
94
+ k_line_info['month02'] = 0
95
+ k_line_info['month01_date'] = before_two_month_stock_hfq_monthly.iloc[0].date
96
+ k_line_info['month02_date'] = '19890729'
97
+ k_line_info['sum_month'] = before_two_month_stock_hfq_monthly.iloc[0].chg
98
+ elif month_num == 2:
99
+ k_line_info['month01'] = before_two_month_stock_hfq_monthly.iloc[0].chg
100
+ k_line_info['month02'] = before_two_month_stock_hfq_monthly.iloc[1].chg
101
+ k_line_info['month01_date'] = before_two_month_stock_hfq_monthly.iloc[0].date
102
+ k_line_info['month02_date'] = before_two_month_stock_hfq_monthly.iloc[1].date
103
+ close_price = before_two_month_stock_hfq_monthly.iloc[0].close
104
+ open_price = before_two_month_stock_hfq_monthly.iloc[1].last_price
105
+ sum_chg = round((close_price - open_price) * 100 / open_price, 2)
106
+ k_line_info['sum_month'] = sum_chg
107
+
108
+ last_year_month_number = stock_hfq_monthly_last_year.shape[0]
109
+ if last_year_month_number == 0:
110
+ k_line_info['last_year_chg'] = 0
111
+ elif last_year_month_number == 1:
112
+ k_line_info['last_year_chg'] = stock_hfq_monthly_last_year.iloc[0].chg
113
+ else:
114
+ close_price = stock_hfq_monthly_last_year.iloc[0].close
115
+ open_price = stock_hfq_monthly_last_year.iloc[last_year_month_number - 1].last_price
116
+ last_year_chg = round((close_price - open_price) * 100 / open_price, 2)
117
+ k_line_info['last_year_chg'] = last_year_chg
118
+
119
+ now_year_month_number = stock_hfq_monthly_now_year.shape[0]
120
+ if now_year_month_number == 0:
121
+ k_line_info['now_year_chg'] = 0
122
+ elif now_year_month_number == 1:
123
+ k_line_info['now_year_chg'] = stock_hfq_monthly_now_year.iloc[0].chg
124
+ else:
125
+ close_price = stock_hfq_monthly_now_year.iloc[0].close
126
+ open_price = stock_hfq_monthly_now_year.iloc[now_year_month_number - 1].last_price
127
+ last_year_chg = round((close_price - open_price) * 100 / open_price, 2)
128
+ k_line_info['now_year_chg'] = last_year_chg
129
+
130
+ return k_line_info
131
+
132
+
133
+ # 处理周线
134
+ def handle_week_line(k_line_info, str_day, symbol):
135
+ month_begin_day = str_day[0:7] + '-01'
136
+ query = {"symbol": symbol,
137
+ '$and': [{'date': {"$gte": date_handle_util.no_slash_date(month_begin_day)}},
138
+ {'date': {"$lt": date_handle_util.no_slash_date(str_day)}}]}
139
+ stock_hfq_weekly = mongodb_util.find_query_data('stock_qfq_weekly', query)
140
+ week_num = stock_hfq_weekly.shape[0]
141
+ if week_num > 0:
142
+ stock_hfq_weekly = stock_hfq_weekly.sort_values(by=['date'], ascending=False)
143
+ k_line_info['sum_week'] = round(sum(stock_hfq_weekly['chg']), 2)
144
+ else:
145
+ k_line_info['sum_week'] = 0
146
+ k_line_info['week_num'] = week_num
147
+ if week_num == 1:
148
+ k_line_info['week01'] = stock_hfq_weekly.iloc[0].chg
149
+ k_line_info['week02'] = 0
150
+ k_line_info['week03'] = 0
151
+ k_line_info['week04'] = 0
152
+ elif week_num == 2:
153
+ k_line_info['week01'] = stock_hfq_weekly.iloc[0].chg
154
+ k_line_info['week02'] = stock_hfq_weekly.iloc[1].chg
155
+ k_line_info['week03'] = 0
156
+ k_line_info['week04'] = 0
157
+ elif week_num == 3:
158
+ k_line_info['week01'] = stock_hfq_weekly.iloc[0].chg
159
+ k_line_info['week02'] = stock_hfq_weekly.iloc[1].chg
160
+ k_line_info['week03'] = stock_hfq_weekly.iloc[2].chg
161
+ k_line_info['week04'] = 0
162
+ elif week_num >= 4:
163
+ k_line_info['week01'] = stock_hfq_weekly.iloc[0].chg
164
+ k_line_info['week02'] = stock_hfq_weekly.iloc[1].chg
165
+ k_line_info['week03'] = stock_hfq_weekly.iloc[2].chg
166
+ k_line_info['week04'] = stock_hfq_weekly.iloc[3].chg
167
+ elif week_num == 0:
168
+ k_line_info['week01'] = 0
169
+ k_line_info['week02'] = 0
170
+ k_line_info['week03'] = 0
171
+ k_line_info['week04'] = 0
172
+ k_line_info['week_last_day'] = month_begin_day
173
+ k_line_info['sum_week'] = 0
174
+ return k_line_info
175
+ stock_hfq_weekly = stock_hfq_weekly.sort_values(by=['date'], ascending=False)
176
+ stock_hfq_weekly_last = stock_hfq_weekly.iloc[0:1]
177
+ k_line_info['week_last_day'] = list(stock_hfq_weekly_last['date'])[0]
178
+
179
+ return k_line_info
@@ -105,8 +105,9 @@ def create_db_index(db_name):
105
105
 
106
106
 
107
107
  if __name__ == '__main__':
108
- sync_all_daily_data('daily', 'qfq', 'stock_qfq_daily', None, None)
109
- sync_all_daily_data('daily', 'qfq', 'stock_qfq_weekly', None, None)
108
+ sync_all_daily_data('monthly', 'qfq', 'stock_qfq_monthly', None, None)
109
+ # sync_all_daily_data('daily', 'qfq', 'stock_qfq_daily', None, None)
110
+ # sync_all_daily_data('daily', 'qfq', 'stock_qfq_weekly', None, None)
110
111
  # sync_all_daily_data('weekly', 'qfq', 'stock_qfq_weekly', None, None)
111
112
  # sync_all_daily_data('monthly', 'qfq', 'stock_qfq_monthly', None, None)
112
113
 
@@ -13,7 +13,7 @@ mongodb_util = MongodbUtil('27017')
13
13
 
14
14
 
15
15
  def clean_history_data():
16
- query = {"$and": [{"trade_date": {"$gte": '2023-11-06'}}, {"trade_date": {"$lte": '2025-01-23'}}]}
16
+ query = {"$and": [{"trade_date": {"$gte": '2023-11-06'}}, {"trade_date": {"$lte": '2024-12-19'}}]}
17
17
  trade_date_list_df = mongodb_util.find_query_data('trade_date_list', query)
18
18
  trade_date_list_df = trade_date_list_df.sort_values(by=['trade_date'], ascending=False)
19
19
  for trade_data_one in trade_date_list_df.itertuples():
@@ -25,6 +25,9 @@ def clean_history_data():
25
25
 
26
26
 
27
27
  if __name__ == '__main__':
28
+ k_line_info_clean_task.sync_k_line_info('2025-02-14', None)
29
+ k_line_info_clean_task.sync_k_line_info('2024-12-19', ['600992'])
30
+
28
31
  clean_history_data()
29
32
  # 001389 001359
30
33
  k_line_info_clean_task.sync_k_line_info('2025-02-14', None)
@@ -104,6 +104,8 @@ def add_trade_stocks():
104
104
  position_stock_df = mongodb_util.find_query_data(db_name_constant.POSITION_STOCK, query)
105
105
  if data_frame_util.is_not_empty(position_stock_df):
106
106
  stock_list = set(position_stock_df['symbol'])
107
+ else:
108
+ stock_list = set([])
107
109
  trade_stocks_df = mongodb_util.find_query_data(db_name_constant.BUY_STOCK_NAME, query)
108
110
  if data_frame_util.is_not_empty(trade_stocks_df):
109
111
  stock_list = stock_list.union(set(trade_stocks_df['symbol']))
@@ -1,3 +1,3 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mns-scheduler
3
- Version: 1.2.6.1
3
+ Version: 1.2.6.2
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
2
2
 
3
3
  setup(
4
4
  name='mns-scheduler',
5
- version='1.2.6.1',
5
+ version='1.2.6.2',
6
6
  packages=find_packages(),
7
7
  install_requires=[], # 如果有依赖项,可以在这里列出
8
8
  )
@@ -1,117 +0,0 @@
1
- import sys
2
- import os
3
-
4
- file_path = os.path.abspath(__file__)
5
- end = file_path.index('mns') + 16
6
- project_path = file_path[0:end]
7
- sys.path.append(project_path)
8
- from mns_common.db.MongodbUtil import MongodbUtil
9
- import mns_common.utils.date_handle_util as date_handle_util
10
- from mns_common.component.classify.symbol_classify_param import stock_type_classify_param
11
-
12
- mongodb_util = MongodbUtil('27017')
13
-
14
-
15
- # 处理月线 周线 todo 暂时简单计算周线之和
16
- def handle_month_week_line(k_line_info, str_day, symbol, deal_days):
17
- sub_stock_new_max_deal_days = stock_type_classify_param['sub_new_stock_max_deal_days']
18
- if deal_days > sub_stock_new_max_deal_days:
19
- k_line_info = handle_month_line(k_line_info, str_day, symbol)
20
- k_line_info = handle_week_line(k_line_info, str_day, symbol)
21
- else:
22
- k_line_info['week01'] = 0
23
- k_line_info['week02'] = 0
24
- k_line_info['week03'] = 0
25
- k_line_info['week04'] = 0
26
- k_line_info['sum_week'] = 0
27
- k_line_info['week_num'] = 0
28
- k_line_info['week_last_day'] = '19890729'
29
-
30
- k_line_info['sum_month'] = 0
31
- k_line_info['month_num'] = 0
32
- k_line_info['month01'] = 0
33
- k_line_info['month02'] = 0
34
- k_line_info['month01_date'] = '19890729'
35
- k_line_info['month02_date'] = '19890729'
36
- return k_line_info
37
-
38
-
39
- # 处理月线
40
- def handle_month_line(k_line_info, str_day, symbol):
41
- month_begin_day = str_day[0:7] + '-01'
42
- query = {"symbol": symbol,
43
- 'date': {"$lt": date_handle_util.no_slash_date(month_begin_day)}}
44
- stock_hfq_monthly = mongodb_util.descend_query(query, 'stock_qfq_monthly', 'date', 2)
45
- month_num = stock_hfq_monthly.shape[0]
46
- k_line_info['month_num'] = month_num
47
- if month_num > 0:
48
- k_line_info['sum_month'] = round(sum(stock_hfq_monthly['chg']), 2)
49
- else:
50
- k_line_info['sum_month'] = 0
51
-
52
- if month_num == 0:
53
- k_line_info['month01'] = 0
54
- k_line_info['month02'] = 0
55
- k_line_info['month01_date'] = '19890729'
56
- k_line_info['month02_date'] = '19890729'
57
- elif month_num == 1:
58
- k_line_info['month01'] = stock_hfq_monthly.iloc[0].chg
59
- k_line_info['month02'] = 0
60
- k_line_info['month01_date'] = stock_hfq_monthly.iloc[0].date
61
- k_line_info['month02_date'] = '19890729'
62
- elif month_num == 2:
63
- k_line_info['month01'] = stock_hfq_monthly.iloc[0].chg
64
- k_line_info['month02'] = stock_hfq_monthly.iloc[1].chg
65
- k_line_info['month01_date'] = stock_hfq_monthly.iloc[0].date
66
- k_line_info['month02_date'] = stock_hfq_monthly.iloc[1].date
67
-
68
- return k_line_info
69
-
70
-
71
- # 处理周线
72
- def handle_week_line(k_line_info, str_day, symbol):
73
- month_begin_day = str_day[0:7] + '-01'
74
- query = {"symbol": symbol,
75
- '$and': [{'date': {"$gte": date_handle_util.no_slash_date(month_begin_day)}},
76
- {'date': {"$lt": date_handle_util.no_slash_date(str_day)}}]}
77
- stock_hfq_weekly = mongodb_util.find_query_data('stock_qfq_weekly', query)
78
- week_num = stock_hfq_weekly.shape[0]
79
- if week_num > 0:
80
- stock_hfq_weekly = stock_hfq_weekly.sort_values(by=['date'], ascending=False)
81
- k_line_info['sum_week'] = round(sum(stock_hfq_weekly['chg']), 2)
82
- else:
83
- k_line_info['sum_week'] = 0
84
- k_line_info['week_num'] = week_num
85
- if week_num == 1:
86
- k_line_info['week01'] = stock_hfq_weekly.iloc[0].chg
87
- k_line_info['week02'] = 0
88
- k_line_info['week03'] = 0
89
- k_line_info['week04'] = 0
90
- elif week_num == 2:
91
- k_line_info['week01'] = stock_hfq_weekly.iloc[0].chg
92
- k_line_info['week02'] = stock_hfq_weekly.iloc[1].chg
93
- k_line_info['week03'] = 0
94
- k_line_info['week04'] = 0
95
- elif week_num == 3:
96
- k_line_info['week01'] = stock_hfq_weekly.iloc[0].chg
97
- k_line_info['week02'] = stock_hfq_weekly.iloc[1].chg
98
- k_line_info['week03'] = stock_hfq_weekly.iloc[2].chg
99
- k_line_info['week04'] = 0
100
- elif week_num >= 4:
101
- k_line_info['week01'] = stock_hfq_weekly.iloc[0].chg
102
- k_line_info['week02'] = stock_hfq_weekly.iloc[1].chg
103
- k_line_info['week03'] = stock_hfq_weekly.iloc[2].chg
104
- k_line_info['week04'] = stock_hfq_weekly.iloc[3].chg
105
- elif week_num == 0:
106
- k_line_info['week01'] = 0
107
- k_line_info['week02'] = 0
108
- k_line_info['week03'] = 0
109
- k_line_info['week04'] = 0
110
- k_line_info['week_last_day'] = month_begin_day
111
- k_line_info['sum_week'] = 0
112
- return k_line_info
113
- stock_hfq_weekly = stock_hfq_weekly.sort_values(by=['date'], ascending=False)
114
- stock_hfq_weekly_last = stock_hfq_weekly.iloc[0:1]
115
- k_line_info['week_last_day'] = list(stock_hfq_weekly_last['date'])[0]
116
-
117
- return k_line_info