PR&R / Report 008
Home / Reports / SIRMARTINGALE
Polymarket / On-chain

SIRMARTINGALE

A directional micro-arbitrageur on 5-minute BTC and ETH Up/Down markets. Reads the spot tape faster than the orderbook requotes, then sells aggressively into the lift. The name is a head-fake - there’s no Martingale here.

Published Apr 29, 2026 ~14 min read By PR&R Research View on Polymarket →
Gross turnover
$361K
28-day window
Realized return
+82.95%
Net of gas, fees, slippage
Days green
26 / 27
Active trading days
Reproducibility
Hard
Spot feed + low latency
// 008 / Analysis

Faster than the orderbook, slower than the network.

23,440 trades across 3,996 short-window crypto markets. We mapped every fill, traced the entry signature, and stress-tested whether a member could reproduce it.

Despite the wallet name, SirMartingale is not running a Martingale. No doubling. No chasing losses with bigger bets. The maximum single fill across 28 days is $366; the P99 is $134. Sizing is bounded and disciplined throughout. Whoever named the wallet was either trolling or describing a vibe the data doesn’t back up.

What he actually does is a directional crypto microstructure trade on Polymarket’s short-window BTC and ETH Up/Down markets, with an aggressive SELL engine that exits into orderbook strength before resolution. He watches the spot tape, fires a directional buy when one side of a 5-minute book is pricing under his fair value, then unloads aggressively when the market catches up. He is, in essence, an arbitrageur of the few-second lag between the BTC/ETH spot tape and the Polymarket CLOB’s reaction to it.

The portfolio shape

The universe is two assets, two durations, period. 78% BTC, 22% ETH, split across 5-minute and 15-minute Up/Down markets. No SOL, no other crypto, no sports, no politics, no hourly windows. He doesn’t touch the slow stuff - by the time the orderbook updates against your entry, the spot tape has already moved a dozen times and any short-term mispricing is gone.

Inside that universe, ETH 5m is the standout. He puts only $16K of buy notional into it but takes $43K out via SELLs alone - a 2.59× SELL/BUY ratio, vs 1.32× on BTC 5m. ETH 5m carries less liquidity and less competition than BTC, so the spot-to-CLOB lag is wider and easier to exploit. He’s quietly identified the highest-edge subset of the universe and slotted ~11% of his BUY notional into it for ~22% of his realized cash-flow alpha.

“The bot doesn’t predict Bitcoin. It just reads the tape three seconds before the orderbook does.”

Where the edge appears to come from

The strategy lives in a structural latency between two systems: the BTC/ETH spot tape (Coinbase, Binance, Kraken - updates in milliseconds) and the Polymarket CLOB orderbook (updates whenever a maker requotes - typically a 1-30 second lag for thin penny-zone books). When BTC moves a few basis points, the spot tape immediately updates. The Polymarket Up/Down market eventually re-prices, but there’s a window - often 5 to 30 seconds - where the orderbook is still trading at the pre-move price.

Anyone with the spot data and a fast bot can buy ahead of the requote. SirMartingale apparently does. His average buy across the book is $0.43; his average sell is $0.80. Per-share gross gain on flipped shares is roughly $0.37, and the SELL engine alone returns +$72,735 against $144K of BUY outflow. Settlement payouts on the unsold residual add another +$46,828. Total: +$119,586 in 28 days, every rolling 7-day and 15-day window green.

One market, trade by trade

The cleanest single-market trace is Bitcoin Up or Down - April 11, 2:45-2:50PM ET. He opens at 2 minutes 7 seconds in with three near-simultaneous BUYs of “Up” at $0.27. Forty seconds later the price has drifted against him to $0.25. He averages down with conviction - not Martingale. Eight seconds later it’s $0.21, and he goes bigger: 80 shares at $16.80, his largest single clip in this market.

Then BTC makes the move. The “Up” price snaps from $0.21 to $0.84 in seconds. He fires SELL after SELL, dumping 117 shares between $0.90 and $0.92 as bots and humans pile in to chase. The market resolves “Up” at 18:50:00. The 33 unsold residual shares pay $1.00 each.

Net: $38.94 deployed, +$113.81 realized. A 292% return in 92 seconds. He runs this play, on average, 165 times a day.

Discord thread Members are reproducing the lag-arbitrage signal in a separate sandbox - spot-tape feed in, Polymarket book quote out, dry-run latency budget tracking. First backtest results posted in #research-sirmartingale.

What you can copy

Three things from this wallet are immediately portable to a bot:

1. The asset/duration whitelist. BTC 5m, ETH 5m, BTC 15m. Skip everything else - the longer windows have already absorbed the lag, and other categories don’t carry a usable spot proxy. Members maintain a venue+symbol list in #crypto-microstructure.

2. The aggressive SELL discipline. The wallet does not hold to resolution by default. The moment the orderbook lifts to confirm the spot move, it dumps. The exit framework is “sell into strength, not into resolution” - which means the SELL engine is doing more of the P/L work than the underlying directional call. We coded a reference exit in the scalper guide.

3. The hard size cap. The maximum fill across 23,440 trades is $366. There is no “double down” mode, ever. Even when the operator is averaging down, the size goes from $10 to $12 to $17 across three steps - not 1×, 2×, 4×. This single rule kills the strategy’s left tail.

What you probably can’t copy

The latency. We tried.

Reproducing the spot-to-CLOB read from a residential connection running through Polymarket’s public REST API loses the race more often than not - by the time you see the spot tick and your buy clears the book, the maker has already requoted. The wallet’s execution signature (median inter-fill gap of 0.0 seconds; 75% of consecutive fills under 10 seconds) implies colocated infrastructure or at minimum a private high-priority WebSocket feed. Without that, the directional call is still right but the entry price degrades into mediocrity.

That gap - the part you can’t copy - is what makes SirMartingale a good case study rather than a strategy you can clone wholesale. The reproducible parts (whitelist, sell discipline, size cap) still give you a reasonable bot. The non-reproducible parts tell you what to keep working on.

// 002 / Figure

Daily P&L over the 28-day window.

One bar per active day. 26 of 27 active days closed green; only the final cool-down day printed red.

// 003 / Reverse-engineering report

Reverse-engineering report

Three weeks of wallet-watching, every fill mapped, asymmetric profile traced.

Wallet: 0x9eb48be5d329b282b8a18473db7ca6eaeeec65a1 Window: 2026-04-01 → 2026-04-28 (28 calendar days, 27 active) Universe: 23,440 trades · 3,996 markets · $361K gross turnover Net cash-flow P/L: +$119,586 on $144,173 deployed = +82.95% ROI in 28 days

P/L methodology: Cash-flow accounting. Each position's P/L = -buy_usdc + sell_usdc + remaining_share_payout, where remaining shares are settled at $1.00 if the outcome won, $0.00 if it lost, or marked at last-traded price if the market is still open.

The Punchline

Despite the name, this trader is not running a Martingale. No doubling, no chasing losses with bigger bets, no recovery scaling. The wallet's max single fill across 28 days is $366 and the P99 is $133. Sizing is bounded and disciplined throughout. Whoever named the wallet was either trolling or describing a vibe that the data doesn't back up.

What he actually does: a directional crypto microstructure trader on Polymarket's short-window BTC and ETH Up/Down markets, with an aggressive SELL engine that exits into orderbook strength before resolution. He watches the spot tape, fires a directional buy when one side of a 5-minute (or 15-minute) market is pricing under his fair value, then unloads aggressively when the market catches up. He is, in essence, an arbitrageur of the few-second lag between the BTC/ETH spot tape and the Polymarket CLOB's reaction to it.

The economics are extraordinary. Across 12,055 BUY tickets and 11,385 SELL tickets, the SELL leg alone returns $216,908 against a BUY outflow of $144,173 — a net of +$72,735 from the SELL engine before any settlement payout. Layer on top another +$46,828 in resolved-market payouts on the residual shares he didn't sell, and the book closes at +$119,586 (+82.95% ROI) in 28 days, with 100% of rolling 7-day and 100% of rolling 15-day windows green. The cumulative line never has a red day until the final cool-down on the last calendar day of the range.

This is what a real, working Polymarket directional edge looks like: not a longshot bot, not a market maker, not a copy-follower. Just a sharp operator who reads BTC faster than the orderbook, sizes a small directional clip, and sells aggressively the moment the market agrees with him. The win rate of 38.4% is meaningful in context — he's buying mid-band (avg entry $0.40) and selling near-favorite (avg exit $0.80+), so each correct call typically doubles or triples in price before he closes it.


What He Trades

The universe is two assets, two durations, period:

btc-updown-5m-*    14,390 trades  ($100,174 BUY)   ← workhorse
          btc-updown-15m-*    3,916 trades  ($27,528  BUY)
          eth-updown-5m-*     5,127 trades  ($16,452  BUY)   ← outsized SELL/BUY ratio (2.59×)
          eth-updown-15m-*        7 trades  ($19      BUY)   ← negligible

78% BTC, 22% ETH. No SOL, no other crypto, no sports, no politics, no hourly or 4-hour duration markets. The standard Polymarket category framework collapses to a single row (Crypto, +37.47% ROI) — but inside that row, the asset/duration breakdown reveals the actual structure.

ETH 5m is the standout. He puts only $16,452 into ETH 5m markets but takes $42,699 out via SELLs alone — a 2.59× SELL/BUY ratio, vs 1.32× on BTC 5m. ETH 5m markets carry less liquidity and less competition than BTC, so the spot-to-CLOB lag is wider and easier to exploit. He's quietly identified the highest-edge subset of the universe and slotted ~11% of his BUY notional into it for ~22% of his total realized cash-flow alpha.

He doesn't touch the 1-hour or 4-hour BTC markets. Those windows are too slow — by the time the orderbook updates against your entry, the spot tape has already moved a dozen times and any short-term mispricing has been arbitraged away. The 5-min and 15-min windows are tight enough that the spot-to-CLOB latency creates real, repeated arbitrage opportunities.

Entry-price discipline is the second tell that this isn't a longshot bot. He uses 101 distinct price points from $0.01 to $1.00. No single price holds more than 4.4% of his BUYs. He's bidding wherever the orderbook offers value, not pinning the floor like LIL222 or pinning a single fair-value level like a static market maker. The price he enters at is whatever the book offers when his signal fires.


The Order of Operations — One Market, Trade by Trade

This is one of the cleanest single-market traces in the dataset, illustrating the strategy end-to-end. Bitcoin Up or Down — April 11, 2:45PM-2:50PM ET (UTC: 18:45-18:50). Market resolved "Up".

Time (UTC)ActionOutcomePriceSharesUSDCRunning P/L
18:47:07BUYUp$0.271.37-$0.37-$0.37
18:47:07BUYUp$0.271.37-$0.37-$0.74
18:47:07BUYUp$0.2735.24-$9.52-$10.26
18:47:47BUYUp$0.2521.33-$5.33-$15.59
18:47:47BUYUp$0.251.50-$0.38-$15.97
18:47:47BUYUp$0.2524.68-$6.17-$22.14
18:47:55BUYUp$0.2180.00-$16.80-$38.94
18:48:29SELLUp$0.8414.72+$12.37-$26.57
18:48:39SELLUp$0.9054.47+$49.02+$22.45
18:48:39SELLUp$0.922.43+$2.24+$24.69
18:48:39SELLUp$0.9211.10+$10.21+$34.90
18:48:39SELLUp$0.9250.00+$46.00+$80.90
ResolutionUp wins$1.0032.91 (residual) × $1+$32.91+$113.81

Walk-through:

  1. 18:47:07 — 2 minutes 7 seconds into the 5-min window. He enters with three near-simultaneous BUYs of "Up" at $0.27, totaling 38 shares for $10.26. The market is pricing the "Up" side at 27% probability. He thinks the BTC tape is moving such that the actual probability is meaningfully higher — but he's not certain enough to size big yet, so this is a probe.
  1. 18:47:47 — 40 seconds later. Price has moved against him. The market is now pricing "Up" at $0.25 (down from $0.27). He doesn't panic — he averages down with another 47.5 shares for $11.88. His thesis hasn't changed; the price just hasn't caught up to it yet.
  1. 18:47:55 — 8 seconds later. Price drops further to $0.21 (the market is pricing 21% probability). His conviction holds and he goes bigger: 80 shares for $16.80, his largest single clip in this market. This is averaging down with conviction, not Martingale — the size goes from $10 → $12 → $17 across three steps, not doubling. He's adding because the price got cheaper, not because the previous bet "lost".
  1. 18:48:29 — 34 seconds later. Inflection point. BTC has just made the move he was anticipating. The "Up" price snaps from $0.21 to $0.84 — quadruples in seconds. He fires the first SELL: 14.72 shares at $0.84 for $12.37. The book is still catching up.
  1. 18:48:39 — 10 seconds after the first SELL. The orderbook is now thick at $0.90-$0.92 as bots and humans pile in. He dumps aggressively — 117 shares across four sells at prices from $0.90 to $0.92, collecting $107.47. He's converting unrealized into realized as fast as the book absorbs it.
  1. Resolution at 18:50:00. "Up" wins. The remaining 33 shares he didn't sell pay $1.00 each = $33.

Final accounting: $38.94 deployed, $119.84 collected via SELLs, $32.91 paid out on the residual. Net: +$113.81 on $38.94 deployed = +292% return in 92 seconds.

The reason this isn't survivor-bias: he does this 165 times per day on average across BTC 5m, BTC 15m, and ETH 5m. Some lose. Some flip neutral. The aggregate of the population is +83% ROI across 28 days because the average trade goes his way more often than not, and when it does the SELL engine extracts the maximum the orderbook will give him.


Why It Works — The Math

The strategy lives in a structural latency between two systems:

  1. The BTC/ETH spot tape (Coinbase, Binance, Kraken — updates in milliseconds)
  2. The Polymarket CLOB orderbook (updates whenever a maker requotes — typically 1-30 second lag for thin penny-zone books)

When BTC moves a few basis points, the spot tape immediately updates. The Polymarket Up/Down market eventually re-prices, but there's a window — often 5 to 30 seconds — where the orderbook is still trading at the pre-move price. Anyone with the spot data and a fast bot can buy ahead of the requote.

His EV per trade is positive because:

Avg buy price across the book (capital-weighted):  ~$0.43
          Avg sell price across the book (capital-weighted): ~$0.80
          Per-share gross gain on flipped shares:            ~$0.37
          SELL/BUY ratio overall:                            1.50× (flips ~50% extra of buy notional)
          Residual win rate:                                 38.4% × $1.00 settlement

For a representative ticket cycle:

  • Buy $100 at $0.43 → 233 shares
  • Sell ~150 shares at avg $0.80 = $120 (already +$20 on the SELL engine alone)
  • Remaining ~83 shares: 38% × $1 = +$31.50 expected payout
  • Total expected exit value: ~$151.50 vs $100 in = +51.5% expected return per ticket cycle

Realized cash-flow ROI of +82.95% comes in ABOVE the simple per-ticket EV because the exit price distribution is right-skewed — winning trades that he sells into a big rally pay out at $0.95-$0.99, not the flat $0.80 average. The April 11 example above sold at $0.90-$0.92 against a $0.24 entry = 3.7× per-share gross. That kind of trade is rare individually but happens often enough to lift the whole book's realized ROI well above the naive expected value.

The strategy's vulnerability is the inverse case: when he buys against a move that turns out to be persistent rather than mean-reverting, he can't sell into a rally that never comes. The largest single-market loss in the window was -$404 on Bitcoin Up or Down — April 24 5:40PM-5:45PM ET, where he put $569 into a position that resolved against him with no rally to sell into. But the bounded sizing means even a maximum-loss event tops out around -$400, and the strategy's positive-day frequency (96.4%, 26 of 27 active days) absorbs those losses comfortably.


Phase 1 — Trader Profile

Scale & Activity

  • 12,055 BUYs + 11,385 SELLs = 23,440 trades in 28 days (active 27 of 28)
  • BUY notional $144,173 · SELL notional $216,908 · gross turnover $361,081
  • ~868 trades per day on active days
  • 3,996 unique markets across 3,996 unique events — exactly one market per event (each 5-min/15-min window is a fresh event)

Trade Size Distribution (bounded, semi-uniform)

StatValue
Median$5.50
Mean$15.40
P75$16.25
P90$39.15
P95$63.29
P99$133.65
Max$366.30
Top 5% share of capital37.0%
Top 1% share of capital14.1%

The size profile is bounded, not power-law — the max is only 24× the median, and the P99 is just 9× the median. By comparison, true power-law trader books show 100×+ ratios between max and median. The top-5% share at 37% is moderate concentration, not the 65-80% you'd see on a Kelly-style sizer. There is no scaling-by-conviction in the absolute sense — he's not 10×ing his size when he's certain. The clip floats around $5-$50 depending on what the book offers, but the ceiling is hard at ~$200-$400.

Execution Signature

  • Median inter-fill gap on same (market, outcome): 0.0 seconds
  • 55% of consecutive fills under 1s · 75.5% under 10s · 89.9% under 60s · 100% under 1hr
  • Mean gap 20.8 seconds (much longer than a pure bot's mean — there are episodes of long pauses between fills)

The fill pattern is fast-bot for the entry burst, then variable for the exit. The order-of-operations example above shows three BUYs in the same second at 18:47:07, three more in the same second at 18:47:47, then 80 in 1 fill at 18:47:55 — same-second multi-leg fan-out is the entry signature. The SELLs spread across 30+ seconds because they're dependent on the orderbook absorbing the lift, not on his side. So: fully automated entry, semi-automated exit governed by orderbook depth.

Trading Hours

  • Zero trades 23:00-02:00 UTC (a hard sleep window — 7pm to 10pm Eastern)
  • Peak hours 13:00-19:00 UTC (US morning to afternoon)
  • Heaviest single hour: 13:00 UTC (1,434 BUY trades, +$7,765 P/L)

This is not a 24/7 bot. The 3-hour overnight gap and the clear US-session concentration suggest the operator is either at a US-business-hours desk or running an alert/sleep schedule. Compared to LIL222 (which traded best at 04:00-07:00 UTC during Asia hours), SirMartingale is a US-session trader.

Archetype

Directional in-window crypto micro-arbitrage bot with US-session activity bias. Fast entry, active exit management, no hedging.


Phase 2 — Core Strategy Identification

Both-sides participation: 0.00%

Zero of 3,996 markets had both YES and NO sides bought. This is the hardest possible refutation of any market-making interpretation. He is one-sided per market every single time.

Classification

He is B (Directional Betting) in the standard archetype framework, with elements of C (Stale-Price / Latency Arbitrage) layered in via the spot-to-CLOB lag he exploits.

He is NOT:

  • A market maker (0% both-sides rate)
  • A copy-trader (no consistent lag pattern with another wallet, and the markets are fresh every 5-15 min so there's nothing to copy)
  • A DCA accumulator (one cluster of fills per market, never returns)
  • A pure penny-longshot bot (entries spread across all 101 cents, top entry price holds <5% of trades)

What he IS:

  • A directional bettor with a fair-value model derived from real-time crypto spot data
  • A latency arbitrageur of the brief gap between spot price and CLOB requote
  • An active exit manager who sells aggressively into post-move strength

Phase 3 — Dominance Ratio Analysis

The classical dominance analysis does not apply because there are zero both-sides markets. The conviction-curve framework that works for MM-style traders is structurally inapplicable here.

What replaces it for a one-sided book is entry-price discipline as the conviction signal. See Phase 4.


Phase 4 — Entry Price Analysis

This is where the strategy structure becomes visible:

BandBUY tradesResolvedWRCapital% CapP/LROI
$0.00–$0.102,0902,0885.5%$3.0K2.1%+$14,336+474.88%
$0.10–$0.202,0862,08615.3%$7.2K5.0%+$9,843+136.52%
$0.20–$0.301,4711,47129.3%$8.7K6.0%+$6,634+76.10%
$0.30–$0.401,3761,37635.8%$12.0K8.3%+$5,617+47.00%
$0.40–$0.501,2671,26544.4%$15.6K10.8%+$3,684+23.63%
$0.50–$0.601,0971,09757.5%$17.7K12.3%+$4,187+23.63%
$0.60–$0.7084784768.0%$17.7K12.3%+$4,850+27.39%
$0.70–$0.8076876877.2%$21.9K15.2%+$2,963+13.53%
$0.80–$0.9056756677.2%$19.3K13.4%+$911+4.71%
$0.90–$1.0048648697.3%$21.0K14.6%+$995+4.73%

The win-rate column shows a perfectly calibrated probability surface — 5.5% wins at sub-$0.10 entries (matching ~5-10% implied probability), 97.3% wins at $0.90+ entries (matching ~95%+ implied probability). The market is pricing outcomes correctly on average, and he's getting close-to-fair odds on every entry.

The ROI column tells a different story. The lowest two price bands ($0.00-$0.10 and $0.10-$0.20) deliver vastly outsized ROI relative to the capital deployed there. He's putting only 7.1% of his BUY capital into the sub-$0.20 zone but extracting +$24,179 of P/L (45% of his total cash-flow profit excluding SELL proceeds) from those trades.

The favorite zone ($0.70-$1.00) holds 43% of his capital but only generates 8% of P/L — he's effectively running a "favorite anchor" that captures small predictable gains plus a "longshot lottery" where occasional 99× payouts swamp the losses.

Sub-bucket inspection per ANALYSIS_SPEC § Phase 4: The per-cent histogram shows 101 distinct price points in use, with no single point exceeding 4.4% of trades. This is the opposite shape of LIL222's single-tick concentration. His entry price is opportunistic — wherever the orderbook offers value when his signal fires — and the calibration across all 101 cents confirms there's no anchor point.


Phase 5 — Category & Vertical Breakdown

CategoryBUY tradesSELL tradesBUY $SELL $ResolvedWRP/LROI
Crypto12,05511,385$144.2K$216.9K12,05038.4%+$54,020+37.47%

The standard category framework collapses to one row. The interesting breakdown is by asset and duration (computed from market slugs):

Asset / DurationTradesBUY $SELL $SELL−BUY
BTC 5m14,390$100,174$132,636+$32,463
BTC 15m3,916$27,528$41,548+$14,020
ETH 5m5,127$16,452$42,699+$26,247
ETH 15m7$19$25+$6

ETH 5m is the highest-efficiency vertical with a SELL/BUY ratio of 2.59× — meaning he extracts $2.59 in SELL proceeds for every $1.00 of BUY notional. BTC 5m is the workhorse with 1.32×, BTC 15m at 1.51×. ETH 15m is essentially untouched.

The takeaway for replication: the ETH 5m subset is the alpha concentrate. If you had to pick one market type to run this strategy on, it would be ETH 5m — but the absolute capacity is small (~$580/day deployed). BTC 5m is where the strategy scales.


Phase 6 — Timing & Execution

Hourly P/L (UTC)

Best 5 hoursTradesP/LROIWorst 3 hoursTradesP/LROI
13:00 UTC1,434+$7,765+51.6%23:00 UTC0$0
14:00 UTC1,206+$5,449+42.1%00:00 UTC0$0
18:00 UTC957+$4,593+38.3%01:00 UTC0$0
15:00 UTC978+$4,430+39.5%02:00 UTC0$0
20:00 UTC518+$4,247+69.2%03:00 UTC1+$4+17.6%

There are literally zero trades in the 23:00-02:00 UTC window, and only 1 trade in the entire 28-day window at 03:00. This is a hard sleep schedule. Combined with the heavy concentration in 13:00-19:00 UTC (US morning + early afternoon), this looks like an operator who's at a US East Coast desk during business hours and shuts the bot down overnight.

The single highest-ROI hour with meaningful sample is 20:00 UTC (+69.2% on 518 trades) — that's 4pm Eastern, end of US business day when crypto vol typically spikes after the equity close. The single highest absolute-P/L hour is 13:00 UTC (+$7,765 on 1,434 trades) — 9am Eastern, US session open with European markets still active.

Day-of-week P/L

DayTradesWRP/LROI
Mon1,73042.1%+$9,043+39.2%
Tue2,01633.9%+$9,915+43.9%
Wed2,37441.4%+$10,457+35.8%
Thu1,88239.4%+$7,629+28.9%
Fri1,93439.4%+$6,182+27.5%
Sat1,22339.7%+$5,922+45.4%
Sun89627.8%+$4,872+65.1%

Sunday is the standout — lowest absolute volume but highest ROI (+65%). This pattern is consistent with the latency-arbitrage thesis: weekends have less competition from traditional crypto market makers (many of whom are at desks during weekdays), so the spot-to-CLOB lag is wider and easier to exploit. Wednesday is the workhorse for absolute P/L; Tuesday/Wednesday lead on absolute dollars.

Burst patterns and accumulation windows

Median accumulation per market: roughly 60-90 seconds (entry burst then exit burst within the 5-15 min window). He never returns to a market after it resolves — every event is one-touch.


Phase 7 — Filter Experiments

FilterTradesWRCapitalP/LROIΔ vs baseline
Unfiltered baseline12,05538.4%$144.2K+$54,020+37.47%
Resolved only12,05038.4%$144.1K+$53,975+37.45%-$45
Price 0.30–0.704,67049.7%$65.1K+$18,616+28.6%-$35,405
Price 0.60–0.70 (sweet spot)84768.0%$17.7K+$4,850+27.4%-$49,170
High-conviction (dom≥2×)0$0$0-$54,020
Exclude single worst hour (00:00 UTC)12,05538.4%$144.2K+$54,020+37.47%$0 (already 0 trades)
Exclude worst 4 hours12,05538.4%$144.2K+$54,020+37.47%$0 (already 0 trades)
Exclude losing categories12,05538.4%$144.2K+$54,020+37.47%$0

The standard filter battery is mostly destructive or inapplicable on this trader, with one striking finding: the price-band filter would cut 65% of his profit.

The "$0.30-$0.70" filter that's typically the recommended sweet-spot for directional bettors strips the longshot zone where he extracts +$24,179. Applying it cuts P/L from $54K to $19K — a -$35K hit. This confirms quantitatively what the entry-price analysis already showed: the longshot allocation is a load-bearing component of the edge, not noise.

The hour-exclusion filters return baseline because his sleep window already excludes the worst hours — there's nothing to filter out that wasn't already missing. The dominance filter returns zero because there's no both-sides activity to dominance-rank.

The most useful refinement we can extract from filter analysis is negative: do not apply the standard $0.30-$0.70 sweet-spot rule to this trader's playbook. The longshot tail is the alpha multiplier.

See SIRMARTINGALE_filters.md for the full filter-by-filter commentary.


Phase 8 — Rolling Window Consistency

MetricValue
Rolling 7-day windows green28 of 28 (100.0%)
Rolling 7-day P/L range+$1,025 → +$19,373
Rolling 15-day windows green28 of 28 (100.0%)
Rolling 15-day P/L range+$1,025 → +$36,386
Days with positive P/L26 of 27 active days (96.3%)
Worst single day-$274 (April 24)
Best single day+$5,828 (April 21)

100% of all rolling windows close green. Not 96%, not 99% — every single 7-day and 15-day rolling window in the observation period is positive. The cumulative P/L line is essentially monotonic, climbing from $0 on April 1 to +$54,020 on April 27 with one minor red day (-$274) along the way. The realized edge is so stable that even the worst-case rolling window prints over $1,000 of profit.

The cumulative trajectory:

Day  1 (Apr 1):  +$1,025      Day 14 (Apr 14):  +$27,012
          Day  7 (Apr 7):  +$8,417      Day 21 (Apr 21):  +$40,976
          Day 14 (Apr 14): +$27,012     Day 27 (Apr 27):  +$54,020

Average cumulative growth rate: ~$2,000/day on resolved BUY P/L (and ~$4,300/day on cash-flow including SELL proceeds). The trajectory is slightly better in weeks 3-4 than weeks 1-2 — likely a function of expanding daily volume from ~$3K/day to ~$10K/day as the operator scaled into the strategy.


Phase 9 — P/L Decomposition

ComponentValueInterpretation
BUY USDC out-$144,173Total deployed
SELL USDC in+$216,908SELLs alone exceed BUYs by +$72,735
Resolved-market payouts+$46,828Residual unsold shares paying out at $1
Open-position MTM (last price)+$23Negligible
Net realized P/L (cash-flow)+$119,586
Net ROI on BUY notional+82.95%

The decomposition is unusual in this dataset because the SELL engine is the dominant alpha source. Most traders we profile derive their P/L primarily from settlement payouts (resolved market wins). This trader extracts ~61% of his alpha from active exits before resolution.

Why the SELL engine works: He buys when one side of the market is mispriced cheap relative to the spot tape. The market's reaction lag means the price catches up to fair value within 15-60 seconds. He sells aggressively into that catch-up — converting unrealized gains into realized cash before the market either continues moving (more profit, but unrealized) or reverses (loss). The SELL engine is essentially a discipline mechanism that locks in the gain from his entry edge before the market re-randomizes.

Theoretical structural attribution shows zero spread P/L and zero hedge tax — both expected for a 0% both-sides book. There is no spread mechanism to attribute; the alpha is pure directional + exit-timing.


Phase 10 — Strategy Specification (short form; full detail in playbook.md)

One-sentence summary: A directional in-window crypto microstructure bot that buys mispriced sides of 5-15 min BTC and ETH Up/Down markets ahead of CLOB requotes, sells aggressively into the requote rally, and holds the residual to settlement.

Edge source: Two stacked positive-EV mechanisms:

  1. Spot-to-CLOB latency arbitrage — entering ahead of the orderbook's reaction to BTC/ETH spot ticks
  2. Active SELL discipline — converting unrealized to realized within the ~60-second window when the orderbook catches up

What works: ETH 5m markets (highest SELL/BUY ratio at 2.59×). The longshot zone $0.00-$0.20 (45% of P/L on 7% of capital). 13:00-19:00 UTC (US session). Sundays (lowest competition). Bounded clip sizes ($5-$50 typical, $400 max).

What drags: Hours 23:00-02:00 UTC (the operator's sleep window — no deployment, no opportunity cost). The $0.70-$1.00 favorite zone (low ROI but stable). The single largest loss in the window was -$404 on a position that resolved against him with no rally to sell into.

What replicators must NOT do: apply a "$0.30-$0.70 sweet spot" filter to this strategy. That would cut 65% of the profit by removing the longshot allocation that drives the disproportionate ROI tail. See playbook.md for the runnable spec.

// 004 / Quantitative breakdown

Quantitative breakdown

Phase-by-phase statistical report. Methodology, distributions, per-bucket P/L.

Window: 2026-04-01 → 2026-04-28 (28 calendar days, 27 active) Source CSV: SIRMARTINGALE_trades.csv Methodology: Cash-flow P/L = -buy_usdc + sell_usdc + remaining_share_payout. Remaining shares settle at $1 if outcome won, $0 if lost, or mark at last-traded price if open. No tx-hash dedup (atomic multi-leg fills are real trades).


Phase 1 — Trader Profile

Scale

MetricValue
Total trades23,440
BUY trades12,055
SELL trades11,385 (48.57% of all)
Unique markets (condition IDs)3,996
Unique events3,996
Active calendar days27 of 28
Trades per active day868
BUY notional$144,173
SELL notional$216,908
Gross turnover$361,081

Trade-size distribution (USDC per fill)

QuantileValue
min$0.00
p10$0.56
median$5.50
mean$15.40
p75$16.25
p90$39.15
p95$63.29
p99$133.65
max$366.30
Top 5% share of capital37.0%
Top 1% share of capital14.1%

Inter-trade gap, same (market, outcome)

StatSeconds
Sample size19,444
Median0.0
Mean20.8
P250.0
P758.0
P9060.0
% under 1s55.0%
% under 10s75.5%
% under 60s89.9%
% under 1hr100.0%

Phase 2 & 3 — Both-Sides Participation, Dominance Curve

  • Both-sides rate: 0.00% (0 of 3,996 markets)
  • Median paired cost:
  • Mean paired cost:
  • Paired cost % under $1.00: 0.0%
  • Paired cost % under $0.97: 0.0%
  • Paired cost % under $0.95: 0.0%
  • Median 2nd-side hedge lag: — (no both-sides markets)
  • % of pairs hedged within 60s: 0.0%
  • % of pairs hedged within 1hr: 0.0%

Dominance buckets (5-tier)

BucketMarketsDom WRMean PairedAvg Mkt P/LTotal Mkt P/L% Profitable
1.0-1.5x0$0
1.5-2.0x0$0
2.0-3.0x0$0
3.0-5.0x0$0
5.0x+0$0

Phase 4 — Entry-Price Analysis (cash-flow P/L)

BandBUY tradesResolvedWinsWRCapital% CapP/LROI
$0.00–$0.102,0902,0881155.5%$3.0K2.1%+$14,336474.88%
$0.10–$0.202,0862,08632015.3%$7.2K5.0%+$9,843136.52%
$0.20–$0.301,4711,47143129.3%$8.7K6.0%+$6,63476.10%
$0.30–$0.401,3761,37649235.8%$12.0K8.3%+$5,61747.00%
$0.40–$0.501,2671,26556244.4%$15.6K10.8%+$3,68423.63%
$0.50–$0.601,0971,09763157.5%$17.7K12.3%+$4,18723.63%
$0.60–$0.7084784757668.0%$17.7K12.3%+$4,85027.39%
$0.70–$0.8076876859377.2%$21.9K15.2%+$2,96313.53%
$0.80–$0.9056756643777.2%$19.3K13.4%+$9114.71%
$0.90–$1.0048648647397.3%$21.0K14.6%+$9954.73%

Phase 5 — Category & Vertical Breakdown

CategoryBUY tradesSELL tradesBUY $SELL $ResolvedWRP/LROI
Crypto12,05511,385$144.2K$216.9K12,05038.4%+$54,02037.47%

Phase 6 — Timing & Execution

Net P/L by hour (UTC)

HourBUY tradesCapitalWinsWRP/LROI
00:000$0.000$0
01:000$0.000$0
02:000$0.000$0
03:001$21.251100.0%+$417.65%
04:00166$2.5K8048.2%+$61624.46%
05:00373$5.6K13837.0%+$1,75831.53%
06:00500$9.5K21342.7%+$3964.15%
07:00681$7.7K23734.9%+$3,34943.53%
08:00488$4.8K14730.1%+$2,53253.27%
09:00379$4.7K12633.2%+$1,05222.55%
10:00418$5.3K8720.8%+$3997.52%
11:00352$3.9K13939.5%+$70417.88%
12:00707$8.0K22832.2%+$2,97137.01%
13:001,434$15.0K55538.7%+$7,76551.62%
14:001,206$13.0K48740.4%+$5,44942.05%
15:00978$11.2K44745.7%+$4,43039.54%
16:00662$7.1K32248.6%+$4,16258.44%
17:00882$8.0K38844.0%+$3,39542.48%
18:00957$12.0K35437.0%+$4,59338.30%
19:00979$11.8K40841.7%+$4,19735.55%
20:00518$6.1K15930.8%+$4,24769.18%
21:00288$5.8K8228.5%+$88415.33%
22:0086$2.1K3237.2%+$1,12052.96%
23:000$0.000$0

Net P/L by day-of-week

DayBUY tradesCapitalWRP/LROI
Mon1,730$23.1K42.1%+$9,04339.22%
Tue2,016$22.6K33.9%+$9,91543.94%
Wed2,374$29.2K41.4%+$10,45735.82%
Thu1,882$26.4K39.4%+$7,62928.94%
Fri1,934$22.5K39.4%+$6,18227.54%
Sat1,223$13.0K39.7%+$5,92245.38%
Sun896$7.5K27.8%+$4,87265.05%

Phase 7 — Filter Experiments

FilterTradesWRCapitalP/LROIΔ vs baseline
Unfiltered baseline12,05538.4%$144.2K+$54,02037.47%$0
Resolved only12,05038.4%$144.1K+$53,97537.45%-$45
Price 0.30-0.704,67049.7%$65.1K+$18,61628.60%-$35,405
Price 0.60-0.70 (sweet spot)84768.0%$17.7K+$4,85027.39%-$49,170
High-conviction (dom>=2x, dom leg only)00.0%$0.00$00.00%-$54,020
Exclude single worst hour (00:00 UTC)12,05538.4%$144.2K+$54,02037.47%$0
Exclude worst 4 hours12,05538.4%$144.2K+$54,02037.47%$0
Exclude losing categories (none)12,05538.4%$144.2K+$54,02037.47%$0
STACK: high-conv + skip worst hour + skip losing cats00.0%$0.00$00.00%-$54,020

Phase 8 — Rolling Window Consistency

  • Rolling 7-day windows green: 28 of 28 (100.0%)
  • Rolling 7-day P/L range: +$1,025 → +$19,373
  • Rolling 15-day windows green: 28 of 28 (100.0%)
  • Rolling 15-day P/L range: +$1,025 → +$36,386

Daily P/L (BUY trades, cash-flow allocated)

DateBUY tradesCapitalDaily P/LCum P/L
2026-04-01533$4.3K+$1,025+$1,025
2026-04-02348$2.9K+$1,534+$2,559
2026-04-03651$5.1K+$890+$3,448
2026-04-04431$2.8K+$754+$4,202
2026-04-05303$1.8K+$345+$4,547
2026-04-06598$4.6K+$2,206+$6,753
2026-04-07439$4.5K+$1,665+$8,417
2026-04-08729$8.7K+$4,362+$12,780
2026-04-09461$4.2K+$848+$13,628
2026-04-10570$5.7K+$3,006+$16,634
2026-04-11456$4.1K+$2,525+$19,159
2026-04-12394$2.5K+$2,595+$21,754
2026-04-13520$6.6K+$2,835+$24,589
2026-04-14707$7.9K+$2,423+$27,012
2026-04-15447$7.2K+$1,242+$28,255
2026-04-16444$5.5K+$1,212+$29,466
2026-04-17353$5.4K+$2,561+$32,027
2026-04-18204$1.7K+$400+$32,427
2026-04-19119$856.56+$581+$33,008
2026-04-20474$7.7K+$2,140+$35,148
2026-04-21870$10.2K+$5,828+$40,976
2026-04-22665$8.9K+$3,827+$44,803
2026-04-23629$13.8K+$4,036+$48,839
2026-04-24360$6.2K-$274+$48,565
2026-04-25132$4.5K+$2,243+$50,808
2026-04-2680$2.4K+$1,351+$52,159
2026-04-27138$4.0K+$1,862+$54,020
2026-04-280$0.00$0+$54,020

Phase 9 — P/L Decomposition

ComponentValue
BUY USDC out-$144,173
SELL USDC in+$216,908
Resolved-market payouts+$46,828
Open-position MTM (last price)+$23
Net realized P/L (cash-flow)+$119,586
Net ROI on BUY notional82.95%

Theoretical structural attribution

ComponentValue
Theoretical spread P/L (from paired VWAPs)$0
Hedge-tax outflow on losing side (resolved markets)$0

Phase 10 — Top Markets

Top 25 by BUY notional

MarketTradesBUY $SELL $Net P/L
Bitcoin Up or Down - April 20, 3:15AM-3:20AM ET8$1.1K$394.22+$182
Bitcoin Up or Down - April 20, 1:50AM-1:55AM ET13$927.43$748.34+$25
Bitcoin Up or Down - April 21, 2:50PM-2:55PM ET51$889.48$701.22+$44
Bitcoin Up or Down - April 15, 2:00PM-2:05PM ET38$869.36$746.47+$51
Bitcoin Up or Down - April 24, 11:45AM-11:50AM ET29$730.05$644.35-$86
Bitcoin Up or Down - April 22, 2:10AM-2:15AM ET31$711.69$537.27+$217
Bitcoin Up or Down - April 27, 6:15PM-6:30PM ET10$648.72$900.77+$252
Bitcoin Up or Down - April 16, 2:45AM-2:50AM ET11$578.19$398.25+$171
Bitcoin Up or Down - April 24, 5:40PM-5:45PM ET7$569.21$165.67-$404
Bitcoin Up or Down - April 17, 2:05AM-2:10AM ET8$558.89$198.28-$361
Bitcoin Up or Down - April 23, 8:00AM-8:15AM ET25$552.17$872.04+$320
Bitcoin Up or Down - April 21, 12:50AM-12:55AM ET30$528.54$455.86+$60
Bitcoin Up or Down - April 17, 11:45AM-11:50AM ET21$515.70$281.90-$234
Bitcoin Up or Down - April 26, 5:45PM-6:00PM ET14$501.83$401.85-$38
Bitcoin Up or Down - April 23, 2:15AM-2:20AM ET23$489.34$162.13-$327
Bitcoin Up or Down - April 23, 3:55AM-4:00AM ET13$487.04$387.35+$247
Bitcoin Up or Down - April 21, 1:20AM-1:25AM ET8$485.83$75.35+$21
Bitcoin Up or Down - April 16, 1:20AM-1:25AM ET7$473.43$134.27+$27
Bitcoin Up or Down - April 23, 2:20AM-2:25AM ET10$470.08$55.06+$44
Bitcoin Up or Down - April 22, 8:00AM-8:05AM ET25$465.74$479.51+$43
Bitcoin Up or Down - April 15, 2:15AM-2:20AM ET12$457.52$102.90+$15
Bitcoin Up or Down - April 23, 3:05AM-3:10AM ET32$430.58$345.34-$85
Bitcoin Up or Down - April 18, 5:00PM-5:05PM ET8$414.69$259.48+$13
Bitcoin Up or Down - April 15, 9:25AM-9:30AM ET9$392.84$129.59+$20
Bitcoin Up or Down - April 16, 2:00AM-2:15AM ET15$384.29$0.00-$384

Top 15 winners by P/L

MarketBUY $Net P/L
Bitcoin Up or Down - April 21, 9:20AM-9:25AM ET$70.05+$507
Bitcoin Up or Down - April 21, 4:55PM-5:00PM ET$0.00+$481
Bitcoin Up or Down - April 22, 3:35AM-3:40AM ET$0.00+$450
Bitcoin Up or Down - April 23, 9:15AM-9:20AM ET$119.45+$430
Bitcoin Up or Down - April 21, 4:05PM-4:10PM ET$185.16+$426
Bitcoin Up or Down - April 17, 9:00AM-9:15AM ET$86.77+$408
Bitcoin Up or Down - April 27, 12:25PM-12:30PM ET$64.95+$386
Bitcoin Up or Down - April 12, 1:45PM-1:50PM ET$112.71+$373
Bitcoin Up or Down - April 22, 1:20AM-1:25AM ET$0.00+$372
Bitcoin Up or Down - April 22, 9:45AM-9:50AM ET$108.02+$372
Bitcoin Up or Down - April 27, 3:45PM-3:50PM ET$0.00+$366
Bitcoin Up or Down - April 27, 11:50AM-11:55AM ET$0.00+$366
Bitcoin Up or Down - April 27, 7:50AM-7:55AM ET$0.00+$366
Bitcoin Up or Down - April 26, 4:05PM-4:10PM ET$0.00+$366
Bitcoin Up or Down - April 26, 12:15PM-12:20PM ET$0.00+$366

Top 15 losers by P/L

MarketBUY $Net P/L
Bitcoin Up or Down - April 24, 5:40PM-5:45PM ET$569.21-$404
Bitcoin Up or Down - April 16, 2:00AM-2:15AM ET$384.29-$384
Bitcoin Up or Down - April 17, 2:05AM-2:10AM ET$558.89-$361
Bitcoin Up or Down - April 10, 3:00AM-3:05AM ET$353.21-$350
Bitcoin Up or Down - April 12, 3:10PM-3:15PM ET$339.04-$339
Bitcoin Up or Down - April 23, 2:15AM-2:20AM ET$489.34-$327
Bitcoin Up or Down - April 14, 6:55AM-7:00AM ET$333.71-$292
Bitcoin Up or Down - April 10, 5:40AM-5:45AM ET$279.63-$280
Bitcoin Up or Down - April 17, 11:45AM-11:50AM ET$515.70-$234
Bitcoin Up or Down - April 21, 12:15AM-12:20AM ET$326.70-$230
Bitcoin Up or Down - April 16, 2:00AM-2:05AM ET$254.22-$216
Ethereum Up or Down - April 13, 2:40AM-2:45AM ET$353.00-$211
Bitcoin Up or Down - April 15, 2:10AM-2:15AM ET$209.66-$207
Ethereum Up or Down - April 25, 10:00AM-10:05AM ET$207.06-$200
Ethereum Up or Down - April 10, 5:40AM-5:45AM ET$194.88-$195

Report generated 2026-04-29 02:40 from SIRMARTINGALE_trades.csv.

// 005 / Filter strategy

Filter strategy

Which standard filters move the needle on this trader, and which destroy the edge.

Wallet: 0x9eb48be5d329b282b8a18473db7ca6eaeeec65a1 Window: 2026-04-01 → 2026-04-28 Baseline: 12,055 BUYs · 38.4% WR · $144,173 deployed · +$54,020 P/L · +37.47% ROI (resolved-BUY view) Cash-flow P/L (the more relevant view for this trader): +$119,586 / +82.95% ROI

Methodology: Each filter is applied to the resolved-BUY set with cash-flow P/L allocated per-trade. ROI is measured against BUY notional within the filter. The standard filter battery is designed for traders with multiple selectable dimensions (price band, dominance ratio, hour, category) — it transfers poorly to traders whose alpha is concentrated outside those dimensions.

The headline result

One filter does meaningful damage. The rest are inapplicable or no-ops.

The damaging one — the standard "$0.30-$0.70 sweet spot" filter — would cut his profit by 65% (from +$54K to +$19K). That is itself the most important filter finding: don't apply this filter to this strategy. The longshot zone he trades ($0.00-$0.20) is a load-bearing component of the edge, not noise to be filtered away.

The hour-exclusion filters do nothing because his sleep window already excludes the worst hours. The dominance filter returns zero because there's no both-sides activity to rank. The category filter is meaningless because the entire book is one category.

The only genuine refinement available from filter experiments is on a different axis: asset/duration selection within the Crypto vertical. ETH 5m markets carry a SELL/BUY ratio of 2.59× vs 1.32× for BTC 5m — meaning per dollar of capital, ETH 5m extracts roughly twice the SELL alpha. A capacity-constrained replicator would over-weight ETH 5m within the available inventory.


Filter results table

FilterTradesWRCapitalP/LROIΔ vs baseline
Unfiltered baseline12,05538.4%$144.2K+$54,020+37.47%
Resolved only12,05038.4%$144.1K+$53,975+37.45%-$45
Price 0.30–0.70 (the standard "sweet spot")4,67049.7%$65.1K+$18,616+28.6%-$35,405
Price 0.60–0.70 (narrower sweet spot)84768.0%$17.7K+$4,850+27.4%-$49,170
High-conviction (dom ≥ 2×, dom leg only)0$0$0-$54,020 (N/A)
Exclude single worst hour (00:00 UTC)12,05538.4%$144.2K+$54,020+37.47%$0 (no fills there)
Exclude worst 4 hours12,05538.4%$144.2K+$54,020+37.47%$0 (no fills there)
Exclude losing categories (none)12,05538.4%$144.2K+$54,020+37.47%$0
STACK: high-conv + skip worst hour + skip losing cats0$0$0-$54,020 (N/A)

Filter-by-filter commentary

1. Price band filters → DESTRUCTIVE — DO NOT APPLY

This is the most important finding in the entire filter analysis. The "$0.30-$0.70" filter is the canonical sweet-spot for directional bettors — it usually concentrates the book on coin-flip-zone trades where signal beats noise most cleanly. For SirMartingale, applying it cuts profit by 65%.

The mechanism: he extracts +$24,179 of P/L from the $0.00-$0.20 entry zone (2,090 + 2,086 = 4,176 trades, 7% of capital). That's 45% of his total resolved-BUY P/L on 7% of his capital. The standard filter would discard those trades entirely.

The narrower "$0.60-$0.70" filter does even more damage (-$49K), because it discards both the longshot tail AND the moderate-favorite zone, leaving only one narrow band that doesn't carry enough volume to matter.

Lesson: the "sweet spot" filter is correctly named for bettors whose alpha lives in the coin-flip zone. But for traders who derive meaningful alpha from longshots (whether from mispricing or from the 99×-on-a-hit lottery effect), it's actively harmful. Read the price-band ROI distribution before applying any price filter — if the lowest-price band has ROI > 100%, the filter will destroy that wing of the strategy.

2. High-conviction filter → NOT APPLICABLE

Standard MM-style filter: keep only markets where dominance ratio ≥ 2×, dominant leg only. SirMartingale has 0% both-sides participation — he never buys both sides — so there are zero qualifying markets and the filter returns an empty set. This is structural, not a tuning issue: the strategy doesn't have a pairing dimension to dominance-rank.

3. Hour filter → NO-OP (already optimized)

The "exclude worst-performing hours" filter is meant to drop the 4 worst hourly buckets. SirMartingale already has zero trades in 23:00, 00:00, 01:00, and 02:00 UTC — those are his hard sleep window. Filtering them out removes nothing. The next-worst hours (03:00, 04:00, 05:00, 06:00) all have positive P/L, so excluding them would only subtract good fills.

This is actually a positive finding: his discretionary scheduling has already done the optimization. The bot is awake when the edge is sharpest and sleeping when it isn't.

4. Category filter → MEANINGLESS

100% of trades are Crypto. Single-vertical book. The filter is identity-equivalent to baseline.

5. STACK filter → BROKEN

The stacked filter is dominated by the high-conviction component, which collapses the sample to zero. Output: $0 P/L, +0% ROI, -$54K vs baseline. Don't stack high-conviction here for the same reason the high-conviction filter alone fails — there's no both-sides population to rank.


What filters would add value if you could measure them

The framework's standard filters miss the actual exploitable dimensions of this trader. The genuinely useful refinements would require data we don't have in the trade CSV alone:

Hypothetical filterWhy it might helpRequired data
Asset filter: ETH 5m onlySELL/BUY ratio 2.59× vs 1.32× on BTC 5m — alpha-per-dollar is highest thereAlready computable from slug parsing; ETH 5m already carries 22% of book
Spot-tape lag filterSkip markets where the last spot tick happened > 5s ago — the lag arb requires fresh price actionBTC/ETH tick data + per-trade orderbook depth
Realized-vol regime filterHigher BTC realized vol → more frequent mispricings → larger denominatorBTC tick data
Skip when orderbook bid-ask spread > 5¢Wide spreads indicate thin/dying markets where the SELL exit may not fillL2 orderbook snapshots
Skip the first 30 seconds of a marketLow-info window where the maker quotes are still being calibratedPer-market trade timestamps

The first one (ETH 5m over-weight) is the only one computable from the trade CSV and is the genuine actionable refinement. The rest require microstructure data outside the wallet's trade history.


Bottom line for replication

The base strategy already extracts the available edge. The standard PR&R filter battery is misaligned with the actual structure of this trader. Three concrete recommendations for a replicator:

  1. DO NOT apply the $0.30-$0.70 price filter. It cuts 65% of the profit by removing the longshot allocation that drives the ROI tail.
  1. DO over-weight ETH 5m within the inventory. Same rule, same execution, but ETH 5m has 2× the alpha-per-dollar of BTC 5m. The capacity is small (~$580/day deployed in the reference book), so it's a "fill what you can on ETH 5m, then continue on BTC 5m" priority order.
  1. DO preserve the sleep window. 23:00-02:00 UTC is when his edge is weakest (the operator's sleep schedule incidentally coincides with the lowest-edge hours). Don't try to make the bot 24/7 just to add fill volume — the marginal hours destroy more than they add.

The single most useful "filter" you can apply to this strategy is knowing which of the standard filters to refuse. See SIRMARTINGALE_playbook.md for the runnable spec.

// 006 / Replication playbook

Replication playbook

Operator-grade spec for cloning the strategy. Numbers, thresholds, ops checklist.

Source wallet: 0x9eb48be5d329b282b8a18473db7ca6eaeeec65a1 Strategy: Directional in-window crypto microstructure arbitrage with active SELL discipline Reference book: $144,173 BUY notional → +$119,586 net cash-flow P/L → +82.95% ROI in 28 days


One-paragraph operator brief

Build a Polymarket bot that watches the BTC and ETH spot tape against the live CLOB orderbook on btc-updown-5m, btc-updown-15m, and eth-updown-5m markets. When the spot price moves enough that one side of an Up/Down market is mispriced relative to your fair-value model (the spot-implied probability), buy that side. As soon as the orderbook catches up to fair value (typically 15-60 seconds later), aggressively sell into the rally — convert as much unrealized into realized as the orderbook will absorb. Hold any unsold residual to settlement. Cap per-market spend at ~$50 baseline and ~$400 max. Run during US business hours (12:00-22:00 UTC); sleep overnight (23:00-02:00 UTC). Do NOT apply a $0.30-$0.70 sweet-spot filter — the longshot allocation drives the tail returns. Expect ~80% monthly ROI on $10K-$15K of working capital.


1. Market selection

RuleValue
Asset classPolymarket prediction markets
Market categoryCrypto — only BTC and ETH Up/Down
Slug patternbtc-updown-5m-, btc-updown-15m-, eth-updown-5m-*
Excluded series-1h-, -4h-, eth-updown-15m-* (negligible volume in reference book), SOL, all other assets
Eligibility filterMarket is live AND spot-implied probability differs from CLOB mid by ≥ X bps (see Entry Logic)

Asset weighting (capacity-aware): prioritize ETH 5m fills first when the signal is present (highest alpha-per-dollar at 2.59× SELL/BUY ratio), then BTC 5m (workhorse, 1.32× ratio), then BTC 15m (1.51× ratio, slower turn). The ETH 5m capacity in the reference book was only ~$580/day — that's the absolute alpha-concentrate ceiling at observed competition levels.


2. Entry logic

def should_enter(market, spot_price_now):
              # Asset/duration whitelist
              if market.asset not in ("BTC", "ETH"):           return None
              if market.duration not in ("5m", "15m"):         return None
              if market.asset == "ETH" and market.duration == "15m":  return None  # negligible volume
          
              # Window timing — enter in the active price-discovery phase, not in last 5s
              sec_left = seconds_until_close(market)
              if sec_left < 10 or sec_left > market.duration_seconds - 30:
                  return None  # too late or too early
          
              # Sleep window — preserve the 7-9pm Eastern downtime
              if utc_hour(now()) in (23, 0, 1, 2):             return None
          
              # Fair-value gap — the actual signal
              fair_prob_up = price_to_prob_up(market.target_threshold, spot_price_now,
                                              spot_vol_now, sec_left)
              clob_prob_up = market.up_side.mid_price
              gap = fair_prob_up - clob_prob_up
          
              if abs(gap) < 0.05:                              return None  # not enough edge
              return ("Up" if gap > 0 else "Down")
ThresholdValueRationale
Entry signal**\fair_prob - clob_prob\≥ 5%**The spot-to-CLOB lag must be wide enough to cover slippage + fees; below 5% the edge is noise
Entry priceWhatever the orderbook offers at signal timeHe uses 101 distinct cents, no anchor. Don't pin a price; lift the best ASK
Window positionFirst 60-80% of the market windowLate-window entries (last 30s) carry too little time for the rally to develop
Per-market clip$5-$50 typical, $400 absolute maxMatch the observed P75 of $16, max of $366. Don't scale-by-conviction
Multi-leg fan-outYes — 2-5 same-second BUYs across orderbook depthWalk the book to fill the clip; the reference shows 6-8 BUYs in the entry burst

Critical: do not anchor entry to a specific price band. The standard "$0.30-$0.70 sweet spot" rule destroys 65% of the edge by stripping out the longshot zone where this strategy extracts most of its tail ROI.


3. Exit logic (the SELL leg — this is the alpha)

def manage_position(position):
              # Phase 1: post staged ASK ladder at expected fair value + premium
              fv = current_fair_prob(position.market)
              
              # Walk asks up from fv to ~$0.99 in 3-5 staged tranches
              for tranche_price in stagger(fv, 0.99, n=4):
                  post_ask(position.outcome, price=tranche_price,
                           shares=position.shares / 4,
                           expires=position.market.close_time)
              
              # Phase 2: monitor — if the price overshoots your top ask, the residual
              # gets settled at $1.00 anyway. Don't chase higher.
              # Phase 3: if the market window is about to close and the asks haven't
              # filled, pull them and let the residual settle at $0/$1.
              if seconds_until_close(position.market) < 15:
                  cancel_unfilled_asks()
ThresholdValueRationale
Exit price ladderStagger 4 tranches between fair_value and $0.99Capture the full reaction rally as the orderbook climbs
First exitImmediately after entry burst (typically within 30s)The orderbook reaction is fastest in the first minute post-entry
Stop lossNoneMaximum loss per ticket is bounded by clip size. Don't stop out — let the residual ride to settlement
Hold-to-settlement fallbackYes, automaticUnsold shares settle at $1.00 (win) or $0.00 (loss). 38.4% win rate at $1.00 covers a lot of small losses
Cancel-before-closeYes, 15s before window closeStale asks get filled at bad prices in the final scramble

Why stagger asks instead of one big ask: the orderbook reaction isn't instantaneous — it climbs in 5-15 second steps as competing bots and human traders pile in. Staggered asks capture the full price ladder. A single ask at $0.95 gets filled, but you miss the $0.97-$0.99 fills that the market would have absorbed.


4. Sizing model

The reference wallet uses bounded clips (no Kelly, no Martingale despite the wallet name). Recommended sizing for replication:

BankrollPer-market clip baselinePer-market maxDaily expected USDC at risk
$1,000$0.50–$5$40~$50
$5,000$2.50–$25$200~$250
$10,000 (~ reference scale)$5–$50$400~$500
$25,000$12–$125$1,000~$1,250
$100,000+DO NOT scale linearly

Above ~$25K bankroll, you'll start to move prices when you walk the orderbook on a single market. The reference wallet at $5-$50/clip is sized below the depth wall on most markets. If you need more capacity, fragment across multiple wallets or accept that ROI will compress as you start moving prices on your own fills.

The strategy's natural capacity ceiling is around $30-50K/wallet based on the observed depth/competition. Beyond that, fragment.


5. Bankroll math

Reference book extrapolated to monthly cadence:

Monthly performance assumptions (extrapolated from 28-day window):
            Capital deployed per month:    ~$155K  (BUY notional)
            SELL proceeds per month:       ~$232K  (SELL notional)
            Net cash-flow P/L per month:   ~+$128K (cash-flow methodology)
            Expected ROI per month:        ~+83% on capital deployed
            
          Required liquid working capital: ~$5K-$15K (peak instantaneous exposure;
                                                      most capital cycles within 2-5 minutes
                                                      because exits are aggressive)

The ROI is on deployed capital, not on standby bankroll. With a $10K standby, you'd cycle ~$5K of working capital several times per day, deploying $155K cumulatively over a month for $128K of net P/L.

On a $5,000 standby bankroll  → ~$128K monthly net P/L → ~+2,500% monthly ROI on bankroll
          On a $10,000 standby bankroll → ~$128K monthly net P/L → ~+1,280% monthly ROI on bankroll
          On a $25,000 standby bankroll → ~$128K monthly net P/L → ~+512% monthly ROI on bankroll

The constraining input at small scale is your bankroll's ability to handle peak instantaneous exposure (multiple concurrent open positions). At larger scale (>$25K), the constraint becomes orderbook depth.


6. Hour scheduling

Hours (UTC)ActionReason
13:00–22:00 UTCRun the bot at full sizeUS session, peak edge — 75% of his absolute P/L comes from this window
04:00–12:00 UTCRun at half sizeAsia/Europe session, moderate edge
03:00 UTCSkip or run minimalLow-edge transition hour
23:00–02:00 UTCSleep — bot offHis sleep window. Edge appears to be lowest here based on his (0-trade) revealed preference

The 23:00-02:00 sleep window is observational, not optimized. He may simply be at a US East Coast desk and his sleep schedule incidentally coincides with the lowest-edge hours. A replicator without that constraint could test running the bot 24/7 — but the data we have suggests there's no positive edge in 23:00-02:00 to harvest, so the conservative default is to mirror the schedule.

Sundays are a hidden goldmine — +65% ROI vs +37% baseline. If your operations allow weekend running, do not skip Sundays.


7. Operational requirements

RequirementDetail
LatencySub-500ms end-to-end (spot tick → entry signal → order submitted). This is a latency-sensitive strategy. Co-location not strictly required, but a low-latency RPC and a Polymarket WebSocket connection are.
Spot dataPersistent WebSocket to Coinbase, Binance, Kraken (whatever provides the cleanest BTC/ETH tick data). Aggregate to mid-price.
CLOB connectionPersistent WebSocket to Polymarket CLOB for L2 orderbook + market events. Polling is too slow.
WalletSingle EOA, USDC-funded on Polygon, ~$5K-$15K liquid balance. Persistent nonce manager for the sub-second order bursts.
GasPolygon — negligible (<$0.01 per fill).
Uptime18-20 hours/day. Hard sleep window 23:00-02:00 UTC is fine.
ConcurrencySingle bot is fine — the rate limit is the 5-15min market schedule, not your throughput.
MonitoringLog every fill with (market_slug, outcome, side, price, shares, ts, spot_price_at_decision, fair_prob_at_decision). Daily reconciliation against expected EV. Weekly review of SELL/BUY ratio per asset.

8. Risk profile

RiskSeverityMitigation
Per-trade max loss$5-$400 (clip-bounded)Structural — every fill is bounded by the clip size you sent
Daily max drawdown observed-$274 (April 24)None needed — drawdown is naturally bounded by daily fill count × clip size
Strategy decay (other latency arbs)HighThis is the biggest risk. As more bots compete on spot-to-CLOB latency, the gap narrows and per-trade EV compresses. Monitor the SELL/BUY ratio weekly — if it drops below 1.2× sustained, the lag has tightened.
Spot data feed outageHighBot fails into the $0.30-$0.70 zone with no signal — exit immediately if any spot feed goes down. Don't trade blind.
BTC/ETH realized vol collapseMediumLower spot vol → fewer mispricings → fewer fills. Edge per fill stays the same; quantity drops. Strategy doesn't lose money in low-vol regime, just earns less.
Adverse selection on SELL legMediumWhen you post asks at $0.85 and they fill instantly, you're selling to someone who has more information than you. Stagger asks; don't let the entire position fill at the first lift
Polymarket CLOB rule changesLowTick size unlikely to change; market schedule is product-stable
Over-fitting to the longshot zoneMediumThe +475% ROI on $0.00-$0.10 is reliant on the 99×-on-hit lottery. If hit rate drops from 5.5% to 3%, that band's ROI craters. Watch the longshot win rate quarterly.

The strategy is structurally bounded-loss per trade, but not bounded-loss per regime. A multi-week period of low BTC vol or sustained one-way trends could cause the bot to bleed slowly through its sleep schedule and fair-value model failures. Watch the rolling 7-day P/L; if any 7-day window goes negative, pause and audit.


9. Diagnostic checklist for "is the bot still working?"

Run weekly:

CheckHealthy rangeAction if outside
Daily markets touched100–300If <100: signal is firing too rarely; loosen the `\fair-clob\≥ 5%` threshold. If >300: too noisy; tighten
% of BUYs in $0.00-$0.20 zone30-40%If <20%: longshot tail is missing — investigate why fair-value model isn't catching low-prob mispricings. If >50%: signal is over-firing in noisy zones
SELL/BUY notional ratio (overall)1.3–1.6×If <1.3×: orderbook reaction is failing or competition has tightened — pause and audit. If >2.0×: amazing, but verify it's not a calculation bug
SELL/BUY ratio per asset (ETH 5m specifically)2.0× or higherIf ETH 5m drops below 1.5×, something is wrong — that's the alpha concentrate
Daily P/L-$500 to +$5,000If consistently negative >2 days: pause and audit fair-value model
Win rate on held residual35-45%If <30%: directional signal is degraded — fair-value model is mispredicting moves
Hours covered18-20/day with hard sleepIf sleep window drifts: ensure scheduler is reliable

10. What this playbook deliberately does NOT include

  • No "$0.30-$0.70 sweet spot" filter. This is the most important "don't" — the standard PR&R sweet-spot rule destroys 65% of this strategy's edge by removing the longshot allocation.
  • No Martingale doubling. Despite the wallet name, the actual sizing is bounded and disciplined. Don't add doubling logic; it would expose the strategy to ruinous drawdown that the bounded clips currently protect against.
  • No directional view that overrides the fair-value model. The signal is the spot-to-CLOB gap. Don't add "but BTC always rallies on Mondays" or any other directional thesis on top — it'll bias the signal and kill the calibration.
  • No copy-trading. Each market resolves in 5-15 minutes; nothing to copy from another wallet. This is a self-contained edge.
  • No hedging. The 0% both-sides rate confirms hedging is not part of this strategy. Adding a hedge would drag the SELL alpha to ~zero.
  • No 1-hour or 4-hour BTC markets. Those windows are too slow for spot-to-CLOB latency arbitrage. The orderbook has time to fully equilibrate, killing the edge.
  • No sports / politics / non-crypto. The fair-value model is BTC/ETH-specific. Sports markets have different edge sources entirely.

The whole point of this strategy is that it's small, fast, and disciplined. Every "improvement" you might be tempted to add is something the source trader implicitly tested and rejected by not doing it. Trust the data.


TL;DR — implementable in ~150 lines of Python

# Pseudocode — outline only. Real implementation needs L2 orderbook + spot WebSocket.
          async def run_bot():
              spot_feed = await connect_spot_websocket()        # Coinbase/Binance BTC + ETH
              clob_feed = await connect_polymarket_clob_ws()
              
              while True:
                  # 1. Skip sleep window
                  if utc_hour(now()) in (23, 0, 1, 2):
                      await asyncio.sleep(60)
                      continue
                  
                  # 2. Walk active markets matching our universe
                  for market in active_markets("btc-updown-5m", "btc-updown-15m", "eth-updown-5m"):
                      sec_left = seconds_until_close(market)
                      if not (10 < sec_left < market.duration_seconds - 30):
                          continue
                      
                      # 3. Compute fair-value gap
                      spot = spot_feed.latest(market.asset)
                      fair_prob = compute_fair_prob_up(market, spot)
                      clob_prob = market.up_side.mid_price
                      gap = fair_prob - clob_prob
                      
                      if abs(gap) < 0.05:
                          continue  # no edge
                      
                      # 4. Enter — walk the orderbook with fan-out
                      outcome = "Up" if gap > 0 else "Down"
                      clip_size = min(50.0, available_capital() * 0.005)  # $5-$50 baseline
                      fills = await walk_book_buy(market, outcome, max_usdc=clip_size)
                      
                      # 5. Stagger ASKs from fair_value to $0.99
                      if fills.shares > 0:
                          fv_ask = max(0.30, fair_prob)  # don't ask below 30%
                          for tranche_price in stagger(fv_ask, 0.99, n=4):
                              await post_ask(market, outcome,
                                             price=tranche_price,
                                             shares=fills.shares / 4,
                                             expires=market.close_time - timedelta(seconds=15))
                      # 6. Unsold shares auto-settle at $1 (win) or $0 (loss)
                  
                  await asyncio.sleep(0.5)

Run this 13-22 UTC. Reconcile daily. Expect ~+80% monthly ROI on $10K of working capital, bounded by your latency to Polymarket's matching engine and the realized vol of BTC/ETH during the window.

The wallet name says "Martingale" but the strategy is anything but. It's disciplined latency arbitrage with active exit management. Replicate the discipline; ignore the name.