# 金融 / 金融工程 / 投资组合 / 相关系数与BetaAlpha

## `adjustSmaple(bk_name, beg_t, money, from_no, to_no, percent_type)`

声明：function

按市盈率名次从指定板块选股，再按指定权重分配资金并计算可购买股数

<!-- tags: 金融 金融工程 投资组合 相关系数 Beta Alpha 样本调整 选股 市盈率 资金分配 权重 -->

| 参数           | 类型        | 说明                 |
| -------------- | ----------- | -------------------- |
| `bk_name`      | string      | 待筛选的板块名称     |
| `beg_t`        | t_date_time | 选股和资金分配日期   |
| `money`        | real        | 总投资金额，单位万元 |
| `from_no`      | integer     | 市盈率升序起始名次   |
| `to_no`        | integer     | 市盈率升序截止名次   |
| `percent_type` | integer     | 权重类型，取值见下   |

percent_type 取值

- `0` — 流通股本加权
- `1` — 总股本加权
- `2` — 等资金加权

返回：table_array

### 示例

范例01：从沪深 A 股中选择市盈率第 11 至 20 名的股票

```tsl
return adjustSmaple(
    "深证A股;上证A股", intToDate(20120926), 500, 11, 20, 0);
```

## `betaAlphaIndexRelative(stocks, index, start_date)`

声明：function

返回股票与指数的Beta,Alpha以及相关系数，与当前时间有关，当前时间为区间截止日

<!-- tags: 金融 金融工程 投资组合 BetaAlpha 相关系数与 返回 获取 -->

| 参数         | 类型        | 说明                     |
| ------------ | ----------- | ------------------------ |
| `stocks`     | array       | 一维字符串数组，股票列表 |
| `index`      | string      | 字符串，指数代码         |
| `start_date` | t_date_time | 日期型时间，开始计算日期 |

返回：table_array

### 示例

范例01：调用函数

```tsl
// 获取当前组合中个股与指数的Beta系数、Alpha值与相关系数
// 计算两个股票与上证指数在2012-9-26日至2020-12-31日区间的相关性
setSysParam(pn_date(), 20191231T);
stocks := array("SH600718", "SZ000920");
return betaAlphaIndexRelative(stocks, "SH000001", 20120926T);
```

## `bkBetaAlphaIndexRelative(bk, index, start_date)`

声明：function

返回板块成分股与指数Index的Beta与Alpha以及相关系数

<!-- tags: 金融 金融工程 投资组合 BetaAlpha 相关系数与 返回 获取 -->

| 参数         | 类型        | 说明                     |
| ------------ | ----------- | ------------------------ |
| `bk`         | string      | 字符串，板块名称         |
| `index`      | string      | 字符串，指数代码         |
| `start_date` | t_date_time | 日期型时间，开始计算日期 |

返回：table_array

### 示例

范例01：调用函数

```tsl
// 获取当前组合中个股与指数的Beta系数、Alpha值与相关系数
// 计算当前板块"申万采掘服务"中个股与上证指数在2012-9-26日至2020-12-31日区间的相关性
setSysParam(pn_date(), 20201231T);
return bkBetaAlphaIndexRelative("申万采掘服务", "SH000001", intToDate(20120926));
```

## `bkCorrelMatrix(bk, start_date)`

声明：function

返回板块成分股之间的相关系数矩阵。与当前时间有关，当前时间为区间截止日

<!-- tags: 金融 金融工程 投资组合 BetaAlpha 相关系数与 返回 获取 -->

| 参数         | 类型        | 说明                     |
| ------------ | ----------- | ------------------------ |
| `bk`         | string      | 字符串，板块名称         |
| `start_date` | t_date_time | 日期型时间，开始计算日期 |

返回：table_array

### 示例

范例01：调用函数

```tsl
// 计算两个股票与上证指数在2019-9-26日至2020-12-31日区间的相关系数矩阵
setSysParam(pn_date(), 20201231T);
return bkCorrelMatrix("申万采掘服务", 20190926T);
```

## `correlMatrix(stocks, start_date)`

声明：function

返回股票列表之间的相关系数。与当前时间有关，当前时间为区间截止日

<!-- tags: 金融 金融工程 投资组合 BetaAlpha 相关系数与 返回 获取 -->

| 参数         | 类型        | 说明                     |
| ------------ | ----------- | ------------------------ |
| `stocks`     | array       | 一维字符串数组，股票列表 |
| `start_date` | t_date_time | 日期型时间，开始计算日期 |

返回：table_array

### 示例

范例01：调用函数

```tsl
// 组合个股相关矩阵
setSysParam(pn_date(), 20201231T);
stocks := array("SH600718", "SZ000920");
return correlMatrix(stocks, intToDate(20120926));
```

## `needAdjustSmaple(beg_t, current_date, adjust_month)`

声明：function

判断CurrentDate是否还在BegT往后推AdjustMonth*30的日期内

<!-- tags: 金融 金融工程 投资组合 BetaAlpha 相关系数与 判断 检查 -->

| 参数           | 类型        | 说明                             |
| -------------- | ----------- | -------------------------------- |
| `beg_t`        | t_date_time | 日期型时间，起始时间             |
| `current_date` | t_date_time | 日期型时间，当前时间             |
| `adjust_month` | integer     | 整数，往后推的月份数，月份间隔数 |

返回：table_array

### 示例

范例01：结果：0

```tsl
Return NeedAdjustSmaple(inttodate(20120618), inttodate(20120926), 4);
// 输出：0
```
