新闻

快来更新你的 2025 年交易日历吧!

2024.12.30

交易日历是金融领域的重要参考工具,能够帮助投资交易者科学规划交易时间、掌握市场动态。

目前,DolphinDB 内置了国内外近六十个交易所的交易日历也支持用户根据具体场景进行个性化定制。

2025 年即将到来,DolphinDB 交易日历也上新啦!

交易日历功能新升级

自  DolphinDB 2.00.12/3.00.0 版本起,交易日历的添加功能支持自定义周六/周日的交易日。相比于之前只能添加休息日并且默认周末为休市日的方式,现在可以支持传入所有自定义交易日,避免周末也是交易日的问题。

用户可以通过将 addMarketHoliday(marketName, holiday, [dateType = 'holidayDate']) 函数中的 dateType 这一参数指定为 “tradingDate” ( dateType="tradingDate" ),自定义这类交易日历。

例如,2025 年 2 月 8 日是周六,但因调休开盘,那么我们可以将所有交易日添加进交易日历,设定含有周末的交易日历(注意,需要将所有交易日添加进去):

tradingDates=[2025.02.08, 2025.02.10, 2025.02.11, 2025.02.12, 2025.02.13]
addMarketHoliday(marketName="AAAA", holiday=tradingDates, dateType='tradingDate')
getMarketCalendar(marketName="AAAA")
//	2025.02.08	2025.02.10	2025.02.11	2025.02.12	2025.02.13

这类 dateType 为 “tradingDate“ 的交易日历,在添加或更新的时候,需要将所有交易日填入交易日历中;dateType 为 “holidayDate“ 的交易日历,在添加或更新的时候,只需要将非周六/周日的休盘日填入。

如需查看不同交易日历的 dateType 属性,可以使用 getTradingCalendarType(marketName) 函数:

getTradingCalendarType("AAAA")
//"tradingDate"

如何更新?

大家可以通过离线在线两种方式更新 2025 年交易日历,具体操作如下:

离线更新

前往 https://gitee.com/dolphindb/DolphinDBModules/tree/master/MarketHoliday/marketHoliday

下载 marketHoliday 文件夹,并替换 <dolphindb>/server 路径下的 marketHoliday 文件夹。若为集群环境,需要替换每台机器下的对应文件夹。替换完成后,重启集群完成更新。

在线更新

前往 https://gitee.com/dolphindb/DolphinDBModules/tree/master/MarketHoliday/marketHoliday

下载 marketHoliday 文件夹,并放在和 dolphindb 同一服务器的任意位置。若为集群环境,每台机器都需要放置 marketHoliday 文件夹。(注意,为了验证是否更新成功,请不要覆盖原本 <dolphindb>/server 路径下的 marketHoliday 文件夹。)替换完成后,参照以下代码实现在线更新:

def update_2025_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_2025_holiday(market_code, old_holiday_dir, new_holiday_dir)

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

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

验证更新结果

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

2025.01.01 in getMarketCalendar("CZCE",2025.01.01, 2025.12.31)

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


目前,DolphinDB 交易日历中包含的中国大陆交易所及 ISO 代码如下所示:

同时还覆盖纽交所、伦交所、泛欧交易所等 52 家主要国际交易所,为投资者提供全面多元的市场日历信息。

若想了解最新交易日历教程及完整交易所列表,可前往 https://docs.dolphindb.cn/zh/modules/MarketHoliday/mkt_calendar.html 查看。