事件驱动回测引擎 · 核心原理拆解

📚 共计 30 章节
01
事件驱动架构概述
什么是事件驱动?为什么回测引擎需要事件驱动?与向量化回测的对比。
架构核心概念
02
核心事件类型定义
市场数据事件(MarketEvent)、订单事件(OrderEvent)、成交事件(FillEvent)、信号事件(SignalEvent)。
事件类型
03
事件队列的设计与实现
Python queue.Queue的使用,优先级队列与FIFO队列的选择。
队列并发
04
事件循环(Event Loop)机制
主循环的架构,如何从队列中取出事件并分发。
循环调度
05
数据处理器(DataHandler)抽象
设计一个通用的数据处理器接口,处理历史数据与实时数据。
数据接口
06
策略模块(Strategy)抽象
信号生成逻辑,如何订阅市场数据并产生交易信号。
策略信号
07
投资组合(Portfolio)模块
仓位管理、资金管理、风险控制的核心逻辑。
风控仓位
08
执行代理(ExecutionHandler)抽象
模拟订单执行,处理滑点与交易成本。
执行滑点
09
回测引擎主类(BacktestEngine)设计
整合所有模块,启动与停止回测。
引擎主类
10
时间戳管理与对齐
不同数据源的时间戳处理,跨市场数据对齐策略。
时间对齐
11
订单类型支持
市价单、限价单、止损单、止盈单的实现与模拟撮合。
订单撮合
12
撮合引擎(MatchingEngine)设计
基于订单簿的模拟撮合逻辑,处理价格优先与时间优先。
撮合订单簿
13
滑点模型(SlippageModel)
固定滑点、百分比滑点、基于流动性的滑点模型实现。
滑点模型
14
交易成本模型(CommissionModel)
固定佣金、按比例佣金、阶梯佣金模型。
佣金成本
15
性能指标计算
夏普比率、最大回撤、年化收益率、胜率、盈亏比等。
指标评估
16
多标的回测支持
如何管理多个证券的仓位与订单,跨品种对冲策略。
多标的对冲
17
事件驱动与多线程
使用多线程加速回测,线程安全的事件队列设计。
多线程并发
18
日志系统设计
记录交易日志、错误日志、性能日志,便于调试与复盘。
日志调试
19
参数优化框架
网格搜索、随机搜索、贝叶斯优化在回测中的应用。
优化搜索
20
回测结果可视化
使用Matplotlib/Plotly绘制净值曲线、回撤曲线、交易信号图。
可视化图表
21
数据缓存与预处理
使用HDF5/Parquet格式存储历史数据,加速数据读取。
缓存存储
22
事件驱动回测的常见陷阱
前视偏差、幸存者偏差、过拟合问题。
陷阱偏差
23
单元测试与集成测试
如何为回测引擎编写可靠的测试用例。
测试质量
24
回测引擎的扩展性设计
插件化架构,支持自定义模块。
扩展插件
25
与实盘交易系统的对接
如何将回测引擎改造为实盘交易系统。
实盘对接
26
事件驱动回测的性能优化
使用NumPy加速计算,使用Cython优化热点代码。
性能优化
27
分布式回测架构
使用Ray/Dask进行分布式参数搜索与回测。
分布式并行
28
回测结果分析报告
自动生成HTML报告,包含关键指标与图表。
报告分析
29
案例实战:均线策略
基于事件驱动回测引擎实现一个简单的均线策略。
实战均线
30
案例实战:统计套利策略
基于事件驱动回测引擎实现一个统计套利策略。
实战套利