市场数据
本页说明怎么查数据、答案代表什么。确切参数、默认值与响应字段在 API 文档;本页不重复。
查找前
- 从目录找到商品。代号依日期解析;短写法有歧义时,用完整代号或
instrument_id。见目录与代号。 - 确认它有你要的数据集。
GET /v2/catalog/instruments/{symbol}的datasets是空数组,代表这个商品目前还没有已发布数据。 - 选交易日区间或时间点区间。两者是替代方案,只给一种。
H="Authorization: Bearer $VEINMESH_API_KEY"
API=https://data.cyberun.cloud
curl -s -H "$H" \
"$API/v2/data/book.snapshot?symbols=SHFE.rb2701&trading_day=2026-10-20&limit=100" \
| jq '.rows[] | {ts, trading_day, last, volume, bid_px, ask_px}'
读一页
每个响应有 rows、next_cursor 与 catalog_version。
- 把
next_cursor当成cursor传回取下一页;null代表结束。 - cursor 只属于产生它的查找与密钥,不要搭配不同条件重用。
- 需要重现结果时保留
catalog_version。旧版本最后会回version_unavailable(410)。 - 排序是先商品,再
(ts, seq),不是只依trading_day。
数据列的小数默认是字符串;加 numbers=float 改成 JSON 数字。共同字段
(symbol、instrument_id、ts、trading_day、seq、flags)见
内核概念;数据集字段见 GET /v2/schemas。
open、high、low、limit_up、limit_down、prev_close、
prev_settlement 可为空值。交易进行中,实时层会用交易所行情填入这些字段。
已收盘交易日若服务有前一交易日的收盘价与官方结算价,会填入 prev_close
与 prev_settlement。股票在除权息日时,prev_close 是交易所公布的参考价,
不是未调整的前一日收盘;每日 live 采集会提供这个值。limit_up、
limit_down 可能仍是空值,因为下载来源没有发布。空值代表来源没有发布该行的这个值,不是零。
还在准备的交易日
服务会逐日准备历史数据。第一次查到还没准备好的交易日时:
- 请求会先等待一小段时间;
- 还没好就回
503、代码data_pending、retry_after,以及待处理与已就绪的 instrument-day 数量; - 用同一个请求重试,不会把工作重复排一次。
进行中的交易日(含属于它的跨夜时段)从实时层读取,并在盘中更新;收盘后换成 结算版本。
K 线
K 线由服务器从 book.snapshot 计算。请求可选:
- type:
time、tick、volume、turnover、range或renko; - interval:盘中时间 K 线用秒数,或
1d、1w、1mo、1q、1y;其他 类型用成交笔数、数量、金额或 tick 数; - anchor(时间 K 线):
session从每个连续交易时段起算,不跨休息;clock从当地午夜起算; - fill:略过没有数据的区间,或用前一个收盘价补值;
- transform:无,或 Heikin-Ashi;
- adjust(连续合约):不调整、价差或比例。
curl -s -H "$H" \
"$API/v2/bars?symbol=SHFE.rb2701&interval=1080&from_day=2026-10-01&to_day=2026-10-20" \
| jq '.bars[] | {start, end, open, high, low, close, volume, complete}'
complete: false 代表这根 K 线还会变:它是进行中的那根,或被查找区间的起点
或终点截断。K 线的 trading_day 依商品的交易所日历,跨夜 K 线属于交易所指
定的交易日。
当 start 或 end 落在一根 K 线中间,那根只涵盖区间内的部分。它的成交量、
成交额与笔数会用区间内的 step 重算,并以 complete: false 返回。时间 K 线
保留对齐交易时段的 start 与 end;事件 K 线从区间内第一个 step 起算。
连续合约
SHFE.rb.main 跟着该商品的主力合约;SHFE.rb.c1、.c2… 是仍在交易的第
1、2… 近合约。adjust=diff 或 ratio 会把换月前后的价格接平,避免连续串行
在换月时跳空。
连续 K 线由目录中实际存在的合约计算。实时 K 线不做还原调整;每根 K 线的
contract 字段指出用了哪个合约。要知道某天 .main 对应哪个合约,用 GET /v2/catalog/continuous 或
GET /v2/catalog/continuous/{symbol}。目录不把虚拟的连续代号列为 instrument。
原始数据方面,from_day/to_day 区间会逐交易日解析连续代号对应的合约。
每行保留连续 symbol,带该合约的 instrument_id,并加上 contract 指出
解析到的合约。一次请求只能有一个连续代号。导出仍只接受单一交易日,因为
工作在创建时就固定 targets。
分辨率
K 线不能比来源数据更细。要求的周期小于交易所快照间隔时,回
unsupported_resolution(400)。交易所间隔在
GET /v2/catalog/datasets。
Python
t = client.data("book.snapshot", "SHFE.rb2701", trading_day="2026-10-20")
daily = client.bars("SHFE.rb.main", "1d", from_day="2025-01-02", to_day="2026-10-20",
adjust="diff")
df = daily.to_pandas() # 小数转成 float
exact = daily.to_pandas(exact=True) # 保留 Decimal
SDK 会把过长的区间与商品清单拆成 API 接受的请求,自动跟 next_cursor,并在
pending_timeout 内等待 data_pending。
限制
查找区间、数据列上限与导出大小集中在限制。