FAQ > 金融建模 > 应用案例 > 回测应用

Q:如何实现快速回测计算组合每日收益率?    

  • A:天软提供快速回测框架计算组合的每日收益率数据,用户只需要提供每个调仓日的组合代码列表及资金分配方式即可。

    传入:每个调仓日期的组合代码列表及资金分配方式
    传出:代码组合区间收益率及区间内每日的净值收益率序列
    适用范围:股票、基金、债券、期货、期权、指数

    如有更多功能的回测需求参考:FAQ:2026-01-26应用专题-回测框架01:策略回测框架TSBackTesting(更新版)
    实现示例
    示例1:提供调仓日代码及资金分配方式进行快速回测
    获取上证50按成份股市值加权配比在20250101-20250831每日收益率序列数据
      begt:=20250101t;
      endt:=20250831t;
      obj:= CreateObject('MyQKbackTestEg');
       //回测开始时间
      obj.FBegT:=begt;
       //回测截止时间
      obj.FEndT:=endt;
       //回测周期:日线
      obj.fcycle:=cy_day();
       //基准代码
      obj.FIndexId:="SH000016";
       //资金分配方式:总市值加权
      obj.FRateType:=0;
       //初始点位
      obj.FPoint:=100;
       //回测
      obj.QuickBackTest();

       //获取返回结果
      return array(
             '资产配置':obj.GetPortfolioReturn(begt,endt),
             '区间收益率':obj.GetPortfolioReturn2(begt,endt),
             '组合合基准收益率序列':obj.GetPortfolioReturn3(begt,endt)
            );

    Type MyQKbackTestEg=class(QuickBackTesting)
    public
      function GetTradeOrder(vEndT);override;
    end;

    function MyQKbackTestEg.GetTradeOrder(vEndT);override;//必须重写调仓日数据
    begin
      //调仓日基准指数成份股数据
      return select vEndT as "截止日",thisrow as "代码" from getbkbydate(FIndexId,vEndT) end;
    end;

    结果:

    每日组合和基准收益率序列:

    示例2:自定义资金配比数据进行快速回测
    每个调仓日需提供“比例(%)”字段,
    详情参考快速回测范例模型:TSFL_QuickBackTesting_File