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