Filters run after signal rules in a section produce a pending buy or sell. They can block that signal before an order is placed. Filters are configured per reason: entry, increase, reversal, or exit.
Two filter types
Gate filters (pass / fail)
These do not pick a direction—they only allow or deny the pending signal:
| Rule | What it checks |
|---|---|
| UTC Time Window | Current UTC time vs allowed start and blocked intervals |
| Volume Threshold | Candle volume vs minimums |
If any enabled gate filter fails, the signal is dropped.
Directional filters (must agree)
These evaluate like normal indicator rules but act as filters: they must agree with the pending signal side (buy or sell). Examples: RSI, ADX, MA crossover, incremental scaling.
Use directional filters to require extra confirmation—for example, only enter long when ADX shows a strong uptrend.
UTC time window (new)
Control when trading is allowed in UTC:
- allowedAfterUtc — Do not trade before this time each day (e.g.
09:30). - blockedWindows — One or more daily intervals where trading is blocked.
Each blocked window has startUtc, endUtc, and enabled. Overnight windows are supported (e.g. 22:00 → 06:00 blocks evening through early morning).
Invalid time strings are treated conservatively: malformed “allowed after” times fail open; malformed window boundaries may block incorrectly—use HH:MM in 24-hour UTC format.
Volume threshold
Require minimum liquidity before firing:
- minVolume — Current bar volume must meet this
- minAvgVolume — Average over lookbackBars (default 20) must meet this
- volumeType —
baseorquoteasset volume
If volume data is missing, the rule fails open (allows the signal) so thin feeds do not silently block everything.
Legacy filter shapes
Older payloads used top-level filters.time or filters.volume. dogabot migrates these to utcTimeWindow and volumeThreshold rule instances automatically.
Rules that cannot be filters
Stop loss, take profit, and day trade close are exit signal rules only—they are not available in filter sections.
Example
You get a pending buy from entry rules at 14:05 UTC, but filters.entry includes a blocked window 00:00–08:00 (disabled) and 22:00–06:00 (enabled). At 14:05 the gate passes. At 23:30 UTC the same rules might fire, but the overnight block rejects the signal before an order is placed.
Related reading
- Strategy rules overview
- UTC Time Window rule
- Volume Threshold rule
- ADX rule — popular directional filter in trends