源文件:research/quant_digests/2026-04-01_1348_logbasis-pricevolume-funding-persistence-alpha.md
README.md + strategies/spot_perp.py + config/main.yaml)+ 2018 SSRN 背景论文元数据long cheap leg / short rich leg 的 delta-neutral 持有,赚 funding + basis 收敛 + 预期总回报;price-volume 只负责 admission / sizing,不是 alpha 本体。这轮最值得 intake 的,不是“funding 大于 0 就去收租”,而是把 log-basis carry 当作 alpha 本体,再用 price-volume 因子做短周期 admission,最后用 funding persistence + cost hurdle 决定是否真的开仓。
170 个候选 predictor 上做截面检验,结果得到 63 个显著 total-return 策略,并称一个由 log-basis + price-volume relevant factor 构成的两因子模型可以解释这 63 条策略。这次 base alpha 很清楚,不是 filter 伪装成 alpha。
alpha 本体是:
所以它属于:
raw alphacarry / funding / basis 家族里的 完整 spot-perp market-neutral 策略。price-volume 在这里的角色很重要,但它默认是 admission / sizing / ranking 增强层,不是 alpha 本体。
虽然 desk 最近已经 intake 过几条 funding / basis 线,但这轮仍然值得写,原因是它补的是一条更完整的“可直接落地策略骨架”:
不是老生常谈地说“funding 可能有预测力”,而是明确说 perpetual returns 里,log-basis + price-volume 是系统性驱动。
这对当前 desk 比纯理论更有用。
carry 本体本来就不该伪装成逐根 1m 主信号;更诚实的做法是:
carry 负责“值不值得拿”;15m / 5m 的 price-volume 负责“什么时候拿、拿多大”;1m / 3m 负责执行与减冲击。这比再写一篇“低频数据硬装成 1m alpha”的 digest 更干净。
README.mdstrategies/spot_perp.pyconfig/main.yamlCrossref 摘要里最重要的不是漂亮术语,而是这句意思:
持有 perpetual futures 的预期回报,来自当前 log-basis、对未来 spot 的预期误差,以及持有期内 futures-spot spread 的变化。
翻成人话:
这很关键,因为它把 short-cycle desk 常做的东西拆清楚了:
根据当前可得的 Crossref 摘要:
对 desk 的含义非常直接:
log-basis 值得当成 carry 主轴;price-volume 不需要神化成另一条独立 alpha,更自然的用法是先做 admission / ranking / sizing;这轮不能把 paper 讲得太满。
我们还没拿到稳定可读的全文,所以以下内容不能假装已经确认:
price-volume relevant factor 的精确定义;所以这轮更合理的做法是:
这份 2026 cryptoarb repo 在 strategies/spot_perp.py 里给出的逻辑,其实非常适合作为 desk 的第一版骨架。
代码核心逻辑:
abs(funding_rate) >= entry_threshold 才继续;fr * 3 * 365;这比“正 funding 就收租”高明的地方在于: 它先判断 carry 是否真实、是否持续、是否足够厚,最后才问要不要做。
源码里还有一层 basis z-score 过滤:
这对短周期 desk 非常重要。 因为 carry 交易真正亏钱的常见方式,不是 funding 本身没给钱,而是:
repo 的退出规则其实很朴素:
exit_threshold 下方,就平;max_hold_bars 就平。这很对。 当前 desk 更需要先回答: carry 本体 after-cost 能不能活,而不是一开始就把出场做成复杂 RL。
config/main.yaml 里,SpotPerpFunding 当前启用参数包括:
BTC, ETH, SOL, AVAX, LINK, DOGEbinanceentry_funding_threshold = 0.0000528762exit_funding_threshold = 0.0000118355expected_hold_bars = 13max_hold_bars = 53position_size_pct = 0.7178max_open_positions = 5min_expected_edge_bps = 0.4247inventory_risk_bps = 0.6046换算一下更直观:
entry_funding_threshold 大约是 0.53 bps / 8h;exit_funding_threshold 大约是 0.12 bps / 8h;expected_hold_bars = 13,对应大约 104 小时;max_hold_bars = 53,对应大约 17.7 天。这再次说明: carry 本体不是 1m scalping。 它天然是一个更慢的 alpha,但完全可以用短周期数据去做 admission、减仓、执行与 veto。
1m / 3m / 5m / 15m 的 desk 化读法更诚实的分层应该是:
15m / 5m 的 price-volume proxy1m / 3m 的微观结构与冲击控制也就是说:
price-volume proxy因为论文全文未得,price-volume relevant factor 的精确定义当前还不能硬抄。 所以 first-pass 应该老实用 proxy:
rv_short = ret_15m × rel_quote_volume_15mrel_quote_volume_15m = quote_volume / rolling_median(quote_volume, 96)pv_proxy = zscore(rv_short, 96)含义:
15m 的价格/量能流向完全反着你、而且还在加速,15m first-pass 比 1m 更对建议第一刀这样落:
15m 重算一次;pv_proxy 没有强烈反向;才允许进场。
这样更符合这条 alpha 的真实节奏。
5m 可以拿来加快 admission,不建议先上 1m如果 15m first verdict 正常,再下钻到:
5m 的 volume / impact proxy;1m / 3m 的 execution scheduling。但不要反过来。 先卷 1m 往往只是让你更早遇到滑点,而不是更早看见 alpha。
对每个候选资产 i:
basis_i,t = ln(mark_perp_i,t / spot_i,t)next_funding_i,t 或最近 funding carry proxycarry_score_i,t = z(basis_i,t) + z(expected_funding_i,t)k 个 funding observation 同号n 个 15m 更新里 carry_score 未跌破 admission thresholdpv_proxy 作为 admission:pv_proxy 明显顺着 carry 有利方向,允许正常仓位pv_proxy 中性,允许小仓位pv_proxy 强烈逆向,延迟或 vetonext bar 再执行,避免同 bar 幻觉第一轮别复杂化,先测三种:
carry_score < exit_thresholdnext funding 明显塌掉max_hold 到期如果想加第四种,再加:
pv_proxy 由支持转为强烈反向时,提前减半或平仓建议先用三层:
carry_score 分层(小/中/大仓)必须至少有:
至少做三档:
并且把成本拆开看:
15m same-venue spot-perp carry with price-volume admission15mz(log_basis) + z(next_funding)2~3 次 funding observation 同号,或最近 8~16 个 15m carry_score 未翻负pv_proxy 不得强烈逆向carry_score 跌破 exitprice-volume admission 能不能让同一条 carry 在 after-cost 下更稳,而不是只减少交易次数?在相同 universe、相同执行与相同成本口径下,只比较:
这是这条线最值得先跑的实验,因为它直接回答: 真正给你增量的,到底是 carry 本体,还是 admission 壳。
5m admission / 1m execution transfer5m 重新算 pv_proxy1m 做 TWAP / participation scheduling目的不是把 alpha 变成 1m alpha,而是测试: 更细执行,能否降低冲击而不稀释 carry。
建议顺序别花:
funding + log-basis 本体就不行,先停,不要继续给 admission 壳贴金funding + log-basis 可活,再看 price-volume proxy 是否提高:15m 可活,再把 admission 压到 5m1m / 3m 执行层最重要的一句: 先验证 carry 本体,再优化 admission;先验证 admission,再优化 execution。
很多时候你实际赚/亏的,更多来自:
所以评价一定要看 total return,不是只看 funding 到账。
price-volume 说成新 alpha这轮不该这么写。 更诚实的说法是:
price-volume 是 admission / sizing / veto 增强层源码里的 13、53、0.53 bps/8h 都有参考价值, 但应该拿去当量级感,不是直接按数字照搬。
如果一条 carry 策略只有在完美 maker 成本下才活, 那它不是 ready,只能算候选。
momentum 项目的直接意义这条线和现有 backlog 的关系很清楚:
1m / 3m scheduling对当前 desk,这条线最有价值的地方就是: 可以很快做 first verdict,而且 verdict 非常干净。