{"sources":[{"url":"https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/docs/orderbook_prediction_market_challenge.md","quote":"The score is participant edge, not terminal PnL.\n\nFor each passive participant fill:\n\n- participant buys `q` at price `x`: `edge = q * (p_t - x)`\n- 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":"- untouched resting competitor liquidity never recenters\n- partially filled competitor orders stay in place until fully filled"},{"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`\n- sell into every resting bid with `bid_price > p_t`"},{"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":"- 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://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/docs/orderbook_prediction_market_challenge.md","quote":"4. Advance the latent process and compute the true probability `p_t`.\n5. Let the arbitrageur sweep stale quotes against `p_t`.\n6. Generate retail market orders and match them against the book."},{"url":"https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/docs/orderbook_prediction_market_challenge.md","quote":"The book uses standard price-time priority:\n\n- highest bid matches first\n- lowest ask matches first\n- same-price orders are FIFO"},{"url":"https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/orderbook_pm_challenge/market.py","quote":"edge = fill.quantity * (probability - price) if fill.side is Side.BUY else fill.quantity * (price - probability)"},{"url":"https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/orderbook_pm_challenge/engine.py","quote":"process.step()\n                probability = process.current_true_probability()"},{"url":"https://api.imdnotdead.fun/artifacts/5ec4e47200eb5e16cec281f133e5e7fbfd73b3157fcf5f2c60d013ffa9300b76","quote":"Keeps the base (tick probes, sub-tick belief, quotes one tick inside the competitor, marginal sizing, resting orders, YES held to cover asks below 5c)"}]}