跳转到内容

认证常见问题

如何判断 brokerage session 已认证?

Section titled “如何判断 brokerage session 已认证?”

调用:

POST /iserver/auth/status

如果返回中 authenticated=trueconnected=true,通常表示 brokerage session 已经可用。交易、行情和多数 /iserver endpoint 才有继续请求的基础。

官方说明中,session 最长可保持约 24 小时,并会在与你最近连接区域相关的午夜重置。实际运行中,服务器维护、网络断开、Gateway 重启或竞争会话都可能提前让 session 失效。

如果几分钟没有请求,session 也可能因为空闲而超时。

定期调用:

POST /tickle

常见做法是大约每 60 秒调用一次。/tickle 会返回 session 信息和 /iserver 认证状态。

如果 /tickle 返回正常,但认证状态仍是 authenticated=false,说明保活链路可用,交易会话仍未恢复。此时应重新检查 /iserver/auth/status,必要时再调用 /iserver/auth/ssodh/init

connected=trueauthenticated=false 怎么办?

Section titled “connected=true 但 authenticated=false 怎么办?”

这通常表示 Gateway 和 IBKR 后端仍有连接,但 brokerage session 没有认证或已经超时。可以调用:

POST /iserver/auth/ssodh/init

请求体中通常包含 publish=true。是否传 compete=true 要谨慎,因为它可能影响同一用户名在其他平台的 brokerage session。

默认建议先用 compete=false。只有确认 API 会话要接管交易会话,并且不会影响正在使用的 TWS、IB Gateway 或移动端时,才考虑 compete=true

不可以。Client Portal 访问敏感账户、资金和交易能力,双因素认证是必需的。API 不能绕过 2FA。

个人客户没有官方自动化 Gateway brokerage session 登录机制。IBKR 也不建议使用第三方工具绕过或自动化登录过程,因为这会带来账户安全风险。

为什么登录 Gateway 后 TWS 被挤掉?

Section titled “为什么登录 Gateway 后 TWS 被挤掉?”

同一用户名只能有一个 active brokerage session。TWS、IB Gateway、Client Portal、IBKR Mobile 和 Client Portal API 都可能竞争同一用户名的交易会话。

要并行使用,通常需要创建第二用户名,并确认该用户名拥有所需账户、交易和行情权限。

使用 Paper Trading 专用用户名。Gateway 登录页面没有 Live / Paper 切换滑块。

Paper 用户名可以从 Client Portal 的 Paper Trading Account 设置页面查看,也可以重置 Paper Trading 密码。

官方文档中把 /iserver/reauthenticate 标为 deprecated。需要重新初始化 brokerage session 时,应优先使用 /iserver/auth/ssodh/init

为什么 HTTP 请求成功但业务失败?

Section titled “为什么 HTTP 请求成功但业务失败?”

HTTP 成功只代表请求到达并收到响应。业务是否成功还要看:

  • authenticated
  • connected
  • competing
  • message
  • endpoint 返回的错误码和错误文本
  • 订单状态、确认信息和警告

交易系统不能只用 HTTP 状态码判断认证和下单是否成功。