分析与导出报告¶
使用 research.py 完成一次均线研究:
python examples/research.py --plot --output my-report
它使用人工双证券行情、参数声明、最低佣金 1 元,并以 ALPHA 价格作为基准。需要 doribt[plot];目标目录必须尚不存在。省略 --output 时只演示临时导出,运行结束后清理。
读取结果¶
需要什么 |
入口 |
|---|---|
日频收益、Sharpe、回撤、换手率、胜率 |
|
日末账户、月收益、交易成本与盈亏 |
|
每根 bar 的权益、现金、持仓、可卖量 |
|
未成交原因、订单及逐笔成交 |
|
参数、执行假设、数据指纹与依赖版本 |
|
默认 report() 按日末采样,以每年 252 个交易日、零无风险利率计算;首日收益相对初始资金,包含首日成本。可以显式改变年化假设。未定义的指标返回 None,JSON 导出为 null。
stats() 按原始输入 bar 分析,不默认年化;分钟结果通常应先用 report()。所有指标的详细定义见结果参考。
基准与图表¶
from doribt import Benchmark
# data、result 来自本次回测;这里比较同一证券的原始价格路径。
benchmark = Benchmark(
sessions=data.timeline,
prices=data.prices("close")[:, 0],
name="自备基准",
source="说明价格指数或全收益指数的来源",
)
report = result.report(benchmark=benchmark)
print(report.stats["excess_total_return"])
figure = result.plot(benchmark=benchmark)
figure.savefig("comparison.png")
策略净值红、基准蓝、累计超额金、回撤浅红。累计超额为策略累计收益减基准累计收益。返回的 Matplotlib Figure 可继续编辑或导出 SVG/PDF。
基准须精确对齐,不自动下载或填充;日频报告也接受与唯一交易日对齐的日线基准。基准是理论价格路径,不额外模拟交易费用。
保存研究¶
result.export("new-report", benchmark=benchmark, daily=True, plot=True)
daily=True 输出 report.json,并使统计与图表采用日频口径;account.csv 和 positions.csv 仍保留全部 bar。订单、成交、权益事件、参数与自定义输出均保存到同一目录,manifest.json 包含文件校验和。
父目录须存在,目标目录须不存在;导出失败会清理本次暂存,不覆盖已有报告。完整文件列表及单位见导出契约。