如果未做特别说明,文中的程序都是 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. html、css/bootStrap、js/Jquery、ajax与json数据交互总结

    设计个个人网站,利用CSS.JavaScript.HTML5.jQuery库和AJAX等 实现网站各功能模块,下面介绍我设计的网站各大功能模块:  个人简历模块: 包涵个人基本信息(利用CSS的flo ...

  2. EF自动创建数据库步骤之一(实体类写法)

    文章演示使用EF自动创建数据库第一个步骤创建实体类. 一.创建表映射实体类 using System; using System.Collections.Generic; using System.C ...

  3. PHP生成唯一用户标识GUID

    代码如下: //生成唯一用户标识id function create_guid() { $charid = strtoupper(md5(uniqid(mt_rand(), true))); $hyp ...

  4. thinkphp路由配置route.php

    路由设置配置 打开route.php  引入Route控制器类(use think\Route;) 设置路由-->  Route::rule('路由表达式','路由地址','请求类型','路由参 ...

  5. QPainter绘制图片填充方式(正常大小、剪切大小、自适应大小、平铺)

    Qt中QPainter提供了绘制图像的API,极大地方便了我们对图像的绘制. Qt中提供了QPixmap, QBitmap,QBitMapQImage,QPicture等图像绘图设备,它们的类关系如下 ...

  6. Fortify漏洞之Portability Flaw: File Separator 和 Poor Error Handling: Return Inside Finally

    继续对Fortify的漏洞进行总结,本篇主要针对 Portability Flaw: File Separator 和  Poor Error Handling: Return Inside Fina ...

  7. c# 开发+MySql数据库

    今天就一个客户端的任务:1.把Excel文件转成特定格式插入到数据库中:2.查出该文件,并且导出Excel文件:3.如果插入数据错误,则把刚插入的数据删除掉.感觉比较简单,可是,墨迹了一天呀....总 ...

  8. Fundebug 微信小程 BUG 监控插件更新至 1.2.1,优化错误上报次数的限制算法,新增 silentHttpHeader 配置选项

    摘要: 1.2.1优化错误上报次数的限制算法,新增silentHttpHeader配置选项,请大家及时更新哈! Fundebug提供专业的微信小程序 BUG 监控服务,可以第一时间为您捕获生存环境中小 ...

  9. Python从零开始——解释器

  10. 如何检查linux服务器是否被入侵

    被入侵服务器的症状 当服务器被没有经验攻击者或者自动攻击程序入侵了的话,他们往往会消耗 100% 的资源.他们可能消耗 CPU 资源来进行数字货币的采矿或者发送垃圾邮件,也可能消耗带宽来发动 DoS ...