QuantDinger实战:追踪贵州茅台14笔订单的完整生命周期审计
一、问题引入:你的回测能追踪到每一笔订单吗?
大多数回测工具告诉你的是"结果"——赚了多少、亏了多少、夏普多少。但很少有人关注"过程"——每笔订单是在什么时间、以什么价格、因为什么原因执行的?手续费是多少?订单状态是否成交?这些信息在实盘中至关重要,但在回测中往往被忽略。结果就是你拿了一个漂亮的回测曲线去实盘,发现滑点、手续费、执行延迟把你的策略收益吃掉了一半。
QuantDinger 是一个专注于订单级别审计追踪的 CTA 回测框架。它不仅输出标准绩效指标,还记录每一笔订单的完整生命周期——从触发信号到成交确认、从入场理由到出场原因、从单笔手续费到累计成本。本文以贵州茅台(600519)的真实回测数据,展示 QuantDinger 从策略清单到订单审计的完整输出。
二、成果展示:QuantDinger 对贵州茅台的完整回测

2.1 Strategy Manifest(策略清单)
QuantDinger 最独特的设计——在执行回测前先输出一份策略清单,明确策略的所有参数:
| 属性 | 值 | 说明 |
|---|---|---|
| Strategy Type | CTA | 趋势跟踪策略 |
| Universe | CNStock:600519.SH | 单一标的:贵州茅台 |
| Primary Frequency | 1d | 日线级别 |
| Direction Mode | long_only | 只做多 |
| Benchmark | CNStock:600519.SH | 基准为标的自身 |
| Total Executions | 14 | 7买7卖 = 14笔订单 |
策略清单的价值在于"回测前先确认参数"——避免跑了半天回测才发现方向模式设成了 long_only 但策略逻辑中包含做空信号的尴尬。
2.2 Performance Metrics(绩效指标)
| 指标 | 值 | 指标 | 值 |
|---|---|---|---|
| Initial Capital | ¥1,000,000 | Final Value | ¥1,110,924 |
| Total Return | +11.09% | CAGR | +5.52% |
| Sharpe Ratio | 0.505 | Max Drawdown | -15.18% |
| Profit Factor | 1.70 | Win Rate | 42.86% |
| Total Trades | 7 | Total Executions | 14 |
| Total Fees | ¥2,233.15 |
2.3 Benchmark Comparison(基准对比)
| 指标 | Strategy | Benchmark | Excess |
|---|---|---|---|
| Return | +11.09% | -3.34% | +14.43% |
| CAGR | +5.52% | -1.72% | +7.24% |
| Sharpe | 0.505 | 0.059 | +0.446 |
| Max Drawdown | -15.18% | -33.97% | +18.79% |
基准回撤-33.97%,策略回撤仅-15.18%——超额收益的核心来源不是涨的时候多赚,而是跌的时候少亏。
2.4 Order Ledger(订单审计——核心特色)
14笔订单的完整审计追踪——每笔订单的时间、方向、成交价、金额、手续费、状态和触发原因全部记录:
| 时间 | 方向 | 成交价 | 金额 | 手续费 | 状态 | 触发原因 | 盈亏 |
|---|---|---|---|---|---|---|---|
| 2022-04-13 | BUY | ¥1,528.92 | ¥917,351 | ¥275 | filled | ma_crossover_long_entry | — |
| 2022-05-18 | SELL | ¥1,522.00 | ¥913,202 | ¥274 | filled | ma_crossover_long_exit | -¥4,422 |
| 2022-06-07 | BUY | ¥1,571.18 | ¥942,709 | ¥283 | filled | ma_crossover_long_entry | — |
| 2022-07-22 | SELL | ¥1,700.92 | ¥1,020,553 | ¥306 | filled | ma_crossover_long_exit | +¥77,538 |
| 2022-11-23 | BUY | ¥1,353.22 | ¥947,257 | ¥284 | filled | ma_crossover_long_entry | — |
| 2023-02-14 | SELL | ¥1,631.27 | ¥1,141,891 | ¥343 | filled | ma_crossover_long_exit | +¥194,292 |
| 2023-04-04 | BUY | ¥1,605.44 | ¥1,123,807 | ¥337 | filled | ma_crossover_long_entry | — |
| 2023-04-14 | SELL | ¥1,515.93 | ¥1,061,151 | ¥318 | filled | ma_crossover_long_exit | -¥62,975 |
| 2023-06-16 | BUY | ¥1,590.49 | ¥1,113,340 | ¥334 | filled | ma_crossover_long_entry | — |
| 2023-08-23 | SELL | ¥1,593.62 | ¥1,115,536 | ¥335 | filled | ma_crossover_long_exit | +¥1,861 |
| 2023-09-07 | BUY | ¥1,651.11 | ¥1,155,780 | ¥347 | filled | ma_crossover_long_entry | — |
| 2023-09-15 | SELL | ¥1,600.80 | ¥1,120,560 | ¥336 | filled | ma_crossover_long_exit | -¥35,557 |
| 2023-11-09 | BUY | ¥1,611.69 | ¥1,128,181 | ¥338 | filled | ma_crossover_long_entry | — |
| 2023-12-06 | SELL | ¥1,529.84 | ¥1,070,889 | ¥321 | filled | ma_crossover_long_exit | -¥57,613 |
全部14笔订单状态均为 filled,入场原因统一为 ma_crossover_long_entry,出场原因统一为 ma_crossover_long_exit——策略执行逻辑清晰一致,没有异常订单。

2.5 输出文件
quantdinger_output/
├── quantdinger_report.csv ← 完整报告(Manifest+Metrics+Benchmark)
├── quantdinger_trades.csv ← 交易明细+Order Ledger
├── quantdinger_report.json ← 结构化结果
├── ️ quantdinger_equity_curve.png ← 净值曲线图
└── quantdinger_backtest_600519.py ← 回测脚本(可复现)
三、Step 1:环境准备
从 EasyClaw 官网下载并安装最新版。本文所有操作均通过自然语言对话完成。
打开 EasyClaw → 左侧面板 →「Skill」→「Skill Creator」。如看不到该入口,在「设置 → 通用」中启用「开发者模式」后重启。
| 问题 | 解决方法 |
|---|---|
| Skill Creator 灰显 | 「设置 → 通用 → 启用开发者模式」,重启 EasyClaw |
| 网络连接失败 | 「设置 → 网络 → 检查代理设置」 |
四、Step 2:项目架构分析
从 GitHub 拉取 QuantDinger 项目,先展示目录结构,标注出策略引擎、订单审计模块和回测评估模块的位置和职责。
QuantDinger/
├── quantdinger/
│ ├── engine/ ← ★ CTA 回测引擎(事件驱动+订单管理)
│ ├── strategy/ ← 策略基类(initialize + handle_data)
│ ├── ledger/ ← ★ Order Ledger(订单审计追踪)
│ ├── metrics/ ← 绩效计算(含基准对比)
│ └── manifest/ ← ★ Strategy Manifest(策略清单生成)
└── examples/
| 模块 | 职责 |
|---|---|
| manifest/ | 回测前自动生成策略清单,确认Universe/频率/方向模式 |
| engine/ | 事件驱动CTA引擎,handle_data逐日执行,管理订单生命周期 |
| ledger/ | 订单审计:每笔订单的时间/方向/价格/金额/手续费/状态/原因/盈亏 |
| metrics/ | 绩效指标+基准对比+超额收益拆解 |
五、Step 3:核心参数与 Skill 创建
3.1 参数一览
| 参数名 | 含义 | 默认值 | 说明 |
|---|---|---|---|
| symbol | 交易标的 | — | 必填,如 600519 |
| start_date | 起始日期 | — | 格式 YYYY-MM-DD |
| end_date | 结束日期 | — | 格式 YYYY-MM-DD |
| initial_capital | 初始资金 | 1000000 | — |
| direction_mode | 方向模式 | long_only | 可选:long_only/short_only/both |
| frequency | 主频率 | 1d | 可选:1d/1h/1min |
3.2 用自然语言创建 Skill
从 GitHub 拉取 QuantDinger 项目,自动分析项目架构。
重点关注:
- manifest/:策略清单,回测前确认所有参数
- engine/:CTA事件驱动引擎
- ledger/:Order Ledger订单审计,记录每笔订单的完整生命周期
- metrics/:绩效+基准对比+超额归因
额外加入能力:
- 回测前自动输出 Strategy Manifest
- 每笔订单记录触发原因(如 ma_crossover_long_entry)
- Benchmark Comparison 中直接计算超额收益
封装为 EasyClaw Skill:
- 名称:QuantDinger回测
- 输入:symbol、start_date、end_date、initial_capital(默认1000000)、direction_mode(默认long_only)、frequency(默认1d)
- 输出:quantdinger_report.csv + quantdinger_trades.csv + quantdinger_report.json + quantdinger_equity_curve.png + 回测脚本
点击「创建 Skill」,等待完成。
六、Step 4:运行与结果
4.1 启动回测
@QuantDinger回测 symbol=600519 start_date=2022-01-01 end_date=2023-12-31
4.2 效率对比
| 环节 | 手动操作 | EasyClaw Skill |
|---|---|---|
| 环境+策略配置 | 约60-90分钟 | 0 分钟 |
| 回测+报告 | 约30分钟 | 一键输出 |
| 总计 | 约1.5-2小时 | — |
[注:具体耗时实际测试后填写]
七、Step 5:进阶与常见问题
5.1 切换方向模式
@QuantDinger回测 symbol=600519 direction_mode=both ← 允许做多+做空
5.2 常见问题
| 错误 | 原因 | 解决方法 |
|---|---|---|
| Order Ledger 有 unfilled 订单 | 流动性不足或价格触及涨跌停 | 检查对应日期的市场状态 |
| 手续费与预期不符 | 费率设置与实盘不一致 | 调整 commission_rate 参数 |
八、总结
QuantDinger 的核心价值在于从"看结果"升级到"审过程"。Strategy Manifest 让你在回测前确认所有参数、Order Ledger 让你追溯每笔订单的完整生命周期、Benchmark Comparison 让你精确量化超额收益的来源。对于从回测走向实盘的交易者来说,这些"审计级"的细节不是锦上添花——回测和实盘之间的差距,往往就藏在那些回测中没被记录、实盘中却被扣掉的细节里。
下一步可以尝试:
- Order Ledger 异常分析:批量回测多只股票,筛选出有 unfilled 订单的标的,排查流动性风险
- 多方向模式对比:同一标的跑 long_only vs both 两种模式,看加入做空后超额收益能否提升
资源链接:
- EasyClaw 下载:https://easyclaw.cn/?f=710
你回测时会关注每笔订单的成交状态吗?还是只看最终盈亏?有没有遇到过"回测赚钱、实盘亏钱"却找不到原因的困境?欢迎分享你的经历。

浙公网安备 33010602011771号