策略如何进入实盘:金额配置、自动对账、全部平仓与下单开关。
下单组合是允许实际下单的策略集合。组合里的每个策略各配置一笔固定金额,reconciler 常驻程序持续让交易所持仓对齐合并后的目标部位——这些单不需要你自己下。
strategy.py ──► state.json ──────────────┐
(cron) ├──► reconciler.py ──► exchange
amounts ──► portfolio_config.json ───┘
组合里的每个策略各配置一笔金额(以账户币别计,例如 USD)——信号满仓时这个策略动用的资金。每个标的的目标部位是所有策略的加总:
target[symbol] = Σ ( amount × position )
position 是策略信号,可以是小数(波动率调整的策略可能输出 0.5 或 1.8)。你设置多少金额就用多少金额计算仓位,不会随账户净值漂移。
manager/portfolio_config.json。金额请在工作区「下单设置」页设置,或请 agent 代劳;优化器权重只通过 manager.py 应用——默认是 dry-run,你确认后加上 --apply 才会写入。
Reconciler 是常驻程序,每 5 秒轮询一次,遇到以下任一情况就对账:
state.json 变动)每一轮把目标部位和交易所实际持仓相比,市价下单抹平差额;差额低于 $10 就略过。翻仓(多翻空)会拆成「只减仓平掉旧仓」加「重新开新仓」两笔,双向持仓账户不会同时持有多空。
如果连续 3 次读不到交易所持仓(密钥被撤销、IP 未加白名单、交易所故障),reconciler 会自动挂上下单开关。它只会挂、不会自己解除——解除永远由你决定。
工作区的「全部平仓」按钮(或 python3 manager/flatten.py)把所有已连接交易所的持仓全部市价平掉。它是紧急刹车,不是调仓工具:
下单开关挂上后,所有会增加敞口的订单都在程序层被拒绝。平仓、止损止盈与取消订单照常执行——开关不会困住你想减的仓位。
挂上的方式:工作区的「暂停下单」或「全部平仓」、跟 agent 说停止交易,或交易所断线时自动触发。开关永远不会自动解除——只有你按下「启动下单」或明确要求 agent 恢复,才会继续下单。每一次下单尝试与拒绝都会写入审计记录。
每笔已执行订单都会连同它的 legs(逐腿成交明细)写入 manager/orders.jsonl——每一腿记录交易所返回的成交价与成交数量。翻仓会记两腿:平仓腿是出场价,开仓腿是进场价。
部分失败也会记录:翻仓的平仓腿成交、开仓腿却失败时,这笔记录会保留并标记失败——只要真的动到钱,交易历史绝不隐藏。工作区的「交易历史」标签页显示的就是这个文件。