# 金融 / 基金 / 基金评估

## `fundAppraisalRatio(index_id, beg_t, end_t, data_select)`

声明：function

计算估价比率(估价比率，公式为α系数/残差)，也即为信息比率，与系统证券pn_stock()相关

<!-- tags: 金融 基金 基金评估 计算 求解 -->

| 参数          | 类型    | 说明         |
| ------------- | ------- | ------------ |
| `index_id`    | string  | 指数代码     |
| `beg_t`       | date    | 开始日期     |
| `end_t`       | date    | 截止日期     |
| `data_select` | integer | 所选取的数据 |

返回：real

### 示例

范例01：调用函数

```tsl
// 取华安创新2003年10月10日到2012年10月19日之间的估价比率
setSysParam(pn_stock(), 'OF040001');
return FundAppraisalRatio("SH000001", intToDate(20031010), intToDate(20121022), 0);
// 输出：0.03157
```

## `fundCalmarRatio(beg_t, end_t, data_select, cycle)`

声明：function

返回基金Calmar。与系统股票pn_stock()、当前时间pn_date()相关

<!-- tags: 金融 基金 基金评估 返回 获取 -->

| 参数          | 类型     | 说明                           |
| ------------- | -------- | ------------------------------ |
| `beg_t`       | datetime | 日期类型，开始日期；           |
| `end_t`       | datetime | 日期类型，截止日期；           |
| `data_select` | int      | 用户自定义类型，所选取的数据； |
| `cycle`       | string   | 周期类型，周期                 |

返回：float

### 示例

范例01：调用函数

```tsl
setsysparam(pn_stock(), "OF162714");
Return FundCalmarRatio(20160101T, 20180903T, 0, cy_day());
```

## `fundJensenMeasure(index_id, beg_t, end_t, rf, data_select)`

声明：function

返回Jense指数(与系统股票pn_stock()相关)

<!-- tags: 金融 基金 基金评估 返回 获取 -->

| 参数          | 类型    | 说明              |
| ------------- | ------- | ----------------- |
| `index_id`    | string  | 指数代码          |
| `beg_t`       | date    | 开始日期          |
| `end_t`       | date    | 截止日期          |
| `rf`          | real    | 无风险年收益率(%) |
| `data_select` | integer | 所选取的数据      |

返回：real

### 示例

范例01：调用函数

```tsl
// 取华安创新2003年03月14日到2012年10月19日之间的Jense指数
setSysParam(pn_stock(), 'OF040001');
return fundJensenMeasure("SH000001", intToDate(20030314), intToDate(20121019), 1.98, 0);
// 输出：0.03575
```

## `fundMeasure(index_id, beg_t, end_t, rf, data_select, annual, cycle)`

声明：function

计算基金的收益、波动与风险评估指标

<!-- tags: 金融 基金 基金评估 收益 波动 风险 指标 年化 -->

| 参数          | 类型     | 说明                   |
| ------------- | -------- | ---------------------- |
| `index_id`    | string   | 基准指数代码           |
| `beg_t`       | datetime | 开始日期               |
| `end_t`       | datetime | 截止日期               |
| `rf`          | real     | 无风险年收益率百分比   |
| `data_select` | integer  | 机构或产品类型         |
| `annual`      | boolean  | 是否对指标执行年化处理 |
| `cycle`       | string   | 净值数据周期           |

data_select 取值

- `-1` — 所有机构
- `0` — 基金
- `1` — 封闭式基金
- `2` — 开放式基金
- `4` — 保险
- `5` — 期货公司
- `6` — 银行
- `15` — 财务公司
- `16` — 上市公司
- `21` — 社保
- `22` — 企业年金
- `29` — QFII
- `30` — 证券公司
- `31` — 基金公司
- `32` — 信托公司
- `36` — 私募基金
- `37` — 信托集合
- `39` — 其他机构
- `40` — 私募基金公司
- `41` — 银行理财
- `42` — 券商理财
- `43` — 基金资管计划
- `44` — 期货资管计划
- `45` — 保险自营
- `46` — 保险资管产品
- `47` — 其他资管计划
- `48` — 基本养老基金
- `49` — 职业年金
- `50` — 养老金产品

返回：array

### 示例

范例01：计算指定基金的日线收益风险指标

```tsl
setSysParam(pn_stock(), "OF510500");
return fundMeasure(
    "SH000905", 20250101T, 20251231T, 3, 0, true, cy_day());
```

## `fundOmega(index_id, beg_t, end_t, data_select, cycle)`

声明：function

返回基金Omega比率。与系统股票pn_stock()、当前时间pn_date()相关

<!-- tags: 金融 基金 基金评估 返回 获取 -->

| 参数          | 类型     | 说明                           |
| ------------- | -------- | ------------------------------ |
| `index_id`    | string   | 指数类型，指数代码；           |
| `beg_t`       | datetime | 日期类型，开始日期；           |
| `end_t`       | datetime | 日期类型，截止日期；           |
| `data_select` | int      | 用户自定义类型，所选取的数据； |
| `cycle`       | string   | 周期类型，周期                 |

返回：float

### 示例

范例01：SH000018，2016年1月1日到2018年9月3日，日线净值数据的Omega比率

```tsl
setSysParam(pn_stock(), 'OF000001');
setSysParam(pn_cycle(), cy_day());
return fundOmega('SH000300', 20230101T, 20250801T, 0, cy_day());
// 输出：0.957895
```

## `fundRachev(beg_t, end_t, rf, data_select, cycle)`

声明：function

返回基金Rachev比率。与系统股票pn_stock()、当前时间pn_date()相关

<!-- tags: 金融 基金 基金评估 返回 获取 -->

| 参数          | 类型     | 说明                           |
| ------------- | -------- | ------------------------------ |
| `beg_t`       | datetime | 日期类型，开始日期；           |
| `end_t`       | datetime | 日期类型，截止日期；           |
| `rf`          | float    | 实数类型，无风险年收益率(%)；  |
| `data_select` | int      | 用户自定义类型，所选取的数据； |
| `cycle`       | string   | 周期类型，周期                 |

返回：float

### 示例

范例01：调用函数

```tsl
setsysparam(pn_stock(), "OF162714");
Return FundRachev(20160101T, 20180903T, 3, 0, cy_day());
```

## `fundSharpMeasure(beg_t, end_t, rf, data_select)`

声明：function

返回Sharp指数(与系统证券pn_stock()相关)

<!-- tags: 金融 基金 基金评估 返回 获取 -->

| 参数          | 类型    | 说明              |
| ------------- | ------- | ----------------- |
| `beg_t`       | date    | 开始日期          |
| `end_t`       | date    | 截止日期          |
| `rf`          | real    | 无风险年收益率(%) |
| `data_select` | integer | 所选取的数据      |

返回：real

### 示例

范例01：调用函数

```tsl
// 取华安创新2003年3月14日到2012年10月19日之间的Sharp指数
setSysParam(pn_stock(), 'OF040001');
return FundSharpMeasure(intToDate(20030314), intToDate(20121019), 2, 0);
// 输出：0.04014
```

## `fundSortinoRatio(beg_t, end_t, rf, data_select, annual, cycle)`

声明：function

返回基金索丁诺比率。与系统股票pn_stock()、当前时间pn_date()相关

<!-- tags: 金融 基金 基金评估 排序 sort 返回 获取 -->

| 参数          | 类型      | 说明                           |
| ------------- | --------- | ------------------------------ |
| `beg_t`       | date_time | 日期类型，开始日期；           |
| `end_t`       | date_time | 日期类型，截止日期；           |
| `rf`          | real      | 实数类型，无风险年收益率(%)；  |
| `data_select` | integer   | 用户自定义类型，所选取的数据； |
| `annual`      | boolean   | 真假类型，是否年化；           |
| `cycle`       | string    | 周期类型，周期                 |

返回：real

### 示例

范例01：调用函数

```tsl
// OF162714，2016年1月1日到2018年9月3日，无风险年收益率为3，年化的日线净值数据的索丁诺比率。
setSysParam(pn_stock(), "OF162714");
return fundSortinoRatio(20160101T, 20180903T, 3, 0, 1, cy_day());
// 输出：-0.31887
```

## `fundTreynorMeasure(index_id, beg_t, end_t, rf, data_select)`

声明：function

返回Treynor指数(与系统股票pn_stock()相关)

<!-- tags: 金融 基金 基金评估 返回 获取 -->

| 参数          | 类型    | 说明              |
| ------------- | ------- | ----------------- |
| `index_id`    | string  | 指数代码          |
| `beg_t`       | date    | 开始日期          |
| `end_t`       | date    | 截止日期          |
| `rf`          | real    | 无风险年收益率(%) |
| `data_select` | integer | 所选取的数据      |

返回：real

### 示例

范例01：调用函数

```tsl
// 取华安创新2003年03月14日到2012年10月19日之间的Treynor指数
setSysParam(pn_stock(), 'OF040001');
return fundTreynorMeasure("SH000001", intToDate(20030314), intToDate(20121019), 1.98, 0);
// 输出：0.07722
```

## `userDefineIndex(stock_arr, beg_t, end_t, rf, use_rf)`

声明：function

返回用户自定义指数的收益率序列，与系统周期pn_cycle()相关

<!-- tags: 金融 基金 基金评估 返回 获取 -->

| 参数        | 类型    | 说明                  |
| ----------- | ------- | --------------------- |
| `stock_arr` | array   | 指数加权数据,例子如下 |
| `beg_t`     | date    | 开始日期              |
| `end_t`     | date    | 截止日期              |
| `rf`        | real    | 无风险年收益率(%)     |
| `use_rf`    | boolean | 考虑无风险收益率      |

返回：array

### 示例

范例01：取2012年10月10日到2012年10月19日的自定义指数收益率序列

```tsl
// 取2012年10月10日到2012年10月19日的自定义指数收益率序列
SetSysParam(pn_cycle(), cy_day());
Return UserDefineIndex(
    array(
    ("代码":"SH600000", "名称":"浦发银行", "比例(%)":55.00),
    ("代码":"SH600001", "名称":"邯郸钢铁", "比例(%)":35.00),
    ("代码":"SZ000002", "名称":"万科A", "比例(%)":10.00)),
    inttodate(20121010), inttodate(20121019), 2, False);
```

## `zsRfRatio(rf)`

声明：function

返回无风险收益率(折算)，与系统周期有关

<!-- tags: 金融 基金 基金评估 返回 获取 -->

| 参数 | 类型 | 说明              |
| ---- | ---- | ----------------- |
| `rf` | real | 无风险年收益率(%) |

返回：real

### 示例

范例01：调用函数

```tsl
// 获得折算后的无风险收益率
setSysParam(pn_cycle(), cy_day());
return zsRfRatio(2);
// 输出：0.00833
```
