账户与持仓

获取管理的账户

签名


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>. account: String, account_type: String, capability: String, status: String.

account/account_type/capability/status。

示例


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",
    "account_type": "GLOBAL",
    "capability": "RegTMargin",
    "status": "TRADING"
  }
]

获取环球账户资产

签名


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

说明

account 默认注入;segmentmarket_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>. account: String, capability: String, currency: String, buying_power: f64, cash_value: f64, net_liquidation: f64, realized_pnl: f64, unrealized_pnl: f64, segments: Vec

account/capability/currency/buying_power/cash/net_liquidation/P&L/segments。

示例


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",
    "buying_power": 150000.0,
    "cash_value": 85000.0,
    "net_liquidation": 250000.0,
    "realized_pnl": 3200.5,
    "unrealized_pnl": 1850.75
  }
]

获取综合/模拟账户资产

签名


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>. account_id: String, update_timestamp: i64, segments: Vec

account_id/update_timestamp/segments,含保证金、购买力和币种明细。

示例


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(())

}

返回示例

{
  "account_id": "402901",
  "update_timestamp": 1738180800000,
  "segments": [
    {
      "category": "S",
      "currency": "USD",
      "buying_power": 150000.0,
      "cash": 85000.0,
      "gross_position_value": 165000.0
    }
  ]
}

获取聚合资产

签名


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>. account_id: String, net_liquidation: f64, gross_position_value: f64, cash_balance: f64, base_currency: String, currency_assets: Vec

account_id/net_liquidation/gross_position_value/cash/base_currency/currency_assets。

示例


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(())

}

返回示例

{
  "account_id": "402901",
  "net_liquidation": 250000.0,
  "gross_position_value": 165000.0,
  "cash_balance": 85000.0,
  "base_currency": "USD",
  "currency_assets": [
    {
      "currency": "USD",
      "cash_balance": 85000.0,
      "net_liquidation": 250000.0
    }
  ]
}

获取历史资产分析

签名


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>. date: String, holding_value: f64, cash_balance: f64, pnl: f64, pnl_rate: f64, net_value_index: f64, currency: String, seg_type: String.

date/holding_value/cash_balance/pnl/pnl_rate/net_value_index/currency/seg_type。

示例


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",
    "holding_value": 165000.0,
    "cash_balance": 85000.0,
    "pnl": 2350.8,
    "pnl_rate": 0.0142,
    "net_value_index": 1.0142,
    "currency": "USD",
    "seg_type": "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>. account: Option

account/symbol/type/market/currency/position/cost/value/realized/unrealized P&L/identifier/latest_price。

示例


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",
    "sec_type": "STK",
    "market": "US",
    "currency": "USD",
    "position": 100,
    "average_cost": 178.35,
    "market_value": 19550.0
  }
]

预估可交易数量

签名


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>. tradable_quantity: f64, max_cash_buy_quantity: f64, max_margin_buy_quantity: f64, max_short_sell_quantity: f64, max_position_sell_quantity: f64, cash_buying_power: f64, currency: 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_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(())

}

返回示例

{
  "tradable_quantity": 500,
  "max_cash_buy_quantity": 430,
  "max_margin_buy_quantity": 760,
  "max_short_sell_quantity": 300,
  "max_position_sell_quantity": 100,
  "cash_buying_power": 85000.0,
  "currency": "USD"
}

获取衍生品合约

签名


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>. contract_id: Option, symbol: String, sec_type: String, currency: Option

衍生品合约。

示例


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(())

}

返回示例

[
  {
    "contract_id": 265598,
    "symbol": "AAPL",
    "sec_type": "OPT",
    "currency": "USD",
    "exchange": "CBOE",
    "primary_exchange": "CBOE",
    "expiry": "2025-02-21",
    "strike": 195.0
  }
]


Did this page help you?