关于 Oneqaz Trading Mcp
Oneqaz Trading Mcp 是面向 AI Agent 的金融 MCP 服务,覆盖加密货币、美股、韩股及宏观市场。它提供实时数据衍生信号和市场状态检测,并开放准确性、校准与治理证据,供客户端评估预测和策略。
主要功能
- 01基于实时数据的交易信号
- 02市场状态检测
- 03预测准确性与校准检查
- 04特征治理与账本完整性
- 05跨资产及投资组合分析
- 06市场简报与后续建议
适用场景
- 01引用信号前检查其可靠性
- 02对照基线审查预测准确性
- 03分析跨市场联系与投资组合风险
- 04一次调用生成市场概览
MCP 相关
通过托管端点或本地运行的服务,向 MCP 客户端提供金融工具和资源。客户端可发现目录,并使用可信度评估、市场分析和模拟交易工具。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://api.oneqaz.com/mcpclaude mcp add --transport http oneqaz-trading https://api.oneqaz.com/mcp{"mcpServers":{"oneqaz-trading":{"type":"http","url":"https://api.oneqaz.com/mcp"}}}在 Cursor 中打开{"servers":{"oneqaz-trading":{"type":"http","url":"https://api.oneqaz.com/mcp"}}}在 VS Code 中打开{"mcpServers":{"oneqaz-trading":{"type":"http","url":"https://api.oneqaz.com/mcp"}}}{"mcpServers":{"oneqaz-trading":{"serverUrl":"https://api.oneqaz.com/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://api.oneqaz.com/mcp需要授权工具
43| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| limit | integer | 否 | 返回的最大行数(默认 50,最大 1000)。行会分页;请参阅 total_available / truncated。注意:统计数据(win_rate、avg_pnl)基于已扫描的数据集汇总,而非返回的行;请参阅 stats_scope。 |
| symbol | any | 否 | 按股票代码筛选(例如 "BTC"、"AAPL");不区分大小写 |
| max_pnl | any | 否 | 最大盈亏百分比筛选条件(例如 10.0) |
| min_pnl | any | 否 | 最小盈亏百分比筛选条件(例如 -5.0) |
| market_id | enum | 是 | 市场 ID(crypto、kr_stock、us_stock;接受别名 coin/kr/us)crypto | kr_stock | us_stock |
| hours_back | any | 否 | 仅包含过去 N 小时内的交易 |
| action_filter | enum | 否 | 按操作筛选(all、buy、sell)buy | sell | hold |
详细介绍
oneqaz-trading-mcp
面向金融 AI 的专业 API——带有感知对话的响应钩子。
你的 AI Agent 不应只看到价格,还应能够核查它读取的信号表现如何,并知道接下来该问什么。托管端点提供 42 个工具,涵盖 10 个类别:3 个实体上下文工具(一次调用即可查询一只股票、一个行业或整个市场的状态、先行变动因素、带标签的新闻,以及未跟踪的内容)、13 个信任层工具(依据可靠基准评估命中率、校准和治理)、防篡改预测账本(
get_ledger_integrity——记录每项宏观状态预测的每日 SHA-256 哈希链,任何人都可以重新计算)、4 个跨资产相关性工具(行业 / 宏观 / 同行)、投资组合分析(MDD / Sharpe / Sortino / Calmar)、模拟交易证据工具,以及用于一次调用获取市场概览的高频get_daily_brief。每个响应都包含_next_actions(根据响应数据推荐后续工具)和_followup_questions_for_user(AI 可直接转述给用户的韩语自然语言后续问题),让 OneQAZ 从静态 API 转变为对话式专业工具。加密货币、美股、韩股——约 1,300 种代码,以及 40 多种宏观指标。信号评分依据实时市场价格计算,每 5–15 分钟重新计算一次(公开测试版,不保证正常运行时间)。 不构成投资建议。交易、持仓和盈亏均为模拟交易(模拟成交,不涉及真实资金)。
关键词:MCP、交易、信号、市场分析、市场状态、投资组合、情绪、技术分析、加密货币、股票、恐惧与贪婪、跨市场、信任层、AI 可验证、每日简报、后续操作、对话式专业工具、Claude、Model Context Protocol
为什么选择 OneQAZ
金融数据 API 随处可见,而可供 AI 验证的市场情报却并不常见。
| 典型金融 MCP | OneQAZ | |
|---|---|---|
| 价格 / OHLCV 数据 | ✅ | ✅ |
| 技术指标 | ✅ | ✅ |
| 市场状态检测(趋势 / 震荡 / 波动) | ❌ | ✅ |
| 自我修正信号(根据模拟交易结果进行 Thompson Sampling) | ❌ | ✅ |
| 宏观市场状态 + 市场结构叠加分析(两个独立循环,在每个代码的决策中合并) | ❌ | ✅ |
| 信任层(对比持续性与多数类基准的命中率 + 校准) | ❌ | ✅ |
主动披露缺陷(known_biases、评分管道的 ledger_health) | ❌ | ✅ |
| 特征治理(三轨 p 值验证) | ❌ | ✅ |
| 跨资产相关性(行业 / 宏观 / 代码同行的领先—滞后关系) | ❌ | ✅ |
对话钩子(_next_actions + _followup_questions_for_user) | ❌ | ✅ |
单次调用市场简报(get_daily_brief) | ❌ | ✅ |
动态发现(自省 + data_freshness 探测) | ❌ | ✅ |
| 全天候托管端点(无需 API 密钥) | ❌ | ✅ |
信任层——供评估 OneQAZ 的 AI Agent 使用
在将 OneQAZ 作为数据源之前,AI Agent 可以通过 7 次调用检查其记录:
get_prediction_accuracy——涵盖 8 个宏观类别的宏观 → 市场预测逐单元命中率,并提供解读这些数据所需的空模型:持续性准确率(市场状态具有黏性,因此原始准确率主要反映持续性)、带有自相关校正skill_ci_95的skill_score,以及多数类基线(beats_majority_baseline)。还包含known_biases(自行测出的缺陷)和ledger_health(评分管道运行状态)。应根据技能分数和基线评估各单元,切勿只看原始准确率。get_ledger_integrity——验证这些预测是否可防篡改:采用每日 SHA-256 哈希链及规范计算方案,可根据get_resolved_predictions重新计算。get_backtest_tuning_state——各单元经自动调优的lag_hours/sensitivity(last_backtest显示调优时效性)。get_monthly_accuracy_trend——按月准确率序列。在市场状态具有黏性的情况下,趋势很大程度上反映市场持续性,因此应结合第 1 步中的基线解读。get_signal_calibration——信号级可靠性:各置信度区间的实际命中率。get_feature_governance_state——哪些特征通过了三轨 p 值验证(OBSERVATION / CONDITIONAL / ACTIVE / DEPRECATED)。get_strategy_leaderboard——经过纸面测试的 RL 策略。GLOBAL 池可能包含合成胜率;测量结果请使用per_symbol_leaderboard。
各单元均包含 n_nominal 和 n_effective:结果存在自相关,因此应将 n_effective 视为样本量。每个工具还会返回 _llm_summary——为 AI Agent 上下文窗口优化的纯文本摘要。
新闻领先时间指标不属于信任链。
get_news_leading_indicator_performance、get_news_causality_breakdown和market://derived/event-leading会返回verification_status: UNVERIFIED——领先/预期方法仍在审计中,因此这些数值不会公开,工具只报告覆盖范围。
信号如何生成
OneQAZ 信号并非静态的指标交叉信号,而是通过 AbsoluteZero 风格的自博弈循环生成:
- 策略生成——RL 管道按市场状态生成候选策略
- 自博弈模拟——策略在模拟市场中相互竞争
- Thompson Sampling——根据实际虚拟交易结果持续更新信号权重,而非依据回测曲线
- 市场状态自适应——趋势、区间震荡和高波动市场会启用不同的策略池
这意味着,诸如 BTC +0.82 的信号评分依据的是实时纸面交易结果,而不只是对历史数据的拟合;随着结果不断累积,权重也会随之变化。评分是否经过实际校准,会通过数据公开,而非仅作宣称:get_signal_calibration 提供可靠性曲线,get_prediction_accuracy 则包含扣除费用后的 signal_gauge_v2 和 known_biases(例如,极端尾部评分曾被发现是反向的,因此在买入侧会对其降权)。
市场覆盖范围
| 市场 | 交易所 / 来源 | 标的范围 | 符号数量 |
|---|---|---|---|
| 加密货币 | Bithumb | 所有以 KRW 计价的交易对 | ~460 |
| 韩国股票 | KOSPI / KOSDAQ | KOSPI 200 + KOSDAQ 150 | ~350 |
| 美国股票 | NYSE / NASDAQ | S&P 500 | ~500 |
| 宏观 | 利率、外汇、期货、ETF | 债券 · 信用 · 外汇 · 流动性 · 大宗商品 · 能源 · 通胀 · 波动率 | 40+ |
| 市场结构 | ETF / 行业组合 | 按市场划分的结构分析分组 | ~180 |
数据管道全天候运行。加密货币全天候交易;韩国和美国股票信号则遵循各交易所的交易时段。K 线周期:加密货币为 15m / 30m / 4h / 1d,KR 和 US 为 5m / 15m / 30m / 1d。信号、市场状态检测、模拟交易和 Trust Layer 评分均持续运行。韩国和美国股票的信号分数每 5 分钟根据实时价格重新计算(交易时段内),加密货币则每 15 分钟重新计算;尚未收盘的 K 线指标保持该 K 线开盘时计算的值,宏观市场状态则每日更新。
快速开始
选项 1:实时 API——无需安装
实时数据——随着新 K 线收盘,信号会刷新(周期从 5 分钟到每日不等)。免费套餐下,无需密钥即可调用所有工具和资源(每天 1,500 次调用);唯一例外是 get_account_status,它会报告已连接的 OneQAZ 账户状态(参见访问政策)。
Cursor(mcp.json)和其他可在配置中填写远程 URL 的客户端:
{
"mcpServers": {
"oneqaz-trading": {
"url": "https://api.oneqaz.com/mcp"
}
}
}
Claude Desktop 的配置文件需要 mcp-remote 桥接程序:
{
"mcpServers": {
"oneqaz-trading": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://api.oneqaz.com/mcp"]
}
}
}
Claude Code:claude mcp add --transport http oneqaz-trading https://api.oneqaz.com/mcp。
Claude.ai 和 ChatGPT:将 https://api.oneqaz.com/mcp 添加为自定义连接器。
VS Code 和其他客户端:使用其远程(HTTP)MCP 服务选项,并填写相同的 URL。
可尝试以下请求:
- “调用
get_daily_brief,为我概述市场情况。” — 单次调用即可获取概览,AI 会自动跟进_next_actions进行深入分析。 - “调用
get_prediction_accuracy,告诉我是否应该信任 OneQAZ。” — Trust Layer 的入口,返回按样本数量加权的命中率。 - “先读取
market://meta/discovery,再制定计划。” — 动态目录,列出所有托管工具 / 资源 / 模板(43 个工具,包括账户工具、17 个资源、17 个模板),并提供data_freshness探测功能。
选项 2:自行托管(代码透明)
此软件包包含为 api.oneqaz.com/mcp 提供服务的服务器代码,由 scripts/sync_from_monorepo.py 从 OneQAZ monorepo 同步而来(0.5.0 = 截至 2026-10-17 的托管代码)。相同的 42 个工具、17 个资源、17 个模板和 4 个提示词都会注册;将此软件包与托管代码连接到同一数据库并排运行时,除 get_macro_influence_map 外,每个工具和资源的结果(成功或错误)都相同。重点就在于此:你可以查看(并运行)生成托管响应的代码。两者的差异如下:
- 仅 monorepo 中的数据路径:
get_macro_influence_map会返回结构化错误;实体上下文工具会在gaps下列出宏观关联,因为实时宏观档案表位于不属于此软件包的 monorepo 模块中。统一资源中的 Agent 历史 RAG 上下文也会以相同方式降级。 - API 密钥:此处不包含托管端的密钥存储。默认情况下,所有调用方都按免费用户提供服务;设置
MCP_TIER_RESOLVER即可自行验证密钥(参见使用 API 密钥自行托管)。 - OAuth 账户连接(“Connect free”)已包含,但默认关闭(
MCP_OAUTH_MODE、MCP_OAUTH_AS);它需要托管端的账户表。 - 仅托管端设置在此处均为空:用于使用情况分析的运营方自有流量列表(
MCP_SELF_TRAFFIC_IPS)默认为空。
pip install oneqaz-trading-mcp
# point it at a OneQAZ-compatible PostgreSQL (TimescaleDB) instance:
export PG_HOST=... PG_PORT=5432 PG_DB=auto_trader PG_USER=... PG_PASSWORD=...
oneqaz-trading-mcp serve # starts at http://localhost:8010
- MCP 端点:
http://localhost:8010/mcp - 已在 Python 3.11 和 3.13 上通过 FastMCP 2.14.7、4.0.11 和 4.1.0 测试(未测试,因此不包含 FastMCP 3.x)。
- 服务器仅支持 PostgreSQL(此前的 SQLite 演示后端已在 0.4.0 中弃用——
oneqaz-trading-mcp init现在只会打印弃用通知)。如果无法连接兼容 OneQAZ 的数据库,服务器仍会启动,且/health会报告degraded;但每次调用都会先等待连接超时(每个架构约一分钟),然后返回错误或空结果——评估时请使用实时 API。 - 向 localhost 以外的地址开放服务:来自
127.0.0.1/::1的请求会跳过速率限制和密钥检查;客户端地址会优先从CF-Connecting-IP/X-Forwarded-For标头读取(托管服务器位于 Cloudflare 后方)。如果要开放你的服务器,请将其置于会覆盖这些标头的代理之后;否则客户端可以伪装成来自 localhost。
然后从任意 MCP 客户端连接:
{
"mcpServers": {
"oneqaz-trading": {
"url": "http://localhost:8010/mcp"
}
}
}
访问策略
**免费层级可以调用所有工具和资源。**层级限制的是调用量,而不是可调用的内容。任何数据都没有付费墙——包括模拟交易持仓、决策日志和信号——因为 OneQAZ 是 B2AI 基础设施:AI Agent 需要完整证据,才能在向用户引用 OneQAZ 前评估其可信度。
| 层级 | 身份验证 | 每日配额 | 突发请求 | 说明 |
|---|---|---|---|---|
| free | 无 | 1,500 / 天 | 60 / 分钟 | 全部 42 个工具 + 17 个资源 + 17 个模板 |
| pro | 有效 API 密钥 | 50,000 / 天 | 200 / 分钟 | 功能相同,调用量更高——适用于机器人 / 调度程序 |
| internal | 仅所有者 | 不限 | 不限 | 仅供真实用户资金工具使用(目前为空) |
如果托管服务器不识别 API 密钥,就会返回 HTTP 401 拒绝请求,而不会悄悄降级为免费层级,因此密钥输入错误会立即显现。账户为可选项:支持 OAuth 的 AI 应用(例如 Claude)可以选择 Connect free,在不使用 API 密钥的情况下关联免费的 OneQAZ 账户;之后,限制将按账户跟踪,get_account_status 会报告套餐和剩余配额。
每个响应中的速率限制标头:X-RateLimit-Tier、X-RateLimit-Daily-Limit、X-RateLimit-Daily-Remaining、X-RateLimit-Minute-Remaining。超出配额时,服务器会返回 HTTP 429 和 Retry-After。价格和密钥申请请访问:https://api.oneqaz.com/pricing。
使用 API 密钥自托管
如果你在本地运行服务,并希望对 pro 调用方进行身份验证(更高配额),请将 MCP_TIER_RESOLVER 设置为 module:function 路径:
MCP_TIER_RESOLVER=myauth.keystore:resolve_tier oneqaz-trading-mcp serve
此函数接收原始 API 密钥字符串,并返回 "free"、"pro" 或 "internal";返回 None 表示将调用方视为免费用户,返回 "invalid" 则会拒绝该密钥并返回 HTTP 401(与托管服务对未知密钥的处理方式相同)。如果无法导入解析器或解析器抛出异常,系统会记录错误,并将调用方视为免费用户。默认行为(未设置解析器):所有调用方均为 free。
为什么所有内容都免费
OneQAZ 交易数据是由自我校正的 Thompson 抽样系统生成的模拟交易证据。其中不包含任何用户资金相关的个人身份信息。将这些数据隐藏在不同等级之后,会破坏 B2AI 转化漏斗——AI Agent 需要验证我们的声明(预测准确率、信号质量、策略结果)后才能加以信赖。因此,我们公开这些证据,并限制请求频率。
用于判断是否升级的价值信号已嵌入每个响应的 _value_signals 中——AI Agent 可以直接读取:
{
"_value_signals": {
"tier_default": "free",
"tier_default_limits": {"daily": 1500, "minute": 60},
"what_pro_unlocks": "33x daily quota (50K), 3.3x burst (200/min) — same tools, higher volume",
"pricing_url": "https://api.oneqaz.com/pricing",
"key_signup_url": "https://api.oneqaz.com/keys",
"self_correcting": true
}
}
响应结构(双受众)
工具响应包含面向 AI Agent 和人类终端用户的字段:
| 字段 | 受众 | 用途 |
|---|---|---|
full_data | AI | 用于信任验证的原始证据 |
disclaimer、is_investment_advice、is_real_money、data_classification | 两者 | 每个响应都包含的合规信息(false / false / research_information_only) |
paper_trading_notice | 两者 | 仅用于包含交易、持仓或盈亏的响应(托管端点):这些数字属于模拟交易,并非真实资金 |
timestamp、request_id、_source | AI | 响应时间、报告问题时引用的请求 ID,以及提供服务的来源 / 数据源 |
_contract | AI | 仅限状态 / 外部 / 派生 / 统一资源:来源信息 + 实体 + 评估 + 置信度(按架构版本管理)。工具不包含此字段。 |
_llm_summary | AI | 多行叙述 |
ai_summary | AI | 为上下文窗口压缩成的一行摘要 |
_value_signals | AI | 用于判断 B2AI 转化的定价 / 升级信号 |
summary_for_user | 人类 | 一行不含术语的韩语摘要,可由 Claude.ai 等逐字引用。 |
_next_actions | AI | 根据响应数据生成的后续工具建议,包含 intent、tool、args、rationale、priority。会自动驱动链式调用。 |
_followup_questions_for_user | 人类 | AI 可向用户引用的韩语后续问题——点击其中一个即可触发下一次调用。 |
对话钩子——_next_actions + _followup_questions_for_user
OneQAZ 不只是返回数据,还会告诉你的 AI 接下来该问什么。
{
"ai_summary": "Prediction accuracy — 24 cells, avg hit rate 32.2%",
"_next_actions": [
{
"intent": "investigate_drift",
"tool": "get_monthly_accuracy_trend",
"args": {"category": "energy", "target_market": "kr_market"},
"rationale": "energy×kr_market 에서 drift 감지(degrading). 월별 시계열로 추세 검증 필요.",
"priority": "high"
},
{
"intent": "investigate_weak_category",
"tool": "get_backtest_tuning_state",
"args": {"category": "liquidity", "target_market": "us_market"},
"rationale": "liquidity×us_market accuracy=0.06 (sub-50%). 자기보정이 lag/sensitivity 를 어떻게 조정했는지 확인.",
"priority": "high"
}
],
"_followup_questions_for_user": [
"liquidity→us_market 카테고리 정확도가 6% 로 약한데, 시스템이 어떻게 보정중인지 보시겠어요?",
"가장 정확한 credit→us_market (62%) 패턴의 월별 추세도 보여드릴까요?",
"최근 OneQAZ 가 만든 활성 예측 5개도 볼까요?"
]
}
_next_actions——面向 AI Agent。最多 3 条。包含预填的args。依据响应数据生成,而非静态依赖图(例如,只有在accuracy < 0.5 + samples >= 30时才会触发弱势类别检测)。_followup_questions_for_user——面向终端用户。使用韩语自然语言。可逐字引用,也可翻译。
结果:典型会话从 7 次以上的通用调用(由 AI 猜测下一步该做什么)减少到 4 次有针对性的调用,从而揭示真正的情况(漂移、弱势类别、合成数据与实测数据的排行榜拆分)。
工具(托管端点上有 42 个——全部为免费等级)
此外还有 get_account_status(已连接的 OneQAZ 账户的方案和剩余配额;仅在启用 OAuth 账户连接时注册)。自托管软件包也会注册相同的 42 个工具——请参阅 选项 2。
实体上下文(3 个工具)—— 0.5.0 中新增
一次调用即可回答某只股票或硬币、某个板块/ETF 组合,或整个市场的「X 发生了什么?」每个响应都先给出独立完整的标题式结论,然后列出实体的观测状态、先于它变化的因素(领先滞后联系、宏观和结构分组)、随后发生的变化、带标签的新闻,以及数据缺口——OneQAZ 未跟踪的相关内容。
| 工具 | 返回内容 |
|---|---|
get_symbol_context | 一只股票或硬币(代码、KRX 代码或名称):信号状态、所属结构分组、上游联系、随后跟随它的同类资产、带标签的新闻、数据缺口。名称有歧义时会返回候选项,而非猜测。 |
get_group_context | 一个板块、主题、ETF 组合或指数组合:各时间区间的市场状态、共同变动的分组、包含最新信号倾向的成分代码、该组合领先的代码、数据缺口。 |
get_market_context | 整个市场(KR、US、crypto):结构市场状态和全球宏观市场状态、假定会影响该市场的宏观类别(附调优后的滞后时间)、按市场阶段划分的分组、带市场标签的新闻、数据缺口。 |
高频入口——get_daily_brief(1 个工具)
| 工具 | 返回内容 |
|---|---|
get_daily_brief | 一次调用获取市场概览:宏观市场状态 + 最强的 5 个信号 + 昨日模拟交易盈亏 + 活跃预测数量 + 韩语叙述。「今天市场行情如何?」的自然首选调用。 |
可验证的预测账本(3 个工具)—— 0.4.0 中新增
| 工具 | 返回内容 |
|---|---|
get_ledger_integrity | 预测账本的防篡改证据:对所有已创建/已结算的宏观市场状态预测行构建每日 SHA-256 哈希链,并公开精确的规范计算方案,任何第三方都可以重新计算并验证。每个 UTC 日结束后都会计算一次哈希,并与此前的每一天串联,因此之后的静默编辑会导致重新计算结果不一致。请注意适用范围:预测期限为 0–24h,许多预测会在创建当天结算,因此哈希链只能证明某一天结束后未被更改,不能证明每个结果出现前就已存在哈希。公开锚点还会通过 OpenTimestamps 记录到 Bitcoin 区块链(账本锚点)。 |
get_resolved_predictions | 原始逐行预测账本:每个宏观市场状态预测的完整生命周期(created_at → resolved_at → 结果)——可逐项审计证据判断。 |
get_trade_outcomes_bulk | 使用游标分页批量导出预测 → 交易 → 结果链(含已实现盈亏的模拟交易;尽最大努力将每笔交易关联到入场前的信号预测,匹配条件为同一代码、2h 时间窗口)——自行计算命中率,而非轻信我们的数据。 |
投资组合分析(1 个工具)—— 0.4.0 中新增
| 工具 | 返回内容 |
|---|---|
get_performance_metrics | 按市场和账户类型(paper/live)提供投资组合级别的 MDD/夏普比率/索提诺比率/卡玛比率/胜率,可选每日权益曲线。模拟交易盈亏为毛额(按 K 线成交,不含费用或滑点)。 |
信号校准(1 个工具)—— 0.4.0 中新增
| 工具 | 返回内容 |
|---|---|
get_signal_calibration | 信号置信度的可靠性图数据:每个置信度区间的实际命中率及 ECE 汇总——验证置信度为 0.9 的信号是否真的能达到约 90% 的命中率。 |
ChatGPT 连接器标准(2 个工具)—— 0.4.0 中新增
| 工具 | 返回内容 |
|---|---|
search | 遵循 ChatGPT 连接器标准,在 OneQAZ 的实时信息面中进行发现搜索——包括工具、资源,以及三个市场中最新的强势信号。结果 ID 可供 fetch 使用。 |
fetch | 遵循连接器标准,根据 search 返回的 ID 获取单条结果。 |
信任层(13 个工具)
| 工具 | 返回内容 |
|---|---|
get_prediction_accuracy | 每个单元格的命中率,以及持久性与多数类基线、技能评分和经自相关修正的置信区间、known_biases、ledger_health |
get_backtest_tuning_state | 当前调优参数和上次重新校准的时间戳 |
get_monthly_accuracy_trend | 每月的准确率序列,按(类别、目标市场、滞后)划分——需结合上述基线解读 |
get_news_leading_indicator_performance | 未验证——新闻事件分组的覆盖情况;方法审计完成前,不提供提前量/评分指标 |
get_news_causality_breakdown | 未验证——各流水线新闻标签(ANTICIPATED / SURPRISE_WITH_PRECURSOR / SURPRISE)的计数;不提供提前量指标 |
get_feature_governance_state | 按状态划分的特征(OBSERVATION/CONDITIONAL/ACTIVE/DEPRECATED) |
get_structure_calibration | 行业/ETF 级命中率及解读所需的多数类基线——这是测量结果,不代表优势 |
get_structure_validation_history | 历史结构验证评分 |
get_strategy_leaderboard | 经过纸面测试的 RL 策略;per_symbol_leaderboard 是实测数据表面(GLOBAL 池可能包含合成值) |
get_active_predictions | 当前尚未结算并追踪结果的宏观预测 |
get_macro_influence_map | 宏观 → 市场因果假设(滞后小时数 + 敏感度) |
get_cross_market_correlation | 跨市场相关性矩阵 |
get_role_analysis | 基于角色的策略分析 |
信号证据(3 个工具)
| 工具 | 参数 |
|---|---|
get_signals | market_id、symbol、min_score、max_score、action_filter、interval |
get_signal_detail | market_id、symbol、interval |
explain_decision | market_id、symbol |
层间相关性——跨资产结构(4 个工具)
来自 agent_history 流水线的第 2 阶段输出。行业聚类、宏观因果图和标的间的领先—滞后关系——这些跨资产背景信息能将“BTC 上涨”转化为“BTC 上涨是因为 DXY 在 4 小时前走弱”。
| 工具 | 返回内容 |
|---|---|
get_sector_correlations_tool | 市场内 ETF/行业相关性矩阵 + 自动聚类(60 天窗口,每 6 小时刷新) |
get_macro_causality_graph_tool | 8 个宏观类别(债券/vix/外汇/信贷/通胀/流动性/大宗商品/能源)间考虑滞后因素的因果关系 |
get_symbol_peer_links_tool | 标的间的领先—滞后关系(例如 META → AMZN,滞后 15 分钟,ρ=+0.62) |
get_feature_governance_status_tool | 特征生命周期分布 + 最近 7 天的状态变更 |
纸面交易结果(11 个工具)
OneQAZ 持续对自身信号进行纸面交易(通过其入场筛选条件的 BUY 信号)。这些工具提供持仓及结果——包括亏损——供 AI Agent 核查我们的说法。成交基于 K 线,不计手续费或滑点,因此 P&L 为毛值。
| 工具 | 返回内容 |
|---|---|
get_positions | 未平仓纸面持仓及 ROI |
get_position_detail | 单笔持仓详细分析 |
get_profitable_positions / get_losing_positions | 按 P&L 筛选 |
get_strategy_distribution | 按策略划分的持仓数量 |
get_trade_history | 已平仓的纸面交易(筛选条件:操作、P&L、时间) |
analyze_trades | 汇总交易分析 |
get_winning_trades / get_losing_trades | 按结果筛选 |
get_latest_decisions | 近期信号 → 决策的转换记录 |
get_llm_trading_decisions | LLM 生成的决策日志 |
资源(17 个静态资源 + 17 个模板——全部为免费层级)
Meta — 发现与自省
| 资源 URI | 描述 |
|---|---|
market://meta/discovery | 动态目录(v2.0) — 通过 FastMCP 自省获取完整的工具/资源列表(无静态 if/else),包含 data_freshness PG 探测(5 个源表)、positioning 区块(specialist_domains、trust_principles、what_we_do_NOT_provide、philosophy)、counts、notes。请先调用此项,了解 OneQAZ 提供的内容。 |
market://meta/tool-chains | 推荐的调用序列(quick_analysis、deep_analysis、portfolio_check、symbol_deep_dive)+ 依赖关系图。 |
market://meta/pg-pool | psycopg ConnectionPool 统计信息 — 连接压力监控。 |
market://health | 服务运行状况检查。 |
market://info | 服务元数据 + 数据源索引。 |
静态资源
| 资源 URI | 描述 |
|---|---|
market://global/summary | 全球宏观态势摘要 |
market://global/categories | 可用的宏观类别列表 |
market://global/macro_events | 活跃宏观事件的生命周期 |
market://all/summary | 汇总 3 个市场的综合摘要 |
market://structure/all | 所有市场的 ETF/篮子结构 |
market://indicators/fear-greed | 恐惧与贪婪指数 |
market://indicators/regime | 4 层态势指标(短期/中期/长期/超长期) |
market://indicators/context | 恐惧与贪婪 + 4 层态势 + 市场广度 |
market://unified/cross-market | 跨市场相关性快照(BTC ↔ 股票 ↔ 外汇) |
market://derived/event-leading | 新闻事件领先分组 — 未经验证(不提供评分字段) |
market://derived/cross-decoupling | 跨资产脱钩指数 |
market://derived/reaction-speed | 新闻反应速度分布 |
模板(参数化)
| URI 模板 | 示例 |
|---|---|
market://global/category/{category} | market://global/category/bonds |
market://{market_id}/status | market://crypto/status |
market://{market_id}/positions | market://crypto/positions |
market://{market_id}/positions/snapshot | market://crypto/positions/snapshot |
market://{market_id}/structure | market://kr_stock/structure |
market://{market_id}/structure/group/{group_id} | market://kr_stock/structure/group/SEMICONDUCTOR |
market://{market_id}/signals/summary | market://crypto/signals/summary |
market://{market_id}/signals/roles | market://crypto/signals/roles |
market://{market_id}/signals/feedback | market://crypto/signals/feedback |
market://{market_id}/external/summary | market://crypto/external/summary |
market://{market_id}/external/symbol/{symbol} | market://crypto/external/symbol/BTC |
market://{market_id}/external/causality | market://crypto/external/causality |
market://{market_id}/unified | market://crypto/unified |
market://{market_id}/unified/symbol/{symbol} | market://crypto/unified/symbol/BTC |
market://{market_id}/derived/regime-transitions | market://crypto/derived/regime-transitions |
market://{market_id}/derived/strategy-fitness | market://crypto/derived/strategy-fitness |
market://{market_id}/derived/all | market://crypto/derived/all |
market://meta/discovery 中的 template_resources[*].example 字段可直接复制粘贴 — AI 无需手动填充占位符即可获取具体 URI。
市场 ID:crypto、kr_stock、us_stock(别名:coin、kr、us)
示例:Trust Layer 查询
已使用 fastmcp 2.14 和 4.0 对实时端点进行测试(pip install fastmcp):
import asyncio, json
from fastmcp import Client
async def main():
async with Client("https://api.oneqaz.com/mcp") as client:
result = await client.call_tool("get_prediction_accuracy", {})
resp = json.loads(result.content[0].text)
print(resp["ai_summary"])
for cat, markets in resp["full_data"]["summary"].items():
for market, lags in markets.items():
for lag, cell in lags.items():
if cell.get("horizon_type") != "forecast":
continue # lag 0h cells are same-cycle nowcast checks, not forecasts
lo, hi = cell.get("skill_ci_95") or (float("nan"), float("nan"))
print(f"{cat:12} -> {market:10} {lag:>4} hit {cell['accuracy']:.1%}"
f" persistence {cell.get('persistence_accuracy', float('nan')):.1%}"
f" skill CI [{lo:+.2f}, {hi:+.2f}]"
f" beats majority baseline: {cell.get('beats_majority_baseline')}")
print("edge cells:", len(resp["full_data"]["edge_cells"]))
print(resp["full_data"]["meta"].get("persistence_null_caveat", ""))
print(resp["disclaimer"])
asyncio.run(main())
每个预测单元格会输出一行:原始命中率、持久性零假设、技能置信区间,以及该单元格是否优于恒定的“最常见结果”猜测。
保守的解读方式是:只有当某个单元格的技能置信区间下限高于 0 且 优于多数基线时,才将其视为证据;信任 edge_cells 前,请先阅读 meta.persistence_null_caveat。
ai_summary / _llm_summary 会用一行说明相同的比较结果,每个响应都包含 disclaimer 信封。
配置
所有配置均通过环境变量完成:
| 变量 | 默认值 | 说明 |
|---|---|---|
MCP_SERVER_PORT | 8010 | 服务端口 |
MCP_SERVER_HOST | 0.0.0.0 | 绑定主机 |
MCP_LOG_LEVEL | INFO | 日志级别 |
MCP_TIER_RESOLVER | unset | 返回 API 密钥对应层级的 module:function(可自托管钩子) |
MCP_TRUSTED_IP_PREFIXES | unset | 视同 localhost(不受速率限制)的逗号分隔地址前缀 |
MCP_SELF_TRAFFIC_IPS | unset | 从使用情况分析中排除的逗号分隔地址(自有监控器) |
MCP_LEDGER_THREAD_DISABLED | 0 | 设为 1 可停止每小时预测账本哈希写入器(用于第二个实例) |
MCP_OAUTH_MODE / MCP_OAUTH_AS | off | OAuth 账户连接;需要托管账户表 |
DB_BACKEND | postgres | 必须为 postgres(SQLite 后端已于 0.4.0 停用);若未设置,serve 会设置此值 |
PG_HOST / PG_PORT | postgres / 5432 | PostgreSQL 主机 / 端口 |
PG_DB / PG_USER / PG_PASSWORD | auto_trader / … | PostgreSQL 数据库 / 凭据(只读角色即可) |
PG_POOL_MIN / PG_POOL_MAX | 0 / 50 | 每个 schema 的连接池上下限 |
PG_STATEMENT_TIMEOUT_MS | 30000 | 服务端语句超时时间 |
MCP_COIN_DATA_DIR / MCP_KR_DATA_DIR / MCP_US_DATA_DIR | auto | 覆盖逻辑数据路径根目录(见下文) |
MCP_EXTERNAL_CONTEXT_DATA_DIR | auto | 覆盖外部上下文逻辑根目录 |
Docker
docker build -t oneqaz-trading-mcp .
docker run -p 8010:8010 -e DB_BACKEND=postgres -e PG_HOST=... -e PG_PASSWORD=... oneqaz-trading-mcp
数据后端(PostgreSQL)
所有数据均存储在 PostgreSQL 16 + TimescaleDB 中,每个领域使用一个 schema
(market_coin / market_kr / market_us、market_*_struct、
external_context、rl_pipeline、mcp_analytics 等)。代码仍会
构造旧式 SQLite 路径(.../coin_market/data_storage/trading_system.db),
但这些路径仅作为逻辑路由键:connect_readonly() 会将每条
路径映射到其 PG schema,并返回一个 shim 连接,因此不会读取或写入任何 .db 文件。
这与生产环境 Wave-I 的“仅使用 PG”迁移保持一致——查询失败时会明确报错,
而不会静默回退。
速率限制
权威配额见上文访问策略。简要回顾:
| 层级 | 每日配额 | 突发请求 | 身份验证 |
|---|---|---|---|
| Free | 每天 1,500 次 | 每分钟 60 次 | 无(无法识别的密钥会返回 HTTP 401) |
| Pro(测试版) | 每天 50,000 次 | 每分钟 200 次 | 有效的 API 密钥 |
| Internal(所有者) | 不限 | 不限 | 仅限所有者 |
| Local(可自托管) | 不限 | 不限 | 不适用 |
每个请求都会返回以下响应头:
X-RateLimit-Tier:解析出的层级(free/pro/internal)X-RateLimit-Daily-Limit:解析出的层级当日上限X-RateLimit-Daily-Remaining:当日剩余请求数X-RateLimit-Minute-Remaining:当前分钟剩余请求数- 超出限制时会返回 HTTP 429,并附带
Retry-After响应头。
隐私
- 托管服务(
api.oneqaz.com):权威政策请参阅 https://api.oneqaz.com/privacy。 简而言之——无需账户(可选择将 AI 应用连接到免费的 OneQAZ 账户); 系统会记录每次请求的元数据(IP、user-agent、工具名称、结果、列入白名单的参数、客户端/协议 元数据、API 密钥指纹,以及连接了账户时的账户标识符); IP 地址和从 IP 推导出的会话密钥会在 12 个月后不可逆地替换;数据绝不会出售。 - 自托管:此软件包不会向 OneQAZ 发送遥测数据,请求日志会写入你自己的 PostgreSQL。
如果你公开部署的服务,请将随附的
/privacy页面替换为你自己的声明。
详情请参阅:PRIVACY.md。
免责声明
本软件仅用于信息和教育目的。本软件不构成财务建议。
- 所有信号、市场状态分析和市场数据均由自动化系统生成,可能包含错误。
- 信号评分根据实时市场价格计算,并每 5–15 分钟重新计算;这些数据并非逐笔数据。
- 交易、持仓和盈亏数据来自模拟交易(基于 K 线模拟成交,不计手续费、税费或滑点)。真实资金交易的结果会更差。
- 过往命中率和结果不保证未来表现。
- 你须对自己的投资决策承担全部责任。 作者和贡献者不对使用本软件造成的任何财务损失承担责任。
- 本软件不是注册投资顾问、经纪交易商或财务规划师。
- 做出任何投资决策前,请务必自行研究(DYOR)。
使用本软件即表示你确认理解并接受这些条款。
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。