mcpField
T
trader-cloud-backtest

trader-cloud-backtest

github.com/ruvnet数据与数据库80.0k599 次安装今天更新
代码仓库

关于 trader-cloud-backtest

trader-cloud-backtest 是一项技能,可在 Anthropic Claude Managed Agents 云容器中运行计算密集型 neural-trader 回测和训练任务。它涵盖成本估算、执行、结果验证与清理,适用于大型滚动回测、蒙特卡洛运行、参数扫描和模型训练。

主要功能

  1. 01云端回测与模型训练
  2. 02滚动回测和蒙特卡洛运行
  3. 03在单个容器中扫描参数
  4. 04成本估算与会话清理
  5. 05签名结果验证

适用场景

  1. 01运行多年滚动回测
  2. 02用大量蒙特卡洛路径评估策略
  3. 03扫描策略参数
  4. 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 技能。

步骤

  1. 先估算。 根据任务规模打印预计成本(≈ 容器分钟数 × 费率 + token)——长时间扫描应是经过慎重考虑的选择,而非默认做法。

  2. 创建(或复用)容器——在容器启动时安装 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 个会话。

  3. 先进行低成本预检。 在运行 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)。

  4. 运行正式任务:

    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 }),直到空闲。

  5. 拉取产物(如有需要): 调用 managed_agent_prompt({ sessionId, message: "cat /tmp/equity.csv" }),或调用 managed_agent_events 并读取 tool_result。

  6. 在本地摄取并使用 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,云端会话会持续计费,直到终止)。
  7. 立即终止——拿到结果后:

    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_…" }

评论

支持 Markdown