收益率曲線
今天與現貨日期曲線建構之間的外推
我正在嘗試使用(存款、FRA 和掉期)工具建構我的 libor 曲線,目標是我的曲線與 murex 曲線匹配,我的參數是:
- 我今天的日期是:23/10/2019
- 我的存款 600 萬合約的開始日期是 25/10/2019 結束日期是 27/04/2020,天數是 act/360,利率 5%
- 我的 fra 6x12m 契約的開始日期是 27/04/2020 結束日期是 27/10/2020,天數轉換是 act/360,利率為 5.2%
我的結果是:
- DF1=0.9749492213947191
- DF2=0.9498417381171556
但正確的結果(來自 murex)是:
- DF1=0.9746818596344575
- DF2=0.9495812616189955
有人可以解釋一下今天和現貨日期曲線建構之間的推斷方式嗎?或者為什麼我得到不同的結果?或者,如果您有針對從業者的曲線建構指南/書籍,會有所幫助嗎?提前致謝。
會不會是 Murex 的折扣係數是指今天的日期而不是結算日期?Murex 的 O/N 和 T/N 率是多少?
試試這個,看看它是否能讓你更接近……
$$ DF_{O/N} = \frac{1}{1+r_{O/N} \times 1 / 360} $$
$$ DF_{T/N} = \frac{DF_{O/N}}{1+r_{T/N} \times 1 / 360} $$
$$ DF_{6M} = \frac{DF_{T/N}}{1+r_{6M} \times 185 / 360} $$
順便說一句,如果您嘗試 4.937182% 的 O/N 和 T/N 率,您將非常接近。
from scipy.optimize import root def get_6m(r): ''' Get 6M DF for a given O/N and T/N rate''' df = lambda r, n: 1 / (1+r * n / 360) df_on = df(r, 1) df_tn = df_on * df(r,1) df_6m = df_tn * df(0.05, 185) return df_6m target = 0.9746818596345 rate = root(lambda r: target - final(r), 0)['x'][0] print(f"Solver result for the O/N and T/N rate: {rate}")
O/N 和 T/N 率的求解器結果:0.04937181969259679
df_6m = get_6m(rate) print(df_6m) df_fra = df_6m / (1 + 0.052 * 183/360) print(df_fra)
0.9746818596344999
0.9495812616190368