Market making - two-sided quoting with inventory management
51
56%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Medium
Suggest reviewing before use
Fix and improve this skill with Tessl
tessl review fix ./src/skills/bundled/mm/SKILL.mdAutomated two-sided quoting on prediction markets with inventory skew, volatility-adjusted spreads, and risk controls.
/mm start <platform> <marketId> <tokenId> [flags] Start market making
/mm stop <id> Stop and cancel all orders
/mm list List active market makers/mm status Overview of all active MMs
/mm status <id> Detailed state for one MM/mm config <id> View current config as JSON
/mm config <id> --spread 3 Update config (takes effect next requote)| Flag | Default | Description |
|---|---|---|
--spread N | 2 | Base half-spread in cents |
--min-spread N | 1 | Minimum spread floor (cents) |
--max-spread N | 10 | Maximum spread cap (cents) |
--size N | 50 | Order size per side (shares) |
--max-inventory N | 500 | Max inventory before aggressive skew |
--skew N | 0.5 | Inventory skew factor (0-1) |
--vol-mult N | 10 | Volatility multiplier for spread widening |
--alpha N | 0.3 | EMA alpha for fair value smoothing (0-1) |
--fv-method M | weighted_mid | Fair value method: mid_price, weighted_mid, vwap, ema |
--interval N | 5000 | Requote interval in ms |
--threshold N | 1 | Min price change (cents) to trigger requote |
--max-pos N | 1000 | Max position value in USD |
--max-loss N | 100 | Max loss before auto-halt (USD) |
--max-orders N | 1 | Orders per side (levels) |
--level-spacing N | (=spread) | Cents between price levels |
--level-decay N | 0.5 | Size decay per level (0-1, e.g. 0.5 = each level half of previous) |
--neg-risk true | false | Enable negative risk mode (Polymarket crypto) |
--name "Name" | auto | Display name for the outcome |
# Start with defaults
/mm start polymarket 0xabc123 98765
# Custom spread and sizing
/mm start polymarket 0xabc123 98765 --spread 3 --size 100 --max-inventory 1000
# Tight spread for liquid market
/mm start polymarket 0xabc123 98765 --spread 1 --min-spread 1 --max-spread 5 --interval 2000
# 3-level quoting: L1=50 shares, L2=25, L3=12 — spaced 2c apart
/mm start polymarket 0xabc123 98765 --max-orders 3 --level-spacing 2 --level-decay 0.5 --size 50
# Check all running MMs
/mm status
# Widen spread on the fly
/mm config polymarket_98765678 --spread 4
# Shut down
/mm stop polymarket_98765678import { createMMStrategy, type MMConfig } from '../trading/market-making';
const config: MMConfig = {
id: 'btc-yes',
platform: 'polymarket',
marketId: '0x...',
tokenId: '12345',
outcomeName: 'BTC > 100k',
baseSpreadCents: 2,
minSpreadCents: 1,
maxSpreadCents: 10,
orderSize: 50,
maxInventory: 500,
skewFactor: 0.5,
volatilityMultiplier: 10,
fairValueAlpha: 0.3,
fairValueMethod: 'weighted_mid',
requoteIntervalMs: 5000,
requoteThresholdCents: 1,
maxPositionValueUsd: 1000,
maxLossUsd: 100,
maxOrdersPerSide: 1,
};
const strategy = createMMStrategy(config, { execution, feeds });
botManager.registerStrategy(strategy);
await botManager.startBot(strategy.config.id);e71a5f6
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.