📦 deps(tsl): sync tsl-playbook from 5d73964d

Source-Commit: 5d73964db8
This commit is contained in:
ci[bot]
2026-08-14 17:15:41 +08:00
parent 5f4ca63966
commit 2f0d80da65
574 changed files with 47871 additions and 14463 deletions
@@ -0,0 +1,947 @@
# 因子指标 / 扩展指标
## `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));
```