Markets aren't equally busy all day. The opening bell is loud; lunch is quiet; overnight is almost silent. A single fixed volume filter can't fit all of that. Set it for the open and it goes blind at lunch; set it for lunch and it's flooded with noise at the open.

Adaptive Scaling solves this automatically. It learns the typical activity for each time of day and adjusts your imbalance filter to match: stricter when the market is busy, more sensitive when it's quiet. So a meaningful imbalance gets flagged whether it happens at 9:30 or at 2 a.m., without you touching a thing.


The math, in plain words

Think of it as a simple dial between 0 and 100%:

The indicator works out that percentage from your own chart history. It simply asks "how busy is this time of day, normally?" and turns the dial accordingly. Busy hour → high bar. Quiet hour → low bar. That's the whole idea.

Example: with a Min Volume of 40, an afternoon (around 75%) runs the filter at roughly 30, while a quiet midday (around 50%) runs it at roughly 20. Same setting, automatically right for the hour.


The settings

Min Volume (and Min Cluster Volume)

Your threshold during the busiest part of the day. Tune Min Volume to what looks right at the open for single imbalances, and Min Cluster Volume for groups of imbalances stacked at one price. These are your main dials. Everything else just protects them.

Min Volume Floor (and Min Cluster Volume Floor)

The lowest level the filter is ever allowed to drop to, no matter how quiet the market gets. This is a safety line: it stops the filter from sliding so low in dead hours that random noise sneaks through.

A simple way to set it: "What's the smallest imbalance I'd still trust at 3 a.m.?" That number is your floor. Set it low and it only guards the overnight session; set it closer to your Min Volume and it also keeps the daytime filter from getting too loose.

Tip: the floor only does something when the market is quiet enough to push the filter down to it. During busy hours your Min Volume is in charge, so don't expect the floor to change much around the open. That's by design.

Adaptive Label

A small on-chart readout that shows you what the engine is doing right now. Turn it on and you'll see something like:

VolImbalance Adaptive
f=0.75 | MinVol=30 | MinClusterVol=90

Handy for confirming the engine is tuned and seeing why something was, or wasn't, flagged. While the indicator is still learning your chart history, it instead shows warming up (x/3 sessions).

Use Day Factor

Adaptive Scaling adjusts for the time of day. Use Day Factor adds an adjustment for the kind of day as a whole: quiet holiday sessions vs. high-volume event days like FOMC or CPI.

When it's on, the indicator also watches how today's overall volume compares to a normal day, and nudges the filter up on unusually busy days and down on unusually quiet ones. The label then shows it as a second number, e.g. f=0.75 x day=1.20. Leave it off for normal trading; switch it on if you want the filter to lean into big event days. It's optional.


In short

Set it once for the open, and the indicator stays correctly tuned all day and all night.