订单查询
获取订单详情
签名
pub async fn get_order(&self, req: GetOrderRequest) -> Result<Option<Order>, TigerError>说明
根据订单 ID 获取单个订单详情。id 或 order_id 至少传一个。
参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| req.account | Option<String> | 否 | 账户,缺省时 SDK 自动注入 |
| req.id | Option<i64> | 条件 | 全局订单 ID,与 order_id 至少填一个 |
| req.order_id | Option<i64> | 条件 | 订单编号,与 id 至少填一个 |
| req.is_brief | Option<bool> | 否 | 是否返回简要信息 |
| req.show_charges | Option<bool> | 否 | 是否显示费用详情 |
| req.lang | Option<String> | 否 | 语言 |
返回
Result<Option<Order>, TigerError>
| 字段 | 类型 | 说明 |
|---|---|---|
| id | i64 | 全局订单 ID |
| order_id | i64 | 订单编号 |
| account | String | 账户 |
| symbol | String | 股票代码 |
| sec_type | String | 证券类型 |
| action | String | 交易方向 BUY/SELL |
| order_type | String | 订单类型 MKT/LMT/STP/STP_LMT/TRAIL |
| total_quantity | i64 | 下单数量 |
| filled_quantity | i64 | 已成交数量 |
| limit_price | f64 | 限价 |
| aux_price | f64 | 止损/跟踪价 |
| avg_fill_price | f64 | 成交均价 |
| status | String | 订单状态 |
| time_in_force | String | 有效期 DAY/GTC/GTD |
| outside_rth | bool | 是否允许盘前盘后 |
| commission | f64 | 佣金 |
| realized_pnl | f64 | 已实现盈亏 |
| open_time | i64 | 下单时间(毫秒) |
| update_time | i64 | 更新时间(毫秒) |
| latest_time | i64 | 最后状态变更时间 |
| name | String | 股票名称 |
| currency | String | 币种 |
| market | String | 市场 |
| user_mark | String | 用户备注 |
| can_modify | bool | 是否可改单 |
| can_cancel | bool | 是否可撤单 |
示例
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.account | Option<String> | 否 | 账户,缺省时 SDK 自动注入 |
| req.sec_type | Option<String> | 否 | 证券类型过滤 |
| req.market | Option<String> | 否 | 市场过滤 |
| req.symbol | Option<String> | 否 | 股票代码过滤 |
| req.start_date | Option<i64> | 否 | 开始时间,13 位毫秒 |
| req.end_date | Option<i64> | 否 | 结束时间,13 位毫秒 |
| req.limit | Option<i32> | 否 | 返回条数 |
| req.is_brief | Option<bool> | 否 | 是否简要 |
| req.states | Option<Vec<String>> | 否 | 状态过滤 |
| req.sort_by | Option<String> | 否 | 排序字段 |
| req.page_token | Option<String> | 否 | 分页 token |
| req.parent_id | Option<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.account | Option<String> | 否 | 账户 |
| req.order_id | Option<i64> | 否 | 订单编号过滤 |
| req.symbol | Option<String> | 是 | 股票代码 |
| req.sec_type | Option<String> | 否 | 证券类型 |
| req.start_date | Option<i64> | 否 | 开始时间,13 位毫秒 |
| req.end_date | Option<i64> | 否 | 结束时间,13 位毫秒 |
| req.limit | Option<i32> | 否 | 返回条数 |
| req.expiry | Option<String> | 否 | 期权到期日 |
| req.strike | Option<f64> | 否 | 期权行权价 |
| req.put_call | Option<String> | 否 | 期权方向 |
| req.page_token | Option<String> | 否 | 分页 token |
返回
Result<Vec<Transaction>, TigerError>
| 字段 | 类型 | 说明 |
|---|---|---|
| id | i64 | 成交 ID |
| order_id | i64 | 订单编号 |
| account | String | 账户 |
| symbol | String | 股票代码 |
| sec_type | String | 证券类型 |
| action | String | 交易方向 |
| filled_price | f64 | 成交价格 |
| filled_quantity | i64 | 成交数量 |
| filled_amount | f64 | 成交金额 |
| commission | f64 | 佣金 |
| transacted_at | String | 成交时间 |
| transaction_time | i64 | 成交时间戳(毫秒) |
| currency | String | 币种 |
| market | String | 市场 |
示例
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"
}
]Updated 8 days ago
Did this page help you?
