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

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

载入 QuantLib:

import QuantLib as ql

print(ql.__version__)
1.15

概述

QuantLib 中描述货币之间汇率信息的类是 ExchangeRateCurrency 体系内的每两种货币都可以生成出一个 ExchangeRate 对象。

构造函数

ExchangeRate 的构造函数非常固定,接受三个参数:

ExchangeRate(source,
target,
rate)
  • source:一个 Currency 对象,表示源货币;
  • target:一个 Currency 对象,表示目标货币;
  • rate:一个浮点数,表示“sourcetarget”的汇率。

成员函数

常用成员函数如下:

  • source():返回 Currency 对象,即源货币;
  • target():返回 Currency 对象,即目标货币;
  • rate():返回浮点数,即汇率;
  • type():返回内置的整数常量,
    • ExchangeRate.Direct:等于 0,表示该汇率是通过构造函数直接构造的;
    • ExchangeRate.Derived:等于 1,表示该汇率是通过其他汇率对象简间接构造的;
  • exchange(amount)amount 是一个 Money 对象,该函数将 amount 转换成等价值的其他货币;
  • chain(r1, r2)r1r2ExchangeRate 对象,所涉及的货币必须构成一个三角关系,该函数将返回一个 ExchangeRate 对象,补全三角关系中缺失的一边。

示例,

import QuantLib as ql
usd = ql.USDCurrency()
cny = ql.CNYCurrency() usdTocny = ql.ExchangeRate(usd, cny, 6.85) m_usd = 1.32 * usd
m_cny = 5.32 * cny print(
'Converting from USD: ', m_usd, ' = ',
usdTocny.exchange(m_usd))
print(
'Converting from CNY: ', m_cny, ' = ',
usdTocny.exchange(m_cny)) print(usdTocny.source())
print(usdTocny.target())
print(usdTocny.rate()) eur = ql.EURCurrency() cnyToeur = ql.ExchangeRate(eur, cny, 7.73) usdToeur = ql.ExchangeRate.chain(usdTocny, cnyToeur) m_eur = 1000.0 * eur print(
'Converting from EUR: ', m_eur, ' = ',
usdToeur.exchange(m_eur)) print(usdTocny.type() == ql.ExchangeRate.Direct)
print(usdToeur.type() == ql.ExchangeRate.Derived)
Converting from USD:  $ 1.32  =  Y 9.04
Converting from CNY: Y 5.32 = $ 0.78
U.S. dollar
Chinese yuan
6.85
Converting from EUR: EUR 1000.00 = $ 1128.47
True
True

结果会根据货币的类型自动四舍五入。

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

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

    目录 QuantLib 金融计算--基本组件之 ExchangeRateManager 类 概述 Money 类中的汇率转换配置 ExchangeRateManager 函数 如果未做特别说明,文中的 ...

  2. QuantLib 金融计算——基本组件之 Currency 类

    目录 QuantLib 金融计算--基本组件之 Currency 类 概述 构造函数 成员函数 如果未做特别说明,文中的程序都是 python3 代码. QuantLib 金融计算--基本组件之 Cu ...

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

    目录 QuantLib 金融计算--基本组件之 Date 类 Date 对象的构造 一些常用的成员函数 一些常用的静态函数 为估值计算配置日期 如果未做特别说明,文中的程序都是 Python3 代码. ...

  4. QuantLib 金融计算——基本组件之 Calendar 类

    目录 QuantLib 金融计算--基本组件之 Calendar 类 Calendar 对象的构造 一些常用的成员函数 自定义假期列表 工作日修正 如果未做特别说明,文中的程序都是 Python3 代 ...

  5. QuantLib 金融计算——基本组件之 DayCounter 类

    目录 QuantLib 金融计算--基本组件之 DayCounter 类 DayCounter 对象的构造 一些常用的成员函数 如果未做特别说明,文中的程序都是 Python3 代码. QuantLi ...

  6. QuantLib 金融计算——基本组件之 DateGeneration 类

    目录 QuantLib 金融计算--基本组件之 DateGeneration 类 QuantLib 金融计算--基本组件之 DateGeneration 类 许多产品的估值依赖于对未来现金流的分析,因 ...

  7. QuantLib 金融计算——基本组件之 Schedule 类

    目录 QuantLib 金融计算--基本组件之 Schedule 类 Schedule 对象的构造 作为"容器"的 Schedule 对象 一些常用的成员函数 如果未做特别说明,文 ...

  8. QuantLib 金融计算——基本组件之 Index 类

    目录 QuantLib 金融计算--基本组件之 Index 类 QuantLib 金融计算--基本组件之 Index 类 Index 类用于表示已知的指数或者收益率,例如 Libor 或 Shibor ...

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

    目录 QuantLib 金融计算--基本组件之 InterestRate 类 InterestRate 对象的构造 一些常用的成员函数 如果未做特别说明,文中的程序都是 Python3 代码. Qua ...

随机推荐

  1. ASP.NET Core部署IIS问题总结

    部署准备工作 1.服务器开启添加IIS相关功能 1.1. 点击windows搜索到   “启用或关闭windows功能” 1.2 选择添加IIS的部分功能, 如下图所示 2.进入IIS,添加已经发布的 ...

  2. 阻止鼠标右键和F5刷新

    //禁止刷新的事件发生 document.onkeydown = function(){ if(event.keyCode==116){ event.keyCode = 0; event.cancel ...

  3. 设计模式之代理模式(proxy pattern)

    代理模式的本质是一个中间件,主要目的是解耦合服务提供者和使用者.使用者通过代理间接的访问服务提供者,便于后者的封装和控制.是一种结构性模式. 1.目的 为外部调用者提供一个访问服务提供者的代理对象. ...

  4. JavaScript 弹出框

    JavaScript 有三种类型的弹出框:警告框.确认框和提示框. 警告框 如果要确保信息传递给用户,通常会使用警告框. 当警告框弹出时,用户将需要单击“确定”来继续. 语法 window.alert ...

  5. Java数据类型(2)------自动封装拆箱

    目的: 自动装箱和拆箱从Java 1.5开始引入,目的是将原始类型值转自动地转换成对应的对象,以使用对象的API和引用类型操作.自动装箱与拆箱的机制可以让我们在Java的变量赋值或者是方法调用等情况下 ...

  6. json序列化时间日期数据注意

    通过json序列化时间日期格式数据的时候需要注意,不能直接序列化,我写了一个类,可以借用 import json from datetime import datetime,date a = {'na ...

  7. 网传英特尔酷睿第十代桌面处理器(Comet Lake 14nm)规格

    自从农企(AMD)2016年开始崛起时,牙膏厂(英特尔)就开始发力,陆续两代推出性价比颇高的桌面处理器, 第八代.第九代酷睿桌面处理器相当的给力,而第十代酷睿桌面处理器会很猛啊,据传从酷睿i3到酷睿i ...

  8. 使用WIFI网卡的AP功能

    前几篇博客中,wifi无线网卡都工作于STA模式,那么它能否工作于AP模式.本篇博客就研究使wifi 无线网卡工作于AP模式.使用一个应用程序hostapd,关于它的介绍可以去此网站https://w ...

  9. 解决tomcat出现乱码问题---韦大仙

    1. 改这两个文件 URIEncoding="UTF-8" 2.然后重启idea

  10. Oracle存储过程常用语法及其使用

    1.什么是存储过程 存储过程Procedure是一组为了完成特定功能的SQL语句集合,经编译后存储在数据库中,用户通过指定存储过程的名称并给出参数来执行.它可以接受参数.输出参数,并可以返回单个或多个 ...