Modify and Cancel Orders
Modify Order
Signature
pub async fn modify_order(&self, id: i64, order: OrderRequest) -> Result<Option<OrderIdResult>, TigerError>Description
Modify a submitted order. Only pending/partially-filled orders can be modified.
Parameters
| Parameter | Rust type | Requirement | SDK default |
|---|---|---|---|
| id | i64 | Required | None |
| order.account | Option<String> | Do not set; the SDK always overwrites it with the TradeClient account | TradeClient account |
| order.id | Option<i64> | Do not set; the SDK always overwrites it with the id argument | id argument |
| order.order_id | Option<i64> | Optional | None (omitted) |
| order.action | Option<String> | Do not set; the server retains the original order action | None (omitted) |
| order.order_type | Option<String> | Optional; the original order type is retained when omitted | None (omitted) |
| order.total_quantity | Option<i64> | Optional; the original order quantity is retained when omitted | None (omitted) |
| order.limit_price | Option<f64> | Required for LMT/STP_LMT | None (omitted) |
| order.aux_price | Option<f64> | Required for STP/STP_LMT | None (omitted) |
| order.trailing_percent | Option<f64> | Optional | None (omitted) |
| order.time_in_force | Option<String> | Optional | None (omitted) |
| order.outside_rth | Option<bool> | Optional | None (omitted) |
| order.order_legs | Option<Vec<OrderLegRequest>> | Optional | None (omitted) |
| order.algo_params | Option<AlgoParamsRequest> | Optional | None (omitted) |
| order.symbol | Option<String> | Do not set; the server retains the original order symbol | None (omitted) |
| order.sec_type | Option<String> | Do not set; the server retains the original security type | None (omitted) |
| order.market | Option<String> | Optional | None (omitted) |
| order.currency | Option<String> | Optional | None (omitted) |
| order.expiry | Option<String> | Optional | None (omitted) |
| order.strike | Option<String> | Optional | None (omitted) |
| order.right | Option<String> | Optional | None (omitted) |
| order.identifier | Option<String> | Optional | None (omitted) |
| order.remark | Option<String> | Optional | None (omitted) |
| order.user_mark | Option<String> | Optional | None (omitted) |
| order.display_size | Option<i64> | Optional | None (omitted) |
| order.min_display_size | Option<i64> | Optional | None (omitted) |
| order.check_intervals | Option<i64> | Optional | None (omitted) |
| order.price_type | Option<String> | Optional | None (omitted) |
| order.start_time | Option<i64> | Optional | None (omitted) |
| order.end_time | Option<i64> | Optional | None (omitted) |
| order.secret_key | Option<String> | Optional | None (omitted) |
| order.adjust_limit | Option<f64> | Optional | None (omitted) |
| order.expire_time | Option<i64> | Required for GTD | None (omitted) |
| order.trading_session_type | Option<String> | Optional | None (omitted) |
| order.exchange | Option<String> | Optional | None (omitted) |
| order.multiplier | Option<String> | Optional | None (omitted) |
| order.local_symbol | Option<String> | Optional | None (omitted) |
| order.alloc_accounts | Option<Vec<String>> | Optional | None (omitted) |
| order.alloc_shares | Option<Vec<f64>> | Optional | None (omitted) |
| order.total_quantity_scale | Option<i32> | Optional | None (omitted) |
| order.attach_type | Option<String> | Optional | None (omitted) |
| order.profit_taker_order_id | Option<i64> | Optional | None (omitted) |
| order.profit_taker_price | Option<f64> | Optional | None (omitted) |
| order.profit_taker_tif | Option<String> | Optional | None (omitted) |
| order.profit_taker_rth | Option<bool> | Optional | None (omitted) |
| order.stop_loss_order_type | Option<String> | Optional | None (omitted) |
| order.stop_loss_order_id | Option<i64> | Optional | None (omitted) |
| order.stop_loss_price | Option<f64> | Optional | None (omitted) |
| order.stop_loss_limit_price | Option<f64> | Optional | None (omitted) |
| order.stop_loss_tif | Option<String> | Optional | None (omitted) |
| order.stop_loss_trailing_percent | Option<f64> | Optional | None (omitted) |
| order.stop_loss_trailing_amount | Option<f64> | Optional | None (omitted) |
| order.combo_type | Option<String> | Optional | None (omitted) |
| order.contract_legs | Option<Vec<ContractLegRequest>> | Optional | None (omitted) |
| order.oca_orders | Option<Vec<Box<OrderRequest>>> | Optional | None (omitted) |
| order.cash_amount | Option<f64> | Optional | None (omitted) |
Response
| Field | Type | Description |
|---|---|---|
| id | i64 | Order ID |
The returned ID confirms only that the modify request was submitted. Continue querying the order: replace_status=REPLACED confirms success, FAILED confirms failure, and other values remain intermediate and must be interpreted with the order status.
Example
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!("Modification submitted, id={}; continue querying replace_status", r.id);
}Response Example
{
"id": 31234567
}Rate limit
The base rate limit is 120 requests/min.
Cancel Order
Signature
pub async fn cancel_order(&self, id: i64) -> Result<Option<OrderIdResult>, TigerError>Description
Cancel a pending order.
Parameters
| Parameter | Rust type | Requirement | SDK default |
|---|---|---|---|
| id | i64 | Required | None |
Response
| Field | Type | Description |
|---|---|---|
| id | i64 | Cancelled order ID |
The returned ID confirms only that the cancellation request was submitted. Continue querying until status=Cancelled or the order reaches another final state, such as a fill that completed first; an intermediate cancellation-accepted state is not completion.
Example
let result = trade.cancel_order(31234567).await?;
if let Some(r) = result {
println!("Cancellation submitted, id={}; continue querying final order status", r.id);
}Response Example
{
"id": 31234567
}Rate limit
The base rate limit is 120 requests/min.
Updated about 1 month ago
