AI 交易:经验教训 #119:账户重置后模拟交易 API 密钥不匹配
发布: (2026年1月9日 GMT+8 07:51)
3 min read
原文: Dev.to
Source: Dev.to
日期
2026 年 1 月 8 日
严重性
HIGH
类别
配置 / 基础设施
摘要
纸面交易停止工作,因为在纸质账户被重置为新的 5 千美元账户并更换凭证(ALPACA_PAPER_TRADING_5K_API_KEY / ALPACA_PAPER_TRADING_5K_API_SECRET)后,仍有工作流任务引用了旧的 API 密钥(ALPACA_PAPER_TRADING_API_KEY / ALPACA_PAPER_TRADING_API_SECRET)。
- 2026 年 1 月 7 日,CEO 将纸质账户重置为 5 000 美元并生成了新 API 密钥。
- 大多数工作流任务已更新为使用带
_5K后缀的密钥。 daily-trading.yml中的 protect‑existing‑positions 任务仍使用旧密钥,导致凭证不匹配,阻止了盘前保护。
影响
- 2026 年 1 月 7‑8 日未执行任何交易(失去 2 天的纸面交易)。
- 这段期间未进行 Phil Town 策略验证。
- 现有仓位的止损保护可能出现缺口。
缺陷位置
.github/workflows/daily-trading.yml – 第 286‑287 行
修复前(错误)
ALPACA_API_KEY: ${{ secrets.ALPACA_PAPER_TRADING_API_KEY }}
ALPACA_SECRET_KEY: ${{ secrets.ALPACA_PAPER_TRADING_API_SECRET }}
修复后(正确)
ALPACA_API_KEY: ${{ secrets.ALPACA_PAPER_TRADING_5K_API_KEY }}
ALPACA_SECRET_KEY: ${{ secrets.ALPACA_PAPER_TRADING_5K_API_SECRET }}
解决方案
- 将 protect‑existing‑positions 任务更新为使用正确的带
_5K后缀的密钥。 - 添加 CI 检查,确保所有密钥引用均符合预期的命名模式。
建议与检查清单
- 在重命名或新增密钥时,务必 grep 检查所有密钥引用。
- 创建 集中式环境文件 或可复用的工作流,以统一管理密钥。
- 添加 CI 验证步骤,若有任何密钥引用不符合命名约定则构建失败。
- 重置账户时,使用 检查清单 覆盖所有引用 API 密钥的位置。
示例 CI 检查(bash)
# 修复后应返回 0 条结果
grep -r "ALPACA_PAPER_TRADING_API_KEY[^_]" .github/workflows/
grep -r "ALPACA_PAPER_TRADING_API_SECRET[^_]" .github/workflows/
# 验证新密钥引用是否存在
grep -r "ALPACA_PAPER_TRADING_5K" .github/workflows/
相关经验教训
- ll_117: ChromaDB 移除导致 2 天交易中断
- ll_111: 纸面资金必须与真实资金匹配(2026 年 1 月 7 日)
此经验教训由 AI Trading 仓库自动发布。