For traders

Reading the Chart

Everything the Suite draws — labels, lines, the data table, alert messages — is a rendering of the same underlying state. This doc is the decoder: what each piece of text means, what the colors say, and how to read the table row by row. Notation itself (what 2u or F2d means) is defined in bar-types.md; signal semantics live in signals.md. This doc assumes both.

Applies to v2.2.7-split and later. Code references are function names and FIX tags; grep the source for them.


Label anatomy

Every level label is assembled from the same ordered parts (collectTimeframeLabels). A fully-loaded example:

1H *2d-1-2u HAM H 542.10
Part Example Meaning Always shown?
Timeframe 1H Which monitored timeframe owns this level (getTimeframeLabel: 15m, 30m, 1H, D, W, M, …) Always
Combo / word *2d-1-2u The setup — or a level word (MAG, EXH, OPEN, STOP) Always
Pattern suffix HAM / SHO C1 is a hammer/shooter. Universal mode uses ◆ instead When detected
Side H / L High-side or low-side level Only with Show H/L in Labels on
+ STOP The stop sits at break-even — exactly on this trigger — so its label merged in When stop = trigger price
Price 542.10 The level's price Only with Show Price in Label on

Two more assembly rules:

The level vocabulary

Six kinds of level, six words:

Label text Universal mode The level Line style
combo (*2d-1-2u, 2u-F2u, …) words (↑REV, …) Trigger — C1's high or low Dashed (solid when the structure itself is the event: confirmed F2 reclaim side, committed outside bar)
MAG TARGET Magnitude — first target, C2's high/low Solid
EXH FINAL Exhaustion — extended target Solid
OPEN OPEN The current period's open Dotted, gray
STOP STOP Protective stop (drawn on the opposite side of the trigger) Solid
*F2d / *F2u, then F2d / F2u OPEN The CC open during a Failing 2 — the reclaim reference level Dotted

The shaded boxes between trigger and target are Take Action Windows — the tradeable zone for an in-force signal, filled with the same bullish/bearish Signal colors as the lines.


Combo strings and the canonical tuple

A combo reads oldest → newest, and the last token is always the forming candle: in 2d-1-2u, the 2u is happening right now. Full reading rules are in bar-types.md; the ones you need constantly:

Casing carries structure, never tense (NOTATION-1)

Failing 2s are always uppercase F2u/F2d, live or closed. Earlier versions wrote a forming Failing 2 in lowercase (f2u); that was retired in v2.2.7 because case-significant notation can't be spoken, doesn't survive small label sizes, and marked liveness for exactly one bar type. Liveness is carried where every bar type carries it:

  1. Slot position — the last token of a combo is the forming candle.
  2. * prefix — potential, not yet confirmed (*F2d on a pre-F2 open level).
  3. Words — Universal mode says FAILING while live; past tense is failed.

The tuple is the truth

Every string on the chart is a projection of one four-field tuple per candle — structure (1 / 2u / 2d / 3), above_open, failed, live (the full table is in bar-types.md). When two displays seem to disagree — a table cell versus a label, a label versus an alert — resolve both back to the tuple before assuming a bug. They cannot actually conflict; they can only be rendering different fields.

Universal mode

With Label Style = Universal, combos become words: ↑REV, ↓CONT, ↑INS, ↑EXP, *OUTSIDE, with FAILING appended to the side a live F2 is failing and ◆ replacing HAM/ SHO. The * prefix still means potential. MAG/EXH become TARGET/FINAL. Same engine, same triggers, same colors — only the vocabulary changes.


Colors

All configurable under Style — these are the defaults, and each has one job:

Color Default Means
Green (Signal) color.green Bullish level, live — trigger broken or in force
Red (Signal) color.red Bearish level, live
Yellow #ffeb3b Inside-bar potential, high side — break not yet known
Orange #ff9800 Inside-bar potential, low side
Teal #089981 Bullish outside-bar (3) expansion level
Pink #e91e63 Bearish outside-bar expansion level
Soft green #81c784 Range Reclaim F2d — failed downside break, bullish
Soft red #f77c80 Range Reclaim F2u — failed upside break, bearish
Light / dark gray #9c9c9c / #4a4a4a Crossed — a magnitude or exhaustion level already hit, visually receding

The read at a glance: yellow/orange = waiting, green/red = live, gray = done. An inside-bar setup draws both sides (yellow above, orange below) because the break direction isn't known yet; the moment one side breaks, that line goes signal-colored and the * drops.


The data table

The multi-timeframe scoreboard, updated on the live bar only. Two modes (Display → Data Table → Mode).

Full mode

One row per enabled timeframe, five columns (populateBarTypeRow):

Column Contents
TF The timeframe label. Its background lights up in the CC bar-type color when a signal is in force on that timeframe — a live 2/F2 signal or an enabled outside-bar expansion. Inside bars never light it (FIX TFCOLOR-1): an inside bar is by definition not in force.
C2 Two bars back, completed — colored text on black
C1 The prior bar, completed — colored text on black
AS Actionable signal on C1: HAM, SHO, or INS (inside), else blank
CC The forming bar — black text on a solid color block. The one cell that changes as price moves

The typography is deliberate: completed bars are colored text, the forming bar is a filled cell. Your eye goes to the live column.

Cell text and colors (getBarTypeColor, getBarTypeTextColor) follow the same scheme as the chart: 1u yellow / 1d orange (inside, closed above/below open), 2u green / 2d red, 3u/3d and F2u/F2d in your Style colors for outside bars and Range Reclaims. Two special cases:

The footer rows

Below the timeframe rows, in order, each spanning the table width:

Row Appears when Reads
Domino Stacked same-direction inside-bar setups ≥ your minimum (white background) Domino: 15m+30m+1H — the coiled timeframes, lowest first
FTFC Always FTFC Up (green) / FTFC Down (red) / Conflict (gray). Universal: Trend Up / Trend Down / No Trend. With Exhaustion Excludes from FTFC on, this cell — and only this cell — drops exhausted TFs from the calculation (FIX P1-e); signals and alerts always use raw FTFC
Lead Lead Signal filter enabled Lead: D BULL — the anchor timeframe and its direction, or No Lead
PREVIEW MODE Preview is active Yellow banner — some slots are showing shifted/estimated periods

Compact mode

The whole table collapses to one colored chip per timeframe in a horizontal row, plus the same footer rows. Chip colors: yellow = inside and above open, orange = inside and below open, green/red = signal in force in that direction (Range Reclaim and outside-bar signals use their own Style colors), dark with white text = nothing live, yellow text = previewed slot with no rebuilt data (the ? equivalent).


Alert messages

The consolidated alert() message is built per signal by buildAlertLabel, one label per newly in-force event, joined with |:

<TF> <combo><pattern><H/L> <marker> | <detail fields> | <FTFC>

A fully-enriched single-signal push:

1H 2d-1-2u HAM 🟢 | @ 542.10 MAG 545.30 EXH 548.20 STOP 538.10 | FTFC Up

Domino alerts are their own message: Domino: 15m+30m+1H.

Two things worth knowing about delivery:

  1. The rich message only travels the alert() path — create one TradingView alert with condition "Any alert() function call". The named alertcondition() entries ("Signal In-Force (TF1)", "FTFC Shifted", …) fire with fixed text, a Pine limitation; use them for targeted routing, the consolidated alert for content.
  2. What alerts is what displays. Alerts obey the same signal toggles as the chart (FIX P0-3), fire only on a signal becoming in force — not on every bar it stays in force — and never fire from a previewed or straddled slot (FIX HTF-STRADDLE-1). If the table shows ?, that slot is silent.

Every knob referenced here (label placement, table mode, alert enrichment, colors) is documented in ../TheStratSuite_v2.2.7_Settings_Reference.md. Notation rules and the canonical tuple: bar-types.md. What makes a signal fire in the first place: signals.md.