Polymarket Market Maker
A market-making strategy that places GTC (Good-Till-Cancelled) limit orders on both sides of liquid Polymarket prediction markets, capturing the bid/ask spread.
Strategy
- 1. Market Selection: Finds active markets with:
- 24h volume > $10,000 (liquid enough to fill)
- Price (YES probability) between 0.15 and 0.85 (avoids near-certain outcomes)
- Resolves > 4 hours away (enough time to get fills)
- No taker fees (
is_paid=False) — 10% fee kills the edge
- 2. Pricing: Fetches the live CLOB midpoint for each market and quotes:
- YES buy limit at
mid - 0.02 (2¢ below mid)
- NO buy limit at
(1 - mid) - 0.02 (2¢ below NO mid)
- 3. Order Management: Cancels existing open orders before placing new ones each run.
- 4. Limits: Max $5 per order, max 3 markets per run.
Requirements
Environment variables (required):
| Variable | Required | Description |
|---|
| INLINECODE3 | ✅ Yes | Your Simmer API key — get it at simmer.markets/dashboard → SDK tab |
| INLINECODE4 |
Optional |
polymarket (default) or
sim for paper trading with virtual $SIM |
Python dependency: simmer-sdk — install with INLINECODE8
Setup
CODEBLOCK0
Usage
CODEBLOCK1
Config (env vars)
| Env Var | Default | Description |
|---|
| INLINECODE9 | 5.0 | Max USD per limit order |
| INLINECODE10 |
3 | Max markets per run |
|
SIMMER_MM_MIN_VOL_24H | 10000 | Min 24h volume filter |
|
SIMMER_MM_SPREAD_OFFSET | 0.02 | How far below mid to quote (2¢) |
|
SIMMER_MM_MIN_PRICE | 0.15 | Min YES price to consider |
|
SIMMER_MM_MAX_PRICE | 0.85 | Max YES price to consider |
|
SIMMER_MM_MIN_HOURS_TO_RESOLVE | 4 | Min hours to resolution |
Polymarket做市商
一种做市策略,在流动性强的Polymarket预测市场双边挂出GTC(取消前有效)限价单,赚取买卖价差。
策略
- 1. 市场选择: 寻找活跃市场,需满足:
- 24小时交易量 > 10,000美元(流动性足以成交)
- 价格(YES概率)介于0.15至0.85之间(避免接近确定的结果)
- 距离结算时间 > 4小时(有足够时间成交)
- 无吃单手续费(is_paid=False)——10%的手续费会吞噬利润
- 2. 定价: 获取每个市场的实时CLOB中间价,并报价:
- YES买入限价单:中间价 - 0.02(低于中间价2美分)
- NO买入限价单:(1 - 中间价) - 0.02(低于NO中间价2美分)
- 3. 订单管理: 每次运行前取消现有未成交订单,再挂新单。
- 4. 限制: 每笔订单最高5美元,每次运行最多3个市场。
要求
环境变量(必需):
| 变量 | 必需 | 描述 |
|---|
| SIMMERAPIKEY | ✅ 是 | 您的Simmer API密钥——在simmer.markets/dashboard → SDK标签页获取 |
| TRADING_VENUE |
可选 | polymarket(默认)或sim(使用虚拟$SIM进行模拟交易) |
Python依赖: simmer-sdk——使用pip install simmer-sdk安装
设置
bash
export SIMMERAPIKEY=sklive... # 必需
export TRADING_VENUE=sim # 可选:使用$SIM的模拟模式
pip install simmer-sdk
使用
bash
模拟运行(默认)
python market_maker.py
实盘交易
python market_maker.py --live
显示当前持仓
python market_maker.py --positions
显示配置
python market_maker.py --config
设置配置
python market
maker.py --set maxorder_usd=10.0
配置(环境变量)
| 环境变量 | 默认值 | 描述 |
|---|
| SIMMERMMMAXORDERUSD | 5.0 | 每笔限价单最高美元金额 |
| SIMMERMMMAX_MARKETS |
3 | 每次运行最多市场数 |
| SIMMER
MMMIN
VOL24H | 10000 | 最低24小时交易量筛选 |
| SIMMER
MMSPREAD_OFFSET | 0.02 | 低于中间价的报价偏移量(2美分) |
| SIMMER
MMMIN_PRICE | 0.15 | 考虑的最低YES价格 |
| SIMMER
MMMAX_PRICE | 0.85 | 考虑的最高YES价格 |
| SIMMER
MMMIN
HOURSTO_RESOLVE | 4 | 距结算的最短小时数 |