Files
playbook/skills/tsl-api-reference/references/codegen/module/ts-multi-factor.md
T

1067 lines
32 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 量化 / 多因子
## `TSMultiFactor`
声明:class
执行多因子计算、分组回测、因子检验与数据预处理
<!-- tags: 调用 聚合 检查 判定 验证 因子分析 因子指标 历史模拟 -->
### `fBegT`
声明:field
开始日期 当前系统时间往前推 3 年
可见性:`public`
类型:date_time
### `fEndT`
声明:field
截止日期 当前时间
可见性:`public`
类型:date_time
### `fIndexId`
声明:field
基准代码 SH000300
可见性:`public`
类型:string
### `fCycle`
声明:field
调仓周期,字符串 Cy_month()
可见性:`public`
类型:string
### `fFactorArr`
声明:field
因子库
可见性:`public`
类型:array
### `fFillMissType`
声明:field
缺失值处理方法 0:剔除
可见性:`public`
类型:integer
### `fAbnormalType`
声明:field
极值处理方法 0:中位数法
可见性:`public`
类型:integer
### `fStandarizeType`
声明:field
标准化方法 1Z 值法
可见性:`public`
类型:integer
### `fNeuType`
声明:field
中性化方法 0:不进行中性化
可见性:`public`
类型:integer
### `fOrthType`
声明:field
正交化方法 0:不进行正交化
可见性:`public`
类型:integer
### `fConstr`
声明:field
剔除条件 空字符串
可见性:`public`
类型:string
### `fBuyRatio`
声明:field
开仓费率(%) 0.1
可见性:`public`
类型:numeric
### `fSellRatio`
声明:field
平仓费率(%) 0.1
可见性:`public`
类型:numeric
### `fGroupType`
声明:field
分组方式 1:百分位
可见性:`public`
类型:integer
### `fGroups`
声明:field
五分位
可见性:`public`
类型:string
### `fIndustryMethod`
声明:field
行业资金分配方法 -1:不进行行业中性处理
可见性:`public`
类型:integer
### `fRateType`
声明:field
个股资金分配方法 4:等权重
可见性:`public`
类型:integer
### `fGridNo`
声明:field
网格数目 5
可见性:`public`
类型:integer
### `fpriceType`
声明:field
成交价类别 2:收盘价
可见性:`public`
类型:integer
### `fvolModType`
声明:field
成交量取整模式 0:不取整
可见性:`public`
类型:integer
### `fdividendType`
声明:field
是否分红再投资 0:分红不再投资
可见性:`public`
类型:integer
### `fAllotmentType`
声明:field
是否参与配股 0:不自动参与配股
可见性:`public`
类型:integer
### `fBacktestType`
声明:field
使用的回测方法 0:表示使用回测框架清算
可见性:`public`
类型:integer
### `fbmType`
声明:field
基准类型 0:单个基准
可见性:`public`
类型:integer
### `fbmDetail`
声明:field
复合基准成分 Array()
可见性:`public`
类型:array
### `backTest()`
声明:function
执行多因子计算、分组、清算和评价的完整流程
<!-- tags: 历史模拟 因子检验 策略验证 -->
可见性:`public`
### `calculateFactorValue()`
声明:function
执行回测清算之前的因子计算与分组流程
<!-- tags: 调用 聚合 因子分析 因子指标 历史模拟 策略验证 -->
可见性:`public`
### `getTimeSeries()`
声明:function
获取多因子框架的调仓日期序列;可重写
<!-- tags: 查询 因子分析 因子指标 时序 序列数据 交易日期 日期时间 时间处理 -->
可见性:`public`
返回:array
### `getSamples(v_end_t)`
声明:function
获取指定调仓日的初始证券样本;可重写
<!-- tags: 查询 股票样本 选股池 -->
可见性:`public`
| 参数 | 类型 | 说明 |
| --------- | --------- | ------ |
| `v_end_t` | date_time | 调仓日 |
返回:array
### `getFactors(end_t)`
声明:function
获取指定调仓日的因子配置;可重写
<!-- tags: 查询 因子配置 因子列表 -->
可见性:`public`
| 参数 | 类型 | 说明 |
| ------- | --------- | ------- |
| `end_t` | date_time | 调仓日T |
返回:array
### `getFactorParams(end_t, factor_param)`
声明:function
该函数一般在实现动态因子公式参数时需要重写,默认是直接返回设定的静态参数。用户在
<!-- tags: 查询 因子分析 因子指标 -->
可见性:`public`
| 参数 | 类型 | 说明 |
| -------------- | --------- | -------------------------------------------------------------------------------- |
| `end_t` | date_time | 调仓日T |
| `factor_param` | array | 通过 config_Set('因子公式参数',value)配置的静态自定义因子公式参数。参看 静态参数 |
返回:array
### `getGroupFactorValue()`
声明:function
获取调仓日因子值及分组结果;支持按日期、组号或组名查询
<!-- tags: 聚合 因子分析 因子指标 交易日期 日期时间 -->
可见性:`public`
返回:var_array
### `getGroupFactorValue(v_end_t)`
声明:function
获取调仓日因子值及分组结果;支持按日期、组号或组名查询
<!-- tags: 聚合 因子分析 因子指标 交易日期 日期时间 -->
可见性:`public`
| 参数 | 类型 | 说明 |
| --------- | -------- | ---------- |
| `v_end_t` | datetime | 指定调仓日 |
返回:var_array
### `getGroupFactorValue(group_id)`
声明:function
获取调仓日因子值及分组结果;支持按日期、组号或组名查询
<!-- tags: 聚合 因子分析 因子指标 交易日期 日期时间 -->
可见性:`public`
| 参数 | 类型 | 说明 |
| ---------- | ------- | ----------------------------------------------------------------------------------------------------------- |
| `group_id` | integer | 组号,1 代表第 1 组,2 代表第 2 组,依次类推;GroupID:组号,-1 代表倒数第 1 组,-2 代表倒数第2组,依次类推 |
返回:var_array
### `getGroupFactorValue(group_name)`
声明:function
获取调仓日因子值及分组结果;支持按日期、组号或组名查询
<!-- tags: 聚合 因子分析 因子指标 交易日期 日期时间 -->
可见性:`public`
| 参数 | 类型 | 说明 |
| ------------ | ------ | -------------------------------------------------- |
| `group_name` | string | 组名,"第1组"代表第1组,"第2组"代表第2组,依次类推 |
返回:var_array
### `getGroupFactorValue(v_end_t, group_id)`
声明:function
获取调仓日因子值及分组结果;支持按日期、组号或组名查询
<!-- tags: 聚合 因子分析 因子指标 交易日期 日期时间 -->
可见性:`public`
| 参数 | 类型 | 说明 |
| ---------- | -------- | ------------------------------------------------------------------------------------------------------------------- |
| `v_end_t` | datetime | 日期,当前时点。 2)GroupID:组号,1代表第1组,2代表第2组,依次类推;-1代表倒数第1组,-2代表倒数第 2 组,依次类推 |
| `group_id` | integer | 分组编号 |
返回:var_array
### `factorValue_QueryfactorfullTable(endt, query_typ)`
声明:function
查询指定期分组前的完整因子暴露矩阵
<!-- tags: 聚合 敞口 因子分析 因子指标 表数据 二维表 -->
可见性:`public`
| 参数 | 类型 | 说明 |
| ----------- | ---- | --------------------------------------------- |
| `endt` | date | 指定期,因子计算日,为nil,表示不对日期做限制 |
| `query_typ` | int | 查询类型,默认nil 等价Querytyp =3 |
返回:var_array
### `factortccq_quaeyhistory(begt, endt, filtertype)`
声明:function
查询因子截止日与对应检验截止日
<!-- tags: 查询 因子截止日 检验截止日 -->
可见性:`public`
| 参数 | 类型 | 说明 |
| ------------ | ---- | --------------------------------------------------------------------------------- |
| `begt` | date | 日期,开始日 |
| `endt` | date | 日期,截止日 |
| `filtertype` | int | 整数,过滤方式, 0:根据【因子截止日】过滤 1:根据【检验截止日】过滤 其他:不过滤 |
返回:array
### `getGroupReturn(p_type, cy)`
声明:function
获取各分组收益率、累计收益率或相对净值数据
<!-- tags: 查询 聚合 回报率 投资收益 单位净值 资产净值 -->
可见性:`public`
| 参数 | 类型 | 说明 |
| -------- | ------ | ------------------------ |
| `p_type` | int | 数值类型,返回的收益类型 |
| `cy` | string | 行情或统计周期 |
返回:array
### `getGroupTurnOver(weight_type)`
声明:function
获取各分组相邻调仓期之间的换手率
<!-- tags: 查询 聚合 交易频率 -->
可见性:`public`
| 参数 | 类型 | 说明 |
| ------------- | ---- | ---------------------------------------------------------------- |
| `weight_type` | int | 换手率计算方法 取值 含义 备注 1 个数法换手率 默认 2 权重法换手率 |
### `getTrailingReturn(cy, if_benchmark)`
声明:function
检验各因子分组在不同阶段的收益表现与区分度
<!-- tags: 查询 分组收益率 阶段收益 -->
可见性:`public`
| 参数 | 类型 | 说明 |
| -------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `cy` | string | 考察对象的收益率序列的周期。 取值 含义 备注 -1 得到按调仓周期分的阶段收益 Tsl 中的周期字符串 得到按对应周期分割的收益 如:cy_month() 2 if_benchmark:是否返回基准组,默认0 |
| `if_benchmark` | boolean | 是否同时计算基准收益 |
返回:array
### `getSignificanceStatistics(cy)`
声明:function
执行因子分组收益的显著性检验
<!-- tags: 查询 显著性检验 因子统计 -->
可见性:`public`
| 参数 | 类型 | 说明 |
| ---- | ------ | -------------------------- |
| `cy` | string | 考察对象的收益率序列的周期 |
返回:array
### `getLongShortStatistics(cy)`
声明:function
是第一组与最后一组的比较
<!-- tags: 查询 因子区分度 多空组合 收益差 -->
可见性:`public`
| 参数 | 类型 | 说明 |
| ---- | ------ | -------------------------- |
| `cy` | string | 考察对象的收益率序列的周期 |
返回:array
### `getInformationCoefficient(ret_type)`
声明:function
获取因子得分与后续收益之间的信息系数 IC
<!-- tags: 查询 信息系数 IC -->
可见性:`public`
| 参数 | 类型 | 说明 |
| ---------- | ---- | ---------------------------------------------------------------------------- |
| `ret_type` | int | 控制返回格式 取值 说明 备注 0 返回详情【默认】 1 返回简单统计 2 返回详情统计 |
返回:array
### `getInformationCoefficientbyICType(ic_type)`
声明:function
按指定 IC 计算方法获取因子信息系数
<!-- tags: 查询 信息系数 IC -->
可见性:`public`
| 参数 | 类型 | 说明 |
| --------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ic_type` | integer | 整数类型,IC 类型 取值 含义 备注 0 NormIC 默认 1 RankIC 2 kendall 秩相关 200 行业调整 IC(等权) 同 3 210 行业调整 IC(流通市值加权) 同 4 20 加权 IC(基准权重加权) 同 5 |
返回:array
### `getSignalStability()`
声明:function
描述T-1期到T 期的信号稳定性
<!-- tags: 查询 信号稳定性 因子稳定性 自相关 -->
可见性:`public`
返回:array
### `getLinearEvaluationResult(show_type)`
声明:function
使用线性回归评估各因子对下期收益的贡献
<!-- tags: 查询 评价 影响度 收益分解 因子分析 因子指标 拟合 -->
可见性:`public`
| 参数 | 类型 | 说明 |
| ----------- | ---- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `show_type` | int | 返回类型。 取值 含义 备注 0 或者空 拿每期的数据做最小二乘参数估计(带常数项) 1 拿所有期的数据一起做最小二乘参数估计(带常数项) 每期变因子法不能使用该种方法 |
返回:array
### `getPrincipalComponentResult(fep, show_type)`
声明:function
因变量是下期收益
<!-- tags: 查询 主成分回归 因子贡献度 PCA -->
可见性:`public`
| 参数 | 类型 | 说明 |
| ----------- | ----- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `fep` | float | 累计贡献率阀值。当Fep取到整数时,代表取的主成分的个数。 取值 范例 说明 小数 0.85 代表累计贡献率的阀值(阀值的时候 100%用1.000 表示,一定要用小数)。 整数 2 代表取的主成分的个数 |
| `show_type` | int | 返回类型。 取值 说明 备注 0 或者空 分别用每期的数据做主成分回归 1 用所有期数据一起做主成分回归 |
返回:array
### `getDecay_InformationCoefficient(begt, endt, ret_type, lag_n)`
声明:function
参考延续性检验的说明,来选择ic类型
<!-- tags: 查询 筛选 检查 判定 验证 -->
可见性:`public`
| 参数 | 类型 | 说明 |
| ---------- | ---- | -------------------------------------------------------------------------- |
| `begt` | date | 调仓日筛选开始日 |
| `endt` | date | 调仓日筛选截止日 |
| `ret_type` | int | 0、返回详情 1、返回简单统计【默认】 2、返回详情统计 3、0+2 |
| `lag_n` | int | 最大间隔期数,默认为5,支持数组给定,例如array(1,2,3,4,5)与给定5的含义一样 |
返回:array
### `getDecay_SignalStability(begt, endt, ret_type, lag_n)`
声明:function
获取指定区间与滞后期的因子信号稳定性衰减结果
<!-- tags: 查询 信号衰减 稳定性 -->
可见性:`public`
| 参数 | 类型 | 说明 |
| ---------- | ---- | ------------------------------- |
| `begt` | date | 调仓日筛选开始日 |
| `endt` | date | 调仓日筛选截止日 |
| `ret_type` | int | 0、返回详情 1、返回统计【默认】 |
| `lag_n` | int | 最大间隔期数,默认为5 |
返回:array
### `getDecay_IC(lag_n, cycle, ret_type)`
声明:function
参考延续性检验的说明,来选择ic类型
<!-- tags: 查询 筛选 检查 判定 验证 信息系数 -->
可见性:`public`
| 参数 | 类型 | 说明 |
| ---------- | ------ | ----------------------------------------------------------------------------------------------------------------------------- |
| `lag_n` | array | 一维数组,间隔期数配置,计算IC时相隔的周期(cycle)数 array(1,5,10,15,20),同样 支持给定整数,例如给定3,与array(1,2,3)等效 |
| `cycle` | string | 周期,字符串,例如"日线"或者cy_day() |
| `ret_type` | int | 0、返回详情【默认】 1、返回简单统计 2、返回详情统计 3、0+2 |
返回:array
### `getDecay_ICByICType(lag_n, cycle, ret_type, ic_type)`
声明:function
按指定 IC 类型获取因子延续性衰减结果
<!-- tags: 查询 IC衰减 信息系数 -->
可见性:`public`
| 参数 | 类型 | 说明 |
| ---------- | ------ | ----------------------------------------------------- |
| `lag_n` | array | IC 衰减分析使用的滞后期数组 |
| `cycle` | string | 行情或统计周期 |
| `ret_type` | int | 控制计算口径的类型选择项 |
| `ic_type` | int | 参考GetInformationCoefficientbyICType接口的ICType参数 |
返回:array
### `getIndustryIC(beg_t, end_t, ret_type, ic_type)`
声明:function
计算并比较因子在不同行业中的信息系数
<!-- tags: 查询 行业IC 信息系数 -->
可见性:`public`
| 参数 | 类型 | 说明 |
| ---------- | ---- | ---------------------------------------------------------- |
| `beg_t` | date | 日期,区间开始日,可为空,不给则为Fbegt |
| `end_t` | date | 日期,区间截止日,可为空,不给则为Fendt |
| `ret_type` | int | 0、返回详情【默认】 1、返回简单统计 2、返回详情统计 3、0+2 |
| `ic_type` | int | 整数,IC计算类型 取值 含义 备注 |
返回:array
### `getStockZoneIC(beg_t, end_t, ret_type, indesx, ic_type)`
声明:function
计算指定股票域或指数成分范围内的因子 IC
<!-- tags: 查询 股票域IC 信息系数 -->
可见性:`public`
| 参数 | 类型 | 说明 |
| ---------- | ----- | ------------------------------------------------------------------- |
| `beg_t` | date | 日期,区间开始日,可为空,不给则为Fbegt |
| `end_t` | date | 日期,区间截止日,可为空,不给则为Fendt |
| `ret_type` | int | 0、返回详情【默认】 1、返回简单统计 2、返回详情统计 3、0+2 |
| `indesx` | array | 一维数组,样本指数序列,默认array("SH000300","SH000905","SH000852") |
| `ic_type` | int | 整数,IC计算类型 取值 含义 备注 0 NormIC 默认 1 RankIC |
返回:array
### `updateStockInfoData(factor_raw_table, v_endt)`
声明:function
补充当期股票市值、行业等基本信息,供加权、标准化和中性化使用
<!-- tags: 更新 归一化 证券 个股 行业分类 板块 约束配置 -->
可见性:`public`
| 参数 | 类型 | 说明 |
| ------------------ | -------- | ---------------------------------------- |
| `factor_raw_table` | array | 因子原值,主要包含代码、截止日、因子原值 |
| `v_endt` | datetime | 调仓日 |
### `industrializeData(factortable, v_end_t)`
声明:function
如果用户需要使用自定义行业且分组考虑行业时候,才需要重载此方法 。即当以下情形才会
<!-- tags: 聚合 行业分类 板块 -->
可见性:`public`
| 参数 | 类型 | 说明 |
| ------------- | ----------- | --------------------------------------------------------------------------------------------------------------------------------- |
| `factortable` | array | 完成数据处理之后的数组,主要包含代码、截止日、因子原值、奇异值处理后的 值、无量纲化后的值、综合因子得分这些。 (2) vEndT: 调仓日 |
| `v_end_t` | t_date_time | 当前计算日期或查询区间的结束日期 |
返回:array
### `getBenchmarkWeight(v_end_t)`
声明:function
获取指定日期的基准指数成分股权重;可重写
<!-- tags: 查询 组合权重 资产配置 指数产品 比较基准 业绩基准 交易日期 日期时间 -->
可见性:`public`
| 参数 | 类型 | 说明 |
| --------- | ----------- | -------------------------------- |
| `v_end_t` | t_date_time | 当前计算日期或查询区间的结束日期 |
返回:array
### `getBenchmarkDailyReturn(v_beg_t, v_end_t)`
声明:function
返回基准的每日收益率序列;可重写
<!-- tags: 查询 回报率 投资收益 比较基准 业绩基准 -->
可见性:`public`
| 参数 | 类型 | 说明 |
| --------- | ---- | ------ |
| `v_beg_t` | date | 开始日 |
| `v_end_t` | date | 截止日 |
返回:array
### `fillMissData(factor_matrix, factors, index)`
声明:function
处理因子矩阵缺失值,并同步返回保留样本索引;可重写
<!-- tags: 填充 缺失值 数据预处理 -->
可见性:`public`
| 参数 | 类型 | 说明 |
| --------------- | ----- | ------------------------------------------------------------------------------------------- |
| `factor_matrix` | array | 矩阵,未进行缺失值处理之前的数据。每一列代表一个因子的取值,跟用 户所给因子表的因子顺序相同 |
| `factors` | array | 二维数组,因子表的关键信息,包含"因子名称"、"因子公式"、"因子方 向"、"因子比例(%)"字段 |
| `index` | array | 一维数组,数据缺失值处理后的索引。因为缺失值处理可能会删除无效数据,需要 返回索引 |
返回:array
### `normalizeData(factor_matrix, factors)`
声明:function
对因子矩阵执行极值处理;可重写
<!-- tags: 调用 标准化 归一化 因子分析 因子指标 -->
可见性:`public`
| 参数 | 类型 | 说明 |
| --------------- | ----- | ----------------------------------------------------------------------------------------- |
| `factor_matrix` | array | 矩阵,未进行极值处理之前的数据。每一列代表一个因子的取值,跟用户 所给因子表的因子顺序相同 |
| `factors` | array | 二维数组,当期因子配置 |
返回:array
### `standarizeData(factor_matrix, factors)`
声明:function
对极值处理后的因子矩阵执行标准化;可重写
<!-- tags: 标准化 归一化 数据预处理 -->
可见性:`public`
| 参数 | 类型 | 说明 |
| --------------- | ----- | ---------------------------------------------------------------------------------------- |
| `factor_matrix` | array | 矩阵,极值处理之后的矩阵。接下来是对这个矩阵进行标准化处理。 (2) Factors:当期因子配置 |
| `factors` | array | 参与标准化处理的因子列或因子名称数组 |
返回:array
### `neutralizeData(factor_table, factors)`
声明:function
对因子表执行行业或市值中性化;可重写
<!-- tags: 中性化 因子处理 数据预处理 -->
可见性:`public`
| 参数 | 类型 | 说明 |
| -------------- | ----- | --------------------------------------------------------------------------------------------- |
| `factor_table` | array | 二维数组,未进行中性化处理之前的数据。字段名包含"代码"、"名称"、 "截止日"、"报告期"和因子名称 |
| `factors` | array | 二维数组,当期因子配置 |
返回:array
### `orthData(factor_table)`
声明:function
对因子表执行历史正交化处理;新代码优先使用 OrthDataCore
<!-- tags: 正交化 因子处理 数据预处理 -->
可见性:`public`
| 参数 | 类型 | 说明 |
| -------------- | ----- | --------------------------------------------------------------------------------------------- |
| `factor_table` | array | 二维数组,未进行正交化处理之前的数据。字段名包含"代码"、"名称"、 "截止日"、"报告期"和因子名称 |
返回:array
### `orthDataCore(factor_table, factors)`
声明:function
按配置对因子表执行正交化,支持分组正交;可重写
<!-- tags: 正交化 因子处理 数据预处理 -->
可见性:`public`
| 参数 | 类型 | 说明 |
| -------------- | ----- | --------------------------------------------------------------------------------------------- |
| `factor_table` | array | 二维数组,未进行正交化处理之前的数据。字段名包含"代码"、"名称"、 "截止日"、"报告期"和因子名称 |
| `factors` | array | 二维数组,因子表 |
返回:array
### `scoreData(factor_matrix, my_factor_arr)`
声明:function
根据标准化因子矩阵与因子配置计算综合因子得分
<!-- tags: 计算 综合因子得分 多因子打分 -->
可见性:`public`
| 参数 | 类型 | 说明 |
| --------------- | ----- | ------------------------------------------------------ |
| `factor_matrix` | array | 标准化处理之后的矩阵。 (2) MyFactorArr:当期因子配置 |
| `my_factor_arr` | array | 用户自定义因子数组;重写评分逻辑时使用 |
返回:array
### `groupData(data, v_end_t)`
声明:function
可重写,但一般不需要重写
<!-- tags: 分组 聚合 -->
可见性:`public`
| 参数 | 类型 | 说明 |
| --------- | ----------- | ------------------------------------------------------------------------------------ |
| `data` | array | 多因子打分处理之后的矩阵,主要用到"代码"、"截止日"、"综合因子"等字段。 2 VEndT |
| `v_end_t` | t_date_time | 当前计算日期或查询区间的结束日期 |
返回:array
### `allocateWeight(data, v_end_t)`
声明:function
可重写,但一般不需要重写
<!-- tags: 计算 资金分配 个股权重 -->
可见性:`public`
| 参数 | 类型 | 说明 |
| --------- | --------- | ------------------------------------------- |
| `data` | array | 因子分组之后的所有组。 (2) VEndT :调仓日 |
| `v_end_t` | date_time | 当前计算日期或查询区间的结束日期 |
返回:array
### `allocateWeightByGroup(data, v_end_t)`
声明:function
注意此方法与 AllocateWeight 的区别, AllocateWeight是要对所有组数挨个个券比例分
<!-- tags: 分组 聚合 组合权重 资产配置 -->
可见性:`public`
| 参数 | 类型 | 说明 |
| --------- | --------- | --------------------------------------------------------- |
| `data` | array | 因子分组之后的某组成分,为一维数组。 (2) VEndT :调仓日 |
| `v_end_t` | date_time | 当前计算日期或查询区间的结束日期 |
返回:array
### `getShowPeriod()`
声明:function
获取因子评价使用的近一年、近两年、近三年及整体区间;可重写
<!-- tags: 查询 评价区间 时间分段 -->
可见性:`public`
返回:array
### `userCalFactors(data, end_t)`
声明:function
获取本地自定义因子值并与天软因子数据合并;需按数据来源重写
<!-- tags: 扩展 本地因子 因子合并 -->
可见性:`public`
| 参数 | 类型 | 说明 |
| ------- | -------- | ---------------------------------------------------------------------- |
| `data` | array | 二维数组,天软因子值表;用于提取本地因子样本,并与本地因子值合并后返回 |
| `end_t` | datetime | 需要获取并合并本地因子值的指定日期 |
返回:array
### `tsmf_factory_byFactorarr(factorarr, indexid)`
声明:function
多因子评价构造器-01.1-每期固定因子库
<!-- tags: 评估 因子分析 因子指标 -->
可见性:`public`
| 参数 | 类型 | 说明 |
| ----------- | ---------- | ------------------------------ |
| `factorarr` | array | 每期固定的因子库配置数组 |
| `indexid` | index_list | 作为基准指数与选股域的指数标识 |
返回:array
#### 示例
范例01:范例01
```tsl
factors := unit(MF_Demo_Data_YS_03).samplefactors();
mobj := tsmf_factory_byFactorarr(factors,'SZ399903');
mobj.Fcycle := cy_month();
mobj.fbegt := 20200101T;
mobj.fendt := 20210101T;
mobj.backtest();
return mobj.getgroupreturn(1,cy_day());//更多见多因子框架相关文档。
```
范例02:调用示例
```tsl
factorarr := TSUT_Data_factorRandN()['因子库'];
obj := tsmf_factory_byFactorarr(factorarr,'SH000300');
obj.backtest();
return obj.getgroupreturn(1,cy_day());//更多见多因子框架相关文档。
```
### `tsmf_factory_bySigleStockFormula(formula, indexid)`
声明:function
多因子评价构造器-01.2-单个股票因子公式
<!-- tags: 评估 因子分析 因子指标 证券 -->
可见性:`public`
| 参数 | 类型 | 说明 |
| --------- | ---------- | -------------------- |
| `formula` | string | 字符串,因子公式 |
| `indexid` | index_list | 指数,基准指数&选股域 |
返回:array
#### 示例
范例01:调用示例
```tsl
obj := tsmf_factory_bySigleStockFormula('close()','SH000300');
obj.backtest();
return obj.getgroupreturn(1,cy_day());//更多见多因子框架相关文档。
```
范例02:范例01
```tsl
//代码:最近20 日 在沪深300 的表现(数据处理等按默认设置,默认5 组,详见属性汇总)
obj := tsmf_factory_bySigleStockFormula('stockzf2(20)','SH000300');
obj.FBegT := 20250101T;
obj.FEndT := 20260428T;
obj.FCycle := cy_month();
obj.backtest();
return mulfactor_Invoker_ExportfactorBackTestData(obj);//返回常用结果
```