Interactive Brokers
用 Flex Web Service 令牌和两个 Flex Query 一次性连接 Interactive Brokers。Tradeways 会按计划导入新的股票、ETF 和 Forex 成交。
Interactive Brokers
连接一次 Interactive Brokers,Tradeways 就会自动导入你的成交。无需安装任何软件,你的电脑也不必开机:Tradeways 会按计划从 Interactive Brokers 下载你设置好的 Flex 报告。
该连接是只读的。Flex Web Service 令牌只能下载你配置的 Flex 报告,无法下单或转移资金。
设置大约需要十分钟。你需要在 Interactive Brokers 中创建三项内容,并粘贴到 Tradeways:
| 内容 | 外观 | 用途 |
|---|---|---|
| Flex Web Service token | 一长串数字,约 25 位 | 让 Tradeways 下载你的报告 |
| Activity Flex Query ID | 一串较短的数字,约 7 位 | 每日报告:更正、佣金、未平仓持仓 |
| Trade Confirmation Flex Query ID | 一串较短的数字,约 7 位 | 当日报告:新成交 |
这些内容都在 Interactive Brokers 的 Performance & Reports → Flex Queries 下。下面的图片来自 Interactive Brokers 手机 App,其中该页面叫作 Trade Reports。桌面版 Client Portal 显示的字段相同。
如需导入连接之前的历史,或不使用令牌导入,请参见 Interactive Brokers 文件导入。
设置 Interactive Brokers
1. 开启 Flex Web Service 并创建令牌
打开 Flex Queries,点击 Flex Web Service Configuration 旁边的齿轮图标。

- 开启 Flex Web Service Status。
- 将 Valid for IP Address 留空。Tradeways 不使用固定地址连接,因此限制了 IP 地址的令牌会被拒绝。
- 点击 Generate New Token,并选择有效期。选择最长的有效期,可以避免过早更换。
复制令牌。之后再生成另一个令牌会使这个令牌失效;届时请在 Tradeways 中更换凭据。
2. 创建两个 Flex Query
在 Flex Queries 页面中,每种查询类型都有自己的 + 按钮。

Activity Flex Query(1)。在德语版 Portal 中,它叫作 Kontoumsatz-Flex-Query。
- 为它命名,例如
Tradeways。 - 添加 Trades 部分。详细程度选择 Executions,并勾选所有字段。
- 添加 Open Positions 部分。详细程度选择 Summary,并勾选所有字段。
- 将格式设为 XML。期间无关紧要:Tradeways 会在每次请求时设置日期。
- 按第 3 步设置常规配置,然后保存。
Trade Confirmation Flex Query(2)。在德语版 Portal 中,它叫作 Handelsbestätigungs-Flex-Query。
- 为它命名,例如
Tradeways。 - 添加 Trade Confirmation 部分。详细程度选择 Execution,并勾选所有字段。
- 将格式设为 XML。
- 按第 3 步设置常规配置,然后保存。
每个查询可以包含多个 Interactive Brokers 账户,不需要为每个账户各建一个查询;Tradeways 第一次发现某个账户时,会询问它要导入到哪里。
3. 在两个查询中设置常规配置
两个查询都有 General Configuration 区块。请在两个查询中设置相同的四个值。

- Date Format:
yyyyMMdd。 - Time Format:
HHmmss TimeZone。这是最容易漏掉的设置。没有它,成交时间就不带时区,而 Tradeways 不会导入需要猜测时间的报告。 - Date/Time Separator:
; (semi-colon)。 - Include Offsetting Trade/Cancel Pairs?:Yes。这样,被 Interactive Brokers 取消的成交也会从你的交易日志中移除。
将 Profit and Loss 保持为 Default。其他选项保持原样即可。
4. 复制两个查询 ID
打开每个查询。它的 Query ID 显示在详情顶部。

两个查询 ID 必须不同。令牌比查询 ID 长得多,所以这三个值很容易区分。
在 Tradeways 中连接
- 前往设置 → 集成,找到 Interactive Brokers。
- 点击连接 Interactive Brokers。
- 将令牌粘贴到 Flex Web Service 令牌,Activity 查询 ID 粘贴到 Activity 查询 ID,Trade Confirmation 查询 ID 粘贴到 Trade Confirmation 查询 ID。点击连接。
- Tradeways 会检查令牌和两个查询。Interactive Brokers 生成报告可能需要几分钟。你可以关闭窗口;状态会在设置中更新。
- 当报告中出现 Interactive Brokers 账户时,请把每个账户映射到各自的 Tradeways 账户,或选择不导入。账户映射之前,不会导入它的任何数据。
令牌会加密存储,并且不会再次显示。Interactive Brokers 账户号码以遮蔽形式显示。
首次同步导入任何数据后,已映射的账户会保持其目标账户。你可以将它排除,之后再重新纳入,但只能导入回同一个 Tradeways 账户。若改换目标账户,同样的历史会被导入第二个账户。
同步如何运作
自动同步不是实时数据源。Interactive Brokers 发布 Flex 报告有延迟,Tradeways 会按计划读取:
- 新成交:约每 15 分钟检查一次 Trade Confirmation 查询。新成交预计在大约 10 到 20 分钟内出现在你的交易日志中。
- 更正和未平仓持仓:每天检查一次 Activity 查询。它会获取迟到的成交、更正后的佣金,以及未平仓持仓当天的收盘价。
- 首次同步:覆盖最近 365 个自然日。更早的历史请通过文件导入获取。
点击立即同步可请求提前检查。每 15 分钟最多请求一次。
成交按其 Interactive Brokers 成交 ID 匹配。已在你的交易日志中的成交,无论来自较早的报告还是文件导入,都不会重复导入。你删除的 Trade,在之后的报告再次包含其成交时仍保持已删除。
导入的内容
- 股票和 ETF 成交,以及 Interactive Brokers 标记为开仓或平仓的
CASHForex 成交。其他资产类别会计为不支持并被跳过。 - 部分成交、反向开仓和佣金,均按 Interactive Brokers 报告的数据导入,包括佣金返还。
- 取消:已取消的成交会从其所属的 Trade 中移除。
- 股票和 ETF 未平仓持仓的浮动 P&L,依据 Activity 报告中的每日收盘价(
MarkPrice)计算。它不是实时报价。
只有具备受支持价格历史的标的才会显示波动幅度指标和其他基于价格的分析。其他 Trade 导入时没有这些指标;Tradeways 不会估算它们。
历史缺口
平仓成交需要有对应的开仓成交。当开仓成交早于同步期间,且不在你的交易日志中时,Tradeways 会跳过该平仓成交,并将其计为历史缺口。它不会创建替代的开仓成交。要补上缺口,请将涵盖这两笔成交的文件导入到同一个账户。
状态和计数
设置中的每个连接都会按你的时区显示其状态、上次检查、上次成功检查和下次计划检查。
| 状态 | 含义 |
|---|---|
| 检查中 | 正在请求或处理报告。 |
| 选择账户 | 发现了新的 Interactive Brokers 账户。请映射或排除它们以继续。 |
| 运行中 | 上次检查成功。 |
| 运行中,部分行已跳过 | 上次报告已导入,但有些行需要检查并已被跳过。同步仍会继续。 |
| 延迟,正在重试 | Interactive Brokers 暂时不可用。Tradeways 会自动重试。 |
| 需要处理 | 令牌、查询或报告格式需要处理。在你修复之前同步会停止。消息会说明原因。 |
计数描述的是上次报告:已导入的成交、因重复而跳过的成交、因取消而移除的成交、因不支持而跳过的成交,以及因历史缺口而跳过的成交。由于每日 Activity 报告与前几天重叠,它的大多数成交都会计为重复。这是正常的。
故障排查
| 消息或现象 | 处理方式 |
|---|---|
| Flex 令牌已过期 | 按第 1 步生成新的令牌,然后点击更换凭据。 |
| 该 Flex 令牌限制了可用的 IP 地址 | 生成令牌时将 Valid for IP Address 留空。 |
| 某个 Flex 查询 ID 无效 | 检查每个 ID 是否填在正确的字段中,以及 Activity 和 Trade Confirmation 查询有没有填反。 |
| 无法读取该报告 | 将两个查询的格式都设为 XML。 |
| 此报告中有些行无法读取 | 将两个查询的时间格式都设为 HHmmss TimeZone,并在每个部分勾选所有字段。成交时间必须带有美国东部时间后缀,EST 或 EDT。 |
| 新成交第二天才出现 | Trade Confirmation 查询没有返回它们。请检查它的部分和常规配置。 |
| 有账户已通过另一个 Flex 令牌连接 | 将该账户从其中一个查询中移除,或断开另一个连接。 |
| 报告太大,无法下载 | 请从文件导入较早的历史。如果新成交不再到达,请联系支持。 |
在 Interactive Brokers 中修复令牌或查询后,点击更换凭据即可重新检查。当目标账户不可用时,点击映射账户。断开连接会停止所有检查并删除令牌;已导入的 Trade 会保留在你的账户中。