修改与撤销订单

改单

签名

pub async fn modify_order(&self, id: i64, order: OrderRequest) -> Result<Option<OrderIdResult>, TigerError>

说明

修改已提交的订单。仅待成交/部分成交状态的订单可修改。

参数

参数Rust 类型必填性/条件SDK 默认值
idi64必填
order.accountOption<String>无需设置;SDK 始终覆盖为 TradeClient 账户TradeClient 账户
order.idOption<i64>无需设置;SDK 始终覆盖为 id 参数id 参数
order.order_idOption<i64>可选None(不序列化)
order.actionOption<String>无需设置;服务端沿用原订单方向None(不序列化)
order.order_typeOption<String>可选;省略时沿用原订单类型None(不序列化)
order.total_quantityOption<i64>可选;省略时沿用原订单数量None(不序列化)
order.limit_priceOption<f64>LMT/STP_LMT 条件必填None(不序列化)
order.aux_priceOption<f64>STP/STP_LMT 条件必填None(不序列化)
order.trailing_percentOption<f64>可选None(不序列化)
order.time_in_forceOption<String>可选None(不序列化)
order.outside_rthOption<bool>可选None(不序列化)
order.order_legsOption<Vec<OrderLegRequest>>可选None(不序列化)
order.algo_paramsOption<AlgoParamsRequest>可选None(不序列化)
order.symbolOption<String>无需设置;服务端沿用原订单标的None(不序列化)
order.sec_typeOption<String>无需设置;服务端沿用原订单证券类型None(不序列化)
order.marketOption<String>可选None(不序列化)
order.currencyOption<String>可选None(不序列化)
order.expiryOption<String>可选None(不序列化)
order.strikeOption<String>可选None(不序列化)
order.rightOption<String>可选None(不序列化)
order.identifierOption<String>可选None(不序列化)
order.remarkOption<String>可选None(不序列化)
order.user_markOption<String>可选None(不序列化)
order.display_sizeOption<i64>可选None(不序列化)
order.min_display_sizeOption<i64>可选None(不序列化)
order.check_intervalsOption<i64>可选None(不序列化)
order.price_typeOption<String>可选None(不序列化)
order.start_timeOption<i64>可选None(不序列化)
order.end_timeOption<i64>可选None(不序列化)
order.secret_keyOption<String>可选None(不序列化)
order.adjust_limitOption<f64>可选None(不序列化)
order.expire_timeOption<i64>GTD 条件必填None(不序列化)
order.trading_session_typeOption<String>可选None(不序列化)
order.exchangeOption<String>可选None(不序列化)
order.multiplierOption<String>可选None(不序列化)
order.local_symbolOption<String>可选None(不序列化)
order.alloc_accountsOption<Vec<String>>可选None(不序列化)
order.alloc_sharesOption<Vec<f64>>可选None(不序列化)
order.total_quantity_scaleOption<i32>可选None(不序列化)
order.attach_typeOption<String>可选None(不序列化)
order.profit_taker_order_idOption<i64>可选None(不序列化)
order.profit_taker_priceOption<f64>可选None(不序列化)
order.profit_taker_tifOption<String>可选None(不序列化)
order.profit_taker_rthOption<bool>可选None(不序列化)
order.stop_loss_order_typeOption<String>可选None(不序列化)
order.stop_loss_order_idOption<i64>可选None(不序列化)
order.stop_loss_priceOption<f64>可选None(不序列化)
order.stop_loss_limit_priceOption<f64>可选None(不序列化)
order.stop_loss_tifOption<String>可选None(不序列化)
order.stop_loss_trailing_percentOption<f64>可选None(不序列化)
order.stop_loss_trailing_amountOption<f64>可选None(不序列化)
order.combo_typeOption<String>可选None(不序列化)
order.contract_legsOption<Vec<ContractLegRequest>>可选None(不序列化)
order.oca_ordersOption<Vec<Box<OrderRequest>>>可选None(不序列化)
order.cash_amountOption<f64>可选None(不序列化)

返回

Result<Option<OrderIdResult>, TigerError>

字段类型说明
idi64订单 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 默认值
idi64必填

返回

Result<Option<OrderIdResult>, TigerError>

字段类型说明
idi64被撤订单 ID

返回 ID 只表示撤单请求已提交。请继续查询订单,直到 status=Cancelled,或订单因抢先成交等原因进入其他最终状态;不要把中间的撤单受理状态当作完成。

示例

let result = trade.cancel_order(31234567).await?;
if let Some(r) = result {
    println!("撤单请求已提交, id={};请继续查询最终订单状态", r.id);
}

返回示例

{
  "id": 31234567
}

请求频率

基础限流为 120 次/分钟


Did this page help you?