# Multi Pane Analysis

> Cross-asset reasoning across a multi-pane layout — set a 2x2 grid, assign correlated symbols to each pane, and identify leader/laggard/divergence. Use when the user asks to "compare indices", "watch the complex", or wants correlated-asset reasoning.

- Skill: `ferroxlabs/multi-pane-analysis` (Agent Skill)
- Install (CLI): `npx skillmds@latest add ferroxlabs/multi-pane-analysis`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ferroxlabs/multi-pane-analysis/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: MIT
- Author: FerroxLabs (https://skillmd.com/u/ferroxlabs)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/ferroxlabs/multi-pane-analysis

---


# Multi-Pane Cross-Asset Analysis

You are using TradingView's pane layouts to reason across several correlated instruments at once.

> **Power-toolkit shortcuts:** snapshot the current layout with `state_snapshot` before mutating it (so the user can `state_restore` afterwards). Use `chart_vision_read` per active pane to grab everything (image + indicators + Pine graphics) in one call.

## Step 1: Choose the Layout

1. `pane_set_layout` — typical choices:
   - `"2x2"` for four symbols (e.g., the index complex)
   - `"1x2"` / `"2x1"` for two
   - `"1x3"` / `"3x1"` for three

Example — index complex: `pane_set_layout({ layout: "2x2" })`.

## Step 2: Assign Symbols

Use `pane_set_symbol` once per pane. Common correlated baskets:

- **US Index complex**: `ES1!` (SP500), `NQ1!` (Nasdaq), `YM1!` (Dow), `RTY1!` (Russell)
- **Energy**: `CL1!` (WTI), `BZ1!` (Brent), `NG1!` (Nat Gas), `XLE`
- **Metals**: `GC1!` (Gold), `SI1!` (Silver), `HG1!` (Copper), `PL1!` (Platinum)
- **Crypto majors**: `BTCUSD`, `ETHUSD`, `SOLUSD`, `TOTAL`
- **Risk-on/off**: `SPY`, `TLT`, `DXY`, `VIX`

```
pane_set_symbol({ pane: 0, symbol: "ES1!" })
pane_set_symbol({ pane: 1, symbol: "NQ1!" })
pane_set_symbol({ pane: 2, symbol: "YM1!" })
pane_set_symbol({ pane: 3, symbol: "RTY1!" })
```

If a pane errors with `CHART_LOADING`, wait ~2s before querying that pane.

## Step 3: Align Timeframes

Either set each pane's timeframe via `pane_set_symbol` (if it accepts tf) or loop through panes calling `chart_set_timeframe` after `pane_focus`. All panes should match (e.g., all 15m) for valid comparison.

## Step 4: Stream or Poll

Two modes:

- **Stream** — `tv stream all` (or whatever live-stream entrypoint is wired) for push updates across all panes
- **Poll** — `pane_list` to enumerate panes, then per-pane `quote_get` + `data_get_ohlcv` with `summary: true`

For a point-in-time analysis, polling is simpler. For live monitoring over 30+ min, stream.

## Step 5: Compute Relative Moves

For each pane, pull:

- `quote_get` — current price + change%
- `data_get_ohlcv` with `summary: true, count: 20` — recent range

Compute normalized % moves since session open (or since any anchor bar). The **leader** is the one with the largest % change in the dominant direction; the **laggard** is the smallest; **divergence** is when one pane goes opposite the rest.

Example output:

```
ES1!  +0.42%  (laggard)
NQ1!  +0.91%  (LEADER — tech leading risk-on)
YM1!  +0.18%
RTY1! -0.35%  (DIVERGENCE — small caps down while indices up)
```

## Step 6: Annotate Divergences

If you spot a divergence:

1. `pane_focus` on the divergent pane
2. `draw_shape` with `text` marking the divergence bar
3. `capture_screenshot` with `region: "full"` so all four panes are in frame

## Step 7: Report

Provide the cross-asset read:

- **Leader / laggard / divergent** with % moves
- **Correlation check** — are the normally-correlated pairs still in sync? (e.g., ES/NQ typically correlated; if they split, note it)
- **Actionable interpretation** — e.g., "RTY1! weakness while ES1!/NQ1! rally = narrow breadth, fade long setups on indices"

## Cleanup

If the user wanted a single-pane view back:
- `pane_set_layout` with `"1x1"`
- Or `state_restore` if a prior snapshot exists

