源文件:research/quant_digests/2026-04-21_2120_pca-eigenportfolio-residual-fade-alpha.md
README.txt + src/pca_engine.py + src/s_score.py + src/strategy.py + src/backtester.py)+ Binance USDⓈ-M public-data portability probe(8 liquid majors,15m/5m)这轮主来源是一个 2026 更新的 GitHub 研究仓:sophie-lan / crypto-pca-statarb。repo 描述很直接:把 Avellaneda & Lee (2010) 的 PCA statistical arbitrage 框架搬到 crypto assets 上,流程包括:
一句话先回答本轮选题门槛:
> 这篇东西的 base alpha 是什么? > > 答:是 PCA common-factor residual mean reversion。 > > 翻成人话:先把“大家一起涨跌”的横截面共同因子拿掉,再交易某个币相对共同因子的短期过冲回归。
这不是 filter,也不是 regime gate。PCA 只是去噪和中性化工具,真正的 raw alpha 是:残差偏离后回归。
src/pca_engine.pysrc/residual_model.pysrc/ou_estimator.pysrc/s_score.pysrc/strategy.pysrc/backtester.py10.1080/14697680903124632repo 的结构很适合 desk intake,因为它不是只给一个“相关性热力图”,而是把 stat-arb 完整链条拆出来了:
src/pca_engine.py 的默认参数:
240 小时;F1/F2 factor returns。这一步的作用不是预测,而是回答:
> 当前横截面里,最主要的共同涨跌方向是什么?
repo README 写明:先做 regression-based residual extraction,再估计 OU 参数,再生成 s-score。src/s_score.py 里把 residual 累计成 X_t,再用:
``text s = (X_t - m) / sigma_eq ``
其中 m 是 OU 均值,sigma_eq 是均衡标准差。
人话就是:
src/strategy.py 的默认阈值很清楚:
s <= -1.25:buy open;s >= +1.25:sell open;s >= -0.75 平;s <= +1.0 平;trade_size = 1.0。如果翻成 desk 版本:
最近已经写过不少 stat-arb / pairs / residual 类主题,但这轮有一个明确新增量:
对 crypto 短周期,这一点有意义:有些时段是 BTC 领涨领跌,有些时段是 SOL / meme / AI / L2 主题带动。固定 BTC anchor 可能漏掉主题 beta,而 PCA 更像自动提取“当前市场最主要的共振方向”。
这条不是 breakout / trend / OI confluence / market-making execution 壳,而是明确补:
这正好符合当前 bot7 的 intake 目标:不要只在单币技术形态里内循环。
repo 自己也写得很诚实:
> Transaction costs and slippage are not modelled. All backtest results assume zero fees and perfect execution at hourly close prices.
所以这份 repo 对我们最有价值的不是它的图,而是工程骨架:
但对于 5m/15m crypto,原始版本必须先过三关:
15m/5m public-data first probe我用 Binance USDⓈ-M public klines 做了一个轻量迁移实验,目标不是宣称已经复刻 repo,而是先回答:这条 residual fade 壳在 15m/5m 上有没有 gross 边,扣粗成本后离可交易差多远?
BTC/ETH/SOL/BNB/XRP/DOGE/ADA/LINK15m 与 5m15m 参数:96 bars(约 1 天)72 bars192 bars|z| >= 2.0|z| <= 0.5 或最多持有 8 根5m 参数:144 bars(约 12 小时)120 bars288 bars|z| >= 2.2|z| <= 0.5 或最多持有 12 根8 bps。产物:
reports/artifacts/quant_digests/pca_statarb_probe_summary_2026-04-21.csvreports/artifacts/quant_digests/pca_statarb_probe_detail_2026-04-21.csv核心数字:
| interval | bars | trade_count | gross_mean_bps/bar | gross_cum_pct | gross_sharpe | gross_bps/trade | rough_net_bps/trade | win_rate | avg_hold | |---|---:|---:|---:|---:|---:|---:|---:|---:|---:| | 15m | 1656 | 580 | +0.827 | +14.49% | 10.997 | +2.28 | -5.72 | 57.24% | 1.38 bars | | 5m | 1984 | 494 | +0.183 | +3.63% | 7.674 | +1.07 | -6.93 | 53.64% | 1.45 bars |
这轮 first probe 的结论很清楚:
15m 与 5m 的 gross 都是正的,且 win rate 略高于 50%;1.4 根 bar,粗扣 8 bps 后每笔明显负;所以本轮不应该把它判成“可直接 naked 上线”。更准确的 intake 是:
> PCA residual overextension 是一条值得保留的 raw alpha 候选;但要进入实盘候选池,必须先把 exit 改慢、提高 entry band、加 maker-first / batch rebalance 来降低 turnover。
这条壳能成立,不靠神秘模型,靠三件事:
换句话说,这条 alpha 不是“币跌多了就买”。它是:
> 在整个市场共同波动解释不了的部分里,找最极端的短期偏离。
这比普通 RSI / BB touch 更像 stat-arb,也更适合和已有 single-asset alpha 做组合。
每个 15m 父信号点:
1~3 天的 15m returns 做 rolling PCA;1~3 个 common factors;z <= -entry_band:long residual loser;z >= +entry_band:short residual winner;最小版本:
±0.5 内平;4~12 根强平。但本轮 probe 显示 exit 太快会被 cost 吃掉,所以下一版更建议:
2.5 / 3.0;time-bucket rebalance;0.5 就全平,先测 partial exit。最小版本:
增强版本:
min(|z|, z_cap);必须补的 risk layer:
这条策略最大风险就是 turnover。下一轮必须做:
0 / 2 / 4 / 6 / 8 / 10 bps friction ladder;5m child execution 是否能改善 15m parent 的成交;1m/3m/5m/15m 短周期研发的关系我的判断:
15m 更适合作为 parent signal;5m / 3m 更适合作为 child execution / confirmation;1m 不适合直接重算 PCA 主信号,容易被噪音和手续费打爆;1m/3m 来做 maker-first、taker-veto、order-book confirmation。这条 alpha 对当前素材池的价值主要有两个:
15m parent + 5m child execution。父信号保持 PCA residual z-score,不改 alpha 本体;child 只负责:
1~3 根;至少测:
1.5 / 2.0 / 2.5 / 3.0;0.5 / 0 / opposite-cross;4 / 8 / 16 / 32 bars。目标不是最高 gross,而是找到 net_bps/trade > 0 的区域。
PCA 策略需要横截面宽度。8 个币只够 sanity check,不够 production admission。
每次开仓后检查组合对 PC1/PC2 的暴露;如果 residual 策略最后仍然暴露在 PC1 上,说明所谓 market-neutral 是假的。
同一 universe、同一 cost ladder 下比较:
这会直接回答:PCA 的复杂度有没有真正换来更干净的 alpha。
这轮我会把它放进研究池,但不是以“马上实盘”的形式,而是以 raw alpha skeleton / stat-arb parent signal 的形式保留。
最短判断:
> PCA residual fade 能提供清楚的 cross-sectional mean-reversion raw alpha;15m first probe 有 gross edge,但当前退出太快、单笔太薄,下一步必须围绕 entry band、holding time、maker-first execution 和 cost ladder 做 admission。