策略回测
下载完历史数据后,需要配置以下字段:交易策略、手续费率、交易滑点、合约乘数、价格跳动、回测资金。这些字段主要对应BacktesterEngine类的run_backtesting函数。
若数据库已存在历史数据,无需重复下载,直接从本地数据库中导入数据进行回测。注意,vt_symbol的格式为品种代码.交易所的形式,如IF1908.CFFEX,导入时会自动将其分割为品种和交易所两部分
- def run_backtesting(
- self, class_name: str, vt_symbol: str, interval: str, start: datetime,
- end: datetime, rate: float, slippage: float, size: int, pricetick: float,
- capital: int, setting: dict
- ):
点击下方的“开始回测”按钮可以开始回测:首先会弹出如图所示的参数配置窗口,用于调整策略参数。该设置对应的是run_backtesting()函数的setting字典。
点击“确认”按钮后开始运行回测,同时日志界面会输出相关信息,如图。
回测完成后会显示统计数字图表。
统计数据
用于显示回测完成后的相关统计数值, 如结束资金、总收益率、夏普比率、收益回撤比。
图表分析
以下四个图分别是代表账号净值、净值回撤、每日盈亏、盈亏分布。
K线图
K线图是基于PyQtGraph开发的,整个模块由以下五大组件构成:
BarManager:K线序列数据管理工具
ChartItem:基础图形类,继承实现后可以绘制K线、成交量、技术指标等
DatetimeAxis:针对K线时间戳设计的定制坐标轴
ChartCursor:十字光标控件,用于显示特定位置的数据细节
ChartWidget:包含以上所有部分,提供单一函数入口的绘图组件
在回测完毕后,点击“K线图表”按钮即可显示历史K线行情数据(默认1分钟),并且标识有具体的买卖点位,如下图。