双向持仓 EA 部分平仓后,整轮盈亏应该从哪里开始算

社区编辑整理:双向持仓、沿方向追加订单、达到组合目标后统一退出,这类 EA 有个容易被忽略的问题:中途已经减掉部分订单,剩下的持仓显示盈利,能否算作这一轮交易盈利?与其先争论策略叫什么,不如先把“同一轮”的范围和盈亏账本说清楚。

一种观点是只按未平仓订单的浮动盈亏判断退出,条件简单,便于观察当前持仓状态;另一种观点是从本轮启动开始,累计已实现盈亏,再合并剩余持仓的浮动盈亏。前者可以把持仓退出与整轮核算分开设计,但不能用退出时的浮盈代表整轮结果;后者能对应完整过程,却需要处理订单归属、费用和重启后的状态恢复。关键不是哪种天然更好,而是程序条件与报告口径一致。

建议用同一段测试行情核对四项:

  1. 明确轮次边界。按首次开仓、方向切换还是全部退出划分?给每轮独立标识,检查追加订单与部分平仓后的归属,避免亏损残单被排除在统计之外。

  2. 对齐盈亏字段。逐次记录本轮已实现净盈亏、未实现盈亏与费用。先确认平台字段是否已包含佣金、隔夜费,避免漏算或重复扣除,再核对退出条件究竟读取哪一项。

  3. 比较触发差异。构造先亏损减仓、再由余仓转盈的路径,对照“余仓达标”和“整轮达标”的退出时点。不要只保留成功退出的轮次,未结束轮次也要按测试截止时的状态列出。

  4. 检查异常恢复。测试重启、断线和部分平仓失败后的处理,核对轮次标识、历史盈亏及剩余订单能否对上,排查重复退出指令、残单未清却开启新轮等情况。

上述讨论仅用于核对 EA 的核算与执行逻辑,不构成投资建议;应先在模拟环境验证,并设置独立的风险上限,盈利退出条件不能替代止损。

你使用哪个平台及版本?整轮结束以什么事件为准,方向切换会重新计数吗?能否用隐去账户信息的订单明细或日志,说明一次部分平仓前后的核算变化?