Files
playbook/skills/tsl-api-reference/references/codegen/module/tsrm-cross-section.md
T

365 lines
7.1 KiB
Markdown

# 风险模型 / 横截面回归
## `TSRM_CrossSection`
声明:class
横截面回归框架
<!-- tags: 拟合 截面回归 因子收益 风险模型 -->
### `fConstant`
声明:field
是否包含截距项
可见性:`public`
类型:bool
### `fConfig`
声明:field
配置项 算法配置项
可见性:`public`
类型:array
### `fBegT`
声明:field
回测开始日期 20240101T
可见性:`public`
类型:date
### `fEndT`
声明:field
回测结束日期 20240331T
可见性:`public`
类型:date
### `fCycle`
声明:field
行情周期 '月线'
可见性:`public`
类型:string
### `fIndexid`
声明:field
基准指数代码 'SH000300'
可见性:`public`
类型:string
### `fIndustryName`
声明:field
行业字段名称 '行业名称'
可见性:`public`
类型:string
### `csRegress()`
声明:function
进行回归求解,返回相关回归结果数据
<!-- tags: 拟合 因子收益 -->
可见性:`public`
### `query_Factor_Ret()`
声明:function
查询因子收益
<!-- tags: 回报率 投资收益 因子分析 因子指标 -->
可见性:`public`
### `query_Specific_Ret()`
声明:function
查询特质收益
<!-- tags: 回报率 投资收益 -->
可见性:`public`
### `query_Pure_Factor_Portfolio_Weight()`
声明:function
查询纯因子组合权重,一列一个纯因子组合,一般不具投资性,单位为 1
<!-- tags: 因子分析 因子指标 资产配置 投资组合 资产组合 -->
可见性:`public`
### `cstTest()`
声明:function
计算回归系数的显著性检验的 T 值
<!-- tags: 检查 判定 验证 拟合 T检验 -->
可见性:`public`
### `csrSquare()`
声明:function
计算总 R 方和相对 R 方
<!-- tags: 计算 总R方 相对R方 -->
可见性:`public`
### `csvif()`
声明:function
计算方差膨胀系数
<!-- tags: 计算 方差膨胀因子 多重共线性 -->
可见性:`public`
### `csrSquare_CV()`
声明:function
计算交叉验证 R2 和学生化 R 方
<!-- tags: 检查 判定 拟合优度 决定系数 -->
可见性:`public`
### `rms_Return_Decomposing()`
声明:function
截面波动率分解
<!-- tags: 计算 截面波动率 风险分解 -->
可见性:`public`
#### 示例
范例01:调用示例
```tsl
Endt := 20201231t;
setsysparam(pn_date(),EndT);
//提取成分股
StockArr := GetABKByDate("A 股",EndT);
//提取数据
data := StockArr;
with *,array(PN_Date():Endt) do
data ::= spec(array('代码':mcell,
'下期收益':ref(StockZf3(),-1),
'市值':StockMarketValue(sp_time()),
'行业':StockSWIndustryNameLv1(),
)
union
ifthen(ifnil(t := StockStyleFactor(1)),array(),t),mcell);
Delete from data where ifnil(["市值因子"]); //剔除风格因子为空的股票
//截面回归
csr := new TSRM_CrossSection();
csr.FData := data;
csr.FConstant := 1;
csr.FIndField := array('行业');
csr.FIndustry := array('申万农林牧渔','申万采掘','申万化工','申万电子',
'申万家用电器','申万食品饮料','申万纺织服装','申万轻工制造',
'申万医药生物','申万公用事业','申万交通运输','申万房地产',
'申万商业贸易','申万综合','申万有色金属','申万钢铁',
'申万休闲服务','申万建筑材料','申万建筑装饰','申万电气设备',
'申万机械设备','申万国防军工','申万汽车','申万银行',
'申万非银金融','申万计算机','申万传媒','申万通信',
);
csr.FStyleField := mCols(data,1)[4:mcols(data)-1];
csr.CSRegress();
ret := array('因子收益率':csr.Query_Factor_Ret(),'特质收益率
':csr.Query_Specific_Ret(),
'纯因子组合权重':csr.Query_Pure_Factor_Portfolio_Weight(),
'---评估指标---':'-----') union csr.CSTTest()
union csr.CSRSquare() union csr.CSVIF() union
csr.CSRSquare_CV()
union array('截面波动率分解':csr.RMS_Return_Decomposing());
return ret;
```
### `backtest()`
声明:function
回测主函数
<!-- tags: 执行 多期回归 横截面回归 -->
可见性:`public`
返回:array
### `getTradeDays()`
声明:function
根据 FBegT/FEndT/FCycle 获取市场交易日,用户可重载自定义股票池交易日筛选逻辑,返
<!-- tags: 查询 过滤 样本池 证券池 买卖 交易策略 证券 个股 -->
可见性:`public`
返回:array
### `getFactorData(endt)`
声明:function
单期因子数据计算,用户必须重写
<!-- tags: 查询 因子分析 因子指标 -->
可见性:`public`
| 参数 | 类型 | 说明 |
| ------ | ---- | ------ |
| `endt` | date | 截止日 |
返回:array
### `getcsr(factor_data, endt)`
声明:function
单期横截面回归对象,支持用户重写,选择不带常数项回归等
<!-- tags: 创建 横截面回归 回归对象 -->
可见性:`public`
| 参数 | 类型 | 说明 |
| ------------- | -------- | ----------------------------------------- |
| `factor_data` | array | 二维表,GetFactorData(endt)每期返回的结果 |
| `endt` | datetime | 截止日 |
返回:obj
### `getFactorPerformance()`
声明:function
全因子绩效汇总,单因子一行,包含累计 / 年化收益、年化波动、夏普、最大回撤、基准相
<!-- tags: 查询 业绩表现 因子分析 因子指标 亏损幅度 夏普比率 风险调整收益 比较基准 -->
可见性:`public`
返回:array
### `getR2Performance(ma_length)`
声明:function
R 方时序 + 自定义窗口滚动均值,缺省 MALength=12
<!-- tags: 查询 绩效 业绩表现 拟合优度 决定系数 -->
可见性:`public`
| 参数 | 类型 | 说明 |
| ----------- | ---- | ---------------- |
| `ma_length` | int | 滚动计算窗口长度 |
返回:array
### `getFactorReturn(return_type)`
声明:function
因子收益输出,ReturnType=0 原始每期收益,ReturnType=1 累计收益
<!-- tags: 查询 打印 回报率 投资收益 因子分析 因子指标 -->
可见性:`public`
| 参数 | 类型 | 说明 |
| ------------- | ---- | ---------------- |
| `return_type` | int | 输出类型,默认 0 |
返回:array
### `getFactorCorr()`
声明:function
基于因子收益率时序,计算各因子间相关系数矩阵
<!-- tags: 查询 回报率 投资收益 因子分析 因子指标 相关性 关联关系 -->
可见性:`public`
返回:array
### `getRMS(ma_length)`
声明:function
RMS 收益分解时序 + 自定义窗口滚动均值,缺省 MALength=12
<!-- tags: 查询 RMS 风险分解 滚动均值 -->
可见性:`public`
| 参数 | 类型 | 说明 |
| ----------- | ---- | -------- |
| `ma_length` | int | 滚动窗口 |
返回:array
### `getR2Mean()`
声明:function
R 方均值
<!-- tags: 查询 R方均值 拟合优度 截面回归 -->
可见性:`public`
返回:array