| | |
| | | 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 |
| | | |
| | | |
| | |
| | | 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")) |