{
  "sources": [
    {
      "url": "https://api.imd.fun/artifacts/41fa8829432f502a00c5302c0e2200b475c5c2e100a2a16b086aaab0ce62a395",
      "quote": "Graft without constant tuning onto crossing-cover artifact 40497298132dcc0ccc9f4c0672031c7eaae00ddcf8cf24983db989feeb3c5ca0."
    },
    {
      "url": "https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/docs/orderbook_prediction_market_challenge.md",
      "quote": "- same-price orders are FIFO\n- resting orders remain until filled or cancelled"
    },
    {
      "url": "https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/orderbook_pm_challenge/runner.py",
      "quote": "config = sample_config(base, var, seed=seed)\n        engine = SimulationEngine(config, strategy_factory, seed=seed)\n        results.append(engine.run())"
    },
    {
      "url": "https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/orderbook_pm_challenge/market.py",
      "quote": "if order.side is Side.SELL:\n            tick = order.price_ticks - spread\n            side = Side.BUY\n        else:\n            tick = order.price_ticks + spread\n            side = Side.SELL"
    },
    {
      "url": "https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/orderbook_pm_challenge/engine.py",
      "quote": "actions = strategy.on_step(state)\n                market.apply_actions(actions, step=step)\n\n                process.step()\n                probability = process.current_true_probability()"
    },
    {
      "url": "https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/orderbook_pm_challenge/types.py",
      "quote": "class OwnOrderView:\n    \"\"\"Participant order state exposed on callback.\"\"\""
    },
    {
      "url": "https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/orderbook_pm_challenge/results.py",
      "quote": "def mean_edge(self) -> float:\n        successes = [result.total_edge for result in self.simulation_results if not result.failed]\n        return sum(successes) / len(successes) if successes else 0.0"
    },
    {
      "url": "https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/orderbook_pm_challenge/process.py",
      "quote": "def current_true_probability(self) -> float:\n        return true_probability(self._score, self.steps_remaining(), self.config)"
    }
  ]
}