386 lines
10 KiB
Markdown
386 lines
10 KiB
Markdown
# 债券 / 中间函数
|
||
|
||
## `bondDaysBetweenPreviousCouponandNextCoupon(settlement_date)`
|
||
|
||
上一个付息日与下一个付息日之间的天数
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ----------------- | -------- | ------ |
|
||
| `settlement_date` | datetime | 结算日 |
|
||
|
||
返回:int
|
||
|
||
## `bondDaysBetweenPreviousCouponandSettlement(settlement_date)`
|
||
|
||
计息天数,上一个付息日与结算日之间的天数。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ----------------- | -------- | ------ |
|
||
| `settlement_date` | datetime | 结算日 |
|
||
|
||
返回:int
|
||
|
||
## `bondEndDateNewestPayment(settlement_date)`
|
||
|
||
当前计息年度的截止日
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ----------------- | -------- | ------ |
|
||
| `settlement_date` | datetime | 结算日 |
|
||
|
||
返回:datetime
|
||
|
||
## `bondNumbersBetween(beg_t, end_t, frequency)`
|
||
|
||
结算日至到期日的债券付息次数(中间函数)
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ----------- | -------- | -------------- |
|
||
| `beg_t` | datetime | 日期,开始日期 |
|
||
| `end_t` | datetime | 日期,截止日期 |
|
||
| `frequency` | int | 整数,频率 |
|
||
|
||
返回:int
|
||
|
||
## `bondNumbersBetweenSettlementandFutureDay(end_t, future_t)`
|
||
|
||
评估日与未来评估日之间的付息次数
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---------- | -------- | ---------- |
|
||
| `end_t` | datetime | 评估日 |
|
||
| `future_t` | datetime | 未来评估日 |
|
||
|
||
返回:int
|
||
|
||
## `BondPreviousCouponDate_Calculator(settlement_date, dated_date, maturity_date)`
|
||
|
||
上一付息日(中间函数)
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ----------------- | -------- | ------ |
|
||
| `settlement_date` | datetime | 结算日 |
|
||
| `dated_date` | datetime | 起息日 |
|
||
| `maturity_date` | datetime | 到期日 |
|
||
|
||
返回:datetime
|
||
|
||
## `bondYearsBetween(beg_t, end_t)`
|
||
|
||
两个日期之间的整年数
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------- | -------- | -------------- |
|
||
| `beg_t` | datetime | 日期,开始日期 |
|
||
| `end_t` | datetime | 日期,截止日期 |
|
||
|
||
返回:int
|
||
|
||
## `bondYearsBetweenDatedandSettlement(settlement_date)`
|
||
|
||
到期一次还本付息债券起息日至结算日的整年数
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ----------------- | -------- | ------ |
|
||
| `settlement_date` | datetime | 结算日 |
|
||
|
||
返回:int
|
||
|
||
## `tEncodeDate(y, m, d)`
|
||
|
||
年月日组合成日期
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---- | ---- | -------- |
|
||
| `y` | int | 整数,年 |
|
||
| `m` | int | 整数,月 |
|
||
| `d` | int | 整数,日 |
|
||
|
||
返回:TDataTime
|
||
|
||
## `tEncodeDate2(day, d)`
|
||
|
||
日期与日重组
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ----- | --------- | -------------- |
|
||
| `day` | TDataTime | 日期类型,日期 |
|
||
| `d` | int | 整数,日 |
|
||
|
||
返回:TDataTime
|
||
|
||
## `bondRemainPayNumber(goal_date, end_t, f)`
|
||
|
||
债券剩余的付息次数,与系统股票相关
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ----------- | --------- | ------------------ |
|
||
| `goal_date` | TDataTime | 日期类型,到期日 |
|
||
| `end_t` | TDataTime | 日期类型,交易日 |
|
||
| `f` | Int | 整数类型,付息频率 |
|
||
|
||
返回:Integer
|
||
|
||
### 示例
|
||
|
||
```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
|
||
```
|
||
|
||
## `bondCoupDayBs(goal_date, end_t, f)`
|
||
|
||
当前付息期内截止到交易日的天数,与系统股票相关
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ----------- | --------- | ------------------ |
|
||
| `goal_date` | TDataTime | 日期类型,到期日 |
|
||
| `end_t` | TDataTime | 日期类型,交易日 |
|
||
| `f` | Int | 整数类型,付息频率 |
|
||
|
||
返回:Integer
|
||
|
||
### 示例
|
||
|
||
```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
|
||
```
|
||
|
||
## `bondDuration(bond_type, y, t, c, f)`
|
||
|
||
债券的久期,与系统股票相关
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ----------- | ---- | --------------------------------- |
|
||
| `bond_type` | Int | 用户自定义,债券类型,其取值如下: |
|
||
| `y` | Real | 实数,到期收益率/年 |
|
||
| `t` | Real | 实数,到期支付期 |
|
||
| `c` | Real | 实数,息票率/年 |
|
||
| `f` | Int | 整数,付息频率 |
|
||
|
||
返回:Real
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return bondDuration(0,0.0799999982118607,40,0.100000001490116,2);
|
||
//结果:19.74
|
||
```
|
||
|
||
## `bondProvider()`
|
||
|
||
债券数据来源系统参数
|
||
|
||
返回:Real
|
||
|
||
## `bondDaysBetweenDatedandMaturityDate()`
|
||
|
||
零息债券起息日到到期日的实际天数
|
||
|
||
返回:Integer
|
||
|
||
## `bondDaysBetweenDatedandSettlement(settlement_date)`
|
||
|
||
零息债券起息日到结算日的实际天数
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ----------------- | --------- | ------ |
|
||
| `settlement_date` | TDateTime | 结算日 |
|
||
|
||
返回:Integer
|
||
|
||
## `bondDaysBetweenSettlementandMaturity(settlement_date)`
|
||
|
||
结算日至到期日的剩余天数
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ----------------- | --------- | ------ |
|
||
| `settlement_date` | TDateTime | 结算日 |
|
||
|
||
返回:Integer
|
||
|
||
## `bondDaysBetweenSettlementandNextCoupon(settlement_date)`
|
||
|
||
结算日至下一个付息日的计息天数
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ----------------- | --------- | ------ |
|
||
| `settlement_date` | TDateTime | 结算日 |
|
||
|
||
返回:Integer
|
||
|
||
## `bondNextCouponDate(settlement_date)`
|
||
|
||
结算日对应的下一个付息日
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ----------------- | --------- | ------ |
|
||
| `settlement_date` | TDateTime | 结算日 |
|
||
|
||
返回:TDateTime
|
||
|
||
## `bondNumbersBetweenSettlementandMaturity(settlement_date)`
|
||
|
||
剩余付息次数,结算日至到期日剩余付息次数。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ----------------- | --------- | ------ |
|
||
| `settlement_date` | TDateTime | 结算日 |
|
||
|
||
返回:Real
|
||
|
||
## `bondPreviousCouponDate(settlement_date)`
|
||
|
||
结算日对应的上一个付息日
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ----------------- | --------- | ------ |
|
||
| `settlement_date` | TDateTime | 结算日 |
|
||
|
||
返回:TDateTime
|
||
|
||
## `bondYearsBetweenDatedandMaturity()`
|
||
|
||
起息日到到期日的整年数
|
||
|
||
返回:Integer
|
||
|
||
## `bondYearsBetweenSettlementandMaturity(settlement_date)`
|
||
|
||
结算日至到期日剩余整年数
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ----------------- | --------- | ------ |
|
||
| `settlement_date` | TDateTime | 结算日 |
|
||
|
||
返回:Integer
|
||
|
||
## `bondRemainDuration(settlement_date)`
|
||
|
||
结算日至到期日的剩余期限(单位:年)
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ----------------- | --------- | ------ |
|
||
| `settlement_date` | TDateTime | 结算日 |
|
||
|
||
返回:Real
|
||
|
||
## `bondBeginDateNewestPayment(settlement_date)`
|
||
|
||
当前计息年度的起始日,根据债券的起息日和结算日计算
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ----------------- | --------- | ------ |
|
||
| `settlement_date` | TDateTime | 结算日 |
|
||
|
||
返回:TDateTime
|
||
|
||
## `bondPayMentByEndt(bondarr, endt)`
|
||
|
||
债券数组在指定日是否有付息以及相应的数据
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| --------- | --------- | ------------------ |
|
||
| `bondarr` | Array | 一维数组,债券数组 |
|
||
| `endt` | TDateTime | 日期型时间,截止日 |
|
||
|
||
返回:TableArray
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
bondarr:=array('SH196237','SZ101516','SH175901');
|
||
endt:=intToDate(20230116);
|
||
return bondPayMentByEndt(bondarr,endt);
|
||
//结果
|
||
```
|
||
|
||
## `getBondMaturityTradeData(endt, tpgp)`
|
||
|
||
债券到期兑付本金转化为交易数据
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------ | ---------- | ------------------ |
|
||
| `endt` | TDateTime | 日期型时间,截止日 |
|
||
| `tpgp` | TableArray | 数据表类型,昨持仓 |
|
||
|
||
返回:TableArray
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
end_t:=intToDate(20170613);
|
||
tpgp:=array(
|
||
("截止日":42734.0,"代码":"BK078020","方向":1.0,"乘数":1.0,"保证金比例(%)":100.0,"保证金比例II(%)":nil,"数量":1330.0,"收盘":103.68,"市值":137899.32,"保证金占用":137899.32,"占净值比例(%)":0.14,"总成本":134984.59,"成本价":101.49,"浮动盈亏":2914.73,"浮盈率(%)":2.16,"证券类别":18.0,"行业名称":0.0),
|
||
("截止日":42734.0,"代码":"BK030014","方向":1.0,"乘数":1.0,"保证金比例(%)":100.0,"保证金比例II(%)":nil,"数量":25131.0,"收盘":76.76,"市值":1929151.06,"保证金占用":1929151.06,"占净值比例(%)":1.9,"总成本":1895204.27,"成本价":75.41,"浮动盈亏":33946.78,"浮盈率(%)":1.79,"证券类别":18.0,"行业名称":0.0)
|
||
);
|
||
return getBondMaturityTradeData(end_t,tpgp);
|
||
//结果
|
||
```
|
||
|
||
## `bondDataCheck(end_t)`
|
||
|
||
债券是否上市,与系统参数(债券代码)相关。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------- | --------- | ---------- |
|
||
| `end_t` | TDateTime | 截止日期。 |
|
||
|
||
返回:Integer
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
setSysParam(PN_Stock(),"SH127352");
|
||
return bondDataCheck(20180101T);
|
||
//结果:1
|
||
```
|
||
|
||
## `bondInterest(face_value, legal_coupon_rate, goal_date, end_t, f)`
|
||
|
||
债券应计利息。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------------------- | --------- | ---------------- |
|
||
| `face_value` | Real | 实数。面值。 |
|
||
| `legal_coupon_rate` | Real | 实数。票面利率。 |
|
||
| `goal_date` | TDateTime | 日期。到期日。 |
|
||
| `end_t` | TDateTime | 日期。截止日期。 |
|
||
| `f` | Integer | 整数。付息频率。 |
|
||
|
||
返回:Real
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return bondInterest(100,0.08,20101101T,20101010T,1);
|
||
//结果:7.5178
|
||
```
|
||
|
||
## `bondNegotiableShares(bond_id)`
|
||
|
||
债券流通股。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| --------- | ------ | ------------------ |
|
||
| `bond_id` | String | 字符串。债券代码。 |
|
||
|
||
返回:Real
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return bondNegotiableShares("SH120102");
|
||
```
|