{"approach":"Spread 4 only: estimate each run's symmetric buy/sell retail flow from changes in our main resting orders. Use pre-fill exposure eligibility, conservative price-distance filters, and right-censored size likelihoods when orders are exhausted; do not treat exhausted quote size as complete demand. A nine-point mean-notional posterior and a shrinkage estimate of the Poisson arrival rate pool both sides and update every 25 steps. The positive compound-Poisson size law is approximated by a shifted lognormal, so the estimator is not claimed exact; its measured bias, MAE and RMSE at steps 200, 500 and 1000 are in tried. The estimates set nominal ask depth and scale short-horizon, long-horizon and tick-1 inventory targets. Arithmetic-preserving loop, inverse-tail and stationary-grid Gaussian-kernel reuse reduce repeated calculations. The final implementation was checked against 40000 callback action lists before restarting all final candidate measurements. Other spreads use the inherited base behavior. All performance figures are local simulator measurements at revision b244530ee2a6247b5f930830eeca9dd950da0e7e; no strategy reads seeds or hidden simulator state. The seconds fields report process CPU time for 200 interleaved runs per strategy; elapsed wall times are also retained in tried because the evaluations share the machine.","blocked":null,"python_version":"3.12.3","spread":4,"base_mean_edge":98.4694596619638,"runs":{"tuning":1000,"unseen":2009},"base_unseen":{"mean_edge":163.47813945343543,"retail_edge":191.20763318061364,"arb_edge":-27.729493727194825},"holdout":{"mean_edge":164.62226151768397,"retail_edge":190.6113072549172,"arb_edge":-25.989045737245245,"failures":0},"diff":{"mean":1.1441220642485317,"standard_error":0.339756227363683,"retail":-0.596325925696466,"arb":1.7404479899495768},"others_identical":{"runs":900,"identical":true},"seconds":{"base":334.59614316899973,"yours":333.7113338060003},"code":"\"\"\"Crossing-cover base with isolated, untuned spread overrides.\"\"\"\nimport math\nfrom orderbook_pm_challenge.strategy import BaseStrategy\nfrom orderbook_pm_challenge.types import CancelOrder, PlaceOrder, Side\n\nP = dict(lam_r=0.25, m=5.0, sig_n=1.2, lam_j=0.0019, sig_j=0.35, sig=0.02,\n         qmax=3000.0, rmin=2, kA=0.7, kL=0.15, pL=0.05,\n         ammo=1.0, ydem=0.4, W=200.0, fy=0.6, ammo_q=60.0, ammo_pmax=0.05, ammo_maxpay=0.02,\n         fb=0.9, fu=0.7, xu=0.1, sticky=1.0, min_ahead=2.0, keep_hi=1.5, keep_lo=0.7, Hu=300.0, bins=8.0, filt=1.0, uni=0.01, jumpinfo=1.0, dmin=0.0, kLb=0.08, kLf=0.08, pinf=1.0, pre=0.0, H1=100.0,\n         ydf=0.6, Wf=2000.0, g_hi=0.15, g_lo=0.15, qf=400.0, pmaxf=0.05, pre_gap=1.0,\n         ydf1=0.6, g1=5.0, f1=0.6, a1=100.0, nb1=0.0, gs=1.0, p1t=1.0, m1=1.0, zd=1.0, pfl=0.0005)\nSQ2 = math.sqrt(2.0)\nSQ2PI = math.sqrt(2.0 * math.pi)\ndef cdf(x): return 0.5 * (1.0 + math.erf(x / SQ2))\ndef pdf(x): return math.exp(-0.5 * x * x) / SQ2PI\ndef inv(p):\n    p = min(max(p, 1e-9), 1 - 1e-9)\n    t = math.sqrt(-2.0 * math.log(min(p, 1 - p)))\n    x = t - (2.515517 + 0.802853 * t + 0.010328 * t * t) / (1 + 1.432788 * t + 0.189269 * t * t + 0.001308 * t ** 3)\n    x = -x if p < 0.5 else x\n    for _ in range(2):\n        d = pdf(x)\n        if d < 1e-12:\n            break\n        x -= (cdf(x) - p) / d\n    return x\ndef lpm(k):\n    return pdf(k) + k * cdf(k)\ndef fl(q):\n    return math.floor(q * 100 + 1e-9) / 100\n\nNODES = [(-2.2, .06), (-1.3, .17), (-0.6, .27), (0.6, .27), (1.3, .17), (2.2, .06)]\nPROBE = 0.01\n\n\nclass Strategy(BaseStrategy):\n    def __init__(self):\n        self.n = 0\n        self.ahead = set()     # main orders placed strictly ahead of any competitor order at their tick\n        self.res = {}          # order id -> uncovered quantity at placement\n        self.bc = None         # belief: sub-tick grid centres (ticks)\n        self.bw = None         # belief: weights\n        self.st = 0.5          # last one-step sd in ticks\n        self.pcb = self.pca = None\n        self.pb = set()\n        self.pa = set()\n        self.tb = 0\n        self.s = None          # competitor spread parameter\n        self.flow_notional = 0.0\n        self.flow_exposure = 0\n        self.last_ask_tick = None\n        self.last_quote_exposed = False\n        self.last_flow_ca = None\n        self.last_flow_cap = 0.0\n        self.last_flow_correction = 1.0\n        self.params = P.copy()\n\n    def _oid(self, tag):\n        self.n += 1\n        return tag + str(self.n)\n\n    def on_step(self, state):\n        H = max(1, state.steps_remaining)\n        cb = state.competitor_best_bid_ticks or 0\n        ca = state.competitor_best_ask_ticks or 100\n        if self.s is None:\n            self.s = max(1, (ca - cb + 1) // 2)\n            if self.s == 4:\n                # Censored compound-Poisson flow likelihood, using only our fills.\n                self.f4_exposure = [0, 0]\n                self.f4_events = [0, 0]\n                self.f4_weights = [[0.0] * 9, [0.0] * 9]\n                self.f4_means = [2.64 + i * (6.336 - 2.64) / 8 for i in range(9)]\n                # Positive aggregate flow is approximately lognormal; +0.065\n                # accounts for the occasional second arrival in a timestep.\n                self.f4_mu = [math.log(m) - 0.72 + 0.065 for m in self.f4_means]\n                self.f4_last = [None, None]\n                self.f4_rate = 0.1265\n                self.f4_mean = 4.488\n                self.f4_flow = self.f4_rate * self.f4_mean\n                self.f4_extreme = inv(1 - 1e-6)\n            if self.s == 1:\n                self.params.update({'dmin': 0.3, 'pfl': 1e-06})\n            if self.s == 3:\n                self.params.update({'flow_prior': 200, 'flow_level': 0.6, 'flow_strength': 1.0, 'flow_safety': 2.0, 'flow_exposure_min': 5.0})\n        P = self.params\n        if self.s == 4:\n            for side, filled, bound in ((0, state.sell_filled_quantity, ca), (1, state.buy_filled_quantity, cb)):\n                last = self.f4_last[side]\n                if last is None:\n                    continue\n                tick, conv, cap, old_bound, ids = last\n                if (side == 0 and bound > old_bound + 1) or (side == 1 and bound < old_bound - 1):\n                    continue\n                # Track only the main quote, excluding probes and stock orders.\n                remaining = sum(o.remaining_quantity for o in state.own_orders if o.order_id in ids)\n                value = max(0.0, cap - remaining * conv)\n                self.f4_exposure[side] += 1\n                if value > 0.01:\n                    self.f4_events[side] += 1\n                    censored = remaining < 0.011\n                    logv = math.log(max(value, 0.01))\n                    weights = self.f4_weights[side]\n                    for i, mu4 in enumerate(self.f4_mu):\n                        z4 = (logv - mu4) / 1.2\n                        weights[i] += math.log(max(1e-12, 1.0 - cdf(z4))) if censored else -0.5 * z4 * z4\n            if state.step % 25 == 0:\n                exposure = sum(self.f4_exposure)\n                events = sum(self.f4_events)\n                event_probability = (events + 80.0 * (1.0 - math.exp(-0.1265))) / (exposure + 80.0)\n                self.f4_rate = max(0.077, min(0.176, -math.log(max(1e-6, 1.0 - event_probability))))\n                weights = [a + b for a, b in zip(*self.f4_weights)]\n                peak = max(weights)\n                weights = [math.exp(w - peak) for w in weights]\n                self.f4_mean = sum(m * w for m, w in zip(self.f4_means, weights)) / sum(weights)\n                self.f4_flow = self.f4_rate * self.f4_mean\n        if self.s == 3 and self.last_quote_exposed and ca <= self.last_flow_ca + 1:\n            self.flow_exposure += 1\n            self.flow_notional += min(self.last_flow_cap, state.sell_filled_quantity * self.last_ask_tick / 100.0) * self.last_flow_correction\n        lo, hi = cb, ca\n        for o in state.own_orders:\n            if o.side is Side.BUY:\n                lo = max(lo, o.price_ticks)\n            else:\n                hi = min(hi, o.price_ticks)\n        if P['pinf'] > 0:\n            sb = {o.price_ticks for o in state.own_orders if o.side is Side.BUY and o.remaining_quantity <= PROBE + 1e-9}\n            sa = {o.price_ticks for o in state.own_orders if o.side is Side.SELL and o.remaining_quantity <= PROBE + 1e-9}\n            ea = self.pa - sa\n            eb = self.pb - sb\n            if sa and ea:\n                lo = max(lo, min(max(ea), hi))\n            if eb and (sb or min(eb) <= P['p1t']):\n                hi = min(hi, max(min(eb), lo))\n        if P['jumpinfo'] > 0 and self.pcb is not None:\n            if ca > self.pca + 1:\n                lo = max(lo, ca - 1)\n            if cb < self.pcb - 1:\n                hi = min(hi, cb + 1)\n        self.pcb, self.pca = cb, ca\n        if lo > hi:\n            lo, hi = hi, lo\n        # sub-tick belief over p_(t-1): predict with one-step noise, truncate to [lo, hi]\n        wid = max(hi - lo, 1e-6)\n        nb = max(2, min(48, int(round(wid * P['bins']))))\n        cs = [lo + (i + 0.5) * wid / nb for i in range(nb)]\n        if self.bc is None or P['filt'] <= 0:\n            ws = [1.0 / nb] * nb\n        else:\n            sg = max(self.st, 0.6 * wid / nb)\n            k = -0.5 / (sg * sg)\n            ws = []\n            uni = P['uni'] * sg\n            if self.s == 4:\n                exp = math.exp\n                if self.bc == cs and 1.0 <= wid <= 6.0 and nb == 8 * wid:\n                    # On this stationary grid, spacing is exactly 1/8 tick.\n                    # Equal index distances therefore have bit-identical d*d*k.\n                    # Reuse exp values while retaining the original sum order.\n                    kernel = []\n                    c0 = cs[0]\n                    for ci in self.bc:\n                        d = c0 - ci\n                        d2 = d * d * k\n                        kernel.append(exp(d2) if d2 > -12.5 else 0.0)\n                    kernel = kernel[:0:-1] + kernel\n                    for i in range(nb):\n                        t = uni\n                        start = nb - 1 - i\n                        for wi, e in zip(self.bw, kernel[start:start + nb]):\n                            if e:\n                                t += wi * e\n                        ws.append(t)\n                else:\n                    previous = tuple(zip(self.bc, self.bw))\n                    for c in cs:\n                        t = uni\n                        for ci, wi in previous:\n                            d = c - ci\n                            d2 = d * d * k\n                            if d2 > -12.5:\n                                t += wi * exp(d2)\n                        ws.append(t)\n            else:\n                for c in cs:\n                    t = uni\n                    for ci, wi in zip(self.bc, self.bw):\n                        d = c - ci\n                        d2 = d * d * k\n                        if d2 > -12.5:\n                            t += wi * math.exp(d2)\n                    ws.append(t)\n            tot = sum(ws)\n            ws = [w / tot for w in ws]\n        self.bc, self.bw = cs, ws\n        mean_t = sum(c * w for c, w in zip(cs, ws))\n        var_t = max(sum(c * c * w for c, w in zip(cs, ws)) - mean_t * mean_t, 0.0)\n        phat = min(max(mean_t / 100.0, 0.002), 0.998)\n        var = P['sig'] ** 2 + P['lam_j'] * P['sig_j'] ** 2\n        sd = math.sqrt(H * var)\n        self.tb = self.tb + 1 if hi <= 1 else 0\n        if self.tb > 0 and P['zd'] > 0:\n            # below the last tick there is no probe: the score keeps walking away from it\n            phat = min(phat, max(P['pfl'], cdf(inv(0.01) - P['zd'] * 0.02 * math.sqrt(self.tb) / sd)))\n        z = inv(phat)\n        Z = z * sd\n        sp = pdf(z) / sd * P['sig']\n        self.st = sp * 100.0\n        s = math.sqrt(sp * sp + var_t / 1e4 + 1e-8)\n        sd1 = math.sqrt(max(1.0, H - 1.0) * var)\n        jp = [(cdf((Z + n * P['sig_j']) / sd1), w) for n, w in NODES]\n        lj = P['lam_j']\n\n        def AB(x):\n            k = (x - phat) / s\n            a = s * lpm(k)\n            b = a - (x - phat)\n            if self.s == 4:\n                ja = jb = 0.0\n                for p, w in jp:\n                    if x > p:\n                        ja += w * (x - p)\n                    else:\n                        jb += w * (p - x)\n            else:\n                ja = sum(w * max(0.0, x - p) for p, w in jp)\n                jb = sum(w * max(0.0, p - x) for p, w in jp)\n            return (1 - lj) * a + lj * ja, (1 - lj) * b + lj * jb\n\n        if H == 1:\n            def AB(x):\n                return (1 - phat) * x, phat * (1 - x)\n        rho = P['lam_r'] * 0.5\n        mu = math.log(P['m']) - 0.5 * P['sig_n'] ** 2\n        kA = P['kL'] if phat < P['pL'] else P['kA']\n\n        def qsize(loss, gain, px):\n            loss *= kA\n            if gain <= 0:\n                return 0.0\n            tail = loss / (rho * gain)\n            if tail >= 1.0:\n                return 0.0\n            if self.s == 4 and tail <= 1e-6:\n                return min(P['qmax'], math.exp(mu + P['sig_n'] * self.f4_extreme) / px)\n            return min(P['qmax'], math.exp(mu + P['sig_n'] * inv(1 - max(tail, 1e-6))) / px)\n\n        ptk = phat * 100\n        def qbid(t):\n            if not 1 <= t <= 99:\n                return 0.0\n            if self.s == 4 and phat * 100 - t < P['dmin']:\n                return 0.0\n            a, b = AB(t / 100.0)\n            if phat * 100 - t < P['dmin']:\n                return 0.0\n            if P['nb1'] > 0 and self.s == 1 and t == 1 and ptk < 1.0:\n                return 0.0\n            if phat < P['pL']:\n                ytg = P['ydem'] * min(H, P['W']) / max(ca - 1, ptk + 1) * 100.0\n                a *= (P['kLb'] if state.yes_inventory < ytg else P['kLf']) / P['kL']\n            return qsize(a, b, max(phat, 0.05))\n\n        def qask(t):\n            if not 1 <= t <= 99:\n                return 0.0\n            if self.s == 4 and t - phat * 100 < P['dmin']:\n                return 0.0\n            a, b = AB(t / 100.0)\n            if t - phat * 100 < P['dmin']:\n                return 0.0\n            if self.s == 4:\n                tail = b * kA / max(self.f4_rate * a, 1e-30)\n                if a <= 0 or tail >= 1.0:\n                    return 0.0\n                return min(P['qmax'], math.exp(math.log(self.f4_mean) - 0.72 + 1.2 * (self.f4_extreme if tail <= 1e-6 else inv(1 - tail))) / (t / 100.0))\n            return qsize(b, a, t / 100.0)\n\n        bids = [o for o in state.own_orders if o.side is Side.BUY and o.remaining_quantity > PROBE + 1e-9]\n        asks = [o for o in state.own_orders if o.side is Side.SELL and o.remaining_quantity > PROBE + 1e-9]\n        sticky = P['sticky'] > 0\n        def top(orders, comp, step):\n            if sticky and sum(o.remaining_quantity for o in orders if o.price_ticks == comp and o.order_id in self.ahead) >= P['min_ahead']:\n                return comp\n            return comp + step\n        bid_t = top(bids, cb, 1)\n        ask_t = top(asks, ca, -1)\n        qb = qbid(bid_t)\n        qa = qask(ask_t)\n\n        Y = state.yes_inventory\n        if ask_t == 1 and H > P['H1'] and P['pre'] > 0:\n            qa = qa if Y >= P['a1'] > 0 else 0.0          # let the competitor's 2-tick ask erode instead of fronting it for nothing\n        # ammunition: hold YES so that low asks are covered\n        ptick = phat * 100\n        amt = 0\n        qam = 0.0\n        if P['ammo'] > 0 and ask_t >= 2 and phat < max(P['ammo_pmax'], P['pmaxf']):\n            wealth = state.cash + Y * phat\n            x = max(ask_t, ptick + 1) / 100.0\n            capw = P['fy'] * wealth / max(phat, 0.005)\n            flow_scale = self.f4_flow / 0.6 if self.s == 4 else 1.0\n            target = min(flow_scale * P['ydem'] * min(H, P['W']) / x, capw)\n            full = min(flow_scale * P['ydf'] * min(H, P['Wf']) / x, capw) if phat < P['pmaxf'] else 0.0\n            t = max(1, min(99, int(math.ceil(ptick + 1e-9))))\n            g = t - ptick\n            if Y < full and g <= P['g_hi'] and bid_t <= t < ask_t:\n                amt, qam = t, min(P['qf'], full - Y)     # a tick p has just crossed: nearly free\n            elif Y < target and phat < P['ammo_pmax'] and bid_t <= t < ask_t and t / 100.0 - phat < P['ammo_maxpay']:\n                amt, qam = t, min(P['ammo_q'], target - Y)\n            elif Y < full and t >= 2 and 1.0 - g <= P['g_lo']:\n                amt, qam = t - 1, min(P['qf'], full - Y)  # rest just under p: filled only on the crossing, or by retail\n\n        if P['pre'] > 0 and ca == 2 and phat < 0.01 and H > P['H1'] and Y < P['pre'] and not qam and 1.0 - ptick < P['pre_gap']:\n            amt, qam = 1, min(P['ammo_q'], P['pre'] - Y)\n        q1 = 0.0\n        if P['ydf1'] > 0 and P['m1'] < ptick < P['g1'] + 1.0 and amt != 1:\n            stock_rate = P['ydf1']\n            if self.s == 4:\n                stock_rate *= self.f4_flow / 0.6\n            if self.s == 3:\n                flow = (self.flow_notional + P['flow_prior'] * P['flow_level']) / (P['flow_prior'] + self.flow_exposure)\n                scale = max(0.5, min(2.0, flow / P['flow_level']))\n                stock_rate *= 1.0 + P['flow_strength'] * (scale - 1.0)\n            q1 = max(0.0, stock_rate * min(H, P['Wf']) / (self.s / 100.0) - Y)\n\n        # Bridge expected retail demand until another tick crossing is available.\n        if 0.02 < phat < 0.1:\n            ct = max(2, min(99, int(math.floor(ptick))))\n            wealth = state.cash + Y * phat\n            goal = min(1 * qa, 0.3 * max(wealth, 0.0) / phat)\n            if Y < goal and ct < ask_t:\n                amt, qam = ct, min(3000.0, goal - Y)\n        # order management\n        actions = []\n        free = state.free_cash - 2.0\n        keep_ask = 0.0\n        new_b = []\n        new_a = []\n        def cancel(o):\n            nonlocal free\n            actions.append(CancelOrder(o.order_id))\n            x = o.price_ticks / 100.0\n            if o.side is Side.BUY:\n                free += x * o.remaining_quantity\n            else:\n                free += (1 - x) * min(self.res.get(o.order_id, 0.0), o.remaining_quantity)\n            self.ahead.discard(o.order_id)\n            self.res.pop(o.order_id, None)\n        for o in state.own_orders:\n            if o.remaining_quantity <= PROBE + 1e-9:\n                cancel(o)\n        kept_ids = set()\n        def manage(orders, t, q, comp):\n            kept = 0.0\n            for o in orders:\n                if o.price_ticks == t and q > 0 and kept + o.remaining_quantity <= max(q * P['keep_hi'], 1.0):\n                    kept += o.remaining_quantity\n                    kept_ids.add(o.order_id)\n                else:\n                    cancel(o)\n            return kept\n        kb = manage(bids, bid_t, qb, cb)\n        ka = manage(asks, ask_t, qa, ca)\n        add_b = (qb - kb) if (kb < qb * P['keep_lo'] and bid_t != cb) else 0.0\n        add_a = (qa - ka) if (ka < qa * P['keep_lo'] and ask_t != ca) else 0.0\n\n        budget = P['fb'] * max(free, 0.0)\n        cost = add_b * bid_t / 100.0 + qam * amt / 100.0\n        if cost > budget:\n            f = budget / cost\n            add_b *= f\n            qam *= f\n            cost = budget\n        out = []\n        q1 = min(q1, P['f1'] * max(budget - cost, 0.0) * 100.0)\n        if q1 >= 0.01:\n            out.append(PlaceOrder(side=Side.BUY, price_ticks=1, quantity=fl(q1)))\n            free -= fl(q1) / 100.0 + 1e-6\n        if amt and qam >= 0.01:\n            q = fl(qam)\n            out.append(PlaceOrder(side=Side.BUY, price_ticks=amt, quantity=q))\n            free -= q * amt / 100.0 + 1e-6\n        if bid_t >= 1 and add_b >= 0.01:\n            q = fl(add_b)\n            oid = self._oid('b')\n            out.append(PlaceOrder(side=Side.BUY, price_ticks=bid_t, quantity=q, client_order_id=oid))\n            free -= q * bid_t / 100.0 + 1e-6\n            if bid_t > cb:\n                self.ahead.add(oid)\n        if ask_t <= 99 and add_a >= 0.01:\n            x = ask_t / 100.0\n            covk = sum(o.remaining_quantity - min(self.res.get(o.order_id, 0.0), o.remaining_quantity)\n                       for o in asks if o.order_id in kept_ids)\n            cov = max(0.0, Y - covk - 0.1)\n            unc = max(0.0, add_a - cov)\n            if unc > 0:\n                ub = max(0.0, free - (1 - P['fu']) * max(state.cash, 0.0)) if x >= P['xu'] else 0.0\n                if H < P['Hu'] and phat < 0.05:\n                    ub = max(0.0, free * (1 - H / P['Hu']))\n                unc = min(unc, ub / (1 - x))\n            q = fl(min(add_a, cov + unc))\n            if q >= 0.01:\n                oid = self._oid('a')\n                out.append(PlaceOrder(side=Side.SELL, price_ticks=ask_t, quantity=q, client_order_id=oid))\n                r = max(0.0, q - cov)\n                self.res[oid] = r\n                free -= r * (1 - x) + 1e-6\n                if ask_t < ca:\n                    self.ahead.add(oid)\n\n        # probes: tiny orders that the arbitrageur removes when p crosses them\n        f = int(math.floor(ptick + 1e-9))\n        r = max(int(P['rmin']), int(math.ceil(2.0 * s * 100)))\n        self.pb = set()\n        self.pa = set()\n        if free > 1.0:\n            for t in range(f, f + r + 1):\n                if cb < t < ca and 1 <= t <= 99:\n                    out.append(PlaceOrder(side=Side.BUY, price_ticks=t, quantity=PROBE))\n                    self.pb.add(t)\n            for t in range(f + 1 - r, f + 2):\n                if cb < t < ca and 1 <= t <= 99:\n                    out.append(PlaceOrder(side=Side.SELL, price_ticks=t, quantity=PROBE))\n                    self.pa.add(t)\n        if self.s == 3:\n            self.last_ask_tick = ask_t\n            self.last_flow_ca = ca\n            exposed_qty = ka + sum(o.quantity for o in out if o.side is Side.SELL and o.price_ticks == ask_t and o.quantity > PROBE)\n            self.last_flow_cap = exposed_qty * ask_t / 100.0\n            self.last_quote_exposed = ask_t / 100.0 > phat + max(0.005, P['flow_safety'] * self.st / 100.0) and self.last_flow_cap >= P['flow_exposure_min']\n            if self.last_quote_exposed:\n                logcap = math.log(self.last_flow_cap)\n                mu_flow = math.log(P['m']) - 0.5 * P['sig_n'] ** 2\n                clipped = P['m'] * cdf((logcap - mu_flow - P['sig_n'] ** 2) / P['sig_n']) + self.last_flow_cap * (1.0 - cdf((logcap - mu_flow) / P['sig_n']))\n                self.last_flow_correction = min(3.0, P['m'] / max(clipped, 0.01))\n        if self.s == 4:\n            self.f4_last = [None, None]\n            # Eligibility is decided before observing fills, so depleted quotes\n            # remain in the sample as right-censored observations.\n            for side, tick, bound, conv, distance in (\n                (0, ask_t, ca, ask_t / 100.0, ask_t / 100.0 - phat),\n                (1, bid_t, cb, max(phat, 0.05), phat - bid_t / 100.0)):\n                if distance < max(0.01, 3.0 * self.st / 100.0):\n                    continue\n                if side == 0:\n                    if not (ask_t < ca or any(o.price_ticks == ask_t and o.order_id in self.ahead for o in asks)):\n                        continue\n                    orders = asks\n                    order_side = Side.SELL\n                else:\n                    if not (bid_t > cb or any(o.price_ticks == bid_t and o.order_id in self.ahead for o in bids)):\n                        continue\n                    if (qam > 0 and amt >= bid_t) or (q1 > 0 and bid_t <= 1):\n                        continue\n                    orders = bids\n                    order_side = Side.BUY\n                tracked = {o.order_id: o.remaining_quantity for o in orders if o.order_id in kept_ids and o.price_ticks == tick}\n                tracked.update({o.client_order_id: o.quantity for o in out if o.side is order_side and o.price_ticks == tick and o.client_order_id is not None})\n                cap = sum(tracked.values()) * conv\n                if cap >= 0.5:\n                    self.f4_last[side] = (tick, conv, cap, bound, tracked)\n        return actions + out\n","code_sha256":"918443f8ad9f0294b76f35e210aef4ee80433bcb356600d3d83e1919322e90ac","tried":["Protocol: simulator b244530ee2a6247b5f930830eeca9dd950da0e7e, unsandboxed SimulationEngine(sample_config(ChallengeConfig(), ParameterVariance(), seed=seed), factory, seed=seed). Available tuning seeds were alternated into train and validation; first 400 train seeds and first 600 validation seeds used. Calibration used 4000 simulations, seed-start 4000, workers 4, and JSON output without sandboxing. Other-spread checks used the first 300 seeds per spread from 60000 on. No unseen seed was used to fit parameters.","All 2043 eligible tuning seeds: 8001,8002,8006,8017,8028,8032,8033,8040,8041,8044,8045,8070,8076,8085,8088,8089,8093,8094,8095,8102,8105,8106,8127,8129,8131,8133,8134,8138,8141,8144,8154,8156,8159,8160,8164,8169,8174,8176,8180,8186,8193,8195,8196,8204,8211,8213,8216,8220,8226,8241,8242,8244,8246,8247,8252,8254,8255,8257,8263,8264,8266,8272,8273,8274,8277,8280,8282,8288,8289,8294,8305,8310,8319,8320,8321,8326,8328,8330,8331,8332,8333,8338,8344,8346,8347,8348,8349,8352,8357,8362,8363,8368,8375,8379,8382,8389,8402,8403,8404,8406,8407,8408,8409,8411,8415,8416,8419,8421,8422,8424,8431,8433,8436,8441,8442,8443,8444,8448,8449,8452,8454,8465,8467,8475,8479,8483,8486,8494,8496,8497,8499,8500,8502,8505,8511,8513,8519,8522,8529,8532,8533,8534,8537,8543,8544,8546,8550,8554,8558,8559,8562,8564,8566,8570,8585,8590,8602,8603,8609,8611,8615,8619,8623,8624,8626,8627,8638,8641,8642,8644,8645,8647,8652,8654,8659,8660,8663,8664,8682,8688,8693,8694,8695,8696,8697,8702,8704,8706,8708,8709,8711,8712,8715,8717,8719,8720,8728,8737,8743,8744,8747,8752,8756,8761,8762,8771,8778,8784,8787,8799,8800,8801,8802,8807,8810,8813,8817,8818,8823,8824,8828,8833,8836,8837,8838,8844,8853,8858,8860,8863,8866,8870,8872,8876,8885,8892,8893,8894,8895,8897,8898,8899,8901,8903,8906,8908,8915,8917,8927,8928,8929,8933,8939,8946,8952,8957,8958,8968,8974,8977,8989,8992,8995,9002,9006,9009,9013,9014,9017,9020,9025,9030,9037,9040,9043,9045,9049,9063,9070,9079,9080,9083,9100,9101,9103,9118,9119,9122,9123,9126,9132,9133,9134,9135,9138,9149,9151,9153,9154,9156,9167,9168,9169,9172,9175,9176,9178,9193,9196,9199,9203,9212,9213,9214,9218,9222,9237,9238,9239,9249,9252,9260,9272,9273,9276,9281,9284,9286,9292,9294,9295,9298,9300,9301,9307,9309,9313,9324,9325,9330,9333,9335,9338,9347,9350,9356,9364,9365,9368,9372,9376,9377,9382,9387,9388,9389,9393,9396,9398,9403,9404,9405,9407,9409,9410,9412,9414,9418,9424,9427,9430,9431,9441,9442,9444,9446,9454,9455,9465,9466,9467,9472,9474,9478,9483,9487,9495,9497,9498,9501,9521,9531,9536,9539,9545,9548,9564,9570,9574,9575,9576,9577,9578,9581,9591,9592,9598,9600,9605,9606,9607,9608,9612,9613,9615,9617,9619,9623,9627,9632,9634,9635,9638,9643,9644,9649,9651,9662,9667,9668,9670,9675,9676,9677,9679,9685,9689,9690,9692,9696,9698,9711,9720,9721,9726,9731,9735,9736,9759,9760,9772,9773,9777,9778,9785,9789,9794,9797,9811,9822,9827,9830,9833,9834,9840,9841,9843,9847,9848,9850,9851,9855,9858,9859,9860,9862,9863,9870,9876,9877,9880,9883,9886,9887,9892,9895,9897,9898,9904,9911,9914,9915,9918,9922,9926,9932,9933,9934,9938,9940,9942,9946,9947,9949,9950,9953,9962,9963,9972,9974,9976,9977,9983,9985,9988,9993,9995,10004,10011,10013,10017,10027,10029,10030,10035,10041,10045,10048,10049,10052,10055,10063,10064,10066,10072,10081,10097,10108,10109,10115,10119,10122,10123,10127,10138,10139,10142,10144,10146,10149,10151,10153,10154,10157,10159,10161,10162,10166,10170,10177,10179,10180,10188,10191,10210,10211,10222,10225,10226,10228,10232,10234,10236,10238,10241,10242,10246,10262,10263,10268,10270,10271,10275,10278,10290,10291,10293,10294,10295,10297,10298,10302,10305,10307,10314,10316,10319,10328,10336,10337,10338,10347,10349,10351,10360,10361,10362,10363,10373,10374,10376,10377,10382,10384,10386,10389,10393,10401,10411,10414,10420,10421,10422,10423,10435,10440,10448,10450,10452,10458,10460,10464,10465,10481,10488,10496,10504,10510,10512,10517,10520,10533,10534,10536,10537,10546,10549,10551,10556,10558,10564,10573,10576,10579,10581,10583,10585,10586,10588,10590,10592,10601,10602,10603,10604,10609,10611,10615,10632,10638,10644,10645,10650,10658,10660,10661,10663,10677,10682,10684,10691,10700,10705,10710,10711,10713,10714,10718,10719,10720,10725,10733,10734,10740,10746,10749,10758,10763,10765,10770,10774,10778,10781,10783,10796,10798,10804,10806,10807,10808,10811,10814,10818,10820,10821,10824,10827,10830,10831,10832,10833,10846,10853,10859,10868,10869,10870,10873,10874,10880,10883,10885,10886,10892,10893,10898,10901,10902,10903,10904,10908,10909,10911,10920,10924,10925,10933,10935,10941,10942,10943,10961,10969,10970,10974,10975,10980,10988,10990,10991,10992,10993,10995,10996,11003,11005,11008,11011,11012,11018,11020,11031,11036,11037,11043,11046,11048,11055,11065,11066,11068,11069,11077,11083,11085,11087,11088,11089,11090,11092,11097,11098,11099,11102,11105,11112,11113,11117,11118,11121,11125,11138,11139,11140,11141,11143,11144,11150,11152,11155,11161,11162,11168,11173,11179,11180,11185,11211,11219,11221,11224,11225,11236,11239,11241,11242,11244,11249,11250,11255,11257,11259,11261,11263,11270,11274,11275,11276,11281,11285,11291,11293,11294,11295,11296,11297,11298,11300,11301,11302,11305,11311,11316,11322,11323,11324,11329,11336,11338,11341,11344,11345,11348,11350,11351,11362,11370,11372,11378,11391,11394,11402,11405,11412,11417,11421,11426,11431,11433,11439,11443,11445,11450,11455,11456,11457,11459,11464,11473,11478,11479,11483,11485,11489,11492,11493,11498,11503,11506,11507,11513,11514,11520,11523,11531,11544,11545,11547,11553,11556,11559,11560,11561,11564,11572,11574,11583,11584,11585,11587,11619,11623,11629,11630,11635,11638,11643,11647,11649,11650,11653,11656,11671,11679,11680,11685,11686,11688,11690,11691,11694,11701,11703,11711,11720,11725,11737,11739,11741,11748,11758,11761,11765,11779,11782,11785,11787,11792,11793,11796,11798,11799,11800,11802,11813,11824,11826,11827,11830,11835,11840,11844,11845,11846,11857,11861,11865,11875,11876,11878,11884,11885,11886,11892,11899,11901,11905,11906,11907,11908,11914,11915,11919,11921,11926,11933,11941,11942,11948,11949,11955,11956,11958,11962,11973,11974,11977,11979,11985,11988,11989,11991,11992,12000,12001,12002,12003,12008,12012,12015,12019,12023,12024,12026,12028,12030,12032,12038,12040,12053,12057,12063,12075,12080,12086,12091,12098,12102,12103,12106,12110,12116,12120,12125,12128,12131,12134,12154,12166,12174,12177,12180,12183,12186,12192,12203,12205,12212,12219,12222,12223,12224,12226,12229,12232,12233,12234,12235,12237,12238,12240,12244,12246,12249,12253,12256,12259,12262,12267,12271,12274,12275,12276,12277,12289,12291,12295,12300,12304,12307,12312,12313,12314,12315,12317,12318,12321,12325,12326,12332,12338,12341,12343,12344,12347,12349,12351,12353,12354,12357,12364,12369,12371,12373,12377,12382,12383,12386,12399,12401,12407,12409,12412,12413,12421,12423,12428,12434,12435,12446,12448,12451,12453,12456,12457,12459,12461,12468,12470,12472,12475,12476,12478,12481,12482,12494,12498,12499,12502,12506,12507,12508,12510,12514,12530,12533,12541,12545,12547,12558,12562,12568,12570,12576,12585,12589,12593,12594,12596,12598,12600,12604,12605,12607,12611,12612,12613,12622,12626,12627,12628,12632,12635,12637,12640,12648,12652,12659,12662,12666,12672,12674,12676,12684,12687,12691,12694,12696,12698,12700,12702,12708,12709,12713,12714,12716,12718,12724,12727,12730,12734,12736,12738,12745,12748,12762,12763,12766,12779,12780,12782,12790,12792,12793,12794,12796,12797,12798,12802,12805,12812,12820,12825,12826,12828,12831,12833,12835,12838,12844,12846,12847,12854,12863,12864,12865,12866,12870,12878,12884,12888,12889,12891,12892,12904,12905,12909,12914,12915,12916,12917,12918,12920,12922,12923,12924,12926,12927,12932,12933,12937,12938,12941,12950,12953,12955,12958,12964,12965,12970,12972,12975,12977,12978,12979,12980,12981,12984,12985,12998,12999,13001,13002,13003,13007,13012,13016,13023,13028,13029,13036,13038,13040,13046,13047,13048,13049,13052,13058,13059,13069,13074,13076,13083,13085,13089,13096,13098,13099,13100,13105,13107,13109,13110,13114,13115,13120,13124,13130,13132,13136,13137,13140,13141,13147,13150,13152,13153,13160,13163,13165,13169,13173,13174,13176,13179,13183,13188,13193,13196,13201,13203,13213,13220,13223,13227,13228,13231,13232,13234,13244,13246,13249,13250,13251,13255,13256,13257,13261,13263,13264,13274,13275,13281,13285,13287,13290,13291,13296,13298,13299,13300,13303,13306,13310,13312,13313,13315,13318,13321,13327,13328,13329,13334,13342,13345,13347,13354,13355,13356,13357,13359,13362,13369,13371,13373,13376,13389,13393,13404,13411,13412,13413,13418,13419,13420,13421,13423,13427,13428,13443,13454,13456,13459,13461,13465,13468,13474,13480,13483,13489,13491,13492,13493,13494,13500,13502,13503,13509,13513,13519,13522,13524,13535,13541,13548,13553,13555,13559,13560,13561,13564,13566,13567,13569,13572,13574,13576,13578,13579,13587,13593,13597,13599,13606,13608,13609,13621,13636,13646,13648,13650,13652,13657,13659,13665,13672,13673,13675,13678,13680,13682,13683,13684,13686,13691,13693,13696,13700,13702,13707,13710,13714,13722,13724,13730,13743,13748,13753,13758,13765,13767,13768,13774,13776,13777,13780,13784,13786,13787,13788,13793,13796,13799,13804,13808,13818,13820,13823,13826,13847,13852,13855,13857,13858,13859,13863,13872,13876,13880,13881,13882,13883,13885,13886,13892,13897,13901,13910,13913,13914,13931,13935,13940,13943,13945,13946,13950,13957,13975,13977,13986,13988,13991,13993,14004,14010,14012,14022,14024,14030,14036,14039,14044,14049,14050,14053,14057,14058,14064,14068,14071,14072,14073,14076,14078,14079,14082,14083,14085,14088,14089,14091,14092,14093,14095,14096,14098,14100,14104,14106,14109,14119,14122,14123,14129,14135,14137,14142,14143,14147,14161,14163,14167,14170,14172,14175,14179,14181,14185,14189,14190,14191,14198,14204,14206,14210,14211,14213,14214,14224,14226,14227,14228,14229,14236,14238,14240,14244,14256,14257,14259,14260,14271,14275,14279,14282,14296,14306,14307,14313,14318,14330,14335,14338,14340,14345,14350,14357,14361,14370,14390,14396,14405,14412,14415,14418,14420,14428,14431,14435,14436,14447,14448,14453,14455,14456,14464,14471,14474,14477,14501,14514,14515,14516,14519,14520,14522,14523,14525,14527,14534,14537,14541,14542,14545,14546,14547,14553,14556,14557,14577,14589,14594,14595,14608,14611,14612,14614,14622,14626,14628,14630,14634,14638,14643,14644,14648,14649,14652,14654,14664,14669,14680,14684,14685,14690,14691,14692,14698,14702,14710,14713,14715,14728,14735,14741,14744,14748,14755,14762,14764,14765,14767,14770,14771,14773,14777,14779,14780,14786,14802,14805,14810,14813,14815,14816,14820,14821,14822,14824,14832,14843,14852,14862,14868,14871,14872,14883,14886,14889,14891,14893,14896,14899,14900,14903,14920,14927,14935,14945,14966,14968,14975,14977,14981,14985,14991,14992,14993,15001,15004,15006,15007,15015,15017,15019,15028,15034,15038,15046,15047,15049,15054,15057,15064,15069,15072,15074,15077,15081,15082,15087,15089,15090,15093,15098,15101,15103,15108,15111,15114,15121,15123,15128,15129,15132,15134,15137,15143,15145,15154,15158,15159,15162,15167,15173,15178,15180,15183,15192,15193,15195,15196,15197,15198,15199,15200,15205,15208,15212,15219,15221,15224,15225,15229,15231,15233,15237,15238,15239,15240,15241,15243,15246,15248,15250,15254,15260,15262,15274,15287,15294,15300,15304,15306,15310,15316,15321,15324,15326,15329,15331,15332,15336,15337,15338,15339,15341,15348,15353,15355,15356,15360,15362,15364,15365,15367,15368,15371,15376,15386,15389,15396,15398,15400,15406,15407,15410,15412,15413,15421,15423,15424,15427,15429,15432,15440,15443,15444,15445,15463,15469,15475,15477,15487,15491,15496,15507,15508,15512,15515,15516,15518,15526,15528,15533,15534,15536,15538,15543,15546,15547,15549,15553,15554,15563,15566,15568,15571,15591,15592,15593,15599,15605,15606,15612,15624,15637,15640,15642,15643,15646,15652,15653,15662,15671,15672,15677,15683,15684,15687,15696,15701,15702,15704,15705,15707,15708,15714,15716,15717,15729,15736,15738,15740,15741,15743,15745,15749,15752,15753,15756,15759,15769,15770,15772,15774,15777,15778,15782,15786,15789,15790,15794,15796,15797,15806,15807,15810,15826,15827,15830,15838,15851,15852,15855,15858,15860,15861,15862,15865,15866,15870,15875,15876,15885,15886,15889,15892,15893,15895,15902,15904,15910,15913,15915,15919,15927,15938,15939,15943,15945,15948,15957,15961,15963,15967,15970,15977,15987,15989,15998","All 2009 eligible unseen seeds: 60001,60006,60007,60008,60015,60032,60034,60035,60041,60048,60057,60059,60065,60066,60070,60073,60074,60078,60080,60091,60095,60098,60101,60102,60115,60122,60123,60124,60129,60134,60136,60140,60151,60157,60161,60166,60176,60183,60184,60187,60192,60193,60197,60202,60204,60205,60206,60207,60213,60216,60220,60221,60226,60228,60229,60230,60231,60237,60239,60242,60245,60247,60256,60257,60271,60274,60275,60276,60277,60279,60282,60287,60291,60292,60300,60304,60305,60321,60322,60323,60326,60342,60347,60355,60356,60359,60371,60374,60379,60382,60389,60395,60402,60407,60408,60419,60420,60427,60428,60430,60431,60439,60450,60451,60455,60456,60457,60458,60466,60471,60476,60480,60481,60482,60483,60488,60495,60497,60503,60505,60508,60511,60513,60514,60515,60522,60540,60542,60547,60559,60565,60569,60571,60575,60577,60582,60585,60586,60589,60591,60594,60597,60600,60603,60614,60617,60624,60627,60630,60638,60641,60648,60650,60651,60652,60654,60657,60660,60662,60664,60673,60676,60681,60682,60693,60695,60697,60705,60706,60707,60715,60718,60721,60725,60726,60727,60728,60729,60734,60737,60747,60749,60754,60756,60757,60758,60759,60760,60766,60770,60775,60776,60783,60784,60788,60789,60791,60806,60816,60818,60823,60830,60832,60835,60842,60843,60845,60848,60865,60870,60872,60873,60876,60880,60886,60889,60890,60891,60892,60893,60901,60906,60907,60920,60928,60937,60938,60941,60946,60948,60951,60953,60958,60959,60960,60962,60964,60969,60971,60982,60983,60986,60989,60998,61013,61016,61023,61025,61026,61032,61037,61038,61042,61044,61048,61052,61055,61057,61059,61060,61066,61068,61070,61074,61079,61086,61089,61096,61097,61098,61100,61109,61113,61117,61118,61119,61125,61128,61129,61131,61135,61141,61142,61143,61167,61168,61172,61175,61178,61182,61183,61188,61189,61193,61198,61200,61211,61220,61224,61232,61234,61240,61250,61251,61254,61255,61256,61258,61265,61266,61267,61268,61280,61281,61286,61288,61303,61304,61305,61306,61316,61317,61333,61334,61335,61336,61338,61346,61349,61358,61361,61363,61364,61368,61380,61392,61404,61406,61407,61410,61416,61419,61423,61430,61442,61451,61453,61455,61456,61457,61458,61459,61461,61472,61473,61475,61478,61481,61482,61486,61489,61490,61497,61502,61506,61507,61510,61513,61518,61530,61534,61535,61536,61538,61541,61542,61547,61549,61557,61559,61564,61570,61577,61578,61580,61583,61584,61596,61597,61601,61604,61606,61617,61619,61623,61624,61625,61631,61632,61633,61635,61637,61638,61642,61647,61648,61650,61653,61654,61655,61657,61662,61665,61666,61668,61674,61680,61683,61684,61696,61698,61705,61715,61721,61724,61727,61729,61730,61739,61740,61742,61746,61758,61759,61775,61785,61794,61795,61797,61805,61807,61808,61811,61816,61828,61830,61849,61853,61860,61861,61867,61869,61878,61879,61881,61882,61887,61888,61890,61896,61903,61904,61908,61928,61931,61932,61933,61935,61936,61948,61950,61951,61953,61959,61961,61964,61968,61970,61971,61974,61975,61982,61983,61988,61999,62000,62005,62007,62012,62016,62022,62023,62028,62030,62034,62035,62036,62043,62044,62051,62052,62054,62056,62058,62059,62061,62062,62063,62070,62073,62075,62078,62080,62083,62084,62087,62089,62093,62095,62097,62099,62100,62105,62122,62123,62127,62132,62134,62135,62137,62148,62149,62150,62154,62157,62158,62160,62173,62176,62191,62195,62196,62198,62200,62202,62203,62205,62206,62207,62216,62218,62221,62228,62234,62235,62238,62246,62247,62252,62256,62259,62266,62267,62268,62269,62274,62283,62286,62289,62292,62294,62295,62296,62302,62314,62321,62330,62332,62334,62338,62342,62344,62345,62347,62350,62355,62356,62359,62360,62370,62373,62375,62377,62381,62382,62389,62390,62391,62395,62404,62405,62406,62407,62408,62411,62413,62420,62424,62426,62427,62428,62430,62431,62434,62440,62442,62444,62448,62449,62450,62451,62454,62460,62463,62473,62478,62479,62480,62482,62484,62486,62487,62490,62494,62496,62498,62499,62504,62505,62506,62507,62512,62515,62518,62519,62520,62521,62522,62524,62531,62534,62542,62543,62549,62550,62551,62554,62555,62558,62566,62575,62581,62586,62599,62600,62602,62603,62605,62610,62612,62628,62630,62631,62655,62658,62664,62669,62671,62673,62678,62686,62694,62695,62710,62715,62723,62724,62731,62735,62736,62744,62750,62752,62758,62765,62767,62768,62771,62773,62778,62779,62781,62782,62783,62787,62790,62798,62800,62803,62807,62814,62818,62819,62827,62832,62833,62836,62837,62840,62841,62847,62848,62849,62859,62862,62864,62871,62872,62873,62875,62878,62891,62895,62898,62901,62903,62904,62907,62910,62914,62916,62924,62934,62936,62937,62949,62954,62958,62959,62960,62961,62973,62992,62993,62995,62999,63000,63003,63006,63007,63013,63015,63025,63030,63032,63042,63045,63050,63057,63059,63063,63066,63072,63076,63082,63086,63094,63095,63098,63101,63105,63107,63108,63110,63112,63115,63132,63136,63137,63141,63142,63143,63145,63146,63147,63149,63151,63153,63154,63155,63166,63167,63170,63172,63173,63177,63179,63182,63184,63188,63189,63192,63196,63207,63208,63214,63218,63221,63226,63228,63234,63235,63236,63238,63254,63257,63263,63265,63266,63269,63278,63283,63284,63290,63294,63296,63297,63301,63302,63308,63314,63315,63322,63324,63326,63329,63330,63340,63341,63347,63349,63351,63353,63354,63358,63360,63363,63370,63371,63373,63375,63377,63378,63381,63385,63394,63397,63401,63402,63406,63414,63418,63420,63423,63431,63432,63434,63435,63437,63438,63440,63448,63453,63462,63463,63467,63477,63479,63480,63488,63490,63491,63492,63494,63495,63499,63515,63516,63517,63524,63527,63528,63530,63532,63538,63543,63551,63554,63556,63571,63572,63573,63574,63575,63576,63579,63580,63587,63588,63590,63594,63602,63603,63608,63611,63612,63614,63615,63616,63631,63632,63635,63637,63652,63654,63660,63661,63663,63667,63669,63689,63690,63691,63693,63702,63705,63706,63713,63715,63717,63722,63732,63734,63738,63752,63754,63762,63765,63766,63770,63773,63775,63777,63784,63787,63791,63796,63798,63799,63802,63806,63807,63808,63813,63814,63817,63820,63821,63822,63824,63825,63832,63848,63858,63859,63864,63865,63876,63881,63887,63888,63898,63900,63905,63918,63921,63923,63933,63943,63944,63947,63948,63949,63950,63953,63955,63960,63972,63973,63978,63981,63985,63989,63991,63993,63994,63995,64004,64008,64009,64010,64020,64025,64032,64037,64039,64041,64042,64043,64045,64048,64058,64062,64069,64074,64078,64085,64086,64088,64089,64093,64096,64100,64107,64120,64128,64130,64131,64132,64142,64143,64149,64150,64153,64162,64163,64166,64169,64173,64184,64187,64190,64196,64197,64201,64208,64209,64210,64220,64222,64226,64232,64233,64240,64241,64247,64254,64260,64262,64265,64271,64274,64275,64276,64281,64282,64283,64288,64289,64294,64302,64308,64314,64319,64322,64329,64338,64347,64349,64354,64356,64357,64359,64368,64370,64378,64379,64384,64387,64390,64393,64394,64395,64400,64408,64412,64413,64417,64427,64431,64432,64439,64440,64452,64460,64463,64469,64470,64472,64473,64474,64475,64482,64484,64495,64496,64502,64504,64509,64511,64513,64515,64518,64520,64521,64528,64530,64536,64541,64549,64562,64563,64564,64570,64584,64586,64590,64593,64597,64598,64599,64601,64602,64604,64605,64606,64611,64612,64613,64614,64621,64628,64630,64632,64634,64635,64636,64642,64652,64660,64664,64666,64667,64669,64672,64676,64678,64681,64685,64688,64695,64714,64715,64716,64717,64719,64721,64723,64731,64733,64734,64740,64751,64754,64756,64760,64761,64767,64771,64772,64775,64776,64779,64780,64785,64788,64796,64797,64803,64804,64807,64808,64814,64815,64817,64818,64825,64827,64828,64836,64837,64839,64841,64848,64850,64852,64853,64857,64869,64876,64877,64883,64887,64888,64893,64911,64912,64914,64915,64917,64919,64923,64928,64932,64937,64938,64944,64946,64955,64956,64958,64965,64968,64977,64983,64984,64988,64989,64990,64991,64992,64993,64994,64996,65000,65003,65006,65010,65013,65015,65017,65028,65031,65036,65039,65041,65042,65047,65050,65057,65070,65072,65075,65077,65078,65085,65087,65089,65091,65093,65094,65102,65107,65108,65110,65112,65122,65123,65131,65139,65140,65150,65151,65153,65156,65159,65160,65163,65165,65166,65173,65178,65183,65186,65190,65193,65197,65206,65213,65216,65222,65228,65233,65234,65236,65238,65241,65242,65248,65254,65255,65257,65262,65264,65265,65298,65299,65301,65302,65306,65307,65309,65312,65313,65317,65324,65327,65328,65336,65338,65340,65344,65351,65357,65366,65372,65373,65374,65384,65387,65390,65391,65399,65417,65421,65423,65424,65428,65429,65432,65437,65439,65440,65442,65443,65447,65448,65449,65450,65454,65456,65465,65466,65475,65476,65477,65479,65484,65485,65487,65497,65502,65506,65508,65520,65522,65528,65530,65533,65538,65539,65540,65543,65544,65552,65556,65559,65567,65570,65579,65581,65583,65588,65591,65593,65599,65601,65602,65604,65613,65621,65622,65623,65624,65625,65626,65631,65637,65639,65647,65648,65660,65673,65678,65679,65687,65691,65699,65708,65711,65712,65715,65716,65718,65721,65726,65727,65732,65741,65743,65747,65764,65766,65773,65777,65780,65782,65787,65795,65798,65800,65802,65804,65805,65806,65807,65814,65826,65831,65833,65841,65843,65848,65849,65850,65859,65865,65866,65868,65869,65870,65876,65881,65882,65889,65897,65898,65899,65900,65908,65911,65913,65923,65927,65933,65935,65943,65946,65947,65954,65963,65964,65967,65969,65973,65979,65983,65984,65986,65987,65991,65993,65995,65996,66000,66002,66005,66008,66024,66028,66029,66030,66031,66033,66046,66047,66048,66053,66078,66080,66093,66103,66105,66107,66114,66117,66123,66127,66133,66136,66139,66143,66144,66146,66149,66150,66159,66160,66167,66169,66170,66174,66181,66188,66190,66193,66195,66203,66206,66207,66211,66225,66226,66231,66237,66239,66241,66244,66246,66249,66252,66255,66260,66263,66264,66267,66271,66285,66289,66301,66307,66309,66310,66311,66316,66321,66324,66332,66346,66351,66353,66356,66361,66365,66367,66376,66383,66385,66388,66390,66391,66396,66400,66402,66412,66415,66416,66418,66419,66422,66429,66431,66438,66439,66445,66448,66449,66459,66468,66471,66472,66476,66478,66481,66482,66484,66488,66491,66496,66498,66505,66509,66512,66516,66518,66520,66521,66528,66531,66535,66541,66545,66548,66550,66552,66554,66560,66561,66566,66569,66571,66572,66573,66587,66592,66593,66598,66600,66606,66607,66608,66617,66627,66637,66642,66645,66651,66653,66655,66661,66673,66676,66682,66687,66688,66695,66696,66712,66716,66723,66726,66728,66729,66740,66747,66750,66755,66759,66761,66763,66766,66768,66770,66774,66778,66782,66786,66789,66793,66794,66797,66798,66800,66802,66815,66816,66819,66821,66827,66828,66829,66830,66833,66836,66841,66847,66848,66851,66856,66859,66862,66863,66868,66872,66874,66880,66882,66890,66896,66916,66917,66918,66921,66924,66927,66929,66937,66943,66945,66946,66948,66952,66953,66964,66965,66973,66976,66982,66983,66985,66989,66993,66994,67000,67005,67017,67021,67026,67027,67034,67038,67040,67053,67057,67065,67074,67076,67080,67086,67089,67091,67092,67093,67094,67099,67106,67110,67116,67119,67126,67132,67133,67141,67142,67148,67154,67163,67165,67174,67176,67177,67182,67186,67196,67199,67207,67208,67209,67214,67217,67218,67220,67223,67226,67227,67228,67229,67239,67240,67241,67250,67253,67254,67255,67257,67262,67263,67269,67270,67281,67287,67289,67290,67296,67298,67299,67301,67302,67305,67312,67314,67315,67316,67319,67320,67327,67329,67331,67332,67334,67335,67338,67339,67342,67343,67344,67346,67351,67359,67364,67373,67376,67380,67388,67394,67401,67408,67411,67412,67413,67420,67425,67426,67428,67429,67439,67440,67442,67445,67447,67449,67450,67453,67456,67458,67459,67462,67465,67472,67477,67478,67480,67487,67488,67496,67501,67505,67510,67515,67521,67526,67528,67531,67534,67538,67551,67555,67556,67573,67574,67582,67585,67586,67590,67597,67599,67604,67605,67611,67617,67618,67627,67630,67633,67637,67642,67651,67653,67657,67658,67661,67663,67664,67666,67667,67676,67689,67697,67720,67724,67726,67730,67738,67744,67749,67751,67760,67761,67765,67770,67773,67774,67790,67795,67802,67805,67808,67809,67812,67815,67817,67821,67823,67824,67825,67832,67834,67839,67845,67847,67852,67878,67893,67894,67895,67896,67902,67903,67905,67906,67907,67908,67911,67915,67916,67918,67920,67922,67925,67926,67939,67943,67949,67950,67951,67953,67956,67958,67959,67962,67964,67965,67972,67974,67981,67990,67993,67995,67999","Estimator diagnostics on 400 unchanged-base trajectories, at completed steps 200/500/1000. Truth is sampled arrival_rate * mean_notional / 2, in dollars per side per step. Buy-only/sell-only are separate fits; pooled is used for both sides, exploiting the simulator's symmetric flow. Errors: {\"200\":{\"n\":400,\"pooled\":{\"bias\":0.00918393855863978,\"mae\":0.11234887575279741,\"rmse\":0.13940012756245443},\"buy_only\":{\"bias\":0.01327379458512985,\"mae\":0.1292043036137906,\"rmse\":0.15983457284917366},\"sell_only\":{\"bias\":0.006265625268601905,\"mae\":0.1316167351004637,\"rmse\":0.16146823981213984},\"prior\":{\"bias\":0.004653574607838441,\"mae\":0.153817613332535,\"rmse\":0.18486503206894428},\"mean_exposures\":[95.8125,100.3675]},\"500\":{\"n\":400,\"pooled\":{\"bias\":0.015872391722349773,\"mae\":0.08110452495419408,\"rmse\":0.10294369940369698},\"buy_only\":{\"bias\":0.017379696597797836,\"mae\":0.10144895320870126,\"rmse\":0.12817462409488023},\"sell_only\":{\"bias\":0.011292834420586893,\"mae\":0.10245743983226628,\"rmse\":0.12955704453741554},\"prior\":{\"bias\":0.004653574607838441,\"mae\":0.153817613332535,\"rmse\":0.18486503206894428},\"mean_exposures\":[232.0075,242.22]},\"1000\":{\"n\":400,\"pooled\":{\"bias\":0.015931355744846422,\"mae\":0.06463879080800027,\"rmse\":0.08435927477129589},\"buy_only\":{\"bias\":0.011412856969628621,\"mae\":0.0832926583564073,\"rmse\":0.10693917234816694},\"sell_only\":{\"bias\":0.01767728971070613,\"mae\":0.08456347712741964,\"rmse\":0.10907188555751879},\"prior\":{\"bias\":0.004653574607838441,\"mae\":0.153817613332535,\"rmse\":0.18486503206894428},\"mean_exposures\":[441.6875,454.98]}}","Constant prior: mean notional 4.488, side rate 0.1265, no learning: {\"train_n\":200,\"train_diff\":{\"mean\":0.9041278520319992,\"standard_error\":0.541294812652815,\"retail\":-0.702710590285,\"arb\":1.6068384423500002},\"train_failures\":0}","Learned stock targets only; actual covered ask capacity follows inventory: {\"train_n\":400,\"train_diff\":{\"mean\":0.2427976190664998,\"standard_error\":0.1415577876775727,\"retail\":0.1116948399897501,\"arb\":0.13110277907675005},\"train_failures\":0,\"validation_n\":190,\"validation_diff\":{\"mean\":0.17615556332368448,\"standard_error\":0.17547011822895112,\"retail\":-0.0033017455357895044,\"arb\":0.17945730885842126},\"validation_failures\":0,\"validation_note\":\"Optional ablation validation stopped after candidate freeze to reserve time for mandatory full checks; no final selection used these partial results.\"}","Learned nominal ask depth only; existing bridge stock target follows ask depth: {\"train_n\":400,\"train_diff\":{\"mean\":0.8574354581867497,\"standard_error\":0.6899692100757441,\"retail\":-0.992824248174,\"arb\":1.85025970634725},\"train_failures\":0,\"validation_n\":236,\"validation_diff\":{\"mean\":-0.6107572812690685,\"standard_error\":0.7811148288723662,\"retail\":-1.1599944371711872,\"arb\":0.5492371559224579},\"validation_failures\":0,\"validation_note\":\"Optional ablation validation stopped after candidate freeze to reserve time for mandatory full checks; no final selection used these partial results.\"}","Learned ask depth and stock, normalized to preserve base average assumptions: {\"train_n\":400,\"train_diff\":{\"mean\":0.8140399131105001,\"standard_error\":0.6048913082921142,\"retail\":-0.08591580316099896,\"arb\":0.8999557162812502},\"train_failures\":0,\"validation_n\":231,\"validation_diff\":{\"mean\":-0.986352250860605,\"standard_error\":1.6409563190315666,\"retail\":-0.35464195451255465,\"arb\":-0.6317102963380948},\"validation_failures\":0,\"validation_note\":\"Optional ablation validation stopped after candidate freeze to reserve time for mandatory full checks; no final selection used these partial results.\"}","Learned ask depth and stock using absolute estimated rate and size: {\"train_n\":400,\"train_diff\":{\"mean\":1.0806105636235,\"standard_error\":0.7149813644464763,\"retail\":-1.0421571857957503,\"arb\":2.1227677494052504},\"train_failures\":0,\"validation_n\":600,\"validation_diff\":{\"mean\":0.491804019159001,\"standard_error\":0.5226970421694458,\"retail\":-0.8690879790268324,\"arb\":1.36089199818},\"validation_failures\":0}","First implementation timing was stopped for a performance repair before inspecting unseen scores. Matched timing data: {\"pairs\": 53, \"base\": {\"wall\": 738.1205794117413, \"cpu\": 87.22389270999993}, \"final\": {\"wall\": 738.0670322142541, \"cpu\": 87.41235298300006}}. The replacement reuses Gaussian kernel values only on stationary exactly representable 1/8-tick grids; summation order is unchanged. Final scoring and timing were restarted from scratch; every completed old unseen-prefix result was compared with the fresh result and was identical.","Learning versus constant-prior sizing on the same 200 training seeds: {\"n\": 200, \"mean\": 1.0470261173924995, \"standard_error\": 0.8690016078013894}","Runtime: first 200 eligible spread-4 unseen seeds per strategy, alternating execution order within each seed, in one process. The seconds fields and speed gate use process CPU totals because other evaluation processes share this machine. Both wall and process CPU seconds are recorded here: {\"base\":{\"wall\":1152.1091365637258,\"cpu\":334.59614316899973},\"final2\":{\"wall\":1151.1294172545895,\"cpu\":333.7113338060003},\"paired_cpu_delta\":{\"n\":200,\"mean\":-0.004424046814997073,\"standard_error\":0.005879697896708112}}. Timed SimulationResult dictionaries were also checked against the scored runs.","Selected the censored-flow policy with arithmetic-preserving stationary-grid kernel reuse; passed validation, unseen gain, failure, identity and CPU timing gates. {\"training_gain\":1.0806105636235,\"validation_gain\":0.491804019159001,\"unseen_gain\":1.1441220642485317,\"unseen_standard_error\":0.339756227363683,\"cpu_seconds\":{\"base\":334.59614316899973,\"final2\":333.7113338060003}}"],"next":"Test a more exact compound-Poisson censored-size likelihood and distinguish jump contamination from retail depletion using public quote survival; preserve the separate validation and untouched-spread checks."}