行情查询

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/model"
	"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.GetRealTimeQuote(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(model.KlineRequest{Symbols: []string{"AAPL"}, Period: "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)
}

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",
})

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)
}

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)
}

股票行情

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股票代码列表,最多50只
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)
}

GetRealTimeQuote 获取实时报价

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

说明

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

请求 model.BriefRequest

字段类型是否必填描述
Symbols[]string股票代码列表,最多100只
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.GetRealTimeQuote(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)
}

GetDelayedQuote 获取延迟行情

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

说明

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

请求 model.StockDelayBriefsRequest

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

示例

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

GetKline 获取 K 线数据

qc.GetKline(req model.KlineRequest) ([]model.Kline, error)

说明

获取指定股票的历史 K 线数据,支持时间范围、索引分页、前复权/后复权、盘前盘后等。

请求 model.KlineRequest

字段类型是否必填描述
Symbols[]string股票代码列表,最多 50 只
PeriodstringK 线周期: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

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

示例

klines, err := qc.GetKline(model.KlineRequest{
    Symbols: []string{"AAPL"},
    Period:  "day",
    Limit:   100,
})
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股票代码列表,最多50只

返回

[]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))
}

GetTimelineHistory 获取历史分时

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

说明

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

请求 model.TimelineHistoryRequest

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

返回

[]model.Timeline(结构同 GetTimeline

示例

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

GetTradeTick 获取逐笔成交

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

说明

获取最新逐笔成交记录。

请求 model.TradeTickRequest

字段类型是否必填描述
Symbols[]string股票代码列表,最多50只
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)

说明

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

请求 model.DepthQuoteRequest

字段类型是否必填描述
Symbols[]string股票代码列表,最多50只
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))
}

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))

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)

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股票代码列表,最多50只
Langstring语言

返回

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

示例

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

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"})

期权行情

所有期权扩展方法均复用 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
}

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])
}

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"})

GetOptionChain 获取期权链

qc.GetOptionChain(items [][2]string, timezone ...string) ([]model.OptionChain, error)

说明

批量获取多个标的 / 到期日组合的期权链。timezone 可选,默认按 symbol 推断(.HKAsia/Hong_Kong,其他 → America/New_York)。

参数

参数名类型是否必填描述
items[][2]string每项为 [symbol, "YYYY-MM-DD"]
timezone...string到期日时区,如 "America/New_York";省略则按 symbol 自动推断

返回

[]model.OptionChain

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

示例

// 美股(自动推断 America/New_York)
chain, err := qc.GetOptionChain([][2]string{{"AAPL", "2026-06-19"}})
// 港股(显式指定时区)
chain, err := qc.GetOptionChain([][2]string{{"00700.HK", "2026-06-19"}}, "Asia/Hong_Kong")
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)
        }
    }
}

GetOptionQuote 获取期权报价

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

说明

批量获取期权合约的实时报价。timezone 可选,默认按 symbol 推断。

参数

参数名类型是否必填描述
identifiers[]string期权标识列表,美股格式:"AAPL 260619C00200000"(注意双空格)
timezone...string到期日时区;省略则按 symbol 自动推断

返回

[]model.Brief(额外带 Expiry int64(ms)/ Strike / Right / OpenInterest 等期权字段)

示例

briefs, err := qc.GetOptionQuote([]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(identifiers []string, period string, beginTime, endTime int64, timezone ...string) ([]model.Kline, error)

说明

获取期权合约的历史 K 线数据。timezone 可选,默认按 symbol 推断。

参数

参数名类型是否必填描述
identifiers[]string期权标识列表
periodstringK 线周期,同股票 K 线("day" / "1min" 等)
beginTimeint64开始时间(毫秒时间戳),传 -1 为服务端默认
endTimeint64结束时间(毫秒时间戳),传 -1 为服务端默认
timezone...string到期日时区;省略则按 symbol 自动推断

返回

[]model.Kline(结构同 GetKline

示例

nowMs := time.Now().UnixMilli()
beginMs := nowMs - 30*24*60*60*1000 // 近 30 天
ks, err := qc.GetOptionKline([]string{"AAPL  260619C00200000"}, "day", beginMs, nowMs)
if err != nil {
    log.Fatal(err)
}
if len(ks) > 0 {
    fmt.Printf("bars=%d\n", len(ks[0].Items))
}

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


GetOptionAnalysis 获取期权波动率分析

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

请求 model.OptionAnalysisRequest

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

返回

[]model.OptionAnalysis,每个元素包含:

字段类型描述
Symbolstring标的代码
ImpliedVol30Daysfloat6430 日隐含波动率
HisVolatilityfloat64历史波动率
IvHisVRatiofloat64隐含波动率 / 历史波动率
CallPutRatiofloat64认购/认沽比率
ImpliedVolMetric*model.ImpliedVolMetric隐含波动率百分位指标(PeriodPercentileRank
VolatilityList[]model.OptionVolatilityPoint波动率历史序列(ImpliedVolHisVolatilityTimestamp

示例

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

期货行情

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)

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合约代码列表,最多50个
BeginTimeint64起始毫秒时间戳
EndTimeint64结束毫秒时间戳
Langstring语言

返回

[]model.FutureMainContractHistoryContractCode / Symbol / BeginDate / EndDate


GetFutureRealTimeQuote 获取期货实时报价

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

说明

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

请求 model.FutureBriefRequest

字段类型是否必填描述
ContractCodes[]string期货合约代码列表,最多50个,如 ["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)

请求 model.FutureKlineRequest

字段类型是否必填描述
ContractCodes[]string合约代码列表,最多50个
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))
}

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


基金

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基金代码列表,最多500只
BeginTimeint64起始毫秒时间戳
EndTimeint64结束毫秒时间戳
Limitint返回条数上限
Langstring语言

返回

[]model.FundHistoryQuoteSymbol / Date / Nav


窝轮

GetWarrantQuote 获取窝轮报价

qc.GetWarrantQuote(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


行业

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


选股器

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))

GetMarketScannerTags 获取选股扫描器标签

qc.GetMarketScannerTags(req model.MarketScannerTagsRequest) ([]model.MarketScannerTagGroup, error)

说明

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

请求Market / MultiTagFieldList []string / Lang

⚠️

MultiTagFieldList 为必填,不能为空数组。可传入如 ["sector"]["industry"] 等字段名。

返回

[]model.MarketScannerTagGroup,每个 MarketScannerTagGroup 含:

字段类型描述
Marketstring市场
MultiTagFieldstring标签字段名
TagList[]MarketScannerTag标签列表(Field / Name / Values

示例

groups, err := qc.GetMarketScannerTags(model.MarketScannerTagsRequest{
    Market:           "US",
    MultiTagFieldList: []string{"sector"},
})