fxForwardPricer
语法
fxForwardPricer(instrument, pricingDate, spot,
domesticCurve, foreignCurve)
详情
基于给定的即期汇率、本币与外币的贴现曲线,以及定价日期,计算外汇远期合约的净现值(NPV)。
返回值:DOUBLE 类型标量。
参数
instrument 一个 INSTRUMENT 类型对象(FxForward)。表示需要定价的外汇远期。外汇远期所需的关键字段见 FxForward 字段要求。
pricingDate DATE 类型标量,表示定价日期。
spot DOUBLE 类型标量,表示即期汇率。
domesticCurve MKTDATA 类型对象(IrYieldCurve),表示本币贴现曲线。曲线所需包含的关键字段见曲线字段要求。
foreignCurve MKTDATA 类型对象(IrYieldCurve),表示外币贴现曲线。曲线所需包含的关键字段见曲线字段要求。
例子
pricingDate = 2025.08.18
fxForward = {
"productType": "Forward",
"forwardType": "FxForward",
"version": 0,
"expiry": 2025.12.16,
"delivery": 2025.12.18,
"currencyPair": "USDCNY",
"direction": "Buy",
"notional": ["USD", 1E6],
"strike": 7.1
}
curveDates = [2025.08.21,
2025.08.27,
2025.09.03,
2025.09.10,
2025.09.22,
2025.10.20,
2025.11.20,
2026.02.24,
2026.05.20,
2026.08.20,
2027.02.22,
2027.08.20,
2028.08.21]
domesticCurveInfo = {
"mktDataType": "Curve",
"curveType": "IrYieldCurve",
"referenceDate": pricingDate,
"currency": "CNY",
"dayCountConvention": "Actual365",
"compounding": "Continuous",
"interpMethod": "Linear",
"extrapMethod": "Flat",
"frequency": "Annual",
"dates": curveDates,
"values":[1.5113,
1.5402,
1.5660,
1.5574,
1.5556,
1.5655,
1.5703,
1.5934,
1.6040,
1.6020,
1.5928,
1.5842,
1.6068]/100
}
foreignCurveInfo = {
"mktDataType": "Curve",
"curveType": "IrYieldCurve",
"referenceDate": pricingDate,
"currency": "USD",
"dayCountConvention": "Actual365",
"compounding": "Continuous",
"interpMethod": "Linear",
"extrapMethod": "Flat",
"frequency": "Annual",
"dates": curveDates,
"values":[4.3345,
4.3801,
4.3119,
4.3065,
4.2922,
4.2196,
4.1599,
4.0443,
4.0244,
3.9698,
3.7740,
3.6289,
3.5003]/100
}
instrument = parseInstrument(fxForward)
domesticCurve = parseMktData(domesticCurveInfo)
foreignCurve = parseMktData(foreignCurveInfo)
spot = 7.1627
npv = fxForwardPricer(instrument, pricingDate, spot, domesticCurve, foreignCurve)
print(npv)
// output: 1919.8118
相关函数:parseInstrument, parseMktData
远期字段要求
字段名 | 类型 | 描述 | 是否必填 |
---|---|---|---|
productType | STRING | 产品名称,固定值为 "Forward" | 是 |
forwardType | STRING | 远期类型,固定值为 "FxForward" | 是 |
version | INT | 版本号,默认值 0 | 否 |
notional | ANY 向量 | 名义本金,格式如 ["USD", 1.0] | 是 |
instrumentId | STRING | 金融工具 ID | 否 |
expiry | DATE | 到期日 | 是 |
delivery | DATE | 交割日 | 是 |
currencyPair | STRING |
货币对,格式如:"EURUSD","EUR.USD" 或 "EUR/USD"。支持如下货币对:
|
是 |
direction | STRING | 交易方向。可选:"Buy"、"Sell" | 是 |
strike | DOUBLE | 执行价格 | 是 |
domesticCurve | STRING | 定价时参考的本币贴现曲线名称 | 否 |
foreignCurve | STRING | 定价时参考的外币贴现曲线名称 | 否 |
曲线字段要求
字段名 | 类型 | 描述 | 是否必填 |
---|---|---|---|
mktDataType | STRING | 固定填 "Curve" | 是 |
referenceDate | DATE | 参考日期 | 是 |
version | INT | 版本号,默认值 0 | 否 |
curveType | STRING | 固定填 "IrYieldCurve" | 是 |
dayCountConvention | STRING |
曲线的日期计数惯例,可选值为:
|
是 |
interpMethod | STRING |
内插方法,可选值为:
|
是 |
extrapMethod | STRING |
外插方法,可选值为:
|
是 |
dates | DATE 向量 | 数据点的日期 | 是 |
values | DOUBLE 向量 | 数据点的值,与 dates 中的元素一一对应 | 是 |
curveName | STRING | 曲线名称 | 否 |
currency | STRING | 货币,可选值为"CNY", "USD", "EUR", "GBP", "JPY", "HKD" | 是 |
compounding | STRING |
复利类型,可选值为:
|
是 |
settlement | DATE | 结算日,如果指定了结算日,则后续期限间隔的计算都将从 settlement 开始,而不是 referenceDate | 否 |
frequency | INTEGRAL或 STRING |
计息频率,可选值为:
|
否 |
curveModel | STRING | 曲线构建模型,目前仅支持 "Bootstrap"。 | 否 |
curveParams | DICT | 模型的参数。 | 否 |