zoukankan      html  css  js  c++  java
  • QuantLib 金融计算——基本组件之 ExchangeRate 类

    如果未做特别说明,文中的程序都是 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
    

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

  • 相关阅读:
    C语言编程如何实现输出一个回型递增的N阶矩阵(螺旋矩阵)
    cookie测试要点
    一个网页怎么开展测试
    web和app区别
    app功能测试
    复习Linux笔记
    学习python
    微信小程序测试流程
    Redis
    记录
  • 原文地址:https://www.cnblogs.com/xuruilong100/p/10941192.html
Copyright © 2011-2022 走看看