fxForwardPricer

语法

fxForwardPricer(instrument, pricingDate, spot, domesticCurve, foreignCurve)

详情

基于给定的即期汇率、本币与外币的贴现曲线,以及定价日期,计算外汇远期合约的净现值(NPV)。

参数

instrument 一个 INSTRUMENT 类型对象(FxForward)。表示需要定价的外汇远期。外汇远期所需的关键字段见 FxForward 字段要求

pricingDate DATE 类型标量,表示定价日期。

spot DOUBLE 类型标量,表示即期汇率。

domesticCurve MKTDATA 类型对象(IrYieldCurve),表示本币贴现曲线。曲线所需包含的关键字段见曲线字段要求

foreignCurve MKTDATA 类型对象(IrYieldCurve),表示外币贴现曲线。曲线所需包含的关键字段见曲线字段要求

返回值

DOUBLE 类型标量。

例子

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"。支持如下货币对:

  • EURUSD:欧元兑美元

  • USDCNY:美元兑人民币

  • EURCNY:欧元兑人民币

  • GBPCNY:英镑兑人民币

  • JPYCNY:日元兑人民币

  • HKDCNY:港币兑人民币

direction STRING 交易方向。可选:"Buy"、"Sell"
strike DOUBLE 执行价格
domesticCurve STRING 定价时参考的本币贴现曲线名称
foreignCurve STRING 定价时参考的外币贴现曲线名称

曲线字段要求

字段名 类型 描述 是否必填
mktDataType STRING 固定填 "Curve"
referenceDate DATE 参考日期
version INT 版本号,默认值 0
curveType STRING 固定填 "IrYieldCurve"
dayCountConvention STRING

曲线的日期计数惯例,可选值为:

  • "Actual360":实际天数除以360

  • "Actual365":实际天数除以365(不区分闰年)

  • "ActualActualISMA":实际天数/实际天数(ISMA规则)

  • "ActualActualISDA":实际天数/实际天数(ISDA规则)

interpMethod STRING

内插方法,可选值为:

  • "Linear":线性插值

  • "CubicSpline":三次样条插值

  • "CubicHermiteSpline":三次埃尔米特样条插值

extrapMethod STRING

外插方法,可选值为:

  • "Flat":平插

  • "Linear":线性插值

dates DATE 向量 数据点的日期
values DOUBLE 向量 数据点的值,与 dates 中的元素一一对应
curveName STRING 曲线名称
currency STRING 货币,可选值为"CNY", "USD", "EUR", "GBP", "JPY", "HKD"
compounding STRING

复利类型,可选值为:

  • "Simple":单利

  • "Compounded":离散复利

  • "Continuous":连续复利

settlement DATE 结算日,如果指定了结算日,则后续期限间隔的计算都将从 settlement 开始,而不是 referenceDate
frequency INTEGRAL或 STRING

计息频率,可选值为:

  • -1 或 "NoFrequency":无效计息频率

  • 0 或 "Once":到期一次还本付息

  • 1 或 "Annual":每年付息一次

  • 2 或 "Semiannual":每半年付息一次

  • 3 或 "EveryFourthMonth":每四个月付息一次

  • 4 或 "Quarterly":每季度付息一次

  • 6 或 "BiMonthly":每两月付息一次

  • 12 或 "Monthly":每月付息一次

  • 13 或 "EveryFourthWeek":每四周付息一次

  • 26 或 "BiWeekly":每两周付息一次

  • 52 或 "Weekly":每周付息一次

  • 365 或 "Daily":每日付息一次

  • 999 或 "Other":其他计息频率

curveModel STRING 曲线构建模型,目前仅支持 "Bootstrap"。
curveParams DICT 模型的参数。