QuantLib 金融计算——基本组件之 InterestRate 类

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

QuantLib 金融计算——基本组件之 InterestRate

围绕收益率展开的若干计算(如计算贴现因子)是固定收益分析中最基础的部分。同时,由于固定收益产品在付息频率、计息方式、天数计算规则等细节方面的多样性,这一块的计算显得更加复杂繁琐。QuantLib 将与收益率有关的计算整合封装在 InterestRate 类,用户所作的只是按照规定配置特定的参数。

载入 QuantLib:

import QuantLib as ql

print(ql.__version__)
1.12

InterestRate 对象的构造

InterestRate 对象的构造需要四个参数,

InterestRate(r,
             dc,
             comp,
             freq)

这些变量的类型和解释如下:

  • r,浮点数,收益率大小;
  • dcDayCounter 对象,配置天数计算规则;
  • comp,整数,配置计息方式,取值范围是 quantlib-python 的一些预留变量;
  • freq,整数,配置付息频率,取值范围是 quantlib-python 的一些预留变量。

目前 quantlib-python 支持的计息方式有:

  • Simple,\(1 + r\tau\),单利
  • Compounded,\((1 + r)^\tau\),复利
  • Continuous,\(e^{r\tau}\),连续复利

目前 quantlib-python 支持的计息方式有很多:

  • NoFrequency,无付息;
  • Once,付息一次,常见于零息债券;
  • Annual,每年付息一次;
  • Semiannual,每半年付息一次;
  • EveryFourthMonth,每 4 个月年付息一次;
  • Quarterly,每季度付息一次;
  • Bimonthly,每两个月付息一次;
  • Monthly,每月付息一次;
  • EveryFourthWeek,每 4 周付息一次;
  • Biweekly,每两周付息一次;
  • Weekly,每周付息一次;
  • Daily,每天付息一次。

一些常用的成员函数

下面是一些常用的成员函数:

  • rate():浮点数,返回收益率的值;
  • dayCounter()DayCounter 对象,返回控制天数计算规则的成员变量;
  • compounding():整数,返回计息方式;
  • frequency():整数,返回付息频率。
  • discountFactor(d1, d2):浮点数,d1d2 都是 Date 型对象(d1 < d2),返回 d1d2 的贴现因子大小;
  • compoundFactor(d1, d2):浮点数,d1d2 都是 Date 型对象(d1 < d2),返回 d1d2 的付息因子大小;
  • equivalentRate(resultDC, comp, freq, d1, d2)InterestRate 对象,返回某个与当前对象等价的 InterestRate 对象,该对象的配置参数包括 resultDCcompfreq
    • d1d2 都是 Date 型对象(d1 < d2
    • resultDCDayCounter 对象,配置天数计算规则;
    • comp,整数,配置计息方式,取值范围是 quantlib-python 的一些预留变量;
    • freq,整数,配置付息频率,取值范围是 quantlib-python 的一些预留变量。

某些情况下需要根据付息因子的大小逆算收益率,InterestRate 类提供了函数 impliedRate 实现这一功能:

  • impliedRate(compound, resultDC, comp, freq, d1, d2)InterestRate 对象,返回逆算出的 InterestRate 对象,该对象的配置参数包括 resultDCcompfreq

    • d1d2 都是 Date 型对象(d1 < d2
    • resultDCDayCounter 对象,配置天数计算规则;
    • comp,整数,配置计息方式,取值范围是 quantlib-python 的一些预留变量;
    • freq,整数,配置付息频率,取值范围是 quantlib-python 的一些预留变量。

例子1:

def InterestRate1():
    dc = ql.ActualActual()
    myRate = ql.InterestRate(
        0.0341, dc, ql.Simple, ql.Annual)

    print(‘Rate:‘, myRate)

    d1 = ql.Date(10, ql.September, 2009)
    d2 = d1 + ql.Period(3, ql.Months)
    compFact = myRate.compoundFactor(d1, d2)

    print(‘Compound Factor: ‘, compFact)
    print(‘Discount Factor: ‘, myRate.discountFactor(d1, d2))
    print(
        ‘Equivalent Rate: ‘,
        myRate.equivalentRate(
            dc, ql.Continuous, ql.Semiannual, d1, d2))

    implRate = ql.InterestRate.impliedRate(
        compFact, dc, ql.Simple, ql.Annual, d1, d2)

    print(‘Implied Rate from Comp Fact : ‘, implRate)

InterestRate1()
Rate: 3.410000 % Actual/Actual (ISDA) simple compounding
Compound Factor:  1.0085016438356165
Discount Factor:  0.9915700248109837
Equivalent Rate:  3.395586 % Actual/Actual (ISDA) continuous compounding
Implied Rate from Comp Fact :  3.410000 % Actual/Actual (ISDA) simple compounding

原文地址:https://www.cnblogs.com/xuruilong100/p/9219043.html

时间: 2024-10-10 16:21:43

QuantLib 金融计算——基本组件之 InterestRate 类的相关文章

QuantLib 金融计算——基本组件之 Date 类

QuantLib 金融计算--基本组件之 Date 类 QuantLib 将金融领域的日期对象抽象为 Date 类,并提供了丰富的计算函数.需要注意的是,quantlib-python 中的 Date 类并不同于 python 自身包含的 datetime 类,也没有继承关系. 载入 QuantLib: import QuantLib as ql print(ql.__version__) 1.10 Date 对象的构造 Date 对象的构造方式有两种,分别是 Date(serialNumber

QuantLib 金融计算——基本组件之 ExchangeRateManager 类

目录 QuantLib 金融计算--基本组件之 ExchangeRateManager 类 概述 Money 类中的汇率转换配置 ExchangeRateManager 函数 如果未做特别说明,文中的程序都是 python3 代码. QuantLib 金融计算--基本组件之 ExchangeRateManager 类 载入 QuantLib: import QuantLib as ql print(ql.__version__) 1.15 概述 QuantLib 中管理货币之间汇率信息的类是 E

QuantLib 金融计算

QuantLib 金融计算 QauntLib 入门 基本组件之 Date 类 基本组件之 Calendar 类 原文地址:https://www.cnblogs.com/xuruilong100/p/8711520.html

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

目录 QuantLib 金融计算--收益率曲线之构建曲线(1) YieldTermStructure DiscountCurve DiscountCurve 对象的构造 ZeroCurve ZeroCurve 对象的构造 如果未做特别说明,文中的程序都是 Python3 代码. QuantLib 金融计算--收益率曲线之构建曲线(1) 理论和实践上有多种方法可以构建与市场一致的收益率曲线,背后的方法论取决于市场上的可获得金融工具的流动性.在构建收益率曲线时有两个选项必须选定好:插值方法和所选的金

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

目录 QuantLib 金融计算--收益率曲线之构建曲线(2) YieldTermStructure 问题描述 Piecewise** 分段收益率曲线的原理 Piecewise** 对象的构造 FittedBondDiscountCurve FittedBondDiscountCurve 的原理 FittedBondDiscountCurve 的构造 FittingMethod 类 拟合曲线 如果未做特别说明,文中的程序都是 Python3 代码. QuantLib 金融计算--收益率曲线之构建

QuantLib 金融计算——数学工具之求解器

目录 QuantLib 金融计算--数学工具之求解器 概述 调用方式 非 Newton 算法(不需要导数) Newton 算法(需要导数) 如果未做特别说明,文中的程序都是 Python3 代码. QuantLib 金融计算--数学工具之求解器 载入模块 import QuantLib as ql import scipy from scipy.stats import norm print(ql.__version__) 1.12 概述 QuantLib 提供了多种类型的一维求解器,用以求解单

QuantLib 金融计算——数学工具之随机数发生器

目录 QuantLib 金融计算--数学工具之随机数发生器 概述 伪随机数 正态分布(伪)随机数 拟随机数 HaltonRsg SobolRsg 两类随机数的收敛性比较 如果未做特别说明,文中的程序都是 Python3 代码. QuantLib 金融计算--数学工具之随机数发生器 载入模块 import QuantLib as ql import scipy print(ql.__version__) 1.12 概述 随机模拟通常从产生均匀分布的随机数开始.假设 \(X \sim U [0, 1

QuantLib 金融计算——随机过程之概述

目录 QuantLib 金融计算--随机过程之概述 框架 用法与接口 如果未做特别说明,文中的程序都是 Python3 代码. QuantLib 金融计算--随机过程之概述 载入模块 import QuantLib as ql print(ql.__version__) 1.12 框架 随机过程是金融工程中的一个核心概念,是沟通理论分析和计算实践的枢纽.quantlib-python 提供了一组成体系的类架构用于描述实际中最常见到的几种随机过程,以 1.12 版本为例: C++ 版本的实现提供了

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

目录 QuantLib 金融计算--收益率曲线之构建曲线(4) 概述 三次样条函数与期限结构 knots 的选择 实现三次样条函数 实现拟合方法 测试 参考文献 如果未做特别说明,文中的程序都是 C++11 代码. QuantLib 金融计算--收益率曲线之构建曲线(4) 本文代码对应的 QuantLib 版本是 1.15.相关源代码可以在 QuantLibEx 找到. 概述 QuantLib 中提供了用三次 B 样条函数拟合期限结构的功能,但是,并未提供使用三次样条函数拟合期限结构的功能.本文