← 返回 Quant Digests · 站点首页

别把这份 2026 spot-basis engine 只读成套利后台:对 short-cycle desk,更该先测的是「funding-stability E24 score × profit-lock exit」这条完整 carry raw alpha

更新时间:2026-04-03 03:22 UTC 研究时间:2026-04-03 03:20 UTC 类型:2026 GitHub 新 repo source audit(`README.md` + `backend/core/spot_basis_runtime/scanner.py` + `scoring_config.py` + `backend/core/spot_basis_backtest/engine.py` + `params.py` + `backend/core/spot_basis_auto_engine/open_cycle.py` + `profit_lock.py`) 主题标签:raw-alpha/carry/funding/basis/spot-perp/same-underlier/market-neutral/funding-stability/e24-net-profit-lock/drawdown-guard/liquidity-penalty/capacity-score/5m/15m/3m/1m/repo/public-data/cost/risk 证据类型:repo-based(而且是**已把 entry / exit / sizing / risk / cost 写进代码**的完整策略壳)

源文件:research/quant_digests/2026-04-03_0320_fundingstable-spotbasis-profitlock-alpha.md

1. 这次为什么选它

这轮默认优先补 能直接落地为完整策略 的 raw alpha,而不是再做纯解释型材料。

如果只问一句“这篇东西的 base alpha 是什么?”,这次答案很清楚:

> base alpha = funding/basis carry。 > 但不是粗糙版“谁 funding 高就去收谁”,而是 只做 funding 稳定、扣完成本和风险惩罚后,未来 24h 期望净收益仍为正 的那部分 spot-perp carry。

它比继续补一个普通 gating 主题更值得 intake 的原因也很直接:

  1. 它是 raw alpha 本体,不是 filter 伪装成 alpha;
  2. 它给的是完整策略链条,不是一句“funding 有预测力”;
  3. repo 里已经把:

对 desk 来说,这种材料的价值很高,因为它不是再给一个“可以以后再想怎么交易”的概念,而是直接往 复现素材池 / 实盘组件池 里塞一条可以拆件测试的策略壳。

2. 这次看的材料

2.1 主材料:完整 repo

2.2 本轮重点审的源码文件

3. 先把 base alpha 说死:这是 carry,本体不是 overlay

这条策略的原型很简单:

但 repo 的关键提升在于:

> 它不是把 funding 当单一排名字段,而是把“未来 24h 可兑现净收益”显式写成 score。

所以这不是:

它是一条明确的 same-underlier spot-perp market-neutral raw alpha

4. repo 里真正值得拿来抄的,不是“spot/perp 套保”四个字,而是这套 E24 严格打分

4.1 机会扫描不是只看当前 funding,而是先补近 3 天已结算 funding 历史

scanner.py 里最重要的一件事是:

这意味着它的基本哲学不是:

> “现在 funding 高,冲。”

而是:

> “现在 funding 看起来高,但它到底稳不稳、翻不翻符号、能不能覆盖手续费和 basis 风险?”

这个思路对 short-cycle desk 很重要,因为很多 funding carry 死法都不是“方向看错”,而是:

4.2 它把 未来 24h 净收益 显式写成了 entry 的核心变量

scoring_config.py 里的核心变量是:

翻成人话:

  1. 先估计未来 24h 这条 carry 大概能赚多少;
  2. 再扣掉摊销手续费;
  3. 再扣 basis/liquidity/instability/stale/period uncertainty 等风险罚分;
  4. 然后乘上 “我有多确信它稳定”“它能装多大仓位”

这比很多 funding 排名逻辑高一层,因为它避免了两个常见错觉:

4.3 代码里的几个关键数值,值得直接抄成第一版实验参数

repo 默认参数里最有用的几组数:

这些数字未必是我们的最终最优值,但非常适合作为 desk 第一个最小可跑版本的默认超参。

5. 这条 raw alpha 的信号骨架,其实已经比很多“论文 + repo”组合更完整

5.1 Entry:不是“正 funding 就开”,而是 正的可兑现净 carry 才开

从代码逻辑看,第一版可以直接抽象成:

Entry 条件

  1. 标的同时有可交易 spot 与 perp;
  2. 近 3 天 funding history 足够;
  3. e24_net_pct_strict > 0
  4. confidence 达标;
  5. capacity 达标;
  6. impact、basis、stale 风险不过界;
  7. 连续若干轮确认后才真正 rebalance / open。

对我们 desk,这个写法最大的现实意义是:

> 它把 carry 从“慢频观念”改写成了“每 15m 可以重新审核一次的净收益排名问题”。

5.2 Exit:repo 真正有价值的,是它没把平仓写成“funding 变负就跑”

profit_lock.py 里最值得抄的是这个想法:

也就是:

> 如果本来预计未来 24h 才能赚到的钱,spread 现在已经提前兑现出来了,那就别再恋战,先把钱落袋。

这对 short-cycle desk 很关键,因为很多 carry 仓并不是死在 funding 本身,而是死在:

5.3 Risk:它把 production 里最常见的几种死法都单独做了 guard

open_cycle.py 里有几类 guard,都是很 desk-friendly 的:

  1. API fail circuit breaker
  1. hedge mismatch repair / fallback close
  1. NAV stale guard
  1. profit lock exit
  1. portfolio drawdown soft / hard stop
  1. basis shock exit
  1. stale-data risk reduce

这套东西的意义不是“好复杂”,而是:

> 它说明这条 carry 已经不是想法阶段,而是接近生产阶段的策略壳。

6. 对 short-cycle(1m / 3m / 5m / 15m)该怎么诚实地理解它

这里必须说实话:

但这不等于它和短周期 desk 无关。

更准确的读法应该是:

6.1 15m / 5m 是主工作频率

最自然的第一版是:

6.2 它适合当“慢 alpha + 快执行壳”

也就是说:

这和把外部低频变量硬装成逐 bar directional alpha 不一样。

这里的 carry 本体本来就可独立赚钱; 短周期做的是 执行和风控优化,不是替它编故事。

7. 第一版最小实验,建议直接照 repo 思路压成 desk 版

7.1 数据口径

公开可得数据

更新频率

最小可复现实验口径

7.2 Entry / Exit / Sizing / Risk / Cost

Entry

Exit

Sizing

Cost

7.3 第一批该看的结果,不是年化,而是这 6 个数

  1. funding pnl / gross pnl 占比
  2. basis pnl 是否经常把 funding 吃掉
  3. profit-lock 触发占比
  4. avg hold time
  5. fee / gross edge 比例
  6. hard stop / stale close / basis shock 触发频率

如果这 6 个数难看,说明这条 alpha 不是“没故事”,而是 不可执行

8. 我认为这条策略最值得 desk 抄的,不是 carry 本身,而是这三个“旁支组件”

虽然主 digest 选的是 raw alpha,但 repo 里有三个拆件也很值得单独复用:

8.1 E24 net 思路

把一条 raw alpha 改写成:

> 未来 24h 预期收益 - 成本 - 风险罚分

这套表达方式,其实也能迁到:

8.2 profit-lock 思路

如果当前 spread 已经把未来预期收益提前兑现,就先平。

这不只适用于 carry,也适用于:

8.3 confidence × capacity 双乘法

很多研究只排 alpha,不排“能装多大”。

这个 repo 的可贵之处在于:

这比只看 signal strength 更接近 production 思维。

9. 这条 alpha 最可能死在哪里

9.1 funding 频率天然偏慢,别强行装成 1m directional alpha

如果把它误读成:

大概率会把它做坏。

更合理的是:

9.2 basis shock 可能比 funding 更大

很多 carry 回撤不是 funding 不够,而是:

所以第一轮 backtest 一定要把:

9.3 fee amortization 假设很关键

repo 里把 round-trip fee 按 hold_days 摊销,这个思路对,但:

e24_net_pct 很容易被高估。

所以 desk 第一轮要额外跑:

10. 结论

如果只看 headline,这个 repo 很容易被读成“又一个套利后台”。

但对我们 desk,更值得 intake 的其实是:

> 把 same-underlier spot-perp carry 写成 E24 expected net edge 排名问题,再用 profit-lock + drawdown/basis/stale guards 把它补成完整策略。

一句话总结:

而且这次不是“勉强能落地”,是真正已经具备:

全链条定义的那种可落地。

11. 下一步怎么测(直接执行版)

Step 1:做最小离线回测

Step 2:拆 PnL 归因

至少分成:

Step 3:加 5m 执行 veto

当以下任一发生时,延后开仓或减半:

Step 4:再决定是否下钻到 1m / 3m

如果 15m 版本本身站不住,没必要把它强压成更快频率; 如果 15m 版本能站住,再看 1m/3m 是否只改善执行,而不是改变 alpha 本体。

12. 来源链接