Skip to content
Finance
Skill

/prediction-market-strategy

Venue- and market-type-agnostic strategy, sizing, and backtesting layer for binary prediction markets (Kalshi, Polymarket, ForecastEx). Covers the durable edge thesis, fee-aware selection, fractional-Kelly sizing, and leak-free validation methodology.

From plugin
trading-skills
26767 skills
Install
$ npx -y skills add agiprolabs/claude-trading-skills --skill prediction-market-strategy --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/prediction-market-strategy

Context preview

The summary Claude sees to decide when to auto-load this skill.

Venue- and market-type-agnostic strategy, sizing, and backtesting layer for binary prediction markets (Kalshi, Polymarket, ForecastEx). Covers the durable edge thesis, fee-aware selection, fractional-Kelly sizing, and leak-free validation methodology.

SKILL.md

prediction-market-strategy.SKILL.md
name: prediction-market-strategy
description: Venue- and market-type-agnostic strategy, sizing, and backtesting layer for binary prediction markets (Kalshi, Polymarket, ForecastEx). Covers the durable edge thesis, fee-aware selection, fractional-Kelly sizing, and leak-free validation methodology.

Prediction Market Strategy

Binary prediction markets price contracts as probabilities. This skill covers the *strategy, sizing, and validation* layer that applies across all venues and market types. API mechanics live in `kalshi-api` / `polymarket-api`; contract semantics and settlement live in `kalshi-weather-markets` / `kalshi-crypto-index-markets`. This is the strategy/sizing/validation layer that applies across all of them.

Core Thesis

**Price = implied probability.** A contract priced at $0.18 claims an 18% chance of resolving YES. Brackets in a series sum to just above $1.00 — the overround is the house margin (roughly 5–8% for weather markets on Kalshi).

**Takers systematically lose; makers systematically win.** Across 300k+ Kalshi contracts, the average pre-fee return is ≈ −20%, concentrated in takers (market-order users) and in longshot buyers. Makers (resting limit orders) earn positive returns. On Polymarket (588M+ trades), the top ~1% of accounts capture ~76.5% of profit, predominantly by resting limit orders. This is the foundational result.

**Favorite–longshot bias is the durable mechanism.** Cheap longshots are systematically overpriced: a $0.05 contract historically wins ~2%; sub-$0.10 contracts lose ~60% of stake to buyers. Favorites are fairly- to slightly-underpriced. The repeatable expression is **selling the overpriced longshot tail, maker-side** — resting NO bids on brackets priced ~$0.05–$0.20, diversified across many events to survive the rare hit. This is structural/behavioral, not a forecasting edge.

**Forecast skill ≠ trading edge.** A good weather or event forecast is largely redundant with the market price at decision time. Markets aggregate information efficiently enough that even a measurably better model produces near-zero net edge after fees unless it finds systematic mispricings (which are behavioral, not informational). The exception is official-label ML in lightly-traded markets — but that is bounded by fill-rate and capacity, not forecast accuracy.

---

Strategy Catalog

Strategies evaluated on Kalshi/Polymarket weather and event markets. "Real" means it survived correct settlement + fees in testing; others are flagged so you don't re-chase them.

| Strategy | Verdict | Mechanism | Key Catch | |----------|---------|-----------|-----------| | Favorite–longshot fade, maker-side | ✅ Durable | Rest maker NO bids on ~$0.05–$0.20 brackets; behavioral tail overpricing | Rare longshot hit; measure fill-rate forward | | Bracket YES-only (forecast-driven) | ✅ Works, fee-sensitive | Buy YES when calibrated model says bracket is materially underpriced | Requires net_edge > θ gate; not raw win-rate | | Market-making / liquidity provision | ⚠️ Structurally favored, infra-heavy | Two-sided quotes, capture spread + maker rebates | Inventory risk, adverse selection, queue priority | | Overround / dutching arbitrage | ⚠️ Real in theory, marginal in practice | Sum-to->$1.00 across brackets; buy the underpriced residual | Legs must fill simultaneously; Kalshi fills are sequential | | Cross-venue arb (Kalshi ↔ Polymarket) | ❌ Blocked for most | Simultaneous position in equivalent contracts on two venues | Transfer time/cost destroys edge; geo-lock | | Latency / news front-running (crypto/index hourlies) | ❌ HFT game | React to public feeds before market reprices | Sub-100ms requirement; co-location; not retail | | Near-certainty intraday repricing | ⚠️ Information/latency edge | Markets slow to reprice near-certain contracts; capture the residual | Requires real-time feed + automation | | Copy-the-sharps | ❌ Survivorship illusion | Mirror apparent winning accounts | No reliable signal on public data; past winners regress |

**Bottom line:** Two strategies survive correct accounting — the behavioral tail fade (maker-side) and the forecast-driven YES entry past the θ gate. Everything else is either HFT-scale, infrastructure-heavy, or dissolves under correct settlement + fees.

---

Fee-Aware Sizing & Edge Gates

All selection is on **fee-adjusted net edge**. Raw win-rate, return on notional, and % correct are not selection metrics.

Net Edge Formula

net_edge = p_model - ask - kalshi_fee(ask)
# Kalshi taker fee: ceil(0.07 * price * (1 - price) * 100) / 100 per contract
# Polymarket fee: 0 (no explicit taker fee; spread is the cost)

Select a trade only when `net_edge > θ`.

Expected-Edge Gate (θ)

| Account size | θ (Kalshi) | Rationale | |---|---|---| | < $2,000 | 15% | Small account; fee drag is proportionally higher | | ≥ $2,000 | 20% | Standard gate covering fee + execution uncertainty | | Polymarket | ~5% | No explicit taker fee; spread and gas are the cost |

Limit Price Posting

When placing maker orders, post your bid θ below model fair value:

limit_price_cents = floor((p_model - θ) × 100)

This ensures you only fill when the market moves in your favor by at least θ.

Fractional-Kelly Sizing

f_star = edge / (1 - entry_price)          # full Kelly fraction
stake = min(kelly_frac * f_star * bankroll, max_bet_fraction * bankroll)
contracts = stake / entry_price
# Defaults: kelly_frac=0.25 (quarter-Kelly), max_bet_fraction=0.015

The 1.5% bankroll cap is the binding constraint for most trades. Quarter-Kelly is aggressive enough to compound but mild enough to survive a bad run of correlated hits.

Exposure Caps (observed defaults)

| Cap | Value | |---|---| | Per-contract bankroll limit | 1.5% of account | | Single-city / single-event | 5% of account | | Total open exposure | 20–25% of account | | Max slippage as fraction of edge | 50% |

Slippage Is Part of Selection

Walk the **real NO/YES

Read more
Ships withtrading-skills

A comprehensive collection of 67 ready-to-use trading, DeFi, and quantitative finance Agent Skills. Works with Claude Code, Cursor, Codex, Gemini CLI, and 30+ other tools.

Get the whole plugin
Stats
312
Stars
62
Forks
Maintained
Maintenance
Python
Language
MIT
License
1mo ago
Last commit
5mo ago
Created

Repo: agiprolabs/claude-trading-skills