源文件:research/quant_digests/2026-04-02_2018_multiquote-bucket-rv-alpha.md
README.md + optimal_trading_technique.py)+ Binance Spot 1m/3m/5m/15m public-data portability probe这篇材料真正值得 intake 的,不是“Kraken 上 ETH 对多法币报价可以套利”这个表面故事,而是它把一条非常适合 short-cycle desk 的 raw alpha 讲清楚了:同一底层、多个报价腿会同时冒出相对偏离,但真正能落地的是“pair signal 负责找错价,convex allocator 负责解决多信号同时出现时到底该配哪几腿、配多大”。
最近 digest 已经补了不少 pairs / coint / residual / cross-venue / funding,但大多数仍停在 两腿 spread 的 entry/exit;这篇更稀缺的地方是: 它把 same-underlier relative-value 从“两腿单独做”推进成“多腿 bucket 一起解仓位冲突”的完整策略骨架。
这轮的 base alpha 很清楚:
翻成人话: 不是赌 ETH 单边涨跌,而是赌“同一个 ETH,不该因为报价资产不同而被短时标出明显不同的相对价格”;如果同一时刻多个报价腿都错了,就用统一的仓位解算器,避免互相打架。
所以这轮主题的定位是:
最近已经有不少:
cointegration spread z-score fadedynamic coint percentile thresholdcross-venue basis / funding carrypairs sizing / graduation / daily throttle这些大多还是 两腿交易卡。这篇真正不同的是: 它讨论的是“同一底层有多条相对价值机会一起冒出来时,怎么把它们作为一个 bucket 来配仓,而不是把每条 spread 当孤岛”。
MAINLINE1_STRATEGY_FACTOR_MAP、FACTOR_BACKLOG 和最近几篇 pairs digest 已经把:
补得很多了;但 多信号同时触发时的统一分配器 还相对稀缺。这篇提供的正是: 同一 alpha family 内部的 portfolio coordinator。
原文是“法币报价腿”,但 desk 更容易落地的读法其实是:
ETHUSDT / ETHUSDC / ETHFDUSDBTCUSDT / BTCUSDC / BTCFDUSD也就是把“不同 fiat quote”翻译成“不同 stable quote / 不同 venue quote”。这对我们当前短周期 desk 明显更贴身。
Hongshen-Yangoptimal-trading-techniqueREADME 和代码写得很清楚,默认示例直接使用 Kraken OHLCVT:
ETHUSDETHCADETHGBPETHEUR也就是说,作者不是在做随便两条 unrelated crypto 序列的统计套利,而是在做: 一个底层(ETH)在多种报价腿上的相对价值偏离。
这件事非常关键,因为这种结构天然满足两点:
源码主函数 arbitrage_trade() 的流程大致是:
corr > 0.99 的硬门槛);翻成人话: alpha 不是“哪个报价腿绝对便宜”,而是“哪条报价腿相对其余报价腿偏得不正常”。
作者真正和普通 pairs 策略拉开差距的地方是 build_prob_cons():
这意味着同一时间如果有多条 spread 一起亮灯,系统不是“看见一条下一条”,而是: 先把所有候选腿放进同一个优化问题,再统一吐出本根 bar 该开的多空腿和权重。
这正是 desk 当前最值得拿走的部分。
从源码能清楚读出的策略卡如下:
TX_COST = 0.001,即默认 单边 10 bps;LAMBDA = 0.5。对 desk 来说,这已经是完整策略,而不是一段只会“发现价差”的研究脚本。
do1min()、do5min()、do60min() 三套入口。TX_COST = 0.001,即单边 10 bps。LAMBDA = 0.5,原始资金 ORIG_AMOUNT = 10000。再补两个对实现最有用的参数:
CROSSING_MEAN = 9CROSSING_MAX = 11但这里必须立刻补一句 source-audit 结论: 代码里阈值比较写法比较“怪”——它把 z-score 和 spread.std × threshold 混用,所以这两个数字不能直接当 literal 9σ/11σ 理解;移植时必须重写成我们熟悉的纯 z-score 参数。
我没有去硬复刻论文全套,而是做了一个更贴 desk 的 public-data probe:
ETHUSDT / ETHUSDC / ETHFDUSD2σ 偏离后回到 |z| < 0.5 的完成次数与回归速度最近 1000 根 1m 数据里:
ETHUSDT-ETHUSDC:spread std 约 0.70 bp,完成 31 次 2σ → 0.5σ 回归,median close 3 bars,half-life 约 1.32 bars;ETHUSDT-ETHFDUSD:spread std 约 1.11 bp,完成 32 次回归,median close 2 bars,half-life 约 1.03 bars;ETHUSDC-ETHFDUSD:spread std 约 1.24 bp,完成 19 次回归,median close 3 bars,half-life 约 1.17 bars。翻成人话: 1m 上这条 alpha 不是没有,但 edge 很薄,非常依赖费用、排队和是否能避免把 1bp 级别偏离全交给手续费。
最近 1000 根 3m 数据里:
ETHUSDT-ETHFDUSD:spread std 1.62 bp,触发率 5.3%,完成 13 次回归,median close 7 bars;ETHUSDC-ETHFDUSD:spread std 1.56 bp,完成 23 次回归,median close 3 bars。最近 1000 根 5m 数据里:
ETHUSDT-ETHFDUSD:spread std 1.75 bp,2σ 触发率 4.4%,完成 12 次回归,median close 4.5 bars,half-life 2.32 bars;ETHUSDC-ETHFDUSD:spread std 1.55 bp,完成 18 次回归,median close 5 bars,half-life 1.61 bars。这组结果最重要的意思不是“立刻上线 ETH stablequote arb”,而是: same-underlier multi-quote 的 raw alpha 在 3m/5m 上仍然能看到可重复的均值回归形状,适合做 bucket allocator 的最小实验。
最近 1000 根 15m 数据里:
ETHUSDT-ETHFDUSD:完成 6 次回归,median close 4.5 bars;ETHUSDC-ETHFDUSD:完成 12 次回归,median close 7.5 bars;ETHUSDT-ETHUSDC:完成 4 次回归,median close 7.5 bars。结论很直接:
15m 还能做,但更像 低频 bucket relative-value;3m/5m 更像当前 desk 的首轮实验区;1m 只有在成本极低时才有意义。原论文的“多法币报价”对我们是启发,不是照抄对象。最顺手的移植顺序应是:
BTCUSDT / BTCUSDC / BTCFDUSDETHUSDT / ETHUSDC / ETHFDUSD这篇不是孤立主题,而是能服务至少三类现有 raw alpha:
因此这轮最好把它看成: raw alpha 本体 = multi-quote mean reversion;优化器 = 这类 alpha 的 portfolio operating system。
如果继续只补两腿 pairs,我们得到的是更多 spread 卡片; 这篇能补的是: 当 3 条 spread 同时亮灯时,系统应该只开一条、全开、还是配成一篮子?
这个问题更接近 live trading,而不是 paper trading。
BTC 与 ETH 两个底层各自一组 stable quotesUSDT / USDC / FDUSD5m,再 3m 与 15m|z| >= 2.0|z| <= 0.5 或 max-hold 10 bars1xmaximize E[r] - λ·risk1 / 2 / 3 / 5 bps 敏感性要先回答的问题只有一个: 当多个 stable-quote dislocation 同时出现时,统一 allocator 相比“各 pair 各干各的”,after-cost 的净收益 / 回撤 / 冲突仓位会不会更好?
BTCUSDT 或 ETHUSDT1m / 3m / 5m由于 repo 原始 CROSSING_MEAN / CROSSING_MAX 语义不干净,移植时建议:
open_z = 2.0 / 2.5close_z = 0.25 / 0.5allocator_lambda = 0.0 / 0.25 / 0.5 / 1.0先把参数语义统一,再比较 bucket 与 independent-pair baseline。
1bp 级别;若没有极低成本与高质量成交,1m 容易变成“统计上能回归,实盘上赚不到”。下一步最该做的,不是先复刻论文 2020–2022 全样本,也不是先接 Gurobi,而是用我们最容易拿到的 stable-quote 公开数据做一个干净 ablation:同一套 residual entry/exit、同一套成本,只比较 independent pairs vs bucket allocator。
如果这一步成立,这篇就不只是“又一篇 crypto pairs 论文”,而是能直接进入我们 3m/5m/15m 策略池的一条完整 raw alpha: 同底层多报价错价负责给信号,bucket allocator 负责把这些信号变成不互相打架的 live 组合。