源文件:research/quant_digests/2026-04-03_0908_kalshi-strikegap-binary-mispricing-alpha.md
README.md + backtester.py + train.py + data/sample_features.csv)+ Kalshi / Coinbase 公共数据路径这轮看的是一个 2026-02-28 创建 的小型新仓库:kapelame/kalshi-crypto-bot(GitHub 目前约 3 stars,但代码很短、可读、可直接拆策略)。
repo headline 写的是 Kalshi 15-minute crypto prediction market trading framework。表面上它更像一个“数据采集 + 回测 + paper trader + dashboard”的壳子,而且 README 还明确说 live trader 里的 your_strategy() 是空的。
但真正值得 desk intake 的,不是“框架已经能下单”,而是:
backtester.py 里其实已经写出一条 可独立复现的 raw alpha 骨架,不是纯空壳;fair probability - quoted probability 的可交易偏离。翻成人话: 别把它看成“Kalshi 工具箱”。对我们更重要的是:它已经把一条 15m 二元合约 mispricing 策略,拆成了 signal / entry / sizing / fee / risk 的完整骨架。
这轮的 base alpha 很清楚:
> 外部现货价格路径与当前合约参考价(floor strike)共同决定“这 15 分钟最终涨/跌”的公平概率;而 Kalshi 的当前合约中价并不会每一秒都完全跟上这条公平概率,所以会留下一个可交易的二元错价。
因此它不是:
它是一条可以单独站住的 cross-market / binary-probability / fixed-expiry raw alpha。
结合当前文档与最近 digest 节奏,这轮有三点价值:
如果要再说得更直白一点: 现在更值得补的是“能直接下注的 15m raw alpha”,而不是继续给现有策略找第 N 个 veto。
README 把交易对象说得很清楚:
15m crypto contracts;yes_bid=24 就是大约 24% implied probability。数据采集器默认:
2s 轮询 Kalshi 市场 + Coinbase 真实价格;data/sample_features.csv 我直接拉下来核过,实际有 2,470 行、67 列;mid / spread / floor_strike / time_to_expiry / real_price / price_vs_strike_pct / ob_imbalance / mom_5s/15s/30s 等字段。backtester.py 的默认风控参数很具体:
$1005% bankroll15% bankroll2 个资产-15%4%0.25~0.75 的合约180~700s 的窗口入场4c15%这很关键,因为它说明: 这不是“先拍方向、风控以后再补”的想法单;它已经是一条完整策略壳。
repo 使用 Kalshi 官方风格的 fee 近似:
ceil(0.07 * contracts * P * (1-P) * 100) / 100ceil(0.0175 * contracts * P * (1-P) * 100) / 100这意味着在 P=0.5 附近,单合约手续费最高:
$0.02/contract$0.01/contract我顺手看了 sample 数据里的 spread:
spread 均值约 1.59c,90 分位约 3c1.83c,90 分位约 3c2.07c,90 分位约 3c2.33c,90 分位约 4c所以 repo 的 max_spread = 4c 并不是随便拍出来的,它大致对应了 sample 里“还能交易、但已经接近宽价尾部”的边界。
backtester.py 里的 rule_strategy() 实际就是这条 alpha 的第一版:
price_vs_strike_pctob_imbalance作者给的组合权重甚至都写死了:
trend_15m * 5trend_30m * 3price_vs_strike_pct * time_factor * 2settlement_biasob_imbalance * 0.01然后把综合信号通过 tanh 映射成一个 estimated_p,再直接和市场中价 mid 比:
estimated_p > mid → 买 YESestimated_p < mid → 买 NO这就是一条完整的 fair probability - market mid raw alpha。
train.py / backtester.py 里的 ML 版本,本质上没有改 base alpha,只是把公平概率估计器从规则版换成:
训练字段大约 14 个核心特征,包括:
midspreadtime_to_expirytime_to_expiry_pctob_imbalanceprice_vs_strike_pctvolumeoimom_5s / 15s / 30sbtc_mid_ctxbtc_leadmid_decisiveness而且作者评估口径也比较老实:
accuracyBrier scorecalibrationedge analysis这对我们有个很重要的启发: 第一轮根本不需要上复杂模型;只要先验证 estimated_p - mid 是否在 edge decile 上单调变好,就足以判断这条 alpha 本体值不值得继续。
虽然都属于 prediction market / binary 交易,但这轮跟 04-02 那篇 Polymarket digest 不完全一样:
所以这轮更适合作为一个单独的 raw alpha intake,而不是重复写 prediction-market lead-lag。
25%~75%)、时间还够(180~700s)、spread 不太宽时更值得开机1m / 3m / 5m / 15m 的关系15m 主信号这条线的交易载体本身就是 15m binary contract,所以:
15m 是主持有期 / 结算时钟 / alpha 本体;5m 适合拿来重写 rule signal(例如 ret_5m, ret_15m, ret_30m);3m / 1m 更适合做 execution timing、edge persistence、二次确认。即使最后不下 Kalshi,这条材料也有 desk 价值,因为它等价于在问:
> “当一个 hard-expiry 概率市场吸收 crypto 现货信息不够快时,能不能把这份滞后反过来当外部 price discovery 载体?”
这层读法后面可迁移到:
但这轮要坚持一个边界: 本篇主 digest 讨论的是 raw alpha 本体,不是把它降级成 filter。
sample_features.csv2s 采集一次15m 一个新周期time_to_expiry 是秒级倒计时,因此非常适合做短周期硬时钟实验第一轮可以先不碰 live trading,只做一个 honest baseline:
BTC / ETH / SOL / XRP2~7 天新数据ret_1m / 3m / 5m / 15mprice_vs_strike_pctob_imbalancespreadtime_to_expiryp_fairedge = p_fair - mid1m / 3m / 5m不要直接照搬 5 秒级 mom。 第一步更适合做:
ret_1mret_3mret_5mret_15mprice_vs_strike_pctspreadtime_to_expiry看 edge decile 是否仍然单调。
price_vs_strike_pct 和外部趋势拆开做 ablation至少分 4 组:
price_vs_strike_pctprice_vs_strike_pct + 现货趋势ob_imbalance要回答的核心问题是: 真正的 alpha 是“离 strike 多远”本身,还是“外部价格趋势告诉你它会不会继续越过 strike”?
time_to_expiry bucket把样本切成:
> 10m5~10m< 5m大概率 edge 不会均匀分布在整段生命周期里。 如果只有某个 bucket 存活,就别假装它是全时段 alpha。
这类 binary 市场很容易死在成本上,所以必须一开始就给:
三组同时看。
如果 Kalshi 盘口容量太薄,就再做一版映射实验:
Kalshi fair-probability error 当作外部信号;1m / 3m / 5m return 有没有信息增量。这样就算 Kalshi 自身容量一般,它也可能变成一个 外部 alpha sensor。
2470 行,明显不够给 production verdict;它更像一个“今天就能开工”的 starter kit。所以我对它的定位是: 高可复现度的 raw alpha skeleton,适合先做 first verdict;是否能进实盘池,要靠更长样本与 cost ladder 决定。
kapelamekalshi-crypto-botREADME.md:<https://raw.githubusercontent.com/kapelame/kalshi-crypto-bot/main/README.md>backtester.py:<https://raw.githubusercontent.com/kapelame/kalshi-crypto-bot/main/backtester.py>train.py:<https://raw.githubusercontent.com/kapelame/kalshi-crypto-bot/main/train.py>data/sample_features.csv:<https://raw.githubusercontent.com/kapelame/kalshi-crypto-bot/main/data/sample_features.csv>这份 2026 Kalshi repo 最值钱的不是“预测市场基础设施”,而是它已经把一条可快速复现的 15m raw alpha 摆在桌上:外部 spot trend + strike gap -> fair YES probability,再去交易 fair probability - market mid 的回补。先做 cost-first 的 first verdict,很值得。