跳转到内容

SMART 算法

SMART 是 IBKR 的智能路由方式。对股票等产品来说,订单可以不是固定发到某一个交易所,而是让 IBKR 按路由规则选择执行路径。

官方位置:

Global Configuration / 全局配置 -> Orders / 订单 -> Smart Routing

在 TWS API 里,合约常见写法会使用:

exchange = "SMART"

这表示订单或行情请求使用智能路由相关逻辑。但 SMART 的具体行为也会受到 TWS 中 Smart Routing 设置、账户权限、产品类型和交易所规则影响。

概念中文解释
SMART让 IBKR 智能选择路由。
primaryExchange主要交易所,用来消除合约歧义,常见如 NASDAQ
routing / algorithm路由算法或偏好,决定订单如何在多个目的地之间选择。
exchange合约或订单使用的交易所字段;写 SMART 时不是某个单一交易所。

例如美股 AAPL 常见合约会同时出现:

symbol = "AAPL"
secType = "STK"
exchange = "SMART"
currency = "USD"
primaryExchange = "NASDAQ"

这里的 primaryExchange 不是下单路由目的地,而是帮助 IBKR 准确识别“你说的是哪一个 AAPL 股票合约”。缺少它时,部分 symbol 可能出现合约歧义。

SMART 不代表一定拿到最优结果,也不代表可以忽略订单类型、限价、交易时段和行情权限。程序下单时仍然要明确:

  • 买卖方向。
  • 数量。
  • 订单类型。
  • 限价或触发价。
  • 是否允许盘前盘后。
  • 是否使用 whatIf 预览。
场景写法建议
查询美股合约exchange="SMART",同时尽量填写 primaryExchange
下限价单不要因为使用 SMART 就省略限价。
做成交后复盘记录实际成交交易所、成交价和订单状态。
多市场产品先用 reqContractDetails() 确认合约唯一,再写行情或订单请求。

官方文档提示,SMART 路由设置位于 Global Configuration -> Orders -> Smart Routing,可用的 SMART Routing 细节需要结合合约章节说明。