货币
货币
常见的成员函数如下:
name() : 返回一个字符串,表示货币的名称;
code() : 返回一个字符串,表示该货币的ISO4217代码,通常为三个大写英文字母;
numericCode() : 返回一个整数,对应货币的ISO4217代码编号;
symbol() : 返回一个字符串,该符号通常用于表示现实世界中的货币。美元符号是“$”,日元符号是“¥”。需要注意的是,此函数可能返回Unicode字符,这可能导致Python程序出错;
fractionSymbol() : 返回一个字符串,该字符串通常用于表示现实世界中货币的最小单位。与symbol()类似,此函数可能返回Unicode字符,这可能导致Python程序出错;
fractionsPerUnit() : 返回一个整数,表示货币单位相对于最小货币单位的倍数,通常为100。
format() : 返回一个字符串,即用于格式化打印结果的“格式字符串”。
empty() : 返回一个布尔值。如果对象由派生类实例化,则返回True;如果对象由Currency实例化,则返回False。毕竟,基类对象中的货币信息是"空的"。
rounding() : 返回一个Rounding对象,表示该货币的舍入规则。默认情况下不执行舍入操作。
货币
要在QuantLib中进行货币的代数计算,您需要将Currency对象转换为Money对象。
- ql.Money(currency, value)
- ql.Money(value, currency)
cur = ql.EURCurrency()
money1 = ql.Money(cur, 100)
money2 = ql.Money(100, cur)
通常不会显式构造Money对象,而是通过将浮点数与Currency对象相乘来生成:
money3 = 100 * cur
money3.value()
汇率
QuantLib中描述货币间汇率信息的类是ExchangeRate,货币系统中的任意两种货币都可以生成一个ExchangeRate对象。
ExchangeRate构造函数非常固定,接受三个参数:ExchangeRate(source, target, rate)
常用成员函数如下:
- source()
返回Currency对象,即源货币;
- target()
返回Currency对象,即目标货币;
- rate()
返回一个浮点数,即汇率;
- type()
返回内置的整数常量,
- ExchangeRate.Direct
等于0,表示汇率直接通过构造函数构建;
- ExchangeRate.Derived
等于1,表示汇率是通过其他汇率对象间接构建的;
- exchange(amount)
amount 是一个 Money 对象,可将金额转换为等值的其他货币;
- chain(r1, r2)
r1和r2是ExchangeRate对象。涉及的货币必须形成三角关系。此函数将返回一个ExchangeRate对象以补全三角关系中缺失的一边。
usd = ql.USDCurrency()
eur = ql.EURCurrency()
usdToeur = ql.ExchangeRate(eur, usd, 1.14)
m_usd = 5 * usd
m_eur = 4.39 * eur
print( 'Converting from USD: ', m_usd, ' = ', usdToeur.exchange(m_usd))
print( 'Converting from EUR: ', m_eur, ' = ', usdToeur.exchange(m_eur))
print(usdToeur.source())
print(usdToeur.target())
print(usdToeur.rate())
汇率管理器
ql.ExchangeRateManager.instance()