关于 trader-cloud-backtest
trader-cloud-backtest 是一项技能,可在 Anthropic Claude Managed Agents 云容器中运行计算密集型 neural-trader 回测和训练任务。它涵盖成本估算、执行、结果验证与清理,适用于大型滚动回测、蒙特卡洛运行、参数扫描和模型训练。
主要功能
- 01云端回测与模型训练
- 02滚动回测和蒙特卡洛运行
- 03在单个容器中扫描参数
- 04成本估算与会话清理
- 05签名结果验证
适用场景
- 01运行多年滚动回测
- 02用大量蒙特卡洛路径评估策略
- 03扫描策略参数
- 04在云端训练交易模型
MCP 相关
使用 Managed Agents 工具创建、提示、检查和终止云会话;也介绍了通过 MCP 工具存储结果。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ ruvnet/ ruflo --skill trader-cloud-backtest安装后在 Claude Code 中输入/trader-cloud-backtest确认已加载。
详细介绍
云端回测 / 训练(在 Managed Agent 上运行 neural-trader)
将一个高负载的 neural-trader 任务分派给 Anthropic Claude Managed Agent(云容器),而不是在本地运行。请参阅项目 ADR-117(方案 + 成本规则)和 ADR-115(managed_agent_* 运行时)。
何时使用此技能,而非 trader-backtest(本地)
| 任务 | 运行环境 |
|---|---|
| 快速健全性检查;一次短时回测(< ~1 分钟) | 本地 — 使用 trader-backtest 技能 |
| 多年期滚动前推、大量蒙特卡洛次数、网格上的参数扫描或模型训练(LSTM/Transformer/N-BEATS) | 云端 — 使用此技能 |
前提条件:ANTHROPIC_API_KEY(或 CLAUDE_API_KEY)+ Managed Agents beta 访问权限。如果 managed_agent_* 返回 "needs ANTHROPIC_API_KEY",请改用本地 trader-backtest 技能。
步骤
-
先估算。 根据任务规模打印预计成本(≈ 容器分钟数 × 费率 + token)——长时间扫描应是经过慎重考虑的选择,而非默认做法。
-
创建(或复用)容器——在容器启动时安装 neural-trader,避免 Agent 在运行过程中重新安装:
managed_agent_create({ name: "nt-cloud", model: "claude-haiku-4-5-20251001", // orchestration only — the compute is the Rust engine, not the LM (ADR-026) system: "You operate the `neural-trader` CLI in this container. Run exactly the commands asked, report the metrics, write requested artifacts, then stop.", networking: "unrestricted", // or "restricted" pinned to your data host packages: { npm: ["neural-trader"] }, // add apt:["build-essential"] ONLY if there's no prebuilt NAPI binary for the arch (neural-trader ships prebuilds → usually omit) initScript: "npm install -g --ignore-scripts neural-trader >/dev/null 2>&1 || npx -y neural-trader --version >/dev/null 2>&1 || true" }) → { sessionId, agentId, environmentId }对于参数扫描:只创建一次环境,在一个
managed_agent_prompt中运行所有配置(使用一个容器),而不是启动 N 个会话。 -
先进行低成本预检。 在运行 1000 条路径 / 多年期任务前,先执行一次小型冒烟测试(1 条 MC 路径,~3 个月)——几秒内即可发现策略名称 / 交易标的无效的问题:
managed_agent_prompt({ sessionId, message: "Run `npx neural-trader --backtest --strategy <name> --symbol <TICKER> --period <last 3 months> --mc-paths 1`. Just confirm it ran and report the Sharpe. Then stop.", maxWaitMs: 60000 })如果失败,请在正式运行前修正参数(并执行
managed_agent_terminate)。 -
运行正式任务:
managed_agent_prompt({ sessionId, message: "Run `npx neural-trader --backtest --strategy <name> --symbol <TICKER> --period <range> --walk-forward --mc-paths <N>` (for training: `npx neural-trader --train --model <lstm|transformer|nbeats> --symbol <TICKER> --period <range>`; for a sweep: loop the configs and run each). Report: total return, annualized return, Sharpe, Sortino, max drawdown, win rate, profit factor, # trades, 95% CVaR. Write the equity curve to /tmp/equity.csv and the trade log to /tmp/trades.csv. Then stop.", maxWaitMs: <generous — minutes> }) → { finished, status, stopReason, assistantText (the metrics), toolUses }如果
finished:false,请继续调用managed_agent_events({ sessionId }),直到空闲。 -
拉取产物(如有需要): 调用
managed_agent_prompt({ sessionId, message: "cat /tmp/equity.csv" }),或调用managed_agent_events并读取 tool_result。 -
在本地摄取并使用 Ed25519 验证(ADR-126 第 4 阶段的失败关闭门控):
- 根据云端返回的指标 + 参数哈希 + 运行哈希构建
SignedBacktestArtifact正文。使用plugins/ruflo-neural-trader/src/signed-artifact.mjs中的signBacktestArtifact(body, privateKeyHex)在本地签名(密钥解析顺序与trader-backtest相同:RUFLO_WITNESS_KEY_PATH→verification/witness-key.json→ 降级为未签名警告)。 - 在存储产物或将其提升为实时策略之前:调用
await verifyBacktestArtifact(artifact, trustedPublicKey),其中trustedPublicKey是固定在项目配置中的 Ed25519 公钥(而非artifact.witnessPublicKey字段——该字段可由攻击者控制;参见 CWE-347 / #1922)。如果验证返回false:拒绝提升——输出醒目的错误"[ERROR] ruflo-neural-trader: SignedBacktestArtifact signature INVALID against trusted key — refusing to promote to live strategy",并提前返回。这是 ADR-126 规定的失败关闭门控。 - 验证成功后:
memory_store({ key: "backtest-<strategy>-<ts>", value: JSON.stringify(signedArtifact), namespace: "trading-backtests" })。存储的值包含witnessSignature+witnessPublicKey。 - 如果 Sharpe > 1.5:
agentdb_pattern-store({ pattern: "profitable-<strategy-type>", data: "<params + results>" })。 - 将本次运行的容器时长 + token 成本记录到
cost-tracking命名空间(根据 ADR-117,云端会话会持续计费,直到终止)。
- 根据云端返回的指标 + 参数哈希 + 运行哈希构建
-
立即终止——拿到结果后:
managed_agent_terminate({ sessionId, environmentId }) → { sessionDeleted: true, environmentDeleted: true }切勿让计费容器处于空闲状态。(
ruflo doctor/ GC 会清理孤立容器 — #1931。)
成本规则(切勿跳过)
- 只安装一次(
initScript),复用环境,将参数扫描批量放入一个提示词中,进行低成本预检,尽早终止,Agent 循环使用 Haiku/Sonnet,并在启动前估算成本。(ADR-117 §"成本优化"。) - 云端回测运行一小时,就会产生一小时的容器运行成本 + Agent 循环的 token 成本。请谨慎安排。
快速示例
managed_agent_create { "name":"nt-cloud", "model":"claude-haiku-4-5-20251001", "packages":{"npm":["neural-trader"]}, "initScript":"npm install -g --ignore-scripts neural-trader >/dev/null 2>&1 || true" }
→ { sessionId:"sesn_…", environmentId:"env_…" }
managed_agent_prompt { "sessionId":"sesn_…", "message":"Run `npx neural-trader --backtest --strategy multi-indicator --symbol SPY --period 2020-2024 --walk-forward --mc-paths 1000`. Report Sharpe/Sortino/max-DD/win-rate/CVaR; write /tmp/equity.csv. Then stop.", "maxWaitMs":600000 }
→ { finished:true, status:"idle", assistantText:"<metrics>", toolUses:[{bash:"npx neural-trader --backtest …"}] }
# … memory_store the metrics, agentdb_pattern-store if Sharpe>1.5, record cost …
managed_agent_terminate { "sessionId":"sesn_…", "environmentId":"env_…" }