行情查询
TypeScript SDK 通过 QuoteClient 提供全部行情接口。自 v0.3.0 起所有方法均返回强类型对象;v0.4.0 将 4 个行情方法(getBrief / getQuoteDepth / getTradeTick / getFutureRealTimeQuote)改为 Request 对象签名(breaking),并新增 41 个方法覆盖股票基础 / 期权 / 期货 / 基金 / 窝轮 / 行业 / 财务日历 / 夜盘等场景。请求参数在 TS 中使用 camelCase,SDK 会自动转换为 snake_case 发往服务端。
完整可运行示例:
import {
createClientConfig,
HttpClient,
QuoteClient,
} from '@tigeropenapi/tigeropen';
async function main() {
const config = createClientConfig();
// 行情客户端需要行情专用的 HttpClient
const qc = new QuoteClient(
new HttpClient(config, undefined, { useQuoteServerUrl: true }),
);
// 市场状态
const states = await qc.getMarketState('US');
console.log('美股市场状态:', states);
// 实时报价 (v0.4.0: Request 对象)
const briefs = await qc.getBrief({ symbols: ['AAPL', 'TSLA'] });
console.log('实时报价:', briefs);
// K 线
const klines = await qc.getKline('AAPL', 'day');
console.log('K 线:', klines[0]?.items.length);
}
main().catch(console.error);基础行情
getMarketState 获取市场状态
qc.getMarketState(market: string): Promise<MarketState[]>
说明
查询指定市场(美股、港股等)的当前交易状态。
参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| market | string | 是 | 市场代码:'US' / 'HK' / 'CN' / 'SG' |
返回
Promise<MarketState[]>,每个元素含 market、marketStatus、status、openTime。
示例
const states = await qc.getMarketState('US');
console.log(states);getBrief 获取实时报价
qc.getBrief(req: BriefRequest): Promise<Brief[]>
v0.4.0 Breaking:由位置参数
symbols: string[]改为 Request 对象。
说明
批量获取股票的实时快照行情。wire 方法 quote_real_time。
请求 BriefRequest
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| symbols | string[] | 是 | 股票代码列表,如 ['AAPL', 'TSLA'] |
| includeHourTrading | boolean | 否 | 是否包含盘前盘后 |
| secType | string | 否 | 证券类型('STK' / 'OPT' 等) |
| lang | string | 否 | 语言('zh_CN' / 'zh_TW' / 'en_US') |
返回
Promise<Brief[]>,每个元素含 symbol、latestPrice、preClose、open/high/low/close、change/changeRate、volume、bidPrice/askPrice、bidSize/askSize、latestTime 等。
示例
const briefs = await qc.getBrief({
symbols: ['AAPL', 'TSLA', '00700'],
});
for (const b of briefs) {
console.log(`${b.symbol} ${b.latestPrice} (${b.changeRate})`);
}getKline 获取 K 线数据
qc.getKline(symbol: string, period: string): Promise<Kline[]>
说明
获取指定股票的历史 K 线数据。
参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| symbol | string | 是 | 股票代码 |
| period | string | 是 | K 线周期:'day' / 'week' / 'month' / 'year' / '1min' / '5min' / '15min' / '30min' / '60min' |
返回
Promise<Kline[]>,每个元素含 symbol、period、items: KlineItem[](time/open/high/low/close/volume/amount)、可选 nextPageToken。
示例
const klines = await qc.getKline('AAPL', 'day');
console.log(klines[0]?.items);getTimeline 获取分时数据
qc.getTimeline(symbols: string[]): Promise<Timeline[]>
说明
获取当日分时走势数据。
参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| symbols | string[] | 是 | 股票代码列表 |
返回
Promise<Timeline[]>,每个元素含 symbol、period、preClose,以及 intraday / preHours / afterHours 三个可选分时桶,每个桶下的 items 含 time、price、volume、avgPrice。
示例
const tl = await qc.getTimeline(['AAPL']);
console.log(tl[0]?.intraday?.items);getTradeTick 获取逐笔成交
qc.getTradeTick(req: TradeTickRequest): Promise<TradeTick[]>
v0.4.0 Breaking:由位置参数
symbols: string[]改为 Request 对象。
说明
获取最新逐笔成交记录。wire 方法 trade_tick。
请求 TradeTickRequest
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| symbols | string[] | 是 | 股票代码列表 |
| beginIndex | number | 否 | 起始序号 |
| endIndex | number | 否 | 结束序号 |
| limit | number | 否 | 返回条数上限 |
| lang | string | 否 | 语言 |
返回
Promise<TradeTick[]>,每个元素含 symbol、beginIndex、endIndex、items(time/price/volume/type)。
示例
const ticks = await qc.getTradeTick({ symbols: ['AAPL'] });
console.log(ticks[0]?.items.slice(0, 5));getQuoteDepth 获取深度行情
qc.getQuoteDepth(req: DepthQuoteRequest): Promise<Depth[]>
v0.4.0 Breaking:由位置参数
(symbol, market)改为 Request 对象,且symbols支持批量。
说明
获取盘口深度数据。仅支持 'US' / 'HK' 市场。wire 方法 quote_depth。
请求 DepthQuoteRequest
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| symbols | string[] | 是 | 股票代码列表 |
| market | string | 否 | 市场:'US' / 'HK' |
| tradeSession | string | 否 | 交易时段 |
| lang | string | 否 | 语言 |
返回
Promise<Depth[]>,每个元素含 symbol、asks、bids;每档 DepthLevel 含 price/count/volume。
示例
const depths = await qc.getQuoteDepth({
symbols: ['AAPL'],
market: 'US',
});
console.log(depths[0]?.asks, depths[0]?.bids);期权行情
getOptionExpiration 获取期权到期日
qc.getOptionExpiration(symbol: string): Promise<OptionExpiration[]>
说明
获取标的的所有期权到期日列表。
参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| symbol | string | 是 | 标的股票代码,如 'AAPL' |
返回
Promise<OptionExpiration[]>,每个元素含 symbol、dates('YYYY-MM-DD' 字符串数组)、timestamps(毫秒时间戳数组),可选 optionSymbols / periods / counts。
示例
const exps = await qc.getOptionExpiration('AAPL');
console.log(exps[0]?.dates);getOptionChain 获取期权链
qc.getOptionChain(symbol: string, expiry: string): Promise<OptionChain[]>
说明
获取指定标的和到期日的完整期权链。expiry 必须为 'YYYY-MM-DD' 格式,SDK 自动转换为毫秒时间戳。
参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| symbol | string | 是 | 标的代码 |
| expiry | string | 是 | 到期日,格式 'YYYY-MM-DD' |
返回
Promise<OptionChain[]>,每个元素含 symbol、expiry、items: OptionChainRow[]。每行含 call、put 两个 OptionLeg,OptionLeg 含 identifier、strike、right、latestPrice、bidPrice/askPrice、impliedVol、delta、gamma、theta、vega 等。
示例
const chain = await qc.getOptionChain('AAPL', '2025-01-17');
const firstRow = chain[0]?.items[0];
console.log(firstRow?.call?.identifier, firstRow?.put?.identifier);getOptionBrief 获取期权报价
qc.getOptionBrief(identifiers: string[]): Promise<Brief[]>
说明
批量获取期权合约的实时报价;SDK 内部会把 OCC 期权代码解析为 symbol / expiry / right / strike 请求参数。
参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| identifiers | string[] | 是 | 期权代码列表,美股格式:'AAPL 250117C00150000'(注意双空格) |
返回
Promise<Brief[]>,每个元素含 symbol、latestPrice、preClose、change、volume、openInterest、multiplier、expiry、strike、right、askPrice/bidPrice。
示例
const optBriefs = await qc.getOptionBrief(['AAPL 250117C00150000']);
console.log(optBriefs[0]?.latestPrice);getOptionKline 获取期权 K 线
qc.getOptionKline(identifier: string, period: string): Promise<Kline[]>
说明
获取指定期权合约的历史 K 线。SDK 自动从 identifier 解析出 symbol / expiry / right / strike。
参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| identifier | string | 是 | 期权合约代码 |
| period | string | 是 | K 线周期 |
返回
Promise<Kline[]>(结构同 getKline)。
示例
const optKline = await qc.getOptionKline('AAPL 250117C00150000', 'day');
console.log(optKline[0]?.items);期货行情
getFutureExchange 获取期货交易所列表
qc.getFutureExchange(): Promise<FutureExchange[]>
说明
获取平台支持的所有期货交易所列表。
返回
Promise<FutureExchange[]>,每个元素含 code、name、zoneId。
示例
const exchanges = await qc.getFutureExchange();
for (const e of exchanges) {
console.log(`${e.code} ${e.name} (${e.zoneId})`);
}getFutureContracts 获取期货合约列表
qc.getFutureContracts(exchangeCode: string): Promise<FutureContractInfo[]>
说明
获取指定交易所下所有可交易期货合约。
参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| exchangeCode | string | 是 | 交易所代码,如 'CME'、'HKEX' |
返回
Promise<FutureContractInfo[]>,每个元素含 contractCode、name、type、contractMonth、lastTradingDate、currency、multiplier、minTick、exchange。
示例
const contracts = await qc.getFutureContracts('CME');
console.log(contracts[0]?.contractCode);getFutureRealTimeQuote 获取期货实时报价
qc.getFutureRealTimeQuote(req: FutureBriefRequest): Promise<FutureQuote[]>
v0.4.0 Breaking:由位置参数
contractCodes: string[]改为 Request 对象。
说明
批量获取期货合约的实时行情数据。wire 方法 future_real_time_quote。
请求 FutureBriefRequest
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| contractCodes | string[] | 是 | 期货合约代码列表,如 ['ES2506', 'NQ2506'] |
| lang | string | 否 | 语言 |
返回
Promise<FutureQuote[]>,每个元素含 contractCode、latestPrice、bidPrice/askPrice、volume、openInterest、open/high/low、settlement、limitUp/limitDown。
示例
const futQuotes = await qc.getFutureRealTimeQuote({
contractCodes: ['ES2506', 'NQ2506'],
});
console.log(futQuotes);getFutureKline 获取期货 K 线
qc.getFutureKline(req: FutureKlineRequest): Promise<FutureKline[]>
说明
获取期货合约的历史 K 线数据。beginTime/endTime 为毫秒时间戳;传 -1(或省略后由 SDK 默认填 -1)表示不限制。
请求 FutureKlineRequest
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| contractCodes | string[] | 是 | 期货合约代码列表 |
| period | string | 是 | K 线周期 |
| beginTime | number | 否 | 开始时间(ms);-1 表示不限 |
| endTime | number | 否 | 结束时间(ms);-1 表示不限 |
| limit | number | 否 | 返回条数限制 |
| pageToken | string | 否 | 分页令牌 |
返回
Promise<FutureKline[]>,每个元素含 items: FutureKlineItem[] 与可选 nextPageToken;FutureKlineItem 含 time、open、high、low、close、volume、lastTime、openInterest、settlement。
示例
const futKline = await qc.getFutureKline({
contractCodes: ['ES2506'],
period: 'day',
beginTime: -1,
endTime: -1,
});
console.log(futKline[0]?.items);基本面数据
getFinancialDaily 获取日级财务数据
qc.getFinancialDaily(req: FinancialDailyRequest): Promise<FinancialDailyItem[]>
说明
获取股票的每日财务指标数据(如流通股数等)。
请求 FinancialDailyRequest
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| symbols | string[] | 是 | 股票代码列表 |
| market | string | 是 | 市场 |
| fields | string[] | 是 | 查询字段,如 ['shares_outstanding'] |
| beginDate | string | 是 | 起始日期 'YYYY-MM-DD' |
| endDate | string | 是 | 结束日期 'YYYY-MM-DD' |
返回
Promise<FinancialDailyItem[]>(symbol/field/date/value)。
示例
const daily = await qc.getFinancialDaily({
symbols: ['AAPL'],
market: 'US',
fields: ['shares_outstanding'],
beginDate: '2025-01-01',
endDate: '2025-01-31',
});
console.log(daily);资金流向
getCapitalFlow 获取资金流向
qc.getCapitalFlow(symbol: string, market: string, period: string): Promise<CapitalFlow | undefined>
说明
获取股票的资金流向时间序列数据。
参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| symbol | string | 是 | 股票代码 |
| market | string | 是 | 市场 |
| period | string | 是 | 周期:'intraday' / 'day' / 'week' / 'month' / 'year' / 'quarter' |
返回
Promise<CapitalFlow | undefined>,对象含 symbol、period、items: CapitalFlowItem[](time/timestamp/netInflow)。
示例
const flow = await qc.getCapitalFlow('AAPL', 'US', 'day');
console.log(flow?.items);getCapitalDistribution 获取资金分布
qc.getCapitalDistribution(symbol: string, market: string): Promise<CapitalDistribution | undefined>
说明
获取股票当前资金分布快照,按大单/中单/小单维度展示流入流出。
参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| symbol | string | 是 | 股票代码 |
| market | string | 是 | 市场 |
返回
Promise<CapitalDistribution | undefined>,对象含 symbol、netInflow、inAll、inBig、inMid、inSmall、outAll、outBig、outMid、outSmall。
示例
const dist = await qc.getCapitalDistribution('AAPL', 'US');
console.log(dist?.netInflow);选股器
marketScanner 选股器
qc.marketScanner(req: MarketScannerRequest): Promise<ScannerResult | undefined>
说明
根据自定义条件筛选股票。
请求 MarketScannerRequest
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| market | string | 是 | 市场 |
| page | number | 否 | 页码(从 0 开始) |
| pageSize | number | 否 | 每页数量 |
| cursorId | string | 否 | 游标分页 ID |
| baseFilterList | Array<Record<string, unknown>> | 否 | 基础字段过滤 |
| accumulateFilterList | Array<Record<string, unknown>> | 否 | 累积字段过滤 |
| financialFilterList | Array<Record<string, unknown>> | 否 | 财务字段过滤 |
| multiTagsFilterList | Array<Record<string, unknown>> | 否 | 多标签过滤 |
| sortFieldData | Record<string, unknown> | 否 | 排序字段 |
返回
Promise<ScannerResult | undefined>,对象含 page、totalPage、totalCount、pageSize、cursorId,以及 items: ScannerResultItem[](每项含 symbol、market 及分类数据列表)。
示例
const res = await qc.marketScanner({ market: 'US', page: 0, pageSize: 10 });
console.log(`page=${res?.page}/${res?.totalPage} items=${res?.items.length}`);grabQuotePermission 获取行情权限
qc.grabQuotePermission(): Promise<QuotePermission[]>
说明
查询当前账户开通的行情权限列表。
返回
Promise<QuotePermission[]>,每个元素含 name、expireAt。
示例
const perms = await qc.grabQuotePermission();
console.log(perms);getMarketScannerTags 获取选股扫描器标签 (v0.4.0 新增)
qc.getMarketScannerTags(req: MarketScannerTagsRequest): Promise<MarketScannerTags | undefined>
说明
查询选股扫描器(marketScanner)可用的 multi_tags 字段及枚举值。wire 方法 market_scanner_tags。
请求 MarketScannerTagsRequest
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| market | string | 否 | 市场 |
| multiTagFieldList | string[] | 否 | 多标签字段列表(wire: multi_tag_field_list) |
| lang | string | 否 | 语言 |
返回
Promise<MarketScannerTags | undefined>(tagFields / tags: MarketScannerTag[],每个 MarketScannerTag 含 field / name / values)。
示例
const tags = await qc.getMarketScannerTags({ market: 'US' });
console.log(tags?.tagFields, tags?.tags.length);股票基础 (v0.4.0 新增)
getSymbols 获取市场全部代码
qc.getSymbols(req: SymbolsRequest): Promise<string[]>
说明
获取指定市场的全部合约代码列表(仅 symbol)。wire 方法 all_symbols。
请求 SymbolsRequest
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| market | string | 否 | 市场:'US' / 'HK' / 'CN' / 'SG' |
| secType | string | 否 | 证券类型 |
| includeOtc | boolean | 否 | 是否包含 OTC |
| lang | string | 否 | 语言 |
返回
Promise<string[]> symbol 列表。
示例
const symbols = await qc.getSymbols({ market: 'US' });
console.log(`total=${symbols.length} first=${symbols[0]}`);getSymbolNames 获取代码 + 名称
qc.getSymbolNames(req: SymbolsRequest): Promise<SymbolName[]>
说明
获取指定市场的合约代码及中英文名称。wire 方法 all_symbol_names。
返回
Promise<SymbolName[]>(symbol / name / market)。
示例
const items = await qc.getSymbolNames({ market: 'US' });
for (const it of items.slice(0, 5)) {
console.log(`${it.symbol} ${it.name}`);
}getTradeMetas 获取交易元数据
qc.getTradeMetas(req: TradeMetasRequest): Promise<TradeMeta[]>
说明
获取合约的交易元数据(最小变动价位、每手股数、是否可融可空等)。wire 方法 quote_stock_trade。
请求 TradeMetasRequest
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| symbols | string[] | 是 | 股票代码列表 |
| lang | string | 否 | 语言 |
返回
Promise<TradeMeta[]>(symbol / lotSize / minTick / spreadScale / shortableFlag / marginableFlag)。
示例
const metas = await qc.getTradeMetas({ symbols: ['AAPL', '00700'] });
for (const m of metas) {
console.log(`${m.symbol} lot=${m.lotSize} minTick=${m.minTick}`);
}getStockDelayBriefs 获取延迟行情
qc.getStockDelayBriefs(req: StockDelayBriefsRequest): Promise<Brief[]>
说明
获取延迟行情快照(结构与实时 getBrief 相同)。wire 方法 quote_delay。
请求 StockDelayBriefsRequest
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| symbols | string[] | 是 | 股票代码列表 |
| secType | string | 否 | 证券类型 |
| lang | string | 否 | 语言 |
示例
const briefs = await qc.getStockDelayBriefs({ symbols: ['AAPL'] });getBars 获取 K 线(完整版)
qc.getBars(req: BarsRequest): Promise<Kline[]>
说明
比 getKline 更完整的 K 线接口,支持时间范围、分页、前复权/后复权、盘前盘后等。
字段命名约定:
beginTime/endTime为毫秒时间戳(wirebegin_time/end_time)。
请求 BarsRequest
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| symbols | string[] | 是 | 股票代码列表 |
| period | string | 否 | 周期 |
| right | string | 否 | 复权类型:'br' / 'nr' |
| beginTime | number | 否 | 起始毫秒时间戳 |
| endTime | number | 否 | 结束毫秒时间戳 |
| limit | number | 否 | 返回条数上限 |
| beginIndex | number | 否 | 起始索引(与时间范围二选一) |
| endIndex | number | 否 | 结束索引 |
| pageToken | string | 否 | 分页 token |
| tradeSession | string | 否 | 交易时段 |
| date | string | 否 | 指定日期 |
| withFundamental | boolean | 否 | 是否带基本面 |
| secType | string | 否 | 证券类型 |
| lang | string | 否 | 语言 |
返回
Promise<Kline[]>(结构同 getKline)。
示例
const bars = await qc.getBars({
symbols: ['AAPL'],
period: 'day',
limit: 100,
});
console.log(bars[0]?.items.length);getBarsByPage 客户端分页 K 线
qc.getBarsByPage(req: BarsByPageRequest): Promise<KlineItem[]>
说明
客户端分页包装:循环调用 getBars 直到拉取到指定数量的 K 线,按时间升序返回合并结果。
请求 BarsByPageRequest
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| symbol | string | 是 | 股票代码(单个) |
| period | string | 是 | 周期 |
| beginTime | number | 否 | 起始毫秒时间戳 |
| endTime | number | 否 | 结束毫秒时间戳 |
| totalSize | number | 否 | 想获取的总条数,默认 1000 |
| pageSize | number | 否 | 每页条数,默认 200 |
| right | string | 否 | 复权 |
| tradeSession | string | 否 | 交易时段 |
| lang | string | 否 | 语言 |
返回
Promise<KlineItem[]>(已扁平化)。
示例
const items = await qc.getBarsByPage({
symbol: 'AAPL',
period: 'day',
totalSize: 500,
pageSize: 200,
});
console.log(`got ${items.length} bars`);getTimelineHistory 获取历史分时
qc.getTimelineHistory(req: TimelineHistoryRequest): Promise<Timeline[]>
说明
获取历史某一交易日的分时数据。wire 方法 history_timeline。
请求 TimelineHistoryRequest
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| symbols | string[] | 是 | 股票代码列表 |
| date | string | 否 | 日期,格式 'yyyy-MM-dd' |
| right | string | 否 | 复权 |
| tradeSession | string | 否 | 交易时段 |
| lang | string | 否 | 语言 |
返回
Promise<Timeline[]>(结构同 getTimeline)。
示例
const tl = await qc.getTimelineHistory({
symbols: ['AAPL'],
date: '2025-09-01',
});getTradeRank 获取成交排行
qc.getTradeRank(req: TradeRankRequest): Promise<TradeRankItem[]>
说明
查询指定市场的成交额/成交量排行榜。wire 方法 trade_rank。
请求 TradeRankRequest
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| market | string | 是 | 市场 |
| lang | string | 否 | 语言 |
返回
Promise<TradeRankItem[]>(symbol / name / latestPr / change / changeRate / volume / amount)。
示例
const rank = await qc.getTradeRank({ market: 'HK' });
for (const r of rank.slice(0, 10)) {
console.log(`${r.symbol} ${r.name} amount=${r.amount}`);
}getShortInterest 获取空头利益
qc.getShortInterest(req: ShortInterestRequest): Promise<ShortInterest[]>
说明
获取美股空头持仓(short interest)数据。wire 方法 quote_shortable_stocks。
请求 ShortInterestRequest
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| symbols | string[] | 是 | 股票代码列表 |
| lang | string | 否 | 语言 |
返回
Promise<ShortInterest[]>(symbol / settlementDate / shortInterest / avgDailyVolume / daysToCover / percentOfFloat / shortInterestPrevious / percentChange)。
示例
const si = await qc.getShortInterest({ symbols: ['TSLA'] });getStockBroker 获取港股经纪商队列
qc.getStockBroker(req: StockBrokerRequest): Promise<StockBroker | undefined>
说明
获取港股指定股票的经纪商盘口队列(需港股 Level2 牌照)。wire 方法 stock_broker。
请求 StockBrokerRequest
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| symbol | string | 是 | 股票代码(单个) |
| limit | number | 否 | 每档最大经纪商数 |
| secType | string | 否 | 证券类型 |
| lang | string | 否 | 语言 |
返回
Promise<StockBroker | undefined>(symbol / levelAskList / levelBidList;每档 StockBrokerItem 含 level / price / brokers: BrokerDetail[])。
示例
const sb = await qc.getStockBroker({ symbol: '00700', limit: 40 });
console.log(`askLevels=${sb?.levelAskList?.length} bidLevels=${sb?.levelBidList?.length}`);getStockIndustry 获取股票所属行业
qc.getStockIndustry(req: StockIndustryRequest): Promise<StockIndustry[]>
说明
查询股票所属的 GICS 行业分类。wire 方法 stock_industry。
请求 StockIndustryRequest
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| symbol | string | 是 | 股票代码 |
| market | string | 否 | 市场 |
| secType | string | 否 | 证券类型 |
| lang | string | 否 | 语言 |
返回
Promise<StockIndustry[]>(symbol / gSector / gGroup / gInd / gSubInd / level)。
示例
const si = await qc.getStockIndustry({ symbol: 'AAPL', market: 'US' });getQuotePermission 查询行情权限(带日期范围)
qc.getQuotePermission(req: QuotePermissionRequest): Promise<QuotePermission[]>
说明
查询账户行情权限。与无参的 grabQuotePermission 不同:此方法支持传入日期范围,返回历史有效的权限明细。wire 方法 get_quote_permission。
请求 QuotePermissionRequest
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| beginDate | string | 否 | 起始日期 'yyyyMMdd' |
| endDate | string | 否 | 结束日期 'yyyyMMdd' |
| lang | string | 否 | 语言 |
示例
const perms = await qc.getQuotePermission({
beginDate: '20250101',
endDate: '20251231',
});getKlineQuota 查询 K 线调用配额
qc.getKlineQuota(req: KlineQuotaRequest): Promise<KlineQuota[]>
说明
查询 K 线接口剩余调用配额。wire 方法 kline_quota。
请求 KlineQuotaRequest
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| withDetails | boolean | 否 | 是否返回每个 symbol 的明细 |
| lang | string | 否 | 语言 |
返回
Promise<KlineQuota[]>(method / used / quota / detail;每个 KlineQuotaDetail 含 symbol / market / usedBars / quotaBars / lastAccess)。
示例
const quota = await qc.getKlineQuota({ withDetails: true });
for (const q of quota) {
console.log(`${q.method} used=${q.used}/${q.quota}`);
}期权行情 (v0.4.0 新增)
所有期权扩展方法均复用 OptionQueryItem 嵌套结构用于精确定位单份期权合约:
interface OptionQueryItem {
symbol?: string;
expiry?: number; // ms timestamp
strike?: string;
right?: string; // 'CALL' / 'PUT'
period?: string; // 仅 K 线 / 分时用到
beginTime?: number;
endTime?: number;
limit?: number;
beginIndex?: number;
endIndex?: number;
pageToken?: string;
}getOptionBars 获取期权 K 线
qc.getOptionBars(req: OptionBarsRequest): Promise<Kline[]>
请求 OptionBarsRequest:optionQuery: OptionQueryItem[] / market / lang。wire 方法 option_kline(v2.0)。
示例
const bars = await qc.getOptionBars({
optionQuery: [{
symbol: 'AAPL', expiry: 1750291200000, strike: '200', right: 'CALL', period: 'day',
}],
market: 'US',
});getOptionTradeTicks 获取期权逐笔
qc.getOptionTradeTicks(req: OptionTradeTicksRequest): Promise<TradeTick[]>
请求:contracts: OptionQueryItem[] / lang。wire 方法 option_trade_tick。
示例
const ticks = await qc.getOptionTradeTicks({
contracts: [{ symbol: 'AAPL', expiry: 1750291200000, strike: '200', right: 'CALL' }],
});getOptionTimeline 获取期权分时
qc.getOptionTimeline(req: OptionTimelineRequest): Promise<Timeline[]>
请求:optionQuery: OptionQueryItem[] / market / lang。wire 方法 option_timeline。
getOptionDepth 获取期权盘口
qc.getOptionDepth(req: OptionDepthRequest): Promise<Depth[]>
请求:optionBasic: OptionQueryItem[] / market / lang。wire 方法 option_depth。
getOptionSymbols 获取期权代码列表
qc.getOptionSymbols(req: OptionSymbolsRequest): Promise<OptionSymbol[]>
请求 OptionSymbolsRequest:market / lang。wire 方法 option_symbol。
返回
Promise<OptionSymbol[]>(symbol / market / nameCN / nameEN)。
示例
const syms = await qc.getOptionSymbols({ market: 'US' });getOptionAnalysis 获取期权波动率分析
qc.getOptionAnalysis(req: OptionAnalysisRequest): Promise<OptionAnalysis[]>
请求 OptionAnalysisRequest
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| symbols | string[] | 是 | 标的代码 |
| market | string | 否 | 市场 |
| period | string | 否 | 历史波动率周期 |
| requireVolatilityList | boolean | 否 | 是否返回历史波动率时序 |
| lang | string | 否 | 语言 |
返回
Promise<OptionAnalysis[]>(symbol / historicalVol30D / historicalVol60D / historicalVol90D / impliedVol / volatilityList)。
示例
const res = await qc.getOptionAnalysis({
symbols: ['AAPL'],
market: 'US',
});期货行情 (v0.4.0 新增)
getFutureContract 按合约代码查合约
qc.getFutureContract(req: FutureContractSingleRequest): Promise<FutureContractInfo[]>
请求 FutureContractSingleRequest:contractCode / type / lang。wire 方法 future_contract_by_contract_code。
示例
const cs = await qc.getFutureContract({ contractCode: 'CL2609' });getAllFutureContracts 按品种查全部合约
qc.getAllFutureContracts(req: AllFutureContractsRequest): Promise<FutureContractInfo[]>
请求 AllFutureContractsRequest:type / exchange / lang。wire 方法 future_contracts。
示例
const cs = await qc.getAllFutureContracts({ type: 'CL' });getCurrentFutureContract 查当前主力合约
qc.getCurrentFutureContract(req: FutureContractSingleRequest): Promise<FutureContractInfo | undefined>
示例
const c = await qc.getCurrentFutureContract({ type: 'CL' });
console.log(`current main: ${c?.contractCode}`);getFutureContinuousContracts 连续合约
qc.getFutureContinuousContracts(req: FutureContinuousContractsRequest): Promise<FutureContractInfo[]>
请求:type / lang。wire 方法 future_continuous_contracts。
getFutureHistoryMainContract 主力合约历史
qc.getFutureHistoryMainContract(req: FutureHistoryMainContractRequest): Promise<FutureMainContractHistory[]>
请求 FutureHistoryMainContractRequest
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| contractCodes | string[] | 是 | 合约代码列表 |
| beginTime | number | 否 | 起始毫秒时间戳 |
| endTime | number | 否 | 结束毫秒时间戳 |
| lang | string | 否 | 语言 |
返回
Promise<FutureMainContractHistory[]>(contractCode / symbol / beginDate / endDate)。
getFutureBars 获取期货 K 线(索引分页版)
qc.getFutureBars(req: FutureBarsRequest): Promise<FutureKline[]>
请求 FutureBarsRequest
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| contractCodes | string[] | 否 | 合约代码列表 |
| contractCode | string | 否 | 单个合约代码 |
| period | string | 是 | 周期 |
| beginTime | number | 否 | 起始毫秒时间戳 |
| endTime | number | 否 | 结束毫秒时间戳 |
| beginIndex / endIndex | number | 否 | 索引分页 |
| limit | number | 否 | 返回条数上限 |
| pageToken | string | 否 | 分页 token |
| lang | string | 否 | 语言 |
示例
const bars = await qc.getFutureBars({
contractCodes: ['CL2609'],
period: 'day',
limit: 200,
});getFutureBarsByPage 客户端分页期货 K 线
qc.getFutureBarsByPage(req: FutureBarsByPageRequest): Promise<FutureKlineItem[]>
请求 FutureBarsByPageRequest
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| contractCode | string | 是 | 合约代码 |
| period | string | 是 | 周期 |
| beginTime | number | 否 | 起始毫秒时间戳 |
| endTime | number | 否 | 结束毫秒时间戳 |
| totalSize | number | 否 | 想获取的总条数 |
| pageSize | number | 否 | 每页条数 |
| lang | string | 否 | 语言 |
getFutureTradeTicks 获取期货逐笔
qc.getFutureTradeTicks(req: FutureTradeTicksRequest): Promise<FutureTradeTickItem[]>
请求 FutureTradeTicksRequest
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| contractCode | string | 是 | 合约代码 |
| beginIndex / endIndex | number | 否 | 索引分页 |
| limit | number | 否 | 返回条数上限 |
| lang | string | 否 | 语言 |
返回
Promise<FutureTradeTickItem[]>(contractCode / index / time / price / volume / direction)。wire 方法 future_tick(v3.0)。
getFutureDepth 获取期货盘口
qc.getFutureDepth(req: FutureDepthRequest): Promise<FutureDepth[]>
请求:contractCodes: string[] / lang。wire 方法 future_depth。
返回
Promise<FutureDepth[]>(contractCode / timestamp / asks / bids)。
getFutureTradingTimes 获取期货交易时段
qc.getFutureTradingTimes(req: FutureTradingTimesRequest): Promise<FutureTradingTime | undefined>
请求 FutureTradingTimesRequest
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| contractCode | string | 是 | 合约代码 |
| tradingDate | string | 否 | 交易日 |
| lang | string | 否 | 语言 |
返回
Promise<FutureTradingTime | undefined>(contractCode / bizDate / zone / tradingTimes: FutureTradingSegment[];每段含 start / end / type)。wire 方法 future_trading_date。
基金 (v0.4.0 新增)
getFundSymbols 获取基金代码列表
qc.getFundSymbols(req: FundSymbolsRequest): Promise<string[]>
请求:lang。wire 方法 fund_all_symbols。
getFundContracts 获取基金合约资料
qc.getFundContracts(req: FundContractsRequest): Promise<FundContractInfo[]>
请求:symbols: string[] / lang。wire 方法 fund_contracts。
返回
Promise<FundContractInfo[]>(symbol / name / currency / fundType / inception / netAssetVal / expenseRatio)。
getFundQuote 获取基金实时净值
qc.getFundQuote(req: FundQuoteRequest): Promise<FundQuote[]>
请求:symbols: string[] / lang。wire 方法 fund_quote。
返回
Promise<FundQuote[]>(symbol / latestNav / change / changeRate / date)。
示例
const q = await qc.getFundQuote({ symbols: ['SPY'] });getFundHistoryQuote 获取基金历史净值
qc.getFundHistoryQuote(req: FundHistoryQuoteRequest): Promise<FundHistoryQuote[]>
请求 FundHistoryQuoteRequest
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| symbols | string[] | 是 | 基金代码列表 |
| beginTime | number | 否 | 起始毫秒时间戳 |
| endTime | number | 否 | 结束毫秒时间戳 |
| limit | number | 否 | 返回条数上限 |
| lang | string | 否 | 语言 |
返回
Promise<FundHistoryQuote[]>(symbol / date / nav)。wire 方法 fund_history_quote。
窝轮 (v0.4.0 新增)
getWarrantBriefs 获取窝轮报价
qc.getWarrantBriefs(req: WarrantBriefsRequest): Promise<WarrantBrief[]>
请求:symbols: string[] / lang。wire 方法 warrant_briefs。
返回
Promise<WarrantBrief[]>(symbol / name / latestPrice / change / changeRate / volume / amount / underlying / issuer / expiryDate / strikePrice / warrantType)。
getWarrantFilter 窝轮筛选
qc.getWarrantFilter(req: WarrantFilterRequest): Promise<WarrantFilterResult | undefined>
请求 WarrantFilterRequest
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| symbol | string | 是 | 标的代码 |
| page / pageSize | number | 否 | 分页 |
| sortFieldName / sortDir | string | 否 | 排序 |
| issuerName | string | 否 | 发行商过滤 |
| expireYm | string | 否 | 到期年月过滤('yyyyMM') |
| lang | string | 否 | 语言 |
返回
Promise<WarrantFilterResult | undefined>(total / items / pageSize / page)。wire 方法 warrant_filter。
行业 (v0.4.0 新增)
getIndustryList 获取行业列表
qc.getIndustryList(req: IndustryListRequest): Promise<IndustryItem[]>
请求 IndustryListRequest:industryLevel / lang。wire 方法 industry_list。
返回
Promise<IndustryItem[]>(id / name / level)。
getIndustryStocks 获取行业下股票
qc.getIndustryStocks(req: IndustryStocksRequest): Promise<IndustryStock[]>
请求 IndustryStocksRequest:industryId / market / lang。wire 方法 industry_stock_list。
返回
Promise<IndustryStock[]>(symbol / name / industryId / change / changeRate)。
财务与日历 (v0.4.0 新增)
getFinancialCurrency 获取财报币种
qc.getFinancialCurrency(req: FinancialCurrencyRequest): Promise<FinancialCurrency[]>
请求:symbols: string[] / market / lang。wire 方法 financial_currency。
返回
Promise<FinancialCurrency[]>(symbol / market / currency)。
getFinancialExchangeRate 获取汇率
qc.getFinancialExchangeRate(req: FinancialExchangeRateRequest): Promise<ExchangeRate[]>
请求 FinancialExchangeRateRequest
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| currencyList | string[] | 是 | 币种列表,如 ['USD', 'HKD'] |
| beginDate | string | 否 | 起始日期 'yyyyMMdd' |
| endDate | string | 否 | 结束日期 'yyyyMMdd' |
| timezone | string | 否 | 时区 |
| lang | string | 否 | 语言 |
注意:
beginDate/endDate的格式是'yyyyMMdd'(没有短横线),与 K 线的毫秒时间戳不同。
返回
Promise<ExchangeRate[]>(currency / date / rate / baseCurrency)。wire 方法 financial_exchange_rate。
示例
const rates = await qc.getFinancialExchangeRate({
currencyList: ['HKD', 'EUR'],
beginDate: '20250101',
endDate: '20250131',
});getTradingCalendar 获取交易日历
qc.getTradingCalendar(req: TradingCalendarRequest): Promise<TradingCalendarItem[]>
请求 TradingCalendarRequest
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| market | string | 是 | 市场 |
| beginDate | string | 否 | 起始日期 'yyyy-MM-dd' |
| endDate | string | 否 | 结束日期 'yyyy-MM-dd' |
| lang | string | 否 | 语言 |
返回
Promise<TradingCalendarItem[]>(market / date / isTrading / sessionType)。wire 方法 trading_calendar。
示例
const cal = await qc.getTradingCalendar({
market: 'US',
beginDate: '2025-01-01',
endDate: '2025-12-31',
});Updated 17 days ago
