Install
openclaw skills install polymarket-mil-aircraft-trackerTrade Polymarket strike/action markets using military aircraft ADS-B positioning via pref.trade. Fires when tracked mil aircraft cluster in a target region.
openclaw skills install polymarket-mil-aircraft-trackerTrade Polymarket strike/action markets using military aircraft ADS-B positioning via pref.trade.
Framework, not a production trading system. Read DISCLAIMER.md before connecting to a wallet with real funds.
Template skill. Defaults to dry-run mode. The
--liveflag is a deliberate opt-in for real-money execution. Configure tunables via env vars listed below.
This skill executes real-money trades on Polymarket only when the --live flag is passed and the human's wallet is linked to their Simmer account. Trading is bounded by default:
python milaircraft_tracker.py shows cluster state and opportunities but executes no trades.$SIM paper sandbox option. Set TRADING_VENUE=sim to trade Simmer's virtual currency at real prices.simmer.markets/dashboard before any real trade lands.SIMMER_MILACFT_TRADE_SIZE defaults to $5.00 per trade.SIMMER_MILACFT_CLUSTER_CAP defaults to $25.00 open exposure per region.SIMMER_MILACFT_DAILY_LOSS_KILL and SIMMER_MILACFT_DAILY_TRADE_KILL stop new entries after the configured limits.--no-safeguards.SIMMER_MILACFT_EXIT_THRESHOLD, or when the regional aircraft cluster drops below its threshold.If anything above is unclear, stop before passing --live.
The strategy watches military-tagged ADS-B aircraft via pref.trade's aviation.get_adsb_military MCP tool. Each scan fetches visible military aircraft once, filters them client-side into five target regions, then searches Polymarket for strike/action markets matching the fired region's keywords.
When a region has at least its configured aircraft threshold and a matching active market is priced below the entry threshold, the skill may buy YES. Position sizing is handled by simmer_sdk.sizing.size_position() using a conservative active-cluster prior and the SDK's minimum expected-value gate.
Test with TRADING_VENUE=sim before running real-money mode.
Use this skill when the user wants to:
Required environment:
SIMMER_API_KEY - get from simmer.markets/dashboardPREF_API_KEY - register your own agent at pref.trade via POST /v1/agents/register to get a pref_agent_* key (50 free calls/day on anonymous tier, 250/day after claiming)Then install the SDK:
pip install --upgrade simmer-sdk
| Setting | Environment Variable | Default | Description |
|---|---|---|---|
| Trading venue | TRADING_VENUE | polymarket | Set sim for paper trading |
| Entry threshold | SIMMER_MILACFT_ENTRY_THRESHOLD | 0.15 | Buy YES when price is below this and cluster fires |
| Exit threshold | SIMMER_MILACFT_EXIT_THRESHOLD | 0.45 | Sell open YES position when price is above this |
| Trade size | SIMMER_MILACFT_TRADE_SIZE | 5.00 | Max USD per trade |
| Region cap | SIMMER_MILACFT_CLUSTER_CAP | 25.00 | Max open USD per region |
| Max trades/run | SIMMER_MILACFT_MAX_TRADES_PER_RUN | 3 | Maximum entries per scan |
| Cadence | SIMMER_MILACFT_CADENCE_MIN | 15 | Intended polling cadence in minutes |
| Daily loss kill | SIMMER_MILACFT_DAILY_LOSS_KILL | 25.00 | Stop new entries after daily loss reaches this |
| Daily trade kill | SIMMER_MILACFT_DAILY_TRADE_KILL | 10 | Stop new entries after this many daily trades |
| Slippage max | SIMMER_MILACFT_SLIPPAGE_MAX | 0.15 | Skip trades with estimated slippage above this |
| Order type | SIMMER_MILACFT_ORDER_TYPE | GTC | Simmer order type |
Position sizing also supports the standard Simmer SDK sizing env vars from simmer_sdk.sizing, including SIMMER_POSITION_SIZING, SIMMER_KELLY_MULTIPLIER, and SIMMER_MIN_EV.
# Dry run, no trades
python milaircraft_tracker.py
# Execute live trades
python milaircraft_tracker.py --live
# Use $SIM paper venue
TRADING_VENUE=sim python milaircraft_tracker.py --live
# Validate pref key and quota
python milaircraft_tracker.py --check
# Show current cluster dashboard
python milaircraft_tracker.py --status
# Show current Simmer positions
python milaircraft_tracker.py --positions
# View config
python milaircraft_tracker.py --config
Each cycle the script:
regions.yamlaviation.get_adsb_militarysdk:milaircraftAll trades are tagged with source: "sdk:milaircraft" and skill_slug: "polymarket-mil-aircraft-tracker". This keeps P&L attribution separate from other skills and lets Simmer enforce cross-skill conflict checks.
PREF_API_KEY not set - create or export a pref.trade agent key.
SIMMER_API_KEY environment variable not set - get a key from simmer.markets/dashboard.
No clusters fired - military aircraft are visible globally, but may not be inside one of the five configured regions.
No markets found - Polymarket may not have active strike/action markets matching the region keywords.
Safeguard blocked - the Simmer context endpoint flagged a resolved market, high slippage, or flip-flop risk.
Daily kill switch active - reset happens automatically on the next UTC day, or inspect ~/.simmer/milaircraft-tracker/state.json.