订单查询

获取订单详情

签名

pub async fn get_order(&self, req: GetOrderRequest) -> Result<Option<Order>, TigerError>

说明

根据订单 ID 获取单个订单详情。idorder_id 至少传一个。

参数

参数类型必填说明
req.accountOption<String>账户,缺省时 SDK 自动注入
req.idOption<i64>条件全局订单 ID,与 order_id 至少填一个
req.order_idOption<i64>条件订单编号,与 id 至少填一个
req.is_briefOption<bool>是否返回简要信息
req.show_chargesOption<bool>是否显示费用详情
req.langOption<String>语言

返回

Result<Option<Order>, TigerError>

字段类型说明
idi64全局订单 ID
order_idi64订单编号
accountString账户
symbolString股票代码
sec_typeString证券类型
actionString交易方向 BUY/SELL
order_typeString订单类型 MKT/LMT/STP/STP_LMT/TRAIL
total_quantityi64下单数量
filled_quantityi64已成交数量
limit_pricef64限价
aux_pricef64止损/跟踪价
avg_fill_pricef64成交均价
statusString订单状态
time_in_forceString有效期 DAY/GTC/GTD
outside_rthbool是否允许盘前盘后
commissionf64佣金
realized_pnlf64已实现盈亏
open_timei64下单时间(毫秒)
update_timei64更新时间(毫秒)
latest_timei64最后状态变更时间
nameString股票名称
currencyString币种
marketString市场
user_markString用户备注
can_modifybool是否可改单
can_cancelbool是否可撤单

示例

use tigeropen::config::ClientConfig;
use tigeropen::model::trade_requests::GetOrderRequest;
use tigeropen::trade::TradeClient;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let config = ClientConfig::builder().build()?;
    let trade = TradeClient::from_config(config);
    let order = trade.get_order(GetOrderRequest { id: Some(31234567), ..Default::default() }).await?;
    if let Some(o) = order {
        println!("{} {} {} qty={} filled={} status={}", o.symbol, o.action, o.order_type, o.total_quantity, o.filled_quantity, o.status);
    }
    Ok(())
}

返回示例

{
  "id": 31234567,
  "order_id": 100234,
  "account": "402901",
  "symbol": "AAPL",
  "sec_type": "STK",
  "action": "BUY",
  "order_type": "LMT",
  "total_quantity": 100,
  "filled_quantity": 100,
  "limit_price": 195.50,
  "avg_fill_price": 195.48,
  "status": "Filled",
  "time_in_force": "DAY",
  "outside_rth": true,
  "commission": 1.99,
  "realized_pnl": 0.0,
  "open_time": 1719216000000,
  "currency": "USD",
  "market": "US",
  "can_modify": false,
  "can_cancel": false
}

获取订单列表

签名

pub async fn get_orders(&self, req: OrdersRequest) -> Result<Vec<Order>, TigerError>

说明

获取账户所有订单,支持按状态、证券类型、时间等过滤。

参数

参数类型必填说明
req.accountOption<String>账户,缺省时 SDK 自动注入
req.sec_typeOption<String>证券类型过滤
req.marketOption<String>市场过滤
req.symbolOption<String>股票代码过滤
req.start_dateOption<i64>开始时间,13 位毫秒
req.end_dateOption<i64>结束时间,13 位毫秒
req.limitOption<i32>返回条数
req.is_briefOption<bool>是否简要
req.statesOption<Vec<String>>状态过滤
req.sort_byOption<String>排序字段
req.page_tokenOption<String>分页 token
req.parent_idOption<i64>父订单 ID

返回

Result<Vec<Order>, TigerError>

返回字段同 获取订单详情

示例

let orders = trade.get_orders(OrdersRequest { limit: Some(20), ..Default::default() }).await?;
for o in &orders {
    println!("[{}] {} {} {} qty={} status={}", o.id, o.symbol, o.action, o.order_type, o.total_quantity, o.status);
}

返回示例

[
  {
    "id": 31234567,
    "order_id": 100234,
    "account": "402901",
    "symbol": "AAPL",
    "action": "BUY",
    "order_type": "LMT",
    "total_quantity": 100,
    "filled_quantity": 100,
    "status": "Filled",
    "limit_price": 195.50,
    "avg_fill_price": 195.48,
    "commission": 1.99,
    "open_time": 1719216000000
  }
]

获取待成交订单

签名

pub async fn get_active_orders(&self, req: OrdersRequest) -> Result<Vec<Order>, TigerError>

说明

获取当前活跃(待成交)的订单。

参数

获取订单列表

返回

Result<Vec<Order>, TigerError>

返回字段同 获取订单详情

示例

let active = trade.get_active_orders(OrdersRequest::default()).await?;
println!("当前待成交订单 {} 笔", active.len());

获取已撤销订单

签名

pub async fn get_inactive_orders(&self, req: OrdersRequest) -> Result<Vec<Order>, TigerError>

说明

获取已撤销或失效的订单。

参数

获取订单列表

返回

Result<Vec<Order>, TigerError>

返回字段同 获取订单详情

示例

let inactive = trade.get_inactive_orders(OrdersRequest::default()).await?;

获取已成交订单

签名

pub async fn get_filled_orders(&self, req: OrdersRequest) -> Result<Vec<Order>, TigerError>

说明

获取已成交的订单。可通过 start_date/end_date 过滤时间范围(13 位毫秒时间戳)。

参数

获取订单列表

返回

Result<Vec<Order>, TigerError>

返回字段同 获取订单详情

示例

let filled = trade.get_filled_orders(OrdersRequest::default()).await?;
for o in &filled {
    println!("{} {} 成交均价={} 佣金={}", o.symbol, o.action, o.avg_fill_price, o.commission);
}

获取成交记录

签名

pub async fn get_order_transactions(&self, req: OrderTransactionsRequest) -> Result<Vec<Transaction>, TigerError>

说明

获取订单的成交明细记录。

参数

参数类型必填说明
req.accountOption<String>账户
req.order_idOption<i64>订单编号过滤
req.symbolOption<String>股票代码
req.sec_typeOption<String>证券类型
req.start_dateOption<i64>开始时间,13 位毫秒
req.end_dateOption<i64>结束时间,13 位毫秒
req.limitOption<i32>返回条数
req.expiryOption<String>期权到期日
req.strikeOption<f64>期权行权价
req.put_callOption<String>期权方向
req.page_tokenOption<String>分页 token

返回

Result<Vec<Transaction>, TigerError>

字段类型说明
idi64成交 ID
order_idi64订单编号
accountString账户
symbolString股票代码
sec_typeString证券类型
actionString交易方向
filled_pricef64成交价格
filled_quantityi64成交数量
filled_amountf64成交金额
commissionf64佣金
transacted_atString成交时间
transaction_timei64成交时间戳(毫秒)
currencyString币种
marketString市场

示例

use tigeropen::model::trade_requests::OrderTransactionsRequest;

let txns = trade.get_order_transactions(OrderTransactionsRequest {
    symbol: Some("AAPL".into()),
    ..Default::default()
}).await?;
for t in &txns {
    println!("成交 {} {} 价格={} 数量={}", t.symbol, t.action, t.filled_price, t.filled_quantity);
}

返回示例

[
  {
    "id": 987654,
    "order_id": 100234,
    "account": "402901",
    "symbol": "AAPL",
    "sec_type": "STK",
    "action": "BUY",
    "filled_price": 195.48,
    "filled_quantity": 100,
    "filled_amount": 19548.0,
    "commission": 1.99,
    "transacted_at": "2025-06-24T15:30:01Z",
    "transaction_time": 1719240601000,
    "currency": "USD",
    "market": "US"
  }
]

Did this page help you?