/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.
$ npx -y skills add agiprolabs/claude-trading-skills --skill prediction-market-strategy --agent claude-codeHow 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.mdname: 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
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
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.
Repo: agiprolabs/claude-trading-skills
Other skills on trading-skills.
- /backtrader
Event-driven backtesting with bar-by-bar execution, complex order types, multiple analyzers, and custom indicators
Open skill - /birdeye-api
Solana token market data via Birdeye — prices, OHLCV, trades, token metadata, security checks, and trader activity
Open skill - /coingecko-api
Broad crypto market data from CoinGecko covering 13,000+ tokens. Global market stats, historical price data going back years, exchange volumes, trending tokens, and category filters. Best for macro analysis and long-term historical data.
Open skill - /cointegration-analysis
Cointegration testing for pairs trading using Engle-Granger, Johansen, and rolling stability analysis
Open skill - /copy-trading
Wallet evaluation, monitoring, and copy-trade strategy design for Solana DEX trading
Open skill - /correlation-analysis
Cross-asset correlation analysis including rolling correlation, hierarchical clustering, tail dependence, and regime-dependent correlation
Open skill

