百分比
百分比分配用于按指定百分比拆分订单。它适合策略已经明确每个账户目标权重的场景。
order.faGroup = "Group_Percent"order.faMethod = ""order.faPercentage = ""固定百分比通常是在 FA 组配置里定义每个账户的百分比,订单只引用组名。不要随手把 "50,50" 写进订单字段,除非你明确知道当前 TWS 配置要求通过 faPercentage 传值。
有些旧配置或示例中会出现 PctChange。PctChange 更偏向对已有持仓做百分比变化,和固定百分比拆分不是同一个概念。实际应以 TWS 中组的分配方法为准。
| 字段 | 中文含义 | 注意点 |
|---|---|---|
faGroup | 账户组 | 必须能在 FA XML 中找到。 |
faMethod | 分配方法覆盖项 | 新项目优先使用组默认方法;不确定时留空。 |
faPercentage | 百分比相关参数 | 只在当前账户配置明确要求时填写;顺序必须和组内账户顺序一致。 |
def parse_percentages(value): percentages = [float(item.strip()) for item in value.split(",")] if round(sum(percentages), 8) != 100: raise ValueError("百分比合计必须为 100") return percentages
percentages = parse_percentages("50,50")真实系统还应校验账户数量和百分比数量是否一致:
if len(accounts) != len(percentages): raise ValueError("账户数量和百分比数量不一致")| 问题 | 结果 |
|---|---|
| 百分比合计不是 100 | 订单可能被拒或分配不符合预期。 |
| 账户顺序和百分比顺序不一致 | 分配到错误账户。 |
| 数量太小 | 舍入后部分账户可能分不到数量。 |
把 PctChange 当固定拆分 | 结果可能完全不是预期。 |