行情订阅
对于接收 symbols 或 indicators 的退订方法,传 nil 会发送空的 symbols 字段,并清除该主题的全部本地缓存。非 nil 的空切片在请求中同样为空,但不会清除本地缓存;如需退订并清除全部本地记录,请明确传 nil。
订阅股票行情
功能说明
订阅行情。
方法签名
func (c *PushClient) SubscribeQuote(symbols []string) error订阅/退订前必须成功 Connect。所需行情权限取决于标的和数据类型。
参数
| 参数 | 类型 | 必填 | SDK 默认值 | 约束 |
|---|---|---|---|---|
symbols | []string | 是 | 无 | 标的代码列表;SDK 不设置批量上限 |
返回
error;nil 表示消息已成功写入当前连接。
示例
if err := pc.SubscribeQuote([]string{"AAPL"}); err != nil {
log.Fatal(err)
}回调数据 JSON 示例
基本行情(BASIC):
{
"symbol": "AAPL",
"type": "BASIC",
"timestamp": "1684766012120",
"serverTimestamp": "1684766012129",
"avgPrice": 174.1721,
"latestPrice": 174.175,
"latestPriceTimestamp": "1684766011918",
"latestTime": "05-22 10:33:31 EDT",
"preClose": 175.16,
"volume": "12314802",
"amount": 2144365591.41,
"open": 173.98,
"high": 174.71,
"low": 173.45,
"marketStatus": "Trading",
"mi": {
"p": 174.175,
"a": 174.1721,
"t": "1684765980000",
"v": "57641",
"o": 174.21,
"h": 174.22,
"l": 174.14
}
}最优报价(BBO):
{
"symbol": "AAPL",
"type": "BBO",
"timestamp": "1676992715509",
"askPrice": 149.96,
"askSize": "200",
"askTimestamp": "1676992715367",
"bidPrice": 149.94,
"bidSize": "700",
"bidTimestamp": "1676992715367"
}取消订阅股票行情
功能说明
退订行情。
方法签名
func (c *PushClient) UnsubscribeQuote(symbols []string) error订阅/退订前必须成功 Connect。所需行情权限取决于标的和数据类型。
参数
| 参数 | 类型 | 必填 | SDK 默认值 | 约束 |
|---|---|---|---|---|
symbols | []string | 是 | 无 | 标的代码列表;SDK 不设置批量上限 |
返回
error;nil 表示消息已成功写入当前连接。
示例
if err := pc.UnsubscribeQuote([]string{"AAPL"}); err != nil {
log.Fatal(err)
}订阅逐笔成交
功能说明
订阅逐笔成交。逐笔成交每 200ms 推送一次,采用快照模式,每次推送最新的 50 条逐笔记录。
方法签名
func (c *PushClient) SubscribeTick(symbols []string) error订阅/退订前必须成功 Connect。所需行情权限取决于标的和数据类型。
参数
| 参数 | 类型 | 必填 | SDK 默认值 | 约束 |
|---|---|---|---|---|
symbols | []string | 是 | 无 | 标的代码列表;SDK 不设置批量上限 |
返回
error;nil 表示消息已成功写入当前连接。
示例
if err := pc.SubscribeTick([]string{"AAPL"}); err != nil {
log.Fatal(err)
}回调数据 JSON 示例
{
"symbol": "AAPL",
"secType": "STK",
"quoteLevel": "usQuoteBasic",
"timestamp": 1676993925700,
"ticks": [
{
"sn": 116202,
"volume": 50,
"tickType": "*",
"price": 149.665,
"time": 1676993924289,
"cond": "US_REGULAR_SALE"
}
]
}默认模式下,OnTick 接收 push.PushTradeTick,其中 Cond 是 SDK 解码后的名称,详见逐笔成交条件。使用 WithUseFullTick(true) 创建客户端后,OnFullTick 接收 *pb.TickData,其中条件为原始单字符代码;该模式下同一条消息不再调用 OnTick。
取消订阅逐笔成交
功能说明
退订逐笔成交。
方法签名
func (c *PushClient) UnsubscribeTick(symbols []string) error订阅/退订前必须成功 Connect。所需行情权限取决于标的和数据类型。
参数
| 参数 | 类型 | 必填 | SDK 默认值 | 约束 |
|---|---|---|---|---|
symbols | []string | 是 | 无 | 标的代码列表;SDK 不设置批量上限 |
返回
error;nil 表示消息已成功写入当前连接。
示例
if err := pc.UnsubscribeTick([]string{"AAPL"}); err != nil {
log.Fatal(err)
}订阅深度行情
功能说明
订阅深度行情。美股深度行情推送频率为 300ms,港股深度行情推送频率为 2s。
方法签名
func (c *PushClient) SubscribeDepth(symbols []string) error订阅/退订前必须成功 Connect。所需行情权限取决于标的和数据类型。
参数
| 参数 | 类型 | 必填 | SDK 默认值 | 约束 |
|---|---|---|---|---|
symbols | []string | 是 | 无 | 标的代码列表;SDK 不设置批量上限 |
返回
error;nil 表示消息已成功写入当前连接。
示例
if err := pc.SubscribeDepth([]string{"AAPL"}); err != nil {
log.Fatal(err)
}回调数据 JSON 示例
{
"symbol": "AAPL",
"timestamp": "1676993368405",
"ask": {
"price": [149.69, 149.70, 149.71],
"volume": ["100", "200", "185"]
},
"bid": {
"price": [149.68, 149.67, 149.66],
"volume": ["84", "100", "100"]
}
}取消订阅深度行情
功能说明
退订深度行情。
方法签名
func (c *PushClient) UnsubscribeDepth(symbols []string) error订阅/退订前必须成功 Connect。所需行情权限取决于标的和数据类型。
参数
| 参数 | 类型 | 必填 | SDK 默认值 | 约束 |
|---|---|---|---|---|
symbols | []string | 是 | 无 | 标的代码列表;SDK 不设置批量上限 |
返回
error;nil 表示消息已成功写入当前连接。
示例
if err := pc.UnsubscribeDepth([]string{"AAPL"}); err != nil {
log.Fatal(err)
}订阅期权行情
功能说明
订阅期权行情。
方法签名
func (c *PushClient) SubscribeOption(symbols []string) error订阅/退订前必须成功 Connect。所需行情权限取决于标的和数据类型。
参数
| 参数 | 类型 | 必填 | SDK 默认值 | 约束 |
|---|---|---|---|---|
symbols | []string | 是 | 无 | 标的代码列表;SDK 不设置批量上限 |
返回
error;nil 表示消息已成功写入当前连接。
示例
if err := pc.SubscribeOption([]string{"AAPL 260619C00200000"}); err != nil {
log.Fatal(err)
}回调数据 JSON 示例
{
"symbol": "AAPL 20230317 150.0 CALL",
"type": "BASIC",
"timestamp": "1676994444927",
"latestPrice": 4.83,
"preClose": 6.21,
"volume": "3181",
"amount": 939117.01,
"open": 4.85,
"high": 5.6,
"low": 4.64,
"identifier": "AAPL 230317C00150000",
"openInt": "82677"
}取消订阅期权行情
功能说明
退订期权行情。
方法签名
func (c *PushClient) UnsubscribeOption(symbols []string) error订阅/退订前必须成功 Connect。所需行情权限取决于标的和数据类型。
参数
| 参数 | 类型 | 必填 | SDK 默认值 | 约束 |
|---|---|---|---|---|
symbols | []string | 是 | 无 | 标的代码列表;SDK 不设置批量上限 |
返回
error;nil 表示消息已成功写入当前连接。
示例
if err := pc.UnsubscribeOption([]string{"AAPL 260619C00200000"}); err != nil {
log.Fatal(err)
}订阅期货行情
功能说明
订阅期货行情。
方法签名
func (c *PushClient) SubscribeFuture(symbols []string) error订阅/退订前必须成功 Connect。所需行情权限取决于标的和数据类型。
参数
| 参数 | 类型 | 必填 | SDK 默认值 | 约束 |
|---|---|---|---|---|
symbols | []string | 是 | 无 | 标的代码列表;SDK 不设置批量上限 |
返回
error;nil 表示消息已成功写入当前连接。
示例
if err := pc.SubscribeFuture([]string{"ES2609"}); err != nil {
log.Fatal(err)
}回调数据 JSON 示例
{
"symbol": "ESmain",
"type": "BASIC",
"timestamp": "1684766824130",
"avgPrice": 4206.476,
"latestPrice": 4202.5,
"preClose": 4204.75,
"volume": "557570",
"open": 4189,
"high": 4221.75,
"low": 4186.5,
"marketStatus": "Trading",
"preSettlement": 4204.75,
"minTick": 0.25
}取消订阅期货行情
功能说明
退订期货行情。
方法签名
func (c *PushClient) UnsubscribeFuture(symbols []string) error订阅/退订前必须成功 Connect。所需行情权限取决于标的和数据类型。
参数
| 参数 | 类型 | 必填 | SDK 默认值 | 约束 |
|---|---|---|---|---|
symbols | []string | 是 | 无 | 标的代码列表;SDK 不设置批量上限 |
返回
error;nil 表示消息已成功写入当前连接。
示例
if err := pc.UnsubscribeFuture([]string{"ES2609"}); err != nil {
log.Fatal(err)
}订阅 K 线
功能说明
订阅 K 线。
方法签名
func (c *PushClient) SubscribeKline(symbols []string) error订阅/退订前必须成功 Connect。所需行情权限取决于标的和数据类型。
参数
| 参数 | 类型 | 必填 | SDK 默认值 | 约束 |
|---|---|---|---|---|
symbols | []string | 是 | 无 | 标的代码列表;SDK 不设置批量上限 |
返回
error;nil 表示消息已成功写入当前连接。
示例
if err := pc.SubscribeKline([]string{"AAPL"}); err != nil {
log.Fatal(err)
}回调数据 JSON 示例
{
"symbol": "AAPL",
"time": "1712584560000",
"open": 168.9779,
"high": 169.0015,
"low": 168.9752,
"close": 169.0,
"avg": 168.778,
"volume": "3664",
"count": 114,
"amount": 617820.6508,
"serverTimestamp": "1712584569746"
}取消订阅 K 线
功能说明
退订 K 线。
方法签名
func (c *PushClient) UnsubscribeKline(symbols []string) error订阅/退订前必须成功 Connect。所需行情权限取决于标的和数据类型。
参数
| 参数 | 类型 | 必填 | SDK 默认值 | 约束 |
|---|---|---|---|---|
symbols | []string | 是 | 无 | 标的代码列表;SDK 不设置批量上限 |
返回
error;nil 表示消息已成功写入当前连接。
示例
if err := pc.UnsubscribeKline([]string{"AAPL"}); err != nil {
log.Fatal(err)
}订阅股票榜单
功能说明
订阅股票榜单行情。服务端每 30 秒执行一次榜单推送任务,榜单条数可配置,默认 10 条。indicators 是 indicator 字符串列表(作为 symbols 字段传输)。
方法签名
func (c *PushClient) SubscribeStockTop(market string, indicators []string) error订阅/退订前必须成功 Connect。所需行情权限取决于标的和数据类型。
参数
| 参数 | 类型 | 必填 | SDK 默认值 | 约束 |
|---|---|---|---|---|
market | string | 是 | 无 | 支持 US、HK |
indicators | []string | 是 | 无 | 支持 changeRate、changeRate5Min、turnoverRate、amount、volume、amplitude;SDK 不校验枚举 |
返回
error;nil 表示消息已成功写入当前连接。
示例
if err := pc.SubscribeStockTop("US", []string{"changeRate", "volume"}); err != nil {
log.Fatal(err)
}回调数据 JSON 示例
{
"market": "US",
"timestamp": "1687271010482",
"topData": [
{
"targetName": "changeRate",
"item": [
{"symbol": "ICAD", "latestPrice": 1.63, "targetValue": 0.393162}
]
},
{
"targetName": "volume",
"item": [
{"symbol": "TSLA", "latestPrice": 263.21, "targetValue": 40190416}
]
}
]
}取消订阅股票榜单
功能说明
退订股票榜单行情。
方法签名
func (c *PushClient) UnsubscribeStockTop(market string, indicators []string) error订阅/退订前必须成功 Connect。所需行情权限取决于标的和数据类型。
参数
| 参数 | 类型 | 必填 | SDK 默认值 | 约束 |
|---|---|---|---|---|
market | string | 是 | 无 | 支持 US、HK |
indicators | []string | 是 | 无 | 支持 changeRate、changeRate5Min、turnoverRate、amount、volume、amplitude;SDK 不校验枚举 |
返回
error;nil 表示消息已成功写入当前连接。
示例
if err := pc.UnsubscribeStockTop("US", []string{"changeRate", "volume"}); err != nil {
log.Fatal(err)
}订阅期权榜单
功能说明
订阅期权榜单行情。服务端每 30 秒执行一次榜单推送任务,榜单条数可配置,默认 10 条。
方法签名
func (c *PushClient) SubscribeOptionTop(market string, indicators []string) error订阅/退订前必须成功 Connect。所需行情权限取决于标的和数据类型。
参数
| 参数 | 类型 | 必填 | SDK 默认值 | 约束 |
|---|---|---|---|---|
market | string | 是 | 无 | 仅支持 US |
indicators | []string | 是 | 无 | 支持 bigOrder、volume、amount、openInt;SDK 不校验枚举 |
返回
error;nil 表示消息已成功写入当前连接。
示例
if err := pc.SubscribeOptionTop("US", []string{"volume", "openInt"}); err != nil {
log.Fatal(err)
}回调数据 JSON 示例
{
"market": "US",
"timestamp": "1687277160445",
"topData": [
{
"targetName": "volume",
"item": [
{
"symbol": "SPY",
"expiry": "20230620",
"strike": "435.0",
"right": "PUT",
"totalVolume": 212478
}
]
}
]
}取消订阅期权榜单
功能说明
退订期权榜单行情。
方法签名
func (c *PushClient) UnsubscribeOptionTop(market string, indicators []string) error订阅/退订前必须成功 Connect。所需行情权限取决于标的和数据类型。
参数
| 参数 | 类型 | 必填 | SDK 默认值 | 约束 |
|---|---|---|---|---|
market | string | 是 | 无 | 仅支持 US |
indicators | []string | 是 | 无 | 支持 bigOrder、volume、amount、openInt;SDK 不校验枚举 |
返回
error;nil 表示消息已成功写入当前连接。
示例
if err := pc.UnsubscribeOptionTop("US", []string{"volume", "openInt"}); err != nil {
log.Fatal(err)
}订阅数字货币行情
功能说明
订阅数字货币行情。
方法签名
func (c *PushClient) SubscribeCc(symbols []string) error订阅/退订前必须成功 Connect。所需行情权限取决于标的和数据类型。
参数
| 参数 | 类型 | 必填 | SDK 默认值 | 约束 |
|---|---|---|---|---|
symbols | []string | 是 | 无 | 标的代码列表;SDK 不设置批量上限 |
返回
error;nil 表示消息已成功写入当前连接。
示例
if err := pc.SubscribeCc([]string{"BTCUSD"}); err != nil {
log.Fatal(err)
}取消订阅数字货币行情
功能说明
退订数字货币行情。symbols 为空则退订全部。
方法签名
func (c *PushClient) UnsubscribeCc(symbols []string) error订阅/退订前必须成功 Connect。所需行情权限取决于标的和数据类型。
参数
| 参数 | 类型 | 必填 | SDK 默认值 | 约束 |
|---|---|---|---|---|
symbols | []string | 是 | 无 | 标的代码列表;SDK 不设置批量上限 |
返回
error;nil 表示消息已成功写入当前连接。
示例
if err := pc.UnsubscribeCc([]string{"BTCUSD"}); err != nil {
log.Fatal(err)
}订阅港股全市场行情
功能说明
订阅港股全市场行情。服务端通过普通行情消息按标的持续推送更新,数据由 OnQuote 回调接收;这不是市场状态订阅,也不是一次性的全市场行情快照。
方法签名
func (c *PushClient) SubscribeMarket(market string) error订阅/退订前必须成功 Connect。所需行情权限取决于标的和数据类型。
参数
| 参数 | 类型 | 必填 | SDK 默认值 | 约束 |
|---|---|---|---|---|
market | string | 是 | 无 | 仅支持 HK |
返回
error;nil 表示消息已成功写入当前连接。
示例
if err := pc.SubscribeMarket("HK"); err != nil {
log.Fatal(err)
}取消订阅港股全市场行情
功能说明
退订港股全市场行情推送。
方法签名
func (c *PushClient) UnsubscribeMarket(market string) error订阅/退订前必须成功 Connect。所需行情权限取决于标的和数据类型。
参数
| 参数 | 类型 | 必填 | SDK 默认值 | 约束 |
|---|---|---|---|---|
market | string | 是 | 无 | 仅支持 HK |
返回
error;nil 表示消息已成功写入当前连接。
示例
if err := pc.UnsubscribeMarket("HK"); err != nil {
log.Fatal(err)
}Updated 25 days ago
