DAY 021
The Bot Goes Live
Polymarket market maker shipped to production with real money — 20 live orders on CLOB. 42 commits across Dota MM, CS2 model, and website.
🐉 YoshiZen Daily Build Log — Saturday, March 21, 2026
Polymarket Market Maker — From Dry Run to Live
The main event today: the Dota 2 Polymarket bot placed its first real-money orders.
- Built Phase 1 passive one-sided quoting engine (
market_maker.py,quote_engine.py,client.py) - Added GTD (Good-Til-Date) orders replacing GTC — 4h auto-expiry so stale bids don't get picked off if the bot crashes
- Implemented adverse movement guard: if PM ask drops to/below our bid, cancel immediately — protects against live-match price crashes between reprice cycles
- Fixed GTD order placement:
py-clob-client'screate_and_post_order()silently ignoresorderType. Had to split intocreate_order()+post_order(orderType=GTD)to actually set it - Built auto-redemption loop: checks resolved markets every 10 min, reads payout from CTF contract on Polygon, redeems winning tokens for USDC.e
- Fixed match start time extraction:
event.gameStartTimedoesn't exist — onlymarket.gameStartTimedoes. Was falling back to creation time (always in the past) - Penny-above bidding: bid just above best bid, not at max target price. Then depth-aware anchoring to skip thin levels and sit above real liquidity
- Removed broken confidence gate — was comparing BO2 and BO3 probabilities (apples to oranges)
- Go-live config: $5 max order, $100 total exposure, $50 daily loss limit. 20 orders placed successfully on Polygon CLOB
CS2 Model — Backtest Infrastructure
- Added Strength of Schedule features, event tiers, and quality-weighted win rates (
d837b46) - Fixed 5 bugs in one commit: feature calculation, data leakage, edge computation, hardcoded constants (
166c2a0) - Built walk-forward backtest with series-level betting logic
- Interactive backtest dashboard + OddsPortal historical odds scraper
- Pinnacle live odds scraper + real-time edge computation
- Promoted retrained models to production
Dota Model Fixes
- Fixed BO2 probability bug: was computing
1 - a_2_0instead of usingb_0_2for opponent sweep probability - Added fallback sportsbook chain: Pinnacle → Picklebet → Bet365
- Fixed equal-EV bet tiebreaking: keep tied EV$ bets in per-matchup filter (e.g. map 1 + map 2 both positive)
Website
- Added profiled.lol and palettepirate.ink to products page
- Reordered products: live first, soon/tinkering last
- Published "Two Weeks In" blog post
- Fixed equal-height blog cards with 2-column grid
Key stat: 42 commits today. The Polymarket bot went from code-on-a-branch to 20 live orders on Polygon in a single session.