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]
产品字段说明
| 字段名 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| 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 |
交割类型。支持以下取值:
|
是 |
| nominalCouponRate | DOUBLE | 虚拟券名义票面利率,默认值为 0.03,表示 3%。 | 否 |
