证券
获取市场状态
当前页面还覆盖以下已实现的原始 JSON/对象重载:
value QuoteClient::get_quote_stock_trade(const value &symbols)
value QuoteClient::get_quote_real_time_value(const value &symbols)
value QuoteClient::get_quote_delay(const value &symbols)
value QuoteClient::get_quote_shortable_stocks(const value &symbols)四个方法均要求 symbols JSON 字符串数组并返回 web::json::value。实时行情对象版见本页 get_quote_real_time;权限、单次数量和频率由对应股票行情接口控制。
auto trades = quote_client.get_quote_stock_trade(symbols);
auto raw_quotes = quote_client.get_quote_real_time_value(symbols);
auto delayed = quote_client.get_quote_delay(symbols);
auto shortable = quote_client.get_quote_shortable_stocks(symbols);响应依据:这些原始 JSON 重载没有固定 SDK 响应模型或已验证 fixture;字段以服务端响应为准。
value QuoteClient::get_market_state(utility::string_t market)
说明
获取指定市场状态,返回市场名称、市场状态(未开盘、交易中、已收盘等)和最近的交易时间。
参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| market | utility::string_t | Yes | 市场,如 U("US")、U("HK")、U("CN") |
返回
web::json::value JSON 对象
示例
#include "tigerapi/quote_client.h"
#include "tigerapi/client_config.h"
using namespace TIGER_API;
ClientConfig config(false, U("your_config_directory_path"));
QuoteClient quote_client(config);
value result = quote_client.get_market_state(U("US"));
ucout << result.serialize() << std::endl;返回示例
{
"code": 0,
"message": "success",
"timestamp": 1785528000000,
"data": [
{
"market": "US",
"marketStatus": "Pre-Mkt",
"status": "PRE_HOUR_TRADING",
"openTime": "08-03 09:30:00 EDT"
}
]
}获取交易日历
value QuoteClient::get_trading_calendar(Market market, utility::string_t begin_date, utility::string_t end_date)
说明
获取指定市场的交易日历
参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| market | Market 或 utility::string_t | Yes | 市场,如 Market::US 或 U("US") |
| begin_date | utility::string_t | Yes | 起始日期,格式 "yyyy-MM-dd",如 U("2024-01-01") |
| end_date | utility::string_t | Yes | 结束日期,格式 "yyyy-MM-dd",如 U("2024-12-31") |
返回
web::json::value JSON 对象
示例
ClientConfig config(false, U("your_config_directory_path"));
QuoteClient quote_client(config);
value result = quote_client.get_trading_calendar(Market::US, U("2024-01-01"), U("2024-06-30"));
ucout << result.serialize() << std::endl;返回示例
{
"code": 0,
"message": "success",
"timestamp": 1785528000000,
"data": [
{"date": "2025-07-28", "type": "TRADING"},
{"date": "2025-07-29", "type": "TRADING"}
]
}获取标的列表
value QuoteClient::get_symbols(Market market = Market::ALL, bool include_otc = false)
说明
获取指定市场的所有标的代码列表
参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| market | Market | No | 市场枚举,Market::US / Market::HK / Market::ALL,默认 Market::ALL |
| include_otc | bool | No | 是否包含 OTC 标的,默认 false |
返回
web::json::value JSON 数组,包含标的代码
示例
ClientConfig config(false, U("your_config_directory_path"));
QuoteClient quote_client(config);
value result = quote_client.get_symbols(Market::US);
ucout << result.serialize() << std::endl;返回示例
{
"code": 0,
"message": "success",
"timestamp": 1785528000000,
"data": ["A", "AA", "AAL", "AAPL", "ABBV", "ABC", "ABNB"]
}获取标的名称列表
value QuoteClient::get_all_symbol_names(Market market = Market::ALL, bool include_otc = false)
说明
获取指定市场的所有标的代码及名称
参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| market | Market | No | 市场枚举,Market::US / Market::HK / Market::ALL,默认 Market::ALL |
| include_otc | bool | No | 是否包含 OTC 标的,默认 false |
返回
web::json::value JSON 数组
示例
ClientConfig config(false, U("your_config_directory_path"));
QuoteClient quote_client(config);
value result = quote_client.get_all_symbol_names(Market::HK);
ucout << result.serialize() << std::endl;返回示例
{
"code": 0,
"message": "success",
"timestamp": 1785528000000,
"data": [
{"symbol": "00001", "name": "CKH Holdings"},
{"symbol": "00700", "name": "TENCENT"}
]
}获取股票行情快照
value QuoteClient::get_brief(const value &symbols, bool include_hour_trading, bool include_ask_bid, QuoteRight right)
说明
获取股票的实时行情快照,包含最新价、开盘价、最高价、最低价等
参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| symbols | value | Yes | 标的代码数组,最多 100 只,如 value::array({value::string(U("AAPL"))}) |
| include_hour_trading | bool | No | 是否包含盘前盘后数据,默认 false |
| include_ask_bid | bool | No | 是否包含买卖盘口数据,默认 false |
| right | QuoteRight | No | 复权类型,QuoteRight::br(前复权) 或 QuoteRight::nr(不复权),默认 br |
返回
web::json::value JSON 对象
示例
#include "tigerapi/quote_client.h"
#include "tigerapi/client_config.h"
using namespace TIGER_API;
ClientConfig config(false, U("your_config_directory_path"));
QuoteClient quote_client(config);
value symbols = value::array();
symbols[0] = value::string(U("AAPL"));
symbols[1] = value::string(U("TSLA"));
value result = quote_client.get_brief(symbols);
ucout << result.serialize() << std::endl;返回示例
{
"code": 0,
"message": "success",
"timestamp": 1785528000000,
"data": [
{
"symbol": "AAPL",
"open": 304.81,
"high": 310.69,
"low": 300.0,
"close": 308.91,
"preClose": 333.43,
"latestPrice": 308.91,
"latestTime": 1785528000000,
"askPrice": 310.97,
"askSize": 400,
"bidPrice": 310.89,
"bidSize": 80,
"volume": 176739024,
"status": "NORMAL"
}
]
}获取分时数据
value QuoteClient::get_timeline(const value &symbols, bool include_hour_trading, time_t begin_time)
说明
获取当日分时数据
参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| symbols | value | Yes | 标的代码数组,最多 50 只 |
| include_hour_trading | bool | No | 是否包含盘前盘后数据,默认 false |
| begin_time | time_t | No | 起始时间戳(毫秒),默认 -1 |
返回
web::json::value JSON 对象
示例
ClientConfig config(false, U("your_config_directory_path"));
QuoteClient quote_client(config);
value symbols = value::array();
symbols[0] = value::string(U("AAPL"));
value result = quote_client.get_timeline(symbols);
ucout << result.serialize() << std::endl;返回示例
{
"code": 0,
"message": "success",
"timestamp": 1785528000000,
"data": [
{
"symbol": "AAPL",
"period": "day",
"preClose": 333.43,
"intraday": {
"items": [
{"time": 1785441000000, "price": 304.81, "avgPrice": 304.81, "volume": 1523400},
{"time": 1785441060000, "price": 305.12, "avgPrice": 304.96, "volume": 892100}
]
}
}
]
}获取历史分时数据
value QuoteClient::get_history_timeline(const value &symbols, utility::string_t date, QuoteRight right)
说明
获取指定日期的历史分时数据
参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| symbols | value | Yes | 标的代码数组,最多 50 只 |
| date | utility::string_t | Yes | 日期,格式 "yyyy-MM-dd",如 U("2024-01-15") |
| right | QuoteRight | No | 复权类型,默认 QuoteRight::br |
返回
web::json::value JSON 对象
返回示例
{
"code": 0,
"message": "success",
"timestamp": 1785528000000,
"data": [
{
"symbol": "AAPL",
"items": [
{"time": 1785355800000, "price": 310.50, "avgPrice": 310.50, "volume": 1245600},
{"time": 1785355860000, "price": 310.80, "avgPrice": 310.65, "volume": 534200}
]
}
]
}获取 K 线数据
value QuoteClient::get_kline(const value &symbols, BarPeriod period, time_t begin_time, time_t end_time, QuoteRight right, int limit, utility::string_t page_token)
说明
获取股票 K 线数据,支持日 K、周 K、月 K 以及分钟 K 线
参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| symbols | value | Yes | 标的代码数组,最多 50 只 |
| period | BarPeriod 或 utility::string_t | No | K 线周期,如 BarPeriod::DAY 或 U("day"),默认 DAY。可选值:day/week/month/year/1min/3min/5min/10min/15min/30min/60min |
| begin_time | time_t | No | 起始时间戳(毫秒),默认 -1 |
| end_time | time_t | No | 结束时间戳(毫秒),默认 -1 |
| right | QuoteRight 或 utility::string_t | No | 复权类型,默认 QuoteRight::br 或 U("br") |
| limit | int | No | 返回条数上限,默认 251 |
| page_token | utility::string_t | No | 翻页标记,默认空 |
返回
web::json::value JSON 对象,或 vector<Kline> Kline 对象列表(使用对应的重载版本)
Kline 对象属性
| 属性名 | 类型 | 描述 |
|---|---|---|
| symbol | utility::string_t | 标的代码 |
| period | utility::string_t | K 线周期 |
| items | vector<KlineItem> | K 线数据列表 |
KlineItem 对象属性
| 属性名 | 类型 | 描述 |
|---|---|---|
| open | double | 开盘价 |
| high | double | 最高价 |
| low | double | 最低价 |
| close | double | 收盘价 |
| volume | long long | 成交量 |
| time | time_t | 时间戳 |
示例
ClientConfig config(false, U("your_config_directory_path"));
QuoteClient quote_client(config);
value symbols = value::array();
symbols[0] = value::string(U("AAPL"));
// 获取日K线(返回 JSON)
value result = quote_client.get_kline(symbols, BarPeriod::DAY);
ucout << result.serialize() << std::endl;
// 获取日K线(返回 Kline 对象列表)
vector<Kline> klines = quote_client.get_kline(symbols, U("day"));
for (auto& kline : klines) {
for (auto& item : kline.items) {
std::cout << "Time: " << item.time << " Close: " << item.close << std::endl;
}
}返回示例
{
"code": 0,
"message": "success",
"timestamp": 1785528000000,
"data": [
{
"symbol": "AAPL",
"period": "day",
"nextPageToken": null,
"items": [
{"time": 1785355200000, "open": 310.50, "high": 315.20, "low": 308.00, "close": 312.45, "volume": 58234100, "amount": 18156789012.50},
{"time": 1785441600000, "open": 312.00, "high": 314.80, "low": 300.00, "close": 308.91, "volume": 176739024, "amount": 53821456789.00}
]
}
]
}获取实时行情
vector<RealtimeQuote> QuoteClient::get_quote_real_time(const value &symbols)说明
获取股票的实时行情数据,返回 RealtimeQuote 对象列表
参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| symbols | value | Yes | 标的代码数组,最多 50 只 |
返回
vector<RealtimeQuote> 实时行情对象列表
RealtimeQuote 对象属性
| 属性名 | 类型 | 描述 |
|---|---|---|
| symbol | utility::string_t | 标的代码 |
| open | double | 开盘价 |
| high | double | 最高价 |
| low | double | 最低价 |
| close | double | 收盘价 |
| pre_close | double | 昨收价 |
| latest_price | double | 最新价 |
| latest_time | time_t | 最新成交时间 |
| volume | long long | 成交量 |
| ask_price | double | 卖一价 |
| ask_size | double | 卖一量 |
| bid_price | double | 买一价 |
| bid_size | double | 买一量 |
| status | utility::string_t | 市场状态 |
示例
ClientConfig config(false, U("your_config_directory_path"));
QuoteClient quote_client(config);
value symbols = value::array();
symbols[0] = value::string(U("AAPL"));
symbols[1] = value::string(U("TSLA"));
vector<RealtimeQuote> quotes = quote_client.get_quote_real_time(symbols);
for (auto& q : quotes) {
ucout << q.symbol << U(" latest_price: ") << q.latest_price << std::endl;
}返回示例
{
"code": 0,
"message": "success",
"timestamp": 1785528000000,
"data": [
{
"symbol": "AAPL",
"open": 304.81,
"high": 310.69,
"low": 300.0,
"close": 308.91,
"preClose": 333.43,
"latestPrice": 308.91,
"latestTime": 1785528000000,
"askPrice": 310.97,
"askSize": 400,
"bidPrice": 310.89,
"bidSize": 80,
"volume": 176739024,
"status": "NORMAL"
}
]
}获取逐笔成交
value QuoteClient::get_trade_tick(const value &symbols, TradingSession trade_session, long begin_index, long end_index, int limit)
说明
获取股票的逐笔成交数据
参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| symbols | value | Yes | 标的代码数组,最多 50 只 |
| trade_session | TradingSession 或 utility::string_t | No | 交易时段,默认 TradingSession::Regular |
| begin_index | long | No | 起始索引,默认 -1 |
| end_index | long | No | 结束索引,默认 -1 |
| limit | int | No | 返回条数上限,默认 100 |
返回
web::json::value JSON 对象
示例
ClientConfig config(false, U("your_config_directory_path"));
QuoteClient quote_client(config);
value symbols = value::array();
symbols[0] = value::string(U("AAPL"));
value result = quote_client.get_trade_tick(symbols);
ucout << result.serialize() << std::endl;返回示例
{
"code": 0,
"message": "success",
"timestamp": 1785528000000,
"data": [
{
"symbol": "AAPL",
"beginIndex": 523400,
"endIndex": 523402,
"items": [
{"time": 1785527980000, "price": 308.90, "volume": 150, "type": "+"},
{"time": 1785527980005, "price": 308.91, "volume": 200, "type": "-"}
]
}
]
}获取深度行情
value QuoteClient::get_quote_depth(const value &symbols, Market market)
说明
获取股票的深度行情(买卖盘口)
参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| symbols | value | Yes | 标的代码数组,最多 50 只 |
| market | Market | No | 市场,默认 Market::US |
返回
web::json::value JSON 对象
示例
ClientConfig config(false, U("your_config_directory_path"));
QuoteClient quote_client(config);
value symbols = value::array();
symbols[0] = value::string(U("AAPL"));
value result = quote_client.get_quote_depth(symbols, Market::US);
ucout << result.serialize() << std::endl;返回示例
{
"code": 0,
"message": "success",
"timestamp": 1785528000000,
"data": [
{
"symbol": "AAPL",
"asks": [
{"price": 310.97, "volume": 400, "count": 0},
{"price": 310.98, "volume": 200, "count": 0}
],
"bids": [
{"price": 310.89, "volume": 80, "count": 0},
{"price": 310.88, "volume": 300, "count": 0}
]
}
]
}获取股票经纪商席位
value QuoteClient::get_stock_broker(utility::string_t symbol, int limit, utility::string_t lang, utility::string_t sec_type)
说明
获取港股经纪商买卖席位数据
参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| symbol | utility::string_t | Yes | 港股代码,如 U("00700") |
| limit | int | No | 返回条数,默认 40 |
| lang | utility::string_t | No | 语言,默认空 |
| sec_type | utility::string_t | No | 合约类型,默认空 |
返回
web::json::value JSON 对象
返回示例
{
"code": 0,
"message": "success",
"timestamp": 1785528000000,
"data": {
"symbol": "00700",
"bidBroker": [
{"id": "8137", "name": "法巴证券", "position": [{"price": 388.60, "volume": 500}]}
],
"askBroker": [
{"id": "4374", "name": "汇丰证券", "position": [{"price": 389.00, "volume": 200}]}
]
}
}获取资金分布
value QuoteClient::get_capital_distribution(utility::string_t symbol, Market market, utility::string_t lang)
说明
获取股票的资金分布数据
参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| symbol | utility::string_t | Yes | 标的代码 |
| market | Market | No | 市场,默认 Market::US |
| lang | utility::string_t | No | 语言,默认空 |
返回
web::json::value JSON 对象
返回示例
{
"code": 0,
"message": "success",
"timestamp": 1785528000000,
"data": {
"symbol": "AAPL",
"netInflow": -125000000.0,
"superIn": 850000000.0,
"superOut": 920000000.0,
"bigIn": 320000000.0,
"bigOut": 280000000.0,
"midIn": 150000000.0,
"midOut": 145000000.0,
"smallIn": 80000000.0,
"smallOut": 80000000.0
}
}获取资金流向
value QuoteClient::get_capital_flow(utility::string_t symbol, Market market, CapitalPeriod period, time_t begin_time, time_t end_time, int limit)
说明
获取股票的资金流向数据
参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| symbol | utility::string_t | Yes | 标的代码 |
| market | Market 或 utility::string_t | No | 市场,默认 Market::US |
| period | CapitalPeriod 或 utility::string_t | No | 周期,默认 CapitalPeriod::DAY。可选值:intraday/day/week/month/year/quarter/6month |
| begin_time | time_t | No | 起始时间戳,默认 -1 |
| end_time | time_t | No | 结束时间戳,默认 -1 |
| limit | int | No | 返回条数,默认 200 |
返回
web::json::value JSON 对象
示例
ClientConfig config(false, U("your_config_directory_path"));
QuoteClient quote_client(config);
value result = quote_client.get_capital_flow(U("AAPL"), Market::US, CapitalPeriod::DAY);
ucout << result.serialize() << std::endl;返回示例
{
"code": 0,
"message": "success",
"timestamp": 1785528000000,
"data": {
"symbol": "AAPL",
"items": [
{"time": 1785441600000, "netInflow": -125000000.0, "superIn": 850000000.0, "superOut": 920000000.0}
]
}
}查询交易榜单
value QuoteClient::get_trade_rank(utility::string_t market = U(""), utility::string_t lang = U(""))
说明
查询指定市场的交易榜单。
参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| market | utility::string_t | No | 市场代码;SDK 默认空 |
| lang | utility::string_t | No | 语言;SDK 默认空 |
返回
web::json::value 榜单数组;字段由服务端榜单类型决定。
示例
auto result = quote_client.get_trade_rank(U("US"), U("en_US"));响应依据:榜单结构由服务端定义,SDK 仓库没有固定模型或 fixture。
查询经纪商持仓
value QuoteClient::get_broker_hold(utility::string_t market = U("HK"), utility::string_t order_by = U(""), utility::string_t direction = U(""), int limit = 0, int page = 0, utility::string_t lang = U(""))
说明
分页查询香港市场经纪商持仓数据。
参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| market | utility::string_t | No | SDK 默认 U("HK") |
| order_by | utility::string_t | No | 排序字段;SDK 默认空 |
| direction | utility::string_t | No | 排序方向;SDK 默认空 |
| limit | int | No | SDK 默认 0,仅大于 0 时发送 |
| page | int | No | SDK 默认 0,仅大于 0 时发送 |
| lang | utility::string_t | No | 语言;SDK 默认空 |
返回
web::json::value,包含分页信息和经纪商持仓 items。
示例
auto result = quote_client.get_broker_hold(
U("HK"), U("market_value"), U("desc"), 50, 1, U("zh_CN"));响应依据:SDK 返回未建模的 web::json::value;分页和 item 字段以服务端实际响应为准。
Updated 8 days ago
