开发文档

Base URL:http://aiguq.com —— 19 个数据接口 + WebSocket 实时推送,覆盖 A 股量化所需的行情、板块、财务、日历全量数据面。全部 GET 请求、JSON 返回、零依赖。

平台概览 #

覆盖沪深北三市 5227 只标的,数据粒度从逐笔分笔到月线,从盘口快照到财务报表。数据目录:

数据类别接口说明
实时快照(最新价/五档/量额)/v1/quote · /v1/quote/batch盘中实时
K 线(1m ~ 月线 · 支持复权)/v1/kline8 周期 · 5 种复权
历史分笔(tick 逐笔)/v1/tick_history按日回放
全市场涨幅榜 / 涨停池/v1/rank · /v1/zt_pool60s 缓存
大盘指数 · 免费指数/v1/index · /f/ticker五大核心指数
WebSocket tick 实时推送/ws毫秒级触达
全市场证券列表/v1/stock_list股票池构建
合约信息(涨跌停价/股本)/v1/instrument证券静态要素
板块分类与成分股/v1/sector_list · /v1/sector行业/概念 7000+
指数成分权重/v1/index_weight指数增强/复制
财务数据(8 张报表)/v1/financial三大报表/股东/指标
除权除息与复权因子/v1/dividend全部历史记录
交易日历与节假日/v1/trading_dates回测必备
可转债基础信息/v1/cb_info转股/票息要素
新股申购信息/v1/ipo打板/打新策略
ETF 申赎清单/v1/etf_info1700+ 只 ETF

通用约定 #

统一响应结构

成功与错误是两种 JSON 形态:

// 成功:HTTP 200,code = 0,业务数据全部在 data
{ "code": 0, "msg": "ok", "ts": 1792294420366, "data": { ... }, "tier": "企业版" }

// 失败:HTTP 4xx/5xx,body 只有 detail;响应头 x-rate-reason 携带原因
HTTP/1.1 429 Too Many Requests
x-rate-reason: day_limit
{ "detail": "超过当日配额" }

证券代码格式

全站统一 交易所后缀 格式,传入 6 位裸代码时自动识别市场:

写法示例识别规则
带后缀(推荐)600519.SH / 000001.SZ / 833171.BJ直接使用
6 位裸代码6005196/5/9 开头 → .SH;其余 → .SZ

字段单位约定

字段族单位示例
价格(last / open / high / low / pre_close / o/h/l/c / ask / bid)元1329.0
成交量(volume / v)手(1 手 = 100 股)38502
成交额(amount / a)元5075528300 ≈ 50.76 亿
涨跌幅(change_pct)%(已乘 100)1.22 表示 +1.22%
权重(weight)%(已乘 100)5.736 表示 5.736%
时间戳(ts / time,行情字段)Unix 毫秒(北京时间)1792135817000
K 线时间 t日期串(见 K线)20261016 / 20261016150000
股本(FloatVolume / TotalVolume)股1250081601

数据时区均为北京时间;ts 是服务器响应时刻,time 是行情本身的时刻。字段值为空时返回 null(不会返回 NaN 或乱码哨兵值)。

鉴权方式 #

两种方式等价,任选其一:

方式用法说明
请求头 X-API-KeyX-API-Key: ak-xxxxxxxx推荐。不会出现在访问日志/URL 中,更安全。
URL 参数 key?key=ak-xxxxxxxx适合快速测试(浏览器直接打开)。
Key 安全:不要把 Key 提交到公开仓库。泄露后可在控制台立即「停用」并新建。每个账号最多 5 个 Key,停用即时生效。

快速开始 #

三步完成第一次调用:① 在 控制台注册并复制 API Key → ② 复制下方任一示例(替换 ak-...)→ ③ 运行。

curl
Python
JavaScript
# 实时行情:贵州茅台
curl "http://aiguq.com/v1/quote?code=600519" \
     -H "X-API-Key: ak-你的Key"

在线调试台 #

填入你的 Key,点「发送」直接看真实返回 —— 调不通时先来这里复现。

// 返回结果将显示在这里。Key 只发往本站,不会存到任何地方。

实时快照 · /v1/quote #

单只标的的最新快照:价格、量额与五档盘口。盘中实时更新,收盘后返回最终快照。

参数必填说明
code必填证券代码(规则见通用约定),支持股票与指数。
// GET /v1/quote?code=600519 → 200 OK
{ "code": 0, "msg": "ok",
  "data": { "item": {
    "code": "600519.SH",   "last": 1329.0,
    "open": 1311.57,       "high": 1329.88,
    "low": 1301.68,        "pre_close": 1312.97,
    "change_pct": 1.22,    "volume": 38502,
    "amount": 5075528300,  "pvolume": 3850175,
    "status": 5,           "time": 1792135817000,
    "ask": [1329.0, ...],  "bid": [1328.9, ...],
    "ask_vol": [12, ...],  "bid_vol": [30, ...]
} } }
字段类型 / 单位说明
codestring标准化后的证券代码(自动补市场后缀)
lastfloat 元最新价
open / high / low / pre_closefloat 元今开 / 最高 / 最低 / 昨收
change_pctfloat %涨跌幅(相对昨收)
volumeint 手当日累计成交量(1 手 = 100 股)
pvolumeint 股当日累计成交量(股数,= volume × 100)
amountint 元当日累计成交额
ask / bidfloat[] 元卖一至卖五 / 买一至买五;收盘后为空数组
ask_vol / bid_volint[] 手对应档位挂单量
statusint证券交易状态码
timeint ms行情时刻(最后一笔成交时间)

批量行情 · /v1/quote/batch #

一次拉多只快照,字段与 quote 完全一致,一次请求只计 1 次调用。

参数必填说明
codes必填逗号分隔,单次上限 50 只(体验版 3 只)。codes=600519,000001,833171.BJ

K 线 · /v1/kline #

OHLCV 完整的 K 线序列:8 种周期 × 5 种复权方式 × 支持任意起止区间,无需预下载数据。冷门标的分钟线首次请求触发服务端补数(1-3 秒)。

参数必填说明
code必填证券代码。
period选填默认 1d。可选 1m / 5m / 15m / 30m / 60m / 1d / 1w / 1M。
count选填返回根数,默认 120,最大 1000,取区间内最近 count 根。
start_time / end_time选填8 位日期 YYYYMMDD,闭区间。与 count 组合取「区间内最近 count 根」。
dividend_type选填复权方式,默认 none 不复权。可选 front 前复权 / back 后复权 / front_ratio 等比前复权 / back_ratio 等比后复权。
// GET /v1/kline?code=600519&period=1d&count=2÷nd_type=back
{ "code": 0, "msg": "ok",
  "data": { "code": "600519.SH", "period": "1d", "dividend_type": "back",
    "bars": [
      { "t": "20261015", "o": 8067.8916, "h": 8227.479, "l": 8047.7924,
        "c": 8203.4102,  "v": 57677, "a": 7537706224.0, "pre_close": 8067.8916 },
      { "t": "20261016", "o": 8196.3755, "h": 8288.3794, "l": 8146.6803,
        "c": 8283.9576,  "v": 38502, "a": 5075528306.0, "pre_close": 8203.4102 }
] } }
字段类型 / 单位说明
tstringK 线时间:日线及以上为交易日 YYYYMMDD;分钟线为该根起始秒 YYYYMMDDHHMMSS(如 20261016150000)
o / h / l / cfloat 元开 / 高 / 低 / 收(按 dividend_type 复权)
vint 手成交量(复权不改变量额)
afloat 元成交额
pre_closefloat 元前收盘价(同样复权)
suspendint停牌标记,仅停牌K线出现:1 停牌 / -1 当日起复牌
复权建议:回测用 back 后复权(价格连续、无未来函数);看图对比用 front 前复权;配对 /v1/dividend 的 dr 因子可自行实现任意复权。

历史分笔 · /v1/tick_history #

单标的单日逐笔成交回放(含盘口快照),用于微观结构研究、主买主卖拆解、回测滑点建模。重量端点:一次调用计 5 次配额。

参数必填说明
code必填证券代码。
date必填交易日 YYYYMMDD。非交易日返回空 trades。
count选填返回笔数,默认 1000,最大 5000,取当日最近 count 笔。
// GET /v1/tick_history?code=600519&date=20261016&count=3
{ "code": 0, "msg": "ok",
  "data": { "code": "600519.SH", "date": "20261016", "count": 3,
    "trades": [ {
      "time": 1792135802000, "lastPrice": 1329.0,
      "open": 1311.57, "high": 1329.88, "low": 1301.68,
      "lastClose": 1312.97, "amount": 2658000, "volume": 20,
      "askPrice": [1329.0, 0.0, ...], "bidPrice": [0.0, ...],
      "askVol": [120, 0, ...], "bidVol": [0, 0, ...],
      "stockStatus": 0
    }, ... ] } }

每笔均为当时点的累计快照(累计量额 + 当时五档),与行情软件分笔口径一致;相邻两笔的 volume 差值即该笔成交量。

涨幅榜 · /v1/rank · 涨停池 · /v1/zt_pool #

均无参数。rank 返回全市场涨幅 Top100;zt_pool 返回当日处于涨停价的股票(主板 10% / 创业板·科创板 20% / 北交所 30% 规则)。服务端 60 秒缓存。

// GET /v1/zt_pool
{ "code": 0, "msg": "ok",
  "data": { "count": 62, "items": [
    { "code": "300045.SZ", "last": 12.7,  "change_pct": 20.04, "volume": 714936 },
    { "code": "688592.SH", "last": 24.98, "change_pct": 19.98, "volume": 52809 },
    ... ] } }

字段:code · last(元)· change_pct(%)· volume(手)。非交易日返回上一交易日收盘后的结果。

大盘指数 · /v1/index · /f/ticker #

/v1/index 需 Key;/f/ticker 免 Key、不计用量,返回相同的五大核心指数(上证指数 / 深证成指 / 创业板指 / 沪深300 / 科创50),可用于链路验证:

// GET /v1/index
{ "code": 0, "msg": "ok",
  "data": { "items": [
    { "code": "000001.SH", "name": "上证指数", "last": 3716.284, "change_pct": 0.24 },
    ... ] } }

WebSocket 实时推送 · /ws #

订阅制 tick 实时推送,毫秒级触达。连接:ws://aiguq.com/ws?key=ak-你的Key。订阅上限:标准 3 只 / 专业 50 只 / 企业 500 只;单 Key 并发连接上限 3。

# ↑ 客户端指令
{"op": "sub",   "codes": ["600519.SH", "000001.SZ"]}
{"op": "unsub", "codes": ["000001.SZ"]}

# ↓ 服务端每笔推送(成交触发,非定时)
{"code":"600519.SH","last":1329.0,"change_pct":1.22,"volume":38502,"time":1792135817000}
# Python 完整示例(pip install websocket-client)
import json, websocket

def on_open(ws):
    ws.send(json.dumps({"op": "sub", "codes": ["600519.SH"]}))

def on_message(ws, m):
    d = json.loads(m)
    print(d["code"], d["last"], d["change_pct"], "%")

ws = websocket.WebSocketApp("ws://aiguq.com/ws?key=ak-你的Key",
    on_open=on_open, on_message=on_message)
ws.run_forever(reconnect=3)  # 断线3秒自动重连

证券列表 · /v1/stock_list #

指定市场的全部证券代码,构建股票池、批量遍历的基础。

参数必填说明
market选填SH / SZ / BJ / ALL(默认)。
keyword选填按代码包含过滤,如 keyword=688。
// GET /v1/stock_list?market=SH
{ "code": 0, "msg": "ok",
  "data": { "count": 2320, "items": ["600000.SH", "600004.SH", ...] } }

合约信息 · /v1/instrument #

证券静态要素:名称、上市日期、当日涨跌停价、股本结构、最小变动价位、交易状态。做涨跌停判断、换手率计算、次新过滤的必备数据。

// GET /v1/instrument?code=600519
{ "code": 0, "msg": "ok",
  "data": { "item": {
    "ExchangeID": "SH",        "InstrumentID": "600519",
    "InstrumentName": "贵州茅台",
    "open_date": "20010827",   "trading_day": "20261016",
    "PreClose": 1312.97,       "UpStopPrice": 1444.27,
    "DownStopPrice": 1181.67,  "FloatVolume": 1250081601,
    "TotalVolume": 1250081601, "PriceTick": 0.01,
    "VolumeMultiple": 1,       "InstrumentStatus": 0,
    "IsTrading": false,        "ExpireDate": "99999999"
} } }
字段类型 / 单位说明
InstrumentNamestring证券简称
open_datestringIPO 日期(YYYYMMDD),次新股过滤用
trading_daystring数据所属交易日
UpStopPrice / DownStopPricefloat 元当日涨停价 / 跌停价
FloatVolumeint 股流通股本(换手率 = volume×100 ÷ FloatVolume)
TotalVolumeint 股总股本
PriceTickfloat 元最小变动价位
InstrumentStatusint停牌状态(0 正常)
IsTradingbool当前是否交易中

板块 · /v1/sector_list · /v1/sector #

7000+ 板块分类:行业(含申万体系)、概念、地域、指数板块。sector_list 拿板块名,sector 拿成分股。

接口参数说明
/v1/sector_listkeyword(选填)、limit(默认500,最大2000)板块名列表,按关键词过滤
/v1/sectorname(必填板块名)、limit(默认1000,最大3000)成分股代码列表
// GET /v1/sector_list?keyword=银行&limit=5
{ "code": 0, "msg": "ok",
  "data": { "count": 5,
    "items": ["1000SW1银行", "1000SW2国有大型银行",
              "1000SW2股份制银行", "1000SW2银行", "300SW1银行"] } }

// GET /v1/sector?name=1000SW1银行
{ "code": 0, "msg": "ok",
  "data": { "sector": "1000SW1银行", "count": 42,
            "items": ["001227.SZ", "002807.SZ", ...] } }

板块名即板块ID,直接传给 sector 即可。静态数据,按周更新即可,无需盘中高频拉取。

指数权重 · /v1/index_weight #

指数成分及权重(按权重降序),指数增强、行业中性、组合复制的基础数据。

参数必填说明
index选填指数代码,默认 000300.SH(沪深300)。常用:000905.SH 中证500、000852.SH 中证1000、000016.SH 上证50。
// GET /v1/index_weight?index=000300.SH
{ "code": 0, "msg": "ok",
  "data": { "index": "000300.SH", "count": 300,
    "items": [ { "code": "600519.SH", "weight": 5.736 },
               { "code": "300750.SZ", "weight": 2.888 },
               { "code": "601318.SH", "weight": 2.623 }, ... ] } }

weight 单位 %,合计 100。服务端缓存 24 小时。

财务数据 · /v1/financial #

8 张财务报表,返回报告期全字段。重量端点:一次调用计 2 次配额。

参数必填说明
code必填证券代码。
table选填报表名,逗号分隔多张。默认 Balance,Income,CashFlow,Pershareindex。可选:Balance 资产负债表 / Income 利润表 / CashFlow 现金流量表 / Capital 股本表 / Holdernum 股东数 / Top10holder 十大股东 / Top10flowholder 十大流通股东 / Pershareindex 每股指标。
count选填每张报表返回最近 N 期,默认 4(近一年年报+季报),最大 12。
// GET /v1/financial?code=600519&table=Income&count=1
{ "code": 0, "msg": "ok",
  "data": { "code": "600519.SH", "tables": { "Income": {
    "count": 1,
    "records": [ { "m_timetag": "20260630",  "m_anntime": "20260815",
                   "revenue_inc": 90703260964.48,
                   "total_operating_cost": 30946044878.08,
                   "research_expenses": 114926219.6,   ... } ] } } } }
报表核心字段(节选)说明
Balance
资产负债表
cash_equivalents 货币资金 · account_receivable 应收账款 · inventories 存货 · total_current_assets 流动资产合计 · fix_assets 固定资产 · tot_assets 资产总计 · shortterm_loan 短期借款 · tot_liab 负债合计 · cap_stk 实收资本 · undistributed_profit 未分配利润 · total_equity 所有者权益单位:元。120+ 字段全量返回
Income
利润表
revenue 营业总收入 · total_expense 营业成本 · sale_expense 销售费用 · less_gerl_admin_exp 管理费用 · financial_expense 财务费用 · research_expenses 研发费用 · oper_profit 营业利润 · tot_profit 利润总额 · net_profit_incl_min_int_inc 净利润 · net_profit_excl_min_int_inc 归母净利润 · s_fa_eps_basic 基本EPS单位:元(EPS 为元/股)
CashFlow
现金流量表
goods_sale_and_service_render_cash 销售收现 · net_cash_flows_oper_act 经营净额 · net_cash_flows_inv_act 投资净额 · net_cash_flows_fnc_act 筹资净额 · net_incr_cash_cash_equ 现金净增加 · net_profit 净利润单位:元
Pershareindex
每股指标
s_fa_bps 每股净资产 · s_fa_eps_basic 基本EPS · du_return_on_equity 净资产收益率 · sales_gross_profit 销售毛利率 · inc_revenue_rate 营收同比 · gear_ratio 资产负债率 · inventory_turnover 存货周转率比率类已乘100
Capital
股本表
total_capital 总股本 · circulating_capital 流通A股 · restrict_circulating_capital 限售股单位:股
Holdernum
股东数
shareholder 股东总数 · shareholderA A股东户数筹码集中度跟踪
Top10holder / Top10flowholdername 股东名称 · quantity 持股数 · ratio 持股比例 · rank 排名 · declareDate 公告日每期 10 条记录
m_timetag 报告截止日(如 20260630 半年报)、m_anntime 披露日期(回测时按披露日对齐可避免未来函数)。records 为全字段返回,未涉及科目为 null。

除权除息 · /v1/dividend #

证券全部历史除权除息记录与复权因子。

// GET /v1/dividend?code=600519
{ "code": 0, "msg": "ok",
  "data": { "code": "600519.SH", "count": 30,
    "items": [ { "date": "20260626", "time": 1782403200000,
                 "interest": 28.02423, "stockBonus": 0,
                 "stockGift": 0, "allotNum": 0, "allotPrice": 0,
                 "gugai": 0, "dr": 1.023663 }, ... ] } }
字段类型 / 单位说明
date / timestring / int除权除息日(YYYYMMDD)及其毫秒时间戳
interestfloat 元/股每股股利(税前)
stockBonus / stockGiftfloat 股每股红股 / 每股转增
allotNum / allotPricefloat每股配股数 / 配股价格(元)
drfloat除权系数(复权计算用)
gugaiint是否股改(1 = 股改特殊处理)

交易日历 · /v1/trading_dates #

交易日列表 + 节假日列表,回测循环与任务调度的基础。

参数必填说明
market选填SH(默认)/ SZ。
start_time / end_time选填YYYYMMDD,缺省返回全部历史。
// GET /v1/trading_dates?start_time=20261001&end_time=20261018
{ "code": 0, "msg": "ok",
  "data": { "dates": ["20261008", "20261009", "20261012", ...],
            "holidays": ["19910101", ..., "20261001", "20261002", ...] } }

可转债 · /v1/cb_info #

可转债基础信息:发行要素、票息、转股条款。

// GET /v1/cb_info?code=123289.SZ
{ "code": 0, "msg": "ok",
  "data": { "item": {
    "bondCode": "123289.SZ",  "bondName": "中科转债",
    "stockCode": "301175.SZ", "stockName": "中科环保",
    "bondMaturity": 6,        "bondParvalue": 100,
    "bondIssuePrice": 100,    "bondIssueSize": 1000000000,
    "bondReMainSize": 1000000000,
    "bondValueDate": 20261016, "bondMaturityDate": 20321016,
    "bondCouponRate": 0.2,    "convStartDate": 20270422, ... } } }

核心字段:bondMaturity 期限(年)· bondParvalue 面值(元)· bondIssueSize / bondReMainSize 发行/剩余规模(元)· bondCouponRate 票面利率(%)· bondValueDate / bondMaturityDate 起息/到期日 · convStartDate 转股起始日 · bondListDate / delistDate 上市/退市日。

新股申购 · /v1/ipo #

时间范围内的 IPO / 新股转债申购信息(含可转债发行)。

参数必填说明
start_time / end_time选填YYYYMMDD,缺省返回全部。
// GET /v1/ipo?start_time=20261001&end_time=20261018
{ "code": 0, "msg": "ok",
  "data": { "count": 5, "items": [ {
    "securityCode": "123289", "codeName": "中科转债",
    "market": "SZ", "onlineSubCode": "371175",
    "onlineSubMaxQty": 10000, "publishPrice": 100.0,
    "startDate": 20261016, "isProfit": 0,
    "industryPe": 0.0, "afterPE": 0.0 }, ... ] } }

actIssueQty 发行总量(股)· onlineSubCode / onlineSubMaxQty 申购代码 / 申购上限(股)· publishPrice 发行价(元)· industryPe / afterPE 行业/发行后市盈率。

ETF 申赎 · /v1/etf_info #

ETF 申赎清单要素(现金差额、份额净值、申赎单位等),套利与做市策略用。服务端缓存 24 小时。

用法说明
/v1/etf_info(不带 code)返回全部 ETF 代码清单(1700+ 只)
/v1/etf_info?code=510300.SH返回该 ETF 的申赎要素
// GET /v1/etf_info?code=510300.SH
{ "code": 0, "msg": "ok",
  "data": { "code": "510300.SH", "count": 1, "records": [ {
    "基金代码": "510300", "基金名称": "300ETF",
    "现金差额": 101185.26, "预估现金差额": 104273.26,
    "基金份额净值": 4.2366, "最小申购、赎回单位净值": 3812972.26,
    "最小申购、赎回单位": 900000, "现金替代比例上限": 0.5,
    "是否需要公布IOPV": 1, "申购的允许情况": 1, ... } ] } }

用量查询 · /v1/usage #

查询当前 Key 的配额消耗,不消耗当日额度。

// GET /v1/usage
{ "code": 0, "msg": "ok",
  "data": { "used": 20, "quota": 100000, "minute": 100000,
            "tier": "ent",
            "history": [ { "day": "2026-10-18", "calls": 20 } ] } }

xtquant 零改造迁移 #

已有 xtquant 代码?下载 aigu_xt.py 放进项目,只改一行 import,接口签名保持一致:

# 原来: from xtquant import xtdata
现在: import aigu_xt as xtdata

xtdata.connect(api_key="ak-你的Key")          # 或环境变量 AIGU_API_KEY
xtdata.get_full_tick(["600519.SH"])
xtdata.get_market_data_ex([], ["000001"], period="1d", count=60)
xtdata.subscribe_quote("600519.SH", callback=print)

兼容层支持行情快照、K 线、证券列表与实时订阅等常用场景,K 线无需预下载数据;实时订阅走 WebSocket(pip install websocket-client)。

错误码与排障 #

状态码x-rate-reason响应体怎么解决
400—参数错误提示检查 date 等参数格式(YYYYMMDD)。
401invalid_key{"detail":"API key 无效或已停用"}Key 是否复制完整;是否已停用;请求头拼写为 X-API-Key。
404—数据不存在合约代码错误(如可转债代码查股票信息);/v1/instrument 可校验代码是否存在。
429minute_limit{"detail":"超过分钟频率限制"}等待下一分钟;客户端加节流。
429day_limit{"detail":"超过当日配额"}次日 0 点自动重置;升级套餐立即提额。
502—上游数据异常指数退避重试 2-3 次。

配额与限流规则 #

套餐价格日调用量分钟频率批量上限WS 订阅
体验版(注册赠3天)—53 / 分3 只—
标准版¥99/月10010 / 分50 只3 只
专业版¥189/月10,000100 / 分50 只50 只
企业版¥299/月100,000不限50 只500 只

计费规则:一次 HTTP 数据请求计 1 次;批量行情计 1 次;financial 计 2 次、tick_history 计 5 次;/v1/usage 与 /f/ticker 不计费;WebSocket 推送不计次。日额度北京时间 0 点重置。

更新日志 #

版本日期内容
v1.22026-10-18数据面大扩容:新增合约信息、板块分类与成分股、指数成分权重、财务数据(8张报表)、除权除息、交易日历、可转债、新股申购、ETF申赎清单、历史分笔共 12 个接口;K 线新增复权(5 种)与起止区间参数,分钟线 t 升级为 YYYYMMDDHHMMSS 并返回 pre_close / 停牌标记。
v1.12026-10文档重构:统一字段单位约定、错误响应规范、在线调试台扩容。
v1.02026-10首版:行情快照 / K线 / 证券列表 / 涨幅榜 / 涨停池 / 指数 / WebSocket。

常见问题 FAQ #

注册后怎么拿到第一笔数据?
控制台复制 Key → 打开本页「在线调试台」粘贴 Key → 点发送。或者浏览器直接打开 /f/ticker 验证网络连通(免 Key)。
为什么返回 401?
① Key 首尾多了空格;② 用了 apikey=(应为 key=);③ Key 已停用。看响应头 x-rate-reason: invalid_key 可确认。
成功和失败的 JSON 长得不一样?
是的。成功是 {code:0, data:{...}},失败是 {detail:"..."} 且 HTTP 状态码非 200。先判 HTTP 状态码,再判 code。
分钟K第一次特别慢或返回空?
冷门标的首次请求触发服务端补数(1-3 秒),重试即可;非交易时段请配合 start_time/end_time 指定历史交易日。
五档盘口为什么是空数组?
盘口只在交易时段有值,收盘后清空。需要盘口的策略请在 9:30-15:00 之间请求,或用 tick_history 回放历史盘口。
volume 和 pvolume 什么区别?
volume 单位是手(与行情软件一致),pvolume 是股数。换算关系:pvolume = volume × 100。
财务数据为什么一次计 2 次配额?分笔计 5 次?
财务与分笔属于重数据端点(单次返回 100+ 字段 / 数千笔记录),按资源成本加权计费,其余接口均计 1 次。
回测怎么避免财务未来函数?
每条财务记录都有 m_timetag(报告期)和 m_anntime(披露日)。回测中在 T 日只允许使用 m_anntime ≤ T 的记录。
复权方式怎么选?
策略回测用 back 后复权(无未来函数);图表展示用 front 前复权;需要自己算收益时用不复权 + dividend 的 dr 因子。
板块列表 7000 多个怎么挑?
用 keyword 过滤:申万行业含「SW」前缀(如 1000SW1银行)、概念板块多为「TDGN」前缀。先 sector_list?keyword=银行 试探命名规律。
超过配额会怎样?
返回 429(带 x-rate-reason),不影响账号,次日自动恢复。
支付后多久生效?
支付宝/微信扫码,回调到达后秒级自动开通。也可用卡密兑换。