源文件:research/quant_digests/2026-03-27_1927_1s-book-horizon-sweep-alpha.md
1s 盘口失衡、microprice 偏移、主动/被动流与短时波动状态里,存在可学习的未来方向 edge;repo 把它实现成 BTC 的 long-only timing,但对 desk 更值钱的其实是「同一组微结构特征在 3m/5m/15m 到底能不能扛过成本」这条 raw alpha 母线这次看的是 kailiu0712 在 2026-03-15 发布的 GitHub 仓库 _-5-min-level-Directional-Prediction-for-Crypto-HFT_。
先直接回答这篇东西的 base alpha:
> 不是“LightGBM 预测方向”这种空话,而是:1 秒级盘口失衡、depth pressure、microprice-vs-mid、主动/被动成交流,能不能对未来几分钟的 BTC mid-price 漂移给出可交易的方向 edge。
repo 的实现方式很完整:
1s snapshotnegative / mild / positiveprob_positive - prob_negative 转成信号所以这不是单纯的“模型 demo”,而是一条可以明确拆解成 feature → label → model → signal → execution 的 raw alpha 骨架。
不过,对当前 desk 真正更值钱的地方,不是照搬 repo 的 long-only 回测,而是回答一个更实际的问题:
> 同一套 1s 微结构特征,放到 3m / 5m / 15m 的短周期方向 alpha 上,哪里开始有 gross edge,哪里成本后还能活?
这件事和当前素材池直接相关,因为最近 intake 里有不少 pairs / XS reversal / carry / lead-lag,但把超短微结构特征明确映射到更慢一点、可落到 short-cycle desk 的持有期,还值得继续补样本。
feature_engineering.py 里,repo 先从事件流重建订单簿,再抽取 1 秒级微结构特征。最值得记的不是某个模型参数,而是下面这几类特征:
best_bid / best_ask / mid / spread / micropricebid_depth_1 / ask_depth_1 / bid_depth_5 / ask_depth_5、depth entropy、HHI、slopeimbalance_1 / imbalance_5 / depth_pressure_5signed_trade_flow_1s、net_passive_flow_1s、net_order_flow_1s也就是说,repo 的 base alpha 不是“黑箱分类器”,而是一个很标准、很 desk 化的命题:
> 当盘口深度倾斜、microprice 偏移、主动买卖失衡和被动流撤单/补单一起朝一个方向共振时,未来几分钟 mid-price 更容易延续漂移。
这首先是 raw alpha,不是 filter。
README 和源码给出的主链路比较清楚:
mild 中性带不是固定死的,而是: max(MILD_RETURN_THRESHOLD, TRANSACTION_FEE_RATE * multiplier)
modeling.py 用 TimeSeriesSplit(n_splits=5),并且对 train/test、fit/validation 都加了与 prediction_horizon 等长的 purge gap。
signal = EWM((prob_positive - prob_negative) * (1 - prob_mild))
再用上一段滚动窗口的:
SIGNAL_SCORE_BUY_QUANTILE = 0.9SIGNAL_SCORE_CLOSE_QUANTILE = 0.1做买入/平仓阈值。
hft_backtesting.py 明确写的是:
best_ask 买入best_bid 卖出MIN_HOLD_SECONDS = max(60, PREDICTION_HORIZON // 3)这几个点拼起来以后,repo 真正给 desk 的不是“高命中率”,而是:
> 一套相对诚实的、避免时间泄漏、并且把成本提前写进标签和执行层的微结构 raw alpha 骨架。
repo 当前 config.py 里最关键的参数是:
PREDICTION_HORIZON = 180(约 3m)TRANSACTION_FEE_RATE = 0.001(单边 10 bps,round-trip 约 20 bps)SIGNAL_SCORE_WINDOW_MINUTES = 60BUY_QUANTILE = 0.9CLOSE_QUANTILE = 0.1MIN_HOLD_SECONDS = 60但更值得看的,是 repo 已经提交的 output_minute/overall_metrics_*.csv:
3m 版本:
341898.9s(约 31.6m)+0.253%-3.098%-4.12%15m 版本:
203691.4s(约 61.5m)+1.793%-0.223%-2.17%30m 版本:
184193.1s(约 69.9m)+2.003%+0.183%-2.13%这组数字最值钱的地方在于它回答了一个很硬的问题:
这比“accuracy 高不高”对 desk 更重要。
#### 限制一:它训练的是方向分类,但执行只做了 long-only 模型本身是三分类:negative / mild / positive。
也就是说,repo 明明已经在学:
但回测只把它变成了 long-only timing,没有对 negative 一侧做对称 short。
对 desk 来说,这意味着:
> repo 现在展示出来的,不是这条 raw alpha 的上限;真正应该测的是 long/short 对称版。
#### 限制二:artifact 版本和 config 存在不一致 config.py 里:
PREDICTION_HORIZON = 180(约 3m)VERSION = "_30m_from_1s_ticks_smoothed"同时 repo 又提交了 3m / 10m / 15m / 30m 多套输出文件。
这说明:
再加上原始输入文件 gemini_24h_analysis.csv 并未随 repo 一起发布,所以它是一个 高信号 research scaffold,但还不是 clean replication artifact。
如果问:为什么这篇比再补一个泛 filter 更值得?
答案是:因为它补的还是 raw alpha,而且补的是当前素材池里很需要的一条细分支——单资产、微结构、可往 1m/3m/5m/15m 迁移的方向型 alpha 骨架。
具体说有三点:
base alpha 很清楚,就是盘口压力和订单流能不能预测几分钟后 drift。
不是所有 1 秒级特征都该拿去做 1~3 分钟;这份 repo 给出的更像是一个 horizon sweep 实验框架。
特征表、purged CV、动态阈值、回测骨架都已经有了;对当前项目来说,直接把数据源替成 Binance/Bybit 公共 feed 就能开始 first verdict。
3m~30m 里留下可学习的 mid-price driftsignal_score > rolling 0.9 quantile 时,在下一条 quote 的 best_ask 进场;desk 版建议改成 p(pos)-p(neg) 的双侧 thresholdsignal_score < rolling 0.1 quantile 时,在下一条 quote 的 best_bid 平仓;另有最小持有时间约束|p(pos)-p(neg)| 分层,或 inverse-vol / edge-proportional sizing10 bps,这几乎决定了 3m/10m/15m 版的生死;必须重新跑 maker/taker 梯度对 desk 来说,最值得复用的有四件:
mild即便不照搬 repo 全部列名,也至少应该保留这三族:
imbalance_1 / imbalance_5 / depth pressure / microprice-midsigned trade flow / passive flow / net order flow这是最容易快速转译到 Binance/Bybit 公共 feed 的部分。
BTCUSDT perp 的对称 long/short 版本bookTicker + aggTrades,聚合成 1s180s / 300s / 900s 三档(约 3m / 5m / 15m)negative / mild / positive,中性带至少覆盖预计 round-trip costedge > q90 做多edge < q10 做空2 / 4 / 8 / 12 / 20 bps round-trip 五档不要一上来执着 3m。直接做一张 grid:
60s / 180s / 300s / 900s30s / 60s / signal-exit / 1x horizon / 2x horizontaker / maker-lite / maker-first输出只看三件事:
如果像 repo 一样出现 “预测 horizon 很短,但实际持有很长”,就说明这更像一条 slower drift timing,不是 ultra-fast alpha。
repo 现在最大的未测空白,就是它明明学了 negative,却没交易 short。
下一步必须单独回答:
negative 侧 precision / recall 是否比 positive 更稳定?PREDICTION_HORIZON 与 VERSION 不一致,说明 artifact 需要二次审计。15m 仍 gross 正、net 近平,先试 maker-first 和 edge buffer;若 3m gross 都弱,就不要继续在 execution 上硬救。kailiu07122026-03-15