取消或修改订单
初始化
本页所有示例均假设已完成以下初始化:
from tigeropen.trade.trade_client import TradeClient
from tigeropen.tiger_open_config import TigerOpenClientConfig
client_config = TigerOpenClientConfig(props_path='your_config_directory_path')
trade_client = TradeClient(client_config)详见准备工作。
取消订单
TradeClient.cancel_order(account=None, id=None, order_id=None)
说明
撤销已下的订单。撤单同下单类似,为异步执行,调用本命令后表示撤单请求发送成功,撤单的执行会异步处理
使用 TradeClient.place_order 提交订单后,被提交的订单会根据不同情况进入多种状态。已成交或被系统拒绝的订单无法被撤销,只有订单处于已提交或部分成交的状态,才可被撤销。请参考 TradeClient.get_order 方法的说明来了解可能出现的订单状态。
对于批量下出的订单,可用 TradeClient.get_open_orders 取得待成交的订单列表,依次撤单。对于已经请求过撤单的订单,不要重复请求,可在撤单命令执行后,等待一段时间再次检查待成交的订单。
参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| account | str | No | 账户 id,若不填则使用 client_config 中的默认 account |
| id | int | Yes | 全局订单 id,取消订单操作建议使用 id 字段,在 place_order 之后,可以通过 Order.id 获取 |
| order_id | int | No | 本地订单 order_id, 可以通过 Order.order_id 获取 |
返回
撤单请求提交成功时返回全局订单 ID(int),失败时抛出 ApiException。
撤单为异步执行,返回订单 ID 只表示撤单请求已提交成功,并不代表订单已被撤销。请通过 get_order 轮询,直到订单进入 CANCELLED 或因已成交等原因进入其他最终状态;不要把请求已受理当作撤单完成。
示例
# 假设订单id为 26731241425469440
trade_client.cancel_order(id=26731241425469440)请求频率
基础限流为 120 次/分钟。
修改订单
TradeClient.modify_order(order, quantity=None, limit_price=None, aux_price=None, trail_stop_price=None, trailing_percent=None, percent_offset=None, time_in_force=None, outside_rth=None, **kwargs)
说明
修改已下订单,订单类型不支持修改。具体可修改的字段见下表
参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| order | Order | Yes | 要修改的 Order 对象(tigeropen.trade.domain.order.Order) |
| quantity | int | No | 修改后的下单股数;省略时复制 order.quantity |
| limit_price | float | No | 修改后的限价;省略时复制 order.limit_price |
| aux_price | float | No | 止损单触发价或跟踪止损价差;省略时复制 order.aux_price |
| trail_stop_price | float | No | 跟踪止损单的新激活价格;省略时复制 order.trail_stop_price |
| trailing_percent | float | No | 跟踪止损百分比;省略时复制 order.trailing_percent |
| percent_offset | float | No | 百分比偏移;省略时复制 order.percent_offset |
| time_in_force | str | No | DAY(当日有效)、GTC(撤销前有效)或 GTD(指定时间前有效);省略时复制 order.time_in_force |
| outside_rth | bool | No | 是否允许盘前盘后交易;省略时复制 order.outside_rth |
这些跟踪止损字段按字段分别处理,并非互斥:显式参数优先于原订单中的同名字段,省略的参数从原订单复制。对于 TRAIL 订单同时传入非零 trailing_percent 和 aux_price 时,服务端优先使用 trailing_percent;trail_stop_price 和 percent_offset 仍独立传递。
显式传入数值 0 会保留为 0 发送;服务端再按 Global 或 Prime/Paper 的原订单类型规则处理。
返回
改单请求提交成功时返回全局订单 ID(int),失败时抛出 ApiException。返回 ID 只表示请求已提交;请继续通过 get_order 查询订单,确认新参数已生效或订单进入最终状态后再判定结果。
示例
# 假设订单id为:26731241425469440
order = trade_client.get_order(id=26731241425469440)
trade_client.modify_order(order, quantity=2, limit_price=105.0)请求频率
基础限流为 120 次/分钟。
Updated 5 days ago
