Client Portal Web API 会话背景
Client Portal Web API 的会话模型来自 IBKR 平台本身:Client Portal 网站既能做账户管理和报表,也能进入交易相关功能;而交易功能必须连接 IBKR 后端交易系统。
因此,API 中会出现两层会话:
| 层级 | 中文理解 |
|---|---|
| 外层 Portal session | 登录 Client Portal 后的基础 Web 会话。 |
| 内层 brokerage session | 具备交易、行情和 /iserver 权限的交易会话。 |
为什么要分两层
Section titled “为什么要分两层”IBKR 允许用户在 Client Portal 中做一些非交易操作,例如查看报表、管理资料、查看部分组合信息。这些能力不一定要求占用交易会话。
但交易、实时行情、订单和很多 /iserver 功能需要进入 brokerage session。brokerage session 会占用用户名的交易连接,因此它不能随意多开。
与 TWS 的关系
Section titled “与 TWS 的关系”TWS 本身就是交易平台。登录 TWS 并连接交易服务时,它会占用该用户名的 brokerage session。
如果同一用户名已经在 TWS 中保持交易会话,再尝试让 Client Portal API 建立 brokerage session,可能出现竞争会话。反过来也一样:Client Portal API 已经占用 brokerage session 时,再登录 TWS 可能会把 API 的交易会话挤掉。
哪些资源需要 brokerage session
Section titled “哪些资源需要 brokerage session”| 资源 | 是否通常需要 brokerage session |
|---|---|
/iserver 下的订单、行情、成交、合约交易功能 | 需要 |
| Client Portal API WebSocket 中的实时行情、订单、成交 topic | 需要 |
部分 /portfolio 或账户资料类 endpoint | 不一定需要 |
| 报表、账户管理、非交易类 Client Portal 功能 | 视 endpoint 而定 |
程序设计建议
Section titled “程序设计建议”- 启动程序时先检查
/sso/validate,再检查/iserver/auth/status。 - 只有需要交易、行情或
/iserver功能时,再初始化 brokerage session。 - 如果程序要和 TWS 同时运行,最好使用不同 IBKR 用户名。
- 业务日志要记录认证状态变化,但不要记录账号密码、2FA 内容或完整 session cookie。