Install
openclaw skills install @diagnostikon/polymarket-48h-player-prop-consistency-traderTrades NBA player prop mispricings on Polymarket by detecting cross-stat consistency or divergence for the same player (Points, Rebounds, Assists O/U) and identifying outlier stats that disagree with the consensus direction.
openclaw skills install @diagnostikon/polymarket-48h-player-prop-consistency-traderThis is a template. The default signal is cross-stat consistency analysis for NBA player props -- remix it with additional sports, stat types, or team-level hierarchy checks. The skill handles all the plumbing (market discovery, player grouping, trade execution, safeguards). Your agent provides the alpha.
Polymarket lists multiple stat lines for the same NBA player:
Retail trades each stat in isolation. But these stats share the same underlying game context -- minutes played, matchup difficulty, pace, injury status. When all stats for a player deviate in the same direction, it is a confirmed signal. When one stat diverges, it is likely mispriced.
When all of a player's stats deviate from 50% in the same direction:
Derrick White: Points O/U 16.5 = 22% (below 50%)
Derrick White: Rebounds O/U 4.5 = 20.5% (below 50%)
Derrick White: Assists O/U 4.5 = 20.9% (below 50%)
All three stats say "under is likely." This multi-stat confirmation boosts conviction on each individual market.
When most stats agree but one diverges:
Player X: Points O/U 20.5 = 35% (below 50% -- consensus: under)
Player X: Rebounds O/U 6.5 = 33% (below 50% -- consensus: under)
Player X: Assists O/U 5.5 = 65% (above 50% -- OUTLIER!)
The assists line disagrees with the points and rebounds consensus. This outlier is likely mispriced -- trade it toward the consensus direction.
The skill defaults to paper trading (venue="sim"). Real trades only with --live flag.
| Scenario | Mode | Financial risk |
|---|---|---|
python trader.py | Paper (sim) | None |
| Cron / automaton | Paper (sim) | None |
python trader.py --live | Live (polymarket) | Real USDC |
autostart: false and cron: null mean nothing runs automatically until configured in Simmer UI.
| Variable | Required | Notes |
|---|---|---|
SIMMER_API_KEY | Yes | Trading authority. Treat as a high-value credential. |
All declared as tunables in clawhub.json and adjustable from the Simmer UI.
| Variable | Default | Purpose |
|---|---|---|
SIMMER_MAX_POSITION | 40 | Max USDC per trade at full conviction |
SIMMER_MIN_TRADE | 5 | Floor for any trade |
SIMMER_MIN_VOLUME | 5000 | Min market volume filter (USD) |
SIMMER_MAX_SPREAD | 0.08 | Max bid-ask spread |
SIMMER_MIN_DAYS | 0 | Min days until resolution (0 = allow same-day) |
SIMMER_MAX_POSITIONS | 8 | Max concurrent open positions |
SIMMER_YES_THRESHOLD | 0.38 | Buy YES only if market probability <= this |
SIMMER_NO_THRESHOLD | 0.62 | Sell NO only if market probability >= this |
SIMMER_MIN_DIVERGENCE | 0.05 | Min cross-stat divergence to trigger a trade |
Traditional sportsbooks use correlated models that price a player's points, rebounds, and assists as a coherent package. Polymarket has no such mechanism -- each stat line is priced by its own order book with its own liquidity pool. This creates systematic inconsistencies when:
This skill treats a player's stat lines as a correlated bundle and trades the repair when they diverge.
simmer-sdk by Simmer Markets (SpartanLabsXyz)