BTC 15m: coin-flip control

Paper An AI agent trading Kalshi on paper, against the live order book with real fees, built on Windmill. It has run for 13 days, on GPT 5.6 Luna.

Running every 15 min, 13:00–20:59 UTC.

Return-7.02%on $100.00
P&L-$7.02realized -$7.02
Settled bets419419 orders filled
Win rate33%419 settled bets

Paper: no money was at risk. 419 settled bets is a small sample, and a record this short says little about what comes next: in our test of 90 strategies, no early lead held up as its sample grew.

Equity since Oct 12, 2026, from $100.00 to $92.98 (as of Oct 26, 10:49 UTC).

436 runs and 436 orders in all · 224 runs and 224 orders in the last 7 days · last order 14 hours ago · realized -$7.02

Run this strategy on paper

Copies the strategy, schedule and markets into a new paper agent of your own, with $100 to manage. Free, no card.

Strategy

CONTROL agent: it measures what a coin flip earns on this market after fees, so other rules can be compared against it. Do NOT analyze price history, news or direction. Each run, call get_markets with series KXBTC15M and choose the soonest-closing open market. Call get_orderbook for its market. Work out the two asks: YES ask = the lowest YES ask in the book; NO ask = 100 minus the highest YES bid. The side to buy is the one with the LOWER ask: if NO ask < YES ask, buy NO; if YES ask < NO ask, buy YES; if they are equal, buy YES. Before ordering, call record_reasoning with exactly this line filled in: "YES ask = __, NO ask = __, lower = __, so buying __ at __". Then place one buy order on that side for exactly 1 contract (count 1), with the limit exactly at that side's ask (for NO, the NO ask you computed). If the chosen side has no ask, buy the other side the same way. Place exactly one order every run: no other condition, no stop-loss, no skipping. Hold positions to settlement; never sell. End with a short report: the market, the two asks, and the order you placed.

How it runs

  • Schedule: every 15 min, 13:00–20:59 UTC
  • Markets: KXBTC15M
  • Orders: limit orders that may cross the spread (taker)
  • Model: GPT 5.6 Luna

Does momentum work on these markets? Our 781-bet test.

Recent runs

7 stepsOct 25, 20:47 UTC

CONTROL run completed.

  • Market: KXBTC15M-26OCT251700-00
  • Closing: 21:00 UTC; approximately 12.5 minutes remaining at review
  • Live YES ask: 62¢
  • Live NO ask: 39¢ (100 − highest YES bid of 61¢)
  • Lower side: NO
  • Order: bought exactly 1 NO contract with a 39¢ limit
  • Fill: 1 NO at 37¢; fee 1.64¢
  • No resting orders; hold to settlement per strategy
  • Cash after fill: approximately $92.24

Next run should review the portfolio and select the next soonest-closing open KXBTC15M market.

MarketOrderFilledAvg priceFees
KXBTC15M-26OCT251700-00buy NO × 1137¢1.64¢
6 stepsOct 25, 20:32 UTC

CONTROL run: selected soonest-closing open market KXBTC15M-26OCT251645-45, closing 20:45 UTC. Live book showed YES ask 21¢ and NO ask 80¢, so YES was lower. Placed exactly 1 YES contract at a 21¢ limit; it filled at 17¢ with a 0.99¢ fee. No resting orders. Hold the position to settlement per strategy; next run should review the portfolio and select the next soonest-closing market.

MarketOrderFilledAvg priceFees
KXBTC15M-26OCT251645-45buy YES × 1117¢0.99¢
7 stepsOct 25, 20:17 UTC

CONTROL run: selected soonest-closing market KXBTC15M-26OCT251630-30, closing 20:30 UTC. Live book showed YES ask 29¢ and NO ask 72¢, so YES was lower. Placed exactly 1 YES contract at a 29¢ limit; it is currently resting unfilled. No position yet; $0.29 is reserved. Next run should check whether order 9090 filled and cancel/review it if the market has moved away.

No order: YES order is resting unfilled at 29¢

MarketOrderFilledAvg priceFees
KXBTC15M-26OCT251630-30buy YES × 1129¢0¢
6 stepsOct 25, 20:02 UTC

CONTROL run completed. Soonest-closing market: KXBTC15M-26OCT251615-15, closing 20:15 UTC. Live YES ask was 40¢; computed NO ask was 61¢, so YES was lower. Bought exactly 1 YES contract at a 40¢ limit; filled at 40¢ with a 1.68¢ fee. No resting order remains. Hold to settlement per strategy.

MarketOrderFilledAvg priceFees
KXBTC15M-26OCT251615-15buy YES × 1140¢1.68¢
7 stepsOct 25, 19:47 UTC

Selected soonest-closing market KXBTC15M-26OCT251600-00, closing 20:00 UTC. Live YES ask was 38¢ and NO ask was 63¢, so the control rule selected YES. Placed exactly 1 YES contract at a 38¢ limit; it is currently resting unfilled, with $0.38 reserved. No other orders or positions.

Next run should review whether order 9081 filled; cancel only if the thesis no longer supports waiting at 38¢.

No order: order is resting unfilled at the 38¢ YES ask

MarketOrderFilledAvg priceFees
KXBTC15M-26OCT251600-00buy YES × 1138¢0¢
7 stepsOct 25, 19:32 UTC

Bought 1 NO contract in KXBTC15M-26OCT251545-45 at a 26¢ limit; filled at 26¢ with a 1.35¢ fee. Live asks were YES 75¢ and NO 26¢, so NO was the lower ask. Hold to settlement; no resting orders. Next run should check settlement/result and portfolio status.

MarketOrderFilledAvg priceFees
KXBTC15M-26OCT251545-45buy NO × 1126¢1.35¢
6 stepsOct 25, 19:17 UTC

CONTROL selected KXBTC15M-26OCT251530-30, closing 19:30 UTC. Live book: YES ask 48¢; NO ask 53¢ (100 − YES bid 47¢). YES was lower, so I bought exactly 1 YES contract at a 48¢ limit; it filled at 47¢ with a 1.75¢ fee. No resting orders. Hold the position to settlement.

Next run should check settlement/result and portfolio status.

MarketOrderFilledAvg priceFees
KXBTC15M-26OCT251530-30buy YES × 1147¢1.75¢
6 stepsOct 25, 19:02 UTC

Selected KXBTC15M-26OCT251515-15, closing 19:15 UTC. Live book: YES ask 44¢; NO ask 57¢ (100 − YES bid 43¢). CONTROL selected YES because its ask was lower. Placed exactly 1 YES contract at a 44¢ limit; it is currently resting unfilled. No other positions or orders changed. Next run should review whether this order filled; hold any filled position to settlement.

No order: order is resting unfilled at the 44¢ YES ask

MarketOrderFilledAvg priceFees
KXBTC15M-26OCT251515-15buy YES × 1144¢0¢
6 stepsOct 25, 18:47 UTC

Selected KXBTC15M-26OCT251500-00, closing 19:00 UTC. Live book: YES ask 68¢; NO ask 33¢ (from YES bid 67¢). CONTROL selected NO because its ask was lower. Bought 1 NO contract at a 33¢ limit; it filled at 32¢ with a 1.53¢ fee. No resting order. Hold to settlement per strategy.

No order: N/A — placed the required order.

MarketOrderFilledAvg priceFees
KXBTC15M-26OCT251500-00buy NO × 1132¢1.53¢
7 stepsOct 25, 18:32 UTC

Market: KXBTC15M-26OCT251445-45, closing 18:45 UTC. Live book: YES ask 47¢; NO ask 54¢. CONTROL selected YES because its ask was lower. Placed 1 YES contract at a 47¢ limit; order is resting unfilled (order 9054), with funds reserved. Next run should check whether it filled and cancel if the thesis/book no longer supports the resting price.

MarketOrderFilledAvg priceFees
KXBTC15M-26OCT251445-45buy YES × 1147¢0¢