Files
playbook/skills/tsl-api-reference/references/codegen/module/tsrm-cross-section.md
T
2026-08-14 17:15:41 +08:00

7.1 KiB

风险模型 / 横截面回归

TSRM_CrossSection

声明:class

横截面回归框架

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

进行回归求解,返回相关回归结果数据

可见性:public

query_Factor_Ret()

声明:function

查询因子收益

可见性:public

query_Specific_Ret()

声明:function

查询特质收益

可见性:public

query_Pure_Factor_Portfolio_Weight()

声明:function

查询纯因子组合权重,一列一个纯因子组合,一般不具投资性,单位为 1

可见性:public

cstTest()

声明:function

计算回归系数的显著性检验的 T 值

可见性:public

csrSquare()

声明:function

计算总 R 方和相对 R 方

可见性:public

csvif()

声明:function

计算方差膨胀系数

可见性:public

csrSquare_CV()

声明:function

计算交叉验证 R2 和学生化 R 方

可见性:public

rms_Return_Decomposing()

声明:function

截面波动率分解

可见性:public

示例

范例01:调用示例

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

回测主函数

可见性:public

返回:array

getTradeDays()

声明:function

根据 FBegT/FEndT/FCycle 获取市场交易日,用户可重载自定义股票池交易日筛选逻辑,返

可见性:public

返回:array

getFactorData(endt)

声明:function

单期因子数据计算,用户必须重写

可见性:public

参数 类型 说明
endt date 截止日

返回:array

getcsr(factor_data, endt)

声明:function

单期横截面回归对象,支持用户重写,选择不带常数项回归等

可见性:public

参数 类型 说明
factor_data array 二维表,GetFactorData(endt)每期返回的结果
endt datetime 截止日

返回:obj

getFactorPerformance()

声明:function

全因子绩效汇总,单因子一行,包含累计 / 年化收益、年化波动、夏普、最大回撤、基准相

可见性:public

返回:array

getR2Performance(ma_length)

声明:function

R 方时序 + 自定义窗口滚动均值,缺省 MALength=12

可见性:public

参数 类型 说明
ma_length int 滚动计算窗口长度

返回:array

getFactorReturn(return_type)

声明:function

因子收益输出,ReturnType=0 原始每期收益,ReturnType=1 累计收益

可见性:public

参数 类型 说明
return_type int 输出类型,默认 0

返回:array

getFactorCorr()

声明:function

基于因子收益率时序,计算各因子间相关系数矩阵

可见性:public

返回:array

getRMS(ma_length)

声明:function

RMS 收益分解时序 + 自定义窗口滚动均值,缺省 MALength=12

可见性:public

参数 类型 说明
ma_length int 滚动窗口

返回:array

getR2Mean()

声明:function

R 方均值

可见性:public

返回:array