证券

获取实时行情

签名


pub async fn get_real_time_quote(&self, req: BriefRequest) -> Result<Vec<Brief>, TigerError>

说明

实时快照;symbols 必填;include_hour_tradingsec_typelang 默认不发送。需对应市场实时权限。

已废弃别名get_brief 是本方法的转发别名,SDK 自 0.5.1 起标记 #[deprecated],无额外行为。新代码请直接使用 get_real_time_quote

参数

参数Rust 类型必填性/条件SDK 默认值
req.symbolsOption<Vec<String>>服务端必填;SDK 不预校验None(不序列化)
req.include_hour_tradingOption<bool>可选None(不序列化)
req.sec_typeOption<String>可选None(不序列化)
req.langOption<String>可选None(不序列化)

返回

Result<Vec<Brief>, TigerError>

字段类型说明
symbolString股票代码
openf64开盘价
highf64最高价
lowf64最低价
closef64收盘价
pre_closef64前收价
latest_pricef64最新价
latest_timei64最新成交时间(毫秒时间戳)
ask_pricef64卖一价
ask_sizei64卖一量
bid_pricef64买一价
bid_sizei64买一量
volumei64成交量
statusString交易状态
adj_pre_closef64复权前收价
changef64涨跌额
change_ratef64涨跌幅
amplitudef64振幅
expiryString到期日
strikeString行权价
rightString期权方向
multiplieri32合约乘数
open_interesti64未平仓量

示例


use std::sync::Arc;

use tigeropen::client::http_client::HttpClient;

use tigeropen::config::ClientConfig;

use tigeropen::error::TigerError;

use tigeropen::model::order::*;

use tigeropen::model::quote::*;

use tigeropen::model::quote_requests::*;

use tigeropen::model::trade_requests::*;

use tigeropen::push::*;

use tigeropen::quote::QuoteClient;

use tigeropen::trade::TradeClient;

async fn example_get_real_time_quote(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {

    let result_0 = quote.get_real_time_quote(BriefRequest { symbols: Some(vec!["AAPL".into()]), ..Default::default() }).await?;

    Ok(())

}

返回示例

[
  {
    "symbol": "AAPL",
    "open": 192.3,
    "high": 195.99,
    "low": 191.85,
    "close": 195.5,
    "pre_close": 192.53,
    "latest_price": 195.5,
    "latest_time": 1738180800000
  }
]

获取延迟行情

签名


pub async fn get_delayed_quote( &self, req: DelayedQuoteRequest, ) -> Result<Vec<Brief>, TigerError>

说明

延迟快照;symbols 必填,sec_type/lang 可选。

已废弃别名get_stock_delay_briefs 是本方法的转发别名,SDK 自 0.5.1 起标记 #[deprecated],无额外行为。新代码请直接使用 get_delayed_quote

参数

参数Rust 类型必填性/条件SDK 默认值
req.symbolsOption<Vec<String>>服务端必填;SDK 不预校验None(不序列化)
req.sec_typeOption<String>可选None(不序列化)
req.langOption<String>可选None(不序列化)

返回

Result<Vec<Brief>, TigerError>

字段类型说明
symbolString股票代码
openf64开盘价
highf64最高价
lowf64最低价
closef64收盘价
pre_closef64前收价
latest_pricef64最新价
latest_timei64最新成交时间(毫秒时间戳)
ask_pricef64卖一价
ask_sizei64卖一量
bid_pricef64买一价
bid_sizei64买一量
volumei64成交量
statusString交易状态
adj_pre_closef64复权前收价
changef64涨跌额
change_ratef64涨跌幅
amplitudef64振幅
expiryString到期日
strikeString行权价
rightString期权方向
multiplieri32合约乘数
open_interesti64未平仓量

示例


use std::sync::Arc;

use tigeropen::client::http_client::HttpClient;

use tigeropen::config::ClientConfig;

use tigeropen::error::TigerError;

use tigeropen::model::order::*;

use tigeropen::model::quote::*;

use tigeropen::model::quote_requests::*;

use tigeropen::model::trade_requests::*;

use tigeropen::push::*;

use tigeropen::quote::QuoteClient;

use tigeropen::trade::TradeClient;

async fn example_get_delayed_quote(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {

    let result_0 = quote.get_delayed_quote(DelayedQuoteRequest { symbols: Some(vec!["AAPL".into()]), ..Default::default() }).await?;

    Ok(())

}

返回示例

[
  {
    "symbol": "AAPL",
    "open": 192.3,
    "high": 195.99,
    "low": 191.85,
    "close": 195.5,
    "pre_close": 192.53,
    "latest_price": 195.5,
    "latest_time": 1738180800000
  }
]


获取 K 线数据

签名


pub async fn get_kline(&self, req: KlineRequest) -> Result<Vec<Kline>, TigerError>

说明

K 线;symbolsperiod 必填;right、毫秒时间窗、索引、limitpage_token、交易时段可选。

参数

参数Rust 类型必填性/条件SDK 默认值
req.symbolsOption<Vec<String>>服务端必填;SDK 不预校验None(不序列化)
req.periodOption<String>服务端必填;SDK 不预校验None(不序列化)
req.rightOption<String>可选None(不序列化)
req.begin_timeOption<i64>可选None(不序列化)
req.end_timeOption<i64>可选None(不序列化)
req.limitOption<i32>可选None(不序列化)
req.begin_indexOption<i32>可选None(不序列化)
req.end_indexOption<i32>可选None(不序列化)
req.page_tokenOption<String>可选None(不序列化)
req.trade_sessionOption<String>可选None(不序列化)
req.dateOption<String>可选None(不序列化)
req.with_fundamentalOption<bool>可选None(不序列化)
req.sec_typeOption<String>可选None(不序列化)
req.langOption<String>可选None(不序列化)

返回

Result<Vec<Kline>, TigerError>

字段类型说明
symbolString股票代码
periodString周期
next_page_tokenString下一页标记
itemsVec数据列表

示例


use std::sync::Arc;

use tigeropen::client::http_client::HttpClient;

use tigeropen::config::ClientConfig;

use tigeropen::error::TigerError;

use tigeropen::model::order::*;

use tigeropen::model::quote::*;

use tigeropen::model::quote_requests::*;

use tigeropen::model::trade_requests::*;

use tigeropen::push::*;

use tigeropen::quote::QuoteClient;

use tigeropen::trade::TradeClient;

async fn example_get_kline(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {

    let result_0 = quote.get_kline(KlineRequest { symbols: Some(vec!["AAPL".into()]), period: Some("day".into()), ..Default::default() }).await?;

    Ok(())

}

返回示例

[
  {
    "symbol": "AAPL",
    "period": "day",
    "next_page_token": "eyJzIjoiMTczODE4MDgwMDAwMCJ9",
    "items": [
      {
        "time": 1738094400000,
        "volume": 52314200,
        "open": 192.3,
        "close": 193.85,
        "high": 194.2,
        "low": 191.5,
        "amount": 10145000000.0
      },
      {
        "time": 1738008000000,
        "volume": 48120300,
        "open": 191.5,
        "close": 192.53,
        "high": 193.1,
        "low": 190.8,
        "amount": 9280000000.0
      }
    ]
  }
]

分页获取 K 线数据

签名


pub async fn get_kline_by_page( &self, req: KlineByPageRequest, ) -> Result<Vec<KlineItem>, TigerError>

说明

客户端倒序分页;page_size SDK 默认 200,total_size 默认 1000;使用最早 bar 的 time - 1 继续。

参数

参数Rust 类型必填性/条件SDK 默认值
req.symbolsOption<Vec<String>>可选None(不序列化)
req.periodOption<String>可选None(不序列化)
req.begin_timeOption<i64>可选None(不序列化)
req.end_timeOption<i64>可选None(不序列化)
req.total_sizeOption<i32>可选None 时 1000
req.page_sizeOption<i32>可选None 时 200
req.rightOption<String>可选None(不序列化)
req.trade_sessionOption<String>可选None(不序列化)
req.langOption<String>可选None(不序列化)

返回

Result<Vec<KlineItem>, TigerError>

字段类型说明
timei64时间戳
volumei64成交量
openf64开盘价
closef64收盘价
highf64最高价
lowf64最低价
amountf64成交额

示例


use std::sync::Arc;

use tigeropen::client::http_client::HttpClient;

use tigeropen::config::ClientConfig;

use tigeropen::error::TigerError;

use tigeropen::model::order::*;

use tigeropen::model::quote::*;

use tigeropen::model::quote_requests::*;

use tigeropen::model::trade_requests::*;

use tigeropen::push::*;

use tigeropen::quote::QuoteClient;

use tigeropen::trade::TradeClient;

async fn example_get_kline_by_page(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {

    let result_0 = quote.get_kline_by_page(KlineByPageRequest { ..Default::default() }).await?;

    Ok(())

}

返回示例

[
  {
    "time": 1738180800000,
    "volume": 58263100,
    "open": 192.3,
    "close": 195.5,
    "high": 195.99,
    "low": 191.85,
    "amount": 11329847520.0
  }
]

获取分时数据

签名


pub async fn get_timeline(&self, symbols: &[&str]) -> Result<Vec<Timeline>, TigerError>

说明

当日分时,v3;非空 symbols。需分时权限。

参数

参数Rust 类型必填性/条件SDK 默认值
symbols&[&str]必填

返回

Result<Vec<Timeline>, TigerError>

字段类型说明
symbolString股票代码
periodString周期
pre_closef64前收价
intradayOption盘中分时数据
pre_hoursOption盘前分时数据
after_hoursOption盘后分时数据

示例


use std::sync::Arc;

use tigeropen::client::http_client::HttpClient;

use tigeropen::config::ClientConfig;

use tigeropen::error::TigerError;

use tigeropen::model::order::*;

use tigeropen::model::quote::*;

use tigeropen::model::quote_requests::*;

use tigeropen::model::trade_requests::*;

use tigeropen::push::*;

use tigeropen::quote::QuoteClient;

use tigeropen::trade::TradeClient;

async fn example_get_timeline(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {

    let result_0 = quote.get_timeline(&["AAPL"]).await?;

    Ok(())

}

返回示例

[
  {
    "symbol": "AAPL",
    "period": "day",
    "pre_close": 192.53,
    "intraday": null,
    "pre_hours": null,
    "after_hours": null
  }
]

获取历史分时数据

签名


pub async fn get_timeline_history( &self, req: TimelineHistoryRequest, ) -> Result<Vec<Timeline>, TigerError>

说明

历史分时;symbols 必填;date、复权、时段、语言可选。

参数

参数Rust 类型必填性/条件SDK 默认值
req.symbolsOption<Vec<String>>服务端必填;SDK 不预校验None(不序列化)
req.dateOption<String>可选None(不序列化)
req.rightOption<String>可选None(不序列化)
req.trade_sessionOption<String>可选None(不序列化)
req.langOption<String>可选None(不序列化)

返回

Result<Vec<Timeline>, TigerError>

字段类型说明
symbolString股票代码
periodString周期
pre_closef64前收价
intradayOption盘中分时数据
pre_hoursOption盘前分时数据
after_hoursOption盘后分时数据

示例


use std::sync::Arc;

use tigeropen::client::http_client::HttpClient;

use tigeropen::config::ClientConfig;

use tigeropen::error::TigerError;

use tigeropen::model::order::*;

use tigeropen::model::quote::*;

use tigeropen::model::quote_requests::*;

use tigeropen::model::trade_requests::*;

use tigeropen::push::*;

use tigeropen::quote::QuoteClient;

use tigeropen::trade::TradeClient;

async fn example_get_timeline_history(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {

    let result_0 = quote.get_timeline_history(TimelineHistoryRequest { symbols: Some(vec!["AAPL".into()]), ..Default::default() }).await?;

    Ok(())

}

返回示例

[
  {
    "symbol": "AAPL",
    "period": "day",
    "pre_close": 192.53,
    "intraday": null,
    "pre_hours": null,
    "after_hours": null
  }
]

获取逐笔成交

签名


pub async fn get_trade_tick( &self, req: TradeTickRequest, ) -> Result<Vec<TradeTick>, TigerError>

说明

股票逐笔;symbols 必填;索引、limit、时段可选。

参数

参数Rust 类型必填性/条件SDK 默认值
req.symbolsOption<Vec<String>>服务端必填;SDK 不预校验None(不序列化)
req.begin_indexOption<i32>可选None(不序列化)
req.end_indexOption<i32>可选None(不序列化)
req.limitOption<i32>可选None(不序列化)
req.trade_sessionOption<String>可选None(不序列化)
req.langOption<String>可选None(不序列化)

返回

Result<Vec<TradeTick>, TigerError>

字段类型说明
symbolString股票代码
begin_indexi64起始索引
end_indexi64结束索引
itemsVec数据列表

示例


use std::sync::Arc;

use tigeropen::client::http_client::HttpClient;

use tigeropen::config::ClientConfig;

use tigeropen::error::TigerError;

use tigeropen::model::order::*;

use tigeropen::model::quote::*;

use tigeropen::model::quote_requests::*;

use tigeropen::model::trade_requests::*;

use tigeropen::push::*;

use tigeropen::quote::QuoteClient;

use tigeropen::trade::TradeClient;

async fn example_get_trade_tick(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {

    let result_0 = quote.get_trade_tick(TradeTickRequest { symbols: Some(vec!["AAPL".into()]), ..Default::default() }).await?;

    Ok(())

}

返回示例

[
  {
    "symbol": "AAPL",
    "begin_index": 0,
    "end_index": 30,
    "items": [
      {
        "time": 1738180750000,
        "price": 195.5,
        "volume": 100,
        "type": "+"
      },
      {
        "time": 1738180745000,
        "price": 195.49,
        "volume": 50,
        "type": "-"
      }
    ]
  }
]

获取深度行情

签名


pub async fn get_quote_depth(&self, req: QuoteDepthRequest) -> Result<Vec<Depth>, TigerError>

说明

盘口;symbols 必填,market/trade_session 可选。需 Level 2 等相应权限。

参数

参数Rust 类型必填性/条件SDK 默认值
req.symbolsOption<Vec<String>>服务端必填;SDK 不预校验None(不序列化)
req.marketOption<String>可选None(不序列化)
req.trade_sessionOption<String>可选None(不序列化)
req.langOption<String>可选None(不序列化)

返回

Result<Vec<Depth>, TigerError>

字段类型说明
symbolString股票代码
asksVec卖盘档位列表
bidsVec买盘档位列表

示例


use std::sync::Arc;

use tigeropen::client::http_client::HttpClient;

use tigeropen::config::ClientConfig;

use tigeropen::error::TigerError;

use tigeropen::model::order::*;

use tigeropen::model::quote::*;

use tigeropen::model::quote_requests::*;

use tigeropen::model::trade_requests::*;

use tigeropen::push::*;

use tigeropen::quote::QuoteClient;

use tigeropen::trade::TradeClient;

async fn example_get_quote_depth(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {

    let result_0 = quote.get_quote_depth(QuoteDepthRequest { symbols: Some(vec!["AAPL".into()]), ..Default::default() }).await?;

    Ok(())

}

返回示例

[
  {
    "symbol": "AAPL",
    "asks": [
      {
        "price": 195.51,
        "volume": 200
      },
      {
        "price": 195.52,
        "volume": 350
      }
    ],
    "bids": [
      {
        "price": 195.49,
        "volume": 150
      },
      {
        "price": 195.48,
        "volume": 400
      }
    ]
  }
]

获取经纪商席位

签名


pub async fn get_stock_broker( &self, req: StockBrokerRequest, ) -> Result<Option<StockBroker>, TigerError>

说明

券商席位;symbol 必填,limit/sec_type 可选;港股相关权限。

参数

参数Rust 类型必填性/条件SDK 默认值
req.symbolOption<String>服务端必填;SDK 不预校验None(不序列化)
req.limitOption<i32>可选None(不序列化)
req.sec_typeOption<String>可选None(不序列化)
req.langOption<String>可选None(不序列化)

返回

Result<Option<StockBroker>, TigerError>

字段类型说明
symbolString股票代码
level_ask_listVec卖盘券商席位列表
level_bid_listVec买盘券商席位列表

示例


use std::sync::Arc;

use tigeropen::client::http_client::HttpClient;

use tigeropen::config::ClientConfig;

use tigeropen::error::TigerError;

use tigeropen::model::order::*;

use tigeropen::model::quote::*;

use tigeropen::model::quote_requests::*;

use tigeropen::model::trade_requests::*;

use tigeropen::push::*;

use tigeropen::quote::QuoteClient;

use tigeropen::trade::TradeClient;

async fn example_get_stock_broker(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {

    let result_0 = quote.get_stock_broker(StockBrokerRequest { symbol: Some("AAPL".into()), ..Default::default() }).await?;

    Ok(())

}

返回示例

{
  "symbol": "AAPL",
  "level_ask_list": [
    {
      "level": 1,
      "broker_count": 3,
      "broker_ids": [
        "5860",
        "4374",
        "6998"
      ]
    }
  ],
  "level_bid_list": [
    {
      "level": 1,
      "broker_count": 2,
      "broker_ids": [
        "6998",
        "4374"
      ]
    }
  ]
}

获取资金流向

签名


pub async fn get_capital_flow( &self, symbol: &str, market: &str, period: &str, ) -> Result<Option<CapitalFlow>, TigerError>

说明

资金流;三参数必填;需资金流权限。

参数

参数Rust 类型必填性/条件SDK 默认值
symbol&str必填
market&str必填
period&str必填

返回

Result<Option<CapitalFlow>, TigerError>

字段类型说明
symbolString股票代码
periodString周期
itemsVec数据列表

示例


use std::sync::Arc;

use tigeropen::client::http_client::HttpClient;

use tigeropen::config::ClientConfig;

use tigeropen::error::TigerError;

use tigeropen::model::order::*;

use tigeropen::model::quote::*;

use tigeropen::model::quote_requests::*;

use tigeropen::model::trade_requests::*;

use tigeropen::push::*;

use tigeropen::quote::QuoteClient;

use tigeropen::trade::TradeClient;

async fn example_get_capital_flow(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {

    let result_0 = quote.get_capital_flow("AAPL", "US", "day").await?;

    Ok(())

}

返回示例

{
  "symbol": "AAPL",
  "period": "day",
  "items": [
    {
      "netInflow": -109057032.20,
      "time": "2025-07-28",
      "timestamp": 1753660800000
    },
    {
      "netInflow": 52340018.55,
      "time": "2025-07-25",
      "timestamp": 1753488000000
    }
  ]
}

获取资金分布

签名


pub async fn get_capital_distribution( &self, symbol: &str, market: &str, ) -> Result<Option<CapitalDistribution>, TigerError>

说明

资金分布;两参数必填;需资金流权限。

参数

参数Rust 类型必填性/条件SDK 默认值
symbol&str必填
market&str必填

返回

Result<Option<CapitalDistribution>, TigerError>

字段类型说明
symbolString股票代码
net_inflowf64净流入
in_allf64总流入
in_bigf64大单流入
in_midf64中单流入
in_smallf64小单流入
out_allf64总流出
out_bigf64大单流出
out_midf64中单流出
out_smallf64小单流出

示例


use std::sync::Arc;

use tigeropen::client::http_client::HttpClient;

use tigeropen::config::ClientConfig;

use tigeropen::error::TigerError;

use tigeropen::model::order::*;

use tigeropen::model::quote::*;

use tigeropen::model::quote_requests::*;

use tigeropen::model::trade_requests::*;

use tigeropen::push::*;

use tigeropen::quote::QuoteClient;

use tigeropen::trade::TradeClient;

async fn example_get_capital_distribution(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {

    let result_0 = quote.get_capital_distribution("AAPL", "US").await?;

    Ok(())

}

返回示例

{
  "symbol": "AAPL",
  "net_inflow": -52340018.55,
  "in_all": 2850000000.0,
  "in_big": 1520000000.0,
  "in_mid": 830000000.0,
  "in_small": 500000000.0,
  "out_all": 2902340018.55,
  "out_big": 1600000000.0
}

获取卖空数据

签名


pub async fn get_short_interest( &self, req: ShortInterestRequest, ) -> Result<Vec<ShortInterest>, TigerError>

说明

做空数据;symbols 必填;主要适用美股。

参数

参数Rust 类型必填性/条件SDK 默认值
req.symbolsOption<Vec<String>>服务端必填;SDK 不预校验None(不序列化)
req.langOption<String>可选None(不序列化)

返回

Result<Vec<ShortInterest>, TigerError>

字段类型说明
symbolString股票代码
settlement_dateString结算日
short_interestf64做空股数
avg_daily_volumef64日均成交量
days_to_coverf64回补天数
percent_of_floatf64流通股比例
short_interest_previousf64上期做空股数
percent_changef64变化百分比

示例


use std::sync::Arc;

use tigeropen::client::http_client::HttpClient;

use tigeropen::config::ClientConfig;

use tigeropen::error::TigerError;

use tigeropen::model::order::*;

use tigeropen::model::quote::*;

use tigeropen::model::quote_requests::*;

use tigeropen::model::trade_requests::*;

use tigeropen::push::*;

use tigeropen::quote::QuoteClient;

use tigeropen::trade::TradeClient;

async fn example_get_short_interest(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {

    let result_0 = quote.get_short_interest(ShortInterestRequest { symbols: Some(vec!["AAPL".into()]), ..Default::default() }).await?;

    Ok(())

}

返回示例

[
  {
    "symbol": "AAPL",
    "settlement_date": "2025-01-15",
    "short_interest": 98520000.0,
    "avg_daily_volume": 58263100.0,
    "days_to_cover": 1.69,
    "percent_of_float": 0.64,
    "short_interest_previous": 95130000.0,
    "percent_change": 3.56
  }
]

获取交易榜单

签名


pub async fn get_trade_rank( &self, req: TradeRankRequest, ) -> Result<Vec<TradeRankItem>, TigerError>

说明

市场成交榜;market 必填。

参数

参数Rust 类型必填性/条件SDK 默认值
req.marketOption<String>服务端必填;SDK 不预校验None(不序列化)
req.langOption<String>可选None(不序列化)

返回

Result<Vec<TradeRankItem>, TigerError>

字段类型说明
symbolString股票代码
nameString名称
latest_pricef64最新价
changef64涨跌额
change_ratef64涨跌幅
volumei64成交量
amountf64成交额

示例


use std::sync::Arc;

use tigeropen::client::http_client::HttpClient;

use tigeropen::config::ClientConfig;

use tigeropen::error::TigerError;

use tigeropen::model::order::*;

use tigeropen::model::quote::*;

use tigeropen::model::quote_requests::*;

use tigeropen::model::trade_requests::*;

use tigeropen::push::*;

use tigeropen::quote::QuoteClient;

use tigeropen::trade::TradeClient;

async fn example_get_trade_rank(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {

    let result_0 = quote.get_trade_rank(TradeRankRequest { market: Some("US".into()), ..Default::default() }).await?;

    Ok(())

}

返回示例

[
  {
    "symbol": "AAPL",
    "name": "Apple Inc",
    "latest_price": 195.5,
    "change": 2.97,
    "change_rate": 0.0154,
    "volume": 58263100,
    "amount": 11329847520.0
  }
]


Did this page help you?