返回介绍

第一部分 新手入门

第二部分 股票量化相关

第三部分 基金、利率互换、固定收益类

第四部分 衍生品相关

中国 Repo 7D 互换的例子

发布于 2022-02-20 22:26:20 字数 6924 浏览 1059 评论 0 收藏 0

下面的例子给出在量化实验室中如何为一个Repo 7D互换定价的例子

  • swapType:互换类型,Payer代表付固定端利息,收浮动端利息;
  • nominal:互换面值
  • startDate:互换生效日
  • swapTenor:互换期限
  • paymentTenor:付息周期
  • fixedRate:固定端利息
  • rateSpread:浮动端息差
  • repoIndex:浮动端指数

这里我们使用一条平坦的收益率曲线作为远期曲线:

forwardingCurve = FlatForward(Date(2015, 8, 4), 0.05, 'Actual/360')
from CAL.PyCAL import *

SetEvaluationDate = Date(2015, 8, 4)

swapType = SwapLegType.Payer
nominal = 100000000.
startDate = Date(2015, 8, 7)
swapTenor = Period('10Y')
paymentTenor = Period('3M')
fixedRate = 0.055
rateSpread = 0.0
forwardingCurve = FlatForward(Date(2015, 8, 4), 0.05, 'Actual/360')
repoIndex = RepoChina('7D', yieldCurve)

组装成我们需要的RepoCompoundingSwap

swap = RepoCompoundingSwap(swapType=swapType,
                          nominal=nominal,
                          startDate=startDate,
                          swapTenor=swapTenor,
                          paymentTenor=paymentTenor,
                          fixedRate=fixedRate,
                          rateSpread=rateSpread,
                          repoIndex=repoIndex)

继续的,为了计算swap的现值,我们需要定义DiscountingSwapEngine对象,这里我们同样使用一条平坦的收益率曲线:

discountingCurve = FlatForward(Date(2015, 8, 4), 0.065, 'Actual/360')
pricingEngine = DiscountingSwapEngine(discountingCurve)

swap.setPricingEngine(pricingEngine)

print("NPV: {0:.4f}".format(swap.NPV()))
print("Fair rate: {0:.4f}".format(swap.fairRate()))

NPV: -2282521.8872
Fair rate: 0.0519

下面的是swap每条leg的具体现金流分析:在legAnalysis接受的参数中,0代表固定端,1代表浮动端。

swap.legAnalysis(0).tail()
AMOUNTNOMINALACCRUAL_START_DATEACCRUAL_END_DATEACCRUAL_DAYSINDEXFIXING_DAYSFIXING_DATESINDEX_FIXINGDAY_COUNTERACCRUAL_PERIODEFFECTIVE_RATE
PAYMENT_DATE
2024-08-0713863011e+082024-05-072024-08-0792#NA#NA#NA#NAActual/365 (Fixed)0.25205480.055
2024-11-0713863011e+082024-08-072024-11-0792#NA#NA#NA#NAActual/365 (Fixed)0.25205480.055
2025-02-0713863011e+082024-11-072025-02-0792#NA#NA#NA#NAActual/365 (Fixed)0.25205480.055
2025-05-0713410961e+082025-02-072025-05-0789#NA#NA#NA#NAActual/365 (Fixed)0.24383560.055
2025-08-0713863011e+082025-05-072025-08-0792#NA#NA#NA#NAActual/365 (Fixed)0.25205480.055
swap.legAnalysis(1).tail()
AMOUNTNOMINALACCRUAL_START_DATEACCRUAL_END_DATEACCRUAL_DAYSINDEXFIXING_DAYSFIXING_DATESINDEX_FIXINGDAY_COUNTERACCRUAL_PERIODEFFECTIVE_RATE
PAYMENT_DATE
2024-08-0713069271e+082024-05-072024-08-0792repoChina1W Actual/365 (Fixed)12024-05-060.05072614Actual/3600.25555560.05114062
2024-11-0713069271e+082024-08-072024-11-0792repoChina1W Actual/365 (Fixed)12024-08-060.05072614Actual/3600.25555560.05114062
2025-02-0713095701e+082024-11-072025-02-0792repoChina1W Actual/365 (Fixed)12024-11-060.05073319Actual/3600.25555560.05124405
2025-05-0712658081e+082025-02-072025-05-0789repoChina1W Actual/365 (Fixed)12025-02-060.05073319Actual/3600.24722220.05120122
2025-08-0713069271e+082025-05-072025-08-0792repoChina1W Actual/365 (Fixed)12025-05-060.05072614Actual/3600.25555560.05114062

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文