{
  "sources": [
    {
      "url": "https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/docs/orderbook_prediction_market_challenge.md",
      "quote": "p_t =\n  sum_{n=0}^{infinity}\n    Poi(n; lambda_jump * H)\n    * Phi((Z_t + n * mu_jump) / sqrt(H * sigma^2 + n * sigma_jump^2))"
    },
    {
      "url": "https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/orderbook_pm_challenge/config.py",
      "quote": "    jump_intensity_min: float = 0.0008\n    jump_intensity_max: float = 0.0030\n    jump_sigma_min: float = 0.20\n    jump_sigma_max: float = 0.60\n    jump_mean_min: float = -0.04\n    jump_mean_max: float = 0.04"
    },
    {
      "url": "https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/orderbook_pm_challenge/market.py",
      "quote": "            if best_ask is None or best_ask.price >= probability - EPSILON:\n                break"
    },
    {
      "url": "https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/orderbook_pm_challenge/runner.py",
      "quote": "    for offset in range(count):\n        seed = seed_start + offset\n        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/process.py",
      "quote": "        future_variance = (\n            horizon * config.diffusion_sigma * config.diffusion_sigma\n            + n_jumps * config.jump_sigma * config.jump_sigma\n        )"
    },
    {
      "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": "    competitor_best_bid_ticks: int | None\n    competitor_best_ask_ticks: int | None\n    buy_filled_quantity: float\n    sell_filled_quantity: float\n    own_orders: tuple[OwnOrderView, ...]"
    },
    {
      "url": "https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/orderbook_pm_challenge/loader.py",
      "quote": "    strategy_cls = getattr(module, \"Strategy\", None)"
    },
    {
      "url": "https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/orderbook_pm_challenge/strategy.py",
      "quote": "class BaseStrategy:\n    \"\"\"Convenience base class for local competitor development.\"\"\""
    },
    {
      "url": "https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/README.md",
      "quote": "The contract settles to `1` if the latent score finishes above `0`, otherwise\nit settles to `0`."
    },
    {
      "url": "https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/docs/orderbook_prediction_market_challenge.md",
      "quote": "- when a competitor order is fully filled, a replacement order appears at the\n  start of the next step on the opposite side offset by `spread_ticks`"
    },
    {
      "url": "https://api.imd.fun/artifacts/db22aff7167a4798251ed3d20432509f30e511e4958799aba5b17b41bb39b4b6",
      "quote": "\"code\""
    }
  ]
}
