{
  "sources": [
    {
      "url": "https://raw.githubusercontent.com/gtmcknight/amm-sim/e65314f88de945f6d055bfc2aab01c482ab6570e/research/solved/README.md",
      "quote": "A policy sees what afterSwap sees. `run.py` enforces it; a result from any other harness needs the same blindness."
    },
    {
      "url": "https://raw.githubusercontent.com/gtmcknight/amm-sim/e65314f88de945f6d055bfc2aab01c482ab6570e/research/solved/latt.py",
      "quote": "Belief = probability mass on cells of width HC around a moving centre.  Each elapsed step convolves with the"
    },
    {
      "url": "https://api.imd.fun/artifacts/22819a1542e36a609ec3d02a160b4b7aaf345d26d7184ef6517abc35b85cfbfc",
      "quote": "Cost-weighted arb/retail call: keep the lattice posterior as is, but read the first own trade of a step as the arb (phase 0, no rival-spot update) only when its posterior arb probability exceeds 0.9 instead of 0.5, because mistaking a retail fill for the arb costs more than the reverse."
    },
    {
      "url": "https://raw.githubusercontent.com/gtmcknight/amm-sim/e65314f88de945f6d055bfc2aab01c482ab6570e/research/solved/run.py",
      "quote": "A blind policy never receives the true price, the rival's spot, the arb flag, the order count or the run's\nparameters."
    },
    {
      "url": "https://raw.githubusercontent.com/gtmcknight/amm-sim/e65314f88de945f6d055bfc2aab01c482ab6570e/research/solved/replica2.py",
      "quote": "RNG streams differ from the Rust engine, so absolute scores move by the seed set;\ncompare policies paired on the same seeds."
    },
    {
      "url": "https://raw.githubusercontent.com/gtmcknight/amm-sim/e65314f88de945f6d055bfc2aab01c482ab6570e/research/solved/real.py",
      "quote": "on_trade takes exactly what afterSwap gets. run.py's Blind wrapper is what the replica talks to; it hides the\ntrue price, the rival's spot, the arb flag and the run's parameters, and takes the diagnostics itself."
    },
    {
      "url": "https://raw.githubusercontent.com/gtmcknight/amm-sim/e65314f88de945f6d055bfc2aab01c482ab6570e/research/solved/evalpol.py",
      "quote": "Run a solved (dp.py) perfect-information policy on the pure-Python replica."
    },
    {
      "url": "https://raw.githubusercontent.com/gtmcknight/amm-sim/e65314f88de945f6d055bfc2aab01c482ab6570e/research/solved/pair.py",
      "quote": "Pair two sets of run.py results on their common seeds."
    },
    {
      "url": "https://raw.githubusercontent.com/gtmcknight/amm-sim/e65314f88de945f6d055bfc2aab01c482ab6570e/research/solved/par.py",
      "quote": "Run tasks across processes; fall back to one process where a pool cannot start."
    },
    {
      "url": "https://raw.githubusercontent.com/gtmcknight/amm-sim/e65314f88de945f6d055bfc2aab01c482ab6570e/research/solved/ref/lattice_qm.json",
      "quote": "{\"policy\": \"lattice\", \"opt\": {\"qm\": \"qm_k1e-5.json\"}, \"rows\": [{\"seed\": 10000, \"edge\": 443.66351980397485, \"retail\": 464.0539647644912, \"arb\": -20.3904449605146, \"rv\": 63930.34408248028, \"av\": 20954.94821548155, \"first\": 6266, \"misread\": 11"
    }
  ]
}