Overview
The Polymarket Bot displays real-time trading information in a structured console interface. The display updates every second and consists of three main sections:- Header - Current market state and trading decision
- History Table - Last 15 intervals with predictions and results
- Stats Line - Aggregate performance metrics
Live Output Example
Header Fields
BTC Price
BTC Price
The live Bitcoin price from Polymarket’s Chainlink oracle, updated every second.Color coding:
- Green - Price is above the strike (UP territory)
- Red - Price is below the strike (DOWN territory)
- Yellow - Price equals strike or data unavailable
Strike
Strike
The target price for the current 5-minute market interval, fetched from the Vatic Trading API.BTC must close above this price for the market to resolve as UP, or below for DOWN.
Time
Time
Countdown timer showing minutes and seconds remaining until the current interval closes.Format:
M:SS (e.g., 2:56 = 2 minutes 56 seconds)Key timestamps:- 4:30 - Interval opens, data collection begins
- 1:00 - Early prediction captured (primary trading signal)
- 0:30 - Final prediction captured
- 0:00 - Interval closes, result determined
[LIVE] / [....] / [OFF]
[LIVE] / [....] / [OFF]
Connection status indicator:
- [LIVE] (green) - WebSocket connected, receiving live data
- […] (yellow) - Connecting or reconnecting
- [OFF] (red) - Disconnected, no live data
Prediction
Prediction
The model’s current prediction, always visible even during abstention.Format:
direction CONFIDENCE%Examples:^ UP 80%- 80% confident BTC will close above strikev DN 95%- 95% confident BTC will close below strikev DN 55%- Only 55% confident (low confidence)
- 75%+ - High confidence, strong signal
- 60-75% - Moderate confidence
- 50-60% - Low confidence, weak signal
APUESTA / ABSTENCION
APUESTA / ABSTENCION
The bot’s trading decision for the current interval.When betting:
APUESTA: SUBE(green) - Betting on UPAPUESTA: BAJA(red) - Betting on DOWN
ABSTENCION(yellow) with reason in parentheses
insufficient_data- Less than 50 price ticks collecteddead_zone- Model probability too close to 50% (within 10pp)anomalous_volatility- Volatility exceeds 2x mean (unusual market)cold_streak- Accuracy dropped below 40% recentlyinsufficient_ev- Expected Value less than 5%insufficient_margin- Edge less than 15 percentage pointsdrawdown_suspension- In RED or CRITICAL drawdown level
Market (q)
Market (q)
Polymarket’s UP token price, representing the market’s implied probability that BTC closes above the strike.Example:
Market: 10.0% means the market thinks there’s only a 10% chance of UP.If our model predicts 85% DOWN (15% UP) and the market shows 10%, there’s a 5pp edge.EV (Expected Value)
EV (Expected Value)
Profit expected per dollar wagered, calculated as
(p - q) / (1 - q) for DOWN bets or (p - q) / q for UP bets.Color coding:- Green - EV > 5% (excellent)
- Yellow - EV 0-5% (marginal)
- Red - EV < 0 (negative edge)
EV: +9.7% means we expect to earn 1 wagered.Edge
Edge
Difference between model probability and market probability in percentage points.Formula:
p - qExample:- Model: 85% DOWN (15% UP)
- Market: 10% UP
- Edge: 15% - 10% = +5pp
Bankroll
Bankroll
Current trading capital available for betting. Tracks wins/losses over time.Starts at configured initial value (default $100).
Drawdown
Drawdown
Distance from the all-time high bankroll (high-water mark).Levels:
- [GREEN] - 0-10% drawdown (normal operations)
- [YELLOW] - 10-20% drawdown (cautious mode)
- [RED] - 20-30% drawdown (defensive mode, trading suspended)
- [CRITICAL] - 30%+ drawdown (all trading halted)
Bet
Bet
Recommended bet size from the fractional Kelly criterion, adjusted for model accuracy and drawdown.Shows
-- during abstention or when not trading.Kelly a (alpha)
Kelly a (alpha)
Fraction of full Kelly used for bet sizing, based on model’s Brier Score tier:
- Brier < 0.15 → alpha = 0.25 (aggressive)
- Brier 0.15-0.20 → alpha = 0.15 (moderate)
- Brier 0.20-0.25 → alpha = 0.08 (conservative)
- Brier > 0.25 → alpha = 0.03 (defensive)
History Table Columns
| Column | Description | Notes |
|---|---|---|
| # | Sequential interval number | Increments every 5 minutes |
| Target | Strike price for this interval | From Vatic API |
| Final | BTC price at interval close | From Chainlink oracle |
| Result | UP or DOWN | Green = UP, Red = DOWN |
| Early 1m | Prediction at 60s before close | This is the trading metric |
| E.Ac | Early accuracy | OK = correct, MISS = wrong |
| q | Polymarket UP token price | Market probability |
| Bet | Bet size in USD | From Kelly criterion |
| Pr 30s | Prediction at 30s before close | Latest prediction |
| F.Ac | Final accuracy | OK = correct, MISS = wrong |
Why Early 1m Matters
The Early 1m prediction is the most important column because:- Real trading signal - This is when you’d actually place bets (60s before close)
- Sufficient data - Model has 4 minutes of price history
- Time to execute - Enough time to submit orders before close
- Performance metric - This accuracy determines if the model is profitable
Stats Line
Resolved
Resolved
Total number of closed intervals since bot started.
UP / DN
UP / DN
How many intervals closed above strike (UP) vs below strike (DOWN).Shows market direction bias.
Final
Final
Accuracy of predictions captured at 30 seconds before close.Format:
percentage (correct/total)Example: 86% (43/50) = 43 correct out of 50 predictionsEarly 1m
Early 1m
The critical metric - Accuracy of predictions captured at 60 seconds before close.This is the real-world trading performance. Target: 80%+Example:
87% (45/52) = 45 correct out of 52 early predictionsAbstain
Abstain
Number of intervals where no prediction was captured, either because:
- Model abstained due to one of the 7 conditions
- Bot wasn’t running during that interval
- Data collection failed
Color Coding Reference
Price Colors
- Green - Above strike (UP position)
- Red - Below strike (DOWN position)
- Yellow - Neutral or waiting for data
Decision Colors
- Green background - APUESTA: SUBE (betting UP)
- Red background - APUESTA: BAJA (betting DOWN)
- Yellow background - ABSTENCION (not trading)
Accuracy Colors
- Green OK - Correct prediction
- Red MISS - Incorrect prediction
- Gray — - No data or not applicable
Drawdown Colors
- Green [GREEN] - 0-10% drawdown
- Yellow [YELLOW] - 10-20% drawdown
- Red [RED] - 20-30% drawdown
- Red background [CRITICAL] - 30%+ drawdown
Reading Active Intervals
The last row in the table shows the current live interval:- LIVE in yellow - Interval is active, waiting for close
- wait - Prediction not captured yet (appears until 60s mark)
- — - No data available yet
Tips for Monitoring
High abstention count isn’t necessarily bad - it means the model is disciplined. A bot that trades every interval regardless of edge will lose money.
Next Steps
Daily Reports
Learn how to interpret the comprehensive daily performance reports
Troubleshooting
Common issues and how to resolve them