Mean-Reversion Sniper
Mean-Reversion Sniper fades price momentum in markets that have overreacted to recent information.
What it does
Mean-Reversion Sniper fades price momentum in markets that have overreacted to recent information. It monitors markets where the best-ask for YES tokens exceeds price_threshold (default 0.80), computes a rolling z-score of the price change over a lookback window, and checks for order-book signals of a momentum reversal (aggressor side flips and large cancels on the heavy side). When z_score >= z_score_min and no active news cycle is detected by the NewsIngest event-density feed, the bot emits an IOC OrderIntent to sell YES tokens at or above price_threshold. An automatic time exit (time_exit_s) and stop-loss (stop_bps) control downside risk. This is a user-controlled execution tool; it does not predict outcomes or make performance claims.
Pipeline placement
Applies to: Standard binary markets where price has moved above price_threshold (default 0.80) and z-score of last-N price change ex
Why it matters
| If this fails | Consequence |
|---|---|
| Fading during an active news cycle | If a material news event is causing the price to move permanently higher, fading it produces a directional loss rather than a mean-reversion gain. NewsIngest event-density gate must be respected. |
| z-score computed on too short a lookback | Short lookbacks produce noisy z-scores that trigger on normal intraday price variation, leading to repeated small losses from false fades. |
| Stop-loss not configured or too wide | Without a stop-loss, an overreaction that continues (e.g., genuine resolution signal) produces an uncapped loss on the short YES position. |
| feeRateBps present on signed order (V1 pattern) | CTFExchangeV2 rejects orders with feeRateBps. Fees are operator-set at match time. The signed order must not contain this field. |
Inputs
Polymarket inputs
| Input | Source | Required | Use |
|---|---|---|---|
| Price and z-score of last-N price change on target market | ws_market (CLOB WebSocket trade tape) | required | Confirm price >= price_threshold and z_score >= z_score_min before emitting fade intent. |
| Aggressor side flips and large cancel events | ws_market (order book updates) | required | Detect reversal signals: momentum fading when aggressor flips from buy-dominant to sell-dominant. |
| Top-of-book depth on YES side | clob_public | required | Size the IOC order to min(available_depth, max_position_usd). |
| Market open/closed/resolved status | clob_public | required | Skip markets that are closed, resolved, or approaching resolution (< 2h to close). |
Internal inputs
| Input | Source | Required | Use |
|---|---|---|---|
| KillSwitch active flag | KillSwitch | required | Abort all intent emission immediately if KillSwitch is active. |
| NewsIngest event-density window (don't fade during active news cycles) | internal (NewsIngest feed) | required | Block fade intent if NewsIngest signals an active material news cycle on the target market's entity. |
| Builder code bytes32 | internal config | required | Injected into builder field on every signed V2 OrderIntent. |
Authority
What this bot is permitted to do
State
Readiness
Limited live
Status
beta
Class
Alpha Strategy
Default mode
limited_live
Developer owner
Polytraders core — Strategy pod
Capital impact
Direct
Reason codes emitted
| Code | Severity | Meaning | Action |
|---|---|---|---|
| MEAN_REVERSION_FADE_INITIATED | INFO | z_score >= z_score_min, price >= price_threshold, news gate clear, reversal signal present. Fade sell IOC emitted. | Emit sell IOC OrderIntent; register position for stop/time-exit monitoring. |
| MEAN_REVERSION_Z_TOO_LOW | INFO | z_score is below the 1.0 hard floor. Price move is within normal variation; no fade warranted. | Skip; emit sampled DecisionReport. |
| MEAN_REVERSION_Z_MARGINAL | WARN | z_score is between 1.0 and 2.5. Fade is marginal; size reduced to 50%. | Emit IOC at 50% size; log warning. |
| MEAN_REVERSION_PRICE_TOO_HIGH | HARD_REJECT | Price >= 0.95 hard floor. Market is near certain resolution; fading is prohibited. | Skip; no OrderIntent; emit DecisionReport. |
| MEAN_REVERSION_NEWS_ACTIVE | HARD_REJECT | NewsIngest signals an active material news cycle on this market's entity. Fading is blocked. | Skip; no OrderIntent; emit DecisionReport. |
| MEAN_REVERSION_STOP_LOSS | WARN | Price rose above stop_price (entry + stop_bps/10000). Stop-loss triggered; position closed. | Emit buy IOC to close; emit DecisionReport. |
| MEAN_REVERSION_TIME_EXIT | INFO | Holding period exceeded time_exit_s. Time exit triggered; position closed. | Emit buy IOC to close; emit DecisionReport. |
| MEAN_REVERSION_HIGH_PRICE_THRESHOLD | WARN | price_threshold config is above 0.90 (warning). Fading near-resolution markets carries elevated risk. | Allow but log warning; require higher z_score. |
| STALE_MARKET_DATA | HARD_REJECT | ws_market feed or NewsIngest feed is stale or unavailable. | Skip; no OrderIntent emitted. |
| KILL_SWITCH_ACTIVE | HARD_REJECT | Global kill switch is active. | Close open positions; no new OrderIntents. |
Related bots in Strategy
Used by
Reverse index — strategies that currently reference strat.mean-reversion-sniper. If you change this bot's authority or reason codes, these strategies must re-pass shadow.
| Strategy | State | Activity |
|---|---|---|
| US Elections — sentiment fade | demo-wired | last triggered 39m ago |
| BTC weekly — close-aware quotes | demo-wired | last triggered 46m ago |
| Fed Rates — surprise drift | frozen | last triggered 6m ago |
Showing 3 of 3 · demo-wired ≠ production-live
Why this matters
Strategy bots does NOT sign, route, or directly submit orders to the chain. Understanding the authority boundary prevents misuse and makes promotion-gate reviews faster and more reliable. View raw spec JSON →