触发方式
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 = 1order.auxPrice = 95.00order.triggerMethod = 2order.transmit = True这个止损单使用 2,即按最新成交价触发。触发后,STP 会变成市价单,实际成交价仍取决于市场流动性。
和订单类型的关系
Section titled “和订单类型的关系”| 订单类型 | 相关价格字段 | triggerMethod 的作用 |
|---|---|---|
STP | auxPrice | 判断什么时候触发止损市价单。 |
STP LMT | auxPrice + lmtPrice | 判断什么时候触发止损限价单。 |
| 条件订单 | 条件价格字段 | 判断条件是否满足。 |
如果不确定,先保持默认 0。只有在策略明确要求“用 bid/ask 触发”或“用 last 触发”时,再修改 triggerMethod。
修改触发方式前,应先回答三个问题:
- 这个产品的 bid/ask 是否稳定?
- last price 是否可能长时间不更新?
- 盘外或隔夜时段是否会让触发行情源变得不可靠?
触发方式不是风控替代品。止损触发不代表一定按触发价成交,尤其是跳空、低流动性和快速波动场景。