{"sources":[{"url":"https://api.imdnotdead.fun/artifacts/41fa8829432f502a00c5302c0e2200b475c5c2e100a2a16b086aaab0ce62a395","quote":"{\n  \"approach\": \"Graft without constant tuning onto crossing-cover artifact 40497298132dcc0ccc9f4c0672031c7eaae00ddcf8cf24983db989feeb3c5ca0. Spread 1: dmin=0.3 and pfl=0.000001. Spread 3: copy the supplied guarded, clipped-fill-corrected flow estimator and its five fixed parameters, scaling only th"},{"url":"https://api.imdnotdead.fun/artifacts/40497298132dcc0ccc9f4c0672031c7eaae00ddcf8cf24983db989feeb3c5ca0","quote":"{\n  \"approach\": \"Uses tiny tick probes, a sub-tick probability filter, and marginal retail-versus-arbitrage sizing to quote one tick inside the competitor. Starting from the exactly reproduced base, adds demand-matched crossing cover at ticks 2-9. When estimated probability is between 2c and 10c and"},{"url":"https://api.imdnotdead.fun/artifacts/90459c5fffa37760b92c6a3ee93523240927484a7c8fa36b5d12b55a37c08733","quote":"{\"approach\": \"Spread 2 only: reuse the base's guarded, clipped-fill-corrected sell-flow estimator to increase the reserve in busy runs and reduce it in quiet runs. Only the one-cent stock target is scaled. The aim is to acquire busy-run supply near the one-cent crossing and need fewer later purchase"},{"url":"https://api.imdnotdead.fun/artifacts/fe05e8ece05ab31a60568ef95ebbd9f4e2fc9f7b74235594d8d89fd33c1cde92","quote":"{\"approach\": \"Three spread-2-only changes to how front orders (ours ahead of a rival order at the rival's tick) are held. Tracing the base showed fronts at tick 3 or lower are few (0.69 a run, about 630 shares, life about 65 steps, 8.7 edge a run) and that the base holds its only quote at the rival'"},{"url":"https://api.imdnotdead.fun/artifacts/7a472bac80122f206e999464d2cc09132409f777f5a6d05e8081339ab9490112","quote":"{\"approach\": \"The base's low-price bids had adverse direct fills, yet removing them worsened the full strategy. Preserve their prices and the bid sizing when YES inventory is below the existing target. For spread 2 only, double kLf from 0.08 to 0.16 so main bids shrink after stock reaches that targe"},{"url":"https://api.imdnotdead.fun/artifacts/af5cbd06ddd4f919bf62ff5c40ccbd720bfdc13df59b8ec41062e4077c2da7db","quote":"{\n \"approach\": \"Spread 2 only (every change is inside `self.s == 2` branches of the bid-side order management). Mechanism: at spread 2 the rival's book has two empty ticks (cb+1, cb+2); when its ask at ca is used up, its replacement bid appears at ca-2 = cb+1, behind the base's inside bid, which the"},{"url":"https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/orderbook_pm_challenge/runner.py","quote":"    competitor = replace(\n        base_config.competitor,\n        quote_notional=rng.uniform(\n            variance.competitor_quote_notional_min,\n            variance.competitor_quote_notional_max,\n        ),\n        spread_ticks=rng.randint(\n            variance.competitor_spread_ticks_min,\n            variance.competitor_spread_ticks_max,\n        ),\n    )\n    return replace(base_config, process=process, retail=retail, competitor=competitor)\n\n\n#"},{"url":"https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/orderbook_pm_challenge/engine.py","quote":"    def run(self) -> SimulationResult:\n        strategy = self._strategy_factory()\n        process = JumpDiffusionScoreProcess(self._config.process, seed=self._seed)\n        starting_probability = process.current_true_probability()\n\n        market = PredictionMarket(self._config)\n        market.init"},{"url":"https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/orderbook_pm_challenge/market.py","quote":"    def _best_order(self, side: Side) -> RestingOrder | None:\n        candidates = [order for order in self._orders.values() if order.side is side and order.remaining_quantity > EPSILON]\n        if not candidates:\n            return None\n        if side is Side.SELL:\n            return min(candidate"},{"url":"https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/orderbook_pm_challenge/results.py","quote":"class SimulationResult:\n    seed: int\n    failed: bool\n    error: str | None\n    regime: RegimeSummary\n    total_edge: float\n    retail_edge: float\n    arb_edge: float\n    traded_quantity: float\n    traded_notional: float\n    fill_count: int\n    average_net_inventory: float\n    average_abs_inventory"},{"url":"https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/orderbook_pm_challenge/config.py","quote":"    competitor_spread_ticks_min: int = 1\n    competitor_spread_ticks_max: int = 4\n"},{"url":"https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/orderbook_pm_challenge/cli.py","quote":"    batch = run_batch(\n        strategy_factory,\n        strategy_path=args.strategy_path,\n        base_config=base_config,\n        n_simulations=args.simulations,\n        seed_start=args.seed_start,\n        workers=num_workers,\n        sandbox=use_sandbox,\n    )\n\n    if args.json:\n        print(jso"}]}