Search...Ctrl K

Nested Labels

Coming Soon — MTTP is currently in development. This documentation is published early so you can explore what's ahead.

When multiple timeframes pivot at the same bar, MTTP stacks the labels vertically. This convergence often marks structurally significant turning points.


What Convergence Means

A Weekly low and a Monthly low confirming at the same bar isn't coincidence. It means:

  1. The weekly period that just completed made a lower low than the prior week
  2. The monthly period that just completed made a lower low than the prior month
  3. Both extremes happened to occur on the same daily bar

This alignment suggests the turning point has significance across multiple timeframe perspectives. The more timeframes that converge, the more structurally important the level.

<!-- IMAGE: mttp-convergence-example.png — Chart showing W and M labels stacked at a significant low -->

How Stacking Works

When MTTP creates a label, it checks if other labels already exist at the same bar and direction (high or low).

The Stacking Algorithm

  1. Check the swing cache — A fast lookup structure tracks recent swings by bar index and direction
  2. Match by proximity — Swings within 10 ticks of each other are considered the same level
  3. Count existing labels — How many labels already exist at this bar/direction?
  4. Calculate offset — Base distance + (spacing × stack count)
  5. Place label — Higher in the stack if other labels already present

Visual Result

For a swing low where Weekly, Monthly, and Quarterly all confirm:

Q ← Placed last (highest offset) M ← Placed second W ← Placed first (base offset) ___ | | |___| ← The actual bar

For a swing high, the same logic applies but labels stack downward from above the bar.


Controlling Stack Appearance

Two settings control label positioning:

Label Base Distance

The distance from the swing price to the first label. Measured as a percentage of the swing price itself.

Default: 0.3 (meaning 0.3% of price)

On a $100 stock, the first label appears $0.30 away from the extreme. On a $5,000 index, the first label appears $15 away from the extreme.

This percentage-based approach works universally across all price levels and instruments.

Label Stack Spacing

The distance between stacked labels. Also measured as a percentage.

Default: 0.5 (meaning 0.5% of price between labels)

Increase this value if labels overlap. Decrease it if spacing looks too spread out.


Reading Convergence

Two Timeframes Converging

Common and often significant:

  • W + M — Weekly and Monthly alignment, strong intermediate-term signal
  • M + Q — Monthly and Quarterly alignment, major structural level
  • D + W — Daily and Weekly alignment, good for swing trading

Three or More Timeframes

Rare and highly significant:

  • W + M + Q — Three-timeframe convergence, major turning point candidate
  • M + Q + Y — Upper timeframe cluster, potential multi-month or multi-year extreme

With Count-Based Timeframes

On daily charts, 2-Day and 3-Day swings can converge with period-based timeframes:

  • 2D + W — 2-Day confirmation at a Weekly level
  • 3D + M — 3-Day confirmation at a Monthly level

These show when the daily rhythm aligns with higher timeframe structure.


Cache Mechanics

MTTP maintains a swing cache for fast convergence detection:

What's Stored

For each recent swing:

  • Bar index
  • Direction (high or low)
  • Price
  • Array of timeframe indices that have marked this swing

Cache Lifetime

The cache keeps the last 50 bars of swing data. Older entries are automatically pruned each bar.

This is sufficient because convergence only matters at the moment of creation — once labels are placed, the cache entry has served its purpose.

Price Proximity Matching

Two swings are considered "the same" if:

  1. They're on the same bar index
  2. They're the same direction (both highs or both lows)
  3. Their prices are within 10 ticks of each other

The 10-tick tolerance handles minor price differences that can occur when different timeframes capture slightly different extremes within the same bar.


Timeframe Priority

When labels stack, they appear in the order they were created. Generally:

  1. Lower timeframes confirm first (15min before 1hr, Daily before Weekly)
  2. Labels are placed as each timeframe confirms
  3. Stack order reflects confirmation sequence

There's no fixed "hierarchy" in the visual stacking — it's purely based on processing order. What matters is that all converging timeframes are visible.


Convergence vs. Clustering

Convergence: Multiple timeframes pivoting at the exact same bar.

Clustering: Multiple timeframes pivoting near each other (within a few bars).

MTTP's nested labels show convergence. Clustering is visible when you see labels of different timeframes appearing close together but not stacked.

Clustering can be equally significant — a Weekly low followed by a Monthly low a few bars later suggests building structural support, even without perfect convergence.

<!-- IMAGE: mttp-clustering-example.png — Chart showing W label followed by M label a few bars later -->

Performance Considerations

With 10 timeframes and convergence detection, label management is non-trivial:

Dynamic Window Drawing

Essential for convergence-heavy charts. Without it, you'd hit the 500 label limit quickly on charts with many timeframes enabled.

When enabled, labels outside the visible window (plus buffer) are deleted, freeing slots for labels in the current view.

Cache Cleanup

The swing cache self-prunes to 50 entries maximum. This keeps convergence detection fast without accumulating unlimited historical data.

Label Array Management

Each timeframe maintains its own label array for tracking. These arrays are pruned when labels are deleted by the dynamic window system.


Practical Tips

Reading Dense Convergence Zones

When many labels cluster in an area:

  1. Zoom in to separate the stacks
  2. Hover over labels for tooltip details
  3. Look for the highest timeframe present — it carries the most structural weight

Color Coding Strategy

Use distinct colors for each timeframe to quickly identify what's converging:

  • Cool colors (blue/green) for higher timeframes
  • Warm colors (orange/red) for lower timeframes
  • Or any scheme that makes visual parsing easy

Identifying False Convergence

Not all convergence is equal. Consider:

  • The depth of the pullback that formed the swing
  • Whether higher timeframes are trending in that direction
  • The quality of the swings (clean reversals vs. messy OB patterns)

Next Steps