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 分未満)のバックテスト 1 件 | ローカル — trader-backtest スキルを使用 |
| 複数年のウォークフォワード、大量のモンテカルロ試行、グリッド上でのパラメーター探索、またはモデルのトレーニング(LSTM/Transformer/N-BEATS) | クラウド — このスキル |
前提条件:ANTHROPIC_API_KEY(または CLAUDE_API_KEY)と Managed Agents のベータ版へのアクセス権。managed_agent_* が「needs ANTHROPIC_API_KEY」を返す場合は、ローカルの trader-backtest スキルに切り替えてください。
手順
-
まず見積もります。 ジョブの規模から推定コスト(コンテナの稼働時間 × 料金 + トークン)を出力します。長時間の探索は意図的に選択するものであり、デフォルトではありません。
-
コンテナをプロビジョニング(または再利用)します — エージェントが実行途中に再インストールしなくて済むよう、コンテナの起動時に neural-trader をインストールします:
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 }探索の場合:環境を一度だけ作成し、すべての設定を1 つの
managed_agent_prompt(1 つのコンテナ)で実行します。N 個のセッションには分けません。 -
実行前の確認は低コストで行います。 1000 パス/複数年の実行前に、小規模なスモークテスト(MC パス 1 回、約 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→ 署名なしの場合は警告)。 - 成果物を保存または本番戦略に昇格させる前に、
trustedPublicKeyがプロジェクト設定で固定された Ed25519 公開鍵であることを確認してから、await verifyBacktestArtifact(artifact, trustedPublicKey)を呼び出します(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>" })。 - ADR-117 に従い、実行のコンテナ稼働時間とトークンコストを
cost-tracking名前空間に記録します。クラウドセッションは終了するまで課金されます。
- クラウドから返されたメトリクス、パラメーターハッシュ、実行ハッシュから
-
結果を受け取ったら、すぐに終了します:
managed_agent_terminate({ sessionId, environmentId }) → { sessionDeleted: true, environmentDeleted: true }アイドル状態の課金対象コンテナを放置しないでください。(
ruflo doctor/GC が孤立コンテナを検出します — #1931。)
コストルール(必ず守ってください)
- インストールは一度だけ行い(
initScript)、環境を再利用し、探索を 1 つのプロンプトにまとめ、実行前の確認は低コストで行い、すぐに終了し、エージェントのループには Haiku/Sonnet を使い、開始前に見積もります。(ADR-117 §「コスト最適化」。) - 1 時間実行するクラウドバックテストには、コンテナ 1 時間分の料金とエージェントループのトークンコストがかかります。計画的に実行してください。
簡単な例
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_…" }