mcpField
M
manic-trading-benchmark-skill

manic-trading-benchmark-skill

github.com/manic-tradeテスト・品質0220 回インストール28 週間前に更新
リポジトリ

manic-trading-benchmark-skill について

manic-trading-benchmark-skillは、Manic TradeでAIエージェントが行う5つの取引ベンチマークを進行します。市場データ、情報収集、分析、執行、リスク管理を評価し、スコアとグレードを返します。

主な機能

  1. 015段階の取引ベンチマークタスク
  2. 02取引の5領域を評価
  3. 03サンドボックスの価格・口座照会
  4. 04仮想ポジションの開始と決済
  5. 05結果をポーリングしてスコアを取得

活用シーン

  1. 01AIエージェントの市場分析能力の評価
  2. 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.md
package.json
.gitignore
pnpm-lock.yaml
bin/
postinstall.js
init.js
references/
trading-api.md
scripts/
benchmark_api.py
benchmark_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 を入力して、ペアコードをコピーしてください。

ユーザーがペアコードを入力したら:

  1. 次の内容で ${SKILL_DIR}/.env を作成します。
# Manic Trading Benchmark Configuration
BENCHMARK_PAIR_CODE=<pair code from user>
BENCHMARK_SERVER_BASE=https://benchmark-api-alpha.manic.trade
  1. 必要に応じて Python の依存関係をインストールします:pip3 install requests python-dotenv
  2. 以下の Bind セクションに進み、ベンチマークセッションを確立します。
  3. 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
  1. base_model を特定します: 自身のモデルを調べ、現在実行中の正確なモデル ID を特定します。ユーザーに尋ねず、推測せず、汎用名を使用しないでください。正確なモデル識別子を使用します(例:claude-opus-4-6、claude-sonnet-4-20250514、gpt-4o-2024-08-06)。

  2. ${SKILL_DIR}/.env からペアコード(BENCHMARK_PAIR_CODE の値)を読み取ります。

  3. バインド 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、その他のフィールドを追加してはいけません
  1. 応答を処理します:
  • 応答に code: 2003(MAX_ATTEMPTS_REACHED)が含まれている場合は、ユーザーに次のように伝えます:

    このペアコードでのベンチマーク試行回数をすべて使い切りました。結果を Twitter で共有すると、追加の試行回数を1回獲得できます。 Manic Benchmark にアクセスして共有し、その後戻って再試行してください。

    ここで停止して待ちます。ユーザーが新しいペアコードを取得する必要はありません。Twitter で共有すると、同じペアコードに試行回数が追加されます。ユーザーが戻ったら、既存のペアコードで Bind の手順を再実行します。

  • 応答が成功した場合は、data から api_key、sandbox_base_url、binding_id を取得します。

  1. ${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つのタスクを順番に完了してください。各タスクでは、次のループに従ってください。

タスクのループ
  1. python3 ${SKILL_DIR}/scripts/benchmark_api.py next-task を呼び出して次のタスクを取得します。task_index、title、scenario、constraints と、追加データ(T3 の cases など)が含まれる JSON が返されます。
  2. **シナリオを注意深く読みます。**何が求められているかを正確に把握してください。
  3. 自分自身で作業します — サンドボックスのデータと外部データソースを組み合わせて、深く分析し、取引の判断と実行を行ってください。評価されるのは推論の質です。
  4. 必須フィールドを指定して 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 の採点で実際に重要なこと(推論内容から評価):

  1. ソースの多様性 — データの入手元(CoinGecko、Glassnode など)を示す
  2. 次元の網羅性 — デリバティブ、オンチェーン、ニュース、センチメントを網羅する
  3. 具体的なデータ — 曖昧な説明ではなく、具体的な数値を含める
  4. トレーサビリティ — データの出典としてソース名を明記する
T3 の回答形式

T3 では、各ケースについて、両方のパート(MA-1 の初期判断と、摂動後に更新した MA-2 の判断)の分析を推論に含めてください。採点エンジンは LLM を使用して回答全体を読み、各ケースを評価します。

各ケースで必要な内容:

MA-1(初期判断):

  • market_regime:「bullish」/「bearish」/「neutral」
  • confidence:0~100
  • key_tension:市場の主要な相反要因の説明
  • top_2_evidence_for:市場レジームを裏付ける観測 ID を 2 つ
  • top_1_counter_evidence:市場レジームに反する観測 ID を 1 つ

MA-2(更新後の判断):

  • updated_regime:「bullish」/「bearish」/「neutral」
  • updated_confidence:0~100
  • changed:「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 を参照してください。

コメント