跳转到内容

IB Gateway 架构

IB Gateway 是 IBKR 提供的精简交易网关。它没有 TWS 那样完整的交易界面,但同样可以作为 TWS API 的 Socket 连接端。

从 API 架构看,IB Gateway 和 TWS 的核心位置相同:程序连接 IB Gateway,IB Gateway 再连接 IBKR 后端。它不是 REST API,也不是绕过登录认证的后台服务。

典型结构如下:

策略程序 / 后端服务 / 测试脚本
|
| TCP Socket
| 模拟账户常见端口 4002,真实账户常见端口 4001
v
IB Gateway
|
| 登录、认证、账户会话、行情权限、订单路由
v
IBKR 后端服务

这意味着 IB Gateway 仍然需要账户登录、双因素认证、会话维护、API 端口配置和定期重新认证。它更轻量,但不是“装好后永远在线”的无状态服务。

IB Gateway 更适合:

  • 服务器上长期运行的策略程序。
  • 后端服务连接模拟账户做自动化测试。
  • 不需要频繁人工查看图形交易界面。
  • 需要比 TWS 更轻量的客户端进程。
  • 定时任务、风控服务、数据采集服务或交易辅助服务。

它不太适合第一天学习 TWS API 的新手。新手更容易通过 TWS 图形界面看懂账户、行情、订单状态和风险提示。

IB Gateway 的常见 API 端口和 TWS 不同:

账户环境IB Gateway 常见端口TWS 常见端口
模拟账户40027497
真实账户40017496

示例连接参数:

host = "127.0.0.1"
port = 4002
client_id = 910

实际端口以 IB Gateway 配置页为准。如果设置页修改了端口,代码也必须同步修改。

IB Gateway 和 TWS 使用同一套 TWS API 请求和回调模型:

相同点说明
Socket 连接程序通过 TCP Socket 连接客户端
EClient请求仍然通过 EClient 方法发出
EWrapper返回结果仍然进入回调方法
异步模型行情、订单、账户、错误码都不是同步返回
API 设置仍然需要启用 API、配置端口和连接权限
登录认证仍然需要完成 IBKR 登录和双因素认证
权限规则行情、交易、产品和账户权限规则不变

所以,从代码角度看,很多 TWS 示例只需要换端口就能连接 IB Gateway。真正不同的是运行方式、登录维护、进程守护和安全策略。

主要区别在界面和部署定位:

对比项TWSIB Gateway
界面完整交易界面精简网关界面
手动观察方便看订单、行情、提示可观察的信息更少
设置核对更直观更偏后台
资源占用更高更轻
学习体验更适合新手更适合已有基础后部署
长期运行不推荐作为首选更适合服务器进程

建议先用 TWS 跑通 API 设置、连接、合约、行情、历史数据和订单流程,再迁移到 IB Gateway。

把 IB Gateway 放到服务器上时,需要提前设计这些问题:

问题说明
图形环境IB Gateway 仍然需要能显示登录窗口,Linux 常见做法是桌面环境、VNC 或远程桌面
登录维护服务器重启、会话过期、重新认证都要有处理流程
双因素认证需要确认谁来处理手机端确认或安全设备确认
进程守护需要监控进程是否退出,并决定是否自动重启
断线重连程序断线后要重新连接,并重新订阅行情或账户数据
日志保留API 日志和 Gateway 日志要方便定位问题
网络安全不建议把 API 端口直接暴露到公网
账户隔离开发和测试优先使用模拟账户

IB Gateway 的部署难点通常不在代码,而在登录、认证、重启、网络和监控。

如果程序不和 IB Gateway 在同一台机器上,就会涉及远程连接:

配置项说明
host填写 IB Gateway 所在机器的内网地址或受控网络地址
连接权限Gateway 设置页需要允许对应来源连接
可信 IP只允许可信机器连接
防火墙只开放必要端口
网络通道优先使用内网、VPN、SSH 隧道或受控代理

不建议把 40014002 直接开放到公网。TWS API 端口可以下单、查账户、读取敏感数据,必须按交易系统的安全级别保护。

可以按目标选择:

目标建议
学习 TWS API先用 TWS
人工核对订单状态先用 TWS
编写和验证示例代码先用 TWS,更容易观察
后端模拟账户测试可以用 IB Gateway
服务器长期运行优先 IB Gateway
自动化交易系统通常用 IB Gateway,并配套监控和风控

IB Gateway 不是“更简单的 TWS”,而是更适合后台运行的 TWS API 网关。对新手来说,先理解 TWS,再迁移到 IB Gateway,会少很多排查成本。

官方 TWS API 文档入口:

TWS API Documentation