creditDefaultSwapPricer
首发版本:3.00.6
语法
creditDefaultSwapPricer(instrument, pricingDate,
discountCurve, creditCurve, [config])
详情
对信用违约互换(Credit Default Swap, CDS)进行定价。
参数
instrument INSTRUMENT 类型标量或向量,表示需要定价的信用违约互换(CreditDefaultSwap)。信用违约互换所需的关键字段详见产品字段说明。
pricingDate DATE 类型标量或向量,表示定价日期。
discountCurve MKTDATA 类型(IrYieldCurve)的标量或向量,表示用于计算折现因子的即期曲线。
creditCurve MKTDATA 类型(CreditCurve)的标量或向量,表示定价用到的信用曲线。
config 可选参数,字典(Dictionary<STRING, ANY>),用于设置静态数据。目前支持以下键值对:
| 键 | 值类型 | 描述 |
|---|---|---|
| "recoveryRate" | DOUBLE 标量 | 违约回收率,默认为 0.4。 |
返回值
DOUBLE 类型标量或向量,表示信用违约互换定价的结果。
例子
对信用违约互换进行定价。
// =====================================================
// 一、构造 CNY FR007 贴现零息收益率曲线
// =====================================================
def createCnyFr007CurveForCds(asOfDate){
pillarDates = asOfDate + [
2, 8, 93, 185, 276, 367,
732, 1099, 1463, 1828, 2558, 3654
]
pillarValues = [
0.0215993931630537,
0.0229075517972275,
0.0253020667393029,
0.0257564866303201,
0.0259751440992468,
0.0260355181479988,
0.0265336263144786,
0.0272721454114050,
0.0282024453631075,
0.0290231222075799,
0.0304665029488732,
0.0319855013976250
]
discountCurveDict = {
"mktDataType": "Curve",
"curveType": "IrYieldCurve",
"referenceDate": asOfDate,
"currency": "CNY",
"curveName": "CNY_FR_007",
"dayCountConvention": "Actual365",
"compounding": "Continuous",
"interpMethod": "Linear",
"extrapMethod": "Flat",
"frequency": "NoFrequency",
"dates": pillarDates,
"values": pillarValues
}
return parseMktData(discountCurveDict)
}
// =====================================================
// 二、构造 CDS 信用曲线
// =====================================================
def createCreditCurveForCds(asOfDate){
pillarDates = asOfDate + [
2, 8, 93, 185, 276, 367,
732, 1099, 1463
]
hazardRates = [
0.001577614619366,
0.001587614619366,
0.00217392030740149,
0.00327736067786984,
0.00687303437629905,
0.0141416564486811,
0.0219406380083359,
0.0292999285840119,
0.0342083758016553
]
creditCurveDict = {
"mktDataType": "Curve",
"curveType": "CreditCurve",
"referenceDate": asOfDate,
"currency": "CNY",
"curveName": "CFETS_SHCH_GTJA",
"interpMethod": "Linear",
"extrapMethod": "Flat",
"dayCountConvention": "Actual365",
"dates": pillarDates,
"values": hazardRates
}
return parseMktData(creditCurveDict)
}
// =====================================================
// 三、设置定价日
// =====================================================
pricingDate = 2020.09.07
// =====================================================
// 四、构造 CDS 产品
// =====================================================
instrumentDict = {
"productType": "Swap",
"swapType": "CreditDefaultSwap",
"instrumentId": "CFETS_SHCH_GTJA",
"notionalAmount": 1.0e7,
"notionalCurrency": "CNY",
"start": 2019.06.20,
"maturity": 2024.06.20,
"payReceive": "Pay",
"protectionLegRefPrice": 0.0,
"protectionLegLeverage": 1.0,
"protectionLegRecoveryRate": 0.4,
"creditProtectionType": "PayProtectionAtMaturity",
"creditPremiumType": "PayPremiumUptoCurrentPeriod",
"premiumRate": 0.01,
"dayCountConvention": "Actual360",
"frequency": "Quarterly",
"businessDayConvention": "ModifiedFollowing",
"calendar": "CFET",
"upfrontRate": 0.01,
"rebateAccrual": false
}
instrument = parseInstrument(instrumentDict)
// =====================================================
// 五、生成贴现曲线与信用曲线
// =====================================================
discountCurve = createCnyFr007CurveForCds(pricingDate)
creditCurve = createCreditCurveForCds(pricingDate)
// =====================================================
// 六、设置 CDS 定价参数
// =====================================================
config = {
"recoveryRate": 0.4
}
// =====================================================
// 七、调用 CDS 定价器
// =====================================================
npv = creditDefaultSwapPricer(
instrument,
pricingDate,
discountCurve,
creditCurve,
config=config
)
// =====================================================
// 八、输出 CDS 定价结果
// =====================================================
print("CreditDefaultSwap NPV = " + string(npv))
产品字段说明
| 字段名 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| productType | STRING | 固定填 "Swap" | 是 |
| swapType | STRING | 固定填 "CreditDefaultSwap" | 是 |
| notionalAmount | DOUBLE | 名义本金额 | 是 |
| notionalCurrency | STRING | 名义本金货币,默认为 "CNY" | 否 |
| instrumentId | STRING | 金融工具 ID | 否 |
| start | DATE | 起息日 | 是 |
| maturity | DATE | 到期日 | 是 |
| payReceive | STRING | 收付标识,"Pay" 表示支付,"Receive" 表示收取 | 是 |
| frequency | STRING | 付息频率,默认为 "Quarterly" | 否 |
| protectionLegRefPrice | DOUBLE | 保护腿参考价格 | 是 |
| protectionLegLeverage | DOUBLE | 保护腿杠杆率 | 是 |
| protectionLegRecoveryRate | DOUBLE | 保护腿回收率 | 是 |
| creditProtectionType | STRING |
信用保护类型,可选值为:
|
是 |
| creditPremiumType | STRING |
信用保费类型
|
是 |
| premiumRate | DOUBLE | 保费利率 | 是 |
| calendar | STRING | 交易日历 | 是 |
| dayCountConvention | STRING | 日期计数惯例,可选 "ActualActualISDA"、"ActualActualISMA"、"Actual365"、"Actual360" | 是 |
| businessDayConvention | STRING |
工作日惯例,可选值为:
|
是 |
| upfrontRate | DOUBLE | 前端费率 | 是 |
| rebateAccrual | BOOL | 是否计算返利计提 | 是 |
曲线字段说明
| 字段名 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| mktDataType | STRING | 固定填 "Curve" | 是 |
| referenceDate | DATE | 参考日期 | 是 |
| curveType | STRING | 固定填 "CreditCurve" | 是 |
| curveName | STRING | 曲线名称 | 否 |
| dayCountConvention | STRING |
曲线的日期计数惯例,可选值为:
|
是 |
| interpMethod | STRING |
内插方法,可选值为:
|
是 |
| extrapMethod | STRING |
外插方法,可选值为:
|
是 |
| dates | DATE 向量 | 数据点的日期 | 是 |
| values | DOUBLE 向量 | 危险率,数据点的值,与 dates 中的元素一一对应 | 是 |
