{
  "sources": [
    {
      "url": "https://api.imd.fun/artifacts/db22aff7167a4798251ed3d20432509f30e511e4958799aba5b17b41bb39b4b6",
      "quote": "{\"approach\":\"Started from 151e0b1b16f90a1384b823bc528d6d1407f7b4bbfcc7966c12119fe483bfd326 and merged syntax-tree fragments from c1-pairs (spread 1), c2-queue (spread 2), a3-ledger (spread 3), and c4-all (spread 4). The three older-base blocks replac"
    },
    {
      "url": "https://api.imd.fun/artifacts/a53f876973198c8c1f235f17d201084f6ba7a97c6ad758b0b1229192ff731420",
      "quote": "{\"key\":\"side-jump-budget\",\"approach\":\"Add only a side-specific jump charge to sizing loss on observed spreads 2 and 3. At x=t/100 add multiplier*lj*sum(w*max(0,x-p))*phat*2/(1+self.s)*sqrt(min(1,500/H)) to bid loss, and multiplier*lj*sum(w*max(0,p-x))*(1-phat)*2/(1+self.s)*sqrt(min(1,500/H)) to ask loss, using existing jp. Added immediately before qsize (after the existing low-probability bid loss scaling); existing qsize kA then applies. AB, gai"
    },
    {
      "url": "https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/orderbook_pm_challenge/config.py",
      "quote": "    n_steps: int = 2_000"
    },
    {
      "url": "https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/orderbook_pm_challenge/runner.py",
      "quote": "    config = sample_config(base_config, variance, seed=seed)"
    },
    {
      "url": "https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/orderbook_pm_challenge/engine.py",
      "quote": "        strategy = self._strategy_factory()"
    }
  ]
}
