Session liquidity: clear definition
Session liquidity is the practical ease of trading during a specific market “session” (for example, the period when a region’s financial markets are actively open). In plain terms, it reflects how many buyers and sellers are present and how tightly prices tend to be quoted at that time.
It is not a guaranteed property. Even in a normally liquid session, liquidity can thin suddenly due to news, positioning changes, technical factors, or temporary order-book gaps.
Worked example with explicit assumptions
This example is designed to be verifiable in hindsight using your own historical spread and trade-size observations. It uses simplified mechanics that you should treat as a model, not a prediction.
Assumptions (state everything)
Assume you place one market order during a time window you label as a “high-liquidity session.” You want to estimate the execution cost beyond the quoted spread.
Use these assumptions:
- Mid price is 1.10000.
- The quoted spread at your decision moment is 0.00010 (1 pip = 0.00010 here for illustration).
- Your order size is “1 unit” in a normalized way.
- Market depth is represented by an assumed price-walk: buying through the book causes an average additional 0.00005 adverse move if liquidity is robust.
- Total execution cost is approximated as half the spread plus the adverse move.
Step-by-step calculation
- Half-spread cost = 0.00010 / 2 = 0.00005.
- Adverse move from walking depth = 0.00005.
- Total modeled cost = 0.00005 + 0.00005 = 0.00010.
So, under these assumptions, your effective fill price is approximately:
- Buy fill ≈ 1.10000 + 0.00010 = 1.10010
If you repeat the same logic for a “lower-liquidity session,” you might change only the liquidity assumptions while keeping the rest constant.
Lower-liquidity scenario (only liquidity assumptions change)
Change depth/walk assumption to reflect thinner liquidity:
- Same mid price: 1.10000
- Same quoted spread at decision moment (for an isolated comparison): 0.00010
- Higher adverse move due to thinner depth: 0.00015
Recalculate:
- Half-spread = 0.00005
- Adverse move = 0.00015
- Total modeled cost = 0.00020
- Buy fill ≈ 1.10000 + 0.00020 = 1.10020
What this example is showing
With identical spread and order intent, the modeled difference comes from the liquidity “depth” effect captured by the adverse move assumption. That is the core idea behind worked examples of session liquidity: execution cost depends not only on the quoted spread at one instant, but also on how far price may need to move to fill your size.
Limitations and risks (material failure modes)
- Spread and depth are not fully observable from one number: your broker’s execution venue, matching logic, and routing can change realized fills even when two sources show similar quotes.
- “Liquidity gaps” can break the model: during sudden events, price may jump because available orders are insufficient at nearby prices; a smooth adverse-move assumption may underestimate this.
- Costs beyond price: commissions, financing, and platform fees can dominate small execution differences, so session liquidity effects may be hard to separate from total cost.
- Regime shifts: relationships between “time of day” and liquidity are not stable; a session that was liquid historically can thin in a later period.
Because outcomes vary with market conditions, costs, execution method, and jurisdiction, any worked example is only a structured way to reason. It does not establish future results.
How to verify independently (and what to look for next)
To make this concept testable without live forecasts, you can do a simple back-check:
- Pick two time windows you consider “higher” and “lower” liquidity.
- For a consistent order size (or a close proxy), record quoted spreads and measure realized adverse movement between the quote time and your effective fill time (if available).
- Compare whether the “extra beyond half-spread” portion behaves differently across windows.
A useful next question is: what proxy should you use for “depth” in your data? If you only have spread, your model may miss the main driver. If you have trade-by-trade executions, you can approximate adverse movement more directly.