免费关键位 API
免费的 JSON 接口,提供 SPX / SPY / QQQ(免 Key)和 ES / NQ 期货价(免费 Key)的 GEX 关键位(看涨墙、看跌墙、零伽马、HVL、体制)、Gamma / Vanna 节点、近 5 个交易日的盘中历史和近 20 个交易日的每日节点统计,供脚本和 AI 工具直接读取。
三个免费 JSON 接口,提供和网站上一样的 GEX 关键位,格式让脚本和 AI 工具可以直接读。
SPX、SPY、QQQ:不用 Key,不用登录,允许跨域。ES、NQ(期货价):需要免费 Key,见下方「API Key」。- 所有标的都是 30 分钟延迟。
API Key
- 免费注册并登录。
- 打开 设置 → 数据 API,在「免费数据 API Key」里复制你的 Key。
- 调用时任选一种方式带上:
- 请求头
Authorization: Bearer <你的 Key> - 请求头
X-API-Key: <你的 Key> - 网址参数
?key=<你的 Key>
- 请求头
| 不带 Key | 带 Key | |
|---|---|---|
| SPX / SPY / QQQ | ✓ | ✓ |
| ES / NQ 期货价 | — | ✓ |
| 每分钟调用次数 | 20(按 IP) | 60(按 Key) |
把 Key 当密码保管,不要公开发布。
关键位是模型计算结果,仅供信息与教育用途,不构成投资建议,也不是交易信号。
最新关键位
GET https://hermesgex.com/api/v1/public/levels?ticker=SPX
GET https://hermesgex.com/api/v1/public/levels?ticker=ES (需带 Key)返回示例(数字仅作示意):
{
"ok": true,
"ticker": "ES",
"price_scale": "futures",
"asof": "2026-10-28T15:31:39.000Z",
"delayed": true,
"delay_sec": 1800,
"session_date": "2026-10-28",
"age_sec": 1812,
"market": "open",
"stale": false,
"spot": 7781.2,
"regime": "long",
"basis": "vol",
"levels": {
"call_wall": 7816.5,
"zero_gamma": 7776.6,
"put_wall": 7771.4,
"hvl": 7776.6
}
}| 字段 | 含义 |
|---|---|
price_scale | ES / NQ 为 futures(期货价),其余为 underlying(标的本身价格) |
asof | 快照时间(UTC) |
delay_sec | 比实时晚多少秒(1800 = 30 分钟) |
session_date | 快照所属的美东交易日 |
age_sec | 生成响应时距 asof 的秒数 |
market | 生成响应时的盘口状态:pre_market 开盘前、open 盘中、closed 休市 |
stale | true 表示盘中但超时没有新快照,这组关键位已过时,不要使用 |
regime | long = 现价在 HVL / 零伽马上方(波动倾向被压制),short = 在下方(波动倾向放大),null = 开盘前 |
basis | vol = 盘中按成交量算的关键位;oi = 开盘前,墙按期权持仓量给出,zero_gamma / hvl / regime 为 null,开盘有成交后自动切换 |
levels.* | 看涨墙(上方阻力)、零伽马(体制分界)、看跌墙(下方支撑)、HVL |
nodes | 持仓 Gamma 节点评分,见下一节;暂时取不到时为 null |
节点评分(nodes)
同一个响应里还带着现价上下 4% 内最大的几个持仓 Gamma 节点(≤90 天到期、按行权价合计),同样延迟 30 分钟。和产品里的 King、Floor、Ceiling、King 生命周期是同一套算法。
"nodes": {
"asof": "2026-10-28T15:31:00.000Z",
"session_date": "2026-10-28",
"contested": false,
"king": {
"price": 7800,
"lifecycle": "tested",
"touches": 2,
"since": "2026-10-28T13:30:00.000Z",
"since_truncated": true,
"strength_vs_peak_pct": 94
},
"patterns": ["rising_floors"],
"list": [
{
"price": 7800,
"role": "king",
"strength_pct": 100,
"gamma_sign": "positive",
"side": "above",
"distance_pct": 0.24,
"confluence": [],
"lifecycle": "tested",
"touches": 2
},
{
"price": 7771.4,
"role": "floor",
"strength_pct": 62,
"gamma_sign": "positive",
"side": "below",
"distance_pct": -0.12,
"confluence": ["put_wall"],
"lifecycle": "fresh",
"touches": 0
}
]
}| 字段 | 含义 |
|---|---|
list[].role | king 最大节点;gatekeeper 现价和 King 之间、至少有 King 25% 大的节点;floor 现价下方最大;ceiling 现价上方最大;null 只是排名靠前 |
list[].strength_pct | 节点大小,King = 100 |
list[].gamma_sign | positive = 正 Gamma 节点,价格到这里倾向被钉住或回弹;negative = 负 Gamma 节点,倾向加速穿过 |
list[].distance_pct | 距现价的百分比,正数在上方 |
list[].confluence | 与哪些关键位重合(相距 0.15% 以内):call_wall、put_wall、zero_gamma、hvl |
list[].lifecycle / list[].touches | 有角色的节点:自这个价位担任该角色以来的生命周期(取值同 king.lifecycle;对 Floor / Ceiling / Gatekeeper,delivered 表示已被击穿或突破)和现价触及次数;没有角色为 null |
king.lifecycle | fresh 现价还没碰到;tested 碰过但没穿过;rejected 碰到后在同一侧弹开 0.3% 以上、没有穿过;delivered 已穿过;decaying 比当天峰值缩小 30% 以上 |
king.since_truncated | true 表示开盘时就已经是这个 King,实际出现得更早 |
contested | true = 第二大节点和 King 相差不到 10%,单一 King 不可靠 |
patterns | 盘中形态:rising_floors 支撑上移、rolling_ceilings 压力下移、ladder_up King 逐级上移、ladder_down King 逐级下移、rug 下方支撑被撤、reverse_rug 上方压力被撤、rug_setup 上方正节点压着且下方为负 gamma、reverse_rug_setup 下方正节点托着且上方为负 gamma、pos_cloud 连续几个正节点(容易来回磨)、no_structure 正负交替没有主导节点、snapback_up / snapback_down 越过正节点后又回来 |
开盘前当天还没有节点数据,nodes 给上一交易日收盘前的最后一帧,session_date 会标明。
数据每几分钟才更新一次,一分钟内重复拉取没有意义。
可选参数
| 参数 | 取值 |
|---|---|
max_strikes | nodes.list(以及 vanna_nodes.list)返回几档,1–20,默认 5 |
include | vanna:多返回一个 vanna_nodes 块,见下 |
tickers | 一次查多个标的,逗号分隔,见下 |
一次查多个标的
GET https://hermesgex.com/api/v1/public/levels?tickers=SPX,SPY,QQQ返回 results 数组,顺序与请求一致,每一项和单标的响应完全相同。某个标的出错时,那一项是 ok: false 加 ticker、code、message,其余照常返回。一次最多 5 个标的;每个标的按一次调用计入限流。
Vanna 节点(include=vanna)
GET https://hermesgex.com/api/v1/public/levels?ticker=SPX&include=vanna和 nodes 同一时刻(同样 30 分钟延迟),现价上下 4% 内最大的几个持仓 Vanna 节点(≤90 天到期、按行权价合计),外加现价附近 GEX 与 VEX 的正负组合。
"vanna_nodes": {
"asof": "2026-10-28T15:30:12.000Z",
"contested": false,
"alignment": {
"state": "pin",
"gex_sign": "positive",
"vex_sign": "positive",
"co_flips": [
{ "price": 5795, "low": 5790, "high": 5800, "short_side": "below" }
]
},
"list": [
{
"price": 5800,
"role": "king",
"strength_pct": 100,
"vanna_sign": "positive",
"side": "above",
"distance_pct": 0.21
}
]
}| 字段 | 含义 |
|---|---|
list[].strength_pct | 节点大小,Vanna 最大节点 = 100(和 nodes 的 King 各自独立) |
list[].vanna_sign | positive = 波动率下降时做市商倾向买入;negative = 波动率下降时倾向卖出 |
alignment.state | 现价上下 0.5% 内两者合计的正负:pin 都为正(价格容易被钉住)、trend 都为负(两股对冲都顺势放大波动)、cap GEX 正 VEX 负(平静时反弹乏力,区间跌破后往往不回头)、panic GEX 负 VEX 正(恐慌低点之后容易剧烈反弹)、gex_led / vex_led 只有一方明显、flat 两边都不明显 |
alignment.co_flips | GEX 和 VEX 在同一处同向翻转的价位(最多 2 个);short_side 是两者都转负的一侧,价格往那边越过时对冲会同时放大 |
暂时取不到 Vanna 数据时 vanna_nodes 为 null;同一时刻缺 GEX 数据时 alignment 为 null。
盘中历史
GET https://hermesgex.com/api/v1/public/levels/history?ticker=SPX&date=2026-10-27&interval=15m| 参数 | 取值 |
|---|---|
ticker | SPX、SPY、QQQ;带 Key 时还可以用 ES、NQ |
date | 美东交易日 YYYY-MM-DD,最近 5 个交易日内,默认今天 |
interval | 15m(默认)、30m |
返回美东 08:30–16:15 的 K 线。每根包含价格 open / high / low / close,以及这根结束时的关键位(call_wall、put_wall、zero_gamma、hvl、regime、basis)。t 是这根的开始时间(UTC)。
顶层有两个字段值得先看:
complete:整天都过了 30 分钟延迟后为true,之后数据不再变化。missing_minutes:09:30 到收盘之间没有存到数据的分钟数。不为 0 说明有缺口,下结论前要考虑。
需要更长的历史或更细的粒度,请使用 HuntingFlow 终端的回放功能。
每日统计
GET https://hermesgex.com/api/v1/public/levels/daily?tickers=SPX,QQQ&from=2026-10-20&to=2026-10-30| 参数 | 取值 |
|---|---|
tickers | 一个或多个标的,逗号分隔(最多 5 个);带 Key 时可以用 ES、NQ |
from | 第一个美东交易日 YYYY-MM-DD,最近 20 个交易日内;默认 to 往前 5 个交易日 |
to | 最后一个交易日,默认今天 |
每个标的每个交易日一行,统计常规时段 09:30–16:00(美东)的持仓 Gamma 节点,同样 30 分钟延迟:
{
"date": "2026-10-28",
"complete": true,
"frames": 390,
"first_at": "2026-10-28T13:30:00.000Z",
"last_at": "2026-10-28T19:59:00.000Z",
"spot_open": 5781.2,
"spot_high": 5810.4,
"spot_low": 5770.1,
"spot_close": 5802.3,
"range_pct": 0.7,
"king_open": 5800,
"king_close": 5800,
"king_changes": 1,
"king_dominant": { "price": 5800, "share_pct": 81.3 },
"contested_pct": 6.4,
"close_nodes": [
{ "price": 5800, "role": "king", "strength_pct": 100, "gamma_sign": "positive" }
]
}| 字段 | 含义 |
|---|---|
complete | 当天已收盘并过了延迟,之后不再变;今天这一行为 false |
frames | 参与统计的分钟数 |
range_pct | (最高 − 最低) / 开盘,% |
king_open / king_close | 开盘第一分钟和收盘前最后一分钟的 King |
king_changes | King 换了几次价位(只数连续当了 5 分钟以上的 King,过滤掉并列时的来回跳) |
king_dominant | 当天当 King 时间最长的价位和占比 |
contested_pct | King 与第二大节点相差不到 10% 的分钟占比,越高说明当天结构越不清楚 |
close_nodes | 收盘前最后一分钟最大的 5 个节点,strength_pct 以当时 King = 100 |
没有数据的交易日不出现在 days 里。
错误
出错时返回 ok: false,附带 code 和 message。
| code | 含义 |
|---|---|
TICKER_NOT_PUBLIC | 不支持这个标的 |
KEY_REQUIRED | ES / NQ 需要免费 Key |
INVALID_KEY | Key 不对,请到设置页重新复制 |
NO_DATA | 这个标的 / 日期没有数据 |
NOT_YET | 今天的数据还没过 30 分钟延迟 |
NOT_TRADING_DAY | 周末或美股假期 |
OUT_OF_RANGE / BAD_DATE / BAD_RANGE / BAD_INTERVAL | 日期或粒度参数不对 |
BAD_MAX_STRIKES / BAD_INCLUDE | max_strikes 或 include 不对 |
TOO_MANY_TICKERS | 一次超过 5 个标的 |
NO_CONVERSION | ES / NQ 期货换算暂时不可用,稍后重试 |
RATE_LIMITED | 请求太多,等 Retry-After 秒后再试 |
示例
Python:
import requests
KEY = "hgx_pub_..." # 设置 → 数据 API 页复制
r = requests.get(
"https://hermesgex.com/api/v1/public/levels",
params={"ticker": "ES"},
headers={"Authorization": f"Bearer {KEY}"},
timeout=10,
).json()
if r["ok"] and not r["stale"]:
print(r["basis"], r["levels"])AI 助手:支持 MCP 的助手可以直接添加连接 https://hermesgex.com/api/mcp?key=<你的 Key>(设置页可直接复制带 Key 的完整地址;认证方式选「无」),得到 get_key_levels(可选 max_strikes、include_vanna)、get_level_history 和 get_daily_node_stats 三个工具,返回内容与上面的接口完全一致。步骤见 让 AI 助手直接读 GEX 关键位。不支持 MCP 的助手,把本页链接发给它,让它调用上面的接口即可。basis、stale、regime 这几个字段就是为了让它不用猜,也能分清开盘前、已过时和正常的数据。
下一步
常见问题
需要 API Key 吗?
SPX / SPY / QQQ 不需要。ES / NQ 期货价需要一个免费 Key:注册后在「设置 → 数据 API」页复制。带 Key 每分钟可调用 60 次,不带为 20 次。
ES 和 NQ 是期货价吗?
是。带 Key 查 ticker=ES 或 ticker=NQ,返回的所有价位都已换算成期货价,可以直接画到 ES / NQ 图上。
能拿实时关键位吗?
这个接口不提供。实时关键位在 HuntingFlow 终端和桌面插件里。
Hermēs 文档中心