# 应用专题 / 债券研究 / 可转债价格分区统计

## `cb_PriceAndDeadlineData`

声明：class

统计到期可转债的价格、期限、持有收益和价格分区数据，并生成频数与透视分析结果

<!-- tags: 可转债 价格分区 期限统计 收益分析 -->

### `FBegT`

声明：field

统计开始日，默认 20060101T

可见性：`public`

类型：datetime

### `FEndT`

声明：field

统计截止日，默认 20201231T

可见性：`public`

类型：datetime

### `FPriceType`

声明：field

统计最高价和最低价时使用的价格类型；0 为收盘价，1 为当日最高价或最低价

可见性：`public`

类型：integer

### `FMRPriceArr`

声明：field

买入价格区间边界数组，默认 `array(0,90,100,110,120,130)`

可见性：`public`

类型：array

### `FMCPriceArr`

声明：field

卖出价格阈值数组，默认 `array(130,140,150,160,170)`

可见性：`public`

类型：array

### `FYearStep`

声明：field

期限频数分布步长，单位为年，默认 0.25

可见性：`public`

类型：real

### `FPriceStep`

声明：field

价格频数分布步长，单位为元，默认 10

可见性：`public`

类型：real

### `FNDay`

声明：field

持有收益率统计使用的交易日数组，默认 `array(5,10,20,30,60,120,240)`

可见性：`public`

类型：array

### `FRLTType`

声明：field

统计维度名称，默认 `median`

可见性：`public`

类型：string

### `Main()`

声明：function

依次执行类中的数据获取、统计与分析流程

可见性：`public`

返回：nil

### `GetMaturityCB(beg_t, end_t)`

声明：function

返回指定区间内有交易数据的到期可转债代码；可重写

可见性：`public`

| 参数    | 类型     | 说明         |
| ------- | -------- | ------------ |
| `beg_t` | datetime | 统计开始日期 |
| `end_t` | datetime | 统计截止日期 |

返回：array

### `DatePriceData(cb_arr, ptype)`

声明：function

返回指定可转债的期限和价格明细

可见性：`public`

| 参数     | 类型    | 说明                             |
| -------- | ------- | -------------------------------- |
| `cb_arr` | array   | 要统计的可转债代码数组           |
| `ptype`  | integer | 最高价和最低价使用的价格类型选项 |

返回：array

### `MRtoMCData(cb_arr, mr_price_arr, mc_price_arr)`

声明：function

统计首次达到买入区间后持有至卖出阈值的期限和收益率

可见性：`public`

| 参数           | 类型  | 说明                 |
| -------------- | ----- | -------------------- |
| `cb_arr`       | array | 要统计的可转债代码   |
| `mr_price_arr` | array | 买入价格区间边界数组 |
| `mc_price_arr` | array | 卖出价格阈值数组     |

返回：array

### `BeforeMCData(cb_arr, mc_price_arr)`

声明：function

统计达到卖出阈值前的价格分区、持有期限和收益率

可见性：`public`

| 参数           | 类型  | 说明               |
| -------------- | ----- | ------------------ |
| `cb_arr`       | array | 要统计的可转债代码 |
| `mc_price_arr` | array | 卖出价格阈值数组   |

返回：array

### `NDayRateData(cb_arr, n_arr)`

声明：function

统计可转债存续期内持有指定交易日数的收益率

可见性：`public`

| 参数     | 类型  | 说明               |
| -------- | ----- | ------------------ |
| `cb_arr` | array | 要统计的可转债代码 |
| `n_arr`  | array | 持有交易日数数组   |

返回：array

### `CBondPriceDetail(beg_t, end_t)`

声明：function

返回可转债在指定期间内的日期、收盘价、最高价和最低价明细

可见性：`public`

| 参数    | 类型     | 说明         |
| ------- | -------- | ------------ |
| `beg_t` | datetime | 明细开始日期 |
| `end_t` | datetime | 明细截止日期 |

返回：array

### `PriceOrDateHis(data, step_1, option)`

声明：function

计算价格或期限数据的频数分布

可见性：`public`

| 参数     | 类型    | 说明                   |
| -------- | ------- | ---------------------- |
| `data`   | array   | 要处理的数据           |
| `step_1` | real    | 频数分布步长           |
| `option` | integer | 0 统计价格，1 统计期限 |

返回：array

### `RatePivotTable(data, ctype, option)`

声明：function

按价格区间和卖出阈值或持有天数生成收益率、持有期限统计表

可见性：`public`

| 参数     | 类型    | 说明                                  |
| -------- | ------- | ------------------------------------- |
| `data`   | array   | 要处理的数据                          |
| `ctype`  | string  | 统计方式，例如 `median` 或 `avg`      |
| `option` | integer | 0 处理持有期限和收益，1 处理 n 日收益 |

返回：array

### `GetData(option)`

声明：function

按编号返回原始价格期限、交易收益或统计分析结果

可见性：`public`

| 参数     | 类型    | 说明             |
| -------- | ------- | ---------------- |
| `option` | integer | 要返回的数据类型 |

返回：array
