通用
大约 5 分钟
QuoteClient(const ClientConfig &cf, bool is_grab_permission = true);
说明
在SDK中发起行情接口调用时,需要使用到QuoteClient
,QuoteClient
中封装了所有行情相关的API接口调用。
默认条件下,QuoteClient
会自动进行行情权限抢占(is_grab_permission=true)。 如果需要自行控制行情权限抢占,可以把 is_grab_permission 设置为False。
grab_quote_permission 行情权限抢占
QuoteClient::grab_quote_permission()
说明
抢占行情权限,在多个设备共享一个账号时,只有主设备上会返回行情信息。所以每次切换设备时需执行行情权限抢占,将当前设备设置为主设备。若不切换设备则无需调用
参数
无
返回
KEY | VALUE |
---|---|
name | 行情权限名称 |
expire_at | 权限过期时间(-1为长期有效) |
name字段对应的权限名称枚举值说明:
name字段取值 | 说明 |
---|---|
hkStockQuoteLv2 | 港股Lv2权限,大陆IP赠送免费的港股API行情,无法单独购买,大陆地区用户免费赠送 |
hkStockQuoteLv2Global | 港股Lv2权限,提供实时报价数据,10档买卖盘口,逐笔成交明细以及经纪队列,非大陆用户需购买 |
usQuoteBasic | 美股Lv1行情,购买API行情后,可以在API中获取交易所上市证券(包括美股正股和 ETF,不包括美股期货和美股期权)在内的Lv1实时行情信息 |
usStockQuoteLv2Totalview | 美股Lv2行情,购买API行情后,可以在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实时行情数据 |
示例
#include "tigerapi/quote_client.h"
#include "tigerapi/trade_client.h"
using namespace std;
using namespace web;
using namespace web::json;
using namespace TIGER_API;
int main(int argc, char *args[]) {
/************************** set config **********************/
ClientConfig config = ClientConfig();
config.private_key = "xxxxxx your private key string xxxxxxxx";
config.tiger_id = "your tiger id";
config.account = "your account";
/**
* 使用封装后的行情接口 QuoteClient
*/
std::shared_ptr<QuoteClient> quote_client = std::make_shared<QuoteClient>(config);
value result = quote_client->grab_quote_permission();
cout << result << endl;
return 0;
}
返回示例
[{"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()
说明
查询当前所拥有的行情权限
参数
无
返回
示例
#include "tigerapi/quote_client.h"
#include "tigerapi/trade_client.h"
using namespace std;
using namespace web;
using namespace web::json;
using namespace TIGER_API;
int main(int argc, char *args[]) {
/************************** set config **********************/
ClientConfig config = ClientConfig();
config.private_key = "xxxxxx your private key string xxxxxxxx";
config.tiger_id = "your tiger id";
config.account = "your account";
/**
* 使用封装后的行情接口 QuoteClient
*/
std::shared_ptr<QuoteClient> quote_client = std::make_shared<QuoteClient>(config);
value result = quote_client->get_quote_permission();
cout << result << endl;
return 0;
}
返回示例
[{"expireAt":1704177094000,"name":"HKEXFuturesQuoteLv2"},
{"expireAt":1698997529000,"name":"SGXFuturesQuoteLv2"},{"expireAt":1675158055000,"name":"COMEXFuturesQuoteLv2"},
{"expireAt":1704177094000,"name":"HKEXDerivativeQuoteLv2"},{"expireAt":1688716533000,"name":"COMEXFuturesQuoteLv1"},
{"expireAt":4000000000000,"name":"usStockQuoteLv2Arca"},{"expireAt":1746080241000,"name":"OSEFuturesQuoteLv2"},
{"expireAt":4002592000000,"name":"usStockQuoteLv2Totalview"},{"expireAt":1932709961000,"name":"NYMEXFuturesQuoteLv2"},
{"expireAt":-1,"name":"hkStockQuoteLv2"},{"expireAt":4133951999000,"name":"usOptionQuote"},
{"expireAt":2003052655000,"name":"usQuoteBasic"},{"expireAt":1704177094000,"name":"hkOptionQuoteLv2"}]
get_kline_quota 获取历史K线额度
获取历史K线额度明细value get_kline_quota(bool with_details = false);
说明
查询按照本用户的等级已使用和剩余的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 | value | 已使用的标的详情 |
示例
#include "tigerapi/quote_client.h"
#include "tigerapi/trade_client.h"
using namespace std;
using namespace web;
using namespace web::json;
using namespace TIGER_API;
int main(int argc, char *args[]) {
/************************** set config **********************/
ClientConfig config = ClientConfig();
config.private_key = "xxxxxx your private key string xxxxxxxx";
config.tiger_id = "your tiger id";
config.account = "your account";
/**
* 使用封装后的行情接口 QuoteClient
*/
std::shared_ptr<QuoteClient> quote_client = std::make_shared<QuoteClient>(config);
value result = quote_client->get_kline_quota();
cout << result << endl;
return 0;
}
返回示例
[{"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": []}]