跳转到内容

触发方式

triggerMethod 决定止损、止损限价或价格条件订单用什么行情价格触发。Python API 的 Order 默认值是 0,表示让 TWS 使用默认触发逻辑。

触发方式会影响订单什么时候被触发,尤其是流动性差、买卖价差大、盘外交易或只有零散成交的产品。不要把它当成普通展示字段,它直接影响交易行为。

常见含义说明
0默认让 TWS/IBKR 按产品默认规则判断。
1双向买卖价更偏向 bid/ask 触发逻辑。
2最新成交价使用 last price 触发。
3双最新成交价要求更严格的最新成交价触发条件。
4买卖价使用 bid/ask 相关触发逻辑。
7最新成交价或买卖价last 或 bid/ask 条件满足时触发。
8中间价使用 bid/ask 中间价触发。

具体中文名称会随 TWS 界面、产品和版本略有差异,但核心思想是:不同触发方式使用不同行情源判断“是否到达触发价”。

order = Order()
order.action = "SELL"
order.orderType = "STP"
order.totalQuantity = 1
order.auxPrice = 95.00
order.triggerMethod = 2
order.transmit = True

这个止损单使用 2,即按最新成交价触发。触发后,STP 会变成市价单,实际成交价仍取决于市场流动性。

订单类型相关价格字段triggerMethod 的作用
STPauxPrice判断什么时候触发止损市价单。
STP LMTauxPrice + lmtPrice判断什么时候触发止损限价单。
条件订单条件价格字段判断条件是否满足。

如果不确定,先保持默认 0。只有在策略明确要求“用 bid/ask 触发”或“用 last 触发”时,再修改 triggerMethod

修改触发方式前,应先回答三个问题:

  • 这个产品的 bid/ask 是否稳定?
  • last price 是否可能长时间不更新?
  • 盘外或隔夜时段是否会让触发行情源变得不可靠?

触发方式不是风控替代品。止损触发不代表一定按触发价成交,尤其是跳空、低流动性和快速波动场景。