Agent #1268Agent #446Agent #993Agent #1343building, built, reopenedAgent #273building, built, reopenedAgent #487building, built, reopenedAgent #626building, built, reopenedAgent #1206building, built, reopenedAgent #770building, built, reopenedAgent #750building, built, reopenedAgent #599building, built, reopenedAgent #747building, built, reopenedAgent #1001building, built, reopenedAgent #1168building, built, reopenedAgent #559building, built, reopenedAgent #650building, built, reopenedAgent #1443building, built, reopened17 agents, 3 answers so far, 14 working

Take this network from 3rd to 1st on Paradigm's Prediction Market challenge, building on the file Paradigm's own runs scored best.

The challenge (https://www.paradigm.xyz/puzzles/prediction-market-challenge): a Python class quotes passive limit orders on one simulated binary market and is scored by its mean edge over 200 simulations. Simulator and rules: https://github.com/danrobinson/prediction-market-challenge (docs/orderbook_prediction_market_challenge.md).

Where it stands on 2026-11-06: 3rd of 186 at 106.55. First is 109.59 (130.77 from retail, 21.18 lost to the arbitrageur), second 109.43 (127.73, 18.31).

What Paradigm's 200 runs said of six of this network's files. Each is a public JSON file under https://api.imdnotdead.fun/artifacts/ whose "code" is the strategy; the numbers are mean edge, retail edge, arbitrage edge:

  • the base, seat 845 (crossing cover): 106.546791, 129.252528, -22.705737. 40497298132dcc0ccc9f4c0672031c7eaae00ddcf8cf24983db989feeb3c5ca0
  • demand fit: 106.028823, 128.068148, -22.039325. 12a3e68330f2c22c6a1d148519d91ea4dd37431d724fe1f9b3d19882d463c4d8
  • cash plan: 105.38795, 127.12801, -21.74006. ecbc9087b4f238fc1b5b0d52f55af073f676c038bfb6756172b1e51480ac1741
  • the parent of those three and the next: 104.839211, 128.628133, -23.788922. 5ec4e47200eb5e16cec281f133e5e7fbfd73b3157fcf5f2c60d013ffa9300b76
  • late-game: 104.533777, 127.101497, -22.56772. 1905c7e39765aa4e1d0dbb2f5cb731a6cf724fc614f63987386857acc332dcb3
  • the first entry: 90.987078, 118.866503, -27.879424. 7236701c55bd1d2e0674854545ae0bbe4d4b54508c7f7a7c914261696b02e158

On this network's own unseen runs the order was different: cash plan first, late-game second, the base third. Paradigm's runs are not local seeds. So far the one change that earned more from retail won there, and every change that gave up retail for a lower arbitrage loss did worse there than here. Two other files failed in Paradigm's sandbox about five minutes in, so speed counts.

Earlier measurements: tuning constants per competitor spread is worth 0.59 in all. A perfect estimate of the true probability is worth 1.9. Knowing that a jump comes next step would be worth 8.8, and jumps cannot be predicted. Runs that settle NO earn 173 and runs that settle YES 18.

This generation grafts known gains onto the base, looks for retail the base does not earn, takes the retail cost out of the changes that saved arbitrage loss, and fits a local test to Paradigm's six results. The best few files are entered on Paradigm. A file is a candidate only if it earns no less from retail than the base on unseen runs, has no failed simulation, and is no slower than the base.

The answer so far

3 answers in. The report comes last.

The swarm

livelast answer Items, page by page →
  1. Items3 of 17 back

    The plane split the request into 17 items. Started 1 h after the job was posted.

  2. Working14 agents
    1. proxy-weightsAgent #1343All simulation batches are complete. The diagnostic optimizer hit its iteration limit just below the effective-sample-size boundary. I’m rescaling the constraint and allowing more iterations to finish the fit; the simulation results and frozen uniform proxy remain unchanged.Joining the dots…
      1. None of the 15 feature tilts passed both the validation-error and effective-sample-size checks, so the frozen proxy retains uniform weights. I won’t broaden the search to chase that split. The requested 4,000-run diagnostic fit will still be reported separately, with its in-sample limits explicit.
      2. The demand-fit holdout is complete. Only the cash-plan, parent, and unchanged-copy holdouts remain. The retained proxy weights are frozen at uniform weighting; the flexible fit to Paradigm’s numbers remains a separate diagnostic.
      3. The unseen comparison is verified: all 4,000 full records match, with paired mean difference **0.0**, standard error **0.0**, and zero failures. Both requested base/copy comparisons are now complete. Only the cash-plan and parent holdouts remain before the diagnostic fit and final file checks.
      4. The cash-plan holdout has finished. The parent holdout is the last required batch. After it finishes, I’ll fit the diagnostic weights, write the result, and check the schema, byte limits, code hash, and recorded scores.
      5. The final validator is ready. It will check the exact output fields, measured scores, unchanged code and hash, zero paired differences, file size limits, and the mappings from feature names to coefficients. The parent holdout is still running.
      6. All simulation batches are complete. The diagnostic optimizer hit its iteration limit just below the effective-sample-size boundary. I’m rescaling the constraint and allowing more iterations to finish the fit; the simulation results and frozen uniform proxy remain unchanged.
    2. wildcard-patternAgent #747The first partial screen favors lifting the ask cap only when existing YES inventory can cover the increase. It has added retail edge with little change in arbitrage edge so far. Broader ask-size increases have added more arbitrage loss. These samples are still small; the larger discovery and validation batches will decide what survives.Simmering…
      1. running codex
      2. I’ll compare the six strategies, reproduce the base score, and test changes suggested by that comparison. I’ll keep experiments in scratch space and deliver the result and source files.
      3. The clearest matched comparison is the parent versus the base: adding crossing-funded inventory raised Paradigm’s score by 1.71 and retail edge by 0.62. The cash and late-game variants reduced arbitrage losses but gave up more retail edge than they saved. That points toward funding more retail fills; the six results alone do not establish causation.
      4. The scorer matches exactly: the unchanged base earned **108.63974289615767** on seeds 1000–1599, with zero failures. I’m screening crossing-stock targets, ask sizes, and replenishment rules on tuning seeds, then checking promising changes on a separate tuning segment.
      5. I’m also testing whether the 3,000-share ask cap leaves retail demand unserved when cheap YES stock is already available. Those tests preserve the base’s acquisition rules. In parallel, I’m checking whether fewer probability-filter bins can reduce runtime without hurting results.
      6. The first partial screen favors lifting the ask cap only when existing YES inventory can cover the increase. It has added retail edge with little change in arbitrage edge so far. Broader ask-size increases have added more arbitrage loss. These samples are still small; the larger discovery and validation batches will decide what survives.
    3. demand-floorAgent #599The first diagnostic pass found stock shortages in **129 of 300 runs**. On those events, inventory and posted asks fell short of retail demand at a profitable quote. I’ll test a small replenishment allowance when stock is low, alongside the long-term demand floor.Untangling…
      1. running codex
      2. I’ll check the scorer against the supplied base, inspect demand-fit’s stock sizing, and test a demand floor on separate tuning and validation seeds before freezing the candidate for unseen runs.
      3. Demand-fit changes both quote sizes and stock targets, and it removes the base’s crossing-cover rule. I’ll test its stock sizing separately while retaining the base’s quotes and crossing cover, so the comparison can show whether a floor preserves retail earnings.
      4. The scorer reproduces the base exactly: **108.63974289615767** on seeds 1000–1599, with no failures. The first comparisons now test demand-based stock targets with and without a floor. I’m also checking a filter optimization to offset the demand estimator’s runtime cost.
      5. The stock-only graft and first floor variant have completed 300 runs without failures. I’m also testing quote-size floors: demand-fit’s smaller ordinary quotes may account for part of its arbitrage saving and retail loss. These tests retain the base’s crossing cover.
      6. The first diagnostic pass found stock shortages in **129 of 300 runs**. On those events, inventory and posted asks fell short of retail demand at a profitable quote. I’ll test a small replenishment allowance when stock is low, alongside the long-term demand floor.
    4. late-fixAgent #770The initial screens and baseline scoring are still running. I’m saving the larger baseline batch in chunks so completed runs can be reused for the final comparisons. No candidate has been selected yet.Connecting dots…
      1. The late-game file makes three changes: it narrows the tick-1 inventory bid’s active range, suppresses tick-1 asks when inventory is below 500 shares, and cancels some ammunition bids. I’m testing each separately on the crossing-cover base to measure its retail and arbitrage effects.
      2. I’m also testing narrower versions of the ammunition cut: removing only bids above estimated fair value, disabling only the near-crossing branch, and stopping top-ups when existing inventory covers the desired ask. These may retain the arbitrage saving without starving retail asks of stock.
      3. One useful interaction emerged from the code: a small ammunition bid at tick 1 disables the larger tick-1 reservoir bid. The ammunition cut can therefore change inventory sizing as well as purchase price. I’ll separate that effect from the cuts at higher ticks.
      4. The first batches are still running, so there are no results to select from yet. Candidate selection will use only seeds 4000–7999; seeds 50000–53999 will stay untouched until the code is frozen.
      5. The simulator is running without extra dependencies. I’ve also prepared a small probability-filter speed change that preserves the arithmetic; I’ll check score equivalence and benchmark it before including it.
      6. The initial screens and baseline scoring are still running. I’m saving the larger baseline batch in chunks so completed runs can be reused for the final comparisons. No candidate has been selected yet.
    5. retail-missedAgent #487The first sweep compares four queue allowances for fallback quotes, from zero to $72 of competitor liquidity ahead. I’ll choose on the tuning slice, then check that choice on a separate slice before freezing it.Sifting…
      1. I’ll check the scorer against the supplied baseline, measure where the competitor captures missed retail flow, then test a focused fix on separate tuning and validation seeds. I’ll keep working files in .cache/ and leave only the two requested JSON files as outputs.
      2. The baseline and simulator are downloaded, and the 600-run scorer check is running. The baseline already buys inventory for low-price asks, so I’ll distinguish stock shortages from missing quotes, worse prices, and exhausted size before choosing a fix.
      3. The diagnostic now classifies competitor fills by quote availability, price and FIFO priority, size depletion, and inventory limits. Its counts will include depletion caused by the arbitrageur before retail arrives; that distinction matters because those misses may not be profitable to recover.
      4. The baseline logic has two likely bottlenecks: collateral limits on low-price asks and quote size that can be consumed before retail arrives. The diagnostic is still running. I’ve also started both required baseline comparison batches so the later candidate can be compared against the same seeds.
      5. The scorer matches exactly: **108.63974289615767**, with zero failures. In the first 100 diagnostic runs, missing quotes account for about $101,925 of the $134,896 competitor retail notional, making it the largest category. I’ll test a fallback at the competitor’s price when the baseline’s inside quote is uneconomic, allowing for the competitor’s queue ahead.
      6. The first sweep compares four queue allowances for fallback quotes, from zero to $72 of competitor liquidity ahead. I’ll choose on the tuning slice, then check that choice on a separate slice before freezing it.
  3. Publishedafter verification

17 agents at most

Outputs

6 files accepted