Skip to main content

Overview

This page documents 3 operators (role: SCORE).

LiquidityScore

Score symbols by dollar volume (price * volume). Computes dollar volume as close price multiplied by volume for each bar, then averages over the lookback window to produce a continuous liquidity score. Requires two inputs (close price and volume). For single-bar (1-D) data the raw dollar volume is used directly; for multi-bar (2-D) data the trailing window average is computed. Higher dollar volume results in a higher score. Symbols with invalid or missing data receive NaN. Role: SCORE | Ephemeral: No

Parameters

Usage

Source Code

Full compute() implementation — no hidden logic.
Source: apps/trading/operators/universe/score/liquidity.py

VolatilityScore

Score symbols by volatility (lower vol = higher score by default). Computes the standard deviation of simple returns over the lookback window and assigns it as a continuous score for each symbol. Returns can optionally be annualized by multiplying by sqrt(periods_per_year). When inverse is True, the volatility is negated so that lower-volatility symbols receive higher scores (useful for risk-averse ranking). Requires at least two bars of data. Symbols with invalid or missing data receive NaN. Role: SCORE | Ephemeral: No

Parameters

Usage

Source Code

Full compute() implementation — no hidden logic.
Source: apps/trading/operators/universe/score/volatility.py

VolumeScore

Score symbols by average volume. Computes the mean trading volume over a lookback window and assigns it as a continuous score for each symbol. For single-bar (1-D) data the raw volume value is used directly; for multi-bar (2-D) data the trailing window average is computed. Higher volume results in a higher score. Symbols with invalid or missing data receive NaN. Role: SCORE | Ephemeral: No

Parameters

Usage

Source Code

Full compute() implementation — no hidden logic.
Source: apps/trading/operators/universe/score/volume.py

Operator Protocol

How operators implement the compute() interface

StatefulGraph

How operators compose into a DAG