Agent Skills
返回列表
⚖️

Alpaca 交易回测

行业专业 更新于 2026.08.29

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

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/alpaca-trading-backtest。

技能介绍

回测最容易坏在哪

多数人第一次跑回测,得到的其实不是策略表现,而是一段说不清来源的数字。问题通常不在策略本身,而在那些没人记录的细节:信号用收盘价触发,成交却按同一根 bar 的高点成交,这就是前视偏差;因子用了未来才有的数据,或者 VWAP 与 close 被当成可以互换的成交价代理;分红、拆股、费用和滑点全被忽略,基准指数也没定义清楚。更要命的是,三个月后回头看当时的 run,发现脚本已经丢了,假设没人写下,只知道一句「当时跑出来是正的」。

这个技能要解决的就是这件事:把一次回测变成一份可以审计、可以复现的研究产物,而不是一次口头结论。

它如何工作

整个流程围绕「把自由描述翻译成可验证的数学规则」展开:

  • 明确输入:起止日期、标的池、资产类别、周期、初始资金、仓位规则、数据源、复权方式、成交假设与基准。缺的项由代理推断,但每一项都会写进 notes.md,不静默填补。
  • 策略形式化:在写代码之前,先给出一份确认稿,包含数据字段、触发条件、区间开闭、指标变体与参数、warmup 行为、仓位与取整、订单类型、成交模型和基准定义。
  • 工作区检查:先看看有没有可复用的历史数据、上一轮 run 或现成的回测工具,避免重复造轮子;数据只在 fingerprint 一致时才复用。
  • 自包含的 run 目录:每次运行生成独立文件夹,内含 notes.md、strategy_spec.json、config.json 和一个可读的单文件 run.py,原始 CLI 输出与归一化数据分别落在 raw/ 与 normalized/。
  • 回测与产物:跑完本地模拟后输出 report.md 与 summary.json,并把「Teaching Five」、首末笔交易、全部假设、数据指纹、收益对比表和注意事项一起返回。

成交模型是显式选择的:next_open 为默认,信号在 T 收盘、成交在 T+1 开盘;time_based 按指定时刻成交;same_bar 只在明确要求时使用,并且必须在报告里标注前视风险。

适用边界

这不是策略会赚钱的承诺,只是一个可复现的研究流程。结果不保证未来表现,且高度依赖数据质量、复权处理、费用模型、滑点、流动性、税费与成交假设。

所有报告、notebook、dashboard 和导出结果都必须带上免责声明;一旦涉及模拟交易,还要额外说明纸面交易与实盘的差异。若回测建模了 Alpaca 的交易活动费用,需要记录 PDF 版本日期、抓取时间、所建模的费用类别以及被有意排除的项目。

安全边界同样硬:不允许用未来数据生成信号、不允许把同 bar 决策和成交静默混在一起、不允许提交真实订单、不允许绕过 Alpaca CLI 直接发 HTTP 请求、也不允许在没有本地凭证和文件权限的沙箱里跑。期权等需要显式合约选择与成交逻辑的产品,不做超出支持范围的宣称。

使用场景

  • 需要用 Alpaca CLI 拉取历史行情,对一段已确认的均线交叉策略做指定时间区间的本地回测,并输出报告。
  • 策略想法只写了粗略文字,需要先把触发条件、参数、成交模型和费用假设形式化,再生成单文件 `run.py` 跑回测。
  • 检查工作区里已有的历史数据是否能复用,用相同的数据指纹跳过重复下载,继续完成当前回测运行。
  • 回测涉及交易活动费用模型,需要在 `notes.md` 记录 Alpaca 费率表版本、抓取时间、建模类别和排除项。

适合人员

  • 量化研究员:希望把一次策略实验的假设、代码、数据和结果完整留存,方便后续审计和复现。
  • 交易开发者:需要通过 Alpaca CLI 拉数据并跑可读的单文件回测脚本,验证订单成交和费用假设。
  • 策略复盘者:手上有上一轮回测产物,想对照数据指纹和变更记录,确认新结果是否真的基于同一批数据。
  • 合规意识较强的运营或研究助理:要求每份回测报告都附带免责声明、纸面交易说明和费用来源链接。