Kalshi F1 Elimination Trader
This is a template. The default signal uses static championship standings -- remix it with live F1 API data for real-time elimination detection as races complete. The skill handles all the plumbing (market discovery, trade execution, safeguards). Your agent provides the alpha.
Strategy Overview
As the F1 season progresses, drivers become mathematically eliminated from the championship. A driver is eliminated when their maximum possible points (current + MAX_POINTS_PER_RACE * remaining races) is less than the leader's current total. Yet Kalshi markets often still price eliminated drivers above 0% -- this is free money.
Key advantages:
- Mathematical certainty -- elimination is a provable fact, not a prediction
- Low entry edge -- even 3% market price on an eliminated driver is pure edge
- Markets lag reality -- retail traders forget to update stale positions
- Zero-risk thesis -- the only risk is execution/timing, not model error
Signal Logic
Elimination Detection
- Track championship standings (points per driver)
- Calculate remaining races in the season
- For each driver:
max_possible = current_points + 26 * remaining_races - Driver is eliminated if
max_possible < leader_points - If eliminated AND market price > entry_edge -> BUY NO
Points per Race
| Component | Points |
|---|---|
| Win | 25 |
| Fastest lap | 1 |
| Max per race | 26 |
Conviction-Based Sizing
conviction = min(market_price / entry_edge, 2.0) / 2.0size = max($1.00, conviction * MAX_POSITION_USD)- Higher market price on eliminated driver = more conviction = larger position
Risk Parameters
| Parameter | Default | Notes |
|---|---|---|
| Entry edge | 3% | Min market price on eliminated driver to trade |
| Exit threshold | 45% | Sell when position price reaches this |
| Max position size | $5.00 USDC | Per market |
| Max trades per run | 5 | Rate limiting |
| Max slippage | 15% | Skip if slippage exceeds |
| Min liquidity | $0 | Disabled by default |
Installation & Setup
clawhub install kalshi-f1-elimination-trader
Requires: SIMMER_API_KEY and SOLANA_PRIVATE_KEY environment variables.
Cron Schedule
Cron is set to null -- the skill does not run on a schedule until you configure it in the Simmer UI.
Safety & Execution Mode
The skill defaults to dry-run mode. Real trades only execute when --live is passed explicitly.
| Scenario | Mode | Financial risk |
|---|---|---|
python trader.py |
Dry run | None |
| Cron / automaton | Dry run | None |
python trader.py --live |
Live (Kalshi via DFlow) | Real USDC |
Required Credentials
| Variable | Required | Notes |
|---|---|---|
SIMMER_API_KEY |
Yes | Trading authority. Treat as a high-value credential. |
SOLANA_PRIVATE_KEY |
Yes | Base58-encoded Solana private key for live trading. |
Tunables (Risk Parameters)
| Variable | Default | Purpose |
|---|---|---|
SIMMER_F1_ELIM_ENTRY_EDGE |
0.03 |
Min market price on eliminated driver to trade |
SIMMER_F1_ELIM_EXIT_THRESHOLD |
0.45 |
Sell position when price reaches this level |
SIMMER_F1_ELIM_MAX_POSITION_USD |
5.00 |
Max USDC per trade |
SIMMER_F1_ELIM_MAX_TRADES_PER_RUN |
5 |
Max trades per execution cycle |
SIMMER_F1_ELIM_SLIPPAGE_MAX |
0.15 |
Max slippage before skipping trade |
SIMMER_F1_ELIM_MIN_LIQUIDITY |
0 |
Min market liquidity USD (0 = disabled) |
Dependency
simmer-sdk is published on PyPI by Simmer Markets.
- PyPI: https://pypi.org/project/simmer-sdk/
- GitHub: https://github.com/SpartanLabsXyz/simmer-sdk
- Publisher: hello@simmer.markets
