1067 lines
32 KiB
Markdown
1067 lines
32 KiB
Markdown
# 量化 / 多因子
|
||
|
||
## `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
|
||
|
||
标准化方法 1:Z 值法
|
||
|
||
可见性:`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);//返回常用结果
|
||
```
|