目錄python
若是未作特別說明,文中的程序都是 python3 代碼。函數
載入 QuantLib:code
import QuantLib as ql print(ql.__version__)
1.15
QuantLib 中描述貨幣基本信息的類是 Currency
及其派生類,Currency
的體系很龐雜,但層次結構很簡單。整個類的繼承結構分爲兩層:Currency
做爲惟一的基類;一種貨幣對應一個派生類,例如表示美圓的 USDCurrency
,表示人民幣的 CNYCurrency
以及表示日元的 JPYCurrency
,等等。orm
Currency
及其派生類的構造函數不接受參數,須要注意的是,基類 Currency
是能夠實例化的。對象
Currency
及其派生類的成員函數基本上做爲類的檢查器出現,直白地提供一些描述性的信息。繼承
經常使用成員函數以下:字符串
name()
:返回字符串,貨幣的名稱;code()
:返回字符串,貨幣的 ISO4217 代碼,一般是三個大寫英文字母;numericCode()
:返回整數,貨幣的 ISO4217 代碼對應的數字;symbol()
:返回字符串,即現實世界中經常使用於表示該貨幣的一個符號,美圓的話就是「$」,日元的話就是「¥」。須要注意的是,該函數返回的多是 Unicode,在 python 中可能致使程序運行失敗;fractionSymbol()
:返回字符串,即現實世界中經常使用於表示該貨幣最小單位的一個符號,和 symbol()
同樣,該函數返回的多是 Unicode,在 python 中可能致使程序運行失敗;fractionsPerUnit()
:返回整數,一單位貨幣相對於該貨幣最小單位的倍數,一般是 100。format()
:返回字符串,一個用於格式化打印結果的「格式化字符串」。empty()
:返回布爾值,若是對象由派生類實例化,則返回 True
;若是對象由 Currency
實例化,則返回 False
,畢竟基類對象中貨幣信息是「空」的。rounding()
:返回一個 Rounding
對象,即該貨幣舍入的規則,默認不進行舍入。示例,it
import QuantLib as ql usd = ql.USDCurrency() cny = ql.CNYCurrency() print('{0:<20}{1}'.format('USDCurrency', 'CNYCurrency')) print('{0:<20}{1}'.format(usd.name(), cny.name())) print('{0:<20}{1}'.format(usd.code(), cny.code())) print('{0:<20}{1}'.format(usd.numericCode(), cny.numericCode())) print('{0:<20}{1}'.format(usd.symbol(), cny.symbol())) # print('{0:<20}{1}'.format(usd.fractionSymbol(), cny.fractionSymbol())) print('{0:<20}{1}'.format(usd.fractionsPerUnit(), cny.fractionsPerUnit())) print('{0:<20}{1}'.format(usd.format(), cny.format())) c1 = ql.Currency() c2 = ql.EURCurrency() c3 = ql.USDCurrency() c4 = c2 e1 = c1.empty() e2 = c2.empty() e3 = c3.empty() e4 = c4.empty() print(e1, e2, e3, e4)
USDCurrency CNYCurrency U.S. dollar Chinese yuan USD CNY 840 156 $ Y 100 100 %3% %1$.2f %3% %1$.2f True False False False