源文件:research/quant_digests/2026-04-12_2205_postcost-tradeable-label-admission-filter.md
perp rich spread fade + funding carry 这类 delta-neutral relative-value 交易:当 perp 相对 spot 偏贵时做 short perp + long spot,等待价差回归,并让 funding 作为 carry 补贴;这篇笔记讨论的不是 alpha 本体,而是“这笔 trade 扣完成本后到底值不值得做”的 admission 层主线材料仍来自 MengerWen (2026), _Deep Learning-Based Delta-Neutral Statistical Arbitrage on Perpetual Funding Rates_ 这个 GitHub 仓库,但这次不重复讲它上次那条 raw alpha 壳,而是单独拎出 repo 里对当前 desk 更通用、也更值得复用的一层:post-cost tradeable label。
翻成人话,它回答的不是“这笔 trade gross 有没有正收益”,而是:
> 如果我在 t 看到一组 funding / spread / vol / liquidity 特征,并在下一根才进场,这笔 delta-neutral 交易在未来 H 小时里,扣完手续费、滑点、gas 之后,净收益有没有超过可交易门槛?
这比直接拿 spread_z > 1.5、funding > 0 就开仓更适合我们现在的短周期素材池,因为 desk 里很多 relative-value / pairs / funding / basis 线索,最大的问题都不是“有没有一点回归”,而是那点 gross edge 根本不够填摩擦成本的坑。
labels.md、labels/default.yaml、labels/generator.py、signals.md 与 robustness summary,再用 Binance 公共 spot/perp 15m klines + fundingRate 做最近 90d 的最小快检,验证“gross 上看着有一点 edge”的 spread/funding 条件,在 repo 默认成本口径下几乎全部会被 after-cost 标签否掉。short_perp_long_spott 时刻看到特征,下一根 bar 才进场,避免同 bar 泄漏8h / 24h 两个 horizontradeable 阈值是 未来净收益 > 5 bps34 bps:4 × (5 bps taker + 3 bps slippage) + $2 gas / 10k notional ≈ 34 bpscombined_funding_spread 在 base 测试里 7 笔交易,累计回报 -0.2328%;min_signal_score 提到 1.0 后,最佳阈值情景的累计回报收敛到 -0.0664%;lstm 测试期 0 笔交易,反而说明“after-cost 标签 + 高门槛”会天然把可交易样本压得很稀疏。BTCUSDT 近 90d、15m 快检也支持这一点:spread_z_1d > 1 且 funding > 0),未来 8h 的平均 gross 只有 +1.80 bps;+0.48 bps;34 bps 成本口径,样本内 0 / 872 个 bar 能达到 tradeable > 5 bps;0% tradeable。这正是这层 label 存在的意义:别把“有一点回归”误判成“可以交易”。
这篇东西和当前 momentum desk 的关系很直接,因为我们最近 intake 的很多 raw alpha,本质上都属于“gross edge 很薄、成本/执行决定生死”的家族:
这些方向常见的误判是:
而 post-cost tradeable label 正好把这个顺序倒过来:
对当前 desk,它更像一层shared admission filter,可同时服务:
perp-quarter residual gapcross-venue basis differentialstacked z-score pairsPCA / OU residual fade而不是只服务一个单独仓库。
perp rich spread fade + funding carry(更广义上是 cost-fragile 的 spread / basis / pairs raw alpha)future_net_return_bps_H > min_expected_edge_bps 时允许交易H 可取 1h / 4h / 8h / 24hmin_expected_edge_bps 不是固定神数,应跟成本档位联动go / no-gosize-up / size-down对 5m / 15m 的 funding / basis / pairs 类 raw alpha,“future gross return > 0” 几乎没有研究价值,真正该先看的,是 future net return after cost 有没有超过最小可交易边际。
BTCUSDT 起步,再扩 ETHUSDT / SOLUSDT15m 为主,必要时补 5mshort_perp_long_spotspread_bps、spread_z、funding sign / bps、简单波动与流动性分桶1h / 4h / 8h forward gross bps1h / 4h / 8h forward net bpstradeable = net_bps > {0, 3, 5, 8}6 / 12 / 20 / 34 bpstradeable_ratemean_net_bps conditional on raw-alpha admission1h BTCUSDT;搬到 5m / 15m 时,funding accrual 的时间对齐要更谨慎。BTCUSDT,结论更像“为什么要先做 after-cost admission”,还不是跨资产定论。优先接:deribit perp-quarter residual gap、cross-venue net carry differential、PCA residual fade。
同一套 forward return,同步输出 6 / 12 / 20 / 34 bps 四档,别只看单一成本世界。
taker/taker 标签适合做 hard veto;maker/taker 标签适合做更现实的 desk admission。
如果 majors 都过不了 after-cost 标签,长尾更没必要急着扩。
这类主题里,模型更适合做 rank / veto / sizing,不适合先定义方向本体。
https://github.com/MengerWen/Deep-Learning-Based-Delta-Neutral-Statistical-Arbitrage-on-Perpetual-Funding-Rateshttps://github.com/MengerWen/Deep-Learning-Based-Delta-Neutral-Statistical-Arbitrage-on-Perpetual-Funding-Ratesdocs/labels.mdconfigs/labels/default.yamlsrc/funding_arb/labels/generator.pydocs/signals.mdreports/robustness/binance/btcusdt/1h/report.mdreports/robustness/binance/btcusdt/1h/summary.jsonhttps://api.binance.com/api/v3/klineshttps://fapi.binance.com/fapi/v1/klineshttps://fapi.binance.com/fapi/v1/fundingRatespot/perp klines + fundingRate5m / 15m8h 结算,短周期实验可按已知 funding 历史或窗口 proxy 对齐BTCUSDT15mspread_z_1d > 1 且 funding > 08h net return after costtradeable_rate 是否大于 0,再谈模型或更复杂 admission