跳转到内容

Order 类参考

Order 是 TWS API Reference 中的一个数据结构。本页按 IBKR TWS API Python 包 10.47.1 的字段核对,用中文解释常见用途。

Order 是下单对象,描述买卖方向、数量、订单类型、价格、有效期、父子单、算法参数、条件订单和风控预检查等信息。

placeOrder(orderId, contract, order) 使用它提交、修改或 WhatIf 预检查订单;openOrder()completedOrder() 回调也会返回它。

字段类型中文解释
softDollarTierSoftDollarTierSoft Dollar 分层,普通个人账户通常不用设置。
orderIdint订单编号。必须来自 nextValidId() 或在其基础上递增,不能和已有 API 订单冲突。
clientIdintAPI 客户端编号。同一 TWS 中不同程序应使用不同 clientId,避免订单和回调互相混淆。
permIdintIBKR 永久订单 ID,可跨 clientId 或会话追踪订单。
actionstr买卖方向,常见值为 BUYSELL,部分做空场景会涉及 SSHORT
totalQuantityDecimal订单总数量。Python API 新版通常使用 Decimal 语义。
orderTypestr订单类型,例如 MKTLMTSTPSTP LMT
lmtPricefloat限价。LMT 订单必须设置;市价单通常不要设置。
auxPricefloat辅助价格。止损单常用作止损触发价,跟踪止损单也会用到。
tifstr订单有效期,常见值为 DAYGTCGTD
activeStartTimestrGTC 等订单的开始生效时间。
activeStopTimestrGTC 等订单的停止生效时间。
ocaGroupstrOCA 分组名,同组订单按 OCA 规则互相取消或减量。
ocaTypeintOCA 行为类型,决定同组订单如何取消或减量。
orderRefstr用户自定义订单引用,适合写策略名或追踪 ID,但不要放敏感信息。
transmitbool是否真正发送订单。括号订单常用 False 先挂子单,最后一腿再 True
parentIdint父订单 ID,用于止盈止损、括号订单和附加订单。
blockOrderbool是否块交易。普通股票新手订单通常保持默认。
sweepToFillbool是否尝试扫单成交。普通新手订单通常保持默认。
displaySizeint冰山订单或显示数量设置。普通订单为 0 表示不特别限制显示数量。
triggerMethodint条件或止损触发方式,决定使用 Last、Bid/Ask、Midpoint 等价格判断。
outsideRthbool是否允许常规交易时段外成交。不同产品和交易所支持不同。
hiddenbool是否隐藏订单。不是所有交易所或订单类型都支持,普通订单通常保持默认。
goodAfterTimestr订单在此时间之后才生效,格式通常包含日期、时间和时区。
goodTillDatestr订单有效到期时间,常用于 GTD
rule80Astr订单来源/身份标记。普通个人自动化订单通常不用填写。
allOrNonebool是否要求全部成交或全部不成交。不同产品和交易所支持情况不同。
minQtyint数量相关字段。注意不同产品可能使用股数、合约数、现金数量或 Decimal。
percentOffsetfloat相对价或挂钩类订单的百分比偏移。
overridePercentageConstraintsbool是否覆盖百分比价格限制。真实交易中应非常谨慎,避免绕过保护。
trailStopPricefloat价格相关字段。填写前应确认最小价格增量和订单类型是否支持。
trailingPercentfloat扩展字段。实际含义取决于所在接口和产品类型,建议结合对应请求或回调一起阅读。
faGroupstr财务顾问账户组。普通个人账户通常留空。
faMethodstr财务顾问分配方法,例如按比例、按可用权益等。普通个人账户通常留空。
faPercentagestr财务顾问分配比例。普通个人账户通常留空。
designatedLocationstr做空交割地点。只有特定做空流程需要填写。
openClosestr开仓/平仓标记。组合腿和机构订单场景常见。
originint扩展字段。实际含义取决于所在接口和产品类型,建议结合对应请求或回调一起阅读。
shortSaleSlotint做空来源标记。普通买入或卖出持仓不需要设置。
exemptCodeint做空豁免代码。普通订单保持默认。
discretionaryAmtint自主裁量金额,用于特定订单类型。普通订单通常保持 0。
optOutSmartRoutingbool是否退出 SMART 路由。普通股票订单通常不建议启用。
auctionStrategyintBOX 等交易所相关的拍卖策略。只有对应产品和交易所支持时才填写。
startingPricefloat价格相关字段。填写前应确认最小价格增量和订单类型是否支持。
stockRefPricefloat价格相关字段。填写前应确认最小价格增量和订单类型是否支持。
deltafloatDelta-neutral 或波动率订单相关的 delta 值。
stockRangeLowerfloat股票参考价格下界,常用于挂钩股票或波动率相关订单。
stockRangeUpperfloat股票参考价格上界,常用于挂钩股票或波动率相关订单。
randomizePricebool是否随机化价格,常用于某些算法或隐藏意图的订单类型。
randomizeSizebool是否随机化数量,常用于某些算法或隐藏意图的订单类型。
volatilityfloat波动率订单使用的波动率值。普通订单不填写。
volatilityTypeint波动率类型,常见为日化或年化。
deltaNeutralOrderTypestrDelta-neutral 对冲腿的订单类型。
deltaNeutralAuxPricefloatDelta-neutral 对冲腿的辅助价格。
deltaNeutralConIdintDelta-neutral 对冲腿的合约 ID。
deltaNeutralSettlingFirmstrDelta-neutral 对冲腿的清算公司。
deltaNeutralClearingAccountstrDelta-neutral 对冲腿的清算账户。
deltaNeutralClearingIntentstrDelta-neutral 对冲腿的清算意图。
deltaNeutralOpenClosestrDelta-neutral 对冲腿的开平仓标记。
deltaNeutralShortSaleboolDelta-neutral 对冲腿是否涉及做空。
deltaNeutralShortSaleSlotintDelta-neutral 对冲腿的做空来源标记。
deltaNeutralDesignatedLocationstrDelta-neutral 对冲腿的做空交割地点。
continuousUpdatebool波动率订单是否持续更新相关价格。普通股票/限价单通常不用。
referencePriceTypeint参考价格类型,常用于波动率或挂钩类订单。
basisPointsfloatEFP 等组合订单的基点数。
basisPointsTypeintEFP 等组合订单的基点类型。
scaleInitLevelSizeintScale 订单首档数量。
scaleSubsLevelSizeintScale 订单后续档位数量。
scalePriceIncrementfloatScale 订单档位价格递增。
scalePriceAdjustValuefloatScale 订单价格调整值。
scalePriceAdjustIntervalintScale 订单价格调整间隔。
scaleProfitOffsetfloatScale 订单利润偏移。
scaleAutoResetboolScale 订单是否自动重置。
scaleInitPositionintScale 订单初始持仓。
scaleInitFillQtyintScale 订单初始成交数量。
scaleRandomPercentboolScale 订单是否随机化百分比。
scaleTablestrScale 订单阶梯表字符串。
hedgeTypestr对冲类型,例如 delta、beta、FX 或 pair。
hedgeParamstr对冲参数,例如 beta 或 pair ratio。
hedgeMaxSizeint对冲订单最大数量。
accountstr账户代码。下单、账户更新和 FA 分配时用于指定具体账户;单账户程序通常可以留空或使用回调返回的账户。
settlingFirmstr清算公司字段,普通个人账户通常留空。
clearingAccountstr清算账户字段,普通个人账户通常留空。
clearingIntentstr清算意图字段,普通个人账户通常使用默认。
algoStrategystr算法订单名称,例如 IBKR 支持的某类 Algo 策略。
algoParams对象 / 列表 / 未设置算法订单参数列表,通常是 TagValue 列表。
smartComboRoutingParams对象 / 列表 / 未设置SMART 组合路由扩展参数列表。
algoIdstr编号字段。用于把请求、订单、合约或成交关联起来。
whatIfbool是否只做订单预检查。True 时不会真正下单。
notHeldbool扩展字段。实际含义取决于所在接口和产品类型,建议结合对应请求或回调一起阅读。
solicitedbool扩展字段。实际含义取决于所在接口和产品类型,建议结合对应请求或回调一起阅读。
modelCodestr投资组合模型代码。没有模型组合时通常为空字符串。
orderComboLegs对象 / 列表 / 未设置组合订单每条腿的订单价格列表。
orderMiscOptions对象 / 列表 / 未设置订单杂项扩展参数列表。
referenceContractIdint挂钩类订单参考合约 ID。
peggedChangeAmountfloat挂钩价格变化金额。
isPeggedChangeAmountDecreasebool挂钩变化金额是否为向下调整。
referenceChangeAmountfloat参考价格变化金额。
referenceExchangeIdstr交易所字段。合约定义、路由和条件触发都可能用到。
adjustedOrderTypestr触发后调整出的订单类型。
triggerPricefloat价格相关字段。填写前应确认最小价格增量和订单类型是否支持。
adjustedStopPricefloat触发后调整出的止损价。
adjustedStopLimitPricefloat触发后调整出的止损限价。
adjustedTrailingAmountfloat触发后调整出的跟踪金额。
adjustableTrailingUnitint可调整跟踪单位。
lmtPriceOffsetfloat限价偏移量,常见于挂钩类订单。普通限价单不要填写它。
conditionslist订单条件列表,可放入价格、时间、成交、保证金、成交量等条件。
conditionsCancelOrderbool条件满足时是否取消订单。
conditionsIgnoreRthbool判断条件时是否忽略常规交易时段限制。
extOperatorstr外部操作员或审计字段,普通个人账户通常留空。
cashQtyfloat以现金金额表达的订单数量,常见于外汇或部分产品。
mifid2DecisionMakerstrMiFIR 决策人字段,适用于相关监管场景。
mifid2DecisionAlgostrMiFIR 决策算法字段,适用于相关监管场景。
mifid2ExecutionTraderstrMiFIR 执行交易员字段,适用于相关监管场景。
mifid2ExecutionAlgostrMiFIR 执行算法字段,适用于相关监管场景。
dontUseAutoPriceForHedgebool对冲订单是否禁用自动定价。
isOmsContainerbool是否 OMS 容器订单,普通个人账户通常不用。
discretionaryUpToLimitPricebool自主裁量是否可达到限价。
autoCancelDatestr自动取消日期。
filledQuantityDecimal已成交数量。
refFuturesConIdint参考期货合约 ID。
autoCancelParentbool是否自动取消父订单。
shareholderstr股东信息字段,特定市场或监管场景使用。
imbalanceOnlybool是否仅参与不平衡订单。
routeMarketableToBbo对象 / 列表 / 未设置可成交订单是否路由到 BBO 相关设置。
parentPermIdint父订单永久 ID。
usePriceMgmtAlgo对象 / 列表 / 未设置是否使用 IBKR 价格管理算法。
durationint订单持续时间字段,适用于特定订单类型。
postToAtsint是否发布到 ATS,取值依产品和账户权限而定。
advancedErrorOverridestr高级错误覆盖字段。只有明确理解交易所或监管错误含义时才应使用。
manualOrderTimestr手工订单时间审计字段。
minTradeQtyint最小成交数量。
minCompeteSizeint最小竞争数量。
competeAgainstBestOffsetfloat与最优价竞争时使用的偏移。
midOffsetAtWholefloat中点相关订单在整数价位处的偏移。
midOffsetAtHalffloat中点相关订单在半价位处的偏移。
customerAccountstr客户账户字段,机构或清算场景使用。
professionalCustomerbool是否专业客户。
bondAccruedIntereststr债券应计利息字段。
includeOvernightbool是否包含隔夜交易。
manualOrderIndicatorint手工订单标记。
submitterstr提交者字段,审计或机构场景使用。
postOnlybool是否只做 post-only 订单。
allowPreOpenbool是否允许开盘前阶段。
ignoreOpenAuctionbool是否忽略开盘集合竞价。
deactivatebool是否停用订单。
seekPriceImprovement对象 / 列表 / 未设置是否寻求价格改善。
whatIfTypeintWhatIf 检查类型。
slOrderIdint止损附加单 ID。
slOrderTypestr止损附加单类型。
ptOrderIdint止盈附加单 ID。
ptOrderTypestr止盈附加单类型。
  • 基础限价单最少需要 actiontotalQuantityorderType='LMT'lmtPrice
  • 基础市价单通常不设置 lmtPrice,但真实交易前仍应确认产品、时段和风险提示。
  • transmit=False 常用于括号订单,不代表订单已经安全完成。
  • whatIf=True 只做预检查,不会真正下单;预估保证金和费用仍要以后续真实状态为准。
  • 默认未设置值不是 0。UNSET_DOUBLEUNSET_INTEGER 和空字符串含义不同。

Python API 中对应源码文件为 ibapi/order.py。不同语言的类名和字段名可能略有大小写差异,但核心含义一致;写策略时应以自己安装的 API 版本为准。