FAQ > 金融建模 > 应用案例 > 多因子

Q:多因子:因子收益率检验中增加基准收益率对比实现    

简述
在多因子应用中,希望返回的因子收益率检验中增加基准收益率作为其它组的对比展示,本页提供该功能的具体实现及应用案例
  • 天软多因子框架基准收益率的实现
      提供新类TSMultiFactor_User继承天软公用框架TSMultiFactor,重写方法CalTrailingReturn(Data,cy,PDiv),给需要的用户使用。

    使用说明: 
      导入附件中模型保存为用户私有类,在实例实现中,将Type TMyMultiFactor=class(TSMultiFactor),改成Type TMyMultiFactor=class(TSMultiFactor_User)即可,其它的不变
    附件:附件:TSMultiFactor_User.fun

    实现案例:

    factorarr:= array(("因子名称":"my_pe","因子公式":"1/stockpe(EndT)","因子方向":1,"因子比例(%)":50),("因子名称":"近一月涨幅(%)","因子公式":"stockzf(incmonth(endt,-1)+1,endt)","因子方向":1,"因子比例(%)":50));
      obj:=new TSMultiFactor_User();
      obj.FBegT:=20181231T;
      obj.FEndT:=20191231T;
      obj.FIndexId:='SH000016';
      obj.FCycle:=cy_month();
      obj.FFactorArr:=factorarr;
      obj.BackTest();
      return array(
         '调仓日':obj.GetTimeSeries(),
         '所有调仓日因子值及分组':obj.GetGroupFactorValue(),
         '-----收益率-----':'-----------',
         '日累计收益率(%)':obj.GetGroupReturn(1,cy_day()),
         '日累计超额收益率(%)':obj.GetGroupReturn(3,cy_day()),
         '月度收益率(%)':obj.GetGroupReturn(0,cy_month()),
         '月度超额收益率(%)':obj.GetGroupReturn(2,cy_month()),
         '多空月度收益率(%)':obj.GetGroupReturn(4,cy_month()),
         '-----因子检验-----':'-----------',
         '因子收益率检验':obj.GetTrailingReturn(cy_month()),
         '因子显著性检验':obj.GetSignificanceStatistics(cy_month()),
         '因子区分度检验':obj.GetLongShortStatistics(cy_month()),
         '因子延续性检验':obj.GetInformationCoefficient(),
         '因子贡献度检验1':obj.GetLinearEvaluationResult(0),
         '因子贡献度检验2':obj.GetPrincipalComponentResult(0.85,0)
         );

    返回结果: