Administrator
2025-06-09 fd088787bc52e93bbce8f6aeb080fa8f472015aa
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"))