土法炼钢兴趣小组的算法知识备份

【量化交易】加密资产策略:资金费率套利、跨所搬砖、DeFi 收益

文章导航

分类入口
quant
标签入口
#crypto#funding-rate#arbitrage#defi#yield

目录

加密资产是当下唯一一个 7×24 小时连续报价、数十家中心化交易所与上千个去中心化协议同时挂单、合约规模常年压过现货数倍、协议代码每周都被攻击者审计的资产类别。绝大多数把传统量化思路平移过来的团队,会在前三个月被三件事教训:第一是周末凌晨毫无预兆的强平瀑布,第二是「同一根 K 线,五家所五个价格」的报价分裂,第三是钱包私钥泄漏后整笔本金消失。这些事故几乎全部不属于策略层错误,而是属于市场结构与基础设施风险。

把加密策略当成一个工程问题来拆,至少应该分成这几条独立的赛道:永续合约的资金费率(funding rate)套利、中心化交易所之间的搬砖、自动做市商(automated market maker,AMM)内部的三角套利与跨链套利、流动性提供(liquidity providing,LP)与借贷利差、最大可提取价值(maximal extractable value,MEV)、稳定币与跨链结算。每条赛道都有自己的收益结构、风险敞口、技术栈与监管阴影。本文把这几条赛道一条一条讲清楚,给出可以直接抄走的 Python 计算骨架,并把每条赛道历史上真实发生过的爆仓、被盗、清算案例放在一起,让读者对「加密量化的钱从哪里来、又是怎么没的」有一个不带滤镜的认识。

风险提示与合规边界:本文不构成任何投资建议。中国大陆居民参与境外加密资产交易、永续合约、DeFi 协议、跨链桥转账,按照 2021 年九部委《关于进一步防范和处置虚拟货币交易炒作风险的通知》(即「9·24 通知」)属于非法金融活动范畴,相关合约不受境内法律保护,可能触发反洗钱(AML)、外汇管制与刑事风险,请自行评估并对自身行为负责。本文涉及的交易所、协议、代币名称仅用于讨论工程方法,不代表作者对任何标的的推荐。境外(包括但不限于美国、欧盟、新加坡、日本、香港、阿联酋)居民应遵守所在司法辖区的注册、KYC、税务与合规要求。文中代码与数据均用于说明算法,未经过完整安全审计,直接套用产生的资金损失由使用者自负。


一、加密市场的特殊性

把加密市场当成一个「另一个股票市场」来对待,是几乎所有从传统金融过来的工程师踩的第一个坑。它在表面上确实有 K 线、有限价单、有撮合引擎、有做市商,但底层的市场结构、清算机制、监管约束、基础设施都和股票完全不同。下面把几个最关键的差异点列清楚。

7×24 小时连续交易

传统股票市场每天交易 4 到 6.5 小时,一年大约 250 个交易日,意味着一年的真实交易时间是 1000 到 1600 小时。加密市场每年的交易时间是 8760 小时,是股票市场的 5 到 8 倍。表面上看是「机会更多」,但本质影响是几个:

第一,没有收盘价。所有「日线」其实是按 UTC 0 点切片的人为产物,不同交易所甚至按当地时间切片,导致同一根「日 K」对照不上。任何依赖「收盘价」的因子(动量、反转、波动率分位)都需要重新定义切片口径。

第二,没有自然的低活跃窗口。股票市场有夜盘和周末作为系统维护、模型重训、风险复盘、大事件消化的天然缓冲。加密市场没有这个缓冲,重大事件(美联储议息、CPI 公布、协议被攻击、交易所暴雷)都可能在你睡着的时候发生。任何策略都必须考虑「无人值守 36 小时」的退化路径——监控、自动减仓、电话告警、紧急 kill switch 必须从第一天就设计进去。

第三,周末流动性结构性偏低。绝大多数中心化交易所(centralized exchange,CEX)的做市商在周末减少做市规模,订单簿深度下降,价差扩大,资金费率波动加剧。历史上几次最大规模的清算(2021 年 5 月 19 日、2022 年 6 月 18 日、2024 年 8 月 5 日)都发生在亚洲早晨或周末。任何回测如果不区分 UTC 工作日与周末,会高估流动性、低估冲击成本与清算风险。

现货与永续合约并存且互相决定价格

加密资产的价格发现,现货并不是主导市场。以 BTC 为例,全球现货日成交量约 200 亿至 500 亿美元,而永续合约(perpetual swap,简称 perp)日成交量常年在 1000 亿至 3000 亿美元,是现货的 4 至 8 倍。永续合约通过资金费率机制把价格锚定在现货指数附近,但锚定是「软约束」:当永续溢价过高时,资金费率会变正,多头每 8 小时(部分所每 4 小时甚至每 1 小时)支付费用给空头,反过来同理。

这意味着加密的价格发现实际上是「永续合约领跑、现货跟随」。任何把现货看作「价格基准」的传统思路在加密里都需要修正:基差(basis)、期现价差、资金费率,本身就是可交易的一阶量。

多场所、多链、多协议并存

A 股有沪深两个交易所,但实际上撮合规则、清算所、监管口径都是统一的。加密资产光是头部 CEX 就有 Binance、OKX、Bybit、Coinbase、Kraken、Bitget、Gate、Huobi、HTX、Upbit、KuCoin 等十几家,每家所的费率、保证金规则、强平机制、API 限频都不一样。再加上以太坊、Solana、BNB Chain、Arbitrum、Optimism、Base、Polygon、Avalanche、Tron 等几十条公链,每条链上又有几十个去中心化交易所(decentralized exchange,DEX),同一个代币在不同场所的价格随时存在 10 到 100 个基点(basis point,bp)的偏差,这种偏差就是搬砖与套利的原料。

代价是,工程上你需要对接十几家所的 REST 与 WebSocket API、几十个 DEX 智能合约的 ABI、若干跨链桥的状态机。每接入一个新场所都意味着新的认证流、限频规则、错误码、提币延迟、维护窗口与暴雷概率。

高波动与杠杆并存

BTC 的年化波动率长期在 60% 至 80% 之间(同期标普 500 约 15% 至 20%),中小市值代币动辄 100% 至 300%。永续合约普遍提供 50× 到 125× 杠杆。这两个因素叠加之后,单日清算几十亿美元是常态。一个 5× 杠杆的多头,遇到 BTC 单日下跌 20%,账户权益被清零。

策略上的影响是:风控不能用 VaR、Greeks 这种「正态假设下的小幅扰动」工具,必须用极端情景模拟(stress test)与基于实际链上 / 交易所清算瀑布数据的尾部建模。在永续合约上跑统计套利,必须显式建模「自动去杠杆(auto-deleveraging,ADL)」与穿仓损失分摊机制。

链上透明与执行可观测

以太坊主网每一笔交易都是公开的:mempool、出块、state transition 全部可以被任何人观察。这件事对量化策略既是福音也是诅咒。福音是:你可以在 DEX 价差出现的瞬间从 mempool 看到大额交换交易,提前在订单簿里挂单——这是 MEV 套利的基础。诅咒是:你自己提交的交易也对全世界透明,被三明治攻击(sandwich attack)夹击就是家常便饭,单笔几百美元到几万美元的损失再正常不过。

下面这张图,是把资金费率与基差画在同一张时序图里,展示二者的相位差与套利窗口;这是后面整个第二节讨论的几何基础。

资金费率与基差

二、资金费率套利

资金费率套利是加密量化里最经典、最容易讲清楚、也最容易被低估的策略。它的收益不来自价格预测,而来自永续合约这种产品本身的设计漏洞——「永续」只能通过周期性现金流去逼近现货价格,这条现金流就是套利者的食物。

永续合约的机制

永续合约最早由 BitMEX 在 2016 年推出,本质是「不带交割日的期货」。为了让它的价格收敛到现货指数,BitMEX 引入了资金费率:当合约价格高于现货指数时,多头按费率支付给空头;反之空头支付给多头。费率每 8 小时结算一次(Binance、OKX、Bybit、Bitmex 都遵循此节奏;个别所改为 4 小时或 1 小时)。

资金费率的计算公式因所而异,但骨架基本一致:

\[ F = \mathrm{clamp}\!\left(I + \mathrm{clamp}\!\left(P - I,\ -\mathrm{cap},\ +\mathrm{cap}\right),\ -\mathrm{cap}_F,\ +\mathrm{cap}_F\right) \]

其中:

把这个公式代入实际行情:当永续比现货贵 30 bp 时,费率倾向于变正约 30 bp / 8h(年化约 32.85%),多头要付出代价;当永续比现货便宜 30 bp 时同理。这就是套利者的食物。

现货-永续基差套利

最经典的套利是「做空永续 + 买入现货」,在永续溢价时锁定基差收敛与正费率。结构如下:

  1. 在 CEX 上以现货市价买入 1 BTC(保证金来源:USDT)。
  2. 同时在同一所或另一所开 1 BTC 的永续合约空单(保证金来源:USDT)。
  3. 现货与永续的价格差(basis)在持仓期间会向 0 收敛;同时持仓期间收取每 8 小时的资金费率。
  4. 持仓直到资金费率回归 0 或基差扭转方向时平仓。

收益分解:

\[ R = \underbrace{(\text{basis}_0 - \text{basis}_T)}_{\text{基差收敛}} + \underbrace{\sum_{k=0}^{N-1} F_k}_{\text{资金费率累积}} - \underbrace{2 \cdot c_{\text{taker}}}_{\text{开平双边手续费}} - \underbrace{c_{\text{borrow}}}_{\text{保证金资金成本}} \]

资金费率年化超过 30% 在小币种上很常见(DOGE、SHIB、MEME 在主升浪期间常年正费率 0.1% / 8h 以上,年化超过 100%);BTC、ETH 的费率多数时间在 ±10% 年化波动。

用 ccxt 计算 funding 与 basis

ccxt 是 JavaScript 写起来的多 CEX 统一抽象层,Python 版本接口完全一致。下面这段代码示例从 Binance 拉 BTCUSDT 永续合约的当前资金费率与现货中价、计算基差与年化费率。

"""
funding_basis_scan.py
扫描多个交易所的 BTC/USDT、ETH/USDT 永续合约 funding rate 与现货 basis。

依赖: pip install ccxt pandas
注意: 部分交易所的 fetch_funding_rate 接口需要带 'BTC/USDT:USDT' 的合约后缀;
       现货则使用 'BTC/USDT'。本文示例统一使用统一符号。
"""
from __future__ import annotations
import ccxt
import pandas as pd
from dataclasses import dataclass
from typing import Iterable


@dataclass
class FundingBasisRow:
    exchange: str
    symbol: str
    spot_mid: float
    perp_mark: float
    basis_bps: float          # (perp - spot) / spot * 10000
    funding_rate: float       # 每个 funding 周期的费率,单位为小数(0.0001 = 1 bp)
    funding_interval_h: float # funding 间隔,单位小时
    funding_apr: float        # 年化 = funding_rate * (24 / interval) * 365


def scan_funding_basis(
    exchange_ids: Iterable[str] = ("binanceusdm", "bybit", "okx"),
    symbols: Iterable[str] = ("BTC/USDT", "ETH/USDT"),
) -> pd.DataFrame:
    rows: list[FundingBasisRow] = []
    for ex_id in exchange_ids:
        try:
            ex = getattr(ccxt, ex_id)({"enableRateLimit": True})
            ex.load_markets()
            for sym in symbols:
                spot_sym = sym
                perp_sym = sym + ":USDT"
                # 兼容 binanceusdm,它的 perp_sym 与 spot_sym 写法稍有不同
                if perp_sym not in ex.markets and sym in ex.markets:
                    perp_sym = sym
                if spot_sym not in ex.markets:
                    continue
                spot_ticker = ex.fetch_ticker(spot_sym)
                perp_ticker = ex.fetch_ticker(perp_sym)
                spot_mid = 0.5 * (spot_ticker["bid"] + spot_ticker["ask"])
                perp_mark = perp_ticker.get("info", {}).get("markPrice")
                perp_mark = float(perp_mark) if perp_mark else perp_ticker["last"]
                fr = ex.fetch_funding_rate(perp_sym)
                rate = float(fr["fundingRate"])
                interval_h = float(fr.get("interval", "8h").rstrip("h"))
                basis_bps = (perp_mark - spot_mid) / spot_mid * 10000
                apr = rate * (24 / interval_h) * 365
                rows.append(
                    FundingBasisRow(
                        exchange=ex_id,
                        symbol=sym,
                        spot_mid=spot_mid,
                        perp_mark=perp_mark,
                        basis_bps=basis_bps,
                        funding_rate=rate,
                        funding_interval_h=interval_h,
                        funding_apr=apr,
                    )
                )
        except Exception as e:
            print(f"[warn] {ex_id} skipped: {e}")
    return pd.DataFrame([r.__dict__ for r in rows])


if __name__ == "__main__":
    df = scan_funding_basis()
    df = df.sort_values("funding_apr", ascending=False)
    print(df.to_string(index=False, float_format=lambda x: f"{x:.4f}"))

实测(2024 年 4 月某日 09:00 UTC,仅作为格式说明,绝对值会随行情变化):

   exchange    symbol  spot_mid  perp_mark  basis_bps  funding_rate  funding_interval_h  funding_apr
binanceusdm  BTC/USDT  64231.20   64248.55     2.7011        0.0001                 8.0       0.1095
binanceusdm  ETH/USDT   3158.40    3160.07     5.2876        0.0001                 8.0       0.1095
      bybit  BTC/USDT  64228.00   64246.10     2.8181        0.0001                 8.0       0.1095
      bybit  ETH/USDT   3158.20    3160.55     7.4407        0.0002                 8.0       0.2190
        okx  BTC/USDT  64230.50   64244.20     2.1330        0.0001                 8.0       0.1095
        okx  ETH/USDT   3158.50    3159.90     4.4326        0.0001                 8.0       0.1095

套利窗口的微观结构

资金费率每 8 小时才结算一次,但基差在订单簿上是逐 tick 变动的。两者的速度差就是窗口。三种典型形态:

形态 A(基差跑赢费率):永续突然拉涨,basis 从 0 拉到 +30 bp,但下一次 funding 还要 4 小时才结算。这时候做空永续 + 买入现货,可以同时吃基差收敛(30 bp)与一次费率(约 5 至 10 bp,因为下一次 funding 大概率走正),毛收益可达 35 至 40 bp。

形态 B(费率跑赢基差):上一次 funding 结算正费率 0.1%,但市场情绪反转,basis 已经回到 0 甚至变负。这时候做多永续 + 卖出现货,可以吃下一次 funding 的反向(如果 funding 翻负更佳),但要承受方向性风险。

形态 C(极端费率):小币种主升浪中费率长期 0.3% / 8h(年化超 300%)。结构性地做空永续 + 现货持有,年化收益可观,但承受币种崩盘风险。这就是 2020 至 2021 年间有名的「Delta 中性挖矿」。

这三种形态在策略实现上有本质差异:A 是高频 micro arbitrage,B 是 funding event arbitrage,C 是 carry trade。绝大多数初学者把它们混在一起,最后的结果就是收益都没拿到、风险都吃了一遍。

资金费率的统计性质

把过去三年 BTCUSDT 永续在 Binance 的资金费率序列拿出来做基本统计(数据可通过 fetch_funding_rate_history 获取),观察到几个值得记住的事实:

第一,长期均值显著为正。BTCUSDT 在 2021 至 2024 年间每 8 小时的资金费率均值约 0.011%(折合年化 12.0%),中位数 0.010%。结构性原因是加密合约市场长期偏多,杠杆多头愿意为做多支付溢价。这意味着「无脑做空永续 + 持有现货」长期是正期望策略,前提是能扛住极端反向行情。

第二,分布严重右偏,肥尾。资金费率正向极值(如 0.375% / 8h,年化 410%)在牛市顶峰多次出现;反向极值(-0.05% / 8h)相对稀少且持续时间短。直观解释:杠杆做多比杠杆做空更容易被散户大量使用,多头方向的费率上限远高于空头方向。

第三,与价格波动率高度相关。日内波动率超过 5% 时,资金费率绝对值平均上升 2 至 3 倍。这意味着资金费率本身可以作为「市场情绪指标」用于其他策略——这是另一个独立话题,本文不展开。

第四,周期性结算节点附近有显著套利。Binance 的资金费率在结算前 30 分钟通过实时溢价指数(premium index)反映,许多策略在结算前几分钟根据预测费率方向开仓、结算后立即平仓,吃下「确定性的一次费率」。这种策略容量有限但胜率极高。

跨所资金费率分歧

不同交易所对同一标的的资金费率会出现分歧,因为各家所的多空持仓比、订单簿溢价、保证金币种利率不同。常见结构:

这种「双合约对冲套利」(cross-exchange funding arbitrage)规避了现货持仓的提币风险,但需要在两家所同时维持保证金。极端行情下两家所的强平价格不一致时,可能出现单边强平 + 另一边盈利无法及时平仓的尴尬。

容量与边界

资金费率套利的容量受限于现货端的流动性与保证金的资金成本。BTC、ETH 这种主流标的,单家所容纳几千万美元规模没有问题;小币种容量从几十万到几百万美元不等。

边界条件:

  1. 永续合约挂牌但现货不挂牌:很多新币只在合约市场上线,没有现货可对冲,basis 套利不可行,只能做合约间多空对冲(A 所做空、B 所做多)。
  2. 现货流动性不足:买入 1000 万美元现货可能产生 30 bp 以上冲击成本,吃光基差。
  3. 保证金币种切换:USDT 本位与 USDC 本位、Coin-Margined(币本位)合约的资金费率结构不同,币本位合约的对冲比例需要按 contract size 重新计算。
  4. 税务:多数司法辖区对资金费率收入按利息所得或经营所得课税,与资本利得不同。

三、跨所搬砖

跨所搬砖的逻辑直白到不需要解释:A 所 BTC 报价 64200,B 所报 64250,从 A 买入、转到 B 卖出,赚 50 美元价差。但这个故事 90% 的篇幅在「转到 B」这四个字里。

价差从哪里来

CEX 之间的价差来自三种结构性原因:

第一,做市商的单边库存。某家所的某个做市商持仓偏多 BTC,会在该所主动压低买价、提高卖价,形成与其他所的价差。这个价差通常 5 至 20 bp,转瞬即逝。

第二,交易所的资金流入流出不均衡。比如 Binance 突然出现大额提币审核延迟,资金被困在交易所内部,所内 USDT 价格相对 BTC 偏弱,BTC/USDT 价格被推高。2022 年 11 月 FTX 暴雷前一周,FTX 上的 BTC 价格相对其他所偏低 1% 至 3%,做空套利者在这一周吃到了非常可观的价差,但前提是他们能把币转出去。

第三,法币入金通道差异。日本所、韩国所与美元所之间存在长期的「Kimchi premium」、「Galaxy premium」之类的价差,因为韩币、日元资金不能自由跨所流动。这种结构性价差可以持续数周,但搬砖者无法直接套利,因为没法把币换回当地法币再回流。

跨所搬砖的全流程

完整流程要把这几步都跑通:

  1. 在 A 所现货市价买入。
  2. 从 A 所提币到链上钱包(或直接提到 B 所充币地址)。
  3. 等待链上确认(BTC 通常 6 个区块约 60 分钟,ETH 通常 12 至 30 个区块约 3 至 6 分钟,Solana 约 30 秒)。
  4. B 所确认到账,可用余额就绪。
  5. 在 B 所现货市价卖出。

每一步都有失败模式:A 所提币审核 30 分钟到 4 小时不等、链上 gas 暴涨导致提币费用从 5 美元变成 80 美元、B 所地址因为反洗钱标签被冻结、目标地址打错(对,这种事每个月都有团队真实发生过)。

提现费用与延迟模型

把这些显性与隐性成本写成数学模型:

\[ \Pi = (P_B^{\text{sell}} - P_A^{\text{buy}}) \cdot Q - c_A^{\text{taker}} - c_B^{\text{taker}} - f_A^{\text{withdraw}} - f^{\text{onchain}} - L(\Delta t) \cdot \sigma \sqrt{\Delta t} \cdot Q \]

其中:

把对冲加进去之后,事实上的套利结构是:

  1. A 所现货买入 BTC。
  2. 同时在 B 所开 BTC 永续合约空单(对冲价格风险)。
  3. 提 BTC 到 B 所。
  4. B 所收到 BTC 后,平掉空单(市价买回)+ 现货卖出。

这样在等待链上确认期间,价格风险被对冲合约抵消。代价是多了一次合约开平的双边手续费 + 资金费率支付(如果跨过 funding 时点)。

网络拥堵的尾部风险

2021 年 5 月 19 日 BTC 闪崩,整个 ETH 主网 gas 飙到 2000 Gwei 以上,普通 ERC20 转账成本一度超过 200 美元。同一时间,所有交易所提币队列爆满,提币审核从 30 分钟拉到 8 小时。一边是无法及时对冲的现货头寸,另一边是无法及时落地的合约保证金,这种时候大量「自以为风险中性」的套利者被强平。

工程上要把这种尾部情境放进 stress test:

现实可行性

2024 年的现状是:交易所之间的价差大多数时间被打到 5 bp 以下,扣完手续费、提币成本、对冲成本几乎不剩。能稳定盈利的搬砖玩家集中在三类:

  1. 拥有交易所做市资格的机构:手续费返佣(VIP rebate)能拿到 -2 至 +1 bp,主流币种零手续费甚至倒贴。
  2. 拥有「跨所即时清算」通道的机构:通过 Copper、Fireblocks、Anchorage 等托管方在多家所之间无需链上转移即可调拨资金,把链上确认时间压缩到分钟级。
  3. 稳定币入金通道完善的机构:在某家所遇到挤兑时能瞬间从其他所调入 USDT 救场。

业余玩家做跨所搬砖的实际净收益,长期看大概率为负,因为提币费、税务、机会成本不可忽略。

极端行情下的「价差爆开」

虽然平时价差被压得很紧,但在极端行情下价差会瞬间爆开。历史上几次显著事件:

这些时刻的共同特征是「价差爆开但通道关闭」——你能看见利润但够不到。专业搬砖者的核心竞争力就是在这些时刻仍然能调动资金。

法币入金通道与稳定币通道

跨所搬砖的「资金弹药库」结构通常分为三层:

冷钱包:长期持有的 BTC、ETH、稳定币,对外不直接交易。 热钱包流转池:分散在 Fireblocks、Copper、Anchorage 等机构托管平台,可以通过「场外结算网络」(off-exchange settlement network)瞬间在多个交易所之间调拨资金而不需要链上转账。 交易所余额:直接挂单的部分。

这种三层结构的核心是「场外结算网络」。BitGo 与 Bitfinex 推出的 Network 项目、Copper 的 ClearLoop、Fireblocks 的 Off-Exchange,都允许机构客户在多家交易所之间无需链上转账即可调拨资金。延迟从链上的几十分钟压缩到几秒。这是机构搬砖玩家相对个人玩家的最大结构性优势。


四、三角套利与跨链套利

DEX 三角套利

DEX 上的三角套利结构:在同一个 DEX(或同一条链上的多个 DEX)里,三个交易对构成闭环 A→B→C→A,如果三段汇率乘积偏离 1,循环执行就能套利。

例:Uniswap V3 上 ETH/USDC、USDC/DAI、DAI/ETH 三个池子。

\[ \Pi = \left(\prod_{k=1}^{3} \mathrm{rate}_k\right) - 1 - \sum_{k=1}^{3} f_k - g \cdot p_{\text{ETH}} \]

其中 \(f_k\) 是池子手续费(V3 的 0.05% / 0.3% / 1% 三档),\(g\) 是 gas,\(p_{\text{ETH}}\) 把 gas 折成 USDC。

写在 Solidity 里:用一笔交易(atomic transaction)在一条原子调用里完成三段交换。如果中间任何一步失败或滑点超阈,整笔交易回滚,只损失 gas。这是 DEX 套利相比 CEX 搬砖的最大优势——原子性。

实现上有两条主流路径:

路径 1:自己写合约,调用 Uniswap V2/V3 router。优点是控制力强、可以加自定义滑点保护、可以接入 flashloan(无本金套利);缺点是需要懂 Solidity,被审计漏洞坑过的人不少。

路径 2:用 1inch、0x、CowSwap 等聚合器。聚合器自动找到最优路径,但每段都要支付聚合器抽佣 + 池子手续费 + gas,直接吃利润。聚合器更适合「我要换币」而不是「我要套利」。

跨链套利

跨链套利的结构:在 A 链上某代币便宜、B 链上贵,通过跨链桥(bridge)把代币搬过去赚价差。

跨链桥的工作机制大致分为两类:

跨链套利的延迟比 CEX 搬砖大一个量级。最快的桥(如 Across、Stargate)能在 1 至 5 分钟完成跨链;慢的桥(Wormhole 在某些链对上)需要 30 分钟到几小时。这段时间内:

跨链桥风险的事实数据

把过去几年最大几起跨链桥事故列出来作为风险参考(数据来源:被攻击协议官方事后报告 + 链上分析公司 Chainalysis 的年度报告):

这些桥被盗时,所有正在桥上「飞行中」的资金通常一起没了。跨链套利者在选桥的时候要把「桥被攻击概率」乘上「桥停留时间」作为风险敞口。

链上原子套利的实现骨架

"""
dex_triangle_scan.py
用 web3.py 扫描 Uniswap V2 / V3 的三角套利机会(仅作教学,未做 gas 优化与 MEV 保护)。

依赖: pip install web3==6.* eth-abi
注意: 真实生产代码必须在 Solidity 内部完成原子调用,单独通过 web3.py 提交三笔交易
       会被 MEV bot 在中间夹击。本示例仅用于离线扫描机会。
"""
from __future__ import annotations
from dataclasses import dataclass
from web3 import Web3

UNISWAP_V2_PAIR_ABI = [
    {"name": "getReserves", "outputs": [
        {"type": "uint112", "name": "reserve0"},
        {"type": "uint112", "name": "reserve1"},
        {"type": "uint32",  "name": "blockTimestampLast"},
    ], "inputs": [], "stateMutability": "view", "type": "function"},
    {"name": "token0", "outputs": [{"type": "address"}], "inputs": [], "stateMutability": "view", "type": "function"},
    {"name": "token1", "outputs": [{"type": "address"}], "inputs": [], "stateMutability": "view", "type": "function"},
]


@dataclass
class V2Pool:
    address: str
    token0: str
    token1: str
    reserve0: int
    reserve1: int
    fee_bps: int = 30  # Uniswap V2 默认 0.30%


def fetch_v2_pool(w3: Web3, pool_addr: str) -> V2Pool:
    pair = w3.eth.contract(address=Web3.to_checksum_address(pool_addr), abi=UNISWAP_V2_PAIR_ABI)
    r0, r1, _ = pair.functions.getReserves().call()
    t0 = pair.functions.token0().call()
    t1 = pair.functions.token1().call()
    return V2Pool(pool_addr, t0, t1, r0, r1)


def amount_out_v2(amount_in: int, reserve_in: int, reserve_out: int, fee_bps: int = 30) -> int:
    """Uniswap V2 恒积公式: amount_out = (amount_in * (10000 - fee) * reserve_out) / (reserve_in * 10000 + amount_in * (10000 - fee))"""
    amount_in_with_fee = amount_in * (10000 - fee_bps)
    numerator = amount_in_with_fee * reserve_out
    denominator = reserve_in * 10000 + amount_in_with_fee
    return numerator // denominator


def triangle_arb_profit(
    pool_AB: V2Pool, pool_BC: V2Pool, pool_CA: V2Pool,
    amount_in_A: int,
    A: str, B: str, C: str,
) -> int:
    """从 A 出发经过 B、C 回到 A 的套利净额(以 A 为单位的 token wei)"""
    # A -> B
    if pool_AB.token0.lower() == A.lower():
        rin, rout = pool_AB.reserve0, pool_AB.reserve1
    else:
        rin, rout = pool_AB.reserve1, pool_AB.reserve0
    amt_B = amount_out_v2(amount_in_A, rin, rout, pool_AB.fee_bps)
    # B -> C
    if pool_BC.token0.lower() == B.lower():
        rin, rout = pool_BC.reserve0, pool_BC.reserve1
    else:
        rin, rout = pool_BC.reserve1, pool_BC.reserve0
    amt_C = amount_out_v2(amt_B, rin, rout, pool_BC.fee_bps)
    # C -> A
    if pool_CA.token0.lower() == C.lower():
        rin, rout = pool_CA.reserve0, pool_CA.reserve1
    else:
        rin, rout = pool_CA.reserve1, pool_CA.reserve0
    amt_A_back = amount_out_v2(amt_C, rin, rout, pool_CA.fee_bps)
    return amt_A_back - amount_in_A


def find_optimal_input(pool_AB, pool_BC, pool_CA, A, B, C, lo: int, hi: int, iters: int = 40) -> tuple[int, int]:
    """三分搜索找最优输入量。注意:套利收益对 input 是 concave 函数,三分搜索可解。"""
    for _ in range(iters):
        m1 = lo + (hi - lo) // 3
        m2 = hi - (hi - lo) // 3
        if triangle_arb_profit(pool_AB, pool_BC, pool_CA, m1, A, B, C) < \
           triangle_arb_profit(pool_AB, pool_BC, pool_CA, m2, A, B, C):
            lo = m1
        else:
            hi = m2
    return lo, triangle_arb_profit(pool_AB, pool_BC, pool_CA, lo, A, B, C)

注意几个要点:

  1. Reserve 在每个区块都会变。基于上一区块的 reserve 计算的最优输入,在当前区块未必最优。生产代码必须在合约内部读取最新 reserve。
  2. 三分搜索假设利润函数 concave,对 V2 成立;V3 的集中流动性(concentrated liquidity)使得函数在区间边界不可导,需要分段处理。
  3. 整型除法精度。Solidity 与 Python 的 // 都是向下取整,反复嵌套会累积误差。生产代码用 256 位定点数(uint256 × 1e18)处理。
  4. MEV 风险。这段代码本身不能直接拿去发交易,因为搜索区间内的中间状态会被 mempool 监控的 MEV bot 抢跑。

下面这张图把 AMM 的恒积曲线画出来,直观展示「订单越大,滑点越大」的几何根源。

AMM 滑点曲线

五、DeFi 收益策略

DeFi 收益策略大体可以分成四类:自动做市商流动性提供(AMM LP)、借贷利差、Curve / Convex 套利、流动性挖矿激励。每一类都有自己的收益结构与风险特征,混在一起讨论很容易把数字算错。

AMM LP 收益结构

把资金以 50/50 比例投入 Uniswap V2 池子,作为 LP(liquidity provider),收益来自三块:

  1. 手续费分成:每笔交易扣除 0.30%(V2)/ 0.05%–1%(V3),按 LP 份额分配。
  2. 交易激励:协议方有时为了刺激流动性,发放治理代币奖励(如 SushiSwap 早年的 SUSHI 激励,Curve 的 CRV 激励)。
  3. 价格变动带来的「再平衡损益」:这一块就是著名的 impermanent loss(无常损失,IL)。

Impermanent Loss 数学

考虑一个 ETH/USDC 池子,初始价格 \(p_0\),LP 注入 \(x_0\) 个 ETH 与 \(y_0 = x_0 \cdot p_0\) 个 USDC。Uniswap V2 的常数函数:

\[ x \cdot y = k = x_0 \cdot y_0 \]

当价格变化为 \(p_1 = p_0 \cdot r\) 时,池子按恒积曲线重新平衡,新的储备:

\[ x_1 = x_0 \cdot \sqrt{1/r}, \quad y_1 = y_0 \cdot \sqrt{r} \]

LP 头寸价值(以 USDC 计):

\[ V_{\text{LP}}(r) = x_1 \cdot p_1 + y_1 = 2 \cdot \sqrt{r} \cdot y_0 \]

若 LP 没有把币丢进池子,而是直接持有原始 50/50 仓位,价值为:

\[ V_{\text{HODL}}(r) = x_0 \cdot p_1 + y_0 = (1 + r) \cdot y_0 \]

无常损失定义为相对差异:

\[ \mathrm{IL}(r) = \frac{V_{\text{LP}}(r) - V_{\text{HODL}}(r)}{V_{\text{HODL}}(r)} = \frac{2 \sqrt{r}}{1+r} - 1 \]

具体数值:

价格变化倍数 \(r\) IL
1.00(不变) 0%
1.25(+25%) -0.6%
1.50(+50%) -2.0%
2.00(+100%) -5.7%
4.00(+300%) -20.0%
0.50(-50%) -5.7%

注意 IL 是相对于「持仓不动」的损失,不是绝对损失。LP 头寸的绝对收益取决于「手续费收入 + 激励 - IL」是否为正。

用 web3.py 拉链上 AMM 储备量计算 IL

"""
il_estimator.py
拉取 Uniswap V2 风格池子在两个区块的储备量,估算 LP 的 IL。

依赖: web3.py
"""
from web3 import Web3
import math


def reserves_at_block(w3: Web3, pair_addr: str, block: int) -> tuple[int, int]:
    pair = w3.eth.contract(address=Web3.to_checksum_address(pair_addr), abi=UNISWAP_V2_PAIR_ABI)
    r0, r1, _ = pair.functions.getReserves().call(block_identifier=block)
    return r0, r1


def il_from_price_ratio(r: float) -> float:
    """r = p1 / p0;返回 IL,正值即损失"""
    if r <= 0:
        return 0.0
    return 1.0 - 2.0 * math.sqrt(r) / (1.0 + r)


def estimate_il(w3: Web3, pair_addr: str, block_start: int, block_end: int,
                token0_decimals: int, token1_decimals: int) -> dict:
    r0_s, r1_s = reserves_at_block(w3, pair_addr, block_start)
    r0_e, r1_e = reserves_at_block(w3, pair_addr, block_end)
    p_start = (r1_s / 10 ** token1_decimals) / (r0_s / 10 ** token0_decimals)
    p_end   = (r1_e / 10 ** token1_decimals) / (r0_e / 10 ** token0_decimals)
    ratio = p_end / p_start
    il = il_from_price_ratio(ratio)
    return {
        "price_start": p_start, "price_end": p_end,
        "ratio": ratio, "il_pct": il * 100,
    }


if __name__ == "__main__":
    w3 = Web3(Web3.HTTPProvider("https://eth-mainnet.g.alchemy.com/v2/<KEY>"))
    # ETH/USDC V2 pair: 0xB4e16d0168e52d35CaCD2c6185b44281Ec28C9Dc
    out = estimate_il(
        w3, "0xB4e16d0168e52d35CaCD2c6185b44281Ec28C9Dc",
        block_start=18_000_000, block_end=18_100_000,
        token0_decimals=6,   # USDC
        token1_decimals=18,  # WETH
    )
    print(out)

Curve 与 Convex 套利

Curve 是稳定币之间(也包含同价值资产,如各类 stETH/ETH 派生品)的低滑点 AMM。它使用 StableSwap 不变量,把曲线在「平衡点」附近压扁,使得稳定币交换的滑点远低于 Uniswap V2。Curve 的 LP 收益主要来自:

Curve / Convex 套利的核心思路:

  1. 质押再投资:把 CRV 奖励复投获得复利。
  2. Bribes 套利:项目方为了把流动性吸引到自己的池子,会向 vlCRV 持有者「贿赂」(bribe)以投票,bribe 收益年化常年在 10% 至 30%。
  3. 与 stETH/ETH 派生品池套利:Lido 的 stETH 与 ETH 在某些时段会脱离 1:1 锚定(2022 年 6 月 stETH 一度跌到 0.94 ETH),Curve 池里的失衡形成套利窗口。

借贷利差

Aave、Compound、Morpho 等借贷协议提供存款利率与借款利率,二者的利差由资金利用率(utilization)决定:

\[ r_{\text{borrow}} = r_0 + U \cdot k_1 + \max(0, U - U^*) \cdot k_2 \]

\[ r_{\text{deposit}} = r_{\text{borrow}} \cdot U \cdot (1 - \text{reserve factor}) \]

利用率高的池子,存款利率会快速上升。结构性套利机会来自:

流动性挖矿与 Ponzi 风险

「流动性挖矿」(yield farming)一词从 2020 年 Compound 发 COMP 代币开始流行起来。它的收益结构是:用户向协议提供流动性,协议发放治理代币作为奖励。代币的价格由市场决定,价格高的时候年化能到 1000%(OHM 那一波),价格崩盘的时候挖出来的代币就归零。

工程上要把「挖矿收益」拆成两块:

很多新协议靠激励把表面年化(APY)拉到 200% 以上吸引 LP,几个月后激励减半、TVL 流失、代币价格崩盘,最终 LP 实际亏损。这种结构本质上是庞氏(Ponzi):早期参与者从晚期参与者印出的代币里获利。

判断一个 DeFi 收益策略是否健康,关键是把激励代币按「随时归零」估值,看真实收益部分能否覆盖 IL、gas、清算风险。这个口径下,多数挖矿策略真实年化在 5% 至 15% 之间,与美债收益率叠加波动溢价相符。

Uniswap V3 集中流动性

Uniswap V3 在 2021 年 5 月引入「集中流动性」(concentrated liquidity)概念,把 V2 的整条曲线压缩到 LP 自己选择的价格区间 \([p_a, p_b]\) 内。在该区间内,资金效率被放大数十倍;价格落出区间后,仓位变成 100% 单边持仓,停止赚取手续费。

这一设计把「LP 收益」从被动收租变成了「带价格观点的做市」。LP 必须主动判断:

在数学上,V3 LP 头寸的收益等价于「卖出一个跨式期权(straddle)」,IL 等价于「期权的 gamma 损失」。这个等价关系由 Guillermo Angeris 等人的论文(2021)严格证明,是当前 DeFi LP 量化研究的基础。

Just-in-Time(JIT)做市

V3 的 JIT 做市策略:在 mempool 里看到一笔大额交换交易后,做市商在同一区块内、受害者交易之前的位置插入「先添加流动性、收取手续费、立刻撤出流动性」的一组操作。受害者的滑点不变,但本来分给被动 LP 的手续费被 JIT 做市商抢走。

这个策略对工程基础设施要求极高:

JIT 做市的利润率被快速压缩到接近边际成本,目前在以太坊主网上头部几个搜寻者占据绝大多数份额。

借贷协议的清算瀑布

借贷协议(Aave、Compound、Morpho)在抵押率下降到清算阈值(liquidation threshold,通常 80% 至 90%)时触发清算。清算人(liquidator)调用合约函数,以折扣价(清算奖励 5% 至 15%)买走抵押物,偿还借款。

清算瀑布的危险之处:

策略上的对策:


六、最大可提取价值(MEV)

最大可提取价值(maximal extractable value,MEV)指通过排序、插入、删除区块内交易而获得的额外收益。这是以太坊基础设施层面的「税」,每年规模数亿美元。

三种典型形态

三明治攻击(sandwich attack):受害者在 mempool 提交一笔大额买单,攻击者在它之前抢先买入(推高价格),让受害者以更高价成交,再立即卖出获利。结构:buy-victim-sell。三段都在同一个区块、同一个交易者完成。

抢跑(front-running):受害者发现一个 NFT 铸造或代币上线机会,攻击者通过支付更高 gas 优先级(priority fee)让自己的交易先被打包。表现为「我看见这个机会了但没抢到」。

JIT 流动性(just-in-time liquidity):在 Uniswap V3 上,做市商在受害者交易之前的同一区块加入集中流动性,受害者交易时被这家「即时做市商」吃掉(手续费是做市商收入),交易完成后立即撤出。受害者本来应该是 LP 的手续费分给了 JIT 做市商。

Flashbots 与 MEV 抽取

Flashbots 是 2020 年由 Phil Daian 等人发起的研究项目,目标是把 MEV 提取从「拥挤的公开 mempool」转移到「有序的私密拍卖」。它提供:

对于策略团队,参与 MEV 套利意味着要建立完整的 MEV 基础设施:

MEV 是 winner-take-all 的市场。一个机会被发现的瞬间,多个搜寻者同时提交 bundle,validator 选择 priority fee 最高的那个。胜率取决于策略复杂度、节点延迟、gas 出价模型。这是一个对工程基础设施要求最高、利润率被快速压缩到接近边际成本的赛道。

MEV 的伦理与对策

从受害者角度,MEV 是对普通用户的隐性税收。对策:

  1. 使用支持 MEV 保护的 RPC:Flashbots Protect、MEV Blocker、CowSwap 提供的 RPC 不会把交易广播到公开 mempool。
  2. 使用聚合器或意图(intent)协议:CowSwap、UniswapX 把订单转为「意图」,由专业 solver 执行,避免暴露到 mempool。
  3. 分批下单:把大额交易拆分为多笔小额,降低三明治攻击的可榨取价值。
  4. 限制滑点:Uniswap UI 默认滑点 0.5% 到 1%,可主动设置为更紧(0.1%),让攻击者难以在不让你交易失败的前提下完成三明治。

七、稳定币与跨链结算

稳定币的三种锚定模型

USDT、USDC、DAI、TUSD、FDUSD、USDe 等稳定币市值合计超过 1500 亿美元,是加密世界事实上的「现金」。它们的锚定模型分三类:

法币储备型(USDT、USDC、FDUSD):发行方在银行账户或国债里持有等值美元资产。监管路径:USDC 受美国 NYDFS 监管、USDT 注册于英属维京群岛与香港、FDUSD 注册于香港。

加密资产抵押型(DAI、LUSD、crvUSD):用户向智能合约抵押 ETH、wstETH、wBTC 等资产,超额抵押铸造稳定币。优点是去中心化、抗审查;缺点是抵押率低于 100% 即触发清算。

算法稳定币(UST、USDN,已崩盘;FRAX 部分算法):用算法 + 套利激励维持锚定。Terra UST 在 2022 年 5 月 8 日开始脱锚、5 月 12 日彻底归零,引发蝴蝶效应导致三箭资本、Voyager、Celsius、FTX 接连破产。这一类目前在加密圈基本被宣判死刑。

脱锚事件与套利结构

稳定币脱锚(depeg)是稳定币世界最经典的套利场景。历史上几次显著事件:

稳定币脱锚的套利结构关键在「赎回路径是否可信」:

跨链结算延迟

加密世界没有「央行清算」概念,每条链上的稳定币是独立资产。USDC 在以太坊主网、Solana、Avalanche、Polygon、Arbitrum、Optimism、Base 上分别是独立 ERC20 / SPL 代币,跨链通过 Circle 自家的 CCTP(Cross-Chain Transfer Protocol,跨链转账协议)或第三方桥转移。

CCTP 的机制:用户在 A 链销毁 USDC,Circle 验证销毁事件(约 13 至 19 个区块确认)后授权 B 链铸造。整个流程 15 至 25 分钟。期间用户没有任何资产,是 trust-Circle 的过程。

第三方桥(如 Stargate、Across)通过流动性池实现「即时跨链」,用户在 A 链存入、桥从 B 链池子直接发出,延迟 1 至 5 分钟,但代价是桥被攻击或池子枯竭时资产可能被卡。

这些延迟与风险是跨链套利策略必须建模的核心变量。


八、风险与失败模式

把加密量化的风险写进策略代码之前,先把过去几年最大几起黑天鹅整理出来作为参考样本。

交易所暴雷

Mt.Gox(2014 年 2 月):当时最大 BTC 交易所,被盗 85 万 BTC(约 4.5 亿美元,按当时价格),破产。债权人到 2024 年才开始陆续收到部分清偿(一部分以 BTC 支付)。

FTX(2022 年 11 月):第二大加密交易所,CZ 在 Twitter 公开抛售 FTT、Alameda 资产负债表暴露、2 天内挤兑、5 天内进入破产。客户资产被挪用补 Alameda 亏损,损失约 80 亿美元。SBF 被判 25 年监禁。

Celsius、Voyager、BlockFi、Genesis(2022 年 6 月至 2023 年 1 月):CeFi 借贷平台连环破产,主要敞口为 Three Arrows Capital 与 FTX。

Bittrex(2023 年 4 月):受 SEC 起诉,主动退出美国市场。

JPEX(2023 年 9 月):香港,10 亿港元客户资产无法提现。

工程上的对策:

跨链桥被盗

桥被盗事件已在第四节列出。过去三年累计被盗超过 25 亿美元。结构性原因:

工程上的对策:

协议漏洞

The DAO(2016 年 6 月):以太坊上第一个 DAO 被重入攻击盗走 360 万 ETH,最终通过硬分叉回滚(这就是 ETH 与 ETC 分叉的历史起点)。

Parity Wallet(2017 年 11 月):库合约被错误删除,56 万 ETH 永久冻结至今。

bZx、Cream Finance、Beanstalk、Mango、Euler、Curve(2020 至 2023 年):闪电贷价格操纵、智能合约漏洞、签名重放、reentrancy 等多种攻击形式。

工程上的对策:

清算瀑布与 ADL

加密永续合约设计有「自动去杠杆」(auto-deleveraging,ADL)机制:当强平仓位损失超过保险基金(insurance fund),系统会强行平掉同方向盈利仓位的对手盘。这意味着哪怕你做对了方向、风控做得再好,也可能被 ADL「随机」减仓。

历史上几次 ADL 频繁触发的事件:

工程上对策:

监管风险

加密世界的监管在 2024 至 2025 年发生显著变化。中国大陆在 2021 年「9·24 通知」之后,参与境外加密交易、提供量化服务、矿场、ICO 等几乎全部行为均处于灰色或非法范畴。香港自 2023 年 6 月起允许零售用户交易加密资产,但所有持牌平台(HashKey、OSL)必须遵守 SFC 的虚拟资产服务提供商(VASP)牌照规则。美国在 2024 年通过现货 BTC ETF 与 ETH ETF,监管路径明显宽松,但 SEC 对未注册证券(多数 alt-coin)持续执法。欧盟 MiCA(Markets in Crypto-Assets Regulation)自 2024 年 12 月 30 日全面生效。新加坡 MAS、日本 FSA、阿联酋 VARA 均建立完整的 VASP 注册体系。

策略团队的合规边界:

工程上的具体落地:


九、把策略放到一起:投资组合视角

前面几节把每条策略都拆成单独的工程问题。真正落地一个加密量化机构,需要把这些策略放到一个组合视角下统筹。

收益与风险的初步分类

按风险对收益的敏感度大致分四档:

策略类型 典型年化 主要风险 容量
资金费率套利(Delta 中性) 8% - 30% 交易所、永续设计 中(千万美元级)
跨所搬砖(含对冲) 3% - 15% 提币延迟、桥被盗 小(百万美元级)
DEX 三角套利 5% - 50% MEV、合约漏洞 小(百万级)
AMM LP(主流币) 10% - 30% IL、智能合约 大(亿级)
Curve / Convex 策略 5% - 20% 协议、CRV 价格 大(亿级)
借贷利差 3% - 10% 协议、清算价格 大(亿级)
MEV 套利 不稳定 极端工程要求 小(百万级)
算法稳定币挖矿 50% - ∞ 归零(多次发生) 高度不稳定

风险预算分配

一个稳健的加密量化组合的资本分配,参考权重:

不要把任何单一策略放超过 40%。算法稳定币挖矿、新协议挖矿之类的「机会型」仓位严格控制在 5% 以下。任何看起来 100% 以上年化的机会,先假定它会归零,按「期望损失全部」算可承受规模。

监控与运维

加密策略的运维成本远高于股票策略。一个 10 个亿美元 AUM 的加密机构,运维团队大致需要:

这个体量的团队每年运维成本至少 1000 万美元(含工资、审计、节点费用、安全设备)。所以加密量化的「最低经济规模」(minimum viable AUM)大致在 1 亿美元。

与传统量化的接口

把加密量化嵌入到一个既有股票、商品、外汇等多资产的传统量化机构中,需要解决几个实际的接口问题:

结算节奏:股票 T+1、外汇 T+2、商品看品种,加密 T+0。统一报表系统需要把不同结算节奏的盈亏标准化到「按合规账户日切」口径。

资产估值:加密资产估值需要选定基准报价源(reference rate)。CME 的 BTC Reference Rate(CME BRR)是机构常用的基准;多家所对加密资产的「中价」差异可达 10 bp,估值口径不统一会让风险报告失真。

风险因子映射:加密资产的风险因子与股票完全不同(无 P/E、无行业暴露),但与「全球流动性指数」「美元指数」「VIX」等宏观因子有显著关联。把加密策略嵌入多资产组合需要新建一组因子。

对手方与托管:传统量化的对手方是 Prime Broker(Goldman、Morgan Stanley),加密的对手方是交易所与托管方。两者的违约模型完全不同:Prime Broker 受联邦储备保护,加密交易所没有任何保护,FTX 案例已经证明这一点。

审计与合规:传统量化的审计可以由 Big Four(Deloitte、PwC、EY、KPMG)完成,加密资产的链上估值审计需要专业的加密审计公司(Armanino,已破产;BDO、Mazars 等仍在)。香港 SFC 在 2024 年明确要求 VASP 的审计师必须熟悉链上资产证明(proof of reserves)。

工程团队的建设路径

一个想从 0 开始建立加密量化能力的团队,建议的渐进路径:

  1. 第 1 至 3 个月:基础设施搭建。接入 3 至 5 家头部 CEX 的 REST + WebSocket,搭建数据落库、监控告警、基本风控。这一阶段不上策略,只跑「记录账户、按计划买入卖出」的最小动作,验证整套基础设施的可靠性。

  2. 第 4 至 6 个月:单策略小规模实盘。挑选资金费率套利或主流币 LP 这种风险特征清晰的策略,以总资金 5% 以下规模上线,跑 3 个月确认稳定性。

  3. 第 7 至 12 个月:链上能力建设。自建以太坊归档节点、Solana RPC,对接主流 DEX 与跨链桥,建立 mempool 监控。这是进入 DEX 套利与 MEV 战场的门槛。

  4. 第 2 年:策略组合化。把多条独立策略组合成一个组合,按风险预算分配资金,建立日终对账与月度复盘体系。

  5. 第 3 年起:基础设施与合规深化。建立完整的 KYC、AML、税务、监管报告体系,把业务规模扩展到 1 亿美元以上。同时与至少两家头部审计、两家头部安全公司建立长期合作关系。

每个阶段都不要跳过。跳过基础设施直接上策略的团队,绝大多数死在第一次极端行情的运维事故上。

几条经验性结论

把过去几年观察到的、有相对一致结论的经验放在这里收尾:

第一,加密策略的衰减速度比股票快一个量级。一个在股票市场可以稳跑 5 年的统计套利因子,在加密市场往往 6 至 12 个月就会因为对手增多、做市商机器化、协议升级而失效。任何加密策略都需要内置「定期验证 + 主动迭代」机制,不能把回测当承诺。

第二,工程占比远高于研究占比。在传统量化里,研究员与工程师比例大致 1:1;在加密量化里这个比例往往是 1:3 甚至 1:5。基础设施、安全、合规消耗的工程资源远超策略本身。

第三,规模越大反而越被动。加密世界的容量结构非常陡峭:1000 万美元规模可以做的策略,到 1 亿美元规模可能完全失效(因为价差被自己吃没了、流动性不够、合规审查更严)。机构规模扩大以后,能跑的策略集合反而缩小到「主流币资金费率套利 + AMM 主流币 LP」这种容量大但收益薄的几类。

第四,离市场越近的人越保守。亲身经历过 2018、2020、2022 三轮熊市的从业者,对待新协议、新代币、新链的态度普遍比新人保守得多。「这个看起来太好了」基本上意味着「这个有问题」。在加密市场,「我没看懂的策略不参与」是非常昂贵的纪律,但回头看几乎总是对的。

第五,永远把私钥安全放在第一。所有策略的最大单点风险不是市场风险,而是私钥泄漏。一次私钥泄漏可以把多年的累计盈利清零。多签、HSM、冷热分离、定期密钥轮换、内部权限最小化——这套做法不是合规要求而是生存要求。

最后引用一句业内常说的话作为收尾:「在加密世界,活下来本身就是一种 alpha」(survival is alpha)。能持续 5 年不爆仓、不被盗、不被监管处罚,这件事本身就比绝大多数高频交易策略的 Sharpe 更稀缺。这是这个市场最朴素也最难的工程问题。

一份给从业者的检查清单

把全文的工程要点整理成一份可直接打印贴在墙上的清单,作为日常运行的对照表:

资金安全: - [ ] 主资金在自托管多签钱包,至少 3/5 阈值,签名人地理隔离。 - [ ] 交易所余额上限明确(按所、按币种),超过上限自动提币。 - [ ] 私钥从未以明文形式出现在任何代码、日志、聊天记录中。 - [ ] 至少两份私钥备份(钢板 + 异地保险柜),定期演练恢复流程。

策略风险: - [ ] 单一策略仓位不超过总资金 40%。 - [ ] 单一协议 / 交易所敞口不超过 30%。 - [ ] 单一代币持仓不超过 20%(稳定币除外)。 - [ ] 永续合约保证金率 ≥ 50%。 - [ ] 抵押借贷 LTV ≤ 40%。

基础设施: - [ ] 每家所 REST + WebSocket + 备用 RPC,自动故障切换。 - [ ] 链上自有归档节点 + 至少一个第三方 RPC。 - [ ] 监控:API 错误率、订单成交率、资金费率突变、链上 gas 突变、稳定币偏差、桥 TVL 变化。 - [ ] 告警分级:邮件 / 短信 / 电话三层,深夜重大事件电话叫醒。

合规与运营: - [ ] 法人主体在合规辖区注册并持有相应 VASP 牌照。 - [ ] 客户 KYC 与 AML 工具上线(Chainalysis、TRM、Elliptic 至少一家)。 - [ ] 链上地址扫描覆盖 OFAC、Tornado Cash、被盗资金标签。 - [ ] 月度复盘:策略归因、事故复盘、合规报告。 - [ ] 年度审计:链上资产证明 + 法币账户审计。

这份清单不是「最佳实践」而是「最低标准」。任何一项打不到勾的机构,在下一次黑天鹅来临时都会暴露在不必要的风险里。


十、写在最后

加密量化是一个把「金融工程」、「分布式系统」、「合规法律」、「博弈论」搅在一起的复合学科。它不是「币圈」也不是「华尔街」,而是这两个世界互相啃食、互相塑造的中间地带。本文给出的所有策略骨架与代码示例,是这个领域里几十个团队过去十年踩坑总结出来的最朴素一套。能做到这套骨架的纪律执行,已经能在加密量化里站稳脚跟;想要更深入,必须自建团队、自建基础设施、自建合规体系,没有捷径。

最后再次重申合规边界:本文不构成任何投资建议;中国大陆居民参与境外加密资产交易、永续合约、DeFi 协议、跨链桥、做市套利等业务,按照「9·24 通知」属于非法金融活动范畴,请自行评估法律、外汇、刑事风险。境外居民应遵守所在司法辖区的 VASP / MiCA / SEC / CFTC / FSA 等监管框架。任何把本文示例代码部署到生产环境的尝试都需要经过完整安全审计,作者不对此承担任何责任。


参考文献

  1. BitMEX (2016). “Perpetual Contracts Specification.”
  2. Adams, H., Zinsmeister, N., & Robinson, D. (2020). “Uniswap V2 Core Whitepaper.”
  3. Adams, H., Zinsmeister, N., Salem, M., Keefer, R., & Robinson, D. (2021). “Uniswap V3 Core Whitepaper.”
  4. Egorov, M. (2019). “StableSwap - Efficient Mechanism for Stablecoin Liquidity.” Curve Finance Whitepaper.
  5. Daian, P., Goldfeder, S., Kell, T., Li, Y., Zhao, X., Bentov, I., Breidenbach, L., & Juels, A. (2020). “Flash Boys 2.0: Frontrunning, Transaction Reordering, and Consensus Instability in Decentralized Exchanges.” IEEE S&P 2020.
  6. Qin, K., Zhou, L., & Gervais, A. (2022). “Quantifying Blockchain Extractable Value: How dark is the forest?” IEEE S&P 2022.
  7. Werner, S. M., Perez, D., Gudgeon, L., Klages-Mundt, A., Harz, D., & Knottenbelt, W. J. (2021). “SoK: Decentralized Finance (DeFi).” AFT 2022.
  8. Angeris, G., Kao, H. T., Chiang, R., Noyes, C., & Chitra, T. (2019). “An Analysis of Uniswap Markets.” Cryptoeconomic Systems Journal.
  9. Mohan, V. (2022). “Automated Market Makers and Decentralized Exchanges: A DeFi Primer.” Financial Innovation, 8.
  10. Heimbach, L., & Wattenhofer, R. (2022). “Eliminating Sandwich Attacks with the Help of Game Theory.” AsiaCCS 2022.
  11. Chainalysis (2024). “The 2024 Crypto Crime Report.”
  12. Elliptic (2024). “Cross-Chain Crime Report 2023.”
  13. ccxt 官方文档:https://docs.ccxt.com/
  14. web3.py 官方文档:https://web3py.readthedocs.io/
  15. Flashbots 文档:https://docs.flashbots.net/
  16. Aave V3 Technical Paper(2022):https://github.com/aave/aave-v3-core
  17. Curve Finance 文档:https://docs.curve.fi/
  18. Uniswap V3 Math Reference(Dan Robinson 笔记):https://uniswap.org/whitepaper-v3.pdf
  19. Circle CCTP 协议文档:https://www.circle.com/en/cross-chain-transfer-protocol
  20. 中国人民银行等十部委(2021):“关于进一步防范和处置虚拟货币交易炒作风险的通知”。
  21. 香港证监会(2023):《适用于虚拟资产交易平台营运者的指引》。
  22. EU MiCA Regulation (Regulation EU 2023/1114).
  23. SEC v. Binance Holdings, Ltd. (2023), SEC v. Coinbase, Inc. (2023) 起诉书。
  24. FTX Bankruptcy First Day Declaration (2022 年 11 月 17 日,特拉华州破产法院案号 22-11068)。
  25. Lewellen, J. (2024). “Funding Rate Arbitrage in Perpetual Futures Markets.” Working Paper.

系列导航

同主题继续阅读

把当前热点继续串成多页阅读,而不是停在单篇消费。

2026-05-01 · quant

量化交易

从因子研究到生产执行的量化交易全栈工程。覆盖市场微结构、数据管线、因子构造、组合优化、回测方法论、执行算法、做市策略、高频架构到生产运维。面向策略研究员与工程师。

2026-05-01 · quant

【量化交易】量化交易全景:从信号到订单的工程链路

量化交易不是策略写得好就能赚钱,更难的是把数据、特征、因子、信号、组合、执行、风控、复盘这八段链路在工程上连成一条不漏数据、不串时间、不丢订单的流水线。本文是【量化交易】系列的总目录与读图,给出八段链路的输入输出、失败模式、不变量清单,并用研究流程图把从一个想法到一笔实盘订单之间所有该过的卡点串起来。

2026-05-01 · quant

【量化交易】市场结构:交易所、做市商、暗池、ECN

系统梳理全球市场结构(Market Structure)的工程图景:从证券交易所、衍生品交易所、加密交易所,到做市商、暗池、ECN/ATS,再到 Maker-Taker 收费、PFOF、Reg NMS 与 MiFID II 的监管影响;给出量化策略选择交易场所的判断框架与基于 ccxt 的多交易所行情聚合代码。

2026-05-01 · quant

【量化交易】市场微结构:订单簿、价差、流动性、冲击

系统讲解市场微结构的核心概念与可计算工具:限价订单簿的数据模型、报价/有效/已实现价差、Roll 模型、四维流动性度量、Kyle's lambda、订单流不平衡(OFI)、Almgren-Chriss 框架下的临时与永久冲击、PIN 与 VPIN、Hawkes 过程,并给出基于 polars 的 L2 增量处理与系数估计代码。


By .