证券

获取市场状态

当前页面还覆盖以下已实现的原始 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)

说明

获取指定市场状态,返回市场名称、市场状态(未开盘、交易中、已收盘等)和最近的交易时间。

参数

参数名类型是否必填描述
marketutility::string_tYes市场,如 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)

说明

获取指定市场的交易日历

参数

参数名类型是否必填描述
marketMarket 或 utility::string_tYes市场,如 Market::US 或 U("US")
begin_dateutility::string_tYes起始日期,格式 "yyyy-MM-dd",如 U("2024-01-01")
end_dateutility::string_tYes结束日期,格式 "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)

说明

获取指定市场的所有标的代码列表

参数

参数名类型是否必填描述
marketMarketNo市场枚举,Market::US / Market::HK / Market::ALL,默认 Market::ALL
include_otcboolNo是否包含 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)

说明

获取指定市场的所有标的代码及名称

参数

参数名类型是否必填描述
marketMarketNo市场枚举,Market::US / Market::HK / Market::ALL,默认 Market::ALL
include_otcboolNo是否包含 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)

说明

获取股票的实时行情快照,包含最新价、开盘价、最高价、最低价等

参数

参数名类型是否必填描述
symbolsvalueYes标的代码数组,最多 100 只,如 value::array({value::string(U("AAPL"))})
include_hour_tradingboolNo是否包含盘前盘后数据,默认 false
include_ask_bidboolNo是否包含买卖盘口数据,默认 false
rightQuoteRightNo复权类型,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)

说明

获取当日分时数据

参数

参数名类型是否必填描述
symbolsvalueYes标的代码数组,最多 50 只
include_hour_tradingboolNo是否包含盘前盘后数据,默认 false
begin_timetime_tNo起始时间戳(毫秒),默认 -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)

说明

获取指定日期的历史分时数据

参数

参数名类型是否必填描述
symbolsvalueYes标的代码数组,最多 50 只
dateutility::string_tYes日期,格式 "yyyy-MM-dd",如 U("2024-01-15")
rightQuoteRightNo复权类型,默认 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 线

参数

参数名类型是否必填描述
symbolsvalueYes标的代码数组,最多 50 只
periodBarPeriod 或 utility::string_tNoK 线周期,如 BarPeriod::DAY 或 U("day"),默认 DAY。可选值:day/week/month/year/1min/3min/5min/10min/15min/30min/60min
begin_timetime_tNo起始时间戳(毫秒),默认 -1
end_timetime_tNo结束时间戳(毫秒),默认 -1
rightQuoteRight 或 utility::string_tNo复权类型,默认 QuoteRight::br 或 U("br")
limitintNo返回条数上限,默认 251
page_tokenutility::string_tNo翻页标记,默认空

返回

web::json::value JSON 对象,或 vector<Kline> Kline 对象列表(使用对应的重载版本)

Kline 对象属性

属性名类型描述
symbolutility::string_t标的代码
periodutility::string_tK 线周期
itemsvector<KlineItem>K 线数据列表

KlineItem 对象属性

属性名类型描述
opendouble开盘价
highdouble最高价
lowdouble最低价
closedouble收盘价
volumelong long成交量
timetime_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 对象列表

参数

参数名类型是否必填描述
symbolsvalueYes标的代码数组,最多 50 只

返回

vector<RealtimeQuote> 实时行情对象列表

RealtimeQuote 对象属性

属性名类型描述
symbolutility::string_t标的代码
opendouble开盘价
highdouble最高价
lowdouble最低价
closedouble收盘价
pre_closedouble昨收价
latest_pricedouble最新价
latest_timetime_t最新成交时间
volumelong long成交量
ask_pricedouble卖一价
ask_sizedouble卖一量
bid_pricedouble买一价
bid_sizedouble买一量
statusutility::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)

说明

获取股票的逐笔成交数据

参数

参数名类型是否必填描述
symbolsvalueYes标的代码数组,最多 50 只
trade_sessionTradingSession 或 utility::string_tNo交易时段,默认 TradingSession::Regular
begin_indexlongNo起始索引,默认 -1
end_indexlongNo结束索引,默认 -1
limitintNo返回条数上限,默认 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)

说明

获取股票的深度行情(买卖盘口)

参数

参数名类型是否必填描述
symbolsvalueYes标的代码数组,最多 50 只
marketMarketNo市场,默认 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)

说明

获取港股经纪商买卖席位数据

参数

参数名类型是否必填描述
symbolutility::string_tYes港股代码,如 U("00700")
limitintNo返回条数,默认 40
langutility::string_tNo语言,默认空
sec_typeutility::string_tNo合约类型,默认空

返回

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)

说明

获取股票的资金分布数据

参数

参数名类型是否必填描述
symbolutility::string_tYes标的代码
marketMarketNo市场,默认 Market::US
langutility::string_tNo语言,默认空

返回

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)

说明

获取股票的资金流向数据

参数

参数名类型是否必填描述
symbolutility::string_tYes标的代码
marketMarket 或 utility::string_tNo市场,默认 Market::US
periodCapitalPeriod 或 utility::string_tNo周期,默认 CapitalPeriod::DAY。可选值:intraday/day/week/month/year/quarter/6month
begin_timetime_tNo起始时间戳,默认 -1
end_timetime_tNo结束时间戳,默认 -1
limitintNo返回条数,默认 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(""))

说明

查询指定市场的交易榜单。

参数

参数名类型是否必填描述
marketutility::string_tNo市场代码;SDK 默认空
langutility::string_tNo语言;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(""))

说明

分页查询香港市场经纪商持仓数据。

参数

参数名类型是否必填描述
marketutility::string_tNoSDK 默认 U("HK")
order_byutility::string_tNo排序字段;SDK 默认空
directionutility::string_tNo排序方向;SDK 默认空
limitintNoSDK 默认 0,仅大于 0 时发送
pageintNoSDK 默认 0,仅大于 0 时发送
langutility::string_tNo语言;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 字段以服务端实际响应为准。


What’s Next

Did this page help you?