开发策略主要的三部分:数据输入、策略实现,指令输出。
数据分为回测需要的历史数据和策略中需要的数据
策略模块中的onBar(self,bar),其中参数bar就是回测传来的数据,策略中用的k线,回调函数先调用self.am.updateBar(bar)方法,在am(ArrayManager对象)中生成一个size=100的列表
回测时先载入历史数据,初始化策略,数据回测,传回交易指令,保存记录
数据准备层
从本地数据库 / 外部接口加载历史数据
数据格式转换为 vnpy 标准 Bar/Tick 对象
支持分钟线 / 日线 / Tick 数据
策略执行层
策略类初始化(参数、变量、数据缓存)
历史数据预加载(用于指标计算)
onBar/onTick 回调函数触发策略逻辑
ArrayManager 管理 K 线数据窗口
引擎核心层
指令生命周期管理(生成→撮合→结束)
模拟交易撮合(考虑滑点 / 手续费)
实时更新账户状态(资金 / 持仓 / 委托)
事件驱动机制处理异步操作
结果输出层
基础统计:胜率 / 盈亏比 / 最大回撤等
高级分析:夏普比率 / 索提诺比率等
可视化组件:资金曲线 / 成交分布 / 指标图表
数据存储:支持导出 CSV/JSON/ 数据库
初始化阶段不产生实际交易(trading=False)正式回测时通过 trading=True 激活指令传递支持多品种 / 多周期策略组合回测可配置交易成本模型(固定费用 / 比例费用)提供参数优化功能(Grid Search / 遗传算法)