取消或修改订单

大约 2 分钟

cancel_order 取消订单

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 获取
secret_keystrNo机构交易员密钥,机构用户专有,机构用户必填,需要在client_config中配置

示例

from tigeropen.trade.trade_client import TradeClient
from tigeropen.tiger_open_config import get_client_config
client_config = get_client_config(private_key_path='private key path', tiger_id='your tiger id', account='your account')
trade_client = TradeClient(client_config)

# 假设订单id为 26731241425469440
trade_client.cancel_order(id=26731241425469440)

modify_order 修改订单

TradeClient.modify_order(order, quantity, limit_price, aux_price, trail_stop_price, trailing_percent, time_in_force, outside_rth)

说明

修改已下订单,具体可修改的字段见下表

参数

参数名类型是否必填描述
orderOrderYes要修改的 Order 对象(tigeropen.trade.domain.order.Order)
quantityintNo修改后的下单股数
limit_pricefloatNo修改后的限价,当 order_type 为LMT,STP,STP_LMT时该参数必需
aux_pricefloatNo对于限价止损单,表示触发价, 对于移动止损单,表示价差。当 order_type 为STP,STP_LMT时该参数必需
trail_stop_pricefloatNo当 order_type 为 TRAIL 时必须,为触发止损单的价格
trailing_percentfloatNo跟踪止损单-百分比 ,当 order_type 为 TRAIL时,aux_price和trailing_percent两者互斥
time_in_forcestrNo订单有效期,只能是 'DAY'(当日有效)和'GTC'(取消前有效),默认为'DAY'
outside_rthboolNo是否允许盘前盘后交易(美股专属)
secret_keystrNo机构交易员密钥,机构用户专有,机构用户必填,需要在client_config中配置

示例

from tigeropen.trade.trade_client import TradeClient
from tigeropen.tiger_open_config import get_client_config
client_config = get_client_config(private_key_path='private key path', tiger_id='your tiger id', account='your account')
trade_client = TradeClient(client_config)

# 假设订单id为:26731241425469440
order = trade_client.get_order(id=26731241425469440)
trade_client.modify_order(order, quantity=2, limit_price=105.0)
上次编辑于: