aitrader制作策略回测报告
-
在aitrader_v6.0项目根目录下面创建py文件(aitrader_core未测试,应该可以用),调用tasks.py里面的task作为回测对象, /data/instruments文件夹里的文本作为股票池,以score_roc_ma() 基于评分动量均线轮动为例,具体代码如下:
from bt_algos_extend import Task
from bt_algos_extend import Engine
from tasks import *
import quantstats as qstatdef build_report(t, stock_pool):
strategy_name = t.name
with open(f'./data/instruments/{stock_pool}') as f3:
etfs = [line.strip() for line in f3.readlines()]
t.symbols = etfs
res0 = Engine().run_tasks([t])
dataz = res0.prices # 每日净值序列
qstat.reports.html(dataz[strategy_name], benchmark=dataz[f'基准:{t.benchmark}'],
title=f'{strategy_name}策略回测报告',
download_filename=f'./data/{strategy_name}回测报告.html',
output=f'./data/{strategy_name}回测报告.html',)if name == 'main':
t = score_roc_ma() #大类资产+优质行业多ETF
#t = etf_cyb_strategy()
t.start_date = '20200101'
build_report(t, '创业板.txt')在项目目录下会生产html文件,用浏览器打开效果如下:
左侧是收益走势,右侧是评估指标。
左侧中间按月的收益分布情况很有用,相当于一个右偏的分布,大部分月份都是正收益,负收益也只是集中在0-10%的区间。
左侧有最近6个月贝塔,夏普,波动,索诺提的走势。右侧可以看到每年的年化,前十次最大回撤的情况。