poly15m-v7 — Zero-fee directional maker
v6 signal stack with maker (GTC) entries instead of FOK takers. Posts at best bid + 1 tick, walks the price up every 8s for up to 20 cycles, falls back to taker if still unfilled at the halfway point.
| Strategy type | Maker rebate |
|---|---|
| Asset | BTC |
| Timeframe | 15m |
| Market type | Crypto binary |
| Minimum capital | $30 |
| Dependencies | @polymarket/clob-client, ws, ethers |
What it does
poly15m-v7 is poly15m-v6's signal stack with a maker (GTC) entry layer bolted on. The eight confirmation layers and the trained meta-model are identical. The change is at entry: instead of paying ~0.8% taker fee at $0.52, the bot posts a GTC limit order at best bid + 1 tick and walks the price up every 8 seconds until it fills or the window closes.
The edge
At $0.50 maker fill, you need a 50% win rate to break even. At $0.52 taker, you need ~52.7%. Removing the fee drag is worth ~100-300 basis points of expected return per trade, depending on entry tier. v7 also earns maker rewards on every fill, which stacks on top.
The trade-off is fill risk: a GTC order can sit unfilled and miss the entry window. v7 mitigates this two ways. First, the repricing ladder posts aggressively (best bid + 1 tick) and walks up every 8 seconds, so the order tracks the book as the favored side rallies. Second, the fallback: after half the repricing budget is consumed, if still unfilled, the bot falls back to a FOK taker. You pay the fee on the fallback but you never miss the window.
How it works
Same signal stack as v6:
- Polymarket book signal (mid + depth imbalance)
- Chainlink RTDS confirmation
- CVD (Cumulative Volume Delta)
- OFI (Order Flow Imbalance)
- Chop detector
- Trend filter (last 5 resolved)
- On-chain trade tape
- Futures liquidations
Entry differs:
- Window: 90s to 540s into the candle (earlier than v6 because maker orders need fill time)
- Initial price: best bid + 1 tick on the favored side
- Repricing: every 8 seconds (
MAKER_REPRICE_SEC = 8), walk the price up one tick if still unfilled - Cap: never post above $0.58 (
MAKER_MAX_PRICE) - Max attempts: 20 repricings (
MAKER_MAX_REPRICES) - Fallback: at attempt 10+, switch to FOK taker if still unfilled (
MAKER_TAKER_FALLBACK = true)
Phase B (last 90s "favorite" entries when one side trades $0.90+): remains FOK taker. Time pressure makes maker repricing risky there.
Sizing: same quarter-Kelly as v6, hard cap --max-bet.
Sample output
[25/05/2026, 15:30:01] Meta-model loaded (n=287 trades, threshold 62/100) [25/05/2026, 15:32:48] Signals: 4/8 agree, meta=71/100 — entering Up [25/05/2026, 15:32:48] POST GTC 11sh Up @ $0.49 (best bid + 1 tick) [25/05/2026, 15:32:56] REPRICE 11sh Up @ $0.50 (attempt 2) [25/05/2026, 15:33:04] FILL 11sh Up @ $0.50 (0 fee) [25/05/2026, 15:45:01] Resolved WIN | +$5.50 | Bal: $35.50
Design targets
Break-even at $0.50 maker fill: 50% WR. Design target 55-58% realized WR, identical to v6 because the signal stack is identical. Net advantage over v6 is the fee saving plus maker rewards.
Fill rate is the key uncertainty: realistic target is 70-85% of attempted trades fill via maker, the rest via taker fallback at the original $0.52 price.
FAQ
Why a 50/50 split between maker and taker fallback?
The fallback at attempt 10 (half the repricing budget) gives the maker order enough cycles to fill in normal market conditions (~60-80 seconds of repricing) while preserving enough time before the entry window closes to fall back via taker if needed.
How is v7 different from v6?
Signal stack and trade frequency are identical. v7 saves the taker fee on ~70-85% of trades (the ones that fill via maker), at the cost of fill-risk variance. v6 is simpler operationally; v7 has higher expected return.
Should I retrain the meta-model for v7?
The pre-trained model ships with both bots. If you retrain, it uses your combined v6+v7 trade history. The model is signal-based, not entry-method-based, so it generalizes across both.
What's included
poly15m/poly15m-v7.jspoly15m/run.shpolymarket-limits.jstools/meta_label_train.pydata/meta-model.json- README with maker rewards setup, repricing ladder tuning, and Phase B notes
Configuration
| Flag | Default | Description |
|---|---|---|
| --asset BTC | BTC | Asset to trade. BTC supported at launch. |
| --live | — | Place real orders. Default is dry-run. |
| --sim-balance 30 | 30 | Starting balance in dry-run mode (USD). |
| --max-bet 10 | 10 | Hard cap per trade in USD. |
| --max-loss 0 | 0 | Daily loss limit in USD. 0 = disabled. |
Related bots
poly15m-v6 — Enhanced orderbook signal BTC scalper
Polymarket book + Chainlink RTDS + CVD + OFI + chop filter + trained meta-model. Needs 3 of 8 confirmation layers before FOK taker at $0.52. Quarter-Kelly with drawdown scaling, holds to resolution.
poly15m-v3 — Maker strategy under post-2026 fee rules
Two-phase maker on 15-min BTC binaries. Phase 1 (0-720s) quotes both sides at 6¢ spread via WebSocket. Phase 2 (720-900s) posts a directional GTC at $0.52 once multi-exchange median picks a winner.