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

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

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

載入 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
相關文章
相關標籤/搜索