BackTrader Analyzers 分析器
介绍
Analyzers 分析器用于定量评估策略,BackTrader 提供了丰富的分析器库,从简单的胜率跟踪,到复杂的夏普比例都有提供,帮你更好地评估策略好坏。
SQN 系统质量数
由范塔普研究所(Van Tharp institute)的范塔普博士(Dr Van Tharp)定义的。它给你的策略打分。详情参见这里。
Backtrader 文档提供了一个 SQN 评分规则:
- 1.6 - 1.9 低于平均水平
- 2.0 - 2.4 平均
- 2.5 - 2.9 良好
- 3.0 - 5.0 优秀
- 5.1 - 6.9 超级棒
- 7.0 - 圣杯?
代码示例
以双均线策略为例,为它添加 BackTrader 自带的 SQN 策略分析器,只需要一行代码:
#……
def printSQN(analyzer):
sqn = round(analyzer.sqn, 2)
print("SQN: {}".format(sqn))
cerebro.addanalyzer(bt.analyzers.SQN, _name="sqn")
strategies = cerebro.run()
cerebro.plot(style="bar", volume=False)
print("Final Portfolio Value: %.2f" % cerebro.broker.getvalue())
printSQN(strategies[0].analyzers.sqn.get_analysis())
运行效果:
em/backtrading/learn_sma_cross.py
Starting Portfolio Value: 10000.00
getStockPeriodFromDB 000001.SZ
2022-12-16, Ending Value 9996.86
Final Portfolio Value: 9996.86
SQN: -3.91
可以看到 SQN 得分为 -3.91 分,带入 SQN 评分规则,完全不入流。
网络资源
Using Analyzers in Backtrader - Backtest Rookies (backtest-rookies.com)