哈尔滨网站开发公司电话,亚马逊seo什么意思,WordPress 网格布局,哪个网站能叫我做直播回放什么是FRA
FRA#xff08;Forward rate agrreement#xff09;远期利率协议#xff0c;是一种场外衍生品。FRA在0时刻确定#xff0c;在未来时刻进行交易的协议。例如FRA3,6表示双方约定在3个月后以Rk的利率水平借款3个月。
应用场景#xff1a;某公司未来3个月有融资需…什么是FRA
FRAForward rate agrreement远期利率协议是一种场外衍生品。FRA在0时刻确定在未来时刻进行交易的协议。例如FRA3,6表示双方约定在3个月后以Rk的利率水平借款3个月。
应用场景某公司未来3个月有融资需求借款时间为6个月担心未来市场利率过高为了控制融资成本进入了FRA将融资成本锁定。
估值多头方 ( R − R k ) ∗ τ ∗ P r i n c i p a l 1 R f ∗ τ \frac{(R-R_{k})*\tau*Principal}{1R_{f}*\tau} 1Rf∗τ(R−Rk)∗τ∗Principal
举个例子 一个投资者进入FRA合约约定三个月后按照3%的固定利率借入1million假设3个月后市场利率为1%计算该FRA的价格。
$1,000,000(0.01 − 0.03)(0.25) −$5,000 注意该价值为在t1时刻的价值如果求0时刻价值需要折现到0时刻。
代码实现
仍然用到强大的QuantLib包。
ql.ForwardRateAgreement(valueDate, maturityDate, position, strikeForward, notional, iborIndex, discountCurveql.YieldTermStructureHandle())构造FRA合约需要用到几个参数 valueDate估值日 maturityDate到期日 position多头还是空头方 strikeForward约定未来执行利率 notional本金 discountCurve折现曲线需为xxxxhandle对象
构建一个FRA3*6当前日期为2020年6月30日6个月后到期固定利率为1%结算以90天LIBOR为基础。
import QuantLib as ql############ FRA
# 构建几个重要时间
todayDate ql.Date(30, 6, 2020)
ql.Settings.instance().evaluationDate todayDate #将评估日设定为当前日期# 设定按照美国市场的时间因为FRA一般在1年以内所以用act/360计息
calendar ql.UnitedStates(ql.UnitedStates.SOFR)
dayCount ql.Actual360()
compounding ql.Simple
compoundingFrequency ql.Annual# 构建折现的利率曲线
spotDates [todayDate, calendar.advance(todayDate, ql.Period(6, ql.Months)),calendar.advance(todayDate, ql.Period(12, ql.Months))]
spotRates [0.05, 0.05, 0.05]
curve ql.ZeroCurve(spotDates, spotRates, dayCount, calendar, ql.Linear(), ql.Compounded, ql.Semiannual)
yts ql.YieldTermStructureHandle(curve)
index ql.USDLibor(ql.Period(3M), yts)# FRA估值
maturityDate calendar.advance(todayDate, ql.Period(6, ql.Months))
FRA ql.ForwardRateAgreement(calendar.advance(todayDate,ql.Period(3,ql.Months)), maturityDate, ql.Position.Long,0.01, 1e6, index, yts)
print(FRA.NPV())最终得到该FRA价值为9786
几个注意点
构建利率曲线时定义spotDates不要自己手输时间比如2020年6月30日2020年9月30日2021年6月30日因为输入的日期很有可能是非交易日会报错。应该用advance函数。构建FRA函数时第一个参数估值日并非当前时间按照上面的图来看不是0时刻而是t1时刻如果输入的是0时刻得到的估值就是0.