Search...Ctrl K

Performance

Smooth Charts, Any History Length

Most indicators draw everything from the beginning of time. Load five years of daily data, and they calculate and render thousands of objects — whether you can see them or not.

SSI PRO is built differently. It renders only what you need to see, when you need to see it.


Dynamic Window Drawing

The primary performance optimization: calculate and display only the swings visible in your current chart view.

The Problem It Solves

Without dynamic rendering:

  • 1 year of daily data: ~250-500 swing lines
  • 5 years of daily data: ~1,250-2,500 swing lines
  • 10 years of daily data: ~2,500-5,000 swing lines

Every line consumes memory and processing time. Scroll through a long history and you're dragging thousands of invisible objects behind you.

How Dynamic Window Works

The indicator continuously monitors:

  1. Your visible chart area (leftmost to rightmost bar)
  2. A buffer zone beyond the visible edges
  3. Which swings intersect this window

Only swings within the window (plus buffer) are drawn. As you scroll or zoom, the indicator:

  • Removes swings that leave the window
  • Adds swings that enter the window
  • Pre-loads buffer zone swings for smooth scrolling

Only swings within the visible window and buffer are rendered.Only swings within the visible window and buffer are rendered.

Performance Impact

History LengthDynamic OFFDynamic ONImprovement
1 year~500 lines~50-100 lines5-10x faster
5 years~2,500 lines~50-100 lines25-50x faster
10 years~5,000 lines~50-100 lines50-100x faster

With dynamic window enabled, performance stays constant regardless of how much history you load.

The Setting

Setting Name: Use Dynamic Window Drawing
Default: On

Leave this enabled for virtually all use cases.

When to Disable

Consider disabling only if:

  • Analyzing very short histories (< 100 bars)
  • Need to see all swings simultaneously for a screenshot
  • Creating static exports of complete history

Note: Disabling may cause significant lag on longer histories.


Window Buffer

The buffer adds extra bars beyond the visible area, enabling smooth scrolling without constant recalculation.

How Buffer Works

[Buffer Zone] [Visible Chart Area] [Buffer Zone] ←50 bars→ ←───────────────────→ ←50 bars→

Swings in the buffer are pre-loaded but not necessarily visible. When you scroll, they're ready to display instantly.

Buffer Size Setting

Setting Name: Window Buffer (Bars)
Default: 50 bars
Range: 10-200 bars

The buffer applies to both sides of the visible area. A 50-bar buffer means 100 extra bars total (50 left + 50 right).

Choosing Buffer Size

BufferProsConsBest For
Small (10-30)Minimal memoryFrequent recalculationStatic analysis, limited RAM
Medium (40-80)Smooth scrollingMinimalMost users (recommended)
Large (100-200)Very smooth scrollingHigher memoryFast scrolling, powerful systems

Buffer and Timeframes

Buffer effectiveness varies by timeframe:

Lower timeframes (1m-15m): 50 bars covers a brief period. Consider 100+ for smooth scrolling through intraday data.

Higher timeframes (Daily+): 50 bars covers significant time. Default is usually sufficient.


Performance Mode

Additional optimization for resource-constrained situations.

What It Does

Setting Name: Performance Mode
Default: Off

When enabled:

  • Reduces visual update frequency
  • Batches rendering operations
  • Prioritizes calculation over display smoothness
  • Maintains full accuracy

What Changes

  • Label updates are less frequent
  • Line redraws are batched
  • Visual transitions are simplified
  • Color changes apply in groups

What Doesn't Change

  • Swing detection accuracy
  • Alert functionality
  • Calculation precision
  • Final visual output

You get the same results, just with less real-time visual polish.

When to Enable

Enable Performance Mode when:

  • Running multiple complex indicators simultaneously
  • Analyzing lower timeframes (1m, 5m) with long histories
  • Using older hardware
  • Experiencing any chart lag

Keep disabled when:

  • System performance is good
  • Watching swings form in real-time
  • Need immediate visual feedback
  • Using charts for presentations

Memory Management

Understanding what consumes resources:

Memory Consumers

ElementApproximate Size
Swing line~100 bytes
Label~200 bytes
Historical dataVariable
Buffer zonePre-calculated swings

Example: 1 year of daily data with ~250 swings:

  • 250 lines × 100 bytes = 25KB
  • 250 labels × 200 bytes = 50KB
  • Total: ~75KB — negligible for modern systems

The issue isn't memory per swing; it's TradingView's rendering overhead with thousands of objects.

Optimization Priority

Ranked by impact:

  1. Enable Dynamic Window — Biggest impact by far
  2. Limit visible labels — Moderate impact
  3. Enable Performance Mode — Moderate impact
  4. Adjust buffer size — Small impact

Alert & Export Processing

When any alert or export feature is enabled, the indicator scans swing history on every bar to detect new completions. This scan is the single largest processing cost outside of rendering.

What Triggers the Scan

The scan runs when any of these are enabled:

  • Swing Completion alerts (High or Low)
  • Any Overbalance alert (Pr, Px, Tr, Tx, Vr, Vx)
  • Any Velocity alert (Vel-x, Vel-r)
  • S/R Proximity alerts
  • CSV Export
  • JSON Webhook

When all of the above are disabled, the scan is skipped entirely — zero processing cost.

The Dual-Instance Strategy

If you need both real-time visual analysis AND alerts/export, consider running two instances of SSI PRO:

Instance 1 — Visual (fast)

  • All alerts OFF, CSV Export OFF, JSON Webhook OFF
  • Full swing line rendering for real-time analysis
  • No scan overhead — maximum chart responsiveness

Instance 2 — Alerts & Export (background)

  • Enable "CSV Export Only" to skip all line and label drawing
  • Enable your desired alerts and/or webhook
  • Runs the scan loop but skips rendering
  • Any processing lag doesn't affect your visual chart

This splits the workload: your visual instance stays snappy for real-time trading, while the background instance handles data processing independently.

When This Matters

The scan overhead is most noticeable on:

  • Lower timeframes (1m, 5m) with long histories
  • Charts with S/R Proximity enabled and large Max History settings
  • Multiple overbalance alerts enabled simultaneously

On daily or weekly charts, the overhead is typically negligible.


Platform Considerations

Performance varies by how you access TradingView:

Desktop App

  • Generally fastest
  • Best memory management
  • Recommended for heavy analysis

Web Browser

  • Chrome/Edge typically fastest
  • Firefox/Safari may vary
  • Clear cache periodically for best results

Mobile App

  • Most resource-constrained
  • Always use Performance Mode
  • Limit visual elements
  • Consider higher minimum swing size

Troubleshooting

Slow Chart Updates

Symptoms: Chart takes time to refresh, lag when new bars form

Solutions:

  1. Verify Dynamic Window is enabled
  2. Enable Performance Mode
  3. Increase minimum swing size (fewer swings)
  4. Reduce number of visible labels
  5. Check other indicators on the chart

Lag When Scrolling

Symptoms: Stuttering or delay when panning through history

Solutions:

  1. Increase window buffer size
  2. Enable Performance Mode
  3. Verify Dynamic Window is enabled
  4. Close unnecessary browser tabs or charts

Delayed Real-Time Updates

Symptoms: Swings appear late, labels update slowly

Solutions:

  1. Reduce number of active alerts
  2. Simplify label configuration (fewer metrics)
  3. Increase minimum swing size
  4. Close unnecessary charts in other tabs

High Memory Usage

Symptoms: Browser/app becomes sluggish over time

Solutions:

  1. Refresh the page periodically
  2. Reduce buffer size
  3. Limit max swing history setting
  4. Close other charts

Follow this flowchart to diagnose performance problems.Follow this flowchart to diagnose performance problems.


Best Practices

  1. Start with defaults — They work well for most users
  2. Enable optimizations only if needed — Don't fix what isn't broken
  3. Monitor for lag — Watch for stuttering or delays
  4. Adjust by timeframe — Lower timeframes need more optimization
  5. Consider total load — Account for other indicators and charts
  6. Refresh periodically — Long sessions accumulate overhead

The indicator is highly optimized by default. Most users will never need to adjust these settings — only modify if you experience actual performance issues.


Summary

SSI PRO maintains smooth performance through:

  • Dynamic Window: Renders only visible swings (biggest impact)
  • Buffer Zone: Pre-loads swings for smooth scrolling
  • Performance Mode: Reduces visual overhead when needed

Default settings work for most situations. Enable additional optimizations only if you encounter lag or resource constraints.