Install
openclaw skills install @diagnostikon/polymarket-48h-sports-line-curve-traderTrades structural mispricings in sports over/under markets by reconstructing the implied probability curve across multiple O/U line values for the same game and detecting monotonicity violations and set-vs-match inconsistencies in tennis.
openclaw skills install @diagnostikon/polymarket-48h-sports-line-curve-traderThis is a template. The default signal is implied O/U curve violation detection across sports markets -- remix it with additional sports, line types, or cross-venue feeds. The skill handles all the plumbing (market discovery, curve construction, trade execution, safeguards). Your agent provides the alpha.
Polymarket lists multiple over/under lines for the same sporting event:
Retail trades each market as an isolated bet. But together, these markets form an implied probability curve -- higher totals must always be less likely for the OVER side.
This skill reconstructs that curve and finds where it is mathematically broken.
The probability of going OVER a lower line must always be greater than or equal to going OVER a higher line:
P(O/U 5.5 OVER) >= P(O/U 6.5 OVER) >= P(O/U 7.5 OVER)
If a higher line is priced above a lower line, the curve is broken -- pure structural arbitrage.
For tennis, the match total always equals or exceeds the Set 1 total. Therefore:
P(Match O/U X OVER) >= P(Set 1 O/U X OVER)
If a Set 1 O/U market is priced higher than the equivalent Match O/U market, the relationship is violated.
YES_THRESHOLD / NO_THRESHOLD)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_VIOLATION | 0.03 | Min curve violation magnitude to trigger a trade |
Traditional sportsbooks have professional line-setters who enforce consistency across O/U lines for the same game. Polymarket has no such mechanism -- each O/U market is priced by its own order book with its own liquidity pool. This creates systematic micro-inconsistencies in the implied distribution, especially when:
This skill treats the O/U line ladder as a probability curve and trades the repair.
simmer-sdk by Simmer Markets (SpartanLabsXyz)