通用

大约 5 分钟

QuoteClient(client_config, logger=None, is_grab_permission=True) 说明

在SDK中发起行情接口调用时,需要使用到QuoteClientQuoteClient中封装了所有行情相关的API接口调用。

默认条件下,QuoteClient会自动进行行情权限抢占(is_grab_permission=True),此时需要保证QuoteClient为单例方式,即可以在模块级别实例化QuoteClient, 其他地方用时import进来,否则可能会遇到行情抢占接口的限流问题。 如果需要自行控制行情权限抢占,可以把 is_grab_permission 设置为False。

grab_quote_permission 行情权限抢占

QuoteClient.grab_quote_permission()

说明

抢占行情权限,在多个设备共享一个账号时,只有主设备上会返回行情信息。所以每次切换设备时需执行行情权限抢占,将当前设备设置为主设备。若不切换设备则无需调用

注: Python sdk 2.0.9 版本之后,QuoteClient 初始化时会默认调用此接口抢占权限,因此无需再次自行调用。

如果请求其他行情接口,返回没有权限的错误,可以用此接口获取本账号的权限列表,检查是否拥有对应权限

没有抢占行情权限的设备请求实时行情时,将会得到如下错误:

code=4 msg=4000:permission denied(current device does not have permission)

参数

返回

list, 其中每一项为权限数据组成的 dict

dict数据格式如下:

KEYVALUE
name行情权限名称
expire_at权限过期时间(-1为长期有效)

name字段对应的权限名称枚举值说明:

name字段取值说明
hkStockQuoteLv2港股Lv2权限,大陆IP赠送免费的港股API行情,无法单独购买,大陆地区用户免费赠送
hkStockQuoteLv2Global港股Lv2权限,提供实时报价数据,10档买卖盘口,逐笔成交明细以及经纪队列,非大陆用户需购买
usQuoteBasic美股Lv1行情,购买Nasdaq Basic API行情后,可以在API中获取包括 Nasdaq、NYSE、NYSE MKT 等交易所上市证券(包括美股正股和 ETF,不包括美股期货和美股期权)在内的Lv1实时行情信息
usStockQuoteLv2Totalview美股Lv2行情,购买Nasdaq Basic+TotalView API行情后,可以在API中获取包括 Nasdaq、NYSE、NYSE MKT 等交易所上市证券(包括美股正股和 ETF,不包括美股期货和美股期权)在内的行情信息
usOptionQuote美股期权Lv1,数据基于OPRA,展示基于16家交易所报价的最新价和最优买卖一档数据
CMEFuturesQuoteLv2芝加哥商品交易所Lv2权限,购买芝加哥商品交易所Lv2行情数据后,您可以通过API获取在CME交易的期货的实时市场数据。CME交易的期货品类包含纳斯达克、标普500指数期货以及汇率期货等。
CBOTFuturesQuoteLv2芝加哥期货交易所Lv2权限,购买芝加哥期货交易所Lv2行情数据后,您可以通过API获取在CBOT交易的期货的实时市场数据,CBOT交易的期货品类包含道琼斯指数期货、农产品和利率期货等。
CBOEFuturesQuoteLv2芝加哥期权交易所Lv2权限,购买后可通过API获取在芝加哥期权交易所交易的期货的L2实时行情数据
NYMEXFuturesQuoteLv2纽约商业交易所Lv2权限,购买纽约商业交易所Lv2行情数据后,您可以通过API获取在NYMEX交易的期货的实时市场数据。NYMEX交易的期货品类包含美原油、天然气等能源期货。
COMEXFuturesQuoteLv2纽约商品交易所Lv2权限,购买纽约商品交易所Lv2行情数据后,您可以通过API获取在COMEX交易的期货的实时市场数据。COMEX交易的期货品类包含黄金、白银等金属期货等。
HKEXFuturesQuoteLv2香港交易所Lv2权限,香港期货交易所Lv2行情权限包含香港期货L2与香港期权L2行情数据(大陆用户可免费获取期权L2行情,无需单独购买)
SGXFuturesQuoteLv2新加坡交易所Lv2权限,购买后可通过API获取在新加坡期货交易所交易的期货的L2行情数据
OSEFuturesQuoteLv2大阪交易所Lv2权限,购买后可通过API获取在日本大阪期货交易所交易的期货的L2实时行情数据
EUREXFuturesQuoteLv2欧洲交易所Lv2权限,购买后可通过API获取在欧洲交易所交易的期货的L2实时行情数据

示例

from tigeropen.quote.quote_client import QuoteClient
from tigeropen.tiger_open_config import get_client_config
client_config = get_client_config(private_key_path='私钥路径', tiger_id='your tiger id', account='your account')
quote_client = QuoteClient(client_config)

permissions = quote_client.grab_quote_permission()
print(permissions)

返回示例

[{'name': 'usStockQuote', 'expire_at': 1698767999000}, {'name': 'usStockQuoteLv2Arca', 'expire_at': 1698767999000}, {'name': 'usStockQuoteLv2Totalview', 'expire_at': 1698767999000}, {'name': 'hkStockQuoteLv2', 'expire_at': 1698767999000}, {'name': 'usOptionQuote', 'expire_at': 1698767999000}]

get_quote_permission 查询行情权限

QuoteClient.get_quote_permission()

说明

查询当前所拥有的行情权限

参数

返回

grab_quote_permission

示例

from tigeropen.quote.quote_client import QuoteClient
from tigeropen.tiger_open_config import get_client_config
client_config = get_client_config(private_key_path='私钥路径', tiger_id='your tiger id', account='your account')
quote_client = QuoteClient(client_config)

permissions = quote_client.get_quote_permission()

返回示例

[{'name': 'usStockQuote', 'expire_at': 1698767999000}, {'name': 'usStockQuoteLv2Arca', 'expire_at': 1698767999000}, {'name': 'usStockQuoteLv2Totalview', 'expire_at': 1698767999000}, {'name': 'hkStockQuoteLv2', 'expire_at': 1698767999000}, {'name': 'usOptionQuote', 'expire_at': 1698767999000}]

get_kline_quota 历史行情额度

获取历史K线额度明细

说明

查询按照本用户的等级已使用和剩余的symbol个数,包括股票,期货,期权对应股票(同一股票的不同期权,只占用一个symbol)

参数

参数类型是否必填说明
with_detailsboolNo是否返回已请求的symbol详情,默认不返回

返回

list. 其中每一项如下

字段类型说明
remainint已使用数量
usedint剩余数量
methodstrapi接口(kline:股票K线; future_kline:期货K线; option_kline:期权K线; history_timeline:股票历史分时
detailslist[str]已使用的标的详情

示例

from tigeropen.quote.quote_client import QuoteClient
from tigeropen.tiger_open_config import get_client_config
from tigeropen.common.consts import TradingSession, Market
from tigeropen.common.consts.filter_fields import MultiTagField
client_config = get_client_config(private_key_path='private key path', tiger_id='your tiger id', account='your account')
quote_client = QuoteClient(client_config)


result = quote_client.get_kline_quota()
print(result)

返回示例

[{"remain": 2, "used": 18, "method": "kline", "details": ["AAPL", "FB"]}, 
{"remain": 10, "used": 0, "method": "future_kline", "details": []},
 {"remain": 20, "used": 0, "method": "option_kline", "details": []}, 
 {"remain": 20, "used": 0, "method": "history_timeline", "details": []}]
上次编辑于: