tickerbot.io

low_volume_regime

In a sustained quiet stretch: the last 30 minutes traded at or below 30% of this name's usual volume for this time of day.

Facts

definitionsum(volume, trailing 30 min) / expected_30min <= 0.30 to turn on; stays on until > 0.60. expected_30min = this bucket's median 15-min volume + the previous bucket's, medians over the last 20 sessions (volume_profile). Regular hours only; null until the name has a profile.
typestate (boolean)
firingcontinuous
cadence1 min · 4 AM–8 PM ET
intervals1m 1h
asset classesUS equities
universeall tickers
history1h recent only · since 2026; 1m recent only · since 2026
also known asvolume_dry_up

Examples

Screen on it

curl -X POST "https://api.tickerbot.io/v2/scan" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_KEY" \
  -d '{
    "q": "low_volume_regime"
  }'

Backtest it at a past moment (hourly grain)

curl -X POST "https://api.tickerbot.io/v2/scan" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_KEY" \
  -d '{
    "q": "low_volume_regime",
    "asof": "2026-08-08T17:45:00Z",
    "interval": "1h"
  }'

Get an alert when a ticker starts matching

curl -X POST "https://api.tickerbot.io/v2/scan/subscribe" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_KEY" \
  -d '{
    "q": "low_volume_regime",
    "target_url": "https://example.com/hooks/tickerbot"
  }'

Returns 201 with the created webhook object; deliveries carry the tickers matching the condition at each evaluation.

Its firings

curl -G "https://api.tickerbot.io/v2/events" \
  -d "kind=signal" -d "signal=low_volume_regime" -d "transition=enter" -d "from=2026-03-31" \
  -H "Authorization: Bearer YOUR_KEY"