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

  • 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 模型的参数。