{
 "sources": [
  {
   "url": "https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/docs/orderbook_prediction_market_challenge.md",
   "quote": "- buy every resting ask with `ask_price < p_t`"
  },
  {
   "url": "https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/docs/orderbook_prediction_market_challenge.md",
   "quote": "- sell order: sell `notional / max(p_t, p_floor)` shares"
  },
  {
   "url": "https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/docs/orderbook_prediction_market_challenge.md",
   "quote": "- uncovered resting asks reserve `(1 - price) * quantity` cash"
  },
  {
   "url": "https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/docs/orderbook_prediction_market_challenge.md",
   "quote": "- participant sells `q` at price `x`: `edge = q * (x - p_t)`"
  },
  {
   "url": "https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/docs/orderbook_prediction_market_challenge.md",
   "quote": "- invalid actions raise an exception and fail the simulation"
  },
  {
   "url": "https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/README.md",
   "quote": "- a static hidden-liquidity competitor"
  },
  {
   "url": "https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/orderbook_pm_challenge/market.py",
   "quote": "raise OrderBookError(\"Insufficient free cash for order collateral\")"
  },
  {
   "url": "https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/orderbook_pm_challenge/market.py",
   "quote": "reserved_cash = round((1.0 - price) * uncovered, 10)"
  },
  {
   "url": "https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/orderbook_pm_challenge/engine.py",
   "quote": "actions = strategy.on_step(state)"
  },
  {
   "url": "https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/orderbook_pm_challenge/runner.py",
   "quote": "rng = random.Random(seed)"
  },
  {
   "url": "https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/orderbook_pm_challenge/types.py",
   "quote": "client_order_id: str | None = None"
  },
  {
   "url": "https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/orderbook_pm_challenge/config.py",
   "quote": "competitor_spread_ticks_max: int = 4"
  },
  {
   "url": "https://api.imd.fun/artifacts/db22aff7167a4798251ed3d20432509f30e511e4958799aba5b17b41bb39b4b6",
   "quote": "class Strategy(BaseStrategy):"
  }
 ]
}