← Projects

Kalshi market-making bot

Solo project · Nov 2025–present

A fully-automated market-making system I designed, built, and run on Kalshi's prediction markets.

~$64K
Net profit, two accounts (Jan–Jun 2026)
5.9
Annualized Sharpe
88%
Green days (157 of 179)
70.6%
Win rate over 288K fills
0.74%
Max drawdown, peak-to-trough

What it does

The system quotes two-sided prices on Kalshi event contracts, posting both a price it will buy at and one it will sell at, and earns the gap between them (the bid–ask spread) while keeping inventory and risk inside tight bounds. It also picks its own markets: scanner tooling surfaces candidate markets worth quoting and feeds a config pipeline that regenerates and hot-deploys per-market parameters. The bot runs unattended as a long-lived service, reacting to the order book in real time and carrying positions into contract settlement.

How it's built

Details about my market-selection criteria, signals, and parameter values are kept proprietary.

Results

Between January and June 2026 the two accounts booked $64,204 in combined net profit on 287,920 fills across 18,306 distinct markets. The returns were steady enough to run at a 5.9 annualized Sharpe (return relative to how much the equity swung): 157 of 179 trading days closed green (88%), the worst day lost $271 against a best day of $12,213 — Super Bowl Sunday, and most of that came not from the game but from the half-time-show and stadium-attendance prop markets. The deepest peak-to-trough drawdown was $472, under one percent of peak equity. The bot went live in November 2025; profits before January were negligible and aren't included in these figures.

Super Bowl Sun.$0$20K$40K$60KJanFebMarAprMayJun
Combined cumulative net P&L, both accounts, January through June 2026, computed from my full trade exports. The step in early February is Super Bowl Sunday, the single best day.
AccountNet P&LWin rateTradesMarkets
Account 1$39,03670.5%159,24916,469
Account 2$25,16870.7%128,67112,176
Performance summary for Account 1: $38,430 net profit, 70.35% win rate, 149,549 trades, 0.5-day average hold, Jan–Jun 2026.
Account 1 — cumulative P&L and performance summary, as of end of June 2026.
Performance summary for Account 2: $24,524 net profit, 70.15% win rate, 120,173 trades, Jan–Jun 2026.
Account 2 — the same summary, second live account.

The bot trades on live credentials, so the source isn't public. The chart and statistics come from my full trade exports; the two panels above summarize each live account. Everything is current as of the end of June 2026.