行情查询

Go SDK 通过 QuoteClient 提供全部行情接口,所有方法都返回强类型结构体(在 model 包中定义),无需手动 json.Unmarshal

完整可运行示例:

package main

import (
	"fmt"
	"log"

	"github.com/tigerfintech/openapi-go-sdk/client"
	"github.com/tigerfintech/openapi-go-sdk/config"
	"github.com/tigerfintech/openapi-go-sdk/quote"
)

func main() {
	cfg, err := config.NewClientConfig()
	if err != nil {
		log.Fatal(err)
	}

	// 使用行情专用 HTTP 客户端(自动使用行情服务器地址)
	qc := quote.NewQuoteClient(client.NewQuoteHttpClient(cfg))

	// 市场状态
	states, err := qc.GetMarketState("US")
	if err != nil {
		log.Fatal(err)
	}
	for _, s := range states {
		fmt.Printf("%s status=%s openTime=%s\n", s.Market, s.MarketStatus, s.OpenTime)
	}

	// 实时报价
	briefs, err := qc.GetBrief(model.BriefRequest{Symbols: []string{"AAPL", "TSLA"}})
	if err != nil {
		log.Fatal(err)
	}
	for _, b := range briefs {
		fmt.Printf("%s latestPrice=%.2f change=%.2f\n", b.Symbol, b.LatestPrice, b.Change)
	}

	// K 线
	klines, err := qc.GetKline("AAPL", "day")
	if err != nil {
		log.Fatal(err)
	}
	if len(klines) > 0 {
		fmt.Printf("%s bars=%d\n", klines[0].Symbol, len(klines[0].Items))
	}
}

基础行情

GetMarketState 获取市场状态

qc.GetMarketState(market string) ([]model.MarketState, error)

说明

查询指定市场的当前交易状态。

参数

参数名类型是否必填描述
marketstring市场代码:US / HK / CN / SG

返回

[]model.MarketState

字段类型描述
Marketstring市场代码
MarketStatusstring市场状态文本,如 "Trading" / "Not Yet Opened"
Statusstring状态枚举,如 NOT_YET_OPEN / TRADING
OpenTimestring下次开盘时间文本

示例

states, err := qc.GetMarketState("US")
if err != nil {
    log.Fatal(err)
}
for _, s := range states {
    fmt.Printf("%s %s %s\n", s.Market, s.MarketStatus, s.OpenTime)
}

GetBrief 获取实时报价

qc.GetBrief(req model.BriefRequest) ([]model.Brief, error)

v0.3.0 Breaking:由位置参数 symbols []string 改为 Request 结构体。

说明

批量获取股票的实时快照行情。

请求 model.BriefRequest

字段类型是否必填描述
Symbols[]string股票代码列表
IncludeHourTrading*bool是否包含盘前盘后
SecTypestring证券类型,STK / OPT
Langstring语言,zh_CN / zh_TW / en_US

返回

[]model.Brief

字段类型描述
Symbolstring代码
LatestPricefloat64最新价
PreClosefloat64昨收
Open / High / Low / Closefloat64开 / 高 / 低 / 收
Change / ChangeRatefloat64涨跌额 / 涨跌幅
Volumeint64成交量
BidPrice / AskPricefloat64买一 / 卖一价
BidSize / AskSizeint64买一 / 卖一量
LatestTimeint64最新成交时间(毫秒时间戳)
Statusstring交易状态

示例

briefs, err := qc.GetBrief(model.BriefRequest{
    Symbols: []string{"AAPL", "TSLA", "00700"},
})
if err != nil {
    log.Fatal(err)
}
for _, b := range briefs {
    fmt.Printf("%s %.2f (%.2f%%)\n", b.Symbol, b.LatestPrice, b.ChangeRate*100)
}

GetKline 获取 K 线数据

qc.GetKline(symbol, period string) ([]model.Kline, error)

说明

获取指定股票的历史 K 线数据。

参数

参数名类型是否必填描述
symbolstring股票代码
periodstringK 线周期:day / week / month / year / 1min / 5min / 15min / 30min / 60min

返回

[]model.Kline

每条 Kline 包含 SymbolPeriodItems []KlineItem;每个 KlineItem 包含 Time / Open / High / Low / Close / Volume / Amount

示例

klines, err := qc.GetKline("AAPL", "day")
if err != nil {
    log.Fatal(err)
}
if len(klines) > 0 {
    for _, k := range klines[0].Items[:5] {
        fmt.Printf("%d O=%.2f H=%.2f L=%.2f C=%.2f V=%d\n", k.Time, k.Open, k.High, k.Low, k.Close, k.Volume)
    }
}

GetTimeline 获取分时数据

qc.GetTimeline(symbols []string) ([]model.Timeline, error)

说明

获取当日分时走势数据。

参数

参数名类型是否必填描述
symbols[]string股票代码列表

返回

[]model.Timeline

每个 TimelineSymbol / Period / PreClose / Intraday / PreHours / AfterHours。后三个是 *TimelineBucket,内含 Items []TimelineItemTime / Price / Volume / AvgPrice)。

示例

tl, err := qc.GetTimeline([]string{"AAPL"})
if err != nil {
    log.Fatal(err)
}
if len(tl) > 0 && tl[0].Intraday != nil {
    fmt.Printf("intraday points=%d\n", len(tl[0].Intraday.Items))
}

GetTradeTick 获取逐笔成交

qc.GetTradeTick(req model.TradeTickRequest) ([]model.TradeTick, error)

v0.3.0 Breaking:由位置参数 symbols []string 改为 Request 结构体。

说明

获取最新逐笔成交记录。

请求 model.TradeTickRequest

字段类型是否必填描述
Symbols[]string股票代码列表
BeginIndexint起始序号
EndIndexint结束序号
Limitint返回条数上限
Langstring语言

返回

[]model.TradeTick

每个 TradeTickSymbol / BeginIndex / EndIndex / Items []TradeTickItemTradeTickItemTime / Price / Volume / Type

示例

ticks, err := qc.GetTradeTick(model.TradeTickRequest{Symbols: []string{"AAPL"}})
if err != nil {
    log.Fatal(err)
}
if len(ticks) > 0 {
    for _, t := range ticks[0].Items[:5] {
        fmt.Printf("%d price=%.2f vol=%d type=%s\n", t.Time, t.Price, t.Volume, t.Type)
    }
}

GetQuoteDepth 获取深度行情

qc.GetQuoteDepth(req model.DepthQuoteRequest) ([]model.Depth, error)

v0.3.0 Breaking:由位置参数 (symbols, market) 改为 Request 结构体,且 symbols 支持批量。

说明

获取盘口深度数据。仅支持 US / HK 市场。

请求 model.DepthQuoteRequest

字段类型是否必填描述
Symbols[]string股票代码列表
Marketstring市场:US / HK
TradeSessionstring交易时段
Langstring语言

返回

[]model.Depth

每个 DepthSymbol / Asks / Bids。每档 DepthLevelPrice / Count / Volume

示例

depths, err := qc.GetQuoteDepth(model.DepthQuoteRequest{
    Symbols: []string{"AAPL"},
    Market:  "US",
})
if err != nil {
    log.Fatal(err)
}
if len(depths) > 0 {
    fmt.Printf("asks=%d bids=%d\n", len(depths[0].Asks), len(depths[0].Bids))
}

期权行情

GetOptionExpiration 获取期权到期日

qc.GetOptionExpiration(symbol string) ([]model.OptionExpiration, error)

说明

获取标的的所有期权到期日列表。

返回

[]model.OptionExpiration

字段类型描述
Symbolstring标的代码
Dates[]string到期日列表(YYYY-MM-DD
Timestamps[]int64到期日毫秒时间戳列表
OptionSymbols[]string期权标的代码列表

示例

exps, err := qc.GetOptionExpiration("AAPL")
if err != nil {
    log.Fatal(err)
}
if len(exps) > 0 {
    fmt.Printf("%s dates=%d first=%s\n", exps[0].Symbol, len(exps[0].Dates), exps[0].Dates[0])
}

GetOptionChain 获取期权链

qc.GetOptionChain(symbol, expiry string) ([]model.OptionChain, error)

说明

获取指定标的和到期日的完整期权链。

参数

参数名类型是否必填描述
symbolstring标的代码
expirystring到期日,格式 YYYY-MM-DD

返回

[]model.OptionChain

每个 OptionChainSymbol / Expiry / Items []OptionChainRow。每个 OptionChainRowPut / Call*OptionLeg,含 Identifier / Strike / Right / BidPrice / AskPrice / LatestPrice / Delta / Gamma / Theta / Vega / ImpliedVol 等)。

示例

chain, err := qc.GetOptionChain("AAPL", "2026-06-19")
if err != nil {
    log.Fatal(err)
}
if len(chain) > 0 {
    for _, row := range chain[0].Items {
        if row.Call != nil {
            fmt.Printf("strike=%s call=%.2f IV=%.3f\n", row.Call.Strike, row.Call.LatestPrice, row.Call.ImpliedVol)
        }
    }
}

GetOptionBrief 获取期权报价

qc.GetOptionBrief(identifiers []string) ([]model.Brief, error)

说明

批量获取期权合约的实时报价。

参数

参数名类型是否必填描述
identifiers[]string期权标识列表,美股格式:"AAPL 260619C00200000"(注意双空格)

返回

[]model.Brief(与股票行情复用同一结构,额外带 Expiry / Strike / Right / OpenInterest 等期权字段)

示例

briefs, err := qc.GetOptionBrief([]string{"AAPL  260619C00200000"})
if err != nil {
    log.Fatal(err)
}
for _, b := range briefs {
    fmt.Printf("%s latest=%.2f oi=%d\n", b.Symbol, b.LatestPrice, b.OpenInterest)
}

GetOptionKline 获取期权 K 线

qc.GetOptionKline(identifier, period string) ([]model.Kline, error)

说明

获取指定期权合约的历史 K 线数据。

参数

参数名类型是否必填描述
identifierstring期权标识
periodstringK 线周期,同股票 K 线

返回

[]model.Kline(结构同 GetKline

示例

ks, err := qc.GetOptionKline("AAPL  260619C00200000", "day")
if err != nil {
    log.Fatal(err)
}
if len(ks) > 0 {
    fmt.Printf("bars=%d\n", len(ks[0].Items))
}

期货行情

GetFutureExchange 获取期货交易所列表

qc.GetFutureExchange() ([]model.FutureExchange, error)

说明

获取平台支持的所有期货交易所列表。

返回

[]model.FutureExchange

字段类型描述
Codestring交易所代码,如 CME / HKEX
Namestring交易所名称
ZoneIDstring时区,如 America/Chicago

示例

exs, err := qc.GetFutureExchange()
if err != nil {
    log.Fatal(err)
}
for _, e := range exs {
    fmt.Printf("%s %s (%s)\n", e.Code, e.Name, e.ZoneID)
}

GetFutureContracts 获取期货合约列表

qc.GetFutureContracts(exchange string) ([]model.FutureContractInfo, error)

说明

获取指定交易所下所有可交易的期货合约列表。

参数

参数名类型是否必填描述
exchangestring交易所代码,如 CME

返回

[]model.FutureContractInfo

字段类型描述
ContractCodestring合约代码,如 MEUR2609
Typestring品种代码,如 MEUR
Namestring合约名称
ContractMonthstring交割月
LastTradingDatestring最后交易日
Multiplierfloat64合约乘数
MinTickfloat64最小价格变动
Currencystring货币
Exchangestring交易所
Continuous / Tradebool是否连续合约 / 是否可交易

示例

cs, err := qc.GetFutureContracts("CME")
if err != nil {
    log.Fatal(err)
}
fmt.Printf("contracts=%d first=%s\n", len(cs), cs[0].ContractCode)

GetFutureRealTimeQuote 获取期货实时报价

qc.GetFutureRealTimeQuote(req model.FutureBriefRequest) ([]model.FutureQuote, error)

v0.3.0 Breaking:由位置参数 contractCodes []string 改为 Request 结构体。

说明

批量获取期货合约的实时行情数据。

请求 model.FutureBriefRequest

字段类型是否必填描述
ContractCodes[]string期货合约代码列表,如 ["CL2609", "ES2506"]
Langstring语言

返回

[]model.FutureQuote

字段类型描述
ContractCodestring合约代码
LatestPrice / LatestSize / LatestTimefloat64/int64最新成交
BidPrice / AskPrice / BidSize / AskSizefloat64/int64买卖一档
OpenInterest / OpenInterestChangeint64未平仓合约量 / 变化
Open / High / Low / Settlement / AvgPricefloat64价格
Volumeint64成交量

示例

q, err := qc.GetFutureRealTimeQuote(model.FutureBriefRequest{
    ContractCodes: []string{"CL2609"},
})
if err != nil {
    log.Fatal(err)
}
for _, f := range q {
    fmt.Printf("%s latest=%.4f oi=%d\n", f.ContractCode, f.LatestPrice, f.OpenInterest)
}

GetFutureKline 获取期货 K 线

qc.GetFutureKline(req model.FutureKlineRequest) ([]model.FutureKline, error)

说明

获取期货合约的历史 K 线数据。参数多,使用 Request 结构体。

请求 model.FutureKlineRequest

字段类型是否必填描述
ContractCodes[]string合约代码列表
Periodstring周期:day / week / 1min / 5min / 15min / 30min / 60min
BeginTimeint64起始毫秒时间戳;0-1 表示不限制
EndTimeint64结束毫秒时间戳;0-1 表示不限制
Limitint返回条数上限
PageTokenstring分页 token

返回

[]model.FutureKline

每条 FutureKlineItems []FutureKlineItem(含 Time / Open / Close / High / Low / Volume / OpenInterest / Settlement)与 NextPageToken

示例

ks, err := qc.GetFutureKline(model.FutureKlineRequest{
    ContractCodes: []string{"CL2609"},
    Period:        "day",
    BeginTime:     -1,
    EndTime:       -1,
})
if err != nil {
    log.Fatal(err)
}
if len(ks) > 0 {
    fmt.Printf("bars=%d\n", len(ks[0].Items))
}

基本面数据

GetFinancialDaily 获取日级财务数据

qc.GetFinancialDaily(req model.FinancialDailyRequest) ([]model.FinancialDailyItem, error)

说明

获取股票的每日财务指标数据(如流通股数等)。

请求 model.FinancialDailyRequest

字段类型是否必填描述
Symbols[]string股票代码列表
Marketstring市场:US / HK / CN
Fields[]string查询字段,如 ["shares_outstanding"]
BeginDatestring起始日期 YYYY-MM-DD
EndDatestring结束日期 YYYY-MM-DD

返回

[]model.FinancialDailyItemSymbol / Field / Date / Value

示例

items, err := qc.GetFinancialDaily(model.FinancialDailyRequest{
    Symbols:   []string{"AAPL"},
    Market:    "US",
    Fields:    []string{"shares_outstanding"},
    BeginDate: "2025-01-01",
    EndDate:   "2025-01-31",
})

资金流向

GetCapitalFlow 获取资金流向

qc.GetCapitalFlow(symbol, market, period string) (*model.CapitalFlow, error)

说明

获取股票的资金流向时序数据。

参数

参数名类型是否必填描述
symbolstring股票代码
marketstring市场
periodstring周期:intraday / day / week / month / year / quarter

返回

*model.CapitalFlowSymbol / Period / Items []CapitalFlowItemCapitalFlowItemTime / Timestamp / NetInflow

示例

cf, err := qc.GetCapitalFlow("AAPL", "US", "day")
if err != nil {
    log.Fatal(err)
}
fmt.Printf("%s period=%s rows=%d\n", cf.Symbol, cf.Period, len(cf.Items))

GetCapitalDistribution 获取资金分布

qc.GetCapitalDistribution(symbol, market string) (*model.CapitalDistribution, error)

说明

获取股票当前资金分布快照。

返回

*model.CapitalDistribution

字段类型描述
Symbolstring代码
NetInflowfloat64净流入
InAll / InBig / InMid / InSmallfloat64总流入 / 大 / 中 / 小单流入
OutAll / OutBig / OutMid / OutSmallfloat64总流出 / 大 / 中 / 小单流出

示例

cd, err := qc.GetCapitalDistribution("AAPL", "US")
if err != nil {
    log.Fatal(err)
}
fmt.Printf("%s netInflow=%.2f\n", cd.Symbol, cd.NetInflow)

选股器

MarketScanner 选股器

qc.MarketScanner(req model.MarketScannerRequest) (*model.ScannerResult, error)

说明

根据自定义条件筛选股票。

请求 model.MarketScannerRequest

字段类型是否必填描述
Marketstring市场
Pageint页码(从 0 开始)
PageSizeint每页数量
CursorIDstring分页游标
BaseFilterList[]map[string]interface基础字段过滤
AccumulateFilterList[]map[string]interface累积字段过滤
FinancialFilterList[]map[string]interface财务字段过滤
MultiTagsFilterList[]map[string]interface多标签过滤
SortFieldDatamap[string]interface排序字段

返回

*model.ScannerResultPage / TotalPage / TotalCount / PageSize / CursorID / Items []ScannerResultItem

每个 ScannerResultItemSymbol / Market 以及 BaseDataList / AccumulateDataList / FinancialDataList / MultiTagDataList 四类字段数据。

示例

res, err := qc.MarketScanner(model.MarketScannerRequest{
    Market:   "US",
    Page:     0,
    PageSize: 10,
})
if err != nil {
    log.Fatal(err)
}
fmt.Printf("page=%d/%d total=%d items=%d\n", res.Page, res.TotalPage, res.TotalCount, len(res.Items))

GrabQuotePermission 获取行情权限

qc.GrabQuotePermission() ([]model.QuotePermission, error)

说明

查询当前账户开通的行情权限列表。

返回

[]model.QuotePermissionName / ExpireAt

示例

perms, err := qc.GrabQuotePermission()
if err != nil {
    log.Fatal(err)
}
for _, p := range perms {
    fmt.Printf("%s expireAt=%d\n", p.Name, p.ExpireAt)
}

GetMarketScannerTags 获取选股扫描器标签

qc.GetMarketScannerTags(req model.MarketScannerTagsRequest) (*model.MarketScannerTags, error)

说明

查询选股扫描器(MarketScanner)可用的 multi_tags 字段及枚举值。

请求Market / MultiTagsFields []string / Lang

返回

*model.MarketScannerTagsTagFields / Tags []MarketScannerTagMarketScannerTagField / Name / Values


股票基础 (v0.3.0 新增)

GetSymbols 获取市场全部代码

qc.GetSymbols(req model.SymbolsRequest) ([]string, error)

说明

获取指定市场的全部合约代码列表(仅 symbol)。

请求 model.SymbolsRequest

字段类型是否必填描述
Marketstring市场:US / HK / CN / SG
SecTypestring证券类型
IncludeOtcbool是否包含 OTC
Langstring语言

返回

[]string symbol 列表。

示例

symbols, err := qc.GetSymbols(model.SymbolsRequest{Market: "US"})
if err != nil {
    log.Fatal(err)
}
fmt.Printf("total=%d first=%s\n", len(symbols), symbols[0])

GetSymbolNames 获取代码 + 名称

qc.GetSymbolNames(req model.SymbolsRequest) ([]model.SymbolName, error)

说明

获取指定市场的合约代码及中英文名称。

返回

[]model.SymbolNameSymbol / Name / Market

示例

items, err := qc.GetSymbolNames(model.SymbolsRequest{Market: "US"})
if err != nil {
    log.Fatal(err)
}
for _, it := range items[:5] {
    fmt.Printf("%s %s\n", it.Symbol, it.Name)
}

GetTradeMetas 获取交易元数据

qc.GetTradeMetas(req model.TradeMetasRequest) ([]model.TradeMeta, error)

说明

获取合约的交易元数据(最小变动价位、每手股数、是否可融可空等)。

请求 model.TradeMetasRequest

字段类型是否必填描述
Symbols[]string股票代码列表
Langstring语言

返回

[]model.TradeMetaSymbol / LotSize / MinTick / SpreadScale / ShortableFlag / MarginableFlag

示例

metas, err := qc.GetTradeMetas(model.TradeMetasRequest{Symbols: []string{"AAPL", "00700"}})
if err != nil {
    log.Fatal(err)
}
for _, m := range metas {
    fmt.Printf("%s lot=%d minTick=%.4f\n", m.Symbol, m.LotSize, m.MinTick)
}

GetStockDelayBriefs 获取延迟行情

qc.GetStockDelayBriefs(req model.StockDelayBriefsRequest) ([]model.Brief, error)

说明

获取延迟行情快照(结构与实时 GetBrief 相同)。

请求 model.StockDelayBriefsRequest

字段类型是否必填描述
Symbols[]string股票代码列表
SecTypestring证券类型
Langstring语言

示例

briefs, err := qc.GetStockDelayBriefs(model.StockDelayBriefsRequest{
    Symbols: []string{"AAPL"},
})

GetBars 获取 K 线(完整版)

qc.GetBars(req model.BarsRequest) ([]model.Kline, error)

说明

GetKline 更完整的 K 线接口,支持时间范围、分页、前复权/后复权、盘前盘后等。

字段命名约定BeginTime / EndTime毫秒时间戳(wire begin_time/end_time)。

请求 model.BarsRequest

字段类型是否必填描述
Symbols[]string股票代码列表
Periodstring周期:day / week / month / year / 1min / 5min / 15min / 30min / 60min
Rightstring复权类型:br / nr
BeginTimeint64起始毫秒时间戳
EndTimeint64结束毫秒时间戳
Limitint返回条数上限
BeginIndexint起始索引(与时间范围二选一)
EndIndexint结束索引
PageTokenstring分页 token
TradeSessionstring交易时段
Datestring指定日期
WithFundamental*bool是否带基本面
SecTypestring证券类型
Langstring语言

返回

[]model.Kline(结构同 GetKline

示例

bars, err := qc.GetBars(model.BarsRequest{
    Symbols: []string{"AAPL"},
    Period:  "day",
    Limit:   100,
})
if err != nil {
    log.Fatal(err)
}
if len(bars) > 0 {
    fmt.Printf("bars=%d\n", len(bars[0].Items))
}

GetBarsByPage 客户端分页 K 线

qc.GetBarsByPage(req model.BarsByPageRequest) ([]model.KlineItem, error)

说明

客户端分页包装:循环调用 GetBars 直到拉取到指定数量的 K 线,按时间升序返回合并结果。

请求 model.BarsByPageRequest

字段类型是否必填描述
Symbolstring股票代码(单个)
Periodstring周期
BeginTimeint64起始毫秒时间戳
EndTimeint64结束毫秒时间戳
TotalSizeint想获取的总条数,默认 1000
PageSizeint每页条数,默认 200
Rightstring复权
TradeSessionstring交易时段
Langstring语言

返回

[]model.KlineItem(已扁平化)

示例

items, err := qc.GetBarsByPage(model.BarsByPageRequest{
    Symbol:    "AAPL",
    Period:    "day",
    TotalSize: 500,
    PageSize:  200,
})
fmt.Printf("got %d bars\n", len(items))

GetTimelineHistory 获取历史分时

qc.GetTimelineHistory(req model.TimelineHistoryRequest) ([]model.Timeline, error)

说明

获取历史某一交易日的分时数据。

请求 model.TimelineHistoryRequest

字段类型是否必填描述
Symbols[]string股票代码列表
Datestring日期,格式 yyyy-MM-dd
Rightstring复权
TradeSessionstring交易时段
Langstring语言

返回

[]model.Timeline(结构同 GetTimeline

示例

tl, err := qc.GetTimelineHistory(model.TimelineHistoryRequest{
    Symbols: []string{"AAPL"},
    Date:    "2025-09-01",
})

GetTradeRank 获取成交排行

qc.GetTradeRank(req model.TradeRankRequest) ([]model.TradeRankItem, error)

说明

查询指定市场的成交额/成交量排行榜。

请求 model.TradeRankRequest

字段类型是否必填描述
Marketstring市场
Langstring语言

返回

[]model.TradeRankItemSymbol / Name / LatestPr / Change / ChangeRate / Volume / Amount

示例

rank, err := qc.GetTradeRank(model.TradeRankRequest{Market: "HK"})
for _, r := range rank[:10] {
    fmt.Printf("%s %s amount=%.0f\n", r.Symbol, r.Name, r.Amount)
}

GetShortInterest 获取空头利益

qc.GetShortInterest(req model.ShortInterestRequest) ([]model.ShortInterest, error)

说明

获取美股空头持仓(short interest)数据。

请求 model.ShortInterestRequest

字段类型是否必填描述
Symbols[]string股票代码列表
Langstring语言

返回

[]model.ShortInterestSymbol / SettlementDate / ShortInterest / AvgDailyVolume / DaysToCover / PercentOfFloat / ShortInterestPrevious / PercentChange

示例

si, err := qc.GetShortInterest(model.ShortInterestRequest{Symbols: []string{"TSLA"}})

GetStockBroker 获取港股经纪商队列

qc.GetStockBroker(req model.StockBrokerRequest) (*model.StockBroker, error)

说明

获取港股指定股票的经纪商盘口队列(需港股 Level2 牌照)。

请求 model.StockBrokerRequest

字段类型是否必填描述
Symbolstring股票代码(单个)
Limitint每档最大经纪商数
SecTypestring证券类型
Langstring语言

返回

*model.StockBrokerSymbol / LevelAskList / LevelBidList;每档 StockBrokerItemLevel / Price / Brokers []BrokerDetail

示例

sb, err := qc.GetStockBroker(model.StockBrokerRequest{Symbol: "00700", Limit: 40})
if err != nil {
    log.Fatal(err)
}
fmt.Printf("%s askLevels=%d bidLevels=%d\n", sb.Symbol, len(sb.LevelAskList), len(sb.LevelBidList))

GetStockIndustry 获取股票所属行业

qc.GetStockIndustry(req model.StockIndustryRequest) ([]model.StockIndustry, error)

说明

查询股票所属的 GICS 行业分类。

请求 model.StockIndustryRequest

字段类型是否必填描述
Symbolstring股票代码
Marketstring市场
SecTypestring证券类型
Langstring语言

返回

[]model.StockIndustrySymbol / GSector / GGroup / GInd / GSubInd / Level

示例

si, err := qc.GetStockIndustry(model.StockIndustryRequest{Symbol: "AAPL", Market: "US"})

GetQuotePermission 查询行情权限(带日期范围)

qc.GetQuotePermission(req model.QuotePermissionRequest) ([]model.QuotePermission, error)

说明

查询账户行情权限。与无参的 GrabQuotePermission 不同:此方法支持传入日期范围,返回历史有效的权限明细。

请求 model.QuotePermissionRequest

字段类型是否必填描述
BeginDatestring起始日期 yyyyMMdd
EndDatestring结束日期 yyyyMMdd
Langstring语言

示例

perms, err := qc.GetQuotePermission(model.QuotePermissionRequest{
    BeginDate: "20250101",
    EndDate:   "20251231",
})

GetKlineQuota 查询 K 线调用配额

qc.GetKlineQuota(req model.KlineQuotaRequest) ([]model.KlineQuota, error)

说明

查询 K 线接口剩余调用配额。

请求 model.KlineQuotaRequest

字段类型是否必填描述
WithDetailsbool是否返回每个 symbol 的明细
Langstring语言

返回

[]model.KlineQuotaMethod / Used / Quota / Detail;每个 KlineQuotaDetailSymbol / Market / UsedBars / QuotaBars / LastAccess

示例

quota, err := qc.GetKlineQuota(model.KlineQuotaRequest{WithDetails: true})
for _, q := range quota {
    fmt.Printf("%s used=%d/%d\n", q.Method, q.Used, q.Quota)
}

期权行情 (v0.3.0 新增)

所有期权扩展方法均复用 OptionQueryItem 嵌套结构,用于精确定位单份期权合约:

type OptionQueryItem struct {
    Symbol     string
    Expiry     int64  // ms timestamp
    Strike     string
    Right      string // CALL / PUT
    Period     string // 仅 K 线/分时用到
    BeginTime  int64
    EndTime    int64
    Limit      int
    BeginIndex int
    EndIndex   int
    PageToken  string
}

GetOptionBars 获取期权 K 线

qc.GetOptionBars(req model.OptionBarsRequest) ([]model.Kline, error)

请求 model.OptionBarsRequestOptionQuery []OptionQueryItem / Market / Lang

示例

bars, err := qc.GetOptionBars(model.OptionBarsRequest{
    OptionQuery: []model.OptionQueryItem{{
        Symbol: "AAPL", Expiry: 1750291200000, Strike: "200", Right: "CALL", Period: "day",
    }},
    Market: "US",
})

GetOptionTradeTicks 获取期权逐笔

qc.GetOptionTradeTicks(req model.OptionTradeTicksRequest) ([]model.TradeTick, error)

请求Contracts []OptionQueryItem / Lang

示例

ticks, err := qc.GetOptionTradeTicks(model.OptionTradeTicksRequest{
    Contracts: []model.OptionQueryItem{{Symbol: "AAPL", Expiry: 1750291200000, Strike: "200", Right: "CALL"}},
})

GetOptionTimeline 获取期权分时

qc.GetOptionTimeline(req model.OptionTimelineRequest) ([]model.Timeline, error)

请求OptionQuery []OptionQueryItem / Market / Lang


GetOptionDepth 获取期权盘口

qc.GetOptionDepth(req model.OptionDepthRequest) ([]model.Depth, error)

请求OptionBasic []OptionQueryItem / Market / Lang


GetOptionSymbols 获取期权代码列表

qc.GetOptionSymbols(req model.OptionSymbolsRequest) ([]model.OptionSymbol, error)

请求 model.OptionSymbolsRequestMarket / Lang

返回

[]model.OptionSymbolSymbol / Market / NameCN / NameEN

示例

syms, err := qc.GetOptionSymbols(model.OptionSymbolsRequest{Market: "US"})

GetOptionAnalysis 获取期权波动率分析

qc.GetOptionAnalysis(req model.OptionAnalysisRequest) ([]model.OptionAnalysis, error)

请求 model.OptionAnalysisRequest

字段类型是否必填描述
Symbols[]string标的代码
Marketstring市场
Periodstring历史波动率周期
RequireVolatilityListbool是否返回历史波动率时序
Langstring语言

返回

[]model.OptionAnalysisSymbol / HistoricalVol30D / HistoricalVol60D / HistoricalVol90D / ImpliedVol / VolatilityList

示例

res, err := qc.GetOptionAnalysis(model.OptionAnalysisRequest{
    Symbols: []string{"AAPL"},
    Market:  "US",
})

期货行情 (v0.3.0 新增)

GetFutureContract 按合约代码查合约

qc.GetFutureContract(req model.FutureContractSingleRequest) ([]model.FutureContractInfo, error)

请求 model.FutureContractSingleRequestContractCode / Type / Lang

示例

cs, err := qc.GetFutureContract(model.FutureContractSingleRequest{ContractCode: "CL2609"})

GetAllFutureContracts 按品种查全部合约

qc.GetAllFutureContracts(req model.AllFutureContractsRequest) ([]model.FutureContractInfo, error)

请求 model.AllFutureContractsRequestType / Exchange / Lang

示例

cs, err := qc.GetAllFutureContracts(model.AllFutureContractsRequest{Type: "CL"})

GetCurrentFutureContract 查当前主力合约

qc.GetCurrentFutureContract(req model.FutureContractSingleRequest) (*model.FutureContractInfo, error)

示例

c, err := qc.GetCurrentFutureContract(model.FutureContractSingleRequest{Type: "CL"})
fmt.Printf("current main: %s\n", c.ContractCode)

GetFutureContinuousContracts 连续合约

qc.GetFutureContinuousContracts(req model.FutureContinuousContractsRequest) ([]model.FutureContractInfo, error)

请求Type / Lang


GetFutureHistoryMainContract 主力合约历史

qc.GetFutureHistoryMainContract(req model.FutureHistoryMainContractRequest) ([]model.FutureMainContractHistory, error)

请求 model.FutureHistoryMainContractRequest

字段类型是否必填描述
ContractCodes[]string合约代码列表
BeginTimeint64起始毫秒时间戳
EndTimeint64结束毫秒时间戳
Langstring语言

返回

[]model.FutureMainContractHistoryContractCode / Symbol / BeginDate / EndDate


GetFutureBars 获取期货 K 线(索引分页版)

qc.GetFutureBars(req model.FutureBarsRequest) ([]model.FutureKline, error)

请求 model.FutureBarsRequest

字段类型是否必填描述
ContractCodes[]string合约代码列表
ContractCodestring单个合约代码
Periodstring周期
BeginTimeint64起始毫秒时间戳
EndTimeint64结束毫秒时间戳
BeginIndex / EndIndexint索引分页
Limitint返回条数上限
PageTokenstring分页 token
Langstring语言

示例

bars, err := qc.GetFutureBars(model.FutureBarsRequest{
    ContractCodes: []string{"CL2609"},
    Period:        "day",
    Limit:         200,
})

GetFutureBarsByPage 客户端分页期货 K 线

qc.GetFutureBarsByPage(req model.FutureBarsByPageRequest) ([]model.FutureKlineItem, error)

请求 model.FutureBarsByPageRequest

字段类型是否必填描述
ContractCodestring合约代码
Periodstring周期
BeginTimeint64起始毫秒时间戳
EndTimeint64结束毫秒时间戳
TotalSizeint想获取的总条数
PageSizeint每页条数
Langstring语言

GetFutureTradeTicks 获取期货逐笔

qc.GetFutureTradeTicks(req model.FutureTradeTicksRequest) ([]model.FutureTradeTickItem, error)

请求 model.FutureTradeTicksRequest

字段类型是否必填描述
ContractCodestring合约代码
BeginIndex / EndIndexint索引分页
Limitint返回条数上限
Langstring语言

返回

[]model.FutureTradeTickItemContractCode / Index / Time / Price / Volume / Direction


GetFutureDepth 获取期货盘口

qc.GetFutureDepth(req model.FutureDepthRequest) ([]model.FutureDepth, error)

请求ContractCodes []string / Lang

返回

[]model.FutureDepthContractCode / Timestamp / Asks / Bids


GetFutureTradingTimes 获取期货交易时段

qc.GetFutureTradingTimes(req model.FutureTradingTimesRequest) (*model.FutureTradingTime, error)

请求 model.FutureTradingTimesRequest

字段类型是否必填描述
ContractCodestring合约代码
TradingDatestring交易日
Langstring语言

返回

*model.FutureTradingTimeContractCode / BizDate / Zone / TradingTimes []FutureTradingSegmentFutureTradingSegmentStart / End / Type


基金 (v0.3.0 新增)

GetFundSymbols 获取基金代码列表

qc.GetFundSymbols(req model.FundSymbolsRequest) ([]string, error)

请求Lang


GetFundContracts 获取基金合约资料

qc.GetFundContracts(req model.FundContractsRequest) ([]model.FundContractInfo, error)

请求Symbols []string / Lang

返回

[]model.FundContractInfoSymbol / Name / Currency / FundType / Inception / NetAssetVal / ExpenseRatio


GetFundQuote 获取基金实时净值

qc.GetFundQuote(req model.FundQuoteRequest) ([]model.FundQuote, error)

请求Symbols []string / Lang

返回

[]model.FundQuoteSymbol / LatestNav / Change / ChangeRate / Date

示例

q, err := qc.GetFundQuote(model.FundQuoteRequest{Symbols: []string{"SPY"}})

GetFundHistoryQuote 获取基金历史净值

qc.GetFundHistoryQuote(req model.FundHistoryQuoteRequest) ([]model.FundHistoryQuote, error)

请求 model.FundHistoryQuoteRequest

字段类型是否必填描述
Symbols[]string基金代码列表
BeginTimeint64起始毫秒时间戳
EndTimeint64结束毫秒时间戳
Limitint返回条数上限
Langstring语言

返回

[]model.FundHistoryQuoteSymbol / Date / Nav


窝轮 (v0.3.0 新增)

GetWarrantBriefs 获取窝轮报价

qc.GetWarrantBriefs(req model.WarrantBriefsRequest) ([]model.WarrantBrief, error)

请求Symbols []string / Lang

返回

[]model.WarrantBriefSymbol / Name / LatestPrice / Change / ChangeRate / Volume / Amount / Underlying / Issuer / ExpiryDate / StrikePrice / WarrantType


GetWarrantFilter 窝轮筛选

qc.GetWarrantFilter(req model.WarrantFilterRequest) (*model.WarrantFilterResult, error)

请求 model.WarrantFilterRequest

字段类型是否必填描述
Symbolstring标的代码
Page / PageSizeint分页
SortFieldName / SortDirstring排序
IssuerNamestring发行商过滤
ExpireYmstring到期年月过滤(yyyyMM
Langstring语言

返回

*model.WarrantFilterResultTotal / Items / PageSize / Page


行业 (v0.3.0 新增)

GetIndustryList 获取行业列表

qc.GetIndustryList(req model.IndustryListRequest) ([]model.IndustryItem, error)

请求 model.IndustryListRequestIndustryLevel / Lang

返回

[]model.IndustryItemID / Name / Level


GetIndustryStocks 获取行业下股票

qc.GetIndustryStocks(req model.IndustryStocksRequest) ([]model.IndustryStock, error)

请求 model.IndustryStocksRequestIndustryID / Market / Lang

返回

[]model.IndustryStockSymbol / Name / IndustryID / Change / ChangeRate


财务与日历 (v0.3.0 新增)

GetFinancialCurrency 获取财报币种

qc.GetFinancialCurrency(req model.FinancialCurrencyRequest) ([]model.FinancialCurrency, error)

请求Symbols []string / Market / Lang

返回

[]model.FinancialCurrencySymbol / Market / Currency


GetFinancialExchangeRate 获取汇率

qc.GetFinancialExchangeRate(req model.FinancialExchangeRateRequest) ([]model.ExchangeRate, error)

请求 model.FinancialExchangeRateRequest

字段类型是否必填描述
CurrencyList[]string币种列表,如 ["USD", "HKD"]
BeginDatestring起始日期 yyyyMMdd
EndDatestring结束日期 yyyyMMdd
Timezonestring时区
Langstring语言

注意BeginDate / EndDate 的格式是 yyyyMMdd(没有短横线),与 K 线的毫秒时间戳不同。

返回

[]model.ExchangeRateCurrency / Date / Rate / BaseCurrency

示例

rates, err := qc.GetFinancialExchangeRate(model.FinancialExchangeRateRequest{
    CurrencyList: []string{"HKD", "EUR"},
    BeginDate:    "20250101",
    EndDate:      "20250131",
})

GetTradingCalendar 获取交易日历

qc.GetTradingCalendar(req model.TradingCalendarRequest) ([]model.TradingCalendarItem, error)

请求 model.TradingCalendarRequest

字段类型是否必填描述
Marketstring市场
BeginDatestring起始日期 yyyy-MM-dd
EndDatestring结束日期 yyyy-MM-dd
Langstring语言

返回

[]model.TradingCalendarItemMarket / Date / IsTrading / SessionType

示例

cal, err := qc.GetTradingCalendar(model.TradingCalendarRequest{
    Market:    "US",
    BeginDate: "2025-01-01",
    EndDate:   "2025-12-31",
})