最近在尝试利用 AI 写一点套利的东西,毕竟实践出真知。vibe coding 了套利面板后,很快就发现了套利机会。10 月 2 日,依据资金费监测数据,在 Bybit 买入 ARKUSDT 永续、在 Binance 卖出等量永续,试图赚取两所负资金费率之差。当晚全部平仓,最后亏损 10.22 USDT。两边的 ARK 方向敞口大致对冲了,但买入较贵的合约、卖出较便宜的合约,留下了跨交易所价差收窄的风险。
交易经过 #
08:57 左右先开 400 ARK,此后于 14:54 至 15:24 分批增至 4000 ARK;20:53 至 20:55 分批平掉两边。Binance 为 4000 ARK 空单,Bybit 为 4000 ARK 多单,API 查询时两边仓位均为零。期间两边各经历 12 次资金费结算。
| 交易所 | 方向 | 买入成交额 | 卖出成交额 | 价格盈亏 | 资金费 | 手续费 | 单边净额 |
|---|---|---|---|---|---|---|---|
| Binance | 空 | 860.46870 | 877.66000 | +17.19130 | -18.17347339 | 约 -0.77047 | 约 -1.75 |
| Bybit | 多 | 905.22772 | 871.07000 | -34.15772 | +26.07750936 | -0.38868874 | -8.46889938 |
金额单位为 USDT。Binance 手续费实际扣除 0.00100479 BNB;表中按 10 月 2 日账本价格 766.80 USDT/BNB 估值。按原始流水合计,双边价格亏损 16.96642 USDT,资金费净收入 7.90403597 USDT,手续费约 1.15916 USDT,最终约 -10.22155 USDT。Beancount 按账本精度四舍五入,记为 -10.22 USDT。
为什么亏损 #
开仓时,同量 Bybit 多单的买入额比 Binance 空单的卖出额高 27.56772 USDT,相当于 Binance 卖出额的约 3.14%。平仓时,Bybit 卖出额只比 Binance 买入额高 10.60130 USDT,约为 Binance 买入额的 1.23%。这两个实际可成交价差之差,正好是 16.96642 USDT 的价格亏损。资金费差额虽然为正,却只能补回约 7.90 USDT。
这次的核心错误,是把当前资金费差额当作主要收益,却没有同时为入场价差的回归定价。两腿数量相等只能对冲 ARK 的共同涨跌,不能锁定两所永续合约之间的价差。到 20:00 那次结算,Bybit 收到 1.80986 USDT、Binance 支付 2.08474 USDT,单次资金费差额已变成约 -0.27 USDT;持有期的优势也不是常数。
监测器显示的实时资金费率和年化值只是当时的估计,不等于最终结算。10 月 1 日前后,ARK 在 Binance 和 Bybit 的报告结算周期还从 4 小时变成 1 小时。复盘时应使用交易所的实际结算流水;入场判断则应把实时费率的不确定性和结算周期变化计入风险。
下次的检查项 #
- 同时记录两所买一、卖一及目标数量的订单簿深度,用实际可成交价计算入场价差;预估退出价差至少覆盖其可能的收窄幅度。
- 按预计持有的结算次数计算两边资金费现金流,再扣除四次交易的手续费和滑点;以净额和不利情景决定是否开仓。
- 每次加仓重新计算整体入场价差与剩余资金费机会,不用首笔仓位的收益假设解释后续仓位。
- 预先设定退出条件:资金费差额转负、跨所价差快速收窄,或剩余预期收入不足以覆盖平仓成本时,重新评估持仓。