行情订阅

对于接收 symbolsindicators 的退订方法,传 nil 会发送空的 symbols 字段,并清除该主题的全部本地缓存。非 nil 的空切片在请求中同样为空,但不会清除本地缓存;如需退订并清除全部本地记录,请明确传 nil

订阅股票行情

功能说明

订阅行情。

方法签名

func (c *PushClient) SubscribeQuote(symbols []string) error

订阅/退订前必须成功 Connect。所需行情权限取决于标的和数据类型。

参数

参数类型必填SDK 默认值约束
symbols[]string标的代码列表;SDK 不设置批量上限

返回

errornil 表示消息已成功写入当前连接。

示例

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 不设置批量上限

返回

errornil 表示消息已成功写入当前连接。

示例

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 不设置批量上限

返回

errornil 表示消息已成功写入当前连接。

示例

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 不设置批量上限

返回

errornil 表示消息已成功写入当前连接。

示例

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 不设置批量上限

返回

errornil 表示消息已成功写入当前连接。

示例

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 不设置批量上限

返回

errornil 表示消息已成功写入当前连接。

示例

if err := pc.UnsubscribeDepth([]string{"AAPL"}); err != nil {
	log.Fatal(err)
}

订阅期权行情

功能说明

订阅期权行情。

方法签名

func (c *PushClient) SubscribeOption(symbols []string) error

订阅/退订前必须成功 Connect。所需行情权限取决于标的和数据类型。

参数

参数类型必填SDK 默认值约束
symbols[]string标的代码列表;SDK 不设置批量上限

返回

errornil 表示消息已成功写入当前连接。

示例

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 不设置批量上限

返回

errornil 表示消息已成功写入当前连接。

示例

if err := pc.UnsubscribeOption([]string{"AAPL  260619C00200000"}); err != nil {
	log.Fatal(err)
}

订阅期货行情

功能说明

订阅期货行情。

方法签名

func (c *PushClient) SubscribeFuture(symbols []string) error

订阅/退订前必须成功 Connect。所需行情权限取决于标的和数据类型。

参数

参数类型必填SDK 默认值约束
symbols[]string标的代码列表;SDK 不设置批量上限

返回

errornil 表示消息已成功写入当前连接。

示例

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 不设置批量上限

返回

errornil 表示消息已成功写入当前连接。

示例

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 不设置批量上限

返回

errornil 表示消息已成功写入当前连接。

示例

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 不设置批量上限

返回

errornil 表示消息已成功写入当前连接。

示例

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 默认值约束
marketstring支持 USHK
indicators[]string支持 changeRatechangeRate5MinturnoverRateamountvolumeamplitude;SDK 不校验枚举

返回

errornil 表示消息已成功写入当前连接。

示例

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 默认值约束
marketstring支持 USHK
indicators[]string支持 changeRatechangeRate5MinturnoverRateamountvolumeamplitude;SDK 不校验枚举

返回

errornil 表示消息已成功写入当前连接。

示例

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 默认值约束
marketstring仅支持 US
indicators[]string支持 bigOrdervolumeamountopenInt;SDK 不校验枚举

返回

errornil 表示消息已成功写入当前连接。

示例

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 默认值约束
marketstring仅支持 US
indicators[]string支持 bigOrdervolumeamountopenInt;SDK 不校验枚举

返回

errornil 表示消息已成功写入当前连接。

示例

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 不设置批量上限

返回

errornil 表示消息已成功写入当前连接。

示例

if err := pc.SubscribeCc([]string{"BTCUSD"}); err != nil {
	log.Fatal(err)
}

取消订阅数字货币行情

功能说明

退订数字货币行情。symbols 为空则退订全部。

方法签名

func (c *PushClient) UnsubscribeCc(symbols []string) error

订阅/退订前必须成功 Connect。所需行情权限取决于标的和数据类型。

参数

参数类型必填SDK 默认值约束
symbols[]string标的代码列表;SDK 不设置批量上限

返回

errornil 表示消息已成功写入当前连接。

示例

if err := pc.UnsubscribeCc([]string{"BTCUSD"}); err != nil {
	log.Fatal(err)
}

订阅港股全市场行情

功能说明

订阅港股全市场行情。服务端通过普通行情消息按标的持续推送更新,数据由 OnQuote 回调接收;这不是市场状态订阅,也不是一次性的全市场行情快照。

方法签名

func (c *PushClient) SubscribeMarket(market string) error

订阅/退订前必须成功 Connect。所需行情权限取决于标的和数据类型。

参数

参数类型必填SDK 默认值约束
marketstring仅支持 HK

返回

errornil 表示消息已成功写入当前连接。

示例

if err := pc.SubscribeMarket("HK"); err != nil {
	log.Fatal(err)
}

取消订阅港股全市场行情

功能说明

退订港股全市场行情推送。

方法签名

func (c *PushClient) UnsubscribeMarket(market string) error

订阅/退订前必须成功 Connect。所需行情权限取决于标的和数据类型。

参数

参数类型必填SDK 默认值约束
marketstring仅支持 HK

返回

errornil 表示消息已成功写入当前连接。

示例

if err := pc.UnsubscribeMarket("HK"); err != nil {
	log.Fatal(err)
}


Did this page help you?