修改与撤销订单
改单
签名
pub async fn modify_order(&self, id: i64, order: OrderRequest) -> Result<Option<OrderIdResult>, TigerError>说明
修改已提交的订单。仅待成交/部分成交状态的订单可修改。
参数
| 参数 | Rust 类型 | 必填性/条件 | SDK 默认值 |
|---|---|---|---|
| id | i64 | 必填 | 无 |
| order.account | Option<String> | 无需设置;SDK 始终覆盖为 TradeClient 账户 | TradeClient 账户 |
| order.id | Option<i64> | 无需设置;SDK 始终覆盖为 id 参数 | id 参数 |
| order.order_id | Option<i64> | 可选 | None(不序列化) |
| order.action | Option<String> | 无需设置;服务端沿用原订单方向 | None(不序列化) |
| order.order_type | Option<String> | 可选;省略时沿用原订单类型 | None(不序列化) |
| order.total_quantity | Option<i64> | 可选;省略时沿用原订单数量 | None(不序列化) |
| order.limit_price | Option<f64> | LMT/STP_LMT 条件必填 | None(不序列化) |
| order.aux_price | Option<f64> | STP/STP_LMT 条件必填 | None(不序列化) |
| order.trailing_percent | Option<f64> | 可选 | None(不序列化) |
| order.time_in_force | Option<String> | 可选 | None(不序列化) |
| order.outside_rth | Option<bool> | 可选 | None(不序列化) |
| order.order_legs | Option<Vec<OrderLegRequest>> | 可选 | None(不序列化) |
| order.algo_params | Option<AlgoParamsRequest> | 可选 | None(不序列化) |
| order.symbol | Option<String> | 无需设置;服务端沿用原订单标的 | None(不序列化) |
| order.sec_type | Option<String> | 无需设置;服务端沿用原订单证券类型 | None(不序列化) |
| order.market | Option<String> | 可选 | None(不序列化) |
| order.currency | Option<String> | 可选 | None(不序列化) |
| order.expiry | Option<String> | 可选 | None(不序列化) |
| order.strike | Option<String> | 可选 | None(不序列化) |
| order.right | Option<String> | 可选 | None(不序列化) |
| order.identifier | Option<String> | 可选 | None(不序列化) |
| order.remark | Option<String> | 可选 | None(不序列化) |
| order.user_mark | Option<String> | 可选 | None(不序列化) |
| order.display_size | Option<i64> | 可选 | None(不序列化) |
| order.min_display_size | Option<i64> | 可选 | None(不序列化) |
| order.check_intervals | Option<i64> | 可选 | None(不序列化) |
| order.price_type | Option<String> | 可选 | None(不序列化) |
| order.start_time | Option<i64> | 可选 | None(不序列化) |
| order.end_time | Option<i64> | 可选 | None(不序列化) |
| order.secret_key | Option<String> | 可选 | None(不序列化) |
| order.adjust_limit | Option<f64> | 可选 | None(不序列化) |
| order.expire_time | Option<i64> | GTD 条件必填 | None(不序列化) |
| order.trading_session_type | Option<String> | 可选 | None(不序列化) |
| order.exchange | Option<String> | 可选 | None(不序列化) |
| order.multiplier | Option<String> | 可选 | None(不序列化) |
| order.local_symbol | Option<String> | 可选 | None(不序列化) |
| order.alloc_accounts | Option<Vec<String>> | 可选 | None(不序列化) |
| order.alloc_shares | Option<Vec<f64>> | 可选 | None(不序列化) |
| order.total_quantity_scale | Option<i32> | 可选 | None(不序列化) |
| order.attach_type | Option<String> | 可选 | None(不序列化) |
| order.profit_taker_order_id | Option<i64> | 可选 | None(不序列化) |
| order.profit_taker_price | Option<f64> | 可选 | None(不序列化) |
| order.profit_taker_tif | Option<String> | 可选 | None(不序列化) |
| order.profit_taker_rth | Option<bool> | 可选 | None(不序列化) |
| order.stop_loss_order_type | Option<String> | 可选 | None(不序列化) |
| order.stop_loss_order_id | Option<i64> | 可选 | None(不序列化) |
| order.stop_loss_price | Option<f64> | 可选 | None(不序列化) |
| order.stop_loss_limit_price | Option<f64> | 可选 | None(不序列化) |
| order.stop_loss_tif | Option<String> | 可选 | None(不序列化) |
| order.stop_loss_trailing_percent | Option<f64> | 可选 | None(不序列化) |
| order.stop_loss_trailing_amount | Option<f64> | 可选 | None(不序列化) |
| order.combo_type | Option<String> | 可选 | None(不序列化) |
| order.contract_legs | Option<Vec<ContractLegRequest>> | 可选 | None(不序列化) |
| order.oca_orders | Option<Vec<Box<OrderRequest>>> | 可选 | None(不序列化) |
| order.cash_amount | Option<f64> | 可选 | None(不序列化) |
返回
Result<Option<OrderIdResult>, TigerError>
| 字段 | 类型 | 说明 |
|---|---|---|
| id | i64 | 订单 ID |
返回 ID 只表示改单请求已提交。请继续查询订单;replace_status=REPLACED 才表示改单已确认成功,FAILED 表示失败,其他状态仍需结合订单 status 继续等待。
示例
use tigeropen::model::order::OrderRequest;
// 将订单限价改为 196.0
let mut modify = OrderRequest::default();
modify.limit_price = Some(196.0);
let result = trade.modify_order(31234567, modify).await?;
if let Some(r) = result {
println!("改单请求已提交, id={};请继续查询 replace_status", r.id);
}返回示例
{
"id": 31234567
}请求频率
基础限流为 120 次/分钟。
撤单
签名
pub async fn cancel_order(&self, id: i64) -> Result<Option<OrderIdResult>, TigerError>说明
撤销订单。仅待成交/部分成交状态的订单可撤销。
参数
| 参数 | Rust 类型 | 必填性/条件 | SDK 默认值 |
|---|---|---|---|
| id | i64 | 必填 | 无 |
返回
Result<Option<OrderIdResult>, TigerError>
| 字段 | 类型 | 说明 |
|---|---|---|
| id | i64 | 被撤订单 ID |
返回 ID 只表示撤单请求已提交。请继续查询订单,直到 status=Cancelled,或订单因抢先成交等原因进入其他最终状态;不要把中间的撤单受理状态当作完成。
示例
let result = trade.cancel_order(31234567).await?;
if let Some(r) = result {
println!("撤单请求已提交, id={};请继续查询最终订单状态", r.id);
}返回示例
{
"id": 31234567
}请求频率
基础限流为 120 次/分钟。
Updated 7 days ago
Did this page help you?
