交易日历作为金融领域的重要参考工具,能帮助交易者与机构精准把握市场开闭市时间、科学规划交易策略、并准确计算各类金融产品的现金流与持有期。
目前,DolphinDB 内置了涵盖全球近六十个主要交易所的交易日历,并支持用户灵活定制,以满足多样化、场景化的业务需求。
2026年即将到来,DolphinDB 交易日历年度更新如期而至,并带来一项重要功能扩展!
交易日历升级:新增关键金融市场日历
在 DolphinDB 的交易日历中,支持通过指定 dateType 参数为 “tradingDate” 来定义一组明确的交易日列表,这完美解决了因调休导致的周末交易日等特殊场景问题。
今年,我们在此基础上,新增「中国外汇交易中心」的官方交易日历 CFET 。
此日历对于固定收益、外汇及衍生品(FICC)业务至关重要。许多FICC相关函数(如计算债券应计利息、现金流日期调整等)都依赖于此日历来判定资金结算日。与常见的股票、期货交易所日历不同,银行间市场遵循其独特的作息安排,在 CFET 日历中,周末也可能被定义为交易日。因此,CFET 日历文件中的数据直接提供了交易日期(Trading Date),而非休市日期。
用户同样可以通过 addMarketHoliday 函数并设置 dateType="tradingDate" 来添加或更新此类日历。例如,若要创建一个包含特殊交易日安排的日历:
// 假设2026年某几个周末为交易日 tradingDates =[2026.04.04,2026.04.05,2026.04.11,2026.04.12] addMarketHoliday(marketName="FICC", holiday=tradingDates, dateType=`tradingDate) getMarketCalendar("FICC")
// 输出:2026.04.04 2026.04.05 2026.04.11 2026.04.12
核心区别
- dateType = “tradingDate”:传入的列表是所有交易日。系统将据此反推休息日。适用于CFET或自定义特殊日历。
- dateType = “holidayDate”(默认):传入的列表仅为非周末的休市日(如法定节假日)。系统默认周末休市。适用于大多数交易所日历。
您可以使用以下函数查询已有日历的类型:
getTradingCalendarType("CFET") // 返回 “tradingDate”
如何更新 2026 年交易日历?
我们提供离线和在线两种更新方式,确保您的生产环境平稳过渡。
方式一:离线更新(推荐用于生产环境)
- 访问 DolphinDB 交易日历模块仓库:dolphindb/DolphinDBModules:
- 下载最新的 marketHoliday 文件夹。
- 用其替换您 DolphinDB 服务器安装目录 <DolphinDB>/server 下的同名文件夹。
- 集群部署请注意:需在每个物理节点上执行此替换操作。
- 替换完成后,重启整个集群即可生效。此方式能保证数据一致性,是生产环境的首选。
方式二:在线更新
- 同样从上述仓库下载最新的 marketHoliday 文件夹。
- 将其放置在与 DolphinDB 服务同机的任意目录(例如 /<path>/newMarketHoliday),切勿直接覆盖原文件夹。
- 在 DolphinDB 中执行以下更新脚本:
def update_2026_holiday(market_code, old_holiday_dir, new_holiday_dir){
old_holiday_files = exec filename.strReplace(".csv","") from files(old_holiday_dir)
new_holiday_files = exec filename.strReplace(".csv","") from files(new_holiday_dir)
if (!(market_code in new_holiday_files)){
return "There is no market holiday file of the exchange."
}
this_holiday = loadText(new_holiday_dir+'/'+market_code+".csv")
if (market_code in old_holiday_files){
updateMarketHoliday(market_code,this_holiday.col(0))
}
else{ getMarketType = extractTextSchema(new_holiday_dir+'/'+market_code+".csv").name[0] addMarketHoliday(market_code, this_holiday.col(0),getMarketType)
}
} market_code = "CFET"
//需要更新的交易所标识码 old_holiday_dir = "<dolphindb>/server/marketHoliday"
//原 marketHoliday 文件夹路径 new_holiday_dir = "<dolphindb>/server/newMarketHoliday"
//新 marketHoliday 文件夹路径 update_2026_holiday(market_code, old_holiday_dir, new_holiday_dir)
4. 集群部署:通过 pnodeRun(update_2026_holiday, market_code, old_holiday_dir, new_holiday_dir) 函数在所有数据节点上执行更新。注意:在线更新虽便捷,但在高并发场景下可能存在短暂的不一致窗口。对于关键业务,我们仍强烈推荐使用离线更新方式。
验证更新结果
更新完成后,您可以轻松验证日历是否已生效:
// 验证CFET日历:检查一个已知的2026年节假日是否在交易日历中(即false为正确)
2026.01.01 in getMarketCalendar("CFET",2026.01.01,2026.01.31)
// 预期更新后返回:false
// 验证传统假日日历(如上交所XSHG):检查2026年元旦是否是交易日
2026.01.01 in getMarketCalendar("XSHG",2026.01.01,2026.01.31)
// 预期返回:false
//验证传统假日日历(如上交所XSHG):检查2026年1月5日是否是交易日
2026.01.05 in getMarketCalendar("CFET",2026.01.01,2026.01.31)
// 预期返回:true
总结
DolphinDB 2026年交易日历的更新,不仅包含了全球主要交易所的最新假日安排,更重要的是一次对金融业务场景支持广度的深化。新增的「中国外汇交易中心(CFET)日历」直接服务于蓬勃发展的FICC业务,使得 DolphinDB 在债券定价、风险管理和衍生品结算等核心金融计算领域提供了更专业、更精准的时间基准。
立即更新您的 DolphinDB 交易日历,为2026年的金融数据分析与交易系统准备好最坚实的时间基石!
相关资源:
- 交易日历模块 GitHub: https://github.com/dolphindb/DolphinDBModules/tree/master/MarketHoliday
- DolphinDB 官方网站: DolphinDB丨高性能分布式时序数据库
2071

被折叠的 条评论
为什么被折叠?



