合约或股份
按合约或股份分配,是直接指定每个子账户获得多少数量。它比按权益或比例更直观,但开发者必须自己控制分配数量和订单总数量是否一致。
| 场景 | 是否适合 |
|---|---|
| 每个子账户数量已经提前算好 | 适合。 |
| 某些账户必须分到固定数量 | 适合。 |
| 账户资金差异大但数量仍需固定 | 适合,但要加购买力检查。 |
| 希望 TWS 根据资金自动分配 | 不适合,考虑 AvailableEquity 或 NetLiq。 |
XML 理解
Section titled “XML 理解”<Allocation> <acct>DU_ACCOUNT_1</acct> <amount>10</amount></Allocation>这是结构示意,不代表所有 TWS 版本都会使用完全相同的节点名。真实结构必须从 requestFA() 返回的 XML 中读取。
allocations = { "ACCOUNT_1": 10, "ACCOUNT_2": 15,}
total_quantity = sum(allocations.values())
if total_quantity <= 0: raise ValueError("分配总数量必须大于 0")如果订单 totalQuantity 和分配明细总量不一致,TWS 可能拒绝订单,也可能按配置重新计算。严谨做法是:生成订单前先计算总量,再把同一个总量写入 order.totalQuantity。
| 风险 | 说明 |
|---|---|
| 账户顺序错误 | 数量可能落到错误账户。 |
| 数量不符合最小单位 | 期权、期货、部分股票会触发拒单。 |
| 账户购买力不足 | 某个子账户可能无法承接分配。 |
| 配置未同步 | TWS 里的组配置和代码里的分配逻辑不一致。 |