QuantLib 金融計算——基本組件之 ExchangeRate 類

若是未作特別說明,文中的程序都是 python3 代碼。函數

QuantLib 金融計算——基本組件之 ExchangeRate 類

載入 QuantLib:code

import QuantLib as ql

print(ql.__version__)
1.15

概述

QuantLib 中描述貨幣之間匯率信息的類是 ExchangeRateCurrency 體系內的每兩種貨幣均可以生成出一個 ExchangeRate 對象。對象

構造函數

ExchangeRate 的構造函數很是固定,接受三個參數:get

ExchangeRate(source,
             target,
             rate)
  • source:一個 Currency 對象,表示源貨幣;
  • target:一個 Currency 對象,表示目標貨幣;
  • rate:一個浮點數,表示「sourcetarget」的匯率。

成員函數

經常使用成員函數以下:it

  • source():返回 Currency 對象,即源貨幣;
  • target():返回 Currency 對象,即目標貨幣;
  • rate():返回浮點數,即匯率;
  • type():返回內置的整數常量,
    • ExchangeRate.Direct:等於 0,表示該匯率是經過構造函數直接構造的;
    • ExchangeRate.Derived:等於 1,表示該匯率是經過其餘匯率對象簡間接構造的;
  • exchange(amount)amount 是一個 Money 對象,該函數將 amount 轉換成等價值的其餘貨幣;
  • chain(r1, r2)r1r2ExchangeRate 對象,所涉及的貨幣必須構成一個三角關係,該函數將返回一個 ExchangeRate 對象,補全三角關係中缺失的一邊。

示例,io

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

結果會根據貨幣的類型自動四捨五入。class

相關文章
相關標籤/搜索