模拟回测仓
将以下提示词粘贴到你的 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)
快速上手
- 实现一个
PriceProvider数据源类,接入任意市场行情 - 初始化数据库
- 每天收盘后运行更新命令,追加当日快照
- 随时用
backtest_exit_rule()跑退出规则对比
适用边界
- ❌ 不是自动交易机器人,只做记录和分析,不下单
- ❌ 不连接任何券商 API,不是实盘接口
- ❌ 不绑定市场,A股/港股/美股/加密货币/外汇共用同一套代码
注意点:快照数据需要时间积累,初期持仓天数少时可选退出规则有限;meta 字段用 JSON 格式存储,后续加字段无需改表结构;建议按策略标签分组测试,不同评分段的候选往往有各自的最优退出方案。
使用场景
- 持仓已积累一年行情,想对比"3%移动止盈"和"持有5天"哪个更好,直接查快照出胜率表
- 每天收盘后更新持仓快照,持续积累可复用的原始数据,为后续测试任意退出规则做准备
- 同一策略下不同评分段的候选持仓,分别测试各自的最优退出方案并横向对比
- 从A股实盘切换到美股或加密货币市场,只需换PriceProvider数据源,回测流程保持不变
适合人员
- 量化策略研究者,需要反复验证不同退出规则对历史持仓的影响而不想重跑数据
- 个人交易者,想复盘自己实盘的买入和卖出记录,找出亏损持仓的退出问题
- 小型策略团队的工程师,希望把数据收集和规则评估解耦,各自独立迭代
- 数据基础设施开发者,需要一套市场无关、可长期扩展的持仓快照存储方案