账户与持仓

获取管理的账户

签名


pub async fn get_managed_accounts( &self, req: ManagedAccountsRequest, ) -> Result<Vec<ManagedAccount>, TigerError>

说明

机构主账户;account 默认注入。

参数

参数Rust 类型必填性/条件SDK 默认值
req.accountOption<String>可选;多数 TradeClient 方法在 None 时注入默认账户None(不序列化)
req.langOption<String>可选None(不序列化)

返回

  • TradeClient: Result<Vec<ManagedAccount>, TigerError>.
字段Rust 类型说明
accountString账户
account_typeString账户类型
capabilityString账户能力
statusString账户状态

示例


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_managed_accounts(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {

    let result_0 = trade.get_managed_accounts(ManagedAccountsRequest { ..Default::default() }).await?;

    Ok(())

}

返回示例

[
  {
    "account": "402901",
    "accountType": "GLOBAL",
    "capability": "RegTMargin",
    "status": "TRADING"
  }
]

请求频率

基础限流为 60 次/分钟。


获取环球账户资产

签名


pub async fn get_assets(&self, req: AssetsRequest) -> Result<Vec<Asset>, TigerError>

说明

account 默认注入;segment、market_value 默认不发送。

参数

参数Rust 类型必填性/条件SDK 默认值
req.accountOption<String>可选;多数 TradeClient 方法在 None 时注入默认账户None(不序列化)
req.sub_accountsOption<Vec<String>>可选None(不序列化)
req.segmentOption<bool>可选None(不序列化)
req.market_valueOption<bool>可选None(不序列化)
req.langOption<String>可选None(不序列化)

返回

  • TradeClient: Result<Vec<Asset>, TigerError>.
字段Rust 类型说明
accountString账户
capabilityString账户能力
currencyString币种
buying_powerf64购买力
cash_valuef64现金价值
net_liquidationf64净清算价值
realized_pnlf64已实现盈亏
unrealized_pnlf64未实现盈亏
segmentsVec<AssetSegment>资产分段

AssetSegment 字段:

字段Rust 类型说明
accountString账户
categoryString分段类别
titleString分段标题
net_liquidationf64净清算价值
cash_valuef64现金价值
available_fundsf64可用资金
equity_with_loanf64含借贷权益
excess_liquidityf64超额流动性
accrued_cashf64应计现金
accrued_dividendf64应计股息
init_margin_reqf64初始保证金要求
maint_margin_reqf64维持保证金要求
gross_position_valuef64持仓总市值
leveragef64杠杆

示例


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_assets(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {

    let result_0 = trade.get_assets(AssetsRequest { ..Default::default() }).await?;

    Ok(())

}

返回示例

[
  {
    "account": "402901",
    "capability": "RegTMargin",
    "currency": "USD",
    "buyingPower": 150000.0,
    "cashValue": 85000.0,
    "netLiquidation": 250000.0,
    "realizedPnl": 3200.5,
    "unrealizedPnl": 1850.75
  }
]

请求频率

基础限流为 60 次/分钟。


获取综合/模拟账户资产

签名


pub async fn get_prime_assets( &self, req: AssetsRequest, ) -> Result<Option<PrimeAsset>, TigerError>

说明

综合账户;请求同资产。

参数

参数Rust 类型必填性/条件SDK 默认值
req.accountOption<String>可选;多数 TradeClient 方法在 None 时注入默认账户None(不序列化)
req.sub_accountsOption<Vec<String>>可选None(不序列化)
req.segmentOption<bool>可选None(不序列化)
req.market_valueOption<bool>可选None(不序列化)
req.langOption<String>可选None(不序列化)

返回

  • TradeClient: Result<Option<PrimeAsset>, TigerError>.
字段Rust 类型说明
account_idString账户 ID
update_timestampi64更新时间戳
segmentsVec<PrimeAssetSegment>资产分段

PrimeAssetSegment 字段:

字段Rust 类型说明
capabilityString账户能力
categoryString分段类别
currencyString币种
cash_balancef64现金余额
cash_available_for_tradef64可交易现金
gross_position_valuef64持仓总市值
equity_with_loanf64含借贷权益
net_liquidationf64净清算价值
init_marginf64初始保证金
maintain_marginf64维持保证金
overnight_marginf64隔夜保证金
unrealized_plf64未实现盈亏
unrealized_pl_by_cost_of_carryf64按资金成本计算的未实现盈亏
realized_plf64已实现盈亏
total_today_plf64当日总盈亏
excess_liquidationf64超额流动性
overnight_liquidationf64隔夜流动性
buying_powerf64购买力
locked_fundsf64冻结资金
leveragef64杠杆
uncollectedf64未收资金
currency_assetsVec<CurrencyAsset>分币种资产
consolidated_seg_typesVec<String>合并分段类型

CurrencyAsset 字段:

字段Rust 类型说明
currencyString币种
cash_balancef64现金余额
cash_available_for_tradef64可交易现金
forex_ratef64外汇汇率

示例


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_prime_assets(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {

    let result_0 = trade.get_prime_assets(AssetsRequest { ..Default::default() }).await?;

    Ok(())

}

返回示例

{
  "accountId": "402901",
  "updateTimestamp": 1738180800000,
  "segments": [
    {
      "category": "S",
      "currency": "USD",
      "buyingPower": 150000.0,
      "cash": 85000.0,
      "grossPositionValue": 165000.0
    }
  ]
}

请求频率

基础限流为 60 次/分钟。


获取聚合资产

签名


pub async fn get_aggregate_assets( &self, req: AggregateAssetsRequest, ) -> Result<Option<AggregateAssets>, TigerError>

说明

base_currency/分段可选;仅支持相应综合/机构账户。

参数

参数Rust 类型必填性/条件SDK 默认值
req.accountOption<String>可选;多数 TradeClient 方法在 None 时注入默认账户None(不序列化)
req.base_currencyOption<String>可选None(不序列化)
req.seg_typeOption<String>可选None(不序列化)
req.langOption<String>可选None(不序列化)

返回

  • TradeClient: Result<Option<AggregateAssets>, TigerError>.
字段Rust 类型说明
account_idString账户 ID
net_liquidationf64净清算价值
gross_position_valuef64持仓总市值
cash_balancef64现金余额
base_currencyString基础币种
currency_assetsVec<CurrencyAsset>分币种资产;字段见 获取综合/模拟账户资产

示例


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_aggregate_assets(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {

    let result_0 = trade.get_aggregate_assets(AggregateAssetsRequest { ..Default::default() }).await?;

    Ok(())

}

返回示例

{
  "accountId": "402901",
  "netLiquidation": 250000.0,
  "grossPositionValue": 165000.0,
  "cashBalance": 85000.0,
  "baseCurrency": "USD",
  "currencyAssets": [
    {
      "currency": "USD",
      "cashBalance": 85000.0,
      "netLiquidation": 250000.0
    }
  ]
}

请求频率

基础限流为 60 次/分钟。


获取历史资产分析

签名


pub async fn get_analytics_asset( &self, req: AnalyticsAssetRequest, ) -> Result<Vec<AnalyticsAsset>, TigerError>

说明

起止为 YYYY-MM-DD;分段可选。

参数

参数Rust 类型必填性/条件SDK 默认值
req.accountOption<String>可选;多数 TradeClient 方法在 None 时注入默认账户None(不序列化)
req.seg_typeOption<String>可选None(不序列化)
req.start_dateOption<String>可选None(不序列化)
req.end_dateOption<String>可选None(不序列化)
req.langOption<String>可选None(不序列化)

返回

  • TradeClient: Result<Vec<AnalyticsAsset>, TigerError>.
字段Rust 类型说明
dateString日期
holding_valuef64持仓价值
cash_balancef64现金余额
pnlf64盈亏
pnl_ratef64盈亏率
net_value_indexf64净值指数
currencyString币种
seg_typeString分段类型

示例


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_analytics_asset(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {

    let result_0 = trade.get_analytics_asset(AnalyticsAssetRequest { ..Default::default() }).await?;

    Ok(())

}

返回示例

[
  {
    "date": "2025-01-29",
    "holdingValue": 165000.0,
    "cashBalance": 85000.0,
    "pnl": 2350.8,
    "pnlRate": 0.0142,
    "netValueIndex": 1.0142,
    "currency": "USD",
    "segType": "SEC"
  }
]

获取持仓

签名


pub async fn get_positions(&self, req: PositionsRequest) -> Result<Vec<Position>, TigerError>

说明

account 默认注入;可按类型、币种、市场、symbol、子账户、期权属性过滤。请求对象没有分页控制字段。

参数

参数Rust 类型必填性/条件SDK 默认值
req.accountOption<String>可选;多数 TradeClient 方法在 None 时注入默认账户None(不序列化)
req.sec_typeOption<String>可选None(不序列化)
req.currencyOption<String>可选None(不序列化)
req.marketOption<String>可选None(不序列化)
req.symbolOption<String>可选None(不序列化)
req.sub_accountsOption<Vec<String>>可选None(不序列化)
req.expiryOption<String>可选None(不序列化)
req.strikeOption<String>可选None(不序列化)
req.rightOption<String>可选None(不序列化)
req.asset_quote_typeOption<String>可选None(不序列化)
req.langOption<String>可选None(不序列化)

返回

  • TradeClient: Result<Vec<Position>, TigerError>.
字段Rust 类型说明
accountOption<String>账户
symbolOption<String>标的代码
sec_typeOption<String>证券类型
marketOption<String>市场
currencyOption<String>币种
positionOption<i64>持仓数量
average_costOption<f64>平均成本
market_valueOption<f64>市值
realized_pnlOption<f64>已实现盈亏
unrealized_pnlOption<f64>未实现盈亏
unrealized_pnl_percentOption<f64>未实现盈亏率
contract_idOption<i64>合约 ID
identifierOption<String>合约标识符
nameOption<String>合约名称
latest_priceOption<f64>最新价
multiplierOption<f64>合约乘数

示例


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_positions(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {

    let result_0 = trade.get_positions(PositionsRequest { ..Default::default() }).await?;

    Ok(())

}

返回示例

[
  {
    "account": "402901",
    "symbol": "AAPL",
    "secType": "STK",
    "market": "US",
    "currency": "USD",
    "position": 100,
    "averageCost": 178.35,
    "marketValue": 19550.0
  }
]

请求频率

基础限流为 60 次/分钟。


预估可交易数量

签名


pub async fn get_estimate_tradable_quantity( &self, req: EstimateTradableQuantityRequest, ) -> Result<Option<EstimateTradableQuantity>, TigerError>

说明

symbol/sec_type/action 必填;限价类型需 limit_price;衍生品字段条件必填。

参数

参数Rust 类型必填性/条件SDK 默认值
req.accountOption<String>可选;多数 TradeClient 方法在 None 时注入默认账户None(不序列化)
req.symbolOption<String>服务端必填;SDK 不预校验None(不序列化)
req.sec_typeOption<String>服务端必填;SDK 不预校验None(不序列化)
req.actionOption<String>服务端必填;SDK 不预校验None(不序列化)
req.order_typeOption<String>可选None(不序列化)
req.limit_priceOption<f64>可选None(不序列化)
req.marketOption<String>可选None(不序列化)
req.currencyOption<String>可选None(不序列化)
req.expiryOption<String>可选None(不序列化)
req.strikeOption<String>可选None(不序列化)
req.rightOption<String>可选None(不序列化)
req.langOption<String>可选None(不序列化)

返回

  • TradeClient: Result<Option<EstimateTradableQuantity>, TigerError>.
字段Rust 类型说明
tradable_quantityf64可交易数量
max_cash_buy_quantityf64最大现金买入数量
max_margin_buy_quantityf64最大融资买入数量
max_short_sell_quantityf64最大卖空数量
max_position_sell_quantityf64最大持仓卖出数量
cash_buying_powerf64现金购买力
currencyString币种

示例


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_estimate_tradable_quantity(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {

    let result_0 = trade.get_estimate_tradable_quantity(EstimateTradableQuantityRequest { symbol: Some("AAPL".into()), sec_type: Some("STK".into()), action: Some("BUY".into()), ..Default::default() }).await?;

    Ok(())

}

返回示例

{
  "tradableQuantity": 500,
  "maxCashBuyQuantity": 430,
  "maxMarginBuyQuantity": 760,
  "maxShortSellQuantity": 300,
  "maxPositionSellQuantity": 100,
  "cashBuyingPower": 85000.0,
  "currency": "USD"
}

请求频率

基础限流为 60 次/分钟。


获取衍生品合约

签名


pub async fn get_derivative_contracts( &self, req: DerivativeContractsRequest, ) -> Result<Vec<Contract>, TigerError>

说明

symbols/sec_type 必填;expiry 可选;账户默认注入。

参数

参数Rust 类型必填性/条件SDK 默认值
req.accountOption<String>可选;多数 TradeClient 方法在 None 时注入默认账户None(不序列化)
req.symbolsOption<Vec<String>>可选None(不序列化)
req.sec_typeOption<String>可选None(不序列化)
req.expiryOption<String>可选None(不序列化)
req.langOption<String>可选None(不序列化)

返回

  • TradeClient: Result<Vec<Contract>, TigerError>.
字段Rust 类型说明
contract_idOption<i64>合约 ID
symbolString标的代码
sec_typeString证券类型
currencyOption<String>币种
exchangeOption<String>交易所
primary_exchangeOption<String>主交易所
expiryOption<String>到期日
strikeOption<f64>行权价
rightOption<String>PUT/CALL
multiplierOption<f64>合约乘数
identifierOption<String>合约标识符
nameOption<String>合约名称
marketOption<String>市场
tradeableOption<bool>是否可交易
conidOption<i64>内部合约 ID
short_marginOption<f64>做空保证金比例
short_initial_marginOption<f64>做空初始保证金比例
short_maintenace_marginOption<f64>做空维持保证金比例;Rust 字段名按 SDK 拼写保留
long_initial_marginOption<f64>做多初始保证金
long_maintenace_marginOption<f64>做多维持保证金;Rust 字段名按 SDK 拼写保留
tick_sizesOption<Vec<TickSize>>最小报价单位区间
lot_sizeOption<f64>每手数量

TickSize 字段:

字段Rust 类型说明
beginOption<String>区间起始价格
endOption<String>区间结束价格
tick_sizeOption<f64>最小报价单位
r#typeOption<String>区间类型

示例


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_derivative_contracts(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {

    let result_0 = trade.get_derivative_contracts(DerivativeContractsRequest { ..Default::default() }).await?;

    Ok(())

}

返回示例

[
  {
    "contractId": 265598,
    "symbol": "AAPL",
    "secType": "OPT",
    "currency": "USD",
    "exchange": "CBOE",
    "primaryExchange": "CBOE",
    "expiry": "2025-02-21",
    "strike": 195.0
  }
]

请求频率

基础限流为 60 次/分钟。get_quote_contract 与 get_derivative_contracts 均使用 quote_contract,共享此额度。



Did this page help you?