# 金融 / 金融工程 / 债券研究 / 利率期限结构

## `bonds_nSModelBeta(p_bond_id, endt, lambda, model_option, lambda_2)`

声明：function

返回债券市场NS模型Beta系数（线性优化）

<!-- tags: 金融 金融工程 债券研究 利率期限结构 查找 搜索 lookup 返回 获取 NS -->

| 参数           | 类型        | 说明                                                                                                                                                                                     |
| -------------- | ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `p_bond_id`    | string      | 字符串,债券品种代码，BTS000001~BTS000034 常见的代码调用: BTS000033 国债 BTS000032 企业债（AAA) BTS000007 公司债(AAA) BTS000021 中短票据(AAA) BTS000013 同业存单(AAA) BTS000001 央票(AAA) |
| `endt`         | datetime    | 日期,指定日期                                                                                                                                                                            |
| `lambda`       | float       | 实数,NS模型衰减系数，取值为0-1                                                                                                                                                           |
| `model_option` | user_define | 用户自定义,模型选择，0:NS模型（默认），1:NSS模型                                                                                                                                         |
| `lambda_2`     | float       | 实数,衰减系数2，仅当ModelOption设置为1（NSS模型）有效，取值0-1                                                                                                                           |

返回：array

### 示例

范例01：array(3.08,-1.43,-0.58)

```tsl
PBondID := "BTS000033"; // 国债
Endt := 20230725t;
Lambda := 0.5;
return Bonds_NSModelBeta(PBondID, Endt, Lambda);
// array(3.08,-1.43,-0.58)
```

## `bonds_nSModelBetaNL(bond_arr, endt, lambda, model_option, lambda_2)`

声明：function

返回债券板块NS模型Beta系数（非线性优化）

<!-- tags: 金融 金融工程 债券研究 利率期限结构 查找 搜索 lookup 返回 获取 NS -->

| 参数           | 类型        | 说明                                                           |
| -------------- | ----------- | -------------------------------------------------------------- |
| `bond_arr`     | array       | 一维字符串数组,债券池                                          |
| `endt`         | datetime    | 日期,指定日期                                                  |
| `lambda`       | float       | 实数,NS模型衰减系数，取值为0-1                                 |
| `model_option` | user_define | 用户自定义,模型选择，0:NS模型（默认），1:NSS模型               |
| `lambda_2`     | float       | 实数,衰减系数2，仅当ModelOption设置为1（NSS模型）有效，取值0-1 |

返回：array

### 示例

范例01：array(2.8,-1.46,0.95)

```tsl
BondArr := array("SH020564", "SH019644", "SH019694", "SH019685", "SH019693", "SH019643", "SH019667", "SH019647", "SH019625", "SH019684");
Endt := 20230725t;
Lambda := 0.5;
return Bonds_NSModelBetaNL(BondArr, Endt, Lambda);
// array(2.8,-1.46,0.95)
```

## `nSBetaSensitivityCal(cash_data, endt, ns_param_arr, delta)`

声明：function

返回NS模型Beta暴露度计算模型 算法：见《应用专题-债券利率期限结构NS模型.pdf》关于暴露度算法介绍

<!-- tags: 金融 金融工程 债券研究 利率期限结构 查找 搜索 lookup 返回 获取 NS -->

| 参数           | 类型    | 说明                                                                    |
| -------------- | ------- | ----------------------------------------------------------------------- |
| `cash_data`    | db_data | 数据表类型,现金流数据，必须包含【现金流】、【剩余期限】字段             |
| `endt`         | date    | 日期,指定日期                                                           |
| `ns_param_arr` | array   | 一维数字数组,NS模型参数数组，带下标，下标为对应的参数值，输入时须含下标 |
| `delta`        | real    | 实数,Beta浮动基点数，单位bp                                             |

返回：array

### 示例

范例01：调用函数

```tsl
// 范例1CashData := array(("现金流":1.7, "剩余期限":1), ("现金流":1.7, "剩余期限":2), ("现金流":1.7, "剩余期限":3), ("现金流":1.7, "剩余期限":4), ("现金流":1.7, "剩余期限":5), ("现金流":1.7, "剩余期限":6), ("现金流":1.7, "剩余期限":7), ("现金流":1.7, "剩余期限":8), ("现金流":1.7, "剩余期限":9), ("现金流":101.7, "剩余期限":10));
endt := 20230725t;
ns_param_arr := array("lambda":0.5, "beta0":4, "beta1":-1, "beta2":1);
delta := 20;
return nsBetaSensitivityCal(cash_data, endt, ns_param_arr, delta);
// array(1.02,0.8,0.19)
```
