Agent Skills
返回列表
⚖️

模拟回测仓

行业专业 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_1b4883f8/backtest-portfolio-yuntuosixsex

技能介绍

回测工具的退出规则困境

大多数回测框架的通病:把退出规则硬编码进回测流程。买入 → 持有 5 天 → 卖出写死在代码里,测一次没问题,但想比较"3% 移动止盈 vs 5 天硬持有"就得把历史数据从头再跑一遍。持仓记录是 1000 笔、覆盖 1 年行情时,重放成本完全不可接受。

存原材料,不存成品

这个 skill 的核心设计原则是把数据收集和规则评估拆成两个独立阶段:

  • 收集阶段(每天向前执行):记录三条不可变事实——买入订单(orders)、买入后每日收盘快照(daily_snapshots)、平仓记录(trades)
  • 评估阶段(任意时间向后执行):用已有快照跑任意退出规则,比如 backtest_exit_rule() 几秒钟就能对比多个退出策略的胜率

因为每日收盘价、建仓以来最高/最低价都存成了快照,你不需要重放历史行情,直接查表就能回答"如果当时用了 3% 移动止盈会怎样"。

数据库结构

三张表都有 UNIQUE 约束,每天重复执行不会产生重复数据:

  • orders — 买入记录,包含标的、策略标签、分级、买入价、评分、rules_version 版本号
  • daily_snapshots — 每日追加的收盘快照,记录当日收盘价、持有天数、建仓以来最高/最低收盘价
  • trades — 已平仓记录,记录盈亏百分比和退出原因(timeout / stop_loss / take_profit / trailing_stop / manual)

快速上手

  1. 实现一个 PriceProvider 数据源类,接入任意市场行情
  2. 初始化数据库
  3. 每天收盘后运行更新命令,追加当日快照
  4. 随时用 backtest_exit_rule() 跑退出规则对比

适用边界

  • ❌ 不是自动交易机器人,只做记录和分析,不下单
  • ❌ 不连接任何券商 API,不是实盘接口
  • ❌ 不绑定市场,A股/港股/美股/加密货币/外汇共用同一套代码

注意点:快照数据需要时间积累,初期持仓天数少时可选退出规则有限;meta 字段用 JSON 格式存储,后续加字段无需改表结构;建议按策略标签分组测试,不同评分段的候选往往有各自的最优退出方案。

使用场景

  • 持仓已积累一年行情,想对比"3%移动止盈"和"持有5天"哪个更好,直接查快照出胜率表
  • 每天收盘后更新持仓快照,持续积累可复用的原始数据,为后续测试任意退出规则做准备
  • 同一策略下不同评分段的候选持仓,分别测试各自的最优退出方案并横向对比
  • 从A股实盘切换到美股或加密货币市场,只需换PriceProvider数据源,回测流程保持不变

适合人员

  • 量化策略研究者,需要反复验证不同退出规则对历史持仓的影响而不想重跑数据
  • 个人交易者,想复盘自己实盘的买入和卖出记录,找出亏损持仓的退出问题
  • 小型策略团队的工程师,希望把数据收集和规则评估解耦,各自独立迭代
  • 数据基础设施开发者,需要一套市场无关、可长期扩展的持仓快照存储方案