关于赔偿口径,我们想把账算给您看。这次事故的责任在我们,已按对您最有利的路径核出赔偿 19,155.99 USDT,其中包含了本金变少后对后续每一笔仓位的连锁影响。至于您与带单员之间的盈亏比差距,我们核对下来只有一部分来自这次事故。8 月 25 日我们又补查了一批失败订单日志,结果既澄清了一处一直说不清的异常,也修正了我们自己此前一处重复统计——都写在下面。每一节都附了您可以自己复算的方法,哪一步您觉得不对,我们随时重算。
按盈亏比整体补差的口径。这个数里同时包含了正常分润规则、您本人的资金转出和风控未成交的机会收益,且几项之间相互重叠——第 05 节会逐项拆给您看。
重复委托直接损失 + 后续本金递归影响。已按对客户最有利的路径取上限,可立即执行。
01 · 双方口径
事故是确实发生的,这一点我们没有异议。需要谈的是赔偿的边界画在哪里——这是一个口径问题,不是态度问题。
02 · 三项核对
直接比较两个账户的总金额会被本金规模干扰。所以我们把带单员每一笔盈亏,按您账户的实际仓量缩放后再比——同仓量、同口径。
把带单员每笔盈亏缩放到您的实际仓量后逐仓对比,分润前的累计净结果几乎重合。没有发现第二个数万 USDT 级别的系统性跟单错误。
带单可以挂限价、跟单用市价,是常见的质疑点。但限价单只是委托方式,能否享受 Maker 费率取决于成交时是否提供流动性。核对结果是两边费率几乎一样。
如果双方每笔仓量保持同一倍数、成交与费用同比例、且没有单边资金变化,那么无论先亏后赚,资金倍数都不会变。倍数会下降,一定是因为先出现了只影响您账户的单边事件。
03 · 排查边界
我们没有"只查了出问题的那一处"。跟单从信号下发到最终结算共 10 个环节,每一个都做了独立检验——而且检验方式都是您可以自己复算的。
| 环节 | 检验方式(您可复算) | 核对结果 | 判定 |
|---|---|---|---|
| 1 · 信号接收 | 带单员每一笔开平仓信号,逐笔比对跟单账户是否收到 | 113 组成功匹配;11 笔未跟仓位的原因是可用资金与仓位上限,不是信号丢失 | 正常 |
| 2 · 下单唯一性 | 按 client_id 分组查重,同一 ID 是否对应两笔真实成交 | 187 组重复 client_id / 374 笔成交 —— 这就是本次事故 | 唯一的 Bug |
| 3 · 仓量计算 | 每次开仓前的"跟单仓量 ÷ 带单仓量"与"可用资金比"是否吻合 | 8-19 21:09 可用资金比 1.663,同时点新订单仓量比 1.678 —— 吻合 | 正常 |
| 4 · 成交价格 | 113 组按相同仓量缩放后,比较毛盈亏差 | −37.09 USDT | 正常 |
| 5 · 手续费 | 逐笔 Maker/Taker 判定 + 已平仓位加权费率反推 | 306/306 全 Taker;0.05000% vs 带单员 0.04967%;差 −64.09 USDT | 正常 |
| 6 · 资金费 | 同仓量口径下的资金费收支对比 | +24.61 USDT(对您有利) | 正常 |
| 7 · 分润计算 | 每笔正毛利润是否恰好锁定 30%,累计扣款与返还是否对平 | 峰值累计净锁定 22,691.71 → 8-24 返还 22,953.34,净额回到接近 0 | 规则正常 |
| 8 · 可用资金 | 按"普通余额 − 初始保证金 − 未实现亏损"逐时点重算 | 与账户快照逐时点吻合,含旧仓占用保证金与浮亏 | 正常 |
| 9 · 仓位风控 | 调取失败订单日志,逐笔核对 error_code 与 order_id | 5 笔 error_code=10013、order_id=0(3 笔整仓未跟 + 2 笔同仓部分加仓失败),全部无成交、未产生任何仓位。风控在旧仓占用保证金且承受浮亏时按设计触发 | 按设计触发 |
| 10 · 平仓结算 | 173 个仓位的完整生命周期与仓位底表逐仓匹配 | 全部已平仓,全部匹配成功,无孤儿仓位 | 正常 |
| + 边缘嫌疑 连续加仓竞态 | 代码复核(afbe21d)+ 对 42 笔 ETH 连续加仓做恢复仓量重放 | 确实会让正常连续加仓再缩小约 0.51%–1.58%。但重放显示:恢复被缩掉的仓量,反而会额外亏损 436.53–1,376.73 USDT。8-25 日志已证明 16:03 的主要缺口来自 10013,竞态只剩小幅残差 | 主动披露 |
这是之前最像"第二个 bug"的一处:同一时点,跟单仓量看起来只有带单员的 0.341 倍。新日志把这笔拆开之后,原因很清楚——带单员这一仓的大部分加仓被 10013 拦在门外了,成功成交的那部分,比例完全正常。
1,587 ÷ 4,653 = 0.341 倍
看起来像"跟单比例突然崩了"——这是分母用错了
1,587 ÷ 385 = 4.122 倍
成交部分的比例完全正常,没有任何算法异常
换句话说:这一笔缺的不是"比例",而是那 4,268 张根本没有下单成功。这也是我们把竞态从主因降级为小幅残差的原因——它解释不了这个量级,10013 才是。
这不是"我们没找到别的问题",而是数据结构本身给出了上限。把重复委托的仓量剔除之后,113 组可匹配仓位在同仓量、同口径下与带单员比较,所有剩余差异加总只有 −76.57 USDT——任何还没被发现的系统性问题,都必须藏在这 76.57 USDT 里面。它不可能是几万级别的。
同一套方法跑完 24 个用户,其中 8 人的异常净结果是盈利——按这套算法,是他们"多赚了"。我们的处理是不追缴。如果核算口径偏向平台,不会产出 8 个对平台不利的结果。
手续费我们确实比带单员多收了 64.09;代码里确实还有一处连续加仓竞态,我们写进了报告并列为待修复;8-25 的日志还坐实了 5 笔被风控挡下的开仓信号,我们没有藏起来,而是逐笔列进了下一节。没有人会主动交出一个自己没被发现的问题——除非结论本身经得起查。
旧口径里"11 个未匹配仓位 + 1 笔风控"是重复统计——其中 459555、459760、459814 三个仓位就是同一批风控失败。这个错误对我们有利(会让机会成本看起来更小),是我们自己查出来并主动改掉的。底稿也随时可以开放给您逐笔复算。
04 · 比例拆解
从 5.566 倍到 2.065 倍,下面四类事件都只作用在您的账户、没有同比例作用在带单员账户。它们的性质完全不同,赔偿责任也不同。
倍数越低,代表同一带单信号能开出的跟单仓位越小。单笔实际可开仓比例还会进一步受旧仓保证金、未实现盈亏和最大仓位限制影响。
这条线上最扎眼的就是末段的直线下坠。需要先说清楚一件事:4.094 和 2.065 不是同一个口径。4.094 是 8 月 19 日的普通余额比,当时 7 月 2 日那笔大额 ETH 空仓的巨额亏损还只是浮亏;2.065 是这笔仓 8 月 23 日平仓、亏损正式进入余额之后的结果。所以这一段里包含了"浮亏转为已实现亏损"的账面跳变,不能整段归给 8 月 19 日之后新发生的某一件事。
这 49,996.42 里,我们能明确归因的部分是这样:
我们的结论:这段断崖最直接的成因是"大额亏损在 8 月 23 日兑现";而 5 笔 10013 是账户没能跟上带单员后续盈利、因而无法把比例修复回来的最大已确认原因之一——这一点我们承认。但剩下约 28% 确实来自转出、分润复利和正常路径差异,不能一并推给风控。
05 · 关键分歧
这个数字本身的每一项都有出处,我们理解它是怎么算出来的。问题出在这几项性质不同、而且相互重叠——直接相加,会把同一笔本金变化算两遍甚至三遍。
即使把重复委托赔偿和全部风控机会收益都按最宽口径给足,完整经济反事实的上限也只到 86,897.20 – 87,021.41,相对事实权益增加 35,819.22 – 35,943.43。30% 分润造成的本金变化,和①②影响的是同一笔本金——分开算三次上限再相加,等于同一笔钱赔三遍。
16,663.22–16,787.43 是"假如当时能开仓、且行情照旧"的推算收益,这些仓位从未成交,也从未承担过风险。而且同期另外 8 个仍待归因的仓位合计是 −244.78——没跟上的仓位并不总是赚的。若只把赚的那一侧计入索赔,口径就不对称了。
8 月 24 日大额返还后,分润净额已回到接近 0。返还后仍存在的只是"当时仓位被压小"的路径差(4,486.47 – 4,848.69),属于正常产品规则的影响,不是可以再叠加一次的永久损失。
后者会把正常产品规则、您本人的转出决定、以及从未成交的假设行情,全部转成平台的赔付义务。这不是这次事故的因果范围。
06 · 赔偿方案
这不是"重复订单当时多亏了多少"的简单加总,而是把本金变少之后的整条路径重放了一遍。
07 · 整改承诺
以下 5 项为工程整改清单,其中第 5 项是这次翻日志才意识到该做的。我们如实说明:这些都是待落实项,尚未对外宣称完成,后续会补充负责人、验收标准与生产验证记录。
以"带单信号 + 跟单账户 + 开平仓序号"建立唯一性约束,任何重试都不得产生第二笔独立成交。
连续加仓的资金比例、仓位快照与本次事件必须在同一事务视图中计算,消除旧仓被误判为新仓的窗口。
对相同 client_id 重复成交、跟单比例突变和未匹配仓位建立分级告警,从事后核对改为事中拦截。
固化事实权益、重复损失、递归影响与规则机会成本四类口径,同时保留版本、日志、订单与审批记录。
本次 5 笔 10013 是事后翻日志才查到的,您当时完全不知情。后续跟单订单因风控未成交,将实时推送通知,不再需要事后追查。