Poly Research & Robotics
PR&R / Trader Report
Home / Reports / 080BEc
Polymarket / On-chain

080BEc

On-chain analysis of Polymarket trader 080BEc. Active over 29 days with 142,621 trades across 7,549 markets, netting +$25,483 at +1.5% ROI.

Published May 08, 2026 ~9 min read By PR&R Research View on Polymarket →
Volume traded
$1.75M
29-day window
Realized return
+1.5%
Cash-flow accounting
Top category share
100%
Crypto of total volume
Both-sides rate
99.0%
Market-maker shape
// 001 / Analysis

The portfolio shape, and where the edge appears to come from.

Wallet activity across 29 days, every fill mapped, profile traced.

Wallet: 0x60889af507ec3f9da136f38b1c58080bec32f361 Window: 2026-04-08 to 2026-05-06 (29 calendar days, all 29 active) Universe: 142,621 trades across 7,549 unique markets Net P/L: +$25,483 on $1,747,867 deployed = +1.46% ROI

This wallet is a pure, automated spread-capture market maker running on Polymarket's BTC 5-minute Up/Down markets around the clock. Every trade is a BUY. There are zero SELLs. The bot buys both sides of nearly every market it touches, locks in a paired cost below $1.00, and collects the guaranteed spread when the market resolves. It is not making directional calls. It does not have a view on whether Bitcoin goes up or down. It simply provides liquidity to both sides of the binary simultaneously and harvests the bid-ask spread embedded in the combined purchase cost.

The numbers confirm this with clinical precision. Of 7,549 markets touched, 7,474 had both sides purchased, a 99.0% both-sides participation rate. The median paired cost across those 7,474 markets is $0.9907, meaning the bot locks in an average guaranteed spread of $0.0093 per dollar of shares held. The win rate on resolved BUYs is 50.34%, exactly what you'd expect from a coin-flip market where half the capital is correctly placed by construction. ROI of +1.46% on $1.75 million deployed over 29 days translates to roughly $879 per day in spread capture from pure mechanical arbitrage, with zero directional risk.

The portfolio shape

The universe is one market type: btc-updown-5m-*. Every market in the top-10 by volume, every market in the best and worst P/L lists, every slug in the CSV sample carries that pattern. No ETH, no SOL, no sports, no politics. Within BTC 5-minute markets, the bot is indiscriminate about timing: trades appear in all 24 UTC hours with nearly identical trade counts, from 3,801 at hour 21 to 7,436 at hour 13. The slight concentration during US hours is real but minor.

Trade size is tightly bounded and near-uniform. The median fill is $10.13, the mean $12.26, and the P99 is only $36.64 against a hard maximum of $54.37. The top 5% of trades by size carry only 13.7% of total capital, the most uniformly-distributed book in the PR&R dataset. This is a deliberate design choice: uniform sizing suppresses variance and ensures no single market or single fill creates a loss large enough to matter.

SCALE142,621 trades in 29 days. That is 4,918 fills per day, 205 per hour, roughly one fill every 17-18 seconds around the clock, 24/7, without a single break day.

Where the edge appears to come from

The edge is the spread, and it is wafer-thin by design. The bot targets markets where the combined cost of buying "Up" and "Down" in the same 5-minute window is below $1.00. When a market resolves, one side pays $1.00 per share and the other pays $0.00. If the bot bought equal shares on both sides at a combined cost of $0.99, it has locked in +$0.01 per share regardless of outcome. Multiply that by millions of shares across thousands of markets and you get the $25,483 in the account.

Mechanism: Guaranteed spread = 1 - (Up_VWAP + Down_VWAP). When paired cost is $0.9907, the locked-in profit per resolution is $0.0093 per unit deployed. The actual win rate of 50.34% is irrelevant to the economics.

The dominance ratio analysis reveals that the bot occasionally tilts. 1,680 markets had a dominance ratio above 3x, meaning it put three or more times as much capital on one side as the other. In those high-conviction markets, the dominant side won 95.8% of the time, compared to 61.9% in the 1x-1.5x band. This is not noise. It means the bot has some secondary signal, whether a momentum indicator, a spot-tape read, or a stale-price detector, that fires on high-conviction tilts. The spread capture is the primary business but something is driving the lopsided allocation in a meaningful subset of markets.

The high-conviction filter result confirms it: 33,398 fills at dominance 2x or higher produced +$122,455 P/L at +19.6% ROI, compared to +$25,483 at +1.46% for the whole book. The directional tilt is where most of the actual alpha lives.

One market, trade by trade

The clearest single-market illustration from the CSV is Bitcoin Up or Down, April 7, 8:00PM-8:05PM ET (resolved: Down). The bot fires its first fills at 00:00:07 UTC (two minutes into the market window) and continues through 00:03:49 UTC. Across roughly 30 fills, it places capital on both Up ($14.10 to $27.60 per fill) and Down ($1.80 to $14.70 per fill). The Up side is buying at prices ranging from $0.47 to $0.92; the Down side from $0.06 to $0.56. The combined paired cost across this market is approximately $0.97. When Down resolves, the Down shares pay $1.00 each and the Up shares pay $0.00. Net: positive spread collected, directional result irrelevant.

DECAY SIGNALThe rolling 7-day P/L peaked at +$13,096 in the week ending April 24, then collapsed. The final 7-day window ending May 6 printed -$3,276. Week 19 (May 4-6) alone lost -$2,419. Something changed materially in the last week of the observation period.

What you can copy

The mechanical structure of this strategy is fully transparent and straightforward to replicate. For each new btc-updown-5m-* market that opens:

  1. Buy both "Up" and "Down" simultaneously, targeting a combined cost below $0.99.
  2. Size each side at $5-$15 per fill using multiple small clips rather than one large order.
  3. Hold to resolution without any SELL activity.
  4. The spread is collected automatically at resolution.

The dominance-tilt component is harder to copy without knowing the secondary signal, but applying the high-conviction filter to your own fills (restrict to markets where you achieve 2x+ allocation on one side) dramatically improves ROI from 1.46% to 19.6%.

What you probably can't copy

The operational infrastructure. Running 205 fills per hour, 24/7, against 5-minute markets that open and close every 300 seconds requires automated systems with sub-second execution. More importantly, the strategy depends on finding markets where the paired cost is genuinely below $1.00. The $0.9907 median paired cost implies the bot sources these frequently, but as more market makers compete for the same spread, paired costs converge toward $1.00 and the edge compresses. The late-period decay visible in the rolling windows (from +$10,000/week in peak weeks to -$3,276 in the final week) may already reflect this competitive pressure arriving.

// 002 / Figure

Cumulative P/L over the window.

The line is daily cumulative net P/L. Mouse along it for daily detail. The dashed grey trace, when present, is cumulative BUY notional deployed.

// 003 / Reverse-engineering report

Reverse-engineering report

Every fill mapped, the asymmetric profile traced, the math behind the edge.

Wallet: 0x60889af507ec3f9da136f38b1c58080bec32f361 Window: 2026-04-08 to 2026-05-06 (29 calendar days, all 29 active) Universe: 142,621 trades across 7,549 unique markets (7,548 unique events) - $1,747,867 gross BUY notional Net P/L: +$25,483 on $1,747,867 deployed = +1.458% ROI

P/L methodology: Settlement-accounting. Each BUY trade's P/L = shares x $1.00 if the outcome won, or shares x $0.00 if lost, minus the USDC spent. No SELL trades exist in this book. Spread P/L is computed as (1 - paired_cost) x paired_shares per both-sides market. The +$25,483 net figure is the arithmetic sum of all resolved-BUY P/L across 142,615 resolved fills.

The Punchline

This wallet is a pure automated spread-capture market maker on Polymarket's BTC 5-minute Up/Down markets. The bot buys both sides of virtually every market it enters, holds to resolution, and collects the guaranteed spread embedded in the combined purchase cost falling below $1.00. There is no SELL engine, no exit management, no directional thesis. The 50.34% win rate on resolved BUYs is not the signal. It is a mechanical consequence of buying both sides: exactly half the capital resolves as a winner, which is precisely what a 50/50 binary market produces when you've bought both outcomes.

The strategy has a secondary layer that becomes visible in the dominance ratio analysis: in a meaningful subset of markets the bot tilts heavily to one side (dominance ratio above 3x), and those lopsided markets show a dominant-side win rate of 95.8%. This implies a directional signal of some kind is driving asymmetric allocation on selected markets, likely a spot-tape or momentum read similar to what pure directional traders run. But spread capture is the primary business. The directional tilt is a performance multiplier layered on top.

The economics are simple and mechanical. Median paired cost of $0.9907 means the bot locks in an average $0.0093 per unit of paired shares on every resolved both-sides market. Across $1.75 million of deployed capital, that structural spread generates the majority of the +$25,483 net P/L. The remaining P/L comes from the directional tilts in high-dominance markets, which are small in count but outsized in per-market return.

KEY NUMBER99.0% of all 7,549 markets had both Up and Down purchased. This is the defining structural fact of the strategy. It is not a directional trader with occasional hedges. It is a market maker with occasional directional tilts.

What He Trades

The universe is singular: BTC 5-minute Up/Down markets on Polymarket, slug pattern btc-updown-5m-*. Every single market in the top-10 by volume, every slug in the CSV sample, every entry in the best and worst P/L lists carries this slug. There is no ETH, no SOL, no 15-minute duration, no 1-hour duration, no sports, no politics. One asset, one duration.

btc-updown-5m-*   7,549 markets  $1,747,867 BUY notional  100% of book
All other slugs:  0 markets      $0 BUY notional

The 7 remaining trades (0.005%) outside Crypto are "Other" with $32.88 volume and -$12 P/L. Rounding error.

Within BTC 5-minute markets, the bot does not discriminate by time of day or day of week in any meaningful way. Trade volume runs from 3,801 fills (21:00 UTC) to 7,436 fills (13:00 UTC) across all 24 hours, with a coefficient of variation of roughly 23% across hours. This is essentially flat 24/7 coverage with a mild daytime bias, not the hard session-specific scheduling seen in directional traders.

Trade size distribution is deliberately near-uniform:

Statistic Value
Median $10.13
Mean $12.26
P95 $28.50
P99 $36.64
Max $54.37
Top 5% share of capital 13.7%

The top-5% share at 13.7% is the lowest concentration ratio in any trader we have profiled. For comparison, SirMartingale's top-5% share is 37%. This wallet deliberately caps fill sizes to keep per-market exposure bounded and variance low. There is no Kelly scaling, no conviction sizing, no large outlier fills.

The Order of Operations: One Market, Trade by Trade

The clearest both-sides illustration from the CSV is Bitcoin Up or Down, April 7, 8:00PM-8:05PM ET (slug btc-updown-5m-1775606400, resolved: Down).

Time (UTC) Outcome Bought Resolved Side Price Shares USDC
00:00:07 Up Down $0.50 30 $15.00
00:00:07 Down Down $0.49 30 $14.70
00:00:13 Down Down $0.49 30 $14.70
00:00:29 Up Down $0.64 30 $19.20
00:00:31 Up Down $0.57 30 $17.10
00:00:31 Down Down $0.44 30 $13.20
00:00:37 Down Down $0.49 30 $14.70
00:00:39 Down Down $0.44 30 $13.20
00:00:47 Up Down $0.47 30 $14.10
00:00:49 Up Down $0.47 30 $14.10
00:00:53 Down Down $0.56 30 $16.80
00:00:55 Up Down $0.47 30 $14.10
00:01:07 Down Down $0.45 30 $13.50
00:01:07 Down Down $0.45 30 $13.50
00:01:11 Up Down $0.53 30 $15.90
00:01:15 Down Down $0.48 30 $14.40
00:01:17 Up Down $0.59 30 $17.70
00:01:21 Up Down $0.55 30 $16.50
00:01:27 Down Down $0.48 30 $14.54
00:01:31 Down Down $0.49 30 $14.70
00:01:31 Up Down $0.59 30 $17.77
00:02:17 Up Down $0.66 30 $19.80
00:02:27 Down Down $0.13 30 $4.01
00:02:35 Down Down $0.09 30 $2.70
00:02:37 Up Down $0.92 30 $27.60
00:02:41 Down Down $0.09 30 $2.70
00:02:43 Up Down $0.90 30 $27.00
00:02:47 Up Down $0.92 30 $27.60
00:02:55 Down Down $0.06 30 $1.80
00:02:55 Up Down $0.95 30 $28.50
00:03:17 Down Down $0.06 30 $1.80
00:03:17 Down Down $0.08 30 $2.40
00:03:23 Up Down $0.91 30 $27.30
00:03:25 Down Down $0.10 30 $3.13
00:03:33 Up Down $0.83 30 $24.90
00:03:39 Down Down $0.19 30 $5.70
00:03:49 Up Down $0.79 30 $23.70

Resolution: Down wins. All "Down" shares pay $1.00. All "Up" shares pay $0.00.

Walk-through:

  1. 00:00:07 to 00:01:31. The bot opens the window buying both Up and Down in a near-symmetrical scatter. It buys Up at $0.47-$0.66 and Down at $0.44-$0.56. Combined cost on symmetric pairs is ~$0.97-$1.01. The bot is harvesting whatever spread exists in the initial orderbook.

  2. 00:02:17 to 00:03:49. Midway through the 5-minute window something changes. The bot buys Up at extremely high prices ($0.79-$0.95) and Down at extremely low prices ($0.06-$0.19). This is the dominance tilt in action: the bot has concluded "Down" is the strong probability and it buys heavily asymmetric. It still buys both sides, but the allocation is 5:1 or more in favor of Down.

  3. Outcome. Down resolves winner. The Down shares bought at $0.06-$0.56 pay $1.00 each. The Up shares bought at $0.47-$0.95 pay $0.00. The net result on the entire market depends on the ratio of Up to Down USDC deployed. In the late phase, the Down-heavy tilt plus resolution in Down's favor generates strong positive P/L for that market.

This is the full strategy in one market. Early-window symmetric spread capture, late-window directional tilt when the bot sees a signal, hold to resolution.

Why It Works: The Math

Spread capture base case (symmetric allocation):

Paired cost example:
  Buy Up  at $0.52, Buy Down at $0.48 → paired cost = $1.00 → spread = $0.00
  Buy Up  at $0.50, Buy Down at $0.47 → paired cost = $0.97 → spread = $0.03
  Buy Up  at $0.55, Buy Down at $0.45 → paired cost = $1.00 → spread = $0.00

Median observed paired cost: $0.9907
  → Expected spread per paired unit: $0.0093
  → On $1,747,867 gross notional at ~50% paired:
    Structural spread P/L ≈ $15,679 (matches pnl_decomp.spread_pnl = $15,679)

High-conviction directional tilt (2x+ dominance):
  33,398 fills in qualifying markets
  Win rate on dominant side: 88.8%
  At $626,162 deployed, +$122,455 P/L = +19.6% ROI
  (This is the filter result; the base book books less because the dominant
   allocation is partially offset by the losing non-dominant side)

The spread P/L of $15,679 is durable and structural. The directional tilt P/L is the source of performance variance. When the tilt signal works (as it did in weeks 1-3), aggregate P/L is strong. When the tilt signal degrades or competes against other market makers with the same edge (weeks 4-5), aggregate P/L collapses.

Phase 1: Trader Profile

Scale and activity: - 142,621 BUYs, 0 SELLs, 29 active days of 29 calendar days - $1,747,867 total BUY notional deployed - 7,549 unique markets, 7,548 unique events (one market per event) - 4,918 trades per day, 205 per hour, approximately 3.4 fills per minute

Execution signature: - Median inter-fill gap: 10.0 seconds - 45.7% of fills under 10 seconds apart - 92.2% under 60 seconds - 100% under 1 hour

The sub-10-second inter-fill gap at 45.7% confirms automated execution. The median of 10 seconds is not as fast as a pure latency-arb bot (SirMartingale shows a 0-second median) but is consistent with a market maker looping through available markets and posting fills at the top of the orderbook every 10-30 seconds. The fills at exactly the same second (visible in the CSV: e.g., 00:05:17 shows two fills simultaneously) confirm fan-out ordering where the bot submits multiple orders in a single block.

Buy vs. sell: 100% BUY, 0% SELL. Exceptional even among hold-to-settlement traders. Passive market maker that relies entirely on resolution payouts.

Active hours: All 24 hours have meaningful volume. No sleep window, no scheduling artifact. This is a genuinely 24/7 automated system.

Archetype: SPREAD CAPTURE / MARKET MAKER with secondary DIRECTIONAL TILT on high-dominance markets.

Phase 2: Core Strategy Identification

Both-sides participation rate: 99.0% (7,474 of 7,549 markets). This is unambiguous. No trader who runs a directional strategy accidentally buys both sides 99% of the time. The 0.99% of markets with only one side purchased are either execution failures, markets that expired before the second leg could be placed, or very early-window opportunistic buys.

Classification: Strategy A (Both-Sides Spread Capture / Market Making) with a strong secondary element of Strategy B (Directional Betting) visible exclusively in the high-dominance-ratio subset.

Not a directional bettor. Not a copy trader. Not a latency arb in the pure sense. The overall win rate of 50.34% is exactly what you get when you buy both sides of a binary market and the winning side pays $1.00.

Second-side lag median: 10 seconds. The bot enters both sides of a market within 10 seconds of each other on the median, confirming intentional pairing rather than opportunistic hedging.

STRUCTURAL PROOFMedian paired cost of $0.9907 with 58.8% of both-sides markets printing paired cost below $1.00 confirms the bot systematically finds markets where the sum of Up + Down prices is below $1.00, i.e., markets offering a guaranteed positive expected value on paired allocation.

Phase 3: Dominance Ratio Analysis

This is where the strategy's dual nature becomes quantitatively clear:

Dominance Bucket Markets Dom Win Rate Mean Paired Cost Implied Edge
1.0-1.5x (symmetric) 2,423 61.9% $0.9894 Spread only
1.5-2.0x (mild tilt) 1,568 74.5% $0.9957 Spread + weak directional
2.0-3.0x (moderate tilt) 1,803 84.2% $0.9929 Spread + strong directional
3.0x+ (high conviction) 1,680 95.8% $0.9736 Primarily directional

The dominant-side win rate progression from 61.9% to 95.8% is a real directional signal, not noise. If the bot were allocating randomly, every bucket would show approximately 50-55% dominant-side wins (since the dominant side has more capital exposed in a balanced binary market). The 95.8% win rate at 3.0x+ dominance means the bot is correctly identifying the winning side nearly 19 out of 20 times when it tilts heavily.

The mean paired cost dropping to $0.9736 in the 3.0x+ bucket is counterintuitive: it means the bot is spending disproportionately on the dominant side at prices close to $1.00 (near-certain outcomes) while the non-dominant side is bought at very low prices near $0.00. The extreme paired costs visible in the 3.0x+ list (e.g., 0.433, 0.55, 0.593, 0.591) confirm this pattern: dominant side at $0.95, non-dominant at $0.05, paired cost = $1.00 minus the spread on the non-dominant wing.

What this implies: The high-conviction signal likely fires when the market already reflects a strong directional probability, and the bot positions asymmetrically to capture the remaining spread on the near-certain side while taking a minimal hedge on the losing side for optionality.

Phase 4: Entry Price Analysis

Price Band Trades Win Rate Capital P/L ROI
$0.00-$0.10 6,835 6.1% $12,291 -$1,921 -15.6%
$0.10-$0.20 11,361 14.6% $42,531 -$853 -2.0%
$0.20-$0.30 13,254 26.3% $82,631 +$4,071 +4.9%
$0.30-$0.40 16,625 36.1% $142,265 +$2,409 +1.7%
$0.40-$0.50 22,744 46.7% $253,874 +$9,417 +3.7%
$0.50-$0.60 26,382 55.5% $352,027 +$5,512 +1.6%
$0.60-$0.70 16,143 64.9% $253,010 +$1,234 +0.5%
$0.70-$0.80 11,898 75.3% $218,760 +$1,008 +0.5%
$0.80-$0.90 10,033 85.6% $215,289 +$1,542 +0.7%
$0.90-$1.00 7,340 94.7% $175,165 +$3,064 +1.7%

The win-rate column is a near-perfect probability calibration curve: 6.1% wins at $0.00-$0.10 entry (correct for ~5% implied probability), 94.7% wins at $0.90-$1.00 (correct for ~95%). This confirms the market is efficiently pricing these markets and the bot is buying at prices that reflect real probabilities.

The ROI column is the more interesting signal. The highest ROI is in the $0.20-$0.30 band (+4.9%) and the $0.40-$0.50 band (+3.7%). These are the near-midpoint bands where spread capture is most available (paired cost cheapest to achieve below $1.00). The $0.60-$0.80 bands show near-zero ROI despite correct win rates, because buying near-favorites at $0.70-$0.80 and pairing with the near-underdog at $0.20-$0.30 still produces thin spreads.

Sub-bucket concentration: Unlike tick-specific bots (floor bidders, or near-certainty snipers), this wallet's entry prices are genuinely distributed across all 101 cents. No single price point dominates. This is consistent with a bot that lifts whatever the orderbook offers on both sides without anchoring to a specific price level.

The two loss bands ($0.00-$0.10 and $0.10-$0.20) represent the non-dominant hedge legs in high-conviction markets: the bot buys "Down" at $0.06 when it thinks "Up" is near-certain, those cheap Down shares almost never win, producing a structural drag. This drag is the cost of maintaining the both-sides framework.

Phase 5: Category and Market-Type Breakdown

Category Trades Win Rate Volume P/L ROI Assessment
Crypto (BTC 5m) 142,612 50.34% $1,747,831 +$25,495 +1.46% MODEST
Other 7 0.0% $33 -$12 -100% Negligible
Politics 1 n/a $1 $0 n/a Noise
Soccer 1 n/a $3 $0 n/a Noise

There is no useful cross-category analysis. The wallet is 99.997% BTC 5-minute Up/Down by notional. The Crypto ROI of +1.46% is the whole story.

Phase 6: Timing and Execution Analysis

Hourly distribution (UTC):

Best 4 hours (absolute P/L) Trades P/L
21:00 3,801 +$1,980
20:00 4,899 +$1,512
14:00 7,333 +$1,460
12:00 5,694 +$1,422
Worst 4 hours (labeled in filters) Trades P/L
01:00 6,921 +$1,003
13:00 7,436 +$928
15:00 6,515 +$823
22:00 5,553 +$825

Every single hour is profitable. The "worst" hours still print positive P/L. The spread-capture mechanism is so consistent that there is no genuinely bad hour. The variation in hourly P/L (from +$327 at 05:00 UTC to +$1,980 at 21:00 UTC) is more a function of trade volume than per-trade edge.

Win rates by hour: Tightly clustered between 50.0% and 50.7% across all 24 hours. No systematic hour-of-day directional edge. The slight variance around 50.3% baseline is statistical noise.

Day-of-week P/L:

Day Trades Win Rate P/L ROI
Mon 24,131 50.2% +$3,667 +1.45%
Tue 20,424 50.4% +$1,367 +0.46%
Wed 29,970 50.2% +$3,153 +1.06%
Thu 23,758 50.3% +$5,684 +2.07%
Fri 19,404 50.1% +$4,628 +1.61%
Sat 11,418 50.8% +$3,435 +2.59%
Sun 13,516 50.7% +$3,548 +1.71%

Saturday has the highest ROI (+2.59%) and the second-highest win rate (50.8%). Weekends have lower competition from other market makers, which translates to wider available spreads and better paired costs. Thursday is the best absolute-P/L weekday at +$5,684 on 23,758 trades. Tuesday is the weakest day across both ROI and absolute P/L.

Burst patterns: The CSV shows repeated multi-fill same-second bursts. In the April 7, 8:00PM-8:05PM market, multiple fills land at 00:00:07, 00:00:31, 00:01:07, 00:01:31, 00:02:55, 00:03:17 UTC. Same-second multi-leg ordering is the entry signature of an automated system routing multiple orders through the CLOB simultaneously.

Accumulation pattern per market: The bot typically places 10-40 fills per 5-minute market window, spread across the full 5 minutes, with fill cadence of every 15-60 seconds. It does not rush to establish a position in the first seconds; it builds gradually across the window. This is different from SirMartingale's entry-burst-then-exit pattern.

Phase 7: Filter Experiments

Filter Trades Win Rate Capital P/L ROI vs. Baseline
Unfiltered baseline 142,615 50.34% $1,747,843 +$25,483 +1.46% -
Price $0.30-$0.70 83,109 51.3% $1,021,045 +$18,551 +1.82% -$6,932
High-conviction (dom 2x+) 33,398 88.8% $626,162 +$122,455 +19.6% +$96,972
Top category (Crypto) 142,612 50.34% $1,747,831 +$25,495 +1.46% +$12 (identity)
Exclude worst 4 hours (1,13,15,22) 116,193 50.4% $1,415,598 +$21,903 +1.55% -$3,580
Combined (price + hour) 67,460 51.4% $826,892 +$16,783 +2.03% -$8,700

The finding that matters most: The high-conviction filter is explosively productive. Restricting to markets where dominance ratio is 2x or higher, dominant leg only, returns +$122,455 at +19.6% ROI on $626,162 of capital. That is 4.8x the ROI of the base strategy with 64% less capital deployed. This is not a noise result.

The price filter ($0.30-$0.70) is mildly helpful (+1.82% vs +1.46% ROI) but destroys absolute dollars (-$6,932). It removes the very-cheap hedge-leg buys (which are structurally slightly negative) but also removes some of the strong near-certainty dominant fills.

The hour filter does nothing meaningful. Every hour is positive and no hour is far enough below baseline to justify exclusion.

The combined filter improves ROI to +2.03% at the cost of halving the capital base and reducing absolute P/L by $8,700. For a capacity-constrained replicator who cannot deploy $1.75 million per month, this focuses the book on the most efficient markets.

Phase 8: Rolling Window Consistency

Window # Green # Red Min P/L Max P/L
Rolling 7-day 26 of 29 3 of 29 -$3,276 (ending May 6) +$13,096 (ending April 24)
Rolling 15-day All positive until late May Mixed $5,103 (ending May 6) $23,142 (ending April 23)

The deterioration at the end of the window is real and significant. The rolling 7-day P/L peaked at +$13,096 on April 24, then degraded monotonically: April 27 (+$9,409), April 30 (+$4,466), May 1 (+$1,247), May 3 (+$152), May 4 (-$1,344), May 5 (-$2,877), May 6 (-$3,276).

Week-by-week summary:

Week Trades Win Rate P/L Cumulative
W15 (Apr 8-12) 23,189 50.3% +$7,188 +$7,188
W16 (Apr 13-19) 27,384 50.2% +$10,027 +$17,215
W17 (Apr 20-26) 39,076 50.5% +$10,535 +$27,750
W18 (Apr 27-May 3) 32,961 50.4% +$152 +$27,902
W19 (May 4-6, partial) 20,005 50.2% -$2,419 +$25,483

The strategy peaked in Week 17 and has been in controlled retreat since. The most likely explanation is competitive spread compression: other market makers entering the BTC 5-minute market reduced the frequency of sub-$1.00 paired cost opportunities, squeezing the structural spread from ~$0.009 toward zero. The directional tilt signal may also have had a rough patch in weeks 4-5.

RISK SIGNALThree consecutive rolling 7-day windows ending in negative P/L (May 4, 5, 6) is a hard trigger to pause and audit. The strategy's base spread is too thin to absorb sustained competitive pressure. If paired cost median rises to $1.000 for a sustained period, the strategy becomes a net destroyer of capital.

Phase 9: P/L Decomposition

Component Value Interpretation
Structural spread P/L +$15,679 Guaranteed from paired costs below $1.00
Hedge tax (losing-side USDC) -$672,224 Total USDC spent on outcomes that lost
Total realized P/L +$25,483 Net after all resolved BUYs
Directional P/L (implied) +$9,804 Total minus spread = from tilts and lucky directionality

The hedge tax of $672,224 is the cost of the both-sides discipline. Of the $1,747,867 deployed, roughly $672K went to losing outcomes. This is not "wasteful" in the framework's terms because the spread capture on the winning leg more than compensates. The net is +$25,483.

The structural spread P/L of $15,679 represents the base, guaranteed component. The remaining $9,804 comes from the directional tilt signal performing on net. In bad weeks, the tilt can subtract from the spread P/L, explaining the negative rolling windows in the final days.

Why no SELL engine: The spread capture model works because the bot's edge is locked in at purchase time via the combined cost being below $1.00. There is no need to manage exit. The SELL leg would require tracking individual lots, posting asks, and competing for exit liquidity, all for no additional benefit since the market will resolve to $1.00 or $0.00 in at most 5 minutes. The hold-to-resolution approach is structurally correct for this strategy.

Phase 10: Strategy Specification

One-sentence summary: An automated 24/7 market maker that buys both sides of every btc-updown-5m-* market at a combined cost below $1.00, holds to resolution for guaranteed spread capture, and applies an asymmetric directional tilt on a subset of markets where a secondary signal fires.

Edge sources (two stacked):

  1. Structural spread capture: paired cost of $0.9907 median locks in $0.0093 per unit of paired shares, guaranteed regardless of direction.
  2. Directional tilt alpha: in 3,483 markets at 2x+ dominance, the dominant side wins 84-96% of the time, generating disproportionate P/L above the spread baseline.

What works: BTC 5-minute markets exclusively. Symmetric both-sides allocation as base. Asymmetric allocation when directional signal fires (dominance ratio 2x-10x). Small bounded clips ($5-$20 typical). 24/7 coverage. Hold to resolution.

What drags: Hedge-leg buys at very low prices ($0.01-$0.10) that almost never win, representing a structural drag of $1,921 in the $0.00-$0.10 bucket alone. Late-window competitive spread compression visible in weeks 4-5. Tuesday underperformance.

Rebuild parameters: See the Replication Playbook for the full implementable spec.

// 004 / Quantitative breakdown

Quantitative breakdown

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

Wallet: 0x60889af507ec3f9da136f38b1c58080bec32f361 Window: 2026-04-08 → 2026-05-06 (29 active / 29 calendar days) Methodology: Cash-flow P/L = -buy_usdc + sell_usdc + remaining_share_payout. Resolved shares settle at $1 (win) / $0 (loss); open positions marked at last price.


Phase 1 - Trader Profile

Scale

MetricValue
Total trades142,621
BUY trades142,621
SELL trades0 (0.0% of all)
Unique markets7,549
Unique events7,548
Active calendar days29 of 29
Trades per active day4,918
BUY notional$1,747,867
SELL notional$0
Gross turnover$1,747,867

Trade-size distribution (USDC per fill)

MetricValue
median$10.13
mean$12.26
p95$28.50
p99$36.64
max$54.37
Top 5% share of capital13.7%

Inter-trade gap, same (market, outcome)

MetricValue
Median (s)10.0
Mean (s)20.3
P10 (s)0.0
P90 (s)52.0
% under 1s0.0%
% under 10s45.7%
% under 60s92.2%

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

  • Both-sides rate: 99.01% (7,474 of 7,549 markets)
  • Median paired cost: $0.9907
  • Mean paired cost: $0.9880
  • Paired cost % under $1.00: 58.8%
  • Paired cost % under $0.97: 33.5%
  • Median 2nd-side hedge lag: 10s

Dominance buckets

BucketMarketsDom WRMean PairedAvg Mkt P/L
1.0–1.5x2,42361.9%$0.9894-
1.5–2.0x1,56874.5%$0.9957-
2.0–3.0x1,80384.2%$0.9929-
3.0x+1,68095.8%$0.9736-

Phase 4 - Entry-Price Analysis

BandBUY tradesResolvedWinsWRCapitalP/LROI
$0.00–$0.106,83504156.1%$12.3K-$1,921-15.63%
$0.10–$0.2011,36101,65814.6%$42.5K-$853-2.00%
$0.20–$0.3013,25403,48126.3%$82.6K+$4,071+4.93%
$0.30–$0.4016,62505,99836.1%$142.3K+$2,409+1.69%
$0.40–$0.5022,744010,62346.7%$253.9K+$9,417+3.71%
$0.50–$0.6026,382014,63355.5%$352.0K+$5,512+1.57%
$0.60–$0.7016,143010,48665.0%$253.0K+$1,234+0.49%
$0.70–$0.8011,89808,95875.3%$218.8K+$1,008+0.46%
$0.80–$0.9010,03308,58585.6%$215.3K+$1,542+0.72%
$0.90–$1.007,34006,95094.7%$175.2K+$3,064+1.75%

Phase 5 - Category & Vertical Breakdown

CategoryBUY tradesBUY $ResolvedWRP/LROI
Crypto142,612$1.75M142,61250.3%+$25,495+1.46%
Other7$3330.0%-$12-100.00%
Soccer1$300.0%+$00.00%
Politics1$100.0%+$00.00%

Phase 6 - Timing & Execution

Net P/L by hour (UTC)

HourP/LWR
00:00+$1,00750.3%
01:00+$1,00350.1%
02:00+$1,29450.5%
03:00+$74350.3%
04:00+$45150.4%
05:00+$32750.4%
06:00+$85050.6%
07:00+$66950.2%
08:00+$1,03550.5%
09:00+$1,04850.7%
10:00+$1,24150.3%
11:00+$1,30150.4%
12:00+$1,42250.5%
13:00+$92849.9%
14:00+$1,46050.2%
15:00+$82350.1%
16:00+$1,33650.2%
17:00+$75550.3%
18:00+$1,27850.4%
19:00+$1,31550.2%
20:00+$1,51150.5%
21:00+$1,98050.7%
22:00+$82550.0%
23:00+$88050.8%

Phase 8 - Rolling Window Consistency

  • Rolling 7-day windows green: 26 of 29 (89.7%)
  • Rolling 7-day P/L range: -$3,276 → +$13,096
  • Rolling 15-day windows green: 29 of 29 (100.0%)
  • Rolling 15-day P/L range: +$1,638 → +$23,141

Weekly P/L

WeekSpanTradesWRP/LCumulative
W152026-04-08 → 2026-04-1223,18950.3%+$7,188+$7,188
W162026-04-13 → 2026-04-1927,38450.2%+$10,027+$17,215
W172026-04-20 → 2026-04-2639,07650.5%+$10,535+$27,750
W182026-04-27 → 2026-05-0332,96150.4%+$152+$27,902
W192026-05-04 → 2026-05-0620,00550.2%-$2,419+$25,483

Phase 9 - P/L Decomposition

MetricValue
BUY USDC out-$1,747,867
SELL USDC in+$0
Theoretical spread P/L+$15,679
Hedge-tax outflow$672.2K
Net realized P/L+$25,483
Net ROI on BUY notional+1.46%

Phase 10 - Top Markets by Volume

MarketTradesVolumeResolvedP/L
Bitcoin Up or Down - May 5, 11:30AM-11:35AM ET37$74437+$16
Bitcoin Up or Down - May 5, 3:50PM-3:55PM ET35$74135-$21
Bitcoin Up or Down - May 5, 6:35PM-6:40PM ET36$73536-$15
Bitcoin Up or Down - May 3, 7:25PM-7:30PM ET36$73536-$15
Bitcoin Up or Down - May 5, 10:10AM-10:15AM ET36$72836-$8
Bitcoin Up or Down - May 5, 1:35AM-1:40AM ET36$72636-$6
Bitcoin Up or Down - May 5, 2:05AM-2:10AM ET36$72336-$3
Bitcoin Up or Down - May 5, 1:25AM-1:30AM ET34$72234-$42
Bitcoin Up or Down - May 5, 7:20PM-7:25PM ET34$72134-$41
Bitcoin Up or Down - May 5, 6:45PM-6:50PM ET35$72035-$40

Top 10 winners by P/L

MarketVolumeNet P/L
Bitcoin Up or Down - April 20, 10:05AM-10:10AM ET$672+$88
Bitcoin Up or Down - April 20, 9:05AM-9:10AM ET$176+$64
Bitcoin Up or Down - April 24, 6:05AM-6:10AM ET$305+$55
Bitcoin Up or Down - April 23, 10:00PM-10:05PM ET$669+$51
Bitcoin Up or Down - April 24, 2:10PM-2:15PM ET$270+$50
Bitcoin Up or Down - April 23, 6:45AM-6:50AM ET$252+$48
Bitcoin Up or Down - April 12, 1:45PM-1:50PM ET$192+$48
Bitcoin Up or Down - April 19, 12:45AM-12:50AM ET$313+$47
Bitcoin Up or Down - April 11, 12:30PM-12:35PM ET$73+$47
Bitcoin Up or Down - April 9, 9:25PM-9:30PM ET$206+$46

Top 10 losers by P/L

MarketVolumeNet P/L
Bitcoin Up or Down - May 1, 8:45PM-8:50PM ET$84-$84
Bitcoin Up or Down - May 5, 3:25AM-3:30AM ET$546-$66
Bitcoin Up or Down - May 5, 12:50AM-12:55AM ET$702-$62
Bitcoin Up or Down - May 5, 8:30AM-8:35AM ET$697-$57
Bitcoin Up or Down - May 5, 10:15AM-10:20AM ET$696-$56
Bitcoin Up or Down - May 5, 2:30PM-2:35PM ET$414-$54
Bitcoin Up or Down - May 3, 5:15PM-5:20PM ET$218-$53
Bitcoin Up or Down - May 1, 8:15PM-8:20PM ET$201-$51
Bitcoin Up or Down - April 12, 12:25PM-12:30PM ET$409-$49
Bitcoin Up or Down - April 23, 9:10PM-9:15PM ET$568-$48

Report generated 2026-05-08 10:32 UTC.

// 005 / Filter strategy

Filter strategy

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

Wallet: 0x60889af507ec3f9da136f38b1c58080bec32f361 Window: 2026-04-08 to 2026-05-06 Baseline: 142,615 resolved BUYs · 50.34% WR · $1,747,843 deployed · +$25,483 P/L · +1.46% ROI

Methodology: All filters applied to the resolved-BUY set. ROI measured against BUY notional within the filter. The standard PR&R filter battery is designed for directional bettors; most filters do not transfer naturally to a symmetric spread-capture market maker. The exception, the high-conviction dominance filter, is transformative.

The headline result

One filter is transformative. Two are mildly useful. Three are structural no-ops.

The transformative one is the high-conviction dominance filter: restricting to markets with 2x+ dominance ratio, dominant leg only, multiplies ROI from +1.46% to +19.6% and extracts +$122,455 of P/L from $626,162 of capital. That is 4.8x the base strategy's ROI and represents the directional alpha buried inside the spread-capture book.

The price filter is mildly useful for improving ROI per dollar (+1.82% vs +1.46%) but destroys absolute P/L by cutting below-$0.30 and above-$0.70 entries, which include many of the dominant-side fills in high-conviction markets. The hour filter is functionally a no-op; no hour loses money.

The category filter is identity-equivalent to baseline (99.997% Crypto). The combined filter improves ROI to +2.03% but at the cost of halving deployed capital and losing $8,700 of absolute P/L.

CRITICAL FINDINGThe high-conviction filter (dom 2x+, dominant leg only) returns +$122,455 on $626,162 deployed. The entire unfiltered book returns only +$25,483 on $1.75 million. Focusing exclusively on high-dominance dominant legs would have been nearly 5x more capital-efficient this period.

Filter results table

Filter Trades Win Rate Capital P/L ROI Delta vs Baseline
Unfiltered baseline 142,615 50.34% $1,747,843 +$25,483 +1.46% -
Price $0.30-$0.70 83,109 51.26% $1,021,045 +$18,551 +1.82% -$6,932
High-conviction (dom 2x+, dom leg) 33,398 88.78% $626,162 +$122,455 +19.56% +$96,972
Top category (Crypto) 142,612 50.34% $1,747,831 +$25,495 +1.46% +$12
Exclude worst 4 hours (1,13,15,22) 116,193 50.41% $1,415,598 +$21,903 +1.55% -$3,580
Combined (price 30-70 + exclude worst hours) 67,460 51.42% $826,892 +$16,783 +2.03% -$8,700

Filter-by-filter commentary

1. Price band filter ($0.30-$0.70) - MILD LIFT ON ROI, DESTRUCTIVE ON ABSOLUTE P/L

Applying the standard $0.30-$0.70 sweet-spot filter improves ROI slightly from +1.46% to +1.82% but cuts absolute P/L from +$25,483 to +$18,551, a loss of $6,932.

The mechanism: the filter removes the very cheap non-dominant hedge legs (the $0.05-$0.15 buys on the losing side of high-conviction markets), which carry negative ROI as standalone positions. But it also removes many high-dominance dominant-side buys that land above $0.70, specifically the near-certainty buys in the 3x+ dominance bucket at $0.80-$0.95. Those dominant buys are the highest-expected-value fills in the book.

Verdict: Do not apply this filter to a spread-capture market maker without first stratifying by dominance ratio. Applied blindly it sacrifices the best directional fills along with the marginal hedge legs. If you must use a price filter, apply it only to the symmetric (1x-1.5x dominance) subset of markets, not to high-conviction tilted markets.

The win rate improvement from 50.34% to 51.26% under this filter confirms the eliminated trades were below-50% wins, consistent with removing the non-dominant hedge legs.

2. High-conviction filter (dominance 2x+, dominant leg only) - MEANINGFUL LIFT

This is the most important filter result in the entire analysis. Keeping only the dominant-side fill in markets where the bot allocated at least 2x more capital to one side than the other produces +$122,455 P/L at +19.56% ROI on $626,162 of capital.

The mechanism is straightforward: the bot's secondary directional signal has genuine predictive value. When it fires strongly enough to produce a 2x dominance ratio, the dominant side wins 88.8% of the time. At 3x+ dominance, it wins 95.8% of the time. These are extraordinary win rates for a binary market where the prior is 50/50.

What the filter discards is the hedge leg, the non-dominant buys that almost never win in high-conviction markets. These hedge legs are a structural cost of the both-sides framework. An operator who could identify the high-dominance markets in advance and skip the non-dominant fills would capture the directional alpha without paying the hedge tax.

Practical implication: If you're replicating this strategy, the high-conviction signal is where you want to concentrate. The question is how the bot identifies which markets warrant 2x+ asymmetric allocation. The signal is not disclosed in the trade data but the result is measurable. Market price movement in the final seconds of a 5-minute window, divergence from a spot-tape model, or order flow imbalance on the CLOB are the likely candidates.

FILTER MATHHigh-conviction filter: 33,398 trades, $626,162 deployed, +$122,455 P/L, +19.56% ROI. Base book: 142,615 trades, $1,747,843 deployed, +$25,483 P/L, +1.46% ROI. The high-conviction subset is 36% of trades but 487% of P/L. The symmetric spread-capture portion is 64% of trades but contributes only $25,483 minus the directional contribution, or roughly break-even to slightly positive.

3. Category filter (Crypto only) - NO-OP

The category filter is structurally identity-equivalent to baseline. The wallet is 99.997% Crypto by notional ($1,747,831 of $1,747,843). The $12 difference is rounding from the 7 "Other" resolved trades. This filter adds no information and should not be applied.

4. Hour exclusion filter (remove hours 1, 13, 15, 22) - WEAKLY DESTRUCTIVE

The filter removes the four lowest-P/L hourly buckets as identified by the data (UTC hours 01, 13, 15, 22). The result: 116,193 trades, $1,415,598 capital, +$21,903 P/L, +1.55% ROI.

ROI improves from +1.46% to +1.55% but absolute P/L falls from +$25,483 to +$21,903, a loss of $3,580. The "worst" hours are still profitable. Hour 01 prints +$1,003, hour 13 prints +$928, hour 15 prints +$823, hour 22 prints +$825. There is no genuinely bad hour in this strategy. The spread capture mechanism works around the clock.

Unlike a directional trader with a hard sleep window (SirMartingale), this bot has no hour that structurally bleeds. The slight variation in hourly ROI is noise around a stable 1.4-1.6% baseline. Applying an hour filter to this strategy reduces capacity without meaningfully improving edge per dollar. Not recommended.

5. Combined filter (price $0.30-$0.70 + exclude worst 4 hours) - NO-OP NET, SLIGHT ROI IMPROVEMENT

67,460 trades, $826,892 capital, +$16,783 P/L, +2.03% ROI. Absolute P/L is -$8,700 vs baseline. ROI improves by 57 basis points.

The combined filter helps a capital-constrained operator run a higher-ROI book on less capital. For a replicator with $50,000 of bankroll rather than $1.75 million in turnover capacity, this focused book may be preferable. But for an operator who can deploy the full capacity, the combined filter is net-negative in dollar terms.

What filters would genuinely add value

The standard filter battery is not well-suited to this trader. The genuinely useful refinements require data points outside the trade CSV:

Hypothetical filter Expected effect Required data
Dominance-signal conditioning: tilt only when |FairProb - CLOBMid| > 5% Would improve high-conviction win rate further; eliminate marginal 2x tilts that don't have sufficient signal Real-time BTC spot tape + CLOB orderbook depth
Skip markets where paired cost > $1.00 at entry Eliminate the ~41.2% of markets where no positive spread is locked in Live CLOB mid-price at time of first fill
Weekday-weighted sizing (reduce Tuesday fills by 30%) Tuesday ROI is only +0.46%; reducing exposure saves capital for better-ROI days No additional data needed
Week-over-week spread trend monitoring Alert when rolling 7-day P/L drops below threshold; reduce sizing before full deterioration Trailing daily P/L tracking

Bottom line for replication

The most actionable filter insight from this analysis:

  1. Run the high-conviction dominance filter. Markets where your bot allocates 2x+ on one side should be tracked separately. The dominant-leg-only P/L in those markets (+19.6% ROI) is where the real alpha lives. Consider increasing dominant-side size and reducing or eliminating the non-dominant hedge leg in those markets.

  2. Do not apply the price filter to the whole book. It removes high-value dominant fills above $0.70 along with the hedge legs below $0.30. If you use a price filter, apply it only to the symmetric (1x-1.5x dominance) markets.

  3. Do not exclude hours. Every hour is profitable. The hour filter reduces capacity without improving per-dollar edge.

  4. Monitor the rolling 7-day P/L weekly. The spread-capture base is too thin to sustain extended competitive pressure. Three consecutive negative rolling windows is a pause-and-audit trigger.

// 006 / Replication playbook

Replication playbook

Where the edge is portable, and where it isn't.

Source wallet: 0x60889af507ec3f9da136f38b1c58080bec32f361 Strategy: Automated both-sides spread-capture market maker on BTC 5-minute Up/Down markets with high-conviction directional tilt Reference book: $1,747,867 BUY notional deployed over 29 days · +$25,483 net P/L · +1.46% ROI High-conviction subset: $626,162 deployed · +$122,455 P/L · +19.56% ROI

One-paragraph operator brief

Build a Polymarket bot that opens every fresh btc-updown-5m-* market, immediately buys both "Up" and "Down" at roughly equal USDC clips targeting a combined (paired) cost below $1.00, and holds both legs to resolution. This is pure spread capture: one side always pays $1.00 per share, the other pays $0.00, and if the combined cost is below $1.00 the bot made money regardless of direction. Layered on top: when a secondary signal fires (BTC spot divergence from CLOB mid, momentum, or order flow imbalance), allocate 2x-5x more USDC to the favored side. Track dominance ratio; at 2x+ the historical win rate is 88.8% and at 3x+ it is 95.8%. Keep fills small ($5-$20 each), run 24/7, hold everything to resolution, never SELL. Expect ~$850/day in spread P/L at the reference scale of $60K/day deployed; the directional tilt adds variance and, when working, disproportionate upside.

1. Market selection

Rule Value
Asset class Polymarket binary prediction markets
Market category Crypto, BTC Up/Down only
Slug pattern btc-updown-5m-* exclusively
Duration 5-minute windows only
Excluded All other durations (15m, 1h, 4h), all other assets (ETH, SOL), all non-crypto categories
Eligibility check Market is live AND time remaining > 30 seconds AND time elapsed < 4 minutes 30 seconds (do not enter in the final 30 seconds)
Primary entry condition Up_mid + Down_mid < $1.00 (paired cost positive spread confirmed)

Prioritization: Enter every qualifying market. There is no selectivity among markets. The strategy is high-volume, low-margin. Volume is essential. Selectivity reduces capacity faster than it improves per-trade edge.

Capacity and competition: The reference book deploys ~$60,000 per day across ~7,549 markets per 29-day window (roughly 260 markets per day, or ~26 concurrent at any moment given the 5-minute intervals). Each BTC 5-minute market expires and a new one opens every 5 minutes, 288 markets per day. The bot should be entering approximately 90% of all available markets.

2. Entry logic

def should_enter(market, clob_up_mid, clob_down_mid):
    """Base spread-capture gate."""
    # Eligibility: active window, not in final 30s
    sec_elapsed = now() - market.open_time
    sec_left    = market.close_time - now()
    if sec_elapsed < 15 or sec_left < 30:
        return False

    # Slug whitelist: BTC 5-minute only
    if not market.slug.startswith("btc-updown-5m-"):
        return False

    # Paired cost gate: only enter when spread is positive
    paired_cost = clob_up_mid + clob_down_mid
    if paired_cost >= 1.00:
        return False  # No guaranteed spread available

    return True

def compute_allocation(market, clob_up_mid, clob_down_mid,
                        spot_fair_prob_up, base_clip_usdc):
    """
    Returns (up_usdc, down_usdc) to buy.
    Applies symmetric base allocation plus directional tilt if signal fires.
    """
    up_usdc   = base_clip_usdc
    down_usdc = base_clip_usdc

    # Compute fair-value gap
    gap = spot_fair_prob_up - clob_up_mid

    # Tilt logic: if spot diverges from CLOB by > 5%, increase favored side
    if abs(gap) >= 0.05:
        if gap > 0:  # Up is underpriced vs fair value
            up_usdc   = base_clip_usdc * tilt_multiplier(gap)
            down_usdc = base_clip_usdc  # Keep hedge at base size
        else:        # Down is underpriced vs fair value
            down_usdc = base_clip_usdc * tilt_multiplier(abs(gap))
            up_usdc   = base_clip_usdc  # Keep hedge at base size

    return up_usdc, down_usdc

def tilt_multiplier(gap):
    """Scale from 1x (no tilt) to 5x (strong signal)."""
    if gap < 0.05:  return 1.0
    if gap < 0.10:  return 1.5
    if gap < 0.15:  return 2.5
    if gap < 0.20:  return 4.0
    return 5.0
Parameter Value Rationale
Base entry trigger Up_mid + Down_mid < $1.00 Ensures positive spread is available
Minimum spread threshold > $0.005 per paired unit Filters out markets priced at $1.00 exactly
Window entry timing 15 seconds after open to 270 seconds (30s before close) Avoids erratic first-tick prices and final-seconds volatility
Directional signal threshold |fair_prob - CLOB_mid| >= 5% Below 5% the directional edge is noise after fees
Max tilt multiplier 5x on favored side Consistent with observed 3x+ dominance markets

Multi-leg fan-out: The reference bot fires 10-40 fills per 5-minute window, spaced roughly every 15-60 seconds. This reduces market impact and allows the bot to accumulate position across the window as the orderbook updates. Do not place a single large order; walk the book with repeated small clips.

3. Exit logic (hold to resolution)

There is no exit logic. Every position is held to resolution. The BTC 5-minute window closes in at most 300 seconds, at which point one outcome pays $1.00 per share and the other pays $0.00. The bot collects its resolution payouts automatically through the Polymarket CLOB settlement mechanism.

def manage_position(position):
    """No active management. Hold to resolution."""
    # Do not post SELL orders
    # Do not cancel BUY orders mid-window
    # Wait for market.resolved == True
    # Collect settlement payout via API
    pass
Threshold Value Rationale
SELL activity None No SELL orders ever; settlement is automatic and guaranteed
Stop-loss None Loss is bounded by clip size; no tail risk from individual positions
Hold period Maximum 5 minutes per market Every market expires, resolution is automatic
Cancel-before-close Cancel any unfilled BUY orders at T-5s Avoid partial fills in the final-second scramble

Why no SELL engine: Unlike directional traders who need to convert unrealized to realized before markets reverse, this bot's edge is locked in at entry time. If paired cost is $0.97, the expected value of $0.03 per unit is guaranteed by the binary resolution mechanic. Selling early would require posting asks, competing for fill, and potentially legging out of a paired position and creating directional exposure. The hold-to-settlement approach is structurally optimal for this strategy.

4. Sizing model

The reference book uses near-uniform sizing across all fills:

Bankroll (working capital) Base clip per fill Max clip per fill Target fills per market Daily deployed
$5,000 $3-$5 $15 10-15 per side ~$7,000
$10,000 $5-$10 $20 15-20 per side ~$14,000
$25,000 (reference-proportional) $8-$15 $30 15-25 per side ~$35,000
$50,000 $12-$20 $40 20-30 per side ~$60,000
$100,000+ Do not scale linearly - Fragment into multiple wallets -

Tilt sizing for high-conviction markets: When the directional signal fires at 2x+ tilt, increase the favored-side clip to 2x-5x the base clip while keeping the hedge-side clip at base. At the reference scale with a $10 base clip, a 4x tilt means $40 on the favored side and $10 on the hedge side. This matches the observed 3x+ dominance bucket behavior.

Sizing discipline: Do NOT Kelly-size. Do NOT scale by expected spread. The spreads are too thin and too similar across markets for conviction-based sizing to add value on the symmetric spread-capture component. Uniform small clips minimize variance and prevent any single market loss from mattering.

Natural capacity ceiling: At approximately $100K of working capital per wallet, the bot begins to move CLOB prices on its own fills, degrading the paired cost it achieves. Above that threshold, fragment into 2-3 wallets or accept that per-dollar ROI will compress.

5. Both-sides allocation

Both sides of every market are purchased. This is non-negotiable for the base strategy. The both-sides requirement:

  1. Guarantees positive P/L when paired cost < $1.00, regardless of direction.
  2. Eliminates directional risk from the spread-capture component.
  3. Maintains a natural hedge against the directional tilt being wrong.

Allocation ratio guide:

Market type Up allocation Down allocation Dominance
Symmetric (no signal) Base clip Base clip 1.0x
Mild signal (5-10% gap) 1.5x base Base clip 1.5x
Moderate signal (10-15% gap) 2.5x base Base clip 2.5x
Strong signal (15-20% gap) 4x base Base clip 4x
Very strong signal (>20% gap) 5x base Base clip 5x

At 5x tilt, the hedge leg is 17% of total capital deployed in the market. This matches the observed 3x+ dominance markets where the non-dominant side is bought at very low prices (0.05-0.15) as a small hedge against the primary directional position.

Paired cost discipline: Before entering any market, confirm that the target allocation produces a paired cost below $1.00. In tilted markets where you're buying the favored side at $0.85 and the hedge at $0.15, paired cost = $1.00 exactly. In those cases you are no longer capturing spread; you are making a directional bet with a cheap hedge. Be explicit about which mode you're in.

6. Scheduling and coverage

Recommended schedule: 24/7 continuous coverage.

Unlike directional traders with session-specific edges, this strategy has no structural hour-of-day edge variation. Every UTC hour is profitable in the reference data. Halting the bot overnight wastes capacity and reduces the total spread capture.

Period Action Notes
All 24 hours, all 7 days Run at full size No sleep window; spread is available whenever markets are open
Weekends (Sat/Sun) Consider 110-120% of base sizing Saturday ROI was +2.59% vs +1.46% baseline; less competition
Tuesday Consider 80-90% of base sizing Tuesday ROI was only +0.46%; weakest weekday
Scheduled maintenance Limit to < 10 minutes/day 10 minutes offline = ~35 missed market opportunities

BTC 5-minute market schedule: Polymarket opens a new btc-updown-5m-* market every 5 minutes, 24/7. That is 288 markets per day. The reference book touches approximately 260 per day (90% coverage). Full coverage is achievable with a well-tuned bot; the 10% miss rate in the reference data may be latency or fee-related passes.

7. Operational requirements

Requirement Specification
Latency Sub-2-second end-to-end (signal computation to order submitted). Not latency-sensitive in the same way as SirMartingale; the spread capture does not require racing other bots. But order placement must complete within the 300-second window.
CLOB connection Persistent WebSocket to Polymarket CLOB for market events (open, close, price updates). Polling at 15-30 second intervals is marginally acceptable but WebSocket is preferable.
Spot data (optional but important for tilt) Real-time BTC mid-price from Coinbase or Binance. Required for the directional tilt signal. Not required for the base spread-capture component.
Wallet setup Single EOA on Polygon, USDC-funded. Persistent nonce manager for concurrent multi-leg orders.
Capital management Maintain $5K-$50K USDC liquid on Polygon at all times. Capital recycles every 5 minutes as markets resolve. Peak instantaneous exposure is much smaller than daily turnover.
Gas Polygon gas; negligible (<$0.01/fill). High fill volume (4,918/day) means daily gas cost is a few dollars.
Uptime 99%+ target. Each hour offline at the reference scale costs ~$36 in expected spread P/L.
Concurrency 10-20 concurrent open markets at any given time (each 5-minute window overlaps with adjacent windows). The bot must manage multiple open positions simultaneously.

8. Risk profile

Risk Severity Mitigation
Per-market max loss $54 (observed max fill) Structural; bounded by clip size cap
Daily max drawdown ~$500-$2,000 at reference scale (from directional tilts losing) Tolerable; the spread component provides a positive floor
Paired cost > $1.00 Medium Hard gate in entry logic; skip any market where Up_mid + Down_mid >= $1.00
Spread compression (other MMs competing) High; primary strategic risk Monitor weekly paired cost median. If it rises from $0.9907 toward $0.9980+, reduce sizing and review.
Tilt signal accuracy degradation Medium Monitor dominant-side win rate in 2x+ dominance markets. Historical baseline is 84-96%. If it drops below 70% for a rolling week, disable the tilt and run symmetric-only.
CLOB liquidity drying up Low-Medium BTC 5-minute markets have sustained high liquidity. Check market depth before entering; skip markets with bid-ask spread > $0.10 on either side at your clip size.
Smart contract / CLOB risk Low Polymarket protocol-level risk. Use standard mitigation (no single wallet > $100K exposure).
Rolling 7-day P/L going negative High trigger Three consecutive negative 7-day windows = pause all activity and audit paired cost trends and dominance win rates.

The primary risk is competitive spread compression. The reference data already shows this: the rolling 7-day P/L degraded from a peak of +$13,096 (week ending April 24) to -$3,276 (week ending May 6). The likely cause is other market makers entering the BTC 5-minute space and bidding up the paired cost toward $1.00. When the paired cost median rises above $0.995 for more than 2-3 days, the spread-capture base becomes economically marginal and the strategy's P/L becomes entirely dependent on the tilt signal performing.

9. Diagnostic checklist: is the bot still working?

Run weekly:

Metric Healthy range Action if outside
Median paired cost $0.985-$0.993 If > $0.995 for 3+ days: reduce sizing 50%, investigate market competition
% of markets with paired cost < $1.00 55-70% If < 45%: significant spread compression; pause and review
Rolling 7-day P/L > $0 If negative 3 consecutive weeks: pause, audit, rebuild
Dominant-side win rate (2x+ dominance) 80-96% If < 70% for a rolling week: disable tilt signal, run symmetric only
Daily markets touched 240-280 (of 288 available) If < 200: bot has latency or eligibility logic issue
Average fills per market 10-30 If < 8: order execution is failing or market depth is insufficient
P/L per market (average) $2.00-$4.00 If < $1.00: spread compression or tilt underperformance
Tuesday vs Saturday ROI ratio Saturday > Tuesday If reversed for 2+ weeks: investigate whether competition pattern has shifted

10. What this playbook deliberately does not include

No SELL orders. The spread-capture model works because the edge is locked in at entry. Adding a SELL engine would introduce exit slippage, create the possibility of legging out of a paired position, and add operational complexity for zero structural benefit. Every position is held to the 5-minute resolution.

No market selection within BTC 5-minute. Do not add "skip markets where realized vol is low" or "prefer markets with higher VIX" or any other market selection filter within the BTC 5-minute universe. The strategy's edge is volume-dependent and any selectivity reduces capacity faster than it improves per-trade ROI. The exception: skip markets where paired cost is at or above $1.00, which is already hardcoded in the entry gate.

No other asset classes or durations. The reference book had one each of Soccer, Politics, and several "Other" trades. They all lost money or broke even. BTC 5-minute is the only slug. ETH 5-minute and BTC 15-minute are not included in this trader's book and their liquidity profiles and spread characteristics are different enough that you should not assume they carry the same edge without fresh analysis.

No position re-entry or averaging down. Once the bot has placed its fills in a 5-minute window, it does not go back and add more to a position because the price moved favorably. Each market window is a single allocation decision. Adding within a window increases position size beyond the planned cap and introduces timing risk.

No manual override of the dominance tilt. The tilt signal must be quantitative and rules-based. Manual judgments about whether Bitcoin "looks bullish" are not part of this strategy and historically underperform systematic signals on short time horizons.

No attempt to recover from spread compression by widening clips. If the weekly diagnostic shows paired cost rising toward $1.00, the correct response is to reduce sizing and wait for competition to normalize, not to increase clip sizes hoping to "make it up on volume." The spread is what it is; you cannot manufacture a positive spread by deploying more capital.

TL;DR - implementable in ~100 lines of Python

async def run_bot(wallet, usdc_balance):
    clob_feed  = await connect_polymarket_clob_ws()
    spot_feed  = await connect_spot_websocket()
    base_clip  = min(10.0, usdc_balance * 0.0002)  # ~0.02% per fill

    async for market_event in clob_feed:
        market = market_event.market
        if not market.slug.startswith("btc-updown-5m-"):
            continue

        sec_left = (market.close_time - now()).seconds
        if sec_left < 30 or (300 - sec_left) < 15:
            continue

        up_mid   = market.up_side.mid_price
        down_mid = market.down_side.mid_price

        # Gate 1: paired cost must be below $1.00
        if up_mid + down_mid >= 1.00:
            continue

        # Gate 2: skip if spread is microscopic
        if (1.00 - up_mid - down_mid) < 0.005:
            continue

        # Compute directional tilt
        spot_btc    = spot_feed.latest_btc_mid()
        fair_prob_up = compute_fair_prob(market, spot_btc)
        gap          = fair_prob_up - up_mid

        up_clip   = base_clip
        down_clip = base_clip

        if abs(gap) >= 0.05:
            multiplier = tilt_multiplier(abs(gap))
            if gap > 0:    up_clip   = base_clip * multiplier
            else:          down_clip = base_clip * multiplier

        # Submit both legs
        await buy(market, "Up", usdc=up_clip)
        await buy(market, "Down", usdc=down_clip)
        # Holds to resolution automatically - no sell logic

    # Reconcile after each resolved market
    # Collect settlement payouts via /positions endpoint

Expect ~$850/day in base spread P/L at a $60K/day deployment rate. The directional tilt adds meaningful upside when the signal is fresh and the competition is thin. Monitor paired cost weekly. Pause when the rolling 7-day window goes negative for three consecutive periods.

// 001 / Analysis

The portfolio shape, and where the edge appears to come from.

Wallet activity across 29 days, every fill mapped, profile traced.

Wallet: 0x60889af507ec3f9da136f38b1c58080bec32f361 Window: 2026-04-08 to 2026-05-06 (29 calendar days, all 29 active) Universe: 142,621 trades across 7,549 unique markets Net P/L: +$25,483 on $1,747,867 deployed = +1.46% ROI

This wallet is a pure, automated spread-capture market maker running on Polymarket's BTC 5-minute Up/Down markets around the clock. Every trade is a BUY. There are zero SELLs. The bot buys both sides of nearly every market it touches, locks in a paired cost below $1.00, and collects the guaranteed spread when the market resolves. It is not making directional calls. It does not have a view on whether Bitcoin goes up or down. It simply provides liquidity to both sides of the binary simultaneously and harvests the bid-ask spread embedded in the combined purchase cost.

The numbers confirm this with clinical precision. Of 7,549 markets touched, 7,474 had both sides purchased, a 99.0% both-sides participation rate. The median paired cost across those 7,474 markets is $0.9907, meaning the bot locks in an average guaranteed spread of $0.0093 per dollar of shares held. The win rate on resolved BUYs is 50.34%, exactly what you'd expect from a coin-flip market where half the capital is correctly placed by construction. ROI of +1.46% on $1.75 million deployed over 29 days translates to roughly $879 per day in spread capture from pure mechanical arbitrage, with zero directional risk.

The portfolio shape

The universe is one market type: btc-updown-5m-*. Every market in the top-10 by volume, every market in the best and worst P/L lists, every slug in the CSV sample carries that pattern. No ETH, no SOL, no sports, no politics. Within BTC 5-minute markets, the bot is indiscriminate about timing: trades appear in all 24 UTC hours with nearly identical trade counts, from 3,801 at hour 21 to 7,436 at hour 13. The slight concentration during US hours is real but minor.

Trade size is tightly bounded and near-uniform. The median fill is $10.13, the mean $12.26, and the P99 is only $36.64 against a hard maximum of $54.37. The top 5% of trades by size carry only 13.7% of total capital, the most uniformly-distributed book in the PR&R dataset. This is a deliberate design choice: uniform sizing suppresses variance and ensures no single market or single fill creates a loss large enough to matter.

SCALE142,621 trades in 29 days. That is 4,918 fills per day, 205 per hour, roughly one fill every 17-18 seconds around the clock, 24/7, without a single break day.

Where the edge appears to come from

The edge is the spread, and it is wafer-thin by design. The bot targets markets where the combined cost of buying "Up" and "Down" in the same 5-minute window is below $1.00. When a market resolves, one side pays $1.00 per share and the other pays $0.00. If the bot bought equal shares on both sides at a combined cost of $0.99, it has locked in +$0.01 per share regardless of outcome. Multiply that by millions of shares across thousands of markets and you get the $25,483 in the account.

Mechanism: Guaranteed spread = 1 - (Up_VWAP + Down_VWAP). When paired cost is $0.9907, the locked-in profit per resolution is $0.0093 per unit deployed. The actual win rate of 50.34% is irrelevant to the economics.

The dominance ratio analysis reveals that the bot occasionally tilts. 1,680 markets had a dominance ratio above 3x, meaning it put three or more times as much capital on one side as the other. In those high-conviction markets, the dominant side won 95.8% of the time, compared to 61.9% in the 1x-1.5x band. This is not noise. It means the bot has some secondary signal, whether a momentum indicator, a spot-tape read, or a stale-price detector, that fires on high-conviction tilts. The spread capture is the primary business but something is driving the lopsided allocation in a meaningful subset of markets.

The high-conviction filter result confirms it: 33,398 fills at dominance 2x or higher produced +$122,455 P/L at +19.6% ROI, compared to +$25,483 at +1.46% for the whole book. The directional tilt is where most of the actual alpha lives.

One market, trade by trade

The clearest single-market illustration from the CSV is Bitcoin Up or Down, April 7, 8:00PM-8:05PM ET (resolved: Down). The bot fires its first fills at 00:00:07 UTC (two minutes into the market window) and continues through 00:03:49 UTC. Across roughly 30 fills, it places capital on both Up ($14.10 to $27.60 per fill) and Down ($1.80 to $14.70 per fill). The Up side is buying at prices ranging from $0.47 to $0.92; the Down side from $0.06 to $0.56. The combined paired cost across this market is approximately $0.97. When Down resolves, the Down shares pay $1.00 each and the Up shares pay $0.00. Net: positive spread collected, directional result irrelevant.

DECAY SIGNALThe rolling 7-day P/L peaked at +$13,096 in the week ending April 24, then collapsed. The final 7-day window ending May 6 printed -$3,276. Week 19 (May 4-6) alone lost -$2,419. Something changed materially in the last week of the observation period.

What you can copy

The mechanical structure of this strategy is fully transparent and straightforward to replicate. For each new btc-updown-5m-* market that opens:

  1. Buy both "Up" and "Down" simultaneously, targeting a combined cost below $0.99.
  2. Size each side at $5-$15 per fill using multiple small clips rather than one large order.
  3. Hold to resolution without any SELL activity.
  4. The spread is collected automatically at resolution.

The dominance-tilt component is harder to copy without knowing the secondary signal, but applying the high-conviction filter to your own fills (restrict to markets where you achieve 2x+ allocation on one side) dramatically improves ROI from 1.46% to 19.6%.

What you probably can't copy

The operational infrastructure. Running 205 fills per hour, 24/7, against 5-minute markets that open and close every 300 seconds requires automated systems with sub-second execution. More importantly, the strategy depends on finding markets where the paired cost is genuinely below $1.00. The $0.9907 median paired cost implies the bot sources these frequently, but as more market makers compete for the same spread, paired costs converge toward $1.00 and the edge compresses. The late-period decay visible in the rolling windows (from +$10,000/week in peak weeks to -$3,276 in the final week) may already reflect this competitive pressure arriving.

// 002 / Figure

Cumulative P/L over the window.

The line is daily cumulative net P/L. Mouse along it for daily detail. The dashed grey trace, when present, is cumulative BUY notional deployed.

// 003 / Reverse-engineering report

Reverse-engineering report

Every fill mapped, the asymmetric profile traced, the math behind the edge.

Wallet: 0x60889af507ec3f9da136f38b1c58080bec32f361 Window: 2026-04-08 to 2026-05-06 (29 calendar days, all 29 active) Universe: 142,621 trades across 7,549 unique markets (7,548 unique events) - $1,747,867 gross BUY notional Net P/L: +$25,483 on $1,747,867 deployed = +1.458% ROI

P/L methodology: Settlement-accounting. Each BUY trade's P/L = shares x $1.00 if the outcome won, or shares x $0.00 if lost, minus the USDC spent. No SELL trades exist in this book. Spread P/L is computed as (1 - paired_cost) x paired_shares per both-sides market. The +$25,483 net figure is the arithmetic sum of all resolved-BUY P/L across 142,615 resolved fills.

The Punchline

This wallet is a pure automated spread-capture market maker on Polymarket's BTC 5-minute Up/Down markets. The bot buys both sides of virtually every market it enters, holds to resolution, and collects the guaranteed spread embedded in the combined purchase cost falling below $1.00. There is no SELL engine, no exit management, no directional thesis. The 50.34% win rate on resolved BUYs is not the signal. It is a mechanical consequence of buying both sides: exactly half the capital resolves as a winner, which is precisely what a 50/50 binary market produces when you've bought both outcomes.

The strategy has a secondary layer that becomes visible in the dominance ratio analysis: in a meaningful subset of markets the bot tilts heavily to one side (dominance ratio above 3x), and those lopsided markets show a dominant-side win rate of 95.8%. This implies a directional signal of some kind is driving asymmetric allocation on selected markets, likely a spot-tape or momentum read similar to what pure directional traders run. But spread capture is the primary business. The directional tilt is a performance multiplier layered on top.

The economics are simple and mechanical. Median paired cost of $0.9907 means the bot locks in an average $0.0093 per unit of paired shares on every resolved both-sides market. Across $1.75 million of deployed capital, that structural spread generates the majority of the +$25,483 net P/L. The remaining P/L comes from the directional tilts in high-dominance markets, which are small in count but outsized in per-market return.

KEY NUMBER99.0% of all 7,549 markets had both Up and Down purchased. This is the defining structural fact of the strategy. It is not a directional trader with occasional hedges. It is a market maker with occasional directional tilts.

What He Trades

The universe is singular: BTC 5-minute Up/Down markets on Polymarket, slug pattern btc-updown-5m-*. Every single market in the top-10 by volume, every slug in the CSV sample, every entry in the best and worst P/L lists carries this slug. There is no ETH, no SOL, no 15-minute duration, no 1-hour duration, no sports, no politics. One asset, one duration.

btc-updown-5m-*   7,549 markets  $1,747,867 BUY notional  100% of book
All other slugs:  0 markets      $0 BUY notional

The 7 remaining trades (0.005%) outside Crypto are "Other" with $32.88 volume and -$12 P/L. Rounding error.

Within BTC 5-minute markets, the bot does not discriminate by time of day or day of week in any meaningful way. Trade volume runs from 3,801 fills (21:00 UTC) to 7,436 fills (13:00 UTC) across all 24 hours, with a coefficient of variation of roughly 23% across hours. This is essentially flat 24/7 coverage with a mild daytime bias, not the hard session-specific scheduling seen in directional traders.

Trade size distribution is deliberately near-uniform:

Statistic Value
Median $10.13
Mean $12.26
P95 $28.50
P99 $36.64
Max $54.37
Top 5% share of capital 13.7%

The top-5% share at 13.7% is the lowest concentration ratio in any trader we have profiled. For comparison, SirMartingale's top-5% share is 37%. This wallet deliberately caps fill sizes to keep per-market exposure bounded and variance low. There is no Kelly scaling, no conviction sizing, no large outlier fills.

The Order of Operations: One Market, Trade by Trade

The clearest both-sides illustration from the CSV is Bitcoin Up or Down, April 7, 8:00PM-8:05PM ET (slug btc-updown-5m-1775606400, resolved: Down).

Time (UTC) Outcome Bought Resolved Side Price Shares USDC
00:00:07 Up Down $0.50 30 $15.00
00:00:07 Down Down $0.49 30 $14.70
00:00:13 Down Down $0.49 30 $14.70
00:00:29 Up Down $0.64 30 $19.20
00:00:31 Up Down $0.57 30 $17.10
00:00:31 Down Down $0.44 30 $13.20
00:00:37 Down Down $0.49 30 $14.70
00:00:39 Down Down $0.44 30 $13.20
00:00:47 Up Down $0.47 30 $14.10
00:00:49 Up Down $0.47 30 $14.10
00:00:53 Down Down $0.56 30 $16.80
00:00:55 Up Down $0.47 30 $14.10
00:01:07 Down Down $0.45 30 $13.50
00:01:07 Down Down $0.45 30 $13.50
00:01:11 Up Down $0.53 30 $15.90
00:01:15 Down Down $0.48 30 $14.40
00:01:17 Up Down $0.59 30 $17.70
00:01:21 Up Down $0.55 30 $16.50
00:01:27 Down Down $0.48 30 $14.54
00:01:31 Down Down $0.49 30 $14.70
00:01:31 Up Down $0.59 30 $17.77
00:02:17 Up Down $0.66 30 $19.80
00:02:27 Down Down $0.13 30 $4.01
00:02:35 Down Down $0.09 30 $2.70
00:02:37 Up Down $0.92 30 $27.60
00:02:41 Down Down $0.09 30 $2.70
00:02:43 Up Down $0.90 30 $27.00
00:02:47 Up Down $0.92 30 $27.60
00:02:55 Down Down $0.06 30 $1.80
00:02:55 Up Down $0.95 30 $28.50
00:03:17 Down Down $0.06 30 $1.80
00:03:17 Down Down $0.08 30 $2.40
00:03:23 Up Down $0.91 30 $27.30
00:03:25 Down Down $0.10 30 $3.13
00:03:33 Up Down $0.83 30 $24.90
00:03:39 Down Down $0.19 30 $5.70
00:03:49 Up Down $0.79 30 $23.70

Resolution: Down wins. All "Down" shares pay $1.00. All "Up" shares pay $0.00.

Walk-through:

  1. 00:00:07 to 00:01:31. The bot opens the window buying both Up and Down in a near-symmetrical scatter. It buys Up at $0.47-$0.66 and Down at $0.44-$0.56. Combined cost on symmetric pairs is ~$0.97-$1.01. The bot is harvesting whatever spread exists in the initial orderbook.

  2. 00:02:17 to 00:03:49. Midway through the 5-minute window something changes. The bot buys Up at extremely high prices ($0.79-$0.95) and Down at extremely low prices ($0.06-$0.19). This is the dominance tilt in action: the bot has concluded "Down" is the strong probability and it buys heavily asymmetric. It still buys both sides, but the allocation is 5:1 or more in favor of Down.

  3. Outcome. Down resolves winner. The Down shares bought at $0.06-$0.56 pay $1.00 each. The Up shares bought at $0.47-$0.95 pay $0.00. The net result on the entire market depends on the ratio of Up to Down USDC deployed. In the late phase, the Down-heavy tilt plus resolution in Down's favor generates strong positive P/L for that market.

This is the full strategy in one market. Early-window symmetric spread capture, late-window directional tilt when the bot sees a signal, hold to resolution.

Why It Works: The Math

Spread capture base case (symmetric allocation):

Paired cost example:
  Buy Up  at $0.52, Buy Down at $0.48 → paired cost = $1.00 → spread = $0.00
  Buy Up  at $0.50, Buy Down at $0.47 → paired cost = $0.97 → spread = $0.03
  Buy Up  at $0.55, Buy Down at $0.45 → paired cost = $1.00 → spread = $0.00

Median observed paired cost: $0.9907
  → Expected spread per paired unit: $0.0093
  → On $1,747,867 gross notional at ~50% paired:
    Structural spread P/L ≈ $15,679 (matches pnl_decomp.spread_pnl = $15,679)

High-conviction directional tilt (2x+ dominance):
  33,398 fills in qualifying markets
  Win rate on dominant side: 88.8%
  At $626,162 deployed, +$122,455 P/L = +19.6% ROI
  (This is the filter result; the base book books less because the dominant
   allocation is partially offset by the losing non-dominant side)

The spread P/L of $15,679 is durable and structural. The directional tilt P/L is the source of performance variance. When the tilt signal works (as it did in weeks 1-3), aggregate P/L is strong. When the tilt signal degrades or competes against other market makers with the same edge (weeks 4-5), aggregate P/L collapses.

Phase 1: Trader Profile

Scale and activity: - 142,621 BUYs, 0 SELLs, 29 active days of 29 calendar days - $1,747,867 total BUY notional deployed - 7,549 unique markets, 7,548 unique events (one market per event) - 4,918 trades per day, 205 per hour, approximately 3.4 fills per minute

Execution signature: - Median inter-fill gap: 10.0 seconds - 45.7% of fills under 10 seconds apart - 92.2% under 60 seconds - 100% under 1 hour

The sub-10-second inter-fill gap at 45.7% confirms automated execution. The median of 10 seconds is not as fast as a pure latency-arb bot (SirMartingale shows a 0-second median) but is consistent with a market maker looping through available markets and posting fills at the top of the orderbook every 10-30 seconds. The fills at exactly the same second (visible in the CSV: e.g., 00:05:17 shows two fills simultaneously) confirm fan-out ordering where the bot submits multiple orders in a single block.

Buy vs. sell: 100% BUY, 0% SELL. Exceptional even among hold-to-settlement traders. Passive market maker that relies entirely on resolution payouts.

Active hours: All 24 hours have meaningful volume. No sleep window, no scheduling artifact. This is a genuinely 24/7 automated system.

Archetype: SPREAD CAPTURE / MARKET MAKER with secondary DIRECTIONAL TILT on high-dominance markets.

Phase 2: Core Strategy Identification

Both-sides participation rate: 99.0% (7,474 of 7,549 markets). This is unambiguous. No trader who runs a directional strategy accidentally buys both sides 99% of the time. The 0.99% of markets with only one side purchased are either execution failures, markets that expired before the second leg could be placed, or very early-window opportunistic buys.

Classification: Strategy A (Both-Sides Spread Capture / Market Making) with a strong secondary element of Strategy B (Directional Betting) visible exclusively in the high-dominance-ratio subset.

Not a directional bettor. Not a copy trader. Not a latency arb in the pure sense. The overall win rate of 50.34% is exactly what you get when you buy both sides of a binary market and the winning side pays $1.00.

Second-side lag median: 10 seconds. The bot enters both sides of a market within 10 seconds of each other on the median, confirming intentional pairing rather than opportunistic hedging.

STRUCTURAL PROOFMedian paired cost of $0.9907 with 58.8% of both-sides markets printing paired cost below $1.00 confirms the bot systematically finds markets where the sum of Up + Down prices is below $1.00, i.e., markets offering a guaranteed positive expected value on paired allocation.

Phase 3: Dominance Ratio Analysis

This is where the strategy's dual nature becomes quantitatively clear:

Dominance Bucket Markets Dom Win Rate Mean Paired Cost Implied Edge
1.0-1.5x (symmetric) 2,423 61.9% $0.9894 Spread only
1.5-2.0x (mild tilt) 1,568 74.5% $0.9957 Spread + weak directional
2.0-3.0x (moderate tilt) 1,803 84.2% $0.9929 Spread + strong directional
3.0x+ (high conviction) 1,680 95.8% $0.9736 Primarily directional

The dominant-side win rate progression from 61.9% to 95.8% is a real directional signal, not noise. If the bot were allocating randomly, every bucket would show approximately 50-55% dominant-side wins (since the dominant side has more capital exposed in a balanced binary market). The 95.8% win rate at 3.0x+ dominance means the bot is correctly identifying the winning side nearly 19 out of 20 times when it tilts heavily.

The mean paired cost dropping to $0.9736 in the 3.0x+ bucket is counterintuitive: it means the bot is spending disproportionately on the dominant side at prices close to $1.00 (near-certain outcomes) while the non-dominant side is bought at very low prices near $0.00. The extreme paired costs visible in the 3.0x+ list (e.g., 0.433, 0.55, 0.593, 0.591) confirm this pattern: dominant side at $0.95, non-dominant at $0.05, paired cost = $1.00 minus the spread on the non-dominant wing.

What this implies: The high-conviction signal likely fires when the market already reflects a strong directional probability, and the bot positions asymmetrically to capture the remaining spread on the near-certain side while taking a minimal hedge on the losing side for optionality.

Phase 4: Entry Price Analysis

Price Band Trades Win Rate Capital P/L ROI
$0.00-$0.10 6,835 6.1% $12,291 -$1,921 -15.6%
$0.10-$0.20 11,361 14.6% $42,531 -$853 -2.0%
$0.20-$0.30 13,254 26.3% $82,631 +$4,071 +4.9%
$0.30-$0.40 16,625 36.1% $142,265 +$2,409 +1.7%
$0.40-$0.50 22,744 46.7% $253,874 +$9,417 +3.7%
$0.50-$0.60 26,382 55.5% $352,027 +$5,512 +1.6%
$0.60-$0.70 16,143 64.9% $253,010 +$1,234 +0.5%
$0.70-$0.80 11,898 75.3% $218,760 +$1,008 +0.5%
$0.80-$0.90 10,033 85.6% $215,289 +$1,542 +0.7%
$0.90-$1.00 7,340 94.7% $175,165 +$3,064 +1.7%

The win-rate column is a near-perfect probability calibration curve: 6.1% wins at $0.00-$0.10 entry (correct for ~5% implied probability), 94.7% wins at $0.90-$1.00 (correct for ~95%). This confirms the market is efficiently pricing these markets and the bot is buying at prices that reflect real probabilities.

The ROI column is the more interesting signal. The highest ROI is in the $0.20-$0.30 band (+4.9%) and the $0.40-$0.50 band (+3.7%). These are the near-midpoint bands where spread capture is most available (paired cost cheapest to achieve below $1.00). The $0.60-$0.80 bands show near-zero ROI despite correct win rates, because buying near-favorites at $0.70-$0.80 and pairing with the near-underdog at $0.20-$0.30 still produces thin spreads.

Sub-bucket concentration: Unlike tick-specific bots (floor bidders, or near-certainty snipers), this wallet's entry prices are genuinely distributed across all 101 cents. No single price point dominates. This is consistent with a bot that lifts whatever the orderbook offers on both sides without anchoring to a specific price level.

The two loss bands ($0.00-$0.10 and $0.10-$0.20) represent the non-dominant hedge legs in high-conviction markets: the bot buys "Down" at $0.06 when it thinks "Up" is near-certain, those cheap Down shares almost never win, producing a structural drag. This drag is the cost of maintaining the both-sides framework.

Phase 5: Category and Market-Type Breakdown

Category Trades Win Rate Volume P/L ROI Assessment
Crypto (BTC 5m) 142,612 50.34% $1,747,831 +$25,495 +1.46% MODEST
Other 7 0.0% $33 -$12 -100% Negligible
Politics 1 n/a $1 $0 n/a Noise
Soccer 1 n/a $3 $0 n/a Noise

There is no useful cross-category analysis. The wallet is 99.997% BTC 5-minute Up/Down by notional. The Crypto ROI of +1.46% is the whole story.

Phase 6: Timing and Execution Analysis

Hourly distribution (UTC):

Best 4 hours (absolute P/L) Trades P/L
21:00 3,801 +$1,980
20:00 4,899 +$1,512
14:00 7,333 +$1,460
12:00 5,694 +$1,422
Worst 4 hours (labeled in filters) Trades P/L
01:00 6,921 +$1,003
13:00 7,436 +$928
15:00 6,515 +$823
22:00 5,553 +$825

Every single hour is profitable. The "worst" hours still print positive P/L. The spread-capture mechanism is so consistent that there is no genuinely bad hour. The variation in hourly P/L (from +$327 at 05:00 UTC to +$1,980 at 21:00 UTC) is more a function of trade volume than per-trade edge.

Win rates by hour: Tightly clustered between 50.0% and 50.7% across all 24 hours. No systematic hour-of-day directional edge. The slight variance around 50.3% baseline is statistical noise.

Day-of-week P/L:

Day Trades Win Rate P/L ROI
Mon 24,131 50.2% +$3,667 +1.45%
Tue 20,424 50.4% +$1,367 +0.46%
Wed 29,970 50.2% +$3,153 +1.06%
Thu 23,758 50.3% +$5,684 +2.07%
Fri 19,404 50.1% +$4,628 +1.61%
Sat 11,418 50.8% +$3,435 +2.59%
Sun 13,516 50.7% +$3,548 +1.71%

Saturday has the highest ROI (+2.59%) and the second-highest win rate (50.8%). Weekends have lower competition from other market makers, which translates to wider available spreads and better paired costs. Thursday is the best absolute-P/L weekday at +$5,684 on 23,758 trades. Tuesday is the weakest day across both ROI and absolute P/L.

Burst patterns: The CSV shows repeated multi-fill same-second bursts. In the April 7, 8:00PM-8:05PM market, multiple fills land at 00:00:07, 00:00:31, 00:01:07, 00:01:31, 00:02:55, 00:03:17 UTC. Same-second multi-leg ordering is the entry signature of an automated system routing multiple orders through the CLOB simultaneously.

Accumulation pattern per market: The bot typically places 10-40 fills per 5-minute market window, spread across the full 5 minutes, with fill cadence of every 15-60 seconds. It does not rush to establish a position in the first seconds; it builds gradually across the window. This is different from SirMartingale's entry-burst-then-exit pattern.

Phase 7: Filter Experiments

Filter Trades Win Rate Capital P/L ROI vs. Baseline
Unfiltered baseline 142,615 50.34% $1,747,843 +$25,483 +1.46% -
Price $0.30-$0.70 83,109 51.3% $1,021,045 +$18,551 +1.82% -$6,932
High-conviction (dom 2x+) 33,398 88.8% $626,162 +$122,455 +19.6% +$96,972
Top category (Crypto) 142,612 50.34% $1,747,831 +$25,495 +1.46% +$12 (identity)
Exclude worst 4 hours (1,13,15,22) 116,193 50.4% $1,415,598 +$21,903 +1.55% -$3,580
Combined (price + hour) 67,460 51.4% $826,892 +$16,783 +2.03% -$8,700

The finding that matters most: The high-conviction filter is explosively productive. Restricting to markets where dominance ratio is 2x or higher, dominant leg only, returns +$122,455 at +19.6% ROI on $626,162 of capital. That is 4.8x the ROI of the base strategy with 64% less capital deployed. This is not a noise result.

The price filter ($0.30-$0.70) is mildly helpful (+1.82% vs +1.46% ROI) but destroys absolute dollars (-$6,932). It removes the very-cheap hedge-leg buys (which are structurally slightly negative) but also removes some of the strong near-certainty dominant fills.

The hour filter does nothing meaningful. Every hour is positive and no hour is far enough below baseline to justify exclusion.

The combined filter improves ROI to +2.03% at the cost of halving the capital base and reducing absolute P/L by $8,700. For a capacity-constrained replicator who cannot deploy $1.75 million per month, this focuses the book on the most efficient markets.

Phase 8: Rolling Window Consistency

Window # Green # Red Min P/L Max P/L
Rolling 7-day 26 of 29 3 of 29 -$3,276 (ending May 6) +$13,096 (ending April 24)
Rolling 15-day All positive until late May Mixed $5,103 (ending May 6) $23,142 (ending April 23)

The deterioration at the end of the window is real and significant. The rolling 7-day P/L peaked at +$13,096 on April 24, then degraded monotonically: April 27 (+$9,409), April 30 (+$4,466), May 1 (+$1,247), May 3 (+$152), May 4 (-$1,344), May 5 (-$2,877), May 6 (-$3,276).

Week-by-week summary:

Week Trades Win Rate P/L Cumulative
W15 (Apr 8-12) 23,189 50.3% +$7,188 +$7,188
W16 (Apr 13-19) 27,384 50.2% +$10,027 +$17,215
W17 (Apr 20-26) 39,076 50.5% +$10,535 +$27,750
W18 (Apr 27-May 3) 32,961 50.4% +$152 +$27,902
W19 (May 4-6, partial) 20,005 50.2% -$2,419 +$25,483

The strategy peaked in Week 17 and has been in controlled retreat since. The most likely explanation is competitive spread compression: other market makers entering the BTC 5-minute market reduced the frequency of sub-$1.00 paired cost opportunities, squeezing the structural spread from ~$0.009 toward zero. The directional tilt signal may also have had a rough patch in weeks 4-5.

RISK SIGNALThree consecutive rolling 7-day windows ending in negative P/L (May 4, 5, 6) is a hard trigger to pause and audit. The strategy's base spread is too thin to absorb sustained competitive pressure. If paired cost median rises to $1.000 for a sustained period, the strategy becomes a net destroyer of capital.

Phase 9: P/L Decomposition

Component Value Interpretation
Structural spread P/L +$15,679 Guaranteed from paired costs below $1.00
Hedge tax (losing-side USDC) -$672,224 Total USDC spent on outcomes that lost
Total realized P/L +$25,483 Net after all resolved BUYs
Directional P/L (implied) +$9,804 Total minus spread = from tilts and lucky directionality

The hedge tax of $672,224 is the cost of the both-sides discipline. Of the $1,747,867 deployed, roughly $672K went to losing outcomes. This is not "wasteful" in the framework's terms because the spread capture on the winning leg more than compensates. The net is +$25,483.

The structural spread P/L of $15,679 represents the base, guaranteed component. The remaining $9,804 comes from the directional tilt signal performing on net. In bad weeks, the tilt can subtract from the spread P/L, explaining the negative rolling windows in the final days.

Why no SELL engine: The spread capture model works because the bot's edge is locked in at purchase time via the combined cost being below $1.00. There is no need to manage exit. The SELL leg would require tracking individual lots, posting asks, and competing for exit liquidity, all for no additional benefit since the market will resolve to $1.00 or $0.00 in at most 5 minutes. The hold-to-resolution approach is structurally correct for this strategy.

Phase 10: Strategy Specification

One-sentence summary: An automated 24/7 market maker that buys both sides of every btc-updown-5m-* market at a combined cost below $1.00, holds to resolution for guaranteed spread capture, and applies an asymmetric directional tilt on a subset of markets where a secondary signal fires.

Edge sources (two stacked):

  1. Structural spread capture: paired cost of $0.9907 median locks in $0.0093 per unit of paired shares, guaranteed regardless of direction.
  2. Directional tilt alpha: in 3,483 markets at 2x+ dominance, the dominant side wins 84-96% of the time, generating disproportionate P/L above the spread baseline.

What works: BTC 5-minute markets exclusively. Symmetric both-sides allocation as base. Asymmetric allocation when directional signal fires (dominance ratio 2x-10x). Small bounded clips ($5-$20 typical). 24/7 coverage. Hold to resolution.

What drags: Hedge-leg buys at very low prices ($0.01-$0.10) that almost never win, representing a structural drag of $1,921 in the $0.00-$0.10 bucket alone. Late-window competitive spread compression visible in weeks 4-5. Tuesday underperformance.

Rebuild parameters: See the Replication Playbook for the full implementable spec.

// 004 / Quantitative breakdown

Quantitative breakdown

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

Wallet: 0x60889af507ec3f9da136f38b1c58080bec32f361 Window: 2026-04-08 → 2026-05-06 (29 active / 29 calendar days) Methodology: Cash-flow P/L = -buy_usdc + sell_usdc + remaining_share_payout. Resolved shares settle at $1 (win) / $0 (loss); open positions marked at last price.


Phase 1 - Trader Profile

Scale

MetricValue
Total trades142,621
BUY trades142,621
SELL trades0 (0.0% of all)
Unique markets7,549
Unique events7,548
Active calendar days29 of 29
Trades per active day4,918
BUY notional$1,747,867
SELL notional$0
Gross turnover$1,747,867

Trade-size distribution (USDC per fill)

MetricValue
median$10.13
mean$12.26
p95$28.50
p99$36.64
max$54.37
Top 5% share of capital13.7%

Inter-trade gap, same (market, outcome)

MetricValue
Median (s)10.0
Mean (s)20.3
P10 (s)0.0
P90 (s)52.0
% under 1s0.0%
% under 10s45.7%
% under 60s92.2%

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

  • Both-sides rate: 99.01% (7,474 of 7,549 markets)
  • Median paired cost: $0.9907
  • Mean paired cost: $0.9880
  • Paired cost % under $1.00: 58.8%
  • Paired cost % under $0.97: 33.5%
  • Median 2nd-side hedge lag: 10s

Dominance buckets

BucketMarketsDom WRMean PairedAvg Mkt P/L
1.0–1.5x2,42361.9%$0.9894-
1.5–2.0x1,56874.5%$0.9957-
2.0–3.0x1,80384.2%$0.9929-
3.0x+1,68095.8%$0.9736-

Phase 4 - Entry-Price Analysis

BandBUY tradesResolvedWinsWRCapitalP/LROI
$0.00–$0.106,83504156.1%$12.3K-$1,921-15.63%
$0.10–$0.2011,36101,65814.6%$42.5K-$853-2.00%
$0.20–$0.3013,25403,48126.3%$82.6K+$4,071+4.93%
$0.30–$0.4016,62505,99836.1%$142.3K+$2,409+1.69%
$0.40–$0.5022,744010,62346.7%$253.9K+$9,417+3.71%
$0.50–$0.6026,382014,63355.5%$352.0K+$5,512+1.57%
$0.60–$0.7016,143010,48665.0%$253.0K+$1,234+0.49%
$0.70–$0.8011,89808,95875.3%$218.8K+$1,008+0.46%
$0.80–$0.9010,03308,58585.6%$215.3K+$1,542+0.72%
$0.90–$1.007,34006,95094.7%$175.2K+$3,064+1.75%

Phase 5 - Category & Vertical Breakdown

CategoryBUY tradesBUY $ResolvedWRP/LROI
Crypto142,612$1.75M142,61250.3%+$25,495+1.46%
Other7$3330.0%-$12-100.00%
Soccer1$300.0%+$00.00%
Politics1$100.0%+$00.00%

Phase 6 - Timing & Execution

Net P/L by hour (UTC)

HourP/LWR
00:00+$1,00750.3%
01:00+$1,00350.1%
02:00+$1,29450.5%
03:00+$74350.3%
04:00+$45150.4%
05:00+$32750.4%
06:00+$85050.6%
07:00+$66950.2%
08:00+$1,03550.5%
09:00+$1,04850.7%
10:00+$1,24150.3%
11:00+$1,30150.4%
12:00+$1,42250.5%
13:00+$92849.9%
14:00+$1,46050.2%
15:00+$82350.1%
16:00+$1,33650.2%
17:00+$75550.3%
18:00+$1,27850.4%
19:00+$1,31550.2%
20:00+$1,51150.5%
21:00+$1,98050.7%
22:00+$82550.0%
23:00+$88050.8%

Phase 8 - Rolling Window Consistency

  • Rolling 7-day windows green: 26 of 29 (89.7%)
  • Rolling 7-day P/L range: -$3,276 → +$13,096
  • Rolling 15-day windows green: 29 of 29 (100.0%)
  • Rolling 15-day P/L range: +$1,638 → +$23,141

Weekly P/L

WeekSpanTradesWRP/LCumulative
W152026-04-08 → 2026-04-1223,18950.3%+$7,188+$7,188
W162026-04-13 → 2026-04-1927,38450.2%+$10,027+$17,215
W172026-04-20 → 2026-04-2639,07650.5%+$10,535+$27,750
W182026-04-27 → 2026-05-0332,96150.4%+$152+$27,902
W192026-05-04 → 2026-05-0620,00550.2%-$2,419+$25,483

Phase 9 - P/L Decomposition

MetricValue
BUY USDC out-$1,747,867
SELL USDC in+$0
Theoretical spread P/L+$15,679
Hedge-tax outflow$672.2K
Net realized P/L+$25,483
Net ROI on BUY notional+1.46%

Phase 10 - Top Markets by Volume

MarketTradesVolumeResolvedP/L
Bitcoin Up or Down - May 5, 11:30AM-11:35AM ET37$74437+$16
Bitcoin Up or Down - May 5, 3:50PM-3:55PM ET35$74135-$21
Bitcoin Up or Down - May 5, 6:35PM-6:40PM ET36$73536-$15
Bitcoin Up or Down - May 3, 7:25PM-7:30PM ET36$73536-$15
Bitcoin Up or Down - May 5, 10:10AM-10:15AM ET36$72836-$8
Bitcoin Up or Down - May 5, 1:35AM-1:40AM ET36$72636-$6
Bitcoin Up or Down - May 5, 2:05AM-2:10AM ET36$72336-$3
Bitcoin Up or Down - May 5, 1:25AM-1:30AM ET34$72234-$42
Bitcoin Up or Down - May 5, 7:20PM-7:25PM ET34$72134-$41
Bitcoin Up or Down - May 5, 6:45PM-6:50PM ET35$72035-$40

Top 10 winners by P/L

MarketVolumeNet P/L
Bitcoin Up or Down - April 20, 10:05AM-10:10AM ET$672+$88
Bitcoin Up or Down - April 20, 9:05AM-9:10AM ET$176+$64
Bitcoin Up or Down - April 24, 6:05AM-6:10AM ET$305+$55
Bitcoin Up or Down - April 23, 10:00PM-10:05PM ET$669+$51
Bitcoin Up or Down - April 24, 2:10PM-2:15PM ET$270+$50
Bitcoin Up or Down - April 23, 6:45AM-6:50AM ET$252+$48
Bitcoin Up or Down - April 12, 1:45PM-1:50PM ET$192+$48
Bitcoin Up or Down - April 19, 12:45AM-12:50AM ET$313+$47
Bitcoin Up or Down - April 11, 12:30PM-12:35PM ET$73+$47
Bitcoin Up or Down - April 9, 9:25PM-9:30PM ET$206+$46

Top 10 losers by P/L

MarketVolumeNet P/L
Bitcoin Up or Down - May 1, 8:45PM-8:50PM ET$84-$84
Bitcoin Up or Down - May 5, 3:25AM-3:30AM ET$546-$66
Bitcoin Up or Down - May 5, 12:50AM-12:55AM ET$702-$62
Bitcoin Up or Down - May 5, 8:30AM-8:35AM ET$697-$57
Bitcoin Up or Down - May 5, 10:15AM-10:20AM ET$696-$56
Bitcoin Up or Down - May 5, 2:30PM-2:35PM ET$414-$54
Bitcoin Up or Down - May 3, 5:15PM-5:20PM ET$218-$53
Bitcoin Up or Down - May 1, 8:15PM-8:20PM ET$201-$51
Bitcoin Up or Down - April 12, 12:25PM-12:30PM ET$409-$49
Bitcoin Up or Down - April 23, 9:10PM-9:15PM ET$568-$48

Report generated 2026-05-08 10:32 UTC.

// 005 / Filter strategy

Filter strategy

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

Wallet: 0x60889af507ec3f9da136f38b1c58080bec32f361 Window: 2026-04-08 to 2026-05-06 Baseline: 142,615 resolved BUYs · 50.34% WR · $1,747,843 deployed · +$25,483 P/L · +1.46% ROI

Methodology: All filters applied to the resolved-BUY set. ROI measured against BUY notional within the filter. The standard PR&R filter battery is designed for directional bettors; most filters do not transfer naturally to a symmetric spread-capture market maker. The exception, the high-conviction dominance filter, is transformative.

The headline result

One filter is transformative. Two are mildly useful. Three are structural no-ops.

The transformative one is the high-conviction dominance filter: restricting to markets with 2x+ dominance ratio, dominant leg only, multiplies ROI from +1.46% to +19.6% and extracts +$122,455 of P/L from $626,162 of capital. That is 4.8x the base strategy's ROI and represents the directional alpha buried inside the spread-capture book.

The price filter is mildly useful for improving ROI per dollar (+1.82% vs +1.46%) but destroys absolute P/L by cutting below-$0.30 and above-$0.70 entries, which include many of the dominant-side fills in high-conviction markets. The hour filter is functionally a no-op; no hour loses money.

The category filter is identity-equivalent to baseline (99.997% Crypto). The combined filter improves ROI to +2.03% but at the cost of halving deployed capital and losing $8,700 of absolute P/L.

CRITICAL FINDINGThe high-conviction filter (dom 2x+, dominant leg only) returns +$122,455 on $626,162 deployed. The entire unfiltered book returns only +$25,483 on $1.75 million. Focusing exclusively on high-dominance dominant legs would have been nearly 5x more capital-efficient this period.

Filter results table

Filter Trades Win Rate Capital P/L ROI Delta vs Baseline
Unfiltered baseline 142,615 50.34% $1,747,843 +$25,483 +1.46% -
Price $0.30-$0.70 83,109 51.26% $1,021,045 +$18,551 +1.82% -$6,932
High-conviction (dom 2x+, dom leg) 33,398 88.78% $626,162 +$122,455 +19.56% +$96,972
Top category (Crypto) 142,612 50.34% $1,747,831 +$25,495 +1.46% +$12
Exclude worst 4 hours (1,13,15,22) 116,193 50.41% $1,415,598 +$21,903 +1.55% -$3,580
Combined (price 30-70 + exclude worst hours) 67,460 51.42% $826,892 +$16,783 +2.03% -$8,700

Filter-by-filter commentary

1. Price band filter ($0.30-$0.70) - MILD LIFT ON ROI, DESTRUCTIVE ON ABSOLUTE P/L

Applying the standard $0.30-$0.70 sweet-spot filter improves ROI slightly from +1.46% to +1.82% but cuts absolute P/L from +$25,483 to +$18,551, a loss of $6,932.

The mechanism: the filter removes the very cheap non-dominant hedge legs (the $0.05-$0.15 buys on the losing side of high-conviction markets), which carry negative ROI as standalone positions. But it also removes many high-dominance dominant-side buys that land above $0.70, specifically the near-certainty buys in the 3x+ dominance bucket at $0.80-$0.95. Those dominant buys are the highest-expected-value fills in the book.

Verdict: Do not apply this filter to a spread-capture market maker without first stratifying by dominance ratio. Applied blindly it sacrifices the best directional fills along with the marginal hedge legs. If you must use a price filter, apply it only to the symmetric (1x-1.5x dominance) subset of markets, not to high-conviction tilted markets.

The win rate improvement from 50.34% to 51.26% under this filter confirms the eliminated trades were below-50% wins, consistent with removing the non-dominant hedge legs.

2. High-conviction filter (dominance 2x+, dominant leg only) - MEANINGFUL LIFT

This is the most important filter result in the entire analysis. Keeping only the dominant-side fill in markets where the bot allocated at least 2x more capital to one side than the other produces +$122,455 P/L at +19.56% ROI on $626,162 of capital.

The mechanism is straightforward: the bot's secondary directional signal has genuine predictive value. When it fires strongly enough to produce a 2x dominance ratio, the dominant side wins 88.8% of the time. At 3x+ dominance, it wins 95.8% of the time. These are extraordinary win rates for a binary market where the prior is 50/50.

What the filter discards is the hedge leg, the non-dominant buys that almost never win in high-conviction markets. These hedge legs are a structural cost of the both-sides framework. An operator who could identify the high-dominance markets in advance and skip the non-dominant fills would capture the directional alpha without paying the hedge tax.

Practical implication: If you're replicating this strategy, the high-conviction signal is where you want to concentrate. The question is how the bot identifies which markets warrant 2x+ asymmetric allocation. The signal is not disclosed in the trade data but the result is measurable. Market price movement in the final seconds of a 5-minute window, divergence from a spot-tape model, or order flow imbalance on the CLOB are the likely candidates.

FILTER MATHHigh-conviction filter: 33,398 trades, $626,162 deployed, +$122,455 P/L, +19.56% ROI. Base book: 142,615 trades, $1,747,843 deployed, +$25,483 P/L, +1.46% ROI. The high-conviction subset is 36% of trades but 487% of P/L. The symmetric spread-capture portion is 64% of trades but contributes only $25,483 minus the directional contribution, or roughly break-even to slightly positive.

3. Category filter (Crypto only) - NO-OP

The category filter is structurally identity-equivalent to baseline. The wallet is 99.997% Crypto by notional ($1,747,831 of $1,747,843). The $12 difference is rounding from the 7 "Other" resolved trades. This filter adds no information and should not be applied.

4. Hour exclusion filter (remove hours 1, 13, 15, 22) - WEAKLY DESTRUCTIVE

The filter removes the four lowest-P/L hourly buckets as identified by the data (UTC hours 01, 13, 15, 22). The result: 116,193 trades, $1,415,598 capital, +$21,903 P/L, +1.55% ROI.

ROI improves from +1.46% to +1.55% but absolute P/L falls from +$25,483 to +$21,903, a loss of $3,580. The "worst" hours are still profitable. Hour 01 prints +$1,003, hour 13 prints +$928, hour 15 prints +$823, hour 22 prints +$825. There is no genuinely bad hour in this strategy. The spread capture mechanism works around the clock.

Unlike a directional trader with a hard sleep window (SirMartingale), this bot has no hour that structurally bleeds. The slight variation in hourly ROI is noise around a stable 1.4-1.6% baseline. Applying an hour filter to this strategy reduces capacity without meaningfully improving edge per dollar. Not recommended.

5. Combined filter (price $0.30-$0.70 + exclude worst 4 hours) - NO-OP NET, SLIGHT ROI IMPROVEMENT

67,460 trades, $826,892 capital, +$16,783 P/L, +2.03% ROI. Absolute P/L is -$8,700 vs baseline. ROI improves by 57 basis points.

The combined filter helps a capital-constrained operator run a higher-ROI book on less capital. For a replicator with $50,000 of bankroll rather than $1.75 million in turnover capacity, this focused book may be preferable. But for an operator who can deploy the full capacity, the combined filter is net-negative in dollar terms.

What filters would genuinely add value

The standard filter battery is not well-suited to this trader. The genuinely useful refinements require data points outside the trade CSV:

Hypothetical filter Expected effect Required data
Dominance-signal conditioning: tilt only when |FairProb - CLOBMid| > 5% Would improve high-conviction win rate further; eliminate marginal 2x tilts that don't have sufficient signal Real-time BTC spot tape + CLOB orderbook depth
Skip markets where paired cost > $1.00 at entry Eliminate the ~41.2% of markets where no positive spread is locked in Live CLOB mid-price at time of first fill
Weekday-weighted sizing (reduce Tuesday fills by 30%) Tuesday ROI is only +0.46%; reducing exposure saves capital for better-ROI days No additional data needed
Week-over-week spread trend monitoring Alert when rolling 7-day P/L drops below threshold; reduce sizing before full deterioration Trailing daily P/L tracking

Bottom line for replication

The most actionable filter insight from this analysis:

  1. Run the high-conviction dominance filter. Markets where your bot allocates 2x+ on one side should be tracked separately. The dominant-leg-only P/L in those markets (+19.6% ROI) is where the real alpha lives. Consider increasing dominant-side size and reducing or eliminating the non-dominant hedge leg in those markets.

  2. Do not apply the price filter to the whole book. It removes high-value dominant fills above $0.70 along with the hedge legs below $0.30. If you use a price filter, apply it only to the symmetric (1x-1.5x dominance) markets.

  3. Do not exclude hours. Every hour is profitable. The hour filter reduces capacity without improving per-dollar edge.

  4. Monitor the rolling 7-day P/L weekly. The spread-capture base is too thin to sustain extended competitive pressure. Three consecutive negative rolling windows is a pause-and-audit trigger.

// 006 / Replication playbook

Replication playbook

Where the edge is portable, and where it isn't.

Source wallet: 0x60889af507ec3f9da136f38b1c58080bec32f361 Strategy: Automated both-sides spread-capture market maker on BTC 5-minute Up/Down markets with high-conviction directional tilt Reference book: $1,747,867 BUY notional deployed over 29 days · +$25,483 net P/L · +1.46% ROI High-conviction subset: $626,162 deployed · +$122,455 P/L · +19.56% ROI

One-paragraph operator brief

Build a Polymarket bot that opens every fresh btc-updown-5m-* market, immediately buys both "Up" and "Down" at roughly equal USDC clips targeting a combined (paired) cost below $1.00, and holds both legs to resolution. This is pure spread capture: one side always pays $1.00 per share, the other pays $0.00, and if the combined cost is below $1.00 the bot made money regardless of direction. Layered on top: when a secondary signal fires (BTC spot divergence from CLOB mid, momentum, or order flow imbalance), allocate 2x-5x more USDC to the favored side. Track dominance ratio; at 2x+ the historical win rate is 88.8% and at 3x+ it is 95.8%. Keep fills small ($5-$20 each), run 24/7, hold everything to resolution, never SELL. Expect ~$850/day in spread P/L at the reference scale of $60K/day deployed; the directional tilt adds variance and, when working, disproportionate upside.

1. Market selection

Rule Value
Asset class Polymarket binary prediction markets
Market category Crypto, BTC Up/Down only
Slug pattern btc-updown-5m-* exclusively
Duration 5-minute windows only
Excluded All other durations (15m, 1h, 4h), all other assets (ETH, SOL), all non-crypto categories
Eligibility check Market is live AND time remaining > 30 seconds AND time elapsed < 4 minutes 30 seconds (do not enter in the final 30 seconds)
Primary entry condition Up_mid + Down_mid < $1.00 (paired cost positive spread confirmed)

Prioritization: Enter every qualifying market. There is no selectivity among markets. The strategy is high-volume, low-margin. Volume is essential. Selectivity reduces capacity faster than it improves per-trade edge.

Capacity and competition: The reference book deploys ~$60,000 per day across ~7,549 markets per 29-day window (roughly 260 markets per day, or ~26 concurrent at any moment given the 5-minute intervals). Each BTC 5-minute market expires and a new one opens every 5 minutes, 288 markets per day. The bot should be entering approximately 90% of all available markets.

2. Entry logic

def should_enter(market, clob_up_mid, clob_down_mid):
    """Base spread-capture gate."""
    # Eligibility: active window, not in final 30s
    sec_elapsed = now() - market.open_time
    sec_left    = market.close_time - now()
    if sec_elapsed < 15 or sec_left < 30:
        return False

    # Slug whitelist: BTC 5-minute only
    if not market.slug.startswith("btc-updown-5m-"):
        return False

    # Paired cost gate: only enter when spread is positive
    paired_cost = clob_up_mid + clob_down_mid
    if paired_cost >= 1.00:
        return False  # No guaranteed spread available

    return True

def compute_allocation(market, clob_up_mid, clob_down_mid,
                        spot_fair_prob_up, base_clip_usdc):
    """
    Returns (up_usdc, down_usdc) to buy.
    Applies symmetric base allocation plus directional tilt if signal fires.
    """
    up_usdc   = base_clip_usdc
    down_usdc = base_clip_usdc

    # Compute fair-value gap
    gap = spot_fair_prob_up - clob_up_mid

    # Tilt logic: if spot diverges from CLOB by > 5%, increase favored side
    if abs(gap) >= 0.05:
        if gap > 0:  # Up is underpriced vs fair value
            up_usdc   = base_clip_usdc * tilt_multiplier(gap)
            down_usdc = base_clip_usdc  # Keep hedge at base size
        else:        # Down is underpriced vs fair value
            down_usdc = base_clip_usdc * tilt_multiplier(abs(gap))
            up_usdc   = base_clip_usdc  # Keep hedge at base size

    return up_usdc, down_usdc

def tilt_multiplier(gap):
    """Scale from 1x (no tilt) to 5x (strong signal)."""
    if gap < 0.05:  return 1.0
    if gap < 0.10:  return 1.5
    if gap < 0.15:  return 2.5
    if gap < 0.20:  return 4.0
    return 5.0
Parameter Value Rationale
Base entry trigger Up_mid + Down_mid < $1.00 Ensures positive spread is available
Minimum spread threshold > $0.005 per paired unit Filters out markets priced at $1.00 exactly
Window entry timing 15 seconds after open to 270 seconds (30s before close) Avoids erratic first-tick prices and final-seconds volatility
Directional signal threshold |fair_prob - CLOB_mid| >= 5% Below 5% the directional edge is noise after fees
Max tilt multiplier 5x on favored side Consistent with observed 3x+ dominance markets

Multi-leg fan-out: The reference bot fires 10-40 fills per 5-minute window, spaced roughly every 15-60 seconds. This reduces market impact and allows the bot to accumulate position across the window as the orderbook updates. Do not place a single large order; walk the book with repeated small clips.

3. Exit logic (hold to resolution)

There is no exit logic. Every position is held to resolution. The BTC 5-minute window closes in at most 300 seconds, at which point one outcome pays $1.00 per share and the other pays $0.00. The bot collects its resolution payouts automatically through the Polymarket CLOB settlement mechanism.

def manage_position(position):
    """No active management. Hold to resolution."""
    # Do not post SELL orders
    # Do not cancel BUY orders mid-window
    # Wait for market.resolved == True
    # Collect settlement payout via API
    pass
Threshold Value Rationale
SELL activity None No SELL orders ever; settlement is automatic and guaranteed
Stop-loss None Loss is bounded by clip size; no tail risk from individual positions
Hold period Maximum 5 minutes per market Every market expires, resolution is automatic
Cancel-before-close Cancel any unfilled BUY orders at T-5s Avoid partial fills in the final-second scramble

Why no SELL engine: Unlike directional traders who need to convert unrealized to realized before markets reverse, this bot's edge is locked in at entry time. If paired cost is $0.97, the expected value of $0.03 per unit is guaranteed by the binary resolution mechanic. Selling early would require posting asks, competing for fill, and potentially legging out of a paired position and creating directional exposure. The hold-to-settlement approach is structurally optimal for this strategy.

4. Sizing model

The reference book uses near-uniform sizing across all fills:

Bankroll (working capital) Base clip per fill Max clip per fill Target fills per market Daily deployed
$5,000 $3-$5 $15 10-15 per side ~$7,000
$10,000 $5-$10 $20 15-20 per side ~$14,000
$25,000 (reference-proportional) $8-$15 $30 15-25 per side ~$35,000
$50,000 $12-$20 $40 20-30 per side ~$60,000
$100,000+ Do not scale linearly - Fragment into multiple wallets -

Tilt sizing for high-conviction markets: When the directional signal fires at 2x+ tilt, increase the favored-side clip to 2x-5x the base clip while keeping the hedge-side clip at base. At the reference scale with a $10 base clip, a 4x tilt means $40 on the favored side and $10 on the hedge side. This matches the observed 3x+ dominance bucket behavior.

Sizing discipline: Do NOT Kelly-size. Do NOT scale by expected spread. The spreads are too thin and too similar across markets for conviction-based sizing to add value on the symmetric spread-capture component. Uniform small clips minimize variance and prevent any single market loss from mattering.

Natural capacity ceiling: At approximately $100K of working capital per wallet, the bot begins to move CLOB prices on its own fills, degrading the paired cost it achieves. Above that threshold, fragment into 2-3 wallets or accept that per-dollar ROI will compress.

5. Both-sides allocation

Both sides of every market are purchased. This is non-negotiable for the base strategy. The both-sides requirement:

  1. Guarantees positive P/L when paired cost < $1.00, regardless of direction.
  2. Eliminates directional risk from the spread-capture component.
  3. Maintains a natural hedge against the directional tilt being wrong.

Allocation ratio guide:

Market type Up allocation Down allocation Dominance
Symmetric (no signal) Base clip Base clip 1.0x
Mild signal (5-10% gap) 1.5x base Base clip 1.5x
Moderate signal (10-15% gap) 2.5x base Base clip 2.5x
Strong signal (15-20% gap) 4x base Base clip 4x
Very strong signal (>20% gap) 5x base Base clip 5x

At 5x tilt, the hedge leg is 17% of total capital deployed in the market. This matches the observed 3x+ dominance markets where the non-dominant side is bought at very low prices (0.05-0.15) as a small hedge against the primary directional position.

Paired cost discipline: Before entering any market, confirm that the target allocation produces a paired cost below $1.00. In tilted markets where you're buying the favored side at $0.85 and the hedge at $0.15, paired cost = $1.00 exactly. In those cases you are no longer capturing spread; you are making a directional bet with a cheap hedge. Be explicit about which mode you're in.

6. Scheduling and coverage

Recommended schedule: 24/7 continuous coverage.

Unlike directional traders with session-specific edges, this strategy has no structural hour-of-day edge variation. Every UTC hour is profitable in the reference data. Halting the bot overnight wastes capacity and reduces the total spread capture.

Period Action Notes
All 24 hours, all 7 days Run at full size No sleep window; spread is available whenever markets are open
Weekends (Sat/Sun) Consider 110-120% of base sizing Saturday ROI was +2.59% vs +1.46% baseline; less competition
Tuesday Consider 80-90% of base sizing Tuesday ROI was only +0.46%; weakest weekday
Scheduled maintenance Limit to < 10 minutes/day 10 minutes offline = ~35 missed market opportunities

BTC 5-minute market schedule: Polymarket opens a new btc-updown-5m-* market every 5 minutes, 24/7. That is 288 markets per day. The reference book touches approximately 260 per day (90% coverage). Full coverage is achievable with a well-tuned bot; the 10% miss rate in the reference data may be latency or fee-related passes.

7. Operational requirements

Requirement Specification
Latency Sub-2-second end-to-end (signal computation to order submitted). Not latency-sensitive in the same way as SirMartingale; the spread capture does not require racing other bots. But order placement must complete within the 300-second window.
CLOB connection Persistent WebSocket to Polymarket CLOB for market events (open, close, price updates). Polling at 15-30 second intervals is marginally acceptable but WebSocket is preferable.
Spot data (optional but important for tilt) Real-time BTC mid-price from Coinbase or Binance. Required for the directional tilt signal. Not required for the base spread-capture component.
Wallet setup Single EOA on Polygon, USDC-funded. Persistent nonce manager for concurrent multi-leg orders.
Capital management Maintain $5K-$50K USDC liquid on Polygon at all times. Capital recycles every 5 minutes as markets resolve. Peak instantaneous exposure is much smaller than daily turnover.
Gas Polygon gas; negligible (<$0.01/fill). High fill volume (4,918/day) means daily gas cost is a few dollars.
Uptime 99%+ target. Each hour offline at the reference scale costs ~$36 in expected spread P/L.
Concurrency 10-20 concurrent open markets at any given time (each 5-minute window overlaps with adjacent windows). The bot must manage multiple open positions simultaneously.

8. Risk profile

Risk Severity Mitigation
Per-market max loss $54 (observed max fill) Structural; bounded by clip size cap
Daily max drawdown ~$500-$2,000 at reference scale (from directional tilts losing) Tolerable; the spread component provides a positive floor
Paired cost > $1.00 Medium Hard gate in entry logic; skip any market where Up_mid + Down_mid >= $1.00
Spread compression (other MMs competing) High; primary strategic risk Monitor weekly paired cost median. If it rises from $0.9907 toward $0.9980+, reduce sizing and review.
Tilt signal accuracy degradation Medium Monitor dominant-side win rate in 2x+ dominance markets. Historical baseline is 84-96%. If it drops below 70% for a rolling week, disable the tilt and run symmetric-only.
CLOB liquidity drying up Low-Medium BTC 5-minute markets have sustained high liquidity. Check market depth before entering; skip markets with bid-ask spread > $0.10 on either side at your clip size.
Smart contract / CLOB risk Low Polymarket protocol-level risk. Use standard mitigation (no single wallet > $100K exposure).
Rolling 7-day P/L going negative High trigger Three consecutive negative 7-day windows = pause all activity and audit paired cost trends and dominance win rates.

The primary risk is competitive spread compression. The reference data already shows this: the rolling 7-day P/L degraded from a peak of +$13,096 (week ending April 24) to -$3,276 (week ending May 6). The likely cause is other market makers entering the BTC 5-minute space and bidding up the paired cost toward $1.00. When the paired cost median rises above $0.995 for more than 2-3 days, the spread-capture base becomes economically marginal and the strategy's P/L becomes entirely dependent on the tilt signal performing.

9. Diagnostic checklist: is the bot still working?

Run weekly:

Metric Healthy range Action if outside
Median paired cost $0.985-$0.993 If > $0.995 for 3+ days: reduce sizing 50%, investigate market competition
% of markets with paired cost < $1.00 55-70% If < 45%: significant spread compression; pause and review
Rolling 7-day P/L > $0 If negative 3 consecutive weeks: pause, audit, rebuild
Dominant-side win rate (2x+ dominance) 80-96% If < 70% for a rolling week: disable tilt signal, run symmetric only
Daily markets touched 240-280 (of 288 available) If < 200: bot has latency or eligibility logic issue
Average fills per market 10-30 If < 8: order execution is failing or market depth is insufficient
P/L per market (average) $2.00-$4.00 If < $1.00: spread compression or tilt underperformance
Tuesday vs Saturday ROI ratio Saturday > Tuesday If reversed for 2+ weeks: investigate whether competition pattern has shifted

10. What this playbook deliberately does not include

No SELL orders. The spread-capture model works because the edge is locked in at entry. Adding a SELL engine would introduce exit slippage, create the possibility of legging out of a paired position, and add operational complexity for zero structural benefit. Every position is held to the 5-minute resolution.

No market selection within BTC 5-minute. Do not add "skip markets where realized vol is low" or "prefer markets with higher VIX" or any other market selection filter within the BTC 5-minute universe. The strategy's edge is volume-dependent and any selectivity reduces capacity faster than it improves per-trade ROI. The exception: skip markets where paired cost is at or above $1.00, which is already hardcoded in the entry gate.

No other asset classes or durations. The reference book had one each of Soccer, Politics, and several "Other" trades. They all lost money or broke even. BTC 5-minute is the only slug. ETH 5-minute and BTC 15-minute are not included in this trader's book and their liquidity profiles and spread characteristics are different enough that you should not assume they carry the same edge without fresh analysis.

No position re-entry or averaging down. Once the bot has placed its fills in a 5-minute window, it does not go back and add more to a position because the price moved favorably. Each market window is a single allocation decision. Adding within a window increases position size beyond the planned cap and introduces timing risk.

No manual override of the dominance tilt. The tilt signal must be quantitative and rules-based. Manual judgments about whether Bitcoin "looks bullish" are not part of this strategy and historically underperform systematic signals on short time horizons.

No attempt to recover from spread compression by widening clips. If the weekly diagnostic shows paired cost rising toward $1.00, the correct response is to reduce sizing and wait for competition to normalize, not to increase clip sizes hoping to "make it up on volume." The spread is what it is; you cannot manufacture a positive spread by deploying more capital.

TL;DR - implementable in ~100 lines of Python

async def run_bot(wallet, usdc_balance):
    clob_feed  = await connect_polymarket_clob_ws()
    spot_feed  = await connect_spot_websocket()
    base_clip  = min(10.0, usdc_balance * 0.0002)  # ~0.02% per fill

    async for market_event in clob_feed:
        market = market_event.market
        if not market.slug.startswith("btc-updown-5m-"):
            continue

        sec_left = (market.close_time - now()).seconds
        if sec_left < 30 or (300 - sec_left) < 15:
            continue

        up_mid   = market.up_side.mid_price
        down_mid = market.down_side.mid_price

        # Gate 1: paired cost must be below $1.00
        if up_mid + down_mid >= 1.00:
            continue

        # Gate 2: skip if spread is microscopic
        if (1.00 - up_mid - down_mid) < 0.005:
            continue

        # Compute directional tilt
        spot_btc    = spot_feed.latest_btc_mid()
        fair_prob_up = compute_fair_prob(market, spot_btc)
        gap          = fair_prob_up - up_mid

        up_clip   = base_clip
        down_clip = base_clip

        if abs(gap) >= 0.05:
            multiplier = tilt_multiplier(abs(gap))
            if gap > 0:    up_clip   = base_clip * multiplier
            else:          down_clip = base_clip * multiplier

        # Submit both legs
        await buy(market, "Up", usdc=up_clip)
        await buy(market, "Down", usdc=down_clip)
        # Holds to resolution automatically - no sell logic

    # Reconcile after each resolved market
    # Collect settlement payouts via /positions endpoint

Expect ~$850/day in base spread P/L at a $60K/day deployment rate. The directional tilt adds meaningful upside when the signal is fresh and the competition is thin. Monitor paired cost weekly. Pause when the rolling 7-day window goes negative for three consecutive periods.

Join Discord