源文件:research/quant_digests/2026-04-02_1734_feecoverage-gated-crossvenue-funding-carry-alpha.md
README.md + config.yaml + scripts/scan_all.py + scripts/auto_selector.py + scripts/fee_coverage_calculator.py + scripts/rolling_position.py + scripts/trailing_stop.py)long 最便宜 funding leg / short 最贵 funding leg 的 delta-neutral 结构,赚 funding differential,本体是 carry / relative-value,不是风控壳。这轮最值得 intake 的,不是“又一个 funding scanner”,而是 repo 里那条很实在的完整 raw alpha:先找同币跨所 funding spread,再用明确的 fee coverage 门槛决定这笔 carry 到底值不值得做;而 rolling build、trailing stop、exchange reliability 这些都已经把它往完整策略推了一步。
PIXEL/JTO/SUPER/0G 四个机会合计 约 57.5U 敞口、0.894U/天 日收,并宣称 6 个月+、100+ 笔 实盘正收益;虽然这当然要打折看,但至少说明作者在尝试把 funding carry 当可执行策略,而不是纯理论。fee_coverage_calculator.py 逼着我们承认——不是看到 funding spread 就能收租,必须先过费用壳。这比很多泛 funding 摘要更适合 desk 直接复现。这次 base alpha 很清楚,而且是 raw alpha。
不是 regime,不是 filter,也不是 risk overlay 假装成 alpha。
alpha 本体就是:
所以它的正确归类是:
raw alphacarry / funding / cross-venue / relative-value / stat-arbfee coverage、rolling build、trailing stop 很重要,但它们都不是 alpha 本体;它们是这条 alpha 能不能活到实盘的执行壳。
虽然项目最近已经 intake 过不少 funding / basis / carry 方向,但这轮仍然值得写,原因很简单:
这点先过线了。它服务的是 raw alpha 素材池,而不是又写一个“可以给别的 alpha 当 gate”的低优先级组件。
最近 desk 的 funding 主题很多都强调 richest vs cheapest、basis diff、async clock,但这份 repo 最值得拿走的是:能不能开仓,不先看 headline APR,而先看成本覆盖。
这里不是只给你一个排序器;它把 entry / ranking / position management / stop / risk preference 都做了模块化拆解。
1m / 3m / 5m / 15m。funding 本体不是逐根 1m 主信号,但完全可以用:
15m 做 opportunity refresh5m 做 admission / leg-check1m/3m 做执行与对冲同步控制也就是说,这轮不是“又来一篇 funding”,而是把 funding carry 从思路池往可执行素材池又推进了一步。
README.mdconfig.yamlscripts/scan_all.pyscripts/auto_selector.pyscripts/fee_coverage_calculator.pyscripts/rolling_position.pyscripts/trailing_stop.pyrepo 的策略主线就是:
Gate / Bitget / Aster / OKXconfig.py / config.yaml 里给出的默认骨架很直接:
SCAN_INTERVAL_SECONDS = 60MIN_PAIR_APR = 50MIN_VOLUME_USD = 50_000POSITION_SIZE_USD = 100Bitget 0.95 > Gate 0.90 > Aster 0.85翻成人话: 它不是在找“理论上最大 spread”,而是在找“你真能下得动、且 venue 风险不离谱的 spread”。
README 给出的实盘样例是:
PIXEL ~20U → 0.182U/天JTO ~26.6U → 0.148U/天SUPER ~10.3U → 0.512U/天0G ~0.58U → 0.052U/天~57.5U 敞口、~0.894U/天 日收~567% 理论年化这些数字当然不能直接信成 desk 结论,因为:
但它至少提供了一个很重要的信息: 作者在实际关注的是“小票 funding 高离散窗口”,不是 BTC/ETH 这种被挤平的成熟 carry。
fee coverage 这层 honesty gatefee_coverage_calculator.py 用 taker fee 假设:
0.05%0.06%0.05%0.05%并默认:
3 次 funding 结算6 次交易动作(对应若干 round-trip)我按源码口径重算了几个最关键的阈值(以 Gate + Bitget 为例):
0.10% / settlement0.30%0.33%-0.03%/天0.20% / settlement0.60%0.33%+0.27%/天45%,还没过 repo 自己的 >50% 标准0.11% / settlement0.22% / settlement这三个数字非常重要。因为它们直接告诉 desk: 这条 alpha 不是 always-on 收租,更像“高 spread、高手续费覆盖、高离散窗口”才值得碰的 pocket carry。
repo 里的模块分工很清楚:
scan_all.py:找 raw alpha 候选auto_selector.py:做 ranking / filterfee_coverage_calculator.py:做成本 gaterolling_position.py:做分批建仓与盈利后加仓trailing_stop.py:做盈利保护也就是说,它非常适合按 desk 语言重述成:
这就是为什么它不是“只会扫表”的玩具,而是可拆成完整策略骨架的来源。
scan_all.py 里是这样排机会的:
max_longmax_shortlong_exchange = max_long、short_exchange = max_short如果这些交易所 funding API 采用的是标准口径(正 funding = longs pay shorts),那么经济方向应该通常是:
换句话说,源码里的 leg 命名和真实资金流方向之间,至少存在 sign-convention risk。
这不意味着这条 alpha 失效,反而说明: alpha 本体是对的,但第一版复现必须自己统一 funding 符号与收付款方向,不能直接照抄 scanner 输出。
源码里至少有三种容易混淆的写法:
config.yaml:min_spread: 0.001 并注释成 0.1%auto_selector.py:min_spread: 0.10scan_all.py:筛选条件写成 spread > 0.01这提示一个非常实际的问题: spread 在不同脚本里到底是 decimal、百分数,还是 bps,没有被统一到底。
所以第一轮最小实验里,必须先做一件很无聊但很关键的事:
否则回测会很容易“看起来很赚钱,其实只是单位没对齐”。
1m / 3m / 5m / 15m desk 的正确读法更诚实的拆法应该是:
15m/5m admission 层:检查 spread 是否仍在、盘口深度是否够、basis 是否没突然反向1m/3m execution 层:分腿同步、减冲击、避免 legging也就是说:
1m / 3m / 5m / 15m这条线和最近 desk 的 accumulation 是互补的:
而且它的价值不在“Funding carry 这个词新不新”,而在: 把 funding carry 的真正门槛——费用壳、venue 可靠性、滚动建仓——写得很直白。
3 批构建;盈利后才允许加仓;总仓上限 50%H1: 同币跨 venue funding differential 在 alt-heavy、流动性尚可的币上,仍能形成可交易的 carry pocket。 H2: 真正决定这条 alpha 能不能活下来的,不是 raw spread 本身,而是 fee coverage gate。 H3: 在统一符号和单位后,很多 headline 高 APR 机会会被费用壳和执行壳大幅筛掉。
8h 结算更新;机会扫描可按 1m~5m refresh15m 做机会状态,5m 做 admission,1m/3m 做执行模拟bps per settlement先不要卷复杂优化,第一轮只跑三组:
1 次结算net funding income - round-trip cost > 0coverage > 0 / 30% / 50% 三档门槛时才进统一比较:
先测:
先不测:
1 / 2 个 funding settlements10 / 20 / 35 bps round-trip0 / 30% / 50%5k / 10k / 25k USDT15m 状态刷新 + 5m 下单检查如果这轮只拿走一件事,我会拿走这句:跨 venue funding carry 当然还是 raw alpha,但真正值得 desk 先复现的,不是“谁 funding 高就冲谁”,而是“统一 funding 符号与单位后,只做那些 spread 足够厚、费用壳真能覆盖、venue 也够可靠 的 pocket carry”。