取消或修改订单

初始化

本页所有示例均假设已完成以下初始化:

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 取得待成交的订单列表,依次撤单。对于已经请求过撤单的订单,不要重复请求,可在撤单命令执行后,等待一段时间再次检查待成交的订单。

参数

参数名类型是否必填描述
accountstrNo账户 id,若不填则使用 client_config 中的默认 account
idintYes全局订单 id,取消订单操作建议使用 id 字段,在 place_order 之后,可以通过 Order.id 获取
order_idintNo本地订单 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)

说明

修改已下订单,订单类型不支持修改。具体可修改的字段见下表

参数

参数名类型是否必填描述
orderOrderYes要修改的 Order 对象(tigeropen.trade.domain.order.Order)
quantityintNo修改后的下单股数;省略时复制 order.quantity
limit_pricefloatNo修改后的限价;省略时复制 order.limit_price
aux_pricefloatNo止损单触发价或跟踪止损价差;省略时复制 order.aux_price
trail_stop_pricefloatNo跟踪止损单的新激活价格;省略时复制 order.trail_stop_price
trailing_percentfloatNo跟踪止损百分比;省略时复制 order.trailing_percent
percent_offsetfloatNo百分比偏移;省略时复制 order.percent_offset
time_in_forcestrNoDAY(当日有效)、GTC(撤销前有效)或 GTD(指定时间前有效);省略时复制 order.time_in_force
outside_rthboolNo是否允许盘前盘后交易;省略时复制 order.outside_rth

这些跟踪止损字段按字段分别处理,并非互斥:显式参数优先于原订单中的同名字段,省略的参数从原订单复制。对于 TRAIL 订单同时传入非零 trailing_percentaux_price 时,服务端优先使用 trailing_percenttrail_stop_pricepercent_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 次/分钟


What’s Next

Did this page help you?