通用
大约 5 分钟
QuoteClient(client_config, logger=None, is_grab_permission=True) 说明
在SDK中发起行情接口调用时,需要使用到QuoteClient
,QuoteClient
中封装了所有行情相关的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数据格式如下:
KEY | VALUE |
---|---|
name | 行情权限名称 |
expire_at | 权限过期时间(-1为长期有效) |
name字段对应的权限名称枚举值说明:
name字段取值 | 说明 |
---|---|
hkStockQuoteLv2 | 港股Lv2权限,大陆IP赠送免费的港股API行情,无法单独购买,大陆地区用户免费赠送 |
hkStockQuoteLv2Global | 港股Lv2权限,提供实时报价数据,10档买卖盘口,逐笔成交明细以及经纪队列,非大陆用户需购买 |
usQuoteBasic | 美股Lv1行情,购买行情后,可以在API中获取交易所上市证券(包括美股正股和 ETF,不包括美股期货和美股期权)在内的Lv1实时行情信息 |
usStockQuoteLv2Totalview | 美股Lv2行情,购买情后,可以在API中获取交易所上市证券(包括美股正股和 ETF,不包括美股期货和美股期权)在内的行情信息 |
usOptionQuote | 美股期权Lv1,数据基于,展示基于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()
说明
查询当前所拥有的行情权限
参数
无
返回
示例
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_details | bool | No | 是否返回已请求的symbol详情,默认不返回 |
返回
list. 其中每一项如下
字段 | 类型 | 说明 |
---|---|---|
remain | int | 已使用数量 |
used | int | 剩余数量 |
method | str | api接口(kline:股票K线; future_kline:期货K线; option_kline:期权K线; history_timeline:股票历史分时 |
details | list[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": []}]