{
  "approach": "Built a passive midpoint baseline and one censored-observation extension. S1 treats each unchanged resting bid with no fill as evidence against p below that bid, and each unchanged ask as evidence against p above that ask; evidence is exponentially decayed and shifts the midpoint estimate.",
  "tried": [
    {
      "variant": "S0 offset=1, quantity=4, refresh=6",
      "tuning_score": -49.589447333663394,
      "seeds": "115000..115499",
      "n": 500
    },
    {
      "variant": "S1 strength=.10, offset=2, quantity=4, refresh=6, decay=.995",
      "tuning_score": -27.750671439248205,
      "seeds": "115000..115499",
      "n": 500
    }
  ],
  "next": "The mechanism improved the paired finalist score, but its gain is below a 2-SE promotion threshold only if the network requires that threshold against the current best; test a smaller evidence gain or jointly tune quote offset in a fresh item.",
  "code": "from orderbook_pm_challenge.strategy import BaseStrategy\nfrom orderbook_pm_challenge.types import CancelAll, PlaceOrder, Side\n\nclass Strategy(BaseStrategy):\n    def __init__(self):\n        self.strength, self.offset, self.qty = .10, 2, 4.0\n        self.refresh, self.decay = 6, .995\n        self.evidence, self.old = 0.0, {}\n    def on_step(self, s):\n        new = {o.order_id: o for o in s.own_orders}\n        if self.old:\n            for oid, o in new.items():\n                if oid in self.old and o.remaining_quantity >= self.old[oid].remaining_quantity - 1e-9:\n                    self.evidence += 1.0 if o.side == Side.BUY else -1.0\n        self.evidence *= self.decay\n        bid = s.competitor_best_bid_ticks if s.competitor_best_bid_ticks is not None else 49\n        ask = s.competitor_best_ask_ticks if s.competitor_best_ask_ticks is not None else 51\n        mid = (bid + ask) / 2 + self.strength * self.evidence\n        actions = []\n        if s.step % self.refresh == 0:\n            actions = [CancelAll()]\n            b = max(1, min(98, round(mid - self.offset)))\n            a = max(2, min(99, round(mid + self.offset)))\n            actions += [PlaceOrder(Side.BUY, b, self.qty), PlaceOrder(Side.SELL, a, self.qty)]\n        self.old = new\n        return actions\n",
  "code_sha256": "7f8b4120ccb6e9344d45f10dc0d93920d44c91d69b282b5399b30cf1e1dc332a",
  "code_s0": "from orderbook_pm_challenge.strategy import BaseStrategy\nfrom orderbook_pm_challenge.types import CancelAll, PlaceOrder, Side\n\nclass Strategy(BaseStrategy):\n    def __init__(self):\n        self.offset, self.qty, self.refresh = 1, 4.0, 6\n    def on_step(self, s):\n        bid = s.competitor_best_bid_ticks if s.competitor_best_bid_ticks is not None else 49\n        ask = s.competitor_best_ask_ticks if s.competitor_best_ask_ticks is not None else 51\n        mid = (bid + ask) / 2\n        actions = []\n        if s.step % self.refresh == 0:\n            actions = [CancelAll()]\n            b = max(1, min(98, round(mid - self.offset)))\n            a = max(2, min(99, round(mid + self.offset)))\n            actions += [PlaceOrder(Side.BUY, b, self.qty), PlaceOrder(Side.SELL, a, self.qty)]\n        return actions\n",
  "tuning_score": {
    "seeds": "115000..115499",
    "n": 500,
    "s1_mean": -27.750671439248205,
    "s0_mean": -49.589447333663394
  },
  "paired": {
    "seeds": "200000..200999",
    "n": 1000,
    "complete": true,
    "mechanism_diff": 22.166409933415736,
    "mechanism_se": 0.9524552643600743,
    "mechanism_retail_diff": -3.1556162885368026,
    "mechanism_arb_diff": 25.322026221951184,
    "reference_diff": -127.68320512507285,
    "reference_se": 6.049782212564964,
    "s1_mean": -27.987326972690738,
    "s0_mean": -50.15373690610636,
    "b_mean": 99.69587815238216,
    "failures": []
  },
  "graft": "Keep a per-order snapshot keyed by order_id. On each callback, for every order still present at unchanged remaining quantity, add a small positive score for BUY or negative score for SELL, decay the score, and shift the quote midpoint by strength*score before placing passive orders.",
  "seconds_per_simulation": 0.85
}
