组与配置合并
早期 TWS API 文档会同时出现 Group 和 Profile。Group 更偏向按账户属性分配,例如净清算价值、可用权益、等数量;Profile 更偏向明确比例、百分比或股数配置。
TWS/IB Gateway 983+ 引入了“Use Account Groups with Allocation Methods”设置。开启后,Group 和 Profile 的行为会合并,API 客户端应把主要逻辑放在 Group 上。
合并后的影响
Section titled “合并后的影响”| 场景 | 行为 |
|---|---|
requestFA(Group) | 返回统一后的组/配置列表。 |
replaceFA(Group, xml) | 替换统一后的组配置。 |
requestFA(Profile) | 旧系统兼容项,可能返回不支持或错误,取决于 TWS 设置。 |
placeOrder() 指定旧 Profile 名称 | 可能被当作 faGroup 使用。 |
faMethod 为空 | TWS 可使用组默认分配方法。 |
| 账户和持仓类接口传 Group 名 | 在部分接口中也可接受旧 Profile 名称。 |
FA_GROUPS = 1FA_ALIASES = 3
# 读取账户组。app.requestFA(FA_GROUPS)
# 读取账户别名。app.requestFA(FA_ALIASES)除非维护旧系统,否则不要围绕 Profile 设计新功能。这样可以减少 TWS 版本差异带来的行为变化。
读取旧 Profile 配置 -> 核对每个账户、比例和方法 -> 在 TWS 中建立 Account Group -> 用 Group 名称更新订单代码 -> 在模拟环境检查分配结果迁移时不能只改字符串名称。Profile 和 Group 在分配语义、默认方法、账户顺序上都可能不同,必须通过小数量模拟订单确认。
非 FA 账户表现
Section titled “非 FA 账户表现”普通模拟账户请求 faData=2 时同样会被拦截:
ERROR=reqId=-1;code=321;msg=FA data operations ignored for non FA customers.这类账户无法判断 Profile 是否合并,只能确认账户没有 FA 数据访问权。