Knowledge · Terms · Session Filter

Session Filter

Indicator concept
Trading session filter (UTC time window)
Allow signals only within a specific UTC hour window. Filters out phases of poor liquidity (Asia low) or prevents trading in risky sessions.

Core idea

Not all trading hours are equal. Markets behave differently across sessions — volatility, spread, and trend quality vary strongly. A session filter restricts trading to defined UTC hours.

Trading sessions (UTC)

Session UTC Character
Asia 00:00 – 08:00 Low liquidity, often ranging, manipulation spikes
London 07:00 – 16:00 High liquidity, strong trends possible
New York 13:00 – 22:00 Highest liquidity (US open 13:30 UTC)
London/NY overlap 13:00–16:00 Most intense trading

Botty implementation

strategies/conditions.py → filter condition session_filter. Disabled at [0, 24) (default).

def _filter_session(df, latest, signal, **p):
    start = p.get("session_hour_start", 0)
    end   = p.get("session_hour_end",   24)
    if start == 0 and end >= 24:
        return True  # disabled
    hour = latest["timestamp"].hour
    return start <= hour < end  # wrap-around is also supported

Parameters: - session_hour_start (default: 0) — start time in UTC - session_hour_end (default: 24) — end time in UTC

When to use it?

  • Activate trend-following strategies only during London+NY
  • Avoid the Asia session if a strategy produces many false signals in ranging markets
  • Exclude certain high-impact news times (e.g. US open 13:30 UTC)

Adjusting for daylight saving time

Hyperliquid and Binance deliver UTC timestamps. No adjustment needed — UTC is consistent.