源文件:research/quant_digests/2026-03-27_1050_okx-positive-funding-positive-premium-carry.md
long spot / short perp,同时赚 funding carry 与 rich-basis 向现货收敛;若只有 funding 为正、但 perp 并不贵,这条 carry 往往并不值得做。这次主材料不是论文 headline,而是一份很短但方向很对的 2025 新仓库:R1cK-ChaN/crypto-funding-arbitrage。
它最值钱的地方,不是“自动化监控 funding”这句废话,而是代码里其实已经写明白了一件对 desk 很重要的判断:
> base alpha 不是“看到 funding 为正就去 short perp 收租”,而是“只有当 perp 真的比 spot 贵,同时 funding 也站在同一边时,这个 carry 才更像可做 pocket”。
这条线对当前 desk 有直接价值,因为它属于我们明确要持续补的 carry / funding / basis raw alpha 素材池,而且能很快拆成最小实验:
8h 节奏的现金流;1m / 5m 可连续监控的状态;Repo source
R1cK-ChaN / 2025Paper ground truth
10.3386/w3293610.1111/mafi.70018这份仓库虽然很短,但 src/strategies/funding_arbitrage.py 已经把主判断写得很直白:
``python if funding_rate > self.funding_threshold: price_diff = swap_price - spot_price if price_diff > self.spread_threshold: return True ``
翻成人话就是:
long spot / short perp。这跟很多“funding dashboard 式读法”最大的差别在于: 它不是把 funding 当单变量,而是把 funding + basis 同时当成 alpha 的定义。
Ackerer, Hugonnier, Jermann(2024)那篇 *Perpetual Futures Pricing* 的核心提醒是:
所以,把 repo 里的读法压成一句最有用的话就是:
> carry 现金流要和 basis 方向站在同一边,才更像可交易的 raw alpha;否则 funding 可能只是表面上为正,但 rich/cheap 关系并不支持同向持仓。
这条 alpha 当然属于 carry / funding / basis,但它不是“每根 1m/5m bar 都能独立产生新边际信息”的那种 raw alpha。
更诚实的 desk 化口径应该是:
long spot / short perp 收 正 funding + 正 premium 回归1m / 3m / 5m 用来做也就是说: funding 决定“做不做这类 trade”,短周期 bar 决定“什么时候做、什么时候不做”。
/api/v5/public/funding-rate/api/v5/market/tickers?instType=SWAP/api/v5/market/tickers?instType=SPOT8h 节奏;premium 可按 1m / 5m 连续采样2026-03-27 10:55 UTC 当下全部 USDT-SWAP 且有同名 USDT spot twin 的币种199 个 spot-perp twin在 199 个 OKX USDT spot-perp twin 里:
115 个当前 funding 为正19 个 同时满足 premium > 016.5% 的正 funding 状态,真的和正 premium 站在同一边这条数据很关键,因为它直接说明: 如果只用 funding 选边,你会把大多数“方向没站对”的 carry 状态也一并收进来。
截至快检时:
+0.229 bps / 8h,但 premium 约 -5.48 bps-0.006 bps / 8h,premium 约 -3.93 bps-2.26 bps / 8h,premium 约 -7.19 bps也就是说,至少在 majors 上,你看 funding 面板不一定会看到一个该做的 spot-perp carry。
当前同侧 pocket 的示例:
+0.5 bps / 8h,premium +30.12 bps+1.0 bps / 8h,premium +7.15 bps+0.5 bps / 8h,premium +16.11 bps而 funding 为正但 premium 不支持的反例也很多:
+1.0 bps / 8h,premium -18.73 bps+1.0 bps / 8h,premium -14.20 bps+1.0 bps / 8h,premium -9.43 bps这说明真正该测的不是“funding 有多大”,而是: funding sign × basis sign × liquidity quality 三者是不是一起站对。
相关 artifact:
/root/clawd/jerry/momentum/reports/artifacts/quant_digests/okx_funding_premium_snapshot_20260327_1050/all_usdt_swap_with_spot_snapshot.csv/root/clawd/jerry/momentum/reports/artifacts/quant_digests/okx_funding_premium_snapshot_20260327_1050/summary.json因为 repo 本身还有两块明显没补完:
execute_arbitrage() 里只有 TODOcalculate_position_size() 也只是直接返回 max_size所以它现在更像: 一条定义清楚的 raw alpha candidate,而不是已经能放心接实盘的完整执行栈。
对每个 spot-perp twin 定义:
funding_bps_nowpremium_bps = (perp - spot) / spot * 10,000edge_score = premium_bps + λ * expected_funding_bps - entry_cost_buffer最小版本可先用:
funding_bps_now > 0premium_bps > p_openedge_score > 0然后执行:
不要只写“拿到 funding 就走”,更诚实的 exit 应该至少有三种:
premium_bps < p_close1~3 个 funding period 内若 basis 不收敛就撤第一版别复杂:
size ∝ min(edge_score, cap)size <= x% of top-book / y minutes ADV这类 alpha 的风险不是方向判断,而是 plumbing:
这类 alpha 最容易死在这里:
+1 bps/8h funding 就冲进去,根本不够覆盖双腿进出场成本premium_bps + expected_funding_bpsspot leg fee + perp leg fee + 双腿滑点 + 安全 buffer所以第一轮别问“有没有 alpha”,先问: gross basis+carry 能不能先穿过成本生存线。
对 OKX BTC/ETH/SOL + 20~50 个有 spot twin 的 liquid alts:
30~90d 的 funding history1m / 5m / 15m / 60m premium 收敛幅度funding>0 onlypremium>0 onlyfunding>0 & premium>0funding>0 & premium>0 & liquidity gate第一问很简单: 双条件组的后续 basis 收敛,是否显著好于 funding-only。
至少分三档:
若一条 pocket 只有在理想 maker/maker 下才活,那它就不能被写成“完整可落地 alpha”。
因为当前快检已经很清楚:
所以必须拆成两条研究问题:
如果历史验证后成立,这条线可走三种落地形态:
funding>0 但 premium<=0 时机械 short perp 收租edge_score 做强弱分层,不再一刀切这份 2025 repo 真正值得 desk 先拿走的,不是“自动盯 funding”,而是更朴素也更有用的那句:
> spot-perp carry 不能只看 funding;只有当 perp 确实偏贵、funding 也站在同一边时,它才更像一条可复现的 raw alpha pocket。