quant.backtest¶
-
class
quant.backtest.strategy.
AbstractStrategy
[源代码]¶ 股票回测策略基类
Attributes: - end_date
- mods
net_value
净值序列, pd.Series
- start_date
Methods
change_position
(tobuy_pct)更新持仓比例 handle
(today, universe)每日调仓函数,用户逻辑,需重载 run
()运行回测过程 -
end_date
= None¶ 结束日期 %Y-%m-%d
-
mods
= None¶ 可用Mod列表
-
name
= 'strategy'¶ 策略名称,用于结果输出
-
net_value
¶ 净值序列, pd.Series
-
start_date
= None¶ 起始日期 %Y-%m-%d
-
class
quant.backtest.strategy.
SimpleStrategy
(predicted, name=None, buy_count=50, mods=None)[源代码]¶ 简单的回测,只需要输入一个预测收益率的DataFrame, 每期自动等权做多预测最高的`buy_count`只股票
Attributes: - end_date
- mods
net_value
净值序列, pd.Series
- start_date
Methods
change_position
(tobuy_pct)更新持仓比例 handle
(today, universe)每日调仓函数,用户逻辑,需重载 run
()运行回测过程
-
class
quant.backtest.strategy.
ConstraintStrategy
(*args, constraint_config=None, **kwargs)[源代码]¶ 中性策略,在SimpleStrategy的基础上控制行业和因子暴露 # TODO: cost in objective
Attributes: - end_date
- mods
net_value
净值序列, pd.Series
- start_date
Methods
change_position
(tobuy_pct)更新持仓比例 handle
(today, universe)每日调仓函数,用户逻辑,需重载 optimize_with_mosek
(predicted, today)使用Mosek来优化构建组合。在测试中Mosek比scipy的单纯形法快约18倍,如果可能请尽量使用Mosek。 但是Mosek是一个商业软件,因此你需要一份授权。如果没有授权的话请使用scipy或optlang。 optimize_with_optlang
(predicted, today)Optlang是一个支持很多后端优化器的接口,包括scipy。 optimize_with_scipy
(predicted, today)最大化预期收益,最小化风险暴露。 run
()运行回测过程