交易日曆作為金融領域的重要參考工具,能幫助交易者與機構精準把握市場開閉市時間、科學規劃交易策略、並準確計算各類金融產品的現金流與持有期。

目前,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 年交易日曆?

我們提供離線和在線兩種更新方式,確保您的生產環境平穩過渡。

方式一:離線更新(推薦用於生產環境)

  1. 訪問 DolphinDB 交易日曆模塊倉庫:dolphindb/DolphinDBModules:
  2. 下載最新的 marketHoliday 文件夾。
  3. 用其替換您 DolphinDB 服務器安裝目錄 <DolphinDB>/server 下的同名文件夾。
  4. 集羣部署請注意:需在每個物理節點上執行此替換操作。
  5. 替換完成後,重啓整個集羣即可生效。此方式能保證數據一致性,是生產環境的首選。

方式二:在線更新

  1. 同樣從上述倉庫下載最新的 marketHoliday 文件夾。
  2. 將其放置在與 DolphinDB 服務同機的任意目錄(例如 /<path>/newMarketHoliday),切勿直接覆蓋原文件夾。
  3. 在 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丨高性能分佈式時序數據庫