parseInstrument

首发版本:3.00.4

语法

parseInstrument(obj)

详情

将输入的金融工具产品描述(obj)转换成一个 INSTRUMENT 类型对象(金融工具),用于后续建模和定价。可解析的金融工具详见下文说明。

注意:parseInstrument 会在序列化或反序列化过程中保留非标准标量或向量字段(即不属于金融工具预定义属性的字段)。

参数

obj 可以是字典、由字典组成的元组、内存表、字符串标量或向量,表示要解析的金融工具描述。注意,如果 obj 指定为表,则该表只能存储单一类型的金融工具。

返回值

一个 INSTRUMENT 类型对象,表示金融工具。

例子

使用字典存储付息债的描述,通过 parseInstrument 解析该字典,以获得该付息债的 INSTRUMENT 类型对象。

bond = {
    "productType": "Cash",
    "assetType": "Bond",
    "bondType": "FixedRateBond",
    "instrumentId": "230205.IB",
    "start": 2023.03.06,
    "maturity": 2033.03.06,
    "issuePrice": 100.0,
    "coupon": 0.0302,
    "calendar": "CFET",
    "frequency": "Annual",
    "dayCountConvention": "ActualActualISDA",
    "subType": "CDB_BOND",
    "issuer": "国家开发银行"
}
parseInstrument(bond)

通过 parseInstrument 解析由字典组成的元组,得到3个债券的 INSTRUMENT 类型对象。

bond1 = {
    "productType": "Cash",
    "assetType": "Bond",
    "bondType": "DiscountBond",
    "instrumentId": "259924.IB",
    "start": 2025.04.17,
    "maturity": 2025.07.17,
    "issuePrice": 99.664,
    "dayCountConvention": "ActualActualISDA",
    "subType": "TREASURY_BOND",
    "issuer": "中华人民共和国财政部"
}

bond2 = {
    "productType": "Cash",
    "assetType": "Bond",
    "bondType": "ZeroCouponBond",
    "instrumentId": "250401.IB",
    "start": 2025.01.09,
    "maturity": 2026.02.05,
    "coupon": 0.0119,
    "dayCountConvention": "ActualActualISDA",
    "subType": "CDB_BOND",
    "issuer": "国家农业发展银行"
}

parseInstrument([bond,bond1,bond2])

使用内存表存储金融工具描述,其每一列代表一个字段。通过 parseInstrument 解析该表,得到 INSTRUMENT 类型对象。

注意:如果某个产品缺少内存表中某列对应的字段,则在插入该产品的数据时,该字段将被设置为 NULL。

create table t (
    productType STRING,
    assetType STRING,
    bondType STRING,
    version INT,
    instrumentId STRING,
    start DATE,
    maturity DATE,
    issuePrice DOUBLE,
    coupon DOUBLE,
    calendar STRING,
    frequency STRING,
    dayCountConvention STRING,
    subType STRING,
    issuer STRING
)
go

insert into t values( "Cash", "Bond", "FixedRateBond", 0, "230205.IB", 2023.03.06, 2033.03.06, 100.0, 0.0302, "CFET", "Annual", "ActualActualISDA", "CDB_BOND", "国家开发银行")
insert into t values( "Cash", "Bond", "DiscountBond", 0, "259924.IB", 2025.04.17, 2025.07.17, 99.664, NULL, NULL, NULL, "ActualActualISDA", "TREASURY_BOND", "中华人民共和国财政部")
insert into t values( "Cash", "Bond", "ZeroCouponBond", 0, "250401.IB", 2025.01.09, 2026.02.05, NULL, 0.0119, NULL, NULL, "ActualActualISDA", "CDB_BOND", "国家农业发展银行")

parseInstrument(t)

使用字符串描述金融工具,通过 parseInstrument 解析该字符串,得到 INSTRUMENT 类型对象。

bond1 = {
    "productType": "Cash",
    "assetType": "Bond",
    "bondType": "FixedRateBond",
    "coupon": 0.0302,
    "frequency": "Annual",
    "version": 0,
    "instrumentId": "230205.IB",
    "nominal": 100,
    "start": 2023.03.06,
    "maturity": 2033.03.06,
    "dayCountConvention": "ActualActualISDA",
    "calendar": "CFET",
    "currency": "CNY",
    "discountCurve": "",
    "spreadCurve": "",
    "subType": "CDB_BOND",
    "issuePrice": 100,
    "issuer": "国家开发银行"
}
bond1Str = toStdJson(bond1)

parseInstrument(obj=bond1Str)

通过 parseInstrument 解析该字符串向量,得到多个 INSTRUMENT 类型对象。

bond2 = {
    "productType": "Cash",
    "assetType": "Bond",
    "bondType": "DiscountBond",
    "issuePrice": 99.664000000000001,
    "version": 0,
    "instrumentId": "259924.IB",
    "nominal": 100,
    "start": 2025.04.17,
    "maturity": 2025.07.17,
    "dayCountConvention": "ActualActualISDA",
    "calendar": "",
    "currency": "CNY",
    "discountCurve": "",
    "spreadCurve": "",
    "subType": "TREASURY_BOND",
    "issuer": "中华人民共和国财政部"
}

bond3 = {
    "productType": "Cash",
    "assetType": "Bond",
    "bondType": "ZeroCouponBond",
    "coupon": 0.0119,
    "version": 0,
    "instrumentId": "250401.IB",
    "nominal": 100,
    "start": 2025.01.09,
    "maturity": 2026.02.05,
    "dayCountConvention": "ActualActualISDA",
    "calendar": "",
    "currency": "CNY",
    "discountCurve": "",
    "spreadCurve": "",
    "subType": "CDB_BOND",
    "issuer": "国家农业发展银行"
}

bond2Str = toStdJson(bond2)
bond3Str = toStdJson(bond3)

parseInstrument(obj=[bond1Str,bond2Str,bond3Str])

金融工具支持与字段要求

INSTRUMENT 为 DophinDB 在 3.00.4 版本上新增的数据类型,用于支持金融工具的存储,为后续各类金融产品的定价与风险计量提供基础。

在金融工具的描述中,需要包含若干关键字段,parseInstrument 将根据这些字段生成相应的金融工具对象。请注意,"version" 为系统保留字段,为避免冲突,请勿将此名称用于自定义字段。

目前支持的金融工具类型如下:

贴现债

字段名 类型 描述 是否必填
productType STRING 固定填 "Cash"
assetType STRING 固定填 "Bond"
bondType STRING 固定填 "DiscountBond"
nominal DOUBLE 名义金额,默认值 100
instrumentId STRING 债券代码,如 "259926.IB"
start DATE 起息日
maturity DATE 到期日
dayCountConvention STRING 日期计数惯例,可选 "ActualActualISDA", "ActualActualISMA", "Actual365", "Actual360"
issuePrice DOUBLE 发行价格
currency STRING 货币,默认为 "CNY"
discountCurve STRING 定价时参考的贴现曲线名称,如 "CNY_TRASURY_BOND"
spreadCurve STRING 定价时参考的利差曲线名称
subType STRING

债券子类型,中国债券可选值为:

  • "TREASURY_BOND":国债

  • "CENTRAL_BANK_BILL":央行票据

  • "CDB_BOND":政策性金融债(国开)

  • "EIBC_BOND":政策性金融债(进出口行)

  • "ADBC_BOND":政策性金融债(农发行)。

  • "MTN":中期票据

  • "CORP_BOND":企业债。

  • "UNSECURED_CORP_BOND":无担保企业债

  • "SHORT_FIN_BOND":短期融资券

  • "NCD":同业存单

  • "LOC_GOV_BOND":地方政府债

  • "COMM_BANK_FIN_BOND":商业银行普通金融债

  • "BANK_SUB_CAP_BOND":商业银行二级资本债

  • "ABS":资产支持证券

  • "PPN":非公开发行债

creditRating STRING 信用等级类型,可选值为:"B", "BB", "BBB", "BBB+", "A-", "A", "A+", "AA-", "AA", "AA+", "AAA-", "AAA", "AAA+"

下例定义了一个贴现债券的 INSTRUMENT 对象。

bond = {
    "productType": "Cash",
    "assetType": "Bond",
    "bondType": "DiscountBond",
    "instrumentId": "259924.IB",
    "start": 2025.04.17,
    "maturity": 2025.07.17,
    "issuePrice": 99.664,
    "dayCountConvention": "ActualActualISDA"
}
instrument = parseInstrument(bond)
print(instrument)

零息债

字段名 类型 描述 是否必填
productType STRING 固定填 "Cash"
assetType STRING 固定填 "Bond"
bondType STRING 固定填 "ZeroCouponBond"
nominal DOUBLE 名义金额,默认值 100
instrumentId STRING 债券代码,如 "250401.IB"
start DATE 起息日
maturity DATE 到期日
coupon DOUBLE 票面利率,如 0.03 表示 3%
frequency STRING 付息频率
dayCountConvention STRING 日期计数惯例,可选 "ActualActualISDA", "ActualActualISMA", "Actual365", "Actual360"
currency STRING 货币,默认为 "CNY"
discountCurve STRING 定价时参考的贴现曲线名称,如 "CNY_TRASURY_BOND"
spreadCurve STRING 定价时参考的利差曲线名称
subType STRING

债券子类型,中国债券可选值为:

  • "TREASURY_BOND":国债

  • "CENTRAL_BANK_BILL":央行票据

  • "CDB_BOND":政策性金融债(国开)

  • "EIBC_BOND":政策性金融债(进出口行)

  • "ADBC_BOND":政策性金融债(农发行)。

  • "MTN":中期票据

  • "CORP_BOND":企业债。

  • "UNSECURED_CORP_BOND":无担保企业债

  • "SHORT_FIN_BOND":短期融资券

  • "NCD":同业存单

  • "LOC_GOV_BOND":地方政府债

  • "COMM_BANK_FIN_BOND":商业银行普通金融债

  • "BANK_SUB_CAP_BOND":商业银行二级资本债

  • "ABS":资产支持证券

  • "PPN":非公开发行债

creditRating STRING 信用等级类型,可选值为:"B", "BB", "BBB", "BBB+", "A-", "A", "A+", "AA-", "AA", "AA+", "AAA-", "AAA", "AAA+"

下例定义了一个零息债的 INSTRUMENT 对象。

bond = {
    "productType": "Cash",
    "assetType": "Bond",
    "bondType": "ZeroCouponBond",
    "instrumentId": "250401.IB",
    "start": 2025.01.09,
    "maturity": 2026.02.05,
    "coupon": 0.0119,
    "dayCountConvention": "ActualActualISDA"
}
instrument = parseInstrument(bond)
print(instrument)

固定利率债

字段名 类型 描述 是否必填
productType STRING 固定填 "Cash"
assetType STRING 固定填 "Bond"
bondType STRING 固定填 "FixedRateBond"
nominal DOUBLE 名义金额,默认值 100
instrumentId STRING 债券代码,如 "250401.IB"
start DATE 起息日
maturity DATE 到期日
coupon DOUBLE 票面利率,如0.03表示3%
frequency STRING 付息频率
dayCountConvention STRING 日期计数惯例,可选 "ActualActualISDA", "ActualActualISMA", "Actual365", "Actual360"
currency STRING 货币,默认为 "CNY"
discountCurve STRING 定价时参考的贴现曲线名称,如 "CNY_TRASURY_BOND"
spreadCurve STRING 定价时参考的利差曲线名称
subType STRING

债券子类型,中国债券可选值为:

  • "TREASURY_BOND":国债

  • "CENTRAL_BANK_BILL":央行票据

  • "CDB_BOND":政策性金融债(国开)

  • "EIBC_BOND":政策性金融债(进出口行)

  • "ADBC_BOND":政策性金融债(农发行)。

  • "MTN":中期票据

  • "CORP_BOND":企业债。

  • "UNSECURED_CORP_BOND":无担保企业债

  • "SHORT_FIN_BOND":短期融资券

  • "NCD":同业存单

  • "LOC_GOV_BOND":地方政府债

  • "COMM_BANK_FIN_BOND":商业银行普通金融债

  • "BANK_SUB_CAP_BOND":商业银行二级资本债

  • "ABS":资产支持证券

  • "PPN":非公开发行债

creditRating STRING 信用等级类型,可选值为:"B", "BB", "BBB", "BBB+", "A-", "A", "A+", "AA-", "AA", "AA+", "AAA-", "AAA", "AAA+"

下例定义了一个固定利率债的 INSTRUMENT 对象。

bond = {
    "productType": "Cash",
    "assetType": "Bond",
    "bondType": "FixedRateBond",
    "instrumentId": "240021.IB",
    "start": 2024.10.25,
    "maturity": 2025.10.25,
    "issuePrice": 100,
    "coupon": 0.0133,
    "frequency": "Annual",
    "dayCountConvention": "ActualActualISDA"
}
instrument = parseInstrument(bond)
print(instrument)

浮动利率债

字段名 类型 描述 是否必填
productType STRING 固定填 "Cash"
assetType STRING 固定填 "Bond"
bondType STRING 固定填 "FloatingRateBond"
nominal DOUBLE 名义金额,默认值为 100
instrumentId STRING 债券代码,如 "1680437.IB"
start DATE 起息日
maturity DATE 到期日
iborIndex STRING 参考利率,如 "LPR_1Y"
lastFixing DOUBLE 上一次定息日的参考利率值
spread DOUBLE 利差,默认值为 0.0
frequency STRING 付息频率
dayCountConvention STRING 日期计数惯例,可选 "ActualActualISDA"、"ActualActualISMA"、"Actual365"、"Actual360"
fixingOffsetDays INT 下一起息日与定息日之间的天数,默认值为 1
currency STRING 货币,默认值为 "CNY"
discountCurve STRING 定价时参考的贴现曲线名称,如 "CNY_TREASURY_BOND"
spreadCurve STRING 定价时参考的利差曲线名称
forwardCurve STRING 定价时参考的远期曲线名称
subType STRING

债券子类型,中国债券可选值为:

  • "TREASURY_BOND":国债

  • "CENTRAL_BANK_BILL":央行票据

  • "CDB_BOND":政策性金融债(国开)

  • "EIBC_BOND":政策性金融债(进出口行)

  • "ADBC_BOND":政策性金融债(农发行)

  • "MTN":中期票据

  • "CORP_BOND":企业债

  • "UNSECURED_CORP_BOND":无担保企业债

  • "SHORT_FIN_BOND":短期融资券

  • "NCD":同业存单

  • "LOC_GOV_BOND":地方政府债

  • "COMM_BANK_FIN_BOND":商业银行普通金融债

  • "BANK_SUB_CAP_BOND":商业银行二级资本债

  • "ABS":资产支持证券

  • "PPN":非公开发行债

creditRating STRING 信用等级,可选 "B"、"BB"、"BBB"、"BBB+"、"A-"、"A"、"A+"、"AA-"、"AA"、"AA+"、"AAA-"、"AAA"、"AAA+"

下例定义并解析一个浮动利率债券:

floatingBond = {
    "productType": "Cash",
    "assetType": "Bond",
    "bondType": "FloatingRateBond",
    "instrumentId": "240025.IB",
    "start": 2017.09.11,
    "maturity": 2020.09.11,
    "frequency": "Semiannual",
    "dayCountConvention": "Actual365",
    "iborIndex": "LPR_1Y",
    "spread": 0.02,
    "lastFixing": 0.08
}
typestr(parseInstrument(floatingBond))
// output: INSTRUMENT

含权债

字段名 类型 描述 是否必填
productType STRING 固定填 "Cash"
assetType STRING 固定填 "Bond"
bondType STRING 固定填 "OptionBond"
nominal DOUBLE 名义金额,默认值100
instrumentId STRING 债券代码,如 "242659.SH"
start DATE 起息日
maturity DATE 到期日
coupon DOUBLE 票面利率,如0.03表示3%
frequency STRING 付息频率
principalRatio DOUBLE 类型向量

提前偿还型债券的本金摊还比例向量。

向量长度等于债券期限,各元素表示对应期间偿还的本金占初始本金的比例,且所有元素之和为1。默认为空。

exerciseDates DATE 类型向量 含权债为行权时间的向量。默认为空。
hasCallOption BOOL 该债券发行人是否有赎回权
hasPutOption BOOL 该债券投资者是否有回售权
hasCouponAdjust BOOL 该债券发行人是否有票面利率调整权
newCoupon DOUBLE 票面利率调整后的新利率。当 hasCouponAdjust = true 且已到调整时点时生效。若 newCoupon 为空(默认值),则仍使用原票面利率。
dayCountConvention STRING 日期计数惯例,可选 "ActualActualISDA", "ActualActualISMA", "Actual365", "Actual360",国债默认为 "Actual365",其他默认为 "ActualActualISMA"
subType STRING

债券子类型,中国债券可选值为:

  • "TREASURY_BOND":国债
  • "CENTRAL_BANK_BILL":央行票据
  • "CDB_BOND":政策性金融债(国开)
  • "EIBC_BOND":政策性金融债(进出口行)
  • "ADBC_BOND":政策性金融债(农发行)。
  • "MTN":中期票据
  • "CORP_BOND":企业债。
  • "UNSECURED_CORP_BOND":无担保企业债
  • "SHORT_FIN_BOND":短期融资券
  • "NCD":同业存单
  • "LOC_GOV_BOND":地方政府债
  • "COMM_BANK_FIN_BOND":商业银行普通金融债
  • "BANK_SUB_CAP_BOND":商业银行二级资本债
  • "ABS":资产支持证券
  • "PPN":非公开发行债

默认值为空。

creditRating STRING 信用等级类型,可选值为:"B", "BB", "BBB", "BBB+", "A-", "A", "A+", "AA-", "AA", "AA+", "AAA-", "AAA", "AAA+"。默认值为空。

下例定义了一个含权债的 INSTRUMENT 对象。

optionBond = {
    "productType": "Cash",
    "assetType": "Bond",
    "bondType": "OptionBond",
    "instrumentId": "242659.SH",
    "nominal": 100.0,
    "start": 2025.03.26,
    "maturity": 2030.03.26,
    "coupon": 0.0207,
    "frequency": "Annual",
    "exerciseDates": [2028.03.26],
    "hasCallOption": true,
    "hasPutOption": true,
    "hasCouponAdjust": true,
    "dayCountConvention": "ActualActualISMA"
}
instrument = parseInstrument(optionBond)
print(instrument)

国债期货

字段名 类型 描述 是否必填
productType STRING 固定值为 "Futures"
futuresType STRING 固定值为 "BondFutures"
nominal DOUBLE 名义金额,默认值 100
instrumentId STRING 国债期货代码,如 "T2509"
maturity DATE 到期日
settlement DATE 结算日
underlying 字典 固定利率债券结构,表示标的可交割债券
nominalCouponRate DOUBLE 名义票面利率

下例定义了一个国债期货的 INSTRUMENT 对象。

bond ={
    "productType": "Cash",
    "assetType": "Bond",
    "bondType": "FixedRateBond",
    "instrumentId": "220010.IB",
    "start": 2020.12.25,
    "maturity": 2031.12.25,
    "issuePrice": 100.0,
    "coupon": 0.0149,
    "frequency": "Annual",
    "dayCountConvention": "ActualActualISDA"
}

futures =  {
    "productType": "Futures",
    "futuresType": "BondFutures",
    "instrumentId": "T2509",  //期货代码
    "nominal": 100.0,
    "maturity": 2022.09.09,
    "settlement": 2022.09.11,
    "underlying": bond,
    "nominalCouponRate": 0.03  //与国债期货品种匹配的名义利率,可从中金所获取
}
instrument = parseInstrument(futures)
print(instrument)

债券买断式回购

字段名 类型 描述 是否必填
productType STRING 产品名称,固定值为 "Cash"
assetType STRING 资产类型,固定值为 "Repo"
repoType STRING 回购类型,固定值为 "BondOutrightRepo"
notionalAmount DOUBLE 名义本金额
notionalCurrency STRING 名义本金货币,默认为 "CNY"
instrumentId STRING 自定义唯一标识,如 "repo000002"
start DATE 起息日
maturity DATE 到期日
rate DOUBLE 回购利率
payReceive STRING 收付标识,"Pay" 表示正回购方,"Receive" 表示逆回购方
underlying DICT/INSTRUMENT 抵押债券的基础信息
dayCountConvention STRING 日期计数惯例,可选 "ActualActualISDA"、"ActualActualISMA"、"Actual365"、"Actual360"
discountCurve STRING 定价时参考的贴现曲线名称,人民币存款默认为 "CNY_FR_007"

债券质押式回购

字段名 类型 描述 是否必填
productType STRING 固定值为 "Cash"
assetType STRING 固定值为 "Repo"
repoType STRING 固定值为 "BondPledgedRepo"
notionalAmount DOUBLE 名义本金额
notionalCurrency STRING 名义本金货币,默认值为 "CNY"
instrumentId STRING 自定义唯一标识,如 "repo000001"
start DATE 起息日
maturity DATE 到期日
rate DOUBLE 回购利率
payReceive STRING 收付标识,"Pay" 表示正回购方,"Receive" 表示逆回购方
dayCountConvention STRING 日期计数惯例,可选值为 "ActualActualISDA"、"ActualActualISMA"、"Actual365"、"Actual360"
discountCurve STRING 定价时参考的贴现曲线名称;人民币场景默认值为 "CNY_FR_007"

存款

字段名 类型 描述 是否必填
productType STRING 固定填 "Cash"
assetType STRING 固定填 "Deposit"
notionalAmount DOUBLE 名义本金额
notionalCurrency STRING 名义本金货币
instrumentId STRING 存款参考利率指数,如 "SHIBOR_3M"
start DATE 起息日
maturity DATE 到期日
rate DOUBLE 存款利率
dayCountConvention STRING 日期计数惯例, 可选 "ActualActualISDA", "ActualActualISMA", "Actual365", "Actual360"
payReceive STRING 收付标识,"Pay" 表示支付,"Receive" 表示收取
discountCurve STRING 定价时参考的贴现曲线名称,人民币存款默认为 "CNY_FR_007"
calendar STRING 交易日历

下例定义了一个存款的 INSTRUMENT 对象。

deposit =  {
    "productType": "Cash",
    "assetType": "Deposit",
    "start": 2025.05.15,
    "maturity": 2025.08.15,
    "rate": 0.02,
    "dayCountConvention": "Actual360",
    "notionalAmount":1E6,
    "notionalCurrency": "CNY",
    "payReceive": "Receive"
}
instrument = parseInstrument(deposit)
print(instrument)

利率互换

字段名 类型 描述 是否必填
productType STRING 固定填 "Swap"
swapType STRING 固定填 "IrSwap"
irSwapType STRING 固定填 "IrFixedFloatingSwap"
notionalAmount DOUBLE 名义本金额
notionalCurrency STRING 名义本金货币
instrumentId STRING 利率互换名称,可填 "CNY_FR_007 , "CNY_SHIBOR_3M"
start DATE 起息日
maturity DATE 到期日
fixedRate DOUBLE 固定端利率
calendar STRING 交易日历
fixedDayCountConvention STRING 固定端日期计数惯例,可选 "ActualActualISDA", "ActualActualISMA", "Actual365", "Actual360"
floatingDayCountConvention STRING 浮动端日期计数惯例,可选 "ActualActualISDA", "ActualActualISMA", "Actual365", "Actual360"
spread DOUBLE 利差
iborIndex STRING 浮动端参考利率,可选FR_007和SHIBOR_3M
frequency STRING 付息频率
payReceive STRING

收付标识,可选:

  • "Pay":本方支付固定利率、接收浮动利率(pay fixed / receive floating)

  • "Receive":本方接收固定利率、支付浮动利率(receive fixed / pay floating)

discountCurve STRING 用于折现的曲线名称
forwardCurve STRING 用于预测浮动利率的曲线名称

下例定义了一个利率互换的 INSTRUMENT 对象。

swap =  {
    "productType": "Swap",
    "swapType": "IrSwap",
    "irSwapType": "IrFixedFloatingSwap",
    "start": 2021.05.15,
    "maturity": 2023.05.15,
    "frequency": "Quarterly",
    "fixedRate": 0.02,
    "calendar": "CFET", 
    "fixedDayCountConvention": "Actual365",
    "floatingDayCountConvention": "Actual360",
    "payReceive": "Pay",
    "iborIndex": "SHIBOR_3M",
    "spread": 0.0005,
    "notionalCurrency": "CNY",
    "notionalAmount": 1E8
}
instrument = parseInstrument(swap)
print(instrument)

信用违约互换

字段名 类型 描述 是否必填
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

信用保护类型,可选值为:

  • "PayProtectionAtDefault": 在违约时支付保护

  • "PayProtectionAtMaturity": 在合约到期时支付保护

creditPremiumType STRING

信用保费类型

  • "PayPremiumAtDefault":在违约时支付保费

  • "PayPremiumUptoCurrentPeriod":在当期期限支付保费

  • "PayPremiumUptoMaturity":在到期时支付保费

  • "PayNothingAfterDefault":违约后不支付保费

premiumRate DOUBLE 保费利率
calendar STRING 交易日历
dayCountConvention STRING 日期计数惯例,可选 "ActualActualISDA"、"ActualActualISMA"、"Actual365"、"Actual360"
businessDayConvention STRING

工作日惯例,可选值为:

  • "Following":延顺

  • "ModifiedFollowing":修正延顺

  • "Preceding":提前

  • "ModifiedPreceding":修正提前

  • "Unadjusted":不调整

upfrontRate DOUBLE 前端费率
rebateAccrual BOOL 是否计算返利计提

下例定义了一个信用违约互换的 INSTRUMENT 对象。

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": "XNYS",
    "upfrontRate": 0.01,
    "rebateAccrual": false
}
instrument = parseInstrument(instrumentDict)

外汇远期

字段名 类型 描述 是否必填
productType STRING 产品名称,固定值为 "Forward"
forwardType STRING 远期类型,固定值为 "FxForward"
notionalAmount DOUBLE 名义本金
notionalCurrency STRING 名义本金货币
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 定价时参考的外币贴现曲线名称

下例定义了一个外汇远期的 INSTRUMENT 对象。

forward =  {
   "productType": "Forward",
    "forwardType": "FxForward",
    "expiry": 2025.09.24,
    "delivery": 2025.09.26,
    "currencyPair": "USDCNY",
    "direction": "Buy",
    "notionalCurrency": "USD",
    "notionalAmount": 1E8,
    "strike": 7.2
}
instrument = parseInstrument(forward)
print(instrument)

标准债券远期

字段名 类型 描述 是否必填
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%。

远期利率协议

字段名 类型 描述 是否必填
productType STRING 固定填 "Forward"
forwardType STRING 固定填 "IrForwardRateAgreement"
notionalAmount DOUBLE 名义本金数量,如 1E8
notionalCurrency STRING 名义本金货币,默认为 "CNY"
instrumentId STRING FRA 合约期限标识,采用"远期期限X(远期期限+合约期限)"的表达方式,如 "3Mx6M" 表示该 FRA 在 3 个月后开始,于 6 个月后到期。
start DATE 起息日
maturity DATE 到期日,到期日=起息日+合约期限
fixedRate DOUBLE 固定端利率
calendar STRING 交易日历
dayCountConvention STRING 日期计数惯例,可选 "ActualActualISDA", "ActualActualISMA", "Actual365", "Actual360"
iborIndex STRING 浮动端参考利率,可选 "FR_007" 和 "SHIBOR_3M"
payReceive STRING

收付标识,可选:

  • "Pay":本方支付固定利率、接收浮动利率(pay fixed / receive floating)

  • "Receive":本方接收固定利率、支付浮动利率(receive fixed / pay floating)

discountCurve STRING 定价时参考的贴现曲线名称
forwardCurve STRING 定价时参考的远期曲线名称

下例定义了一个远期利率协议的 INSTRUMENT 对象。

irFRA = {
    "productType": "Forward",
    "forwardType": "IrForwardRateAgreement",
    "notionalAmount": 1.0,
    "instrumentId": "3Mx6M",
    "start": 2019.10.10,
    "maturity": 2020.01.10,
    "fixedRate": 0.03,
    "calendar": "CFET",
    "dayCountConvention": "Actual360",
    "iborIndex": "SHIBOR_3M",
    "payReceive": "Pay"
}
instrument = parseInstrument(irFRA)
print(instrument)

外汇掉期

字段名 类型 描述 是否必填
productType STRING 产品名称,固定值为 "Swap"
swapType STRING 远期类型,固定值为 "FxSwap"
notionalAmount DOUBLE 名义本金数量
notionalCurrency STRING 名义本金货币
currencyPair STRING

货币对,格式如:"EURUSD","EUR.USD" 或 "EUR/USD"。支持如下货币对:

  • EURUSD:欧元兑美元

  • USDCNY:美元兑人民币

  • EURCNY:欧元兑人民币

  • GBPCNY:英镑兑人民币

  • JPYCNY:日元兑人民币

  • HKDCNY:港币兑人民币

nearExpiry DATE 近端到期日。
nearDelivery DATE 近端交割日,实际资金交割发生的日期。
direction STRING

交易方向,可选值:

  • "Buy":在近端买入外币(买 near),在远端卖出外币(卖 far)。

  • "Sell":在近端卖出外币(卖 near),在远端买回外币(买 far)。

nearStrike DOUBLE 近端行权价格
farExpiry DATE 远端到期日
farDelivery DATE 远端交割日,实际发生第二次资金交换的日期
farStrike DOUBLE 远端行权价格
domesticCurve STRING 定价时参考的本币贴现曲线名称
foreignCurve STRING 定价时参考的外币贴现曲线名称

下例定义了一个外汇掉期的 INSTRUMENT 对象。

swap = {
    "productType": "Swap",
    "swapType": "FxSwap",
    "currencyPair": "EURUSD",
    "direction": "Buy",
    "notionalCurrency": "EUR",
    "notionalAmount": 1E6,
    "nearStrike": 1.1,
    "nearExpiry": 2025.12.08,
    "nearDelivery": 2025.12.10,
    "farStrike": 1.2,
    "farExpiry": 2026.06.08,
    "farDelivery": 2026.06.10
}
instrument = parseInstrument(swap)
print(instrument)

外汇欧式期权

字段名 类型 描述 是否必填
productType STRING 固定填 "Option"
optionType STRING 固定填 "EuropeanOption"
assetType STRING 固定填 "FxEuropeanOption"
notionalAmount DOUBLE 名义本金数量
notionalCurrency STRING 名义本金货币
instrumentId STRING 金融工具 ID
maturity DATE 到期日
underlying STRING

货币对,格式如:"EURUSD","EUR.USD" 或 "EUR/USD"。支持如下货币对:

  • EURUSD:欧元兑美元

  • USDCNY:美元兑人民币

  • EURCNY:欧元兑人民币

  • GBPCNY:英镑兑人民币

  • JPYCNY:日元兑人民币

  • HKDCNY:港币兑人民币

direction STRING 交易方向。可选值为:"Buy"、"Sell"。
strike DOUBLE 执行价格。
dayCountConvention STRING 日期计数惯例,可选 "ActualActualISDA", "ActualActualISMA", "Actual365", "Actual360"
payoffType STRING 收益类型,可选值为 "Call"、 "Put"
domesticCurve STRING 定价时参考的本币贴现曲线名称
foreignCurve STRING 定价时参考的外币贴现曲线名称
delivery DATE 交割日

注意:delivery 字段从 version 2 版本开始支持。升级低于 version 2 的旧版本数据到 version 2 或更高版本时,原有记录中缺失的 delivery 字段将自动填充为 maturity + 2。

下例定义了一个 外汇欧式期权的 INSTRUMENT 对象。

option =  {
    "productType": "Option",
    "optionType": "EuropeanOption",
    "assetType": "FxEuropeanOption",
    "notionalCurrency": "EUR",
    "notionalAmount": 1000000.0,
    "strike": 1.2,
    "maturity": 2025.10.08,
    "payoffType": "Call",
    "dayCountConvention": "Actual365",
    "underlying": "EURUSD"
}
instrument = parseInstrument(option)
print(instrument)

外汇无本金交割远期

字段名 类型 描述 是否必填
productType STRING 产品名称,固定值为 "Forward"
forwardType STRING 远期类型,固定值为 "FxNonDeliverableForward"
notionalAmount DOUBLE 名义本金金额,例如 1E7
notionalCurrency STRING 名义本金货币,例如 "USD"
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 执行价格
settlementCurrency STRING 结算货币
domesticCurve STRING 定价时参考的本币贴现曲线名称
foreignCurve STRING 定价时参考的外币贴现曲线名称

外汇区间累计期权

字段名 类型 描述 是否必填
productType STRING 固定填 "Option"
optionType STRING 固定填 "RangeAccrualOption"
assetType STRING 固定填 "FxRangeAccrualOption"
notionalAmount DOUBLE 名义本金金额,例如,1E7
notionalCurrency STRING 名义本金货币,例如,"USD"
instrumentId STRING 金融工具 ID
start DATE 起息日
maturity DATE 到期日
underlying STRING 货币对,格式如:"EURUSD","EUR.USD" 或 "EUR/USD"。支持如下货币对:
  • "EURUSD":欧元兑美元
  • "USDJPY":美元兑日元
  • "USDCNY":美元兑人民币
  • "EURCNY":欧元兑人民币
  • "GBPCNY":英镑兑人民币
  • "JPYCNY":日元兑人民币
  • "HKDCNY":港币兑人民币
direction STRING 交易方向。可选值为:"Buy"、"Sell"。
dayCountConvention STRING 日期计数惯例,可选 "ActualActualISDA", "ActualActualISMA", "Actual365", "Actual360"
lowerBarrier DOUBLE 区间下限
upperBarrier DOUBLE 区间上限
payoffType STRING 收益类型,可选值为 "Call"、 "Put"。
reportCurrency STRING 报告货币

商品期货美式期权

字段名 类型 描述 是否必填
productType STRING 固定填 "Option"
optionType STRING 固定填 "AmericanOption"
assetType STRING 固定填 "CmFutAmericanOption"
notionalAmount DOUBLE 名义本金额
notionalCurrency STRING 名义本金货币,默认值为 "CNY"
instrumentId STRING 合约代码,标准格式为:标的期货合约代码+合约到期月份+期权类型代码+行权价格,如白糖期权为 SR2509P6300 = SR+2509+P+6300
direction STRING 买卖方向,可选值为 Buy,Sell。默认值为 Buy。
maturity DATE 到期日
strike DOUBLE 执行价格
payoffType STRING 收益类型,可选 Call 和 Put
underlying STRING 标的期货合约代码,如 SR2509
dayCountConvention STRING 日期计数惯例, 可选 "ActualActualISDA", "ActualActualISMA", "Actual365", "Actual360"
discountCurve STRING 定价时参考的贴现曲线名称,人民币存款默认为 "CNY_FR_007"

商品期货欧式期权

字段名 类型 描述 是否必填
productType STRING 固定填 "Option"
optionType STRING 固定填 "EuropeanOption"
assetType STRING 固定填 "CmFutEuropeanOption"
notionalAmount DOUBLE 名义本金额
notionalCurrency STRING 名义本金货币,默认值为 "CNY"
instrumentId STRING

合约代码,标准格式为:标的期货合约代码+合约到期月份+期权类型代码+行权价格,如白糖期权

SR2509P6300 = SR+2509+P+6300

direction STRING 买卖方向 Buy Sell,默认为 Buy
maturity DATE 到期日
strike DOUBLE 执行价格
payoffType STRING 枚举,可选 Call 和 Put
underlying STRING 标的期货合约代码,如 SR2509
dayCountConvention STRING 日期计数惯例,可选 "ActualActualISDA"、"ActualActualISMA"、"Actual365"、"Actual360"
discountCurve STRING 定价时参考的贴现曲线名称,人民币存款默认为 "CNY_FR_007"

权益类美式期权

字段名 类型 描述 是否必填
productType STRING 固定填 "Option"
optionType STRING 固定填 "AmericanOption"
assetType STRING 固定填 "EqAmericanOption"
notionalAmount DOUBLE 名义本金额
notionalCurrency STRING 名义本金货币,默认值为 "CNY"
instrumentId STRING

合约代码,如代码 TCH250328C0040000的解读如下:

  • TCH: 标的为腾讯控股

  • 250328: 到期日为2025年3月28日。

  • C: 期权类型为认购(Call)

  • 0040000: 行权价为400.00港元。

direction STRING 买卖方向 Buy Sell,默认为 Buy
maturity DATE 到期日
strike DOUBLE 执行价格
payoffType STRING 枚举,可选 "Call" 和 "Put"
underlying STRING 标的期货合约代码,如 TCH
dayCountConvention STRING 日期计数惯例, 可选 "ActualActualISDA", "ActualActualISMA", "Actual365", "Actual360"
discountCurve STRING 定价时参考的贴现曲线名称,人民币存款默认为 "CNY_FR_007"
dividendCurve STRING 定价时参考的股息曲线名称

权益类欧式期权

字段名 类型 描述 是否必填
productType STRING 固定填 "Option"
optionType STRING 固定填 "EuropeanOption"
assetType STRING 固定填 "EqEuropeanOption"
notionalAmount DOUBLE 名义本金额
notionalCurrency STRING 名义本金货币,默认值为 "CNY"
instrumentId STRING

合约代码,如中证 500ETF 期权

510500C2512M04800

direction STRING 买卖方向 Buy Sell,默认为 Buy
maturity DATE 到期日
strike DOUBLE 执行价格
payoffType STRING 枚举,可选 Call 和 Put
underlying STRING 标的期货合约代码,如 510050
dayCountConvention STRING 日期计数惯例,可选 "ActualActualISDA"、"ActualActualISMA"、"Actual365"、"Actual360"
discountCurve STRING 定价时参考的贴现曲线名称,人民币存款默认为 "CNY_FR_007"
dividendCurve STRING 定价时参考的股息曲线名称

欧式利率互换期权

字段名 类型 描述 是否必填
productType STRING 固定填 "Option"
optionType STRING 固定填 "EuropeanOption"
assetType STRING 固定填 "IrEuropeanSwaption"
instrumentId STRING 合约代码,标准格式为:“SWPT_参考利率_期权期限x利率互换期限C/P”比如:“SWPT_LPR1Y_1Y5YC” 表示参考利率为LPR1Y、期权期限为1Y的固定利率支付方利率互换期权,利率互换期限为5Y
start DATE 起息日
maturity DATE 到期日
strike DOUBLE 执行利率
payoffType STRING 枚举,可选 "Call" 和 "Put"
underlying DICT/INSTRUMENT 标的资产:可解析成 IrFixedFloatingSwap 对象的字典或者 IrFixedFloatingSwap 对象
dayCountConvention STRING 日期计数惯例, 可选 "ActualActualISDA", "ActualActualISMA", "Actual365", "Actual360"
discountCurve STRING 定价时参考的贴现曲线名称,人民币存款默认为 "CNY_FR_007"
forwardCurve STRING 定价时参考的远期曲线名称,如 "CNY_LPR_1Y"

权益类区间累计期权

parseInstrument 支持解析权益类区间累计期权。金融工具描述应包含以下字段:

字段名 类型 描述 是否必填
productType STRING 固定填 "Option"。
optionType STRING 固定填 "RangeAccrualOption"。
assetType STRING 固定填 "EqRangeAccrualOption"。
instrumentId STRING 合约代码,场外期权可自定义。
maturity DATE 到期日。
delivery DATE 交割日。默认值等于 maturity
coupon DOUBLE 票息。
lowerBarrier DOUBLE 区间下限。
upperBarrier DOUBLE 区间上限。
fixingDates DATE 向量 观察日序列,要求递增。
direction STRING 买卖方向,可选 "Buy" 和 "Sell"。默认值为 "Buy"。
dayCountConvention STRING 日期计数惯例,可选 "ActualActualISDA"、"ActualActualISMA"、"Actual365"、"Actual360"。
underlying STRING 标的名称,例如 "50ETF"。
notionalAmount DOUBLE 名义本金额。
notionalCurrency STRING 名义本金货币。默认值为 "CNY"。
discountCurve STRING 定价时参考的贴现曲线名称。默认值为空字符串。
dividendCurve STRING 定价时参考的股息曲线名称。默认值为空字符串。

下例使用字典描述权益类区间累计期权,并通过 parseInstrument 生成 INSTRUMENT 类型对象。

option = {
    "productType": "Option",
    "optionType": "RangeAccrualOption",
    "assetType": "EqRangeAccrualOption",
    "instrumentId": "0001",
    "notionalAmount": 1000000.0,
    "notionalCurrency": "CNY",
    "maturity": 2026.06.01,
    "delivery": 2026.06.01,
    "underlying": "50ETF",
    "direction": "Buy",
    "dayCountConvention": "Actual365",
    "lowerBarrier": 2.95,
    "upperBarrier": 3.25,
    "coupon": 0.1,
    "fixingDates": [2026.04.01, 2026.05.01],
    "discountCurve": "CNY_FR_007",
    "dividendCurve": "510050"
}
instrument = parseInstrument(option)
print(instrument)

权益类数字期权

parseInstrument 支持解析权益类数字期权。金融工具描述应包含以下字段:

字段名 类型 描述 是否必填
productType STRING 固定填 "Option"。
optionType STRING 固定填 "DigitalOption"。
assetType STRING 固定填 "EqDigitalOption"。
instrumentId STRING 合约代码,场外期权可自定义。
maturity DATE 到期日。
strike DOUBLE 执行价格。
dayCountConvention STRING 日期计数惯例,可选 "ActualActualISDA"、"ActualActualISMA"、"Actual365"、"Actual360"。
direction STRING 买卖方向,可选 "Buy" 和 "Sell"。默认值为 "Buy"。
payoffType STRING 收益类型,可选 "Call" 和 "Put"。
underlying STRING 标的代码,例如 "510050"。
notionalAmount DOUBLE 名义本金额。
notionalCurrency STRING 名义本金货币。默认值为 "CNY"。
discountCurve STRING 定价时参考的贴现曲线名称。默认值为空字符串。
dividendCurve STRING 定价时参考的股息曲线名称。默认值为空字符串。

利率上下限期权

字段名 类型 描述 是否必填
productType STRING 固定填 "Option"
optionType STRING 固定填 "EuropeanOption"
assetType STRING 固定填 "IrCapFloor"
notionalAmount DOUBLE 名义本金数量,如 "1E8"
notionalCurrency STRING 名义本金货币,如 "CNY",默认为 "CNY"
instrumentId STRING

合约代码,标准格式为:

"Cap/Floor_参考利率_期权期限"。

例如:"Cap_LPR1Y_6M" 表示参考利率为 LPR_1Y、期权期限为 6M 的利率上限期权。

iborIndex STRING 参考利率,可选值为 "LPR_1Y" 或 "LPR_5Y"
lastFixing DOUBLE 最近一个已经确定的参考利率的 fixing 值
start DATE 起息日
maturity DATE 到期日
strike DOUBLE 执行利率
capFloorType STRING

标识“利率上限”或“利率下限”,可选:

  • "Cap":利率上限

  • "Floor":利率下限

frequency STRING

支付频率,不填则使用参考利率的惯用频率,对于 "LPR_1Y" 及 "LPR_5Y",默认为 "Quarterly”。

可选值为:

  • "Annual":每年付息一次

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

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

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

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

  • "Monthly":每月付息一次

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

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

  • "Weekly":每周付息一次

  • "Daily":每日付息一次

dayCountConvention STRING 日期计数惯例,可选 "ActualActualISDA", "ActualActualISMA", "Actual365", "Actual360"
discountCurve STRING 定价时参考的贴现曲线名称,如 "CNY_FR_007"
forwardCurve STRING 定价时参考的远期曲线名称,如 "CNY_LPR_1Y"

下例定义了一个利率上下限期权的 INSTRUMENT 对象。

lpr1yFloorDict = {
    "productType": "Option",
    "optionType": "EuropeanOption",
    "assetType": "IrCapFloor",
    "instrumentId": "LPR1Y_FLOOR_SAMPLE_11",
    "notionalAmount": 37000000.0,
    "notionalCurrency": "CNY",
    "start": 2021.03.18,
    "maturity": 2022.03.17,
    "strike": 0.035,
    "lastFixing": 0.0340,
    "frequency": "Quarterly",
    "capFloorType": "Floor",
    "iborIndex": "LPR_1Y",
    "dayCountConvention": "Actual360",
    "discountCurve": "CNY",
    "forwardCurve": "LPR_1Y"
}
lpr1yFloor = parseInstrument(lpr1yFloorDict)

用户自定义

支持用户自定义金融工具,除 producType 外,所有字段均可自定义。

字段名 类型 描述 是否必填
productType STRING 固定填 "UserDefined"

相关函数:bondPricer(债券定价)、bondPledgedRepoPricer(债券质押式回购定价)、creditDefaultSwapPricer(信用违约互换定价)、irDepositPricer(存款定价)、bondFuturesPricer(国债期货定价)、fxForwardPricer(外汇远期定价)、fxSwapPricer(外汇掉期定价)、irCapFloorPricer(利率上下限期权定价)、irFixedFloatingSwapPricer(利率互换定价)、fxEuropeanOptionPricer(外汇欧式期权定价)、eqRangeAccrualOptionPricer(权益类区间累计期权定价)、eqDigitalOptionPricer(权益类数字期权定价)、irForwardRateAgreementPricer(远期利率协议定价)