# 因子指标 / 扩展指标

## `tsf_factorExtindiCator_base`

声明：class

因子指标计算框架

<!-- tags: 因子分析 扩展指标 因子计算 技术指标 -->

### `Frf`

声明：field

无风险收益率(%)/最低可接受收益率(%)

可见性：`public`

类型：real

### `ConfigSet(key, value)`

声明：function

设置配置项

<!-- tags: 配置 指标参数 扩展指标 -->

可见性：`public`

| 参数    | 类型   | 说明               |
| ------- | ------ | ------------------ |
| `key`   | string | 要设置的配置项名称 |
| `value` | any    | 要写入配置项的值   |

#### 示例

范例01：调用示例

```tsl
Obj := new tsf_factorExtindiCator_base();
Obj.ConfigSet('总组数',5);
```

### `ConfigGet(key)`

声明：function

获取配置项

<!-- tags: 查询 因子计算 -->

可见性：`public`

| 参数  | 类型   | 说明               |
| ----- | ------ | ------------------ |
| `key` | string | 要读取的配置项名称 |

#### 示例

范例01：调用示例

```tsl
Obj := new tsf_factorExtindiCator_base();
Return Obj.ConfigGet('总组数');  //5
```

### `DefaultConfig()`

声明：function

默认配置，用户可重载，来设置默认配置，如'总组数'，'基准指数'，'回测周期'，'是否年化'

<!-- tags: 历史模拟 策略验证 指数产品 比较基准 业绩基准 -->

可见性：`public`

返回：array

### `GetIC(begt, endt, ic_type)`

声明：function

获得 IC 数据，需要用户重载，基类未实现，返回空数组，并提示报错：getIC 方法必须重写！

<!-- tags: 查询 信息系数 列表 集合 -->

可见性：`public`

| 参数      | 类型     | 说明                          |
| --------- | -------- | ----------------------------- |
| `begt`    | end_date | 日期，开始日                  |
| `endt`    | end_date | 日期，截止日                  |
| `ic_type` | int      | 整数，IC 类型，用户可自行对照 |

返回：array

### `GetDailyGroupReturnAllG(begt, endt)`

声明：function

获取全部分组的日收益数据；基类未实现，使用时必须重写

<!-- tags: 查询 聚合 回报率 投资收益 -->

可见性：`public`

| 参数   | 类型     | 说明         |
| ------ | -------- | ------------ |
| `begt` | end_date | 日期，开始日 |
| `endt` | end_date | 日期，截止日 |

返回：array

### `GetDailyGroupReturn(begt, endt, group_name)`

声明：function

获得指定组名的分组日收益数据

<!-- tags: 查询 聚合 回报率 投资收益 -->

可见性：`public`

| 参数         | 类型            | 说明                                           |
| ------------ | --------------- | ---------------------------------------------- |
| `begt`       | end_date        | 日期，开始日                                   |
| `endt`       | end_date        | 日期，截止日                                   |
| `group_name` | string_or_array | 要返回的分组名称或名称数组；为空时返回全部分组 |

返回：array

### `GetFactorReturn(begt, endt)`

声明：function

获取因子回归分析数据；基类未实现，使用时必须重写

<!-- tags: 查询 统计 因子分析 拟合 -->

可见性：`public`

| 参数   | 类型     | 说明         |
| ------ | -------- | ------------ |
| `begt` | end_date | 日期，开始日 |
| `endt` | end_date | 日期，截止日 |

返回：array

### `Getgroupstocks(endt, gtype)`

声明：function

获取指定日、指定分组的成分股及因子值；基类未实现，使用时必须重写

<!-- tags: 查询 聚合 因子分析 -->

可见性：`public`

| 参数    | 类型     | 说明                                                               |
| ------- | -------- | ------------------------------------------------------------------ |
| `endt`  | end_date | 日期，截止日                                                       |
| `gtype` | int      | 分组类型：nil 全部分组；-1 最后一组；-2 多空组；正整数表示对应组号 |

返回：array

### `Gettcrq(begt, endt)`

声明：function

获得指定区间的调仓日序列

<!-- tags: 查询 因子计算 -->

可见性：`public`

| 参数   | 类型     | 说明         |
| ------ | -------- | ------------ |
| `begt` | end_date | 日期，开始日 |
| `endt` | end_date | 日期，截止日 |

返回：array

### `Get_ICI_mean(begt, endt, ic_type)`

声明：function

计算 IC 均值

<!-- tags: 计算 IC均值 信息系数 因子指标 -->

可见性：`public`

| 参数      | 类型     | 说明                                 |
| --------- | -------- | ------------------------------------ |
| `begt`    | end_date | 日期，开始日                         |
| `endt`    | end_date | 日期，截止日                         |
| `ic_type` | int      | 整数，IC 类型，取值与 getIC 模型一致 |

返回：real

### `Get_ICI_StdDev(begt, endt, ic_type)`

声明：function

计算 IC 标准差

<!-- tags: 计算 IC标准差 信息系数 因子指标 -->

可见性：`public`

| 参数      | 类型     | 说明                                 |
| --------- | -------- | ------------------------------------ |
| `begt`    | end_date | 日期，开始日                         |
| `endt`    | end_date | 日期，截止日                         |
| `ic_type` | int      | 整数，IC 类型，取值与 getIC 模型一致 |

返回：real

### `Get_ICI_Absmean(begt, endt, ic_type)`

声明：function

计算 IC 绝对值的均值

<!-- tags: 计算 IC绝对均值 信息系数 因子指标 -->

可见性：`public`

| 参数      | 类型     | 说明                                 |
| --------- | -------- | ------------------------------------ |
| `begt`    | end_date | 日期，开始日                         |
| `endt`    | end_date | 日期，截止日                         |
| `ic_type` | int      | 整数，IC 类型，取值与 getIC 模型一致 |

返回：real

### `Get_ICI_Win_pct(begt, endt, ic_type)`

声明：function

计算 IC 胜率(%)

<!-- tags: 计算 IC胜率 信息系数 因子指标 -->

可见性：`public`

| 参数      | 类型     | 说明                                 |
| --------- | -------- | ------------------------------------ |
| `begt`    | end_date | 日期，开始日                         |
| `endt`    | end_date | 日期，截止日                         |
| `ic_type` | int      | 整数，IC 类型，取值与 getIC 模型一致 |

返回：real

### `Get_ICI_ICIR(begt, endt, ic_type)`

声明：function

计算 ICIR

<!-- tags: 计算 ICIR 信息系数 因子指标 -->

可见性：`public`

| 参数      | 类型     | 说明                                 |
| --------- | -------- | ------------------------------------ |
| `begt`    | end_date | 日期，开始日                         |
| `endt`    | end_date | 日期，截止日                         |
| `ic_type` | int      | 整数，IC 类型，取值与 getIC 模型一致 |

返回：real

### `Get_Ri_CumReturn(begt, endt, rt_type)`

声明：function

计算区间累计收益率(%)

<!-- tags: 查询 回报率 投资收益 -->

可见性：`public`

| 参数      | 类型     | 说明                                                                                                                                                                                         |
| --------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `begt`    | end_date | 日期，开始日                                                                                                                                                                                 |
| `endt`    | end_date | 日期，截止日                                                                                                                                                                                 |
| `rt_type` | int      | 收益率类型：0 基准；1 多头（第 1 组）；2 多头超额（第 1 组减基准）；3 空头（最后 1 组）；4 空头超额（最后 1 组减基准）；5 多空（第 1 组减最后 1 组）；6 多空超额（多空减基准）；7 因子收益率 |

返回：real

### `Get_Ri_volatility(begt, endt, rt_type)`

声明：function

计算区间收益率标准差(%)

<!-- tags: 查询 回报率 投资收益 波动率 风险波动 -->

可见性：`public`

| 参数      | 类型     | 说明                                              |
| --------- | -------- | ------------------------------------------------- |
| `begt`    | end_date | 日期，开始日                                      |
| `endt`    | end_date | 日期，截止日                                      |
| `rt_type` | int      | 整数，收益率类型，取值与 Get_Ri_CumReturn模型一致 |

返回：real

### `Get_Ri_Sharpe_ratio(begt, endt, rt_type)`

声明：function

计算指定收益类型在区间内的夏普比率

<!-- tags: 查询 风险调整收益 -->

可见性：`public`

| 参数      | 类型     | 说明                                              |
| --------- | -------- | ------------------------------------------------- |
| `begt`    | end_date | 日期，开始日                                      |
| `endt`    | end_date | 日期，截止日                                      |
| `rt_type` | int      | 整数，收益率类型，取值与 Get_Ri_CumReturn模型一致 |

返回：real

### `Get_Ri_Win_pct(begt, endt, rt_type)`

声明：function

计算收益率胜率(%)

<!-- tags: 查询 回报率 投资收益 -->

可见性：`public`

| 参数      | 类型     | 说明                                              |
| --------- | -------- | ------------------------------------------------- |
| `begt`    | end_date | 日期，开始日                                      |
| `endt`    | end_date | 日期，截止日                                      |
| `rt_type` | int      | 整数，收益率类型，取值与 Get_Ri_CumReturn模型一致 |

返回：real

### `Get_Ri_cagr(begt, endt, rt_type)`

声明：function

计算年化收益率 (%)

<!-- tags: 查询 回报率 投资收益 -->

可见性：`public`

| 参数      | 类型     | 说明                                             |
| --------- | -------- | ------------------------------------------------ |
| `begt`    | end_date | 日期，开始日                                     |
| `endt`    | end_date | 日期，截止日                                     |
| `rt_type` | int      | 整数，收益率类型，取值与Get_Ri_CumReturn模型一致 |

返回：real

### `Get_Ri_mean(begt, endt, rt_type)`

声明：function

计算平均收益率

<!-- tags: 查询 回报率 投资收益 -->

可见性：`public`

| 参数      | 类型     | 说明                                             |
| --------- | -------- | ------------------------------------------------ |
| `begt`    | end_date | 日期，开始日                                     |
| `endt`    | end_date | 日期，截止日                                     |
| `rt_type` | int      | 整数，收益率类型，取值与Get_Ri_CumReturn模型一致 |

返回：real

### `Get_Ri_To_CumReturn(begt, endt, rt_type)`

声明：function

指定类型的累计收益率(%)序列

<!-- tags: 查询 累计收益率序列 时序收益 因子指标 -->

可见性：`public`

| 参数      | 类型     | 说明                                             |
| --------- | -------- | ------------------------------------------------ |
| `begt`    | end_date | 日期，开始日                                     |
| `endt`    | end_date | 日期，截止日                                     |
| `rt_type` | int      | 整数，收益率类型，取值与Get_Ri_CumReturn模型一致 |

返回：array

### `Get_Ti_AbsMean(begt, endt)`

声明：function

计算 T 值绝对值的均值

<!-- tags: 查询 显著性检验 T检验 -->

可见性：`public`

| 参数   | 类型     | 说明         |
| ------ | -------- | ------------ |
| `begt` | end_date | 日期，开始日 |
| `endt` | end_date | 日期，截止日 |

返回：real

### `Get_Ti_AbsSignProp(begt, endt, abstsignv)`

声明：function

计算 T 值大于 abstsignv 的占比

<!-- tags: 查询 显著性检验 T检验 -->

可见性：`public`

| 参数        | 类型     | 说明         |
| ----------- | -------- | ------------ |
| `begt`      | end_date | 日期，开始日 |
| `endt`      | end_date | 日期，截止日 |
| `abstsignv` | real     | 实数         |

返回：real

### `Get_Crowding_ValuPB(endt, alg_type)`

声明：function

基于估值指标 PB 衡量的因子分化程度，其中 PB 为市净率，BP 为市净率的倒数

<!-- tags: 计算 估值价差 市净率 PB BP 因子拥挤 -->

可见性：`public`

| 参数       | 类型     | 说明                                             |
| ---------- | -------- | ------------------------------------------------ |
| `endt`     | end_date | 日期，截止日                                     |
| `alg_type` | int      | 整数，算法类型 取值 含义 备注 0 差值 默认 1 比率 |

返回：real

### `Get_Crowding_ValuPE(endt, alg_type)`

声明：function

基于估值指标 PE 衡量因子分化程度，其中 PE 为市盈率，EP 为市盈率的倒数；

<!-- tags: 计算 估值价差 市盈率 PE EP 因子拥挤 -->

可见性：`public`

| 参数       | 类型     | 说明                                             |
| ---------- | -------- | ------------------------------------------------ |
| `endt`     | end_date | 日期，截止日                                     |
| `alg_type` | int      | 整数，算法类型 取值 含义 备注 0 差值 默认 1 比率 |

返回：real

### `Get_Crowding_ValuFac(endt, alg_type)`

声明：function

基于估值指标因子值衡量因子分化程度

<!-- tags: 计算 估值价差 因子值 多空组合 因子拥挤 -->

可见性：`public`

| 参数       | 类型     | 说明                                             |
| ---------- | -------- | ------------------------------------------------ |
| `endt`     | end_date | 日期，截止日                                     |
| `alg_type` | int      | 整数，算法类型 取值 含义 备注 0 差值 默认 1 比率 |

返回：real

### `Get_Crowding_Corr(begt, endt, alg_type, option)`

声明：function

计算不同因子值的个股收益率之间的相关性

<!-- tags: 计算 配对相关性 因子拥挤 多空组合 -->

可见性：`public`

| 参数       | 类型     | 说明                                                                                               |
| ---------- | -------- | -------------------------------------------------------------------------------------------------- |
| `begt`     | end_date | 日期，开始日                                                                                       |
| `endt`     | end_date | 日期，截止日                                                                                       |
| `alg_type` | int      | 整数，算法类型 取值 含义 备注 0 多头-空头 默认 1 多头+空头 2 多头 3 空头                           |
| `option`   | int      | 整数，计算相关系数的算法类型 取值 含义 备注 0 日均收益率与组内成分股 默认 1 组内成分股与成分股之间 |

返回：real

### `Get_Crowding_Volatility(begt, endt, alg_type)`

声明：function

基于波动率比率衡量因子波动率

<!-- tags: 计算 波动率比率 多空组合 因子拥挤 -->

可见性：`public`

| 参数       | 类型     | 说明                                                                                                                     |
| ---------- | -------- | ------------------------------------------------------------------------------------------------------------------------ |
| `begt`     | end_date | 日期，开始日                                                                                                             |
| `endt`     | end_date | 日期，截止日                                                                                                             |
| `alg_type` | int      | 波动率比率算法：0 多头与空头的波动比率（默认）；1 多头与市场的波动比率；2 多空与市场的波动比率；市场指全局配置的基准指数 |

返回：real

### `Get_Crowding_AssetCentrality(begt, endt, ep)`

声明：function

计算各分组的资产集中度，并以多头组资产集中度作为当期因子集中度；分组数使用全局配置

<!-- tags: 计算 资产集中度 主成分 因子拥挤 -->

可见性：`public`

| 参数   | 类型          | 说明                                                                         |
| ------ | ------------- | ---------------------------------------------------------------------------- |
| `begt` | end_date      | 日期，开始日                                                                 |
| `endt` | end_date      | 日期，截止日                                                                 |
| `ep`   | real\|integer | 累计贡献度阈值或主成分个数：实数表示累计贡献度阈值，整数表示选用的主成分个数 |

返回：real

### `GetFactor_Crowded_TopBottomStocks(begt, endt, zbarr, seq_standard, n)`

声明：function

多空分组指标计算，价差法，即分别算出多组、空组股票池的指标值，加权后相减获得值

<!-- tags: 计算 因子拥挤 多空分组 自定义指标 时序标准化 -->

可见性：`public`

| 参数           | 类型     | 说明                                                   |
| -------------- | -------- | ------------------------------------------------------ |
| `begt`         | end_date | 计算区间的开始日期                                     |
| `endt`         | end_date | 计算区间的截止日期                                     |
| `zbarr`        | array    | 自定义拥挤指标配置表；为空时使用文档列出的六项默认指标 |
| `seq_standard` | int      | 时序标准化方式：-1 不处理；0 百分位；1 Z 值            |
| `n`            | int      | 移动时序标准化窗口期数，默认 3 期                      |

返回：array

### `GetFactor_Discrete(begt, end_t, seq_standard, n)`

声明：function

计算因子值分化度, 支持移动时序标准化处理

<!-- tags: 计算 因子离散度 因子分化 时序标准化 -->

可见性：`public`

| 参数           | 类型     | 说明                                                               |
| -------------- | -------- | ------------------------------------------------------------------ |
| `begt`         | end_date | 日期，开始日                                                       |
| `end_t`        | end_date | 日期，截止日                                                       |
| `seq_standard` | int      | 整数，结果时序标准化方式，与 GetFactor_Crowded_TopBottomStocks一致 |
| `n`            | int      | 整数，移动窗口期数，默认为3 期，进行时序标准化处理时生效           |

返回：array

### `Get_Seq_Rt(begt, endt, rt_type)`

声明：function

返回指定类型的日收益率的一维数字序列

<!-- tags: 查询 回报率 投资收益 -->

可见性：`public`

| 参数      | 类型     | 说明                                           |
| --------- | -------- | ---------------------------------------------- |
| `begt`    | end_date | 日期，开始日                                   |
| `endt`    | end_date | 日期，截止日                                   |
| `rt_type` | integer  | 收益率类型选择项，取值与 Get_Ri_CumReturn 一致 |

返回：array

### `Get_Seq_IC(begt, endt, ic_type)`

声明：function

返回 IC 的一维数字序列

<!-- tags: 查询 IC序列 信息系数 时序数据 -->

可见性：`public`

| 参数      | 类型     | 说明                             |
| --------- | -------- | -------------------------------- |
| `begt`    | end_date | 日期，开始日                     |
| `endt`    | end_date | 日期，截止日                     |
| `ic_type` | integer  | IC 类型选择项，取值与 getIC 一致 |

返回：array

### `Get_Seq_T(begt, endt)`

声明：function

返回 T 值的一维数字序列

<!-- tags: 查询 显著性检验 T检验 -->

可见性：`public`

| 参数   | 类型     | 说明         |
| ------ | -------- | ------------ |
| `begt` | end_date | 日期，开始日 |
| `endt` | end_date | 日期，截止日 |

返回：array

### `Get_Seq2_Rt(begt, endt, rt_type)`

声明：function

返回指定类型的日收益率

<!-- tags: 查询 回报率 投资收益 -->

可见性：`public`

| 参数      | 类型     | 说明                                           |
| --------- | -------- | ---------------------------------------------- |
| `begt`    | end_date | 日期，开始日                                   |
| `endt`    | end_date | 日期，截止日                                   |
| `rt_type` | integer  | 收益率类型选择项，取值与 Get_Ri_CumReturn 一致 |

返回：array

### `Get_Seq2_IC(begt, endt, ic_type)`

声明：function

返回 IC

<!-- tags: 查询 带日期IC 信息系数 时序数据 -->

可见性：`public`

| 参数      | 类型     | 说明                             |
| --------- | -------- | -------------------------------- |
| `begt`    | end_date | 日期，开始日                     |
| `endt`    | end_date | 日期，截止日                     |
| `ic_type` | integer  | IC 类型选择项，取值与 getIC 一致 |

返回：array

### `Get_Seq2_T(begt, endt)`

声明：function

返回 T 值

<!-- tags: 查询 显著性检验 T检验 -->

可见性：`public`

| 参数   | 类型     | 说明         |
| ------ | -------- | ------------ |
| `begt` | end_date | 日期，开始日 |
| `endt` | end_date | 日期，截止日 |

返回：array

### `GetFactorReturnandIC(begt, endt, ic_type)`

声明：function

同时获得因子回归分析数据和 IC 数据

<!-- tags: 查询 统计 因子分析 信息系数 拟合 -->

可见性：`public`

| 参数      | 类型     | 说明                             |
| --------- | -------- | -------------------------------- |
| `begt`    | end_date | 日期，开始日                     |
| `endt`    | end_date | 日期，截止日                     |
| `ic_type` | integer  | IC 类型选择项，取值与 getIC 一致 |

返回：array

### `GetLongShortReturn(begt, endt, cycle)`

声明：function

返回指定周期的多空收益率(%)和多空累计收益(%)

<!-- tags: 查询 回报率 投资收益 多空组合 多头空头 -->

可见性：`public`

| 参数    | 类型     | 说明                 |
| ------- | -------- | -------------------- |
| `begt`  | end_date | 日期，开始日         |
| `endt`  | end_date | 日期，截止日         |
| `cycle` | cycle    | 多空收益率的统计周期 |

返回：array

### `GetGroupN()`

声明：function

获取分组数，默认为系统配置的全局参数-总组数，可重载

<!-- tags: 查询 聚合 -->

可见性：`public`

返回：int

### `GetLongName()`

声明：function

获取多头组名称，默认第1 组，可重载

<!-- tags: 查询 多头组 分组名称 多空组合 -->

可见性：`public`

返回：string

### `GetShortName()`

声明：function

获取空头组名称，默认第最后一组，假设一共分为5 组，则返回：第 5 组，可重载

<!-- tags: 查询 空头组 分组名称 多空组合 -->

可见性：`public`

返回：string

### `TransferGroupName(group_name)`

声明：function

转化分组名称，将"多头"转化为"第 1 组"，将"空头" ,"最后 1 组"转化为最后一组的实际组名

<!-- tags: 转换 分组名称 多空分组 -->

可见性：`public`

| 参数         | 类型   | 说明                              |
| ------------ | ------ | --------------------------------- |
| `group_name` | string | 字符串或数组，被转化的数组/字符串 |

返回：array

### `GetGroupNameByGType(g_type)`

声明：function

将分组类型代码转换为分组名称

<!-- tags: 查询 格式化 聚合 -->

可见性：`public`

| 参数     | 类型 | 说明                                                 |
| -------- | ---- | ---------------------------------------------------- |
| `g_type` | int  | 分组类型：-1 最后一组；-2 多空组；正整数表示对应组号 |

返回：string

### `GetDaysInOneYear(cycle)`

声明：function

根据周期获得年化系数

<!-- tags: 查询 年化系数 周期换算 交易天数 -->

可见性：`public`

| 参数    | 类型  | 说明                       |
| ------- | ----- | -------------------------- |
| `cycle` | cycle | 用于确定年化系数的统计周期 |

返回：real

### `GetFdaysIn1y(begt, endt, rt_type)`

声明：function

根据收益类型获取年化系数

<!-- tags: 查询 年化系数 收益类型 周期换算 -->

可见性：`public`

| 参数      | 类型     | 说明                                                     |
| --------- | -------- | -------------------------------------------------------- |
| `begt`    | end_date | 日期，开始日                                             |
| `endt`    | end_date | 日期，截止日                                             |
| `rt_type` | int      | 收益类型：0 基准；1 多头；2 多头超额；3 空头；4 空头超额 |

返回：real

#### 示例

范例01：.4.1 范例一：如何设置配置

```tsl
Obj := new tsf_factorExtindicator_test();
Obj.configSet('基准指数','SH000985'); //修改指数为中证全指
return obj.getDailyGroupReturnAllG(20260101T,20260331T);
```

范例02：可通过 tsf_factorExtindicator_test类来查看必须重写的方法的返回，为随机生成的数据

```tsl
obj := new tsf_factorExtindicator_test();
   return array('分组收益-第一组
':obj.getDailyGroupReturn(20260101T,20260331T,'第1 组'),
         '分组收益':obj.getDailyGroupReturnAllG(20260101T,20260331T),
         'IC': obj.getIC(20260101T,20260331T,1),
         '回归分析':obj.getFactorReturn(20260101T,20260331T),
         '组成分详情':obj.getgroupstocks(20260331T,1));
```

### `TsfAdapterfun_mulfactor2Extindicator(obj_ts_multi_factor, if_cache)`

声明：function

将已完成回测的多因子框架对象转换为因子指标框架对象；基础 IC、分组收益和回归分析数据取自多因子框架

<!-- tags: 格式化 聚合 统计 因子分析 信息系数 拟合 历史模拟 策略验证 -->

可见性：`public`

| 参数                  | 类型       | 说明                                               |
| --------------------- | ---------- | -------------------------------------------------- |
| `obj_ts_multi_factor` | tsl_object | 已完成回测的 tsMultiFactor 框架对象                |
| `if_cache`            | boolean    | 是否预缓存中间指标数据：1 预缓存；0 不缓存（默认） |

返回：tsl_object

#### 示例

范例01：调用示例

```tsl
//详见 mulfactor_Invoker_GetFactorMetricsOverview
begt := 20260101T;
endt := 20260529T;
//多因子框架实例：中证200 域内，20 日动量因子
obj_TSMultiFactor :=
tsmf_factory_bySigleStockFormula('stockzf2(20)','SH000904');
obj_TSMultiFactor.FBegT := begt;
obj_TSMultiFactor.FEndT := endt;
obj_TSMultiFactor.FCycle := '月线';
obj_TSMultiFactor.BackTest();
//调用转化器
obj := tsfAdapterfun_mulfactor2Extindicator(obj_TSMultiFactor,1);
//获取缓存数据
Fdata := obj.Fdata;
//计算指标





rtlb := Fdata['分组日收益率数据'];
ic1 := Fdata['行业调整IC'];
ret := array();
ret[0,"开始日"] := begt;
ret[0,"截止日"] := endt;
ret[0,"多空分析@多空累计收益(%)"] := obj.Get_Ri_CumReturn(Begt,endt,5);
ret[0,"IC 分析@IC 均值"] := obj.Get_ICI_mean(Begt,endt,1);
ret[0,"IC 分析@IC_行业调整均值"] := mean(ic1[:,"行业调整@IC"]);
ret[0,"回归分析@|T 值|均值(%)"] := obj.Get_Ti_AbsMean(Begt,endt);
ret[0,"相关系数"] := correl(rtlb[:,'基准'],rtlb[:,'多空组']);
return ret;
```

范例02：调用示例

```tsl
// 详见 mulfactor_Invoker_GetFactorCrowd
begt := 20260101T;
endt := 20260529T;
//多因子框架实例：中证200 域内，20 日动量因子
obj_TSMultiFactor :=
tsmf_factory_bySigleStockFormula('stockzf2(20)','SH000904');
obj_TSMultiFactor.FBegT := begt;
obj_TSMultiFactor.FEndT := endt;
obj_TSMultiFactor.FCycle := '月线';
obj_TSMultiFactor.BackTest();
//调用转化器
obj := tsfAdapterfun_mulfactor2Extindicator(obj_TSMultiFactor,1);
//计算指标: 多空拥挤度
data := obj.GetFactor_Crowded_TopBottomStocks(begt,endt,nil,0,10);






//叠加未来6 期累计涨幅
//未来2 期收益(%)：以月线2026-10-31 为例，2026-11-01~2026-12-31 的累计涨幅
rt := obj.getFactorReturn(begt,endt);
reindex(rt,rt[:,'截止日']);
t := data[:,'截止日'];
n := length(t);
n2 := length(rt);
zfcol := array();
for i := 0 to length(t)-1 do
begin
   for j := 1 to 6 do
   begin
      if i = 0 then zfcol &= array('未来'$j$'期涨幅');
      if  i-1+j >= n-(n-n2) then
         data [i,'未来'$j$'期涨幅'] := '-';
      else begin
         rt_ := rt[t[i:i+j-1],'因子收益率'];
         data[i,'未来'$j$'期涨幅'] := FI_CumReturn(rt_);
      end
   end
end
return array('因子拥挤':data,
             '因子离散度':obj.GetFactor_Discrete(begt,endt,0,10));
```
