在哪下载或生成含多国节假日的Timetable Calendar用于股价预测
适用于股价预测场景的多属性时间维度表落地方案
以下方案完全覆盖你需要的日、月、周、多国节假日四类字段,适配KNIME工具,不用从零开始做数据整合:
可直接导入使用的现成日历资源
- 基础时间属性部分:通用公开的标准日历维度表已经默认覆盖日/月/周全量基础字段,包括公历日期、自然年/财年标识、自然月编号、月内日序、ISO标准周数/自然周数、周内日序、是否周末、季度编号等,导出为CSV格式后可直接通过KNIME的
File Reader节点加载使用,不需要自己做粒度拆解。 - 多国节假日部分:目前开源整合的节假日数据集已经覆盖全球100+国家和地区的法定节假日、调休安排、证券市场休市标记,针对股价预测场景,你不需要加载全量国家数据,只需要筛选你研究的证券市场对应的国家/地区字段即可,能减少90%以上的冗余数据,数据集自带节假日类型标签(公共假日/宗教假日/调休补班/交易所休市),不需要手动做规则匹配。
KNIME端快速生成维度表的实现流程
不需要额外切换编程语言,直接用KNIME原生节点组合就能动态生成、更新你需要的时间维度表,步骤如下:
- 添加
Create Date&Time Range节点,设置你需要覆盖的时间范围(股价预测场景通常建议覆盖回测起始点前10年到预测周期结束后1年),时间粒度选择“日”,先生成连续的基础日期序列。 - 添加
Date&Time Part节点,选中上一步生成的日期字段,一键提取年、月、日、周数、星期几、季度等日/月/周维度属性,自动生成对应数据列。 - 多国节假日字段匹配有两种可选方式:
- 零代码方式:导入前面提到的整合好的多国节假日CSV文件,用
Joiner节点将基础日期表和节假日表按「日期+国家/市场代码」做左连接,直接匹配出所有日期对应的节假日标识。 - 动态更新方式:添加
Python Script节点,先在KNIME绑定的Python环境中安装节假日计算依赖,在节点中输入以下代码即可自动批量生成指定国家的节假日字段,不需要手动维护数据源:
- 零代码方式:导入前面提到的整合好的多国节假日CSV文件,用
import pandas as pd import holidays # 按需修改为你需要覆盖的国家/地区代码,对应你研究的各证券市场所属区域 target_countries = ['CN', 'US', 'HK', 'DE', 'JP', 'GB'] # 读取上游节点传入的基础日期序列 date_df = knio.input_tables[0].to_pandas() date_df['date_col'] = pd.to_datetime(date_df['date_col']).dt.date # 循环匹配每个国家的节假日信息 for country_code in target_countries: holiday_cal = holidays.country_holidays(country_code) date_df[f'is_holiday_{country_code}'] = date_df['date_col'].apply(lambda x: x in holiday_cal) date_df[f'holiday_name_{country_code}'] = date_df['date_col'].apply(lambda x: holiday_cal.get(x, '')) # 将处理完成的维度表回传给KNIME下游节点 knio.output_tables[0] = knio.write_table(date_df)
股价预测场景优化提示:所有字段生成完成后,建议新增
is_trading_day标识列,规则设置为「非周末 + 对应市场所在国非节假日 + 非临时休市日」,后续做时序特征工程时可以直接用这列过滤非交易日噪声数据,比单独调用节假日字段效率高很多。
内容的提问来源于stack exchange,提问作者AdamTheEmperor
相关产品推荐
相关产品推荐

