交易日曆作為金融領域的重要參考工具,能幫助交易者與機構精準把握市場開閉市時間、科學規劃交易策略、並準確計算各類金融產品的現金流與持有期。
目前,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丨高性能分佈式時序數據庫