BL-SD-002: Vacuum Capture, Trigger-Based Passive Quoting

BIJECTIVE LABS


BIJECTIVE LABS . SEP 7, 2026


BL-SD-002: Vacuum Capture, Trigger-Based Passive Quoting

Status: RELEASED

Classification: PUBLIC

Revision: 1

Date: 2026-09-07

Venue: Bybit perpetuals Programme: I Verdict: CLOSED Axis of death: Cost Transferability: ENVELOPE-BOUND


1. Identification

FieldValue
Internal codeVAC
FamilyOpportunistic passive quoting on spread dislocation
VenueBybit USDT perpetuals, Tier 1.5 altcoin
ProgrammeI
Pre-registered2026-05-26, as acceptance and failure criteria for a 24-hour observation window (the dated implementation-completion report, 2026-05-26), predating the formal pre-registration protocol in BL-D-003
Verdict issued2026-05-28
PredecessorGeneric persistent Level 1 maker quoting, halted the same day this strategy replaced it

Vacuum Capture replaced persistent Level 1 quoting after that approach was found to carry structurally negative expectancy against Bybit's institutional Bulk Amend Orders queue priority. The design hibernates: it places no quotes while the market is calm and wakes only when a composite trigger fires.


2. Economic thesis

A resting quote at Level 1 in a calm market queues behind institutional priority orders and is filled only by toxic sweeps. But a spread spike, a liquidation cascade, or an extreme order-flow or toxicity reading briefly clears the book of those competing quotes: the institutional walls that would otherwise squeeze a retail-sized order have themselves just been swept. The thesis is that a passive order placed inside that widened spread, in the 5 to 30 millisecond window after the trigger fires, captures the spread before the walls return, without contesting queue priority in the calm regime where retail cannot win it.

Who is forced to lose. No specific structural loser is named in the source design beyond the general claim that a taker crossing the widened spread during the vacuum window pays the resting side. The thesis rests on a market-structure timing gap rather than on a named counterparty forced to transact.


3. Falsifiable claim

Pre-registered as acceptance and failure criteria before the 24-hour observation window began:

Vacuum trigger fires at an expected rate of 10 to 25 per day across 8 symbols; fills convert at a non-trivial rate; net P&L over the window is gross-positive before fees.

MetricThresholdDecision if crossed
Trigger fires over the windowzero in 24hFALSIFIED, threshold miscalibrated
Fill conversion, high fire countfires high but fills near zeroFALSIFIED, vacuum window closes faster than the entry can react
Realised P&L on fillsimmediate adverse move exceeding 5 bpsFALSIFIED, adverse selection on the fills obtained
Frequency of profitable-width eventssufficient to matter economicallyDetermines whether the mechanism is executable at scale

The observation ran 18 hours rather than the full 24 before the finding was conclusive enough to close the line.


4. Mathematical specification

Notation per BL-D-011.
 
Composite trigger, evaluated at t on rolling state through t:
 
  Layer 1 (confluence):  |ofi_l5_norm(t)| >= 2.0
 
  Layer 2 (any fires):
    cascade_detected(t) = true                                   OR
    spread_bps(t) > 20.0 * median_60s(spread_bps)                OR
    spread_bps(t) >= 6.0  (absolute floor)                       OR
    liq_intensity_10s(t) > p95_60s(liq_intensity_10s)             OR
    vpin(t) > p99_60s(vpin)
 
  Vacuum viability gate:
    min_vacuum_spread_bps = 8.0     required post-trigger width for entry
 
Entry, at trigger time t0:
 
  wait 5 ms (institutional-sweep settle)
  re-read bid(t0+5ms), ask(t0+5ms)
  require (ask - bid) / tick_size >= 5                (vacuum still open)
  place PostOnly buy  at  bid + 0.25 * (ask - bid)
  place PostOnly sell at  ask - 0.25 * (ask - bid)
 
Exit:
 
  cancel unfilled side after 200 ms
  on single-side fill, post the opposite side at fill_price +/- 1 tick
  if the opposite side remains unfilled after 500 ms, force-flat via
  Market IOC (taker)
 
Sizing:
 
  notional_usd = 5.0     base order unit
 
Cost, per side as assumed in the source design:
 
  Maker: 1.0 bps (0.01 pct); the current declared programme envelope
  states 2.0 bps per side for the same channel (BL-FM-002 section 3.1)
  Taker fallback on force-flat: 6.0 bps (source) vs 5.5 bps declared

Causality holds by construction: the composite trigger and the vacuum viability gate are evaluated on rolling state through t0, and the entry price re-reads the book after the wait rather than quoting against the pre-trigger snapshot.


5. Operating envelope

ParameterValue for this measurement
Round-trip cost assumed2.0 bps maker-maker best case, per source design; 7.5 bps maker-to-taker on the force-flat fallback, per BL-FM-002 section 3.1
Execution channelPostOnly entry both legs, Market IOC force-flat fallback
Latency bandTokyo VPS, low single-digit milliseconds to venue
Measurement cadenceTrigger-event driven, composite state evaluated continuously
Capital scaleDemo virtual capital, $5 base order unit
Venue and instrumentsBybit USDT perpetuals, 8 Tier 1.5 altcoin symbols
Data era18-hour live observation window, 2026-05-26 to 2026-05-27

6. Instrument

Measured from the live vacuum-capture state machine and its composite trigger evaluator, both instrumented with Prometheus counters for trigger fires and fill outcomes. This is closer to an in-repository instrument than BL-SD-001, but the verdict below is read from operational logs and Redis counters rather than from a dedicated offline analysis tool with its own test suite.

A prior calibration pass is relevant context. Nine hours of observation under looser thresholds (5x median multiplier, no absolute floor) produced 1,321 trigger fires and zero fills, and the multiplier was tightened to 20x with a 6.0 bps absolute floor and an 8.0 bps minimum vacuum width before the 18-hour window reported here. The zero-fill result therefore reflects the recalibrated, stricter configuration, not the original loose one.


7. Results

ArmnEstimateThresholdResult
Trigger fires, 18h823823 triggers10-25/day expected (approximately 8-19 over 18h)Exceeds expectation
Fills823 triggers0Non-zero conversionFAIL
Spread distribution, p99continuous4.34 bpsAbove 8.0 bps vacuum-viability floorFAIL
Time at or above 8.0 bpscontinuous0.2 pct of observed timeEconomically meaningful frequencyFAIL
Mathematical max potential, extrapolated-1.08 pct annualised on $1000.5-1.0 pct/day targetFAIL by roughly two orders of magnitude

Zero of 823 triggered vacuum attempts converted to a fill in this window.


8. Verdict, axis of death, and transferability

Verdict: CLOSED. Axis: cost. Transferability: ENVELOPE-BOUND.

The mechanism the thesis names, a brief widening that a passive order can capture before institutional walls return, does occur: 823 composite triggers fired in 18 hours, well above the expected rate. What the measurement shows is that the widths reached rarely clear the level a round-trip cost requires to make capture worthwhile. The 8.0 basis point vacuum-viability floor was itself derived from the fee schedule, chosen so that a quote at one quarter of the vacuum width would clear the round trip with margin; the p99 observed width of 4.34 basis points sits below that floor, and widths at or above it occurred in only 0.2 percent of observed time.

Applying the test in BL-D-002 section 4: at a sufficiently low round-trip cost, a narrower vacuum-viability floor becomes acceptable, which raises the frequency of executable events. The mechanism is therefore envelope-bound rather than universal. It is not, however, a clean cost story: zero of 823 triggers converted to a fill even at the widths that did occur, which points to an execution defect, plausibly the same queue-priority dynamic that closed the predecessor persistent-quoting strategy, sitting alongside the cost constraint rather than being fully explained by it.


9. Cost and capacity analysis

Vacuum-viability floor, cost-derived      8.0 bps
Observed p99 spread width                 4.34 bps
Frequency of widths >= floor              0.2 pct of time
Fill conversion at 823 triggers           0 of 823

Capacity was not assessed beyond the extrapolated annualised ceiling of 1.08 percent on $100 notional, itself computed from the frequency of qualifying events rather than from any confirmed fill rate, since no fill was observed to measure a realised capacity from.


10. Envelope sensitivity and reopening conditions

Binding parameters: the cost-derived viability floor, and separately, queue priority on the fill leg.

Cost-derived floor              8.0 bps (chosen to clear round-trip cost
                                  with margin, at the source's 2.0 bps
                                  maker-maker assumption)
Observed p99 width               4.34 bps
Declared maker-to-maker RT       4.0 bps (BL-FM-002 section 3.1)

At the currently declared maker-to-maker round trip of 4.0 basis points, a p99 event of 4.34 basis points would leave a margin of only 0.34 basis points, inside the noise of a single spread observation and not a result to build a strategy on. Lowering the cost floor narrows the gap between the theoretical viability threshold and the observed spread distribution, but it does not close the second and larger problem: zero of 823 triggers filled at all, at any width. A cost substitution cannot be shown to reverse that component, because no fill was observed from which to infer how a cheaper channel would have changed the outcome.

What would be needed to compute a full reversal point: a re-run of the same trigger logic with fills logged even when they arrive later or worse than the 200 millisecond hold window permits, so the fill-conversion rate as a function of vacuum width can be estimated rather than reported as zero across the board. That measurement was not taken.

What would reopen it: either a fee tier or channel where the viability floor falls below roughly 4.3 basis points, or evidence from a re-instrumented run that fills occur at some non-zero rate at the observed widths, which the zero-fill result across 823 triggers does not currently support.


11. Reference implementation

Published as 05_INSTRUMENTS/strategies/rust/src/vacuum_capture.rs, with the 24 test cases that pinned it in the source. The composite trigger, the recalibrated threshold constants, and the entry state machine are all present in the module as run; no reconstruction was required. The async quoting loop and its transport are not reproduced, and the module says so: a reader checking this verdict needs the trigger and the state machine, not the socket.

Publishing it surfaced one documentation defect, not a code defect. Section 4 above lists the spread-spike trigger's two conditions as a flat list, which reads as either one firing on its own. The source takes the maximum of the two and requires the observed spread to clear it, which is both conditions together. Every test fixture in the source happens to use a rolling median at which the two coincide exactly, so no test could tell the readings apart. The published module follows the code, because the code is what produced the result recorded here.


12. Evidence register

IDArtifactCarries
E-0059Trigger and fill counters from the 18-hour observation windowTrigger count, fill count, spread percentile distribution

This measurement is recorded in narrative decision documents; registration as a standalone document-evidence artifact is scheduled per BL-SD-000 section 8.


13. Lessons extracted

The recalibration that preceded this measurement, from a 5x spread multiplier with no absolute floor to a 20x multiplier with a 6.0 basis point floor and an 8.0 basis point viability gate, was itself a response to an earlier zero-fill result under looser thresholds. Tightening the trigger did not convert a single fill; it only reduced the trigger count. That pattern, a stricter threshold producing fewer non-events rather than more successful ones, is worth naming for any reader tempted to treat trigger-count calibration as evidence of progress. BL-D-008 cites this alongside BL-SD-001 as an early instance of checking cost arithmetic before running a live observation window.


14. Cross-references

BL-SD-001 for the predecessor persistent-quoting line closed on the same queue-priority mechanics. BL-D-002 section 4 for the envelope classification test. BL-D-008 for the cost-first doctrine this closure also informs. Ledger row VAC.


Copyright (c) 2026 Bijective Labs. All rights reserved.