Internal — concept map · 2026-05-22

The Signal Model

Four layers, each built from the one below. Variables become indicators, indicators combine into signals, signals get shown as views. Everything in vyx is one of these four things.

1 · Variables 2 · Indicators 3 · Signals 4 · Views
The whole model

How a signal is built, bottom to top.

Read it like a recipe: raw ingredients at the bottom, the finished dish at the top.

1

Variables — the raw numbers

A number we compute for every pair, every candle. The ingredients. You don't make these — we provide them, and the list keeps growing.
imbspreadAvgtakerBuyRatiozpercentilebidNotionalrank ofimicropricecvdfundingliquidations
↓  build a condition from variables
2

Indicators — one condition

One test or measurement built from variables. Two types: a yes/no test, or a measurement on a scale. (Detailed just below.)
imb >= 35  (test)takerBuyRatio >= 0.62  (test)imb  (measure)spreadAvg  (measure)
↓  combine 1+ indicators into a score
3

Signals — indicators → a score

One or more indicators combined into a single score per pair. One indicator = a simple signal (every signal today). Several = a "confluence" signal. A threshold decides when the score "counts" (a hit).
1 indicator → simple signal3 indicators → score 0–3hit when score >= 2
↓  show the score (or any variable)
4

Views — how it's shown

The same score (or a single variable) presented different ways. Pick the surface; the underlying number is identical.
Heatmap colorTable columnAlertTape
Layer 2, up close

The two kinds of indicator.

This is the distinction worth getting straight — a yes/no test versus a measurement on a scale.

Boolean A yes/no test

Answers "is this true right now?" — true or false, nothing in between.

imb >= 35
→ Used to add points to a score, or to fire an alert.
Range A measurement

Answers "how much?" — a number on a scale, not a yes/no.

imb  (−100 … +100)
→ Used to paint a gradient on the map, or be a table column.
The thing that makes it click: a boolean is just a range with a line drawn on it. The measurement imb becomes the test imb >= 35 the moment you pick a threshold. Same ingredient — one is the raw number, the other is that number with a cutoff.
−100 (all ask)
threshold +35
range = the whole barboolean = the highlighted "true" zone →
All four layers at once

A worked example.

One signal, built from three indicators, shown four ways.

Signal: "Confirmed Flip"
score 0–3 · hit ≥ 2
Book Flip
prevImb <= -20 && imb >= 35 momentum
Aggressive Flow
takerBuyRatio >= 0.62 flow
Rare
abs(z) >= 2 statistical
↓   each true indicator adds a point
2 / 3
two of three firing → it's a hit. Three different categories agree (momentum + flow + stat), so it's real confluence, not the same reading three times.
↓   show that score however you want
Heatmap
amber heat
Column
sortable
Alert
ping at ≥2
Tape
recent hits
Quick reference

Cheat sheet.

Concept
Plain meaning
Example
Variable
A raw number, per pair, per candle
imb · spreadAvg · z
Indicator · boolean
A yes/no test
imb >= 35
Indicator · range
A measurement on a scale
imb (−100…+100)
Signal
Indicators combined into one score (1 = simple)
Flip + Flow + Rare → 0–3
View
How a score gets shown
heatmap · column · alert · tape
Why this is the moat

Every new metric is just another ingredient.

As the data offering grows — order-book event metrics (OFI, microprice, cancel rate), trade-tape (CVD, sweeps, VPIN), derivatives (funding, open-interest, liquidations) — each one simply becomes a new variable. Any variable can become an indicator; indicators compose into signals. That composability, run across all 100 pairs every candle, is what chart-based tools (CoinGlass, Bookmap) can't do.

vyx · internal concept map · companion to docs/SCANNER_STRATEGY.md. Signal names and formulas are real; the "Confirmed Flip" signal is illustrative.