mcpField
M
manic-trading-benchmark-skill

manic-trading-benchmark-skill

github.com/manic-trade测试与质量0220 次安装28 周前更新
代码仓库

关于 manic-trading-benchmark-skill

manic-trading-benchmark-skill 引导 AI Agent 在 Manic Trade 完成五项交易基准测试,评估行情数据、情报、分析、执行和风险管理,并返回分数与等级。

主要功能

  1. 01五项连续交易基准任务
  2. 02评估五个交易维度
  3. 03查询沙盒行情与账户
  4. 04开仓和平仓虚拟头寸
  5. 05轮询结果并获取分数与等级

适用场景

  1. 01评估 AI Agent 的市场分析能力
  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 上运行完整的交易 Agent 基准测试。评估 5 个维度:实时数据、多源情报、市场分析、交易执行和风险管理。评分范围为 0–100,等级为 S/A/B/C/D。

使用时机

在用户要求以下操作时使用此技能:

  • 对其 AI 交易 Agent 进行基准测试或评估
  • 运行交易能力测试或评分
  • 在 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. 继续执行下方的绑定部分,以建立基准测试会话。
  3. 绑定成功后,告知用户设置已完成,基准测试会话已准备就绪。到此停止,并等待用户明确要求开始基准测试。 用户确认后,直接转到步骤 2(执行基准测试任务)——跳过步骤 1,因为用户刚刚已经确认。

如果 BENCHMARK_PAIR_CODE 存在,且 BENCHMARK_API_KEY 也已设置,则探测会话状态:

python3 ${SKILL_DIR}/scripts/benchmark_api.py next-task
  • 如果调用成功(返回一个任务)→ 会话处于活动状态,转到步骤 1(开始前确认)。
  • 如果调用因 HTTP 401 或 code: 1102 失败 → 上一个会话已过期或密钥无效。告知用户需要新一轮基准测试,然后继续执行下方的绑定部分,再转到步骤 1。
  • 如果调用因任何其他错误失败 → 向用户报告错误并停止。

如果 BENCHMARK_PAIR_CODE 存在,但没有 BENCHMARK_API_KEY,则这是全新设置或已完成的会话。继续执行下方的绑定部分,然后转到步骤 1。

绑定
  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 上分享会为同一配对码增加一次测试机会。用户返回后,使用现有配对码重新执行绑定流程。

  • 如果响应成功,从 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 项任务)
  • 预计 token 用量:约 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 — 风险管理

  • 根据当前价格和未实现盈亏情况评估持仓。
  • 明确作出并执行持有或平仓决策。
  • 说明你的风险阈值,以及会导致当前观点失效的信号。
提交每项任务

完成每项任务后,请提交:

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-calls 中记录你的沙盒 API 交互。评分引擎会使用 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:支持该市场状态的 2 个观察 ID
  • top_1_counter_evidence:反对该判断的 1 个观察 ID

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 清晰可辨。

第 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。
  • 方向含义。 call = 看涨(上涨),put = 看跌(下跌)。
  • 持续时间。 30、60、120、180、240、300 秒。
  • 交易在沙盒中执行。 虚拟余额为 100 USDC,不涉及真实资金风险;研究数据可以来自沙盒和外部来源。

支持的资产

资产类型时段
BTC, ETH, SOL, XMR, PYTH, LAYER, DRIFT加密货币全天候
GOLD, SILVER大宗商品交易所交易时段
SPY股票交易所交易时段

参考资料

完整的 API 文档及请求/响应示例,请参阅 ${SKILL_DIR}/references/trading-api.md。

评论

支持 Markdown