Order 类参考
Order 是 TWS API Reference 中的一个数据结构。本页按 IBKR TWS API Python 包 10.47.1 的字段核对,用中文解释常见用途。
Order 是下单对象,描述买卖方向、数量、订单类型、价格、有效期、父子单、算法参数、条件订单和风控预检查等信息。
常见使用位置
Section titled “常见使用位置”placeOrder(orderId, contract, order) 使用它提交、修改或 WhatIf 预检查订单;openOrder() 和 completedOrder() 回调也会返回它。
| 字段 | 类型 | 中文解释 |
|---|---|---|
softDollarTier | SoftDollarTier | Soft Dollar 分层,普通个人账户通常不用设置。 |
orderId | int | 订单编号。必须来自 nextValidId() 或在其基础上递增,不能和已有 API 订单冲突。 |
clientId | int | API 客户端编号。同一 TWS 中不同程序应使用不同 clientId,避免订单和回调互相混淆。 |
permId | int | IBKR 永久订单 ID,可跨 clientId 或会话追踪订单。 |
action | str | 买卖方向,常见值为 BUY、SELL,部分做空场景会涉及 SSHORT。 |
totalQuantity | Decimal | 订单总数量。Python API 新版通常使用 Decimal 语义。 |
orderType | str | 订单类型,例如 MKT、LMT、STP、STP LMT。 |
lmtPrice | float | 限价。LMT 订单必须设置;市价单通常不要设置。 |
auxPrice | float | 辅助价格。止损单常用作止损触发价,跟踪止损单也会用到。 |
tif | str | 订单有效期,常见值为 DAY、GTC、GTD。 |
activeStartTime | str | GTC 等订单的开始生效时间。 |
activeStopTime | str | GTC 等订单的停止生效时间。 |
ocaGroup | str | OCA 分组名,同组订单按 OCA 规则互相取消或减量。 |
ocaType | int | OCA 行为类型,决定同组订单如何取消或减量。 |
orderRef | str | 用户自定义订单引用,适合写策略名或追踪 ID,但不要放敏感信息。 |
transmit | bool | 是否真正发送订单。括号订单常用 False 先挂子单,最后一腿再 True。 |
parentId | int | 父订单 ID,用于止盈止损、括号订单和附加订单。 |
blockOrder | bool | 是否块交易。普通股票新手订单通常保持默认。 |
sweepToFill | bool | 是否尝试扫单成交。普通新手订单通常保持默认。 |
displaySize | int | 冰山订单或显示数量设置。普通订单为 0 表示不特别限制显示数量。 |
triggerMethod | int | 条件或止损触发方式,决定使用 Last、Bid/Ask、Midpoint 等价格判断。 |
outsideRth | bool | 是否允许常规交易时段外成交。不同产品和交易所支持不同。 |
hidden | bool | 是否隐藏订单。不是所有交易所或订单类型都支持,普通订单通常保持默认。 |
goodAfterTime | str | 订单在此时间之后才生效,格式通常包含日期、时间和时区。 |
goodTillDate | str | 订单有效到期时间,常用于 GTD。 |
rule80A | str | 订单来源/身份标记。普通个人自动化订单通常不用填写。 |
allOrNone | bool | 是否要求全部成交或全部不成交。不同产品和交易所支持情况不同。 |
minQty | int | 数量相关字段。注意不同产品可能使用股数、合约数、现金数量或 Decimal。 |
percentOffset | float | 相对价或挂钩类订单的百分比偏移。 |
overridePercentageConstraints | bool | 是否覆盖百分比价格限制。真实交易中应非常谨慎,避免绕过保护。 |
trailStopPrice | float | 价格相关字段。填写前应确认最小价格增量和订单类型是否支持。 |
trailingPercent | float | 扩展字段。实际含义取决于所在接口和产品类型,建议结合对应请求或回调一起阅读。 |
faGroup | str | 财务顾问账户组。普通个人账户通常留空。 |
faMethod | str | 财务顾问分配方法,例如按比例、按可用权益等。普通个人账户通常留空。 |
faPercentage | str | 财务顾问分配比例。普通个人账户通常留空。 |
designatedLocation | str | 做空交割地点。只有特定做空流程需要填写。 |
openClose | str | 开仓/平仓标记。组合腿和机构订单场景常见。 |
origin | int | 扩展字段。实际含义取决于所在接口和产品类型,建议结合对应请求或回调一起阅读。 |
shortSaleSlot | int | 做空来源标记。普通买入或卖出持仓不需要设置。 |
exemptCode | int | 做空豁免代码。普通订单保持默认。 |
discretionaryAmt | int | 自主裁量金额,用于特定订单类型。普通订单通常保持 0。 |
optOutSmartRouting | bool | 是否退出 SMART 路由。普通股票订单通常不建议启用。 |
auctionStrategy | int | BOX 等交易所相关的拍卖策略。只有对应产品和交易所支持时才填写。 |
startingPrice | float | 价格相关字段。填写前应确认最小价格增量和订单类型是否支持。 |
stockRefPrice | float | 价格相关字段。填写前应确认最小价格增量和订单类型是否支持。 |
delta | float | Delta-neutral 或波动率订单相关的 delta 值。 |
stockRangeLower | float | 股票参考价格下界,常用于挂钩股票或波动率相关订单。 |
stockRangeUpper | float | 股票参考价格上界,常用于挂钩股票或波动率相关订单。 |
randomizePrice | bool | 是否随机化价格,常用于某些算法或隐藏意图的订单类型。 |
randomizeSize | bool | 是否随机化数量,常用于某些算法或隐藏意图的订单类型。 |
volatility | float | 波动率订单使用的波动率值。普通订单不填写。 |
volatilityType | int | 波动率类型,常见为日化或年化。 |
deltaNeutralOrderType | str | Delta-neutral 对冲腿的订单类型。 |
deltaNeutralAuxPrice | float | Delta-neutral 对冲腿的辅助价格。 |
deltaNeutralConId | int | Delta-neutral 对冲腿的合约 ID。 |
deltaNeutralSettlingFirm | str | Delta-neutral 对冲腿的清算公司。 |
deltaNeutralClearingAccount | str | Delta-neutral 对冲腿的清算账户。 |
deltaNeutralClearingIntent | str | Delta-neutral 对冲腿的清算意图。 |
deltaNeutralOpenClose | str | Delta-neutral 对冲腿的开平仓标记。 |
deltaNeutralShortSale | bool | Delta-neutral 对冲腿是否涉及做空。 |
deltaNeutralShortSaleSlot | int | Delta-neutral 对冲腿的做空来源标记。 |
deltaNeutralDesignatedLocation | str | Delta-neutral 对冲腿的做空交割地点。 |
continuousUpdate | bool | 波动率订单是否持续更新相关价格。普通股票/限价单通常不用。 |
referencePriceType | int | 参考价格类型,常用于波动率或挂钩类订单。 |
basisPoints | float | EFP 等组合订单的基点数。 |
basisPointsType | int | EFP 等组合订单的基点类型。 |
scaleInitLevelSize | int | Scale 订单首档数量。 |
scaleSubsLevelSize | int | Scale 订单后续档位数量。 |
scalePriceIncrement | float | Scale 订单档位价格递增。 |
scalePriceAdjustValue | float | Scale 订单价格调整值。 |
scalePriceAdjustInterval | int | Scale 订单价格调整间隔。 |
scaleProfitOffset | float | Scale 订单利润偏移。 |
scaleAutoReset | bool | Scale 订单是否自动重置。 |
scaleInitPosition | int | Scale 订单初始持仓。 |
scaleInitFillQty | int | Scale 订单初始成交数量。 |
scaleRandomPercent | bool | Scale 订单是否随机化百分比。 |
scaleTable | str | Scale 订单阶梯表字符串。 |
hedgeType | str | 对冲类型,例如 delta、beta、FX 或 pair。 |
hedgeParam | str | 对冲参数,例如 beta 或 pair ratio。 |
hedgeMaxSize | int | 对冲订单最大数量。 |
account | str | 账户代码。下单、账户更新和 FA 分配时用于指定具体账户;单账户程序通常可以留空或使用回调返回的账户。 |
settlingFirm | str | 清算公司字段,普通个人账户通常留空。 |
clearingAccount | str | 清算账户字段,普通个人账户通常留空。 |
clearingIntent | str | 清算意图字段,普通个人账户通常使用默认。 |
algoStrategy | str | 算法订单名称,例如 IBKR 支持的某类 Algo 策略。 |
algoParams | 对象 / 列表 / 未设置 | 算法订单参数列表,通常是 TagValue 列表。 |
smartComboRoutingParams | 对象 / 列表 / 未设置 | SMART 组合路由扩展参数列表。 |
algoId | str | 编号字段。用于把请求、订单、合约或成交关联起来。 |
whatIf | bool | 是否只做订单预检查。True 时不会真正下单。 |
notHeld | bool | 扩展字段。实际含义取决于所在接口和产品类型,建议结合对应请求或回调一起阅读。 |
solicited | bool | 扩展字段。实际含义取决于所在接口和产品类型,建议结合对应请求或回调一起阅读。 |
modelCode | str | 投资组合模型代码。没有模型组合时通常为空字符串。 |
orderComboLegs | 对象 / 列表 / 未设置 | 组合订单每条腿的订单价格列表。 |
orderMiscOptions | 对象 / 列表 / 未设置 | 订单杂项扩展参数列表。 |
referenceContractId | int | 挂钩类订单参考合约 ID。 |
peggedChangeAmount | float | 挂钩价格变化金额。 |
isPeggedChangeAmountDecrease | bool | 挂钩变化金额是否为向下调整。 |
referenceChangeAmount | float | 参考价格变化金额。 |
referenceExchangeId | str | 交易所字段。合约定义、路由和条件触发都可能用到。 |
adjustedOrderType | str | 触发后调整出的订单类型。 |
triggerPrice | float | 价格相关字段。填写前应确认最小价格增量和订单类型是否支持。 |
adjustedStopPrice | float | 触发后调整出的止损价。 |
adjustedStopLimitPrice | float | 触发后调整出的止损限价。 |
adjustedTrailingAmount | float | 触发后调整出的跟踪金额。 |
adjustableTrailingUnit | int | 可调整跟踪单位。 |
lmtPriceOffset | float | 限价偏移量,常见于挂钩类订单。普通限价单不要填写它。 |
conditions | list | 订单条件列表,可放入价格、时间、成交、保证金、成交量等条件。 |
conditionsCancelOrder | bool | 条件满足时是否取消订单。 |
conditionsIgnoreRth | bool | 判断条件时是否忽略常规交易时段限制。 |
extOperator | str | 外部操作员或审计字段,普通个人账户通常留空。 |
cashQty | float | 以现金金额表达的订单数量,常见于外汇或部分产品。 |
mifid2DecisionMaker | str | MiFIR 决策人字段,适用于相关监管场景。 |
mifid2DecisionAlgo | str | MiFIR 决策算法字段,适用于相关监管场景。 |
mifid2ExecutionTrader | str | MiFIR 执行交易员字段,适用于相关监管场景。 |
mifid2ExecutionAlgo | str | MiFIR 执行算法字段,适用于相关监管场景。 |
dontUseAutoPriceForHedge | bool | 对冲订单是否禁用自动定价。 |
isOmsContainer | bool | 是否 OMS 容器订单,普通个人账户通常不用。 |
discretionaryUpToLimitPrice | bool | 自主裁量是否可达到限价。 |
autoCancelDate | str | 自动取消日期。 |
filledQuantity | Decimal | 已成交数量。 |
refFuturesConId | int | 参考期货合约 ID。 |
autoCancelParent | bool | 是否自动取消父订单。 |
shareholder | str | 股东信息字段,特定市场或监管场景使用。 |
imbalanceOnly | bool | 是否仅参与不平衡订单。 |
routeMarketableToBbo | 对象 / 列表 / 未设置 | 可成交订单是否路由到 BBO 相关设置。 |
parentPermId | int | 父订单永久 ID。 |
usePriceMgmtAlgo | 对象 / 列表 / 未设置 | 是否使用 IBKR 价格管理算法。 |
duration | int | 订单持续时间字段,适用于特定订单类型。 |
postToAts | int | 是否发布到 ATS,取值依产品和账户权限而定。 |
advancedErrorOverride | str | 高级错误覆盖字段。只有明确理解交易所或监管错误含义时才应使用。 |
manualOrderTime | str | 手工订单时间审计字段。 |
minTradeQty | int | 最小成交数量。 |
minCompeteSize | int | 最小竞争数量。 |
competeAgainstBestOffset | float | 与最优价竞争时使用的偏移。 |
midOffsetAtWhole | float | 中点相关订单在整数价位处的偏移。 |
midOffsetAtHalf | float | 中点相关订单在半价位处的偏移。 |
customerAccount | str | 客户账户字段,机构或清算场景使用。 |
professionalCustomer | bool | 是否专业客户。 |
bondAccruedInterest | str | 债券应计利息字段。 |
includeOvernight | bool | 是否包含隔夜交易。 |
manualOrderIndicator | int | 手工订单标记。 |
submitter | str | 提交者字段,审计或机构场景使用。 |
postOnly | bool | 是否只做 post-only 订单。 |
allowPreOpen | bool | 是否允许开盘前阶段。 |
ignoreOpenAuction | bool | 是否忽略开盘集合竞价。 |
deactivate | bool | 是否停用订单。 |
seekPriceImprovement | 对象 / 列表 / 未设置 | 是否寻求价格改善。 |
whatIfType | int | WhatIf 检查类型。 |
slOrderId | int | 止损附加单 ID。 |
slOrderType | str | 止损附加单类型。 |
ptOrderId | int | 止盈附加单 ID。 |
ptOrderType | str | 止盈附加单类型。 |
- 基础限价单最少需要
action、totalQuantity、orderType='LMT'、lmtPrice。 - 基础市价单通常不设置
lmtPrice,但真实交易前仍应确认产品、时段和风险提示。 transmit=False常用于括号订单,不代表订单已经安全完成。whatIf=True只做预检查,不会真正下单;预估保证金和费用仍要以后续真实状态为准。- 默认未设置值不是 0。
UNSET_DOUBLE、UNSET_INTEGER和空字符串含义不同。
Python API 中对应源码文件为 ibapi/order.py。不同语言的类名和字段名可能略有大小写差异,但核心含义一致;写策略时应以自己安装的 API 版本为准。