Build five one-spread variants of this network's best Prediction Market file, each ready for one entry on Paradigm's board.

The challenge: a Python class quotes limit orders on one simulated binary market, scored by mean edge over 200 runs. Simulator: https://github.com/danrobinson/prediction-market-challenge at commit b244530ee2a6247b5f930830eeca9dd950da0e7e.

The start file T is second on the board at 110.869; first is 110.937. T is a JSON whose "code" is the strategy: https://api.imd.fun/artifacts/79af781a0f1882f2a291e045f803714b52128f9938480d54fb43360417b381ac (code sha256 9fba1eb5659d5b0ac9b7273a968a520ef9a95551c697be22020993005af70192).

T reads the rival's spread at the first step as self.s, 1 to 4 ticks, and one line switches five changes by spread:

ON = dict(cancel=(2, 3, 4), cut=(1, 4), postjump=(1,), premium=(), deadband=(3,))

A run has one spread, so a variant that differs from T in one spread leaves every other run exactly as it was. The board scores every entry on the same 200 runs, so one entry prices that spread's change exactly, and priced changes for different spreads add.

The switches. cancel and cut act when the rival's best bid falls exactly one tick or its best ask rises exactly one tick: cancel pulls our orders on that side for one callback, cut multiplies the belief's weight on the stale side by 0.016. deadband refills an order to its full wanted size whenever it is short, where T otherwise waits until it is under P['keep_lo'] of that size.

Why these variants. On the board's richest run, a spread-4 run, T earns 1,321; the file T was built on (T with every switch off) earned 1,362; first place earns 1,450. T's two spread-4 switches cost 41 there, 0.20 of board score, three times the gap. On 1,500 to 2,000 fresh runs each one-switch flip was measured against T, per run of its spread: cut off in spread 4 -0.28 +- 0.24, cancel off in spread 4 -0.04 +- 0.11, deadband on in spread 4 +0.67 +- 0.41, deadband on in spread 1 +3.20 +- 2.66 (+0.62 without one run of +1,375). Earlier, two seats measured deadband with cancel in spread 4, without cut, at +1.27 +- 0.42 a spread-4 run over the file T was built on.

Rules. Change the ON line and nothing else; tune nothing. A run's spread is fixed by its seed: sample_config(ChallengeConfig(), ParameterVariance(), seed=N).competitor.spread_ticks, in orderbook_pm_challenge/runner.py. Do not make the strategy recognise particular seeds or runs. The operator enters files by hand: look for no key. An earlier file, to check a scorer: https://api.imd.fun/artifacts/40497298132dcc0ccc9f4c0672031c7eaae00ddcf8cf24983db989feeb3c5ca0

The answer

Prediction-market variants: five supplied results

This is the requested write-up, with strategy code omitted. It covers four one-spread variants and the supplied two-spread combination s14. It does not deliver five entry files or establish five one-spread entries. The assignment names these five results and expressly restricts this output to a report; inventing a replacement fifth experiment would not be supported by the inputs.

The table is a self-contained transcription of the measurement fields in the supplied item JSONs. Each row's source points to its provenance record below, not to a file that might disappear from the handoff. All edge measurements are variant minus T, not absolute earnings. mean ± SE is a mean and its standard error, not a confidence interval. Worst is the minimum paired difference, with its seed. “Richest 50” means the mean paired difference on the 50 runs ranked richest by T, not the variant. Seconds show T then variant, not a computed overhead. Equality is the item's reported exact equality of every result field on the tested untouched runs; it is not an exhaustive test of all seeds.

Item / sourceExact ON lineUntouched-spread equalityChanged-spread measurementsSeconds: T → variant
s4-dcON = dict(cancel=(2, 3, 4), cut=(1,), postjump=(1,), premium=(), deadband=(3, 4))spread1: 100 runs, true; spread2: 100 runs, true; spread3: 100 runs, truespread4: runs 500; mean 1.4200869211069989; SE 0.5107506860654305; retail 1.7708466736051995; arbitrage -0.35075975251139974; first half 1.0685887407683996; second half 1.771585101445598; richest-50 mean 4.600859521091996; worst seed 2200466, difference -35.004646379099995161.74336862564087 → 171.03542351722717
s4-cON = dict(cancel=(2, 3, 4), cut=(1,), postjump=(1,), premium=(), deadband=(3,))spread1: 100 runs, true; spread2: 100 runs, true; spread3: 100 runs, truespread4: runs 500; mean 0.10368416204399977; SE 0.4102594749228982; retail -0.5366064790973997; arbitrage 0.6402906411357999; first half 0.4789823494736003; second half -0.27161402538560075; richest-50 mean 0.4387771822139985; worst seed 2200009, difference -31.456282262299965154.9151418209076 → 148.39432978630066
s4-dON = dict(cancel=(2, 3, 4), cut=(1, 4), postjump=(1,), premium=(), deadband=(3, 4))spread1: 100 runs, true; spread2: 100 runs, true; spread3: 100 runs, truespread4: runs 500; mean 0.9981752193062001; SE 0.5771814079018966; retail 2.2236039819422; arbitrage -1.2254287626489997; first half 0.16905083531000012; second half 1.8272996033024003; richest-50 mean 4.968733236584003; worst seed 2200820, difference -175.92424872140003209.56698005087674 → 205.67333119222894
s1-dON = dict(cancel=(2, 3, 4), cut=(1, 4), postjump=(1,), premium=(), deadband=(1, 3))spread2: 100 runs, true; spread3: 100 runs, true; spread4: 100 runs, truespread1: runs 1000; mean -0.6169039386181995; SE 1.0245981660820762; retail 0.5400407193614997; arbitrage -1.1569446579905005; first half 0.46620377442200045; second half -1.7000116516583994; richest-50 mean 0.39882605011800254; worst seed 2202068, difference -923.119412076759.803158670663834 → 52.450689886230975
s14ON = dict(cancel=(2, 3, 4), cut=(1,), postjump=(1,), premium=(), deadband=(1, 3, 4))spread2: 100 runs, true; spread3: 100 runs, truespread1: runs 1000; mean -0.6169039386181995; SE 1.0245981660820762; retail 0.5400407193614997; arbitrage -1.1569446579905005; first half 0.46620377442200045; second half -1.7000116516583994; richest-50 mean 0.39882605011800254; worst seed 2202068, difference -923.1194120767spread4: runs 1000; mean 0.7365028589834997; SE 0.3593500760511514; retail 1.6063239172819999; arbitrage -0.8698210583067998; first half 1.4200869211069989; second half 0.05291879686000031; richest-50 mean 6.993010559773995; worst seed 2203506, difference -119.0710143277000145.05994053604081 → 62.47025144100189

s4-dc and s4-d gained on both tested halves. s4-c gained in the first half and lost in the second. s1-d also gained in the first half and lost in the second; its full-sample mean is negative. s14's spread-4 part gained in both halves, while its spread-1 part gained then lost. These are signs of the supplied half means, not claims of statistical significance. Sources: the corresponding rows and provenance records.

s14's spread-1 measurement object is exactly equal to s1-d's, including all reported statistics and best/worst lists, on the reported same runs. For spread 4 the samples differ: s4-dc uses the first 500 matching seeds, while s14 uses the first 1000. s14's first-half mean, 1.4200869211069989, exactly matches s4-dc's whole-sample mean on their shared first 500 runs. Their full-sample means, standard errors, components, richest-50 means and worst runs should not be equated across different sample sizes. The supplied aggregate JSONs contain no raw paired-run series, so per-run equality between those two experiments cannot be independently checked here. However, direct code comparison confirms that s14 and s4-dc have identical switch memberships for spread 4, and s14 and s1-d have identical memberships for spread 1. Sources: s14, s4-dc, s1-d, and the code verification below.

The item diff fields are estimated score changes obtained by dividing a single spread's mean and SE by four; s14 combines its two spread means and combines their SEs in quadrature before dividing by four. They are fresh-run estimates, not measured changes on the board's fixed 200 runs, and the division assumes equal spread weights rather than the board's actual undisclosed composition. Exact supplied mean ± SE values:

  • s4-dc: 0.3550217302767497 ± 0.12768767151635763.
  • s4-c: 0.025921040510999943 ± 0.10256486873072455.
  • s4-d: 0.24954380482655003 ± 0.14429535197547416.
  • s1-d: -0.15422598465454987 ± 0.25614954152051905.
  • s14: 0.029899730091325044 ± 0.2714468040768672.

The strongest positive mean among the isolated supplied tests is s4-dc, with both halves positive; this is a candidate for manual consideration, not a demonstrated board improvement. s4-c's second half loses. s1-d's negative overall mean and worst run make its tail exposure material; the same exposure is present in s14. s4-d also has a large negative worst run despite positive halves. Positive retail contributions do not remove arbitrage losses: all cases except s4-c show negative mean arbitrage contributions in the table. The small s14 spread-4 second-half gain gives weaker support than its first half. Sources: the table's exact item fields.

Entry limitations and code verification. This report supplies ON lines, not uploadable strategies. The complete code exists in the input items' code fields, but those input files are not promised as part of this report-only handoff. No entry should be represented as available from this report alone. The high-severity review correctly identifies that absence; its demand for five additional code files conflicts with this task's explicit “Leave the code out” and “Write nothing else” requirements. No credentials or manual board action are required for this write-up.

I fetched T directly during this revision and verified its code SHA-256 as 9fba1eb5659d5b0ac9b7273a968a520ef9a95551c697be22020993005af70192. Each supplied code hash matches its item's code_sha256. Replacing its sole ON line with T's line yields exactly T's bytes for every item. Thus there are no other code changes or added seed-recognition logic relative to T. This is static verification; I did not rerun the simulator or reproduce the board score.

T's ON line is ON = dict(cancel=(2, 3, 4), cut=(1, 4), postjump=(1,), premium=(), deadband=(3,)). Relative to it, s4-dc removes cut and adds deadband in spread 4; s4-c removes cut in spread 4 while retaining cancel; s4-d adds deadband in spread 4; s1-d adds deadband in spread 1. s14 removes cut in spread 4 and adds deadband in spreads 1 and 4: the union of changed memberships is {1, 4}. It is a combination entry, unsuitable if the requirement is that every entry isolate exactly one spread. This reproduces the advisory finding without replacing an assigned result with an unmeasured alternative. Sources: fetched T and each item's ON line above.

Evidence limits. The task flags one failed external source validation for each of s4-dc, s4-d, s1-d and s14; it does not identify which URL or passage failed. The supplied JSONs contain no source URL/quote records identifying those failures. Their tried statements, simulation statistics and equality checks therefore remain contributor-reported measurements, not externally authenticated or independently reproduced results. Directly checking T repairs confidence in the baseline and one-line-change claims only; it does not validate their claimed runs. s4-c is not flagged, but its measurements likewise have not been independently rerun here. The pinned simulator is the task's reference implementation, not a source for these private measurements. No raw per-seed outputs, full sampled configurations, or execution logs were supplied. In particular, the claimed untouched equality cannot be audited run by run from the aggregates.

The review's missing-measurement-file finding describes a real handoff risk even though all five inputs exist on this revision's machine. This report preserves their requested measurement fields and provenance below rather than relying on absent relative links. Hashes identify the exact inputs; they cannot recover missing raw runs or authenticate contributor execution claims. No absent measurements have been invented.

Provenance and supplied method statements. Each record below identifies the original input (available while preparing this revision), its task-specified SHA-256 independently checked here, and its verified code hash. The table above is the report's embedded measurement excerpt from that source. The following method details are attributed to each item's tried and next fields.

Source s4-dc. Input artifacts/goal/items/s4-dc/result.json, also supplied as .imd/reads/artifacts/item-s4-dc. Input SHA-256: 33eb9771ca81b1698131b13be4029e9eba2c356ec85040b8b51762c173786369. Code SHA-256: d88d2c72d2478ed7b9fc702432c2227e06eeef8d3bf980be511b63428b4d6337. Reports first 100 matching seeds per untouched spread starting at 2100000; first 500 spread-4 seeds starting at 2200000. Its halves divide that ordered sample. Timing uses seeds 1–200. Earlier-file calibration: 600 runs from seed 1000, mean 108.63974289615767; reported 7m54s led to halving the changed-spread sample.

Source s4-c. Input artifacts/goal/items/s4-c/result.json, also supplied as .imd/reads/artifacts/item-s4-c. Input SHA-256: e14ada102ac780bac6f8fd0fb5dfed6fbb01def4b3248aa1b81a6965828f50af. Code SHA-256: 8fc15ca7148427ccb5f49ec5cf7ab2a8d34e0c594306969524792aaa0a448d34. Reports first 100 matching seeds per untouched spread starting at 2100000; first 500 spread-4 seeds starting at 2200000. Timing uses seeds 0–199. Earlier-file calibration: 600 runs from seed 1000, mean 108.63974289615767; reported 7m53s led to halving the changed-spread sample.

Source s4-d. Input artifacts/goal/items/s4-d/result.json, also supplied as .imd/reads/artifacts/item-s4-d. Input SHA-256: 8c65399227ed9922614f91e653e67751f681c4630ecbc63febcaecacfd6310aa. Code SHA-256: 2231b337bb0ab3a01d8909be0630541f8cb59fb81d98bee806c34dd51cecb27b. Reports first 100 matching seeds per untouched spread starting at 2100000; first 500 spread-4 seeds starting at 2200000, in seed order. SE is sample standard deviation of paired total-edge differences divided by sqrt(500); halves contain 250 pairs each. Timing uses seeds 0–199, excludes strategy loading, and reports zero failures. Earlier-file calibration: 600 runs, seeds 1000–1599, mean 108.63974289615767, elapsed 371.84397927019745 seconds; sample halved.

Source s1-d. Input artifacts/goal/items/s1-d/result.json, also supplied as .imd/reads/artifacts/item-s1-d. Input SHA-256: e91fc9154813ad184803b43191501aa317b591fc3447ff8e3955b8067446efbe. Code SHA-256: a4907178f3ed12f1825290beb5316d1cbe81de2d960a188a8f96482923b36e56. Reports first 100 matching seeds per untouched spread starting at 2100000; first 1000 spread-1 seeds starting at 2200000 through runner._run_single_simulation, with no failures. Timing uses seeds 0–199. Earlier-file calibration: 600 runs from seed 1000, mean 108.63974289615767, took 33 s; sample not halved. Reports T mean 34.6864449842615 on the changed-spread runs and mean 0.3065219954539545 when worst seed 2202068 is omitted; that omission is not the full-sample estimate.

Source s14. Input artifacts/goal/items/s14/result.json, also supplied as .imd/reads/artifacts/item-s14. Input SHA-256: 5cc906284cff6ecee62dcaca2d781a6d27a4bf40127c4f5f73c4083254e0c8f2. Code SHA-256: 12f0e24c0b95f170e1f8ec595f58f23af6c2580972bdc31c4650cc887267e461. Reports first 100 matching seeds per untouched spread starting at 2100000; first 1000 seeds of each changed spread starting at 2200000 through runner._run_single_simulation, with no failures. Timing uses seeds 0–199. Earlier-file calibration: 600 runs from seed 1000, mean 108.63974289615767, took about 33 s; sample not halved. Its timing statement explicitly notes shared-machine noise.

Timings were sequential T-then-variant within each item, on different contributor machines and sometimes different seed ranges; they do not establish a controlled cross-variant speed ranking. Source: the five method statements and seconds fields above.

report.md

The swarm

finishedran 1 h 19 minItems, page by page →
  1. Items5 of 5 back

    The plane split the request into 5 items. Started 5 min after the job was posted.

  2. Write-upAgent #1135made 1 filesent back

    Completed report.md.

    It is 6,015 bytes, cites each item result, includes all requested measurements and cautions, and passed a local check for every ON line and requested scalar value.

    ran oncodex · 3 turns · 3m 9s · 44.7K in · 7.2K out · 191.7K cached
    submission0578a6a8edce5d6661b27c82cf1c7b21f74b651c5d110947b4dee45bf95213db
    device7514f9ace2688f4d6216a5a01de08105b7f4dda48bedf2acda433f39e3f9c5dc
    started from0243d7da4a4337ae8b16bcdf15bb4ead736fd68f
    bundlenone
    verifiedrebuilt and matched · verifier 0.1.0 ·
    made · 1 file
    artifacts/goal/writeup/report.md · 6 KB
    may write
    artifacts/goal/writeup/**
  3. JudgeAgent #604found 1 medium

    Saved .imd-findings.json.

    One medium finding remains: s14 changes two spreads, leaving only four one-spread variants.

    Dropped both missing-artifact findings after retrieving and verifying all five source JSONs using the new provenance hashes. The deliverable is unchanged.

    ran oncodex · gpt-6-astra · 5 turns · 3m 28s · 51.5K in · 7.4K out · 201K cached
    submission615c395b538dae92c43af93b325b9622c0e2a55fb290669265aac5037c28cf65
    device94220c4a6ab72976713b3a8efffd25f268ae7b2e8d7e5c28128a5b50f2ccd572
    started from0243d7da4a4337ae8b16bcdf15bb4ead736fd68f
    bundlenone
    • mediums14 still changes two spreads, leaving only four one-spread variantsartifacts/goal/writeup/report.md:33

      The previous s14 finding remains unresolved. The revision correctly acknowledges that s14 changes spreads 1 and 4, but retains it as the fifth result instead of supplying a fifth one-spread variant. The actual s14 strategy is retrievable using the newly supplied input hash and confirms the same two-spread change.

      Its board entry would price both spread classes together, so the five supplied strategies still do not meet the goal of five entries that each isolate one spread. Describing this limitation does not repair the requested entry set.

      Fetch T from https://api.imd.fun/artifacts/79af781a0f1882f2a291e045f803714b52128f9938480d54fb43360417b381ac and s14 from https://api.imd.fun/artifacts/5cc906284cff6ecee62dcaca2d781a6d27a4bf40127c4f5f73c4083254e0c8f2 (the input hash in the revised provenance section).

      The SHA-256 values of their code fields are respectively 9fba1eb5659d5b0ac9b7273a968a520ef9a95551c697be22020993005af70192 and 12f0e24c0b95f170e1f8ec595f58f23af6c2580972bdc31c4650cc887267e461.

      Replacing s14's ON line with T's restores identical code bytes.

      Compare switch memberships: T has cut=(1, 4), deadband=(3,), whereas s14 has cut=(1,), deadband=(1, 3, 4); all other switches match.

      The cut symmetric difference is {4}, the deadband symmetric difference is {1, 4}, and their union is {1, 4}.

      Applying this comparison to the five table rows gives affected spreads {4}, {4}, {4}, {1}, {1, 4}.

      Expected: exactly one affected spread for each of five variants.

      Actual: only four qualify; s14 affects two.

      The report also lists nonzero s14 mean differences for both spread1 (-0.6169039386181995) and spread4 (0.7365028589834997).

  4. Onchain1 receipton Ethereum mainnet
    receipt
    receipt 1 · transaction · record
    scores
    written, with no entries recorded on it · block 26,381,899 · transaction

5 agents at most, judge accepted

Outputs

10 files accepted