Define scalping liquidity before testing it
Scalping liquidity is not a single number. In practice, it describes whether you can reliably execute small, short-horizon trades with acceptable transaction costs and limited adverse price movement between order submission and fill.
A useful way to make this testable is to translate “liquidity” into measurable execution outcomes:
- Fill probability: how often orders (within your chosen time window) get filled.
- Realized spread / effective cost: how far the executed price is from a chosen reference (often the prevailing bid/ask at submission time, if you can measure it).
- Slippage: the difference between your decision-time price (or mid) and the actual fill.
- Adverse movement between orders: whether the market moves against you quickly during your execution window.
By defining these outcomes up front, you avoid mixing stable market mechanics with variable factors like execution speed, order handling, or provider-specific routing.
State a falsifiable hypothesis and baseline
A test works best when it has a clear hypothesis and a baseline that represents “no special edge.” For example, a general hypothesis could be:
- Hypothesis (liquidity tradability): “Under defined conditions, short-horizon execution has stable and acceptable realized costs relative to a baseline reference.”
The baseline should not assume a specific trading strategy. Instead, it should represent a neutral execution reference, such as:
- a benchmark reference price at submission time (e.g., bid/ask or mid, depending on what you can record),
- a comparison between fills and non-fills under identical constraints,
- or a comparison across market regimes (quiet vs. active) while keeping execution rules the same.
If you can’t measure bid/ask at submission, your test can still be done, but you must state that your reference is approximate (for example, using last traded price as a proxy). That limitation should be explicit in your assumptions.
Design the data split: stable mechanics vs variable conditions
Liquidity changes with time and conditions, so you need multiple slices of data. Split your dataset in at least three ways:
- Time-of-day and day-of-week: execution quality can differ across sessions.
- Market regime: for example, categorize by volatility or by whether price changes are large vs. small. Use a consistent rule so you can reproduce it.
- Order size / aggressiveness: test small vs. larger order sizes, and test different order types (as far as your data allows) since depth consumption and queue behavior can change.
Then define the evaluation window for scalping liquidity. For example, you might choose a short execution window (minutes, not hours) and measure whether the order is filled within that window and at what effective cost.
Specify assumptions and include costs explicitly
Any “liquidity test” becomes meaningless if costs are omitted or inconsistently modeled. Even with general information, you can still make your test independently verifiable by writing down assumptions.
Include at least:
- Transaction costs you will treat as part of execution quality (e.g., commissions or fees if they are part of your measurement framework).
- Spread reference and how you compute effective spread. If you use midpoints, state that clearly.
- Order handling assumptions (e.g., if you assume you can observe bid/ask at submission, or if you rely on snapshots).
- Execution window rules (what happens when an order is not filled before the window ends).
If you do not have live order book data, you can still test realized outcomes from trade prints you do observe, but you must distinguish:
- Observed fills and prices (data you actually have), vs.
- Unobserved microstructure (things you infer but cannot confirm, such as queue position).
That separation helps prevent overstating what the test truly measures.
Evidence or example approach: measure execution quality, not signals
Because you want to test scalping liquidity rather than a trading signal, structure the evidence as execution-quality metrics.
A practical example design (conceptual, not tied to real prices) could look like this:
- Pick a set of scalping execution rules that are about order timing and constraints, not about predicting direction.
- For each slice (time/regime/size), simulate or evaluate executions under the same rules.
- Compute metrics:
- fill rate within the execution window,
- median and tail effective cost,
- distribution of slippage.
- Compare results to the baseline reference across slices.
A key point: the “evidence” is whether execution outcomes stay within an acceptable band consistently across conditions, not whether you can create one profitable-looking scenario. Your report should include variability, such as how costs behave in stressed or fast-moving regimes.
Costs and robustness checks
To prevent a test from capturing one-off quirks, run robustness checks that change one modeling choice at a time.
Common robustness checks include:
- Reference price sensitivity: repeat calculations using bid/ask reference vs. midpoint proxy (if allowed) and see whether conclusions still match qualitatively.
- Execution window sensitivity: test shorter and longer execution windows to see how quickly “liquidity tradability” deteriorates.
- Regime definition sensitivity: change the regime threshold rule slightly (e.g., a different volatility cutoff) and observe whether the results remain stable.
- Cost model sensitivity: if costs are uncertain, run scenarios where fees or cost components vary within a reasonable range and examine whether the ranking of conditions changes.
These checks help you separate “real liquidity behavior” from artifacts of measurement and assumptions.
Limitations and risks: where liquidity tests can fail
At least one material limitation should be acknowledged in any scalping liquidity test:
- Execution mechanics you cannot observe: if your data lacks order book depth or queue information, you may mistake apparent liquidity for actual tradability.
- Provider and routing differences: two implementations using the same public market data can differ in realized outcomes due to execution speed and order handling.
- Non-stationarity: relationships that look stable historically may break when volatility regimes shift.
- Tail risk: averages can look acceptable while rare events (fast spikes, temporary depth withdrawal) create large slippage.
Also note a general limitation: historical relationships do not establish future results. Even a strong backtest-style execution-quality analysis may not reproduce under different operational conditions.
Finally, jurisdiction and regulatory environment can affect reporting obligations and execution practices. If you need that level of certainty, rely on current primary sources rather than static assumptions.
Verification and next questions
To verify your scalping liquidity test independently, ensure your work includes: