stdBondForwardPricer

首发版本:3.00.6

语法

stdBondForwardPricer(instrument, pricingDate, discountCurve)

详情

对指定的标准债券远期进行定价,返回其在指定定价日的净现值(NPV)。

参数

instrument INSTRUMENT 类型标量或向量(StdBondForward),表示需要定价的标准债券远期。标准债券远期所需的关键字段详见产品字段说明

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

discountCurve MKTDATA 类型(IrYieldCurve)的标量或向量,表示定价使用的折现曲线。

返回值

返回 DOUBLE 类型标量或向量,表示标准债券远期的定价结果,即 NPV。

例子

例1. 本例先构造一个利率收益率曲线字典 curveDict,并通过 parseMktData 解析为定价所需的折现曲线 discountCurve;然后构造一只固定利率债券 bondDict,作为标准债券远期的标的可交割债券;接着使用 stdBondForwardDict 定义标准债券远期合约的关键要素,包括名义金额、虚拟券年限、到期日、交割日、交割方式和名义票面利率等,并通过 parseInstrument 解析为 stdBondForward;最后调用 stdBondForwardPricer,根据定价日和折现曲线计算该标准债券远期的净现值(NPV)。

pricingDate = 2025.08.18
curveDict = {
    "mktDataType": "Curve",
    "curveType": "IrYieldCurve",
    "curveName": "CNY_TREASURY_BOND",
    "referenceDate": pricingDate,
    "currency": "CNY",
    "dayCountConvention": "ActualActualISDA",
    "compounding": "Compounded",
    "interpMethod": "Linear",
    "extrapMethod": "Flat",
    "frequency": "Annual",
    "dates": [2025.09.18, 2025.12.18, 2026.06.18, 2027.06.18, 2028.06.18, 2030.06.18, 2032.06.18],
    "values": [1.30, 1.36, 1.40, 1.46, 1.52, 1.68, 1.78] / 100.0
}
discountCurve = parseMktData(curveDict)
bondDict = {
    "productType": "Cash",
    "assetType": "Bond",
    "bondType": "FixedRateBond",
    "instrumentId": "BOND1",
    "start": 2021.05.24,
    "maturity": 2031.05.24,
    "coupon": 0.0352,
    "frequency": "Annual",
    "dayCountConvention": "ActualActualISDA"
}
stdBondForwardDict = {
    "productType": "Forward",
    "forwardType": "StdBondForward",
    "instrumentId": "SBF_EXAMPLE",
    "nominal": 100.0,
    "yearLength": 10,
    "maturity": 2025.08.18,
    "settlement": 2025.12.18,
    "settlementType": "PhysicalSettlement",
    "nominalCouponRate": 0.03,
    "underlying": [bondDict]
}
stdBondForward = parseInstrument(stdBondForwardDict)
npv = stdBondForwardPricer(stdBondForward, pricingDate, discountCurve)
npv
// output: 106.4315066

例2. 本例演示向量化定价的用法。示例复用例 1 中已经生成的标准债券远期对象 stdBondForward 和折现曲线 discountCurve,分别构造由多个合约、多个定价日和多条折现曲线组成的向量 instruments、pricingDates 和 discountCurves。调用 stdBondForwardPricer 时,函数会按位置逐一匹配三个向量中的元素,并返回每个标准债券远期对应的 NPV 结果向量。

instruments = [stdBondForward, stdBondForward]
pricingDates = [2025.08.18, 2025.08.18]
discountCurves = [discountCurve, discountCurve]
npv = stdBondForwardPricer(instruments, pricingDates, discountCurves)
npv
// output: [106.431507,106.431507]

相关函数:parseInstrument, parseMktData, bondForwardPricer

产品字段说明

字段名 类型 描述 是否必填
productType STRING 固定填 "Forward"。
forwardType STRING 固定填 "StdBondForward"。
nominal DOUBLE 名义金额,默认值 100。
instrumentId STRING 标准债券远期代码,如 "CDB3"。
yearLength INT 虚拟券年限,一般为 3 年期、5 年期或 10 年期。
maturity DATE 到期日(T-1 日,需调整为交易日)。
settlement DATE 交割日(T 日),合约月份的第三个星期三。
underlying 字典或由 INSTRUMENT 组成的元组 固定利率债券,表示标的一篮子可交割债券。可通过 parseInstrument 解析债券字典生成。
settlementType STRING

交割类型。支持以下取值:

  • "PhysicalSettlement":实物交割
  • "CashSettlement":现金交割
nominalCouponRate DOUBLE 虚拟券名义票面利率,默认值为 0.03,表示 3%。