事件驱动回测引擎
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_053d27d0/backtest-engine-zx。
技能介绍
要解决什么问题
做 A 股策略验证时,很多脚本只是「收盘价买卖 + 简单收益率」,没有事件顺序、T+1、整手与税费,回测曲线和实盘偏差很大。你需要的是按信息到达顺序推进的流程:行情更新 → 信号 → 下单 → 成交,并在同一套逻辑里计入真实摩擦成本。
引擎如何工作
本技能实现事件驱动回测:MarketEvent → SignalEvent → OrderEvent → FillEvent 经队列驱动主循环。行情通过 akshare 拉取 A 股日线(前复权),内置 均线交叉、RSI、布林带 三类示例策略,也可继承 Strategy 实现 calculate_signals。
交易侧按 A 股规则建模:T+1(当日买入次日才可卖)、100 股整数倍、佣金/印花税/过户费,以及固定或比例滑点。绩效模块输出夏普、Sortino、最大回撤、Calmar、胜率、盈亏比等;可选 Brinson 归因(配置、选择、交互)。回测结束在指定目录生成单文件 HTML 报告(净值与基准对比、回撤、月度收益热力图、交易明细)。
适用边界
- 能做到:多标的日线历史回测、停牌日自动跳过、完整成本与 T+1。
- 不能做到:实时交易、做空、涨跌停限制、分笔/盘口、分钟或 Tick 级;Brinson 默认以回测列表中第一只股票作简易基准,自定义指数需改基准数据逻辑。
- 报告依赖 matplotlib 中文字体;仅供学习研究,不构成投资建议。
使用场景
- 在同一标的与日期区间上,对比均线交叉、RSI 或布林带三种策略的信号与净值,并生成可分享的 HTML 报告。
- 组内评审策略前,必须把佣金、印花税、过户费、滑点与 T+1 写入回测,核对曲线是否仍满足回撤与夏普要求。
- 多只股票组合回测时,按交易日并集处理停牌,导出每笔成交明细及夏普、最大回撤、月度收益热力图。
- 已有日线因子或规则时,继承 `Strategy` 实现 `calculate_signals`,在 100 股整手与费用模型下验证是否值得继续调参。
适合人员
- 用 Python 做策略原型、想按 Market→Signal→Order→Fill 理解回测主循环而非只看向量化的量化初学者
- 要向业务或风控展示净值对比、回撤区间与交易明细,需要单文件 HTML 输出的投研或量化分析岗
- 课程或课题要求用真实 A 股日线、说明 T+1 与税费对收益影响的金融工程或计量经济专业学生
- 已有「收盘价全仓买卖」脚本,希望换成 akshare 前复权数据并补齐 Brinson 归因与标准绩效指标的个人策略作者