301 lines
7.4 KiB
Markdown
301 lines
7.4 KiB
Markdown
# 金融 / 债券 / 中间函数
|
|
|
|
## `bdV_dataProvider(dbtype)`
|
|
|
|
声明:function
|
|
|
|
返回债券估值-供应商类型
|
|
|
|
<!-- tags: 金融 债券 中间函数 返回 获取 -->
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| -------- | ---- | ----------------------------------- |
|
|
| `dbtype` | int | 用户自定义,数据供应商,其取值如下: |
|
|
|
|
返回:string
|
|
|
|
## `bdV_getFactorValue(dbtype, id, settlement_date, option)`
|
|
|
|
声明:function
|
|
|
|
根据ID获取债券指标
|
|
|
|
<!-- tags: 金融 债券 中间函数 ID -->
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ----------------- | -------- | ---------------------- |
|
|
| `dbtype` | int | 用户自定义,数据提供商 |
|
|
| `id` | int | 用户自定义,债券指标 |
|
|
| `settlement_date` | datetime | 日期,结算日 |
|
|
| `option` | int | 用户自定义,选择权 |
|
|
|
|
返回:array
|
|
|
|
## `bdV_internalCode(dbtype, id)`
|
|
|
|
声明:function
|
|
|
|
返回债券内部代码,与系统股票相关
|
|
|
|
<!-- tags: 金融 债券 中间函数 返回 获取 -->
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| -------- | ------ | ---------------------- |
|
|
| `dbtype` | int | 用户自定义,数据提供商 |
|
|
| `id` | string | 字符串,代码 |
|
|
|
|
返回:string
|
|
|
|
### 示例
|
|
|
|
范例01:返回SH124063'的债券内部代码
|
|
|
|
```tsl
|
|
return bdV_InternalCode(0, 'SH124063');
|
|
// 输出:SH124063.zz
|
|
```
|
|
|
|
## `bondCoupDayBS(goal_date, end_t, f)`
|
|
|
|
声明:function
|
|
|
|
返回当前付息期内截止到交易日的天数,与系统股票相关
|
|
|
|
<!-- tags: 金融 债券 中间函数 返回 获取 -->
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ----------- | ----------- | ------------------ |
|
|
| `goal_date` | t_data_time | 日期类型,到期日 |
|
|
| `end_t` | t_data_time | 日期类型,交易日 |
|
|
| `f` | int | 整数类型,付息频率 |
|
|
|
|
返回:integer
|
|
|
|
### 示例
|
|
|
|
范例01:调用函数
|
|
|
|
```tsl
|
|
// 返回'BK000002'在2003年3月18日当前付息期内截止到交易日的天数
|
|
setSysParam(PN_Stock(), 'BK000002'); // 设置股票代码
|
|
goal_date := intToDate(base(502026)); // 到期日
|
|
end_t := 20030318T; // 交易日
|
|
f := base(502021); // 付息频率
|
|
return bondCoupDayBs(goal_date, end_t, f);
|
|
// 输出:334
|
|
```
|
|
|
|
## `bondCoupDaysNC(goal_date, end_t, f)`
|
|
|
|
声明:function
|
|
|
|
返回债券交易日距下一次付息日的实际天数,与系统股票相关
|
|
|
|
<!-- tags: 金融 债券 中间函数 返回 获取 -->
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ----------- | -------- | ---------------- |
|
|
| `goal_date` | datetime | 日期类型,到期日 |
|
|
| `end_t` | datetime | 日期类型,交易日 |
|
|
| `f` | int | 整数,付息频率 |
|
|
|
|
返回:int
|
|
|
|
### 示例
|
|
|
|
范例01:调用函数
|
|
|
|
```tsl
|
|
SetSysParam(PN_Stock(), 'BK000002'); // 设置股票代码
|
|
GoalDate := IntToDate(base(502026)); // 到期日
|
|
EndT := 20030318T; // 交易日
|
|
f := base(502021); // 付息频率
|
|
return BondCoupDaysNC(GoalDate, EndT, f);
|
|
```
|
|
|
|
## `bondDaysbetween(begt, endt, o_ption)`
|
|
|
|
声明:function
|
|
|
|
返回相隔天数
|
|
|
|
<!-- tags: 金融 债券 中间函数 返回 获取 -->
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| --------- | -------- | ----------------------------------- |
|
|
| `begt` | datetime | 日期。起始日期 |
|
|
| `endt` | datetime | 日期。截止日期 |
|
|
| `o_ption` | int | 用户自定义。返回结果类型,取值如下: |
|
|
|
|
返回:int
|
|
|
|
## `bondDuration(bond_type, y, t, c, f)`
|
|
|
|
声明:function
|
|
|
|
返回债券的久期,与系统股票相关
|
|
|
|
<!-- tags: 金融 债券 中间函数 返回 获取 -->
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ----------- | ---- | --------------------------------- |
|
|
| `bond_type` | int | 用户自定义,债券类型,其取值如下: |
|
|
| `y` | real | 实数,到期收益率/年 |
|
|
| `t` | real | 实数,到期支付期 |
|
|
| `c` | real | 实数,息票率/年 |
|
|
| `f` | int | 整数,付息频率 |
|
|
|
|
返回:real
|
|
|
|
### 示例
|
|
|
|
范例01:调用函数
|
|
|
|
```tsl
|
|
return bondDuration(0, 0.0799999982118607, 40, 0.100000001490116, 2);
|
|
// 输出:19.74
|
|
```
|
|
|
|
## `bondProvider()`
|
|
|
|
声明:function
|
|
|
|
返回债券数据来源系统参数
|
|
|
|
<!-- tags: 金融 债券 中间函数 返回 获取 -->
|
|
|
|
返回:real
|
|
|
|
## `bondRemainPayNumber(goal_date, end_t, f)`
|
|
|
|
声明:function
|
|
|
|
返回债券剩余的付息次数,与系统股票相关
|
|
|
|
<!-- tags: 金融 债券 中间函数 返回 获取 -->
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ----------- | ----------- | ------------------ |
|
|
| `goal_date` | t_data_time | 日期类型,到期日 |
|
|
| `end_t` | t_data_time | 日期类型,交易日 |
|
|
| `f` | int | 整数类型,付息频率 |
|
|
|
|
返回:integer
|
|
|
|
### 示例
|
|
|
|
范例01:调用函数
|
|
|
|
```tsl
|
|
// 返回'BK000002'在2003年4月18日剩余的付息次数
|
|
setSysParam(PN_Stock(), 'BK000002'); // 设置股票代码
|
|
goal_date := intToDate(base(502026)); // 到期日
|
|
end_t := 20030418T; // 交易日
|
|
f := base(502021); // 付息频率
|
|
return bondRemainPayNumber(goal_date, end_t, f);
|
|
// 输出:8
|
|
```
|
|
|
|
## `nSharesOfConvertibleBond(info_id, end_t)`
|
|
|
|
声明:function
|
|
|
|
返回可转债流通股本,与系统股票相关
|
|
|
|
<!-- tags: 金融 债券 中间函数 返回 获取 -->
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| --------- | -------- | ------------------ |
|
|
| `info_id` | int | 整数,数据表索引号 |
|
|
| `end_t` | datetime | 日期,截止日期 |
|
|
|
|
返回:float
|
|
|
|
### 示例
|
|
|
|
范例01:调用函数
|
|
|
|
```tsl
|
|
SetSysParam(PN_Stock(), 'BK000002'); // 设置股票代码
|
|
EndT := 20030318T; // 截止日
|
|
return NSharesOfConvertibleBond(91, EndT);
|
|
```
|
|
|
|
## `nSharesOfCorporationBond(info_id, end_t)`
|
|
|
|
声明:function
|
|
|
|
返回企业债券流通股本,与系统股票相关
|
|
|
|
<!-- tags: 金融 债券 中间函数 返回 获取 -->
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| --------- | -------- | ------------------ |
|
|
| `info_id` | int | 整数,数据表索引号 |
|
|
| `end_t` | datetime | 日期,截止日期 |
|
|
|
|
返回:float
|
|
|
|
### 示例
|
|
|
|
范例01:调用函数
|
|
|
|
```tsl
|
|
SetSysParam(PN_Stock(), 'BK000002'); // 设置股票代码
|
|
EndT := 20120318T; // 截止日
|
|
return NSharesOfCorporationBond (90, EndT);
|
|
```
|
|
|
|
## `nSharesOfGovBond(info_id, end_t)`
|
|
|
|
声明:function
|
|
|
|
返回国债流通股本,与系统股票相关
|
|
|
|
<!-- tags: 金融 债券 中间函数 返回 获取 -->
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| --------- | -------- | -------- |
|
|
| `info_id` | int | 无效参数 |
|
|
| `end_t` | datetime | 无效参数 |
|
|
|
|
返回:float
|
|
|
|
### 示例
|
|
|
|
范例01:调用函数
|
|
|
|
```tsl
|
|
SetSysParam(PN_Stock(), 'BK000000'); // 设置股票代码
|
|
return NSharesOfGovBond(0, 0);
|
|
```
|
|
|
|
## `pn_bonddataprovider()`
|
|
|
|
声明:function
|
|
|
|
返回字符串"bdpd",债券提供商系统参数
|
|
|
|
<!-- tags: 金融 债券 中间函数 返回 获取 -->
|
|
|
|
返回:string
|
|
|
|
## `pn_bondStandardDate()`
|
|
|
|
声明:function
|
|
|
|
返回债券基准公布日串,用于债券取现金流
|
|
|
|
<!-- tags: 金融 债券 中间函数 返回 获取 -->
|
|
|
|
返回:string
|
|
|
|
### 示例
|
|
|
|
范例01:结果:BondStandardDate
|
|
|
|
```tsl
|
|
return Pn_BondStandardDate();
|
|
// 输出:BondStandardDate
|
|
```
|