QuantLib 金融计算——收益率曲线之构建曲线(3)

如果未做特别说明,文中的程序都是 python3 代码。

QuantLib 金融计算——收益率曲线之构建曲线(3)

载入 QuantLib 和其他包:

import QuantLib as ql
import seaborn as sb
import numpy as np
import pandas as pd

print(ql.__version__)
1.15

概述

本文展示利用 quantlib-python 根据样本券的交易数据估算出即期利率的期限结构的完整流程,并指出当前实现所存在的问题。

示例所用的样本券交易数据来自专门进行期限结构分析的 R 包——termstrc。具体来说是数据集 govbonds 中的 GERMANY 部分,包含 2008-01-30 这一天德国市场上 52 只固息债的成交数据。

注意:为了适配 QuantLib,实际计算中删除了两只债券的数据,以保证所有样本券的到期时间均不相同。样本券数据在附录中列出。

估算期限结构的步骤

QuantLib 中估算期限结构的核心流程有两步:

  1. 配置 *Helper 对象,描述样本券信息,包括付息时间表(schedule)、价格(默认用净价)、票息等;
  2. 配置期限结构模型,可以额外提供样本券权重、优化方法、参数正则化条件等参数辅助计算。

读取样本券数据

govBond = pd.read_csv(
    'GERMANY_INFO.csv',
    parse_dates=['MATURITYDATE', 'ISSUEDATE'])

numberOfBonds = govBond.shape[0]

PRICE = [
    ql.QuoteHandle(ql.SimpleQuote(p)) for p in govBond['PRICE']]
MATURITYDATE = [
    ql.Date(m.day, m.month, m.year) for m in govBond['MATURITYDATE']]
ISSUEDATE = [
    ql.Date(i.day, i.month, i.year) for i in govBond['ISSUEDATE']]
COUPONRATE = govBond['COUPONRATE'].values

一些基本配置

# 查看 govbonds 数据集可知样本券均为每年付息一次
frequency = ql.Annual
# termstrc 的日期计算并不如 QuantLib 精细,
# 为了和 termstrc 的算法保持一致,示例使用如下天数计算规则
dc = ql.Actual365Fixed(ql.Actual365Fixed.Standard)
paymentConv = ql.Unadjusted
terminationDateConvention = ql.Unadjusted
conventi
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值