From fd088787bc52e93bbce8f6aeb080fa8f472015aa Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期一, 09 六月 2025 18:13:07 +0800 Subject: [PATCH] 功能完善 --- third_data/history_k_data_manager.py | 46 +++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 45 insertions(+), 1 deletions(-) diff --git a/third_data/history_k_data_manager.py b/third_data/history_k_data_manager.py index cb995d5..3df8182 100644 --- a/third_data/history_k_data_manager.py +++ b/third_data/history_k_data_manager.py @@ -11,6 +11,7 @@ from huaxin_client import l1_subscript_codes_manager from log_module.log import logger_debug from third_data import history_k_data_util +from third_data.history_k_data_util import HistoryKDatasUtils from utils import tool, init_data_util @@ -186,5 +187,48 @@ return codes +@tool.singleton +class TradeDateManager: + # {"鏃ユ湡":鏃ユ湡鍒楄〃} + __date_list_dict = {} + """ + 浜ゆ槗鏃ユ湡绠$悊 + """ + + def __load_dates(self, now_day): + if self.__date_list_dict.get(now_day): + return + # 鑾峰彇鍓嶅悗涓�涓湀鐨勪氦鏄撴棩鏈� + start_date = tool.date_sub(now_day, 30) + end_date = tool.date_sub(now_day, -30) + dates = HistoryKDatasUtils.get_trading_dates(start_date, end_date) + self.__date_list_dict[now_day] = dates + + def get_next_trade_day(self, now_day): + """ + 鑾峰彇涓嬩竴涓氦鏄撴棩 + @param now_day: + @return: + """ + self.__load_dates(now_day) + for day in self.__date_list_dict[now_day]: + if day > now_day: + return day + return None + + def get_previous_trade_day(self, now_day): + """ + 鑾峰彇涓婁竴涓氦鏄撴棩 + @param now_day: + @return: + """ + self.__load_dates(now_day) + for day in reversed(self.__date_list_dict[now_day]): + if day < now_day: + return day + return None + + if __name__ == "__main__": - print(HistoryKDataManager().get_history_bars_codes("2024-12-31")) + print(TradeDateManager().get_next_trade_day("2025-06-09")) + print(TradeDateManager().get_previous_trade_day("2025-06-09")) -- Gitblit v1.8.0