CMF-2

50.5M dual-stream model for 15-minute Polymarket crypto binaries.

Fast tape is Binance USDT-M. Slow tape is the Polymarket CLOB. The policy buys a token only when calibrated P(resolve UP) clears the displayed offer.

Code: github.com/shubhxho/polymarket-model
Card: shubhxho.github.io/polymarket-model
Windows: shubhxho/cmf-15m-binance

Files

file what
fusion.safetensors CMF-2 weights, 202 MB F32
model.json architecture + train config
metrics.json last held-out eval
cmf2-hero.png / cmf2-eval.png / cmf2-arch.png launch cards

Held-out simulator (80 episodes)

Same book for every policy. Share PnL after paying bid/ask. Not live Polymarket fills.

policy mean PnL Sharpe trades/ep P(UP)
CMF-2 +1.13 2.94 1.24 92.3%
lag oracle +1.76 4.19 0.99 โ€”
random โˆ’7.40 โˆ’44.4 60.7 โ€”

Train was 3.57 hours on Apple Silicon MLX (chronological split, EMA, val/best-ckpt, utility fine-tune, temperature scale). About 64% of oracle PnL.

Load

uv pip install huggingface_hub
hf download shubhxho/cmf-2 --local-dir checkpoints
from pathlib import Path
from cmf.io import load_bundle

model, cfg = load_bundle(Path("checkpoints"))

Paper is default. Live CLOB V2 needs CMF_LIVE=1 and an explicit arm.

What this is not

Planted-lag simulator. Assumes you can hit the quote you see. Not a live Sharpe and not a claim that 92% expiry accuracy transfers to production 15-minute markets.

Downloads last month

-

Downloads are not tracked for this model. How to track
MLX
Hardware compatibility
Log In to add your hardware

Quantized

Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support