金融
天數慣例 實際/實際 AFB;Date1 = 2004-02-28 和 Date2 = 2008-02-28 的因子
實際/實際 AFB 天數約定在此處的 Wikipedia 上進行了解釋。我會按照我理解的方式來濃縮這裡的規則。
- 因子 = 天數(日期 1,日期 2)/DiY
- 如果 2 月 29 日在 Date1(含)到 Date2(不含)的日期範圍內,則 DiY=366 否則 DiY=365
- 如果從 Date1 到 Date2 的日期範圍跨越多年,則計算分為兩部分:
+ 從該期間的最後一天算起的完整年數 + 剩餘的初始存根,使用基本規則計算 + ISDA 附加規則:如果倒數多年,如果相關期間的最後一天是 2 月 28 日,則全年應倒數至 2 月 28 日,除非存在 2 月 29 日,在這種情況下應使用 2 月 29 日。
現在考慮情況
Date1 = 2004-02-28
和Date2 = 2008-02-28
。應用規則給出:
- 整整4年
- 日期 2’ = 2004-02-29$$ rebased Date2 by counting back + ISDA additional rule $$
- DiY = 365,因為:Date1 = 2004-02-28,Date2’ = 2004-02-29;2 月 29 日不在 Date1(含)和 Date2’(不含)的日期範圍內,即剩餘的初始存根
- 係數 = 4 + 1/365
但是,在我連結到頂部的 Wikipedia 頁面上的範例中,它顯示了相同的兩個日期
Factor = 4 + 1/366
。哪個因素是正確的?如果維基百科頁面的結果是正確的,我的推理哪裡出錯了?
查看Helin Gai在評論中發布的QuantLib 執行 Act/Act AFB的連結,這將是確定 DiY(變數)的部分:
den
Real den = 365.0; // the DiY if (Date::isLeap(newD2.year())) { temp = Date(29, February, newD2.year()); if (newD2>temp && d1<=temp) den += 1.0; } else if (Date::isLeap(d1.year())) { temp = Date(29, February, d1.year()); if (newD2>temp && d1<=temp) den += 1.0; }
d1
將在 2004-02-28 和newD2
2004-02-29 倒數完整年份並應用 ISDA 附加規則後。應用這段程式碼:
if (Date::isLeap(newD2.year()))
> 真temp = Date(29, February, newD2.year());
> 溫度 = ‘2004-02-29’if (newD2>temp && d1<=temp)
> 錯誤,因為newD2>temp
不成立den
不增加,保持 365;所以根據 QuantLib 的實現,Factor 將是 4 + 1/365。看來我的懷疑是正確的,維基百科上的例子是不正確的。