探討「假日檔產生工具」底層邏輯與外國基金 T+n 結算應用
在金融交易中,「日期」代表著資金的流動與成本。
實務痛點:
一般日曆日 (Calendar Days) 無法反映市場開市狀況。若算錯結算日,將導致資金閒置、違約交割或利息損失。
本節邏輯源自內部自動化體系的智慧結晶:
記載了大量自動化工具的運作原理,其中針對「假日檔產生工具」與「國外基金申購匯款日計算工具」的演算法,是我們今日探討的基石。
要計算未來的營業日,系統並非一天天去「數」,而是建立一個精準的休假日資料庫 (Holiday Array) 進行陣列過濾。
構成這個資料庫的三大要素:
平時是營業日,但因為特殊節慶被宣告為「休假」的日子。
作用:增加休假天數。
平時是休假日(週末),但因為彈性放假機制被宣告為「營業(補班)」的日子。
作用:減少休假天數 (從休假陣列中剔除)。
適用於無彈性補班機制的市場,或純粹計算基礎休假。
演算法表現:
系統將全年所有的週末抓出,並加入國定假日名單。取聯集 (Union) 即可得到該年度的完整休假陣列。
這是我國金融環境最常見的模式,完美處理「彈性放假與補班」。
演算法表現:
先結合週末與國定假日(聯集),然後再將政府宣告的「補班日」從這個休假陣列中拔除 (差集 Difference)。
產生 52 週
六日陣列
聯集 (+)
正面表列節日
判斷 Flag
Y / N
差集 (-)
負面表列補班
產生出精準的「假日陣列」後,我們才能夠正確運行:
根據《自動化作業工具操作手冊彙編》的規範,工具能自動計算前後五個營業日的日期。這背後仰賴的就是強大的假日陣列比對。
假設今天是 T 日 (Trade Date),要推算 T+3:
Step 1: 將日期 +1 天。
Step 2: 檢查新日期是否存在於「假日陣列」中。
Step 3: 若是假日,跳過不計;若非假日,計數器 (n) 加 1。
Step 4: 重複迴圈,直到計數器達到 3。
買賣國外基金,不能只看單一國家的假日!
交集結算日:
一筆申購往往牽涉:投資地 (如 US)、結算地 (如 LU 盧森堡)、發行地 (如 HK 香港) 與在地結算日。必須同時載入多國的假日陣列進行比對。
遇到多國結算,系統如何判定某一天是否為「營業日」?
只要任何一個關鍵國家放假,當天就無法進行跨國清算,必須順延至下一個「所有國家共同的工作日」。
根據自動化手冊的防呆與維護守則:
開放提問交流
Thanks for your attention.