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