9. 回测模型¶
QuantStudio 的一个主要功能就是对各种各样的模型使用历史数据进行回测, 比如交易策略, 绩效归因, 因子选股能力等等. QuantStudio 提供了一个统一的框架来回测这些模型. 回测功能集中在 BackTest 子模块中.
回测模型逻辑上比较简单, 就是沿着一个时间序列进行遍历, 在每个时点进行一些计算, 然后整理计算的结果形成回测报告.
9.1. API 参考¶
-
class
BackTestModel.BaseModule(name, sys_args={}, config_file=None, **kwargs)¶ 回测模块基类, 不能实例化对象, 所有回测模块都继承自此类.
参数: - name (str) – 模块名称
- sys_args (dict) – 对象参数
- config_file (str) – 对象配置文件地址
-
Name¶ 模块名称, str
-
Model¶ 模块所属的回测模型对象, None 表示该模块还未添加到模型中
-
output(recalculate=False)¶ 计算并输出该模块的结果集
参数: recalculate (bool) – 是否重新计算结果, False 是返回上次计算的结果 返回: 结果集 返回类型: dict
-
genHTMLReport(file_path)¶ 生成模块的 HTML 格式的结果报告
参数: file_path (str) – 结果报告保存的文件地址 返回: ErrorCode 返回类型: int
-
class
BackTestModel.BackTestModel(sys_args={}, config_file=None, **kwargs)¶ 回测模型
参数: - sys_args (dict) – 对象参数
- config_file (str) – 对象配置文件地址
-
Modules¶ 已经添加到模型中的模块列表, list(BaseModule)
-
DateTime¶ 当前的时点, 在回测过程中, 该属性值会从时间序列起始时点移动到终止时点, datetime.datetime
-
DateTimeIndex¶ 当前时间点在整个回测时间序列中的位置索引, int
-
DateTimeSeries¶ 截止当前的时间点序列, [datetime.datetime]
-
DateIndexSeries¶ 截止到当前时点蕴含的日期序列在时间点序列中的索引, Series(int, index=[datetime.date])
-
run(dts, subprocess_num=0)¶ 运行回测模型
参数: - dts (list(datetime.datetime)) – 回测的时间序列
- subprocess_num (int) – 子进程数, 模块计算时开启的额外子进程个数
返回: ErrorCode
返回类型: int
-
output(recalculate=False)¶ 计算并输出回测的结果集
参数: recalculate (bool) – 是否重新计算结果, False 是返回上次计算的结果 返回: 结果集 返回类型: dict
-
genHTMLReport(file_path)¶ 生成 HTML 格式的结果报告
参数: file_path (str) – 结果报告保存的文件地址 返回: ErrorCode 返回类型: int