货币


货币

常见的成员函数如下:

  • 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

一个浮点数,表示“源到目标”的汇率

常用成员函数如下:

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()