跳转到内容

合约或股份

按合约或股份分配,是直接指定每个子账户获得多少数量。它比按权益或比例更直观,但开发者必须自己控制分配数量和订单总数量是否一致。

场景是否适合
每个子账户数量已经提前算好适合。
某些账户必须分到固定数量适合。
账户资金差异大但数量仍需固定适合,但要加购买力检查。
希望 TWS 根据资金自动分配不适合,考虑 AvailableEquityNetLiq
<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 里的组配置和代码里的分配逻辑不一致。