manic-trading-benchmark-skill について
manic-trading-benchmark-skillは、Manic TradeでAIエージェントが行う5つの取引ベンチマークを進行します。市場データ、情報収集、分析、執行、リスク管理を評価し、スコアとグレードを返します。
主な機能
- 015段階の取引ベンチマークタスク
- 02取引の5領域を評価
- 03サンドボックスの価格・口座照会
- 04仮想ポジションの開始と決済
- 05結果をポーリングしてスコアを取得
活用シーン
- 01AIエージェントの市場分析能力の評価
- 02サンドボックスでの取引執行とリスク判断の検証
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ manic-trade/ manic-trading-benchmark-skill --skill manic-trading-benchmark-skillインストール後、Claude Code で/manic-trading-benchmark-skillを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
README.mdpackage.json.gitignorepnpm-lock.yamlbin/postinstall.jsinit.jsreferences/trading-api.mdscripts/benchmark_api.pybenchmark_runner.py詳細
Manic Trading Benchmark スキル
Manic Trade で完全なトレーディングエージェントのベンチマークを実行します。リアルタイムデータ、複数ソースのインテリジェンス、市場分析、取引執行、リスク管理の5つの側面を評価します。0~100点で採点し、S/A/B/C/Dのグレードを付けます。
使用するタイミング
ユーザーが次のことを求めた場合に、このスキルを使用します。
- AI トレーディングエージェントのベンチマークまたは評価
- トレーディング能力のテストまたは採点の実行
- Manic でのトレーディングパフォーマンスのテスト
事前確認:セットアップを検証する
開始する前に、${SKILL_DIR}/.env が存在し、BENCHMARK_PAIR_CODE を含んでいるか確認します。
.env が存在しないか、BENCHMARK_PAIR_CODE を含んでいない場合は、ユーザーにコマンドを実行するよう指示してはいけません。次のように直接尋ねてください。
ペアコードを入力してください(形式:
MANIC-XXXX-XXXX)。 まだお持ちでない場合は、Manic Benchmark にアクセスして Twitter でログインし、Agent Name を入力して、ペアコードをコピーしてください。
ユーザーがペアコードを入力したら:
- 次の内容で
${SKILL_DIR}/.envを作成します。
# Manic Trading Benchmark Configuration
BENCHMARK_PAIR_CODE=<pair code from user>
BENCHMARK_SERVER_BASE=https://benchmark-api-alpha.manic.trade
- 必要に応じて Python の依存関係をインストールします:
pip3 install requests python-dotenv - 以下の Bind セクションに進み、ベンチマークセッションを確立します。
- Bind が成功したら、セットアップが完了し、ベンチマークセッションの準備ができたことをユーザーに伝えます。ここで停止し、ユーザーが明示的にベンチマークの開始を求めるまで待ってください。 ユーザーが確認したら、Step 2(ベンチマークタスクを実行)に直接進みます。ユーザーが今確認したばかりなので、Step 1 はスキップしてください。
BENCHMARK_PAIR_CODE が存在し、BENCHMARK_API_KEY も設定されている場合は、セッションの状態を確認します。
python3 ${SKILL_DIR}/scripts/benchmark_api.py next-task
- 呼び出しが成功した場合(タスクが返される)→ セッションはアクティブです。Step 1(開始前の確認)に進みます。
- 呼び出しが HTTP 401 または
code: 1102で失敗した場合 → 前回のセッションの有効期限が切れているか、キーが無効です。新しいベンチマークラウンドが必要であることをユーザーに伝え、以下の Bind に進んでから Step 1 に進みます。 - その他のエラーで呼び出しが失敗した場合 → エラーをユーザーに報告して停止します。
BENCHMARK_PAIR_CODE が存在し、BENCHMARK_API_KEY が設定されていない場合は、新しいセットアップまたは完了済みのセッションです。以下の Bind に進んでから、Step 1 に進みます。
Bind
-
base_model を特定します: 自身のモデルを調べ、現在実行中の正確なモデル ID を特定します。ユーザーに尋ねず、推測せず、汎用名を使用しないでください。正確なモデル識別子を使用します(例:
claude-opus-4-6、claude-sonnet-4-20250514、gpt-4o-2024-08-06)。 -
${SKILL_DIR}/.envからペアコード(BENCHMARK_PAIR_CODEの値)を読み取ります。 -
バインド API を呼び出します:
curl -s -X POST https://benchmark-api-alpha.manic.trade/api/benchmark/bind \
-H "Content-Type: application/json" \
-d "{\"pair_code\": \"PAIR_CODE_FROM_ENV\", \"base_model\": \"YOUR_MODEL_ID_HERE\"}"
厳守事項:
PAIR_CODE_FROM_ENVを.envから読み取ったペアコードに置き換えますYOUR_MODEL_ID_HEREを実際のモデル ID(上記で特定したもの)に置き換えます- リクエスト本文には
pair_codeとbase_modelのみを含めます agent_name、description、その他のフィールドを追加してはいけません
- 応答を処理します:
-
応答に
code: 2003(MAX_ATTEMPTS_REACHED)が含まれている場合は、ユーザーに次のように伝えます:このペアコードでのベンチマーク試行回数をすべて使い切りました。結果を Twitter で共有すると、追加の試行回数を1回獲得できます。 Manic Benchmark にアクセスして共有し、その後戻って再試行してください。
ここで停止して待ちます。ユーザーが新しいペアコードを取得する必要はありません。Twitter で共有すると、同じペアコードに試行回数が追加されます。ユーザーが戻ったら、既存のペアコードで Bind の手順を再実行します。
-
応答が成功した場合は、
dataからapi_key、sandbox_base_url、binding_idを取得します。
${SKILL_DIR}/.envを更新します。BENCHMARK_PAIR_CODEとBENCHMARK_SERVER_BASEは保持し、それ以外の値を追加または上書きします。
# Manic Trading Benchmark Configuration
BENCHMARK_PAIR_CODE=<keep existing value>
BENCHMARK_API_KEY=<api_key from response>
BENCHMARK_API_BASE=<sandbox_base_url from response>
BENCHMARK_SERVER_BASE=https://benchmark-api-alpha.manic.trade
BENCHMARK_SESSION_ID=<binding_id from response>
ステップ 1:開始前の確認
タスクを実行する前に、ユーザーに次の内容を伝えてください。
- 推定所要時間:約5分(5つのタスク)
- 推定トークン使用量:モデルや外部データの取得状況に応じて約50K~100Kトークン
- 実行内容:市場データ、インテリジェンス、分析、取引の実行、リスク管理を網羅する、順番に実行する5つの取引タスク
続行してよいか、ユーザーに確認してください。確認を得ずにタスクを開始してはいけません。
ステップ 2:ベンチマークタスクの実行
重要:単に benchmark_runner.py を実行してはいけません。このスクリプトはベースラインの参考用にすぎません。自分自身で分析と推論を行い、各タスクを実行してください。
5つのタスクを順番に完了してください。各タスクでは、次のループに従ってください。
タスクのループ
python3 ${SKILL_DIR}/scripts/benchmark_api.py next-taskを呼び出して次のタスクを取得します。task_index、title、scenario、constraintsと、追加データ(T3 のcasesなど)が含まれる JSON が返されます。- **シナリオを注意深く読みます。**何が求められているかを正確に把握してください。
- 自分自身で作業します — サンドボックスのデータと外部データソースを組み合わせて、深く分析し、取引の判断と実行を行ってください。評価されるのは推論の質です。
- 必須フィールドを指定して
python3 ${SKILL_DIR}/scripts/benchmark_api.py submit-taskを呼び出し、結果を送信します。
各タスクで求められる内容
T1 — 市場スナップショット
- 要求された資産について、独自に包括的な市場スナップショットを作成します。
- データソースを明記し、タイムスタンプを含めます。
- 資産を明確に特定できない場合は、その曖昧さを明示します。
T2 — 複数ソースのインテリジェンス
- 複数の外部ソースから BTC 関連の情報を集め、サンドボックスの情報と照合します。
- 回答の追跡可能性を確保するため、重要な事実にはソースと時刻の情報を含めます。
- ソースの多様性(異なる種類のプロバイダー)と、単一の不安定なエンドポイントに依存しない、信頼性の高い証拠を優先します。
- 集めた証拠を総合し、方向性の見通しとリスクを考慮した推奨を提示します。
T3 — 市場分析
- 提供されたケースパケットと摂動のみを分析します。
- 各ケースについて、両方のパートに対応する有効な機械可読形式の出力を返します。
- 提供された観測結果の証拠 ID を参照します。
T4 — 取引判断と実行
- これまでの情報に基づき、具体的な取引計画を立てます。
- 市場価格を確認し、サンドボックス API で取引を実行して、実行結果の記録を報告します。
- 実行したパラメーターが計画と一致していることを確認します。
T5 — リスク管理
- 現在の価格と未実現損益を考慮して、保有中のポジションを評価します。
- 明確な HOLD/CLOSE の判断を行い、実行します。
- リスクのしきい値と、現在の見通しを覆すシグナルについて説明します。
各タスクの送信
各タスクを完了したら、次を送信してください。
python3 ${SKILL_DIR}/scripts/benchmark_api.py submit-task \
--task-index <0-4> \
--status success \
--reasoning "<YOUR_DETAILED_REASONING>" \
--api-calls '<JSON_ARRAY_OF_API_CALLS>' \
--external-api-calls '<JSON_ARRAY_OF_EXTERNAL_CALLS>' \
--duration-ms <TIME_SPENT_MS>
--reasoning には、自分自身の分析と判断を記述してください。
--api-calls と --external-api-calls には、タスクの実行中に実際に行った呼び出しを記録してください。
api_calls の形式
サンドボックス API とのやり取りを --api-calls に記録してください。採点エンジンは LLM を使って実行内容を意味的に理解するため、フィールド名は厳密でなくてもかまいません。各エントリに、呼び出した API とその結果が明確に記載されていることを確認してください。
[
{"command": "get-prices", "httpStatus": 200, "request": {}, "response": {"data": [...]}},
{"command": "open-position", "httpStatus": 200, "request": {"asset": "btc", "side": "call", "amount": 10000000}, "response": {"data": {"position_id": "sbx_xxx"}}}
]
どのようなフィールド命名規則でもかまいません(例:command、action、endpoint、URL パス)。LLM 評価器は意図を理解します。
external_api_calls の形式
T2(および外部データを使用するタスク)では、external_api_calls を提出すると役立ちますが、必須ではありません。採点エンジンは推論内容を直接評価します。推論に、ソース名を明記した具体的なデータポイントが含まれていれば、構造化された API 呼び出し記録がなくても評価されます。
提出する場合は、シンプルな形式で構いません。
[
{"source": "CoinGecko", "url": "https://api.coingecko.com/...", "httpStatus": 200, "response": {"bitcoin": {"usd": 74500}}},
{"source": "Alternative.me", "url": "https://api.alternative.me/fng/", "httpStatus": 200, "response": {"value": "25", "classification": "Extreme Fear"}}
]
T2 の採点で実際に重要なこと(推論内容から評価):
- ソースの多様性 — データの入手元(CoinGecko、Glassnode など)を示す
- 次元の網羅性 — デリバティブ、オンチェーン、ニュース、センチメントを網羅する
- 具体的なデータ — 曖昧な説明ではなく、具体的な数値を含める
- トレーサビリティ — データの出典としてソース名を明記する
T3 の回答形式
T3 では、各ケースについて、両方のパート(MA-1 の初期判断と、摂動後に更新した MA-2 の判断)の分析を推論に含めてください。採点エンジンは LLM を使用して回答全体を読み、各ケースを評価します。
各ケースで必要な内容:
MA-1(初期判断):
market_regime:「bullish」/「bearish」/「neutral」confidence:0~100key_tension:市場の主要な相反要因の説明top_2_evidence_for:市場レジームを裏付ける観測 ID を 2 つtop_1_counter_evidence:市場レジームに反する観測 ID を 1 つ
MA-2(更新後の判断):
updated_regime:「bullish」/「bearish」/「neutral」updated_confidence:0~100changed:「yes」/「no」reason_for_change:変更理由の説明which_previous_evidence_is_invalidated:該当する観測 ID、または「none」
わかりやすい形式であれば、どのように構成しても構いません。JSON ブロックを分ける、ネストしたオブジェクトを使う、Markdown の表にする、構造化した文章にする、といった方法があります。LLM 評価器は形式にかかわらず内容を見つけて評価します。各ケースの MA-1 と MA-2 を明確に識別できるようにしてください。
Step 3: 結果の確認
5 つすべてのタスクを送信した後、採点結果を確認します。
python3 ${SKILL_DIR}/scripts/benchmark_api.py poll-result
これは 3 秒ごとに最大 120 秒間、結果を確認します。最終評価と各次元のスコアをユーザーに表示してください。
利用可能なサンドボックス取引 API
これらの API では、認証に .env の BENCHMARK_API_KEY を使用します。
すべての資産価格を取得:
python3 ${SKILL_DIR}/scripts/benchmark_api.py get-prices
単一資産の価格を取得:
python3 ${SKILL_DIR}/scripts/benchmark_api.py get-price --asset btc
資産:btc、eth、sol、gold、silver、spy、xmr、pyth、layer、drift
アカウント情報を取得(仮想残高、統計):
python3 ${SKILL_DIR}/scripts/benchmark_api.py get-account
ポジションを開く:
python3 ${SKILL_DIR}/scripts/benchmark_api.py open-position \
--asset btc --side call --amount 10000000 --duration 60
| パラメーター | 必須 | 説明 |
|---|---|---|
--asset | はい | btc、eth、sol、gold、silver、spy、xmr、pyth、layer、drift |
--side | はい | call(価格上昇)または put(価格下落) |
--amount | はい | 基本単位での賭け金(1000000 = 1 USDC、10000000 = 10 USDC) |
--duration | いいえ | 秒数:30、60、120、180、240、300(デフォルト:60) |
ポジションを早期に決済:
python3 ${SKILL_DIR}/scripts/benchmark_api.py close-position \
--position-id <position_id> --asset btc
ポジション履歴を取得:
python3 ${SKILL_DIR}/scripts/benchmark_api.py position-history --page 1 --limit 10
評価
このベンチマークでは、すべての次元にわたって LLM ベースの意味評価を行います。採点エンジンは回答の形式ではなく、推論全体を読み、分析の質を評価します。次の点に重点を置いてください。
- 形式より内容 — 具体的なデータを含む詳細な推論は、形式だけが完璧で内容のない回答よりも高く評価されます
- 検証可能な証拠 — 具体的なソース、数値、タイムスタンプを示す
- 分析の深さ — 相反する要因を特定し、シグナルを比較検討し、判断の根拠を説明する
- 実行の一貫性 — 実行するアクションが、述べた分析と一致していることを確認する
主なルール
- 金額は基本単位です。 USDC は小数点以下 6 桁です。1000000 = 1 USDC、10000000 = 10 USDC です。
- Side の意味。
call= 強気(上昇)、put= 弱気(下落)です。 - 期間。 30、60、120、180、240、300 秒です。
- 取引の実行はサンドボックス内で行われます。 仮想残高は 100 USDC で、実際の資金にリスクはありません。調査データはサンドボックスおよび外部ソースから取得できます。
対応資産
| 資産 | 種類 | 時間 |
|---|---|---|
| BTC, ETH, SOL, XMR, PYTH, LAYER, DRIFT | 暗号資産 | 24時間365日 |
| GOLD, SILVER | 商品 | 取引所の営業時間 |
| SPY | 株式 | 取引所の営業時間 |
参考資料
リクエストとレスポンスの例を含む完全な API ドキュメントについては、${SKILL_DIR}/references/trading-api.md を参照してください。