目錄python
若是未作特別說明,文中的程序都是 python3 代碼。函數
載入 QuantLib:code
import QuantLib as ql print(ql.__version__)
1.15
QuantLib 中描述貨幣之間匯率信息的類是 ExchangeRate
,Currency
體系內的每兩種貨幣均可以生成出一個 ExchangeRate
對象。對象
ExchangeRate
的構造函數很是固定,接受三個參數:get
ExchangeRate(source, target, rate)
source
:一個 Currency
對象,表示源貨幣;target
:一個 Currency
對象,表示目標貨幣;rate
:一個浮點數,表示「source
對 target
」的匯率。經常使用成員函數以下:it
source()
:返回 Currency
對象,即源貨幣;target()
:返回 Currency
對象,即目標貨幣;rate()
:返回浮點數,即匯率;type()
:返回內置的整數常量,
ExchangeRate.Direct
:等於 0,表示該匯率是經過構造函數直接構造的;ExchangeRate.Derived
:等於 1,表示該匯率是經過其餘匯率對象簡間接構造的;exchange(amount)
:amount
是一個 Money
對象,該函數將 amount
轉換成等價值的其餘貨幣;chain(r1, r2)
:r1
和 r2
是 ExchangeRate
對象,所涉及的貨幣必須構成一個三角關係,該函數將返回一個 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