如何获取2024年交易日历?

交易日历是金融领域的重要参考工具,包含了各国的法定节假日、休市日、交易时间调整等信息,能够帮助投资交易者合理安排交易时间、了解市场情况、提高决策的准确性。

DolphinDB 自 2.00.9/1.30.21 版本开始,内置了国内外五十多个交易所的交易日历,同时也支持用户在此基础上,基于场景进行个性化定制。

新的一年即将开启,DolphinDB 提供的交易日历也升级到2024年的全新版本啦!我们为大家提供了离线更新和在线更新两种方式:

  • 离线更新

若采用离线更新方式,可以在 交易日历 下载 marketHoliday 文件夹,并替换 <dolphindb>/server 路径下的 marketHoliday 文件夹。若为集群环境,需要替换每台机器下的对应文件夹。在替换完成后,需要重启集群完成更新。

  • 在线更新

若采用在线更新方式,可以在 交易日历 下载 marketHoliday 文件夹,并放在和 dolphindb 同一服务器的任意位置。若为集群环境,每台机器都需要放置 marketHoliday 文件夹。注意,不能覆盖原本 <dolphindb>/server 路径下的 marketHoliday 文件夹。在替换完成 marketHoliday 文件夹后,可以参照下面的代码实现在线更新:

def update_2024_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{
		addMarketHoliday(market_code, this_holiday.col(0))
	}
}

market_code = "CZCE"  //需要更新的交易所标识码
old_holiday_dir = "<dolphindb>/server/marketHoliday"  //原 marketHoliday 文件夹路径
new_holiday_dir = "<dolphindb>/server/newMarketHoliday" //新 marketHoliday 文件夹路径

update_2024_holiday(market_code, old_holiday_dir, new_holiday_dir)

update_2024_holiday 函数仅对当前节点有效。集群环境中,可通过 pnodeRun 调用该函数,使更新操作在其它节点生效。

需要注意的是,在线更新方式并没有读写锁等保持一致性的机制,所以为了保证用户访问到的是更新过后的交易日历,我们推荐使用离线方式进行更新

  • 验证更新结果

完成更新后,可以执行以下代码验证更新结果:

2024.01.01 in getMarketCalendar("CZCE",2024.01.01, 2024.12.31)

未更新前,该代码将会返回 true;更新完成后,该代码将会返回 false。

DolphinDB 交易日历中包含的国际交易所、中国大陆交易所详细列表,可参考如何使用 DolphinDB 交易日历 - 知乎

预告一下,即将推出的 DolphinDB 2.00.11/1.30.23版本将会内置2024年的交易日历,同时将有一系列功能更新:新增 TSDB 的软删除功能、新增标准 SQL 的 analytical function(或称window fucntion)、新增分账功能、优化异步复制功能……敬请期待!