Skip to content
ChartTailor
WorkServicesPricingField NotesAbout Start a build
← Pine Discoveries

Confluence is weaker when every indicator is asking the same question

A Pine dashboard can make ten signals look independent even when they all measure the same underlying move.

Confluence sounds reassuring. If several indicators agree, the signal feels stronger. In practice, many confluence dashboards are just the same question asked ten ways. Momentum, moving averages, trend color, candle strength, and a breakout flag may all be reacting to the same price impulse. The dashboard looks diversified while the logic is highly correlated.

It keeps coming up because Pine makes it easy to stack confirmation. A few more plots, a few more table cells, and the tool feels more sophisticated. The hard part is proving that the extra confirmation is actually adding information.

Why this catches people

The pattern that causes trouble is counting indicators instead of counting independent evidence. A fast EMA cross, an RSI push, a MACD histogram change, and a candle close above a range may all be different expressions of recent price acceleration. If they always light up together, the script has not found confluence. It has built a louder version of one condition.

This matters for clients because a busy dashboard can feel safer. Nontechnical users often trust a panel with more agreement. If the agreement is duplicated evidence, the panel may increase confidence without increasing signal quality.

The Pine bit

The Pine detail is not a single function. It is the way the script groups conditions. I like to separate evidence types before counting them. Trend, volatility, location, volume, session context, and higher-timeframe alignment are more meaningfully different than five momentum derivatives. Even then, the code should make clear which conditions are filters and which are triggers.

A useful design is to show category agreement rather than raw indicator count. Three categories agreeing can be more meaningful than eight near-duplicate signals agreeing.

trendOk = close > ta.ema(close, 50)
locationOk = close > ta.highest(high[1], 20)
volumeOk = volume > ta.sma(volume, 20)

confluenceScore = (trendOk ? 1 : 0) + (locationOk ? 1 : 0) + (volumeOk ? 1 : 0)

How I handle it in builds

When I build dashboards, I try to keep the visual density honest. If several signals are related, I group them instead of letting each one claim a full vote. I avoid making every agreeing cell the same loud color. The chart should help the trader scan, not convince them that a crowded panel equals an edge.

This is a good place for plain-language labels. A user does not need to know every formula. They do need to know whether the dashboard is saying trend, location, timing, or volatility. That is easier to trust than a wall of green boxes.

Where this shows up

The fastest way to test duplicate confluence is to remove one condition at a time and see whether the final signal changes. If removing an indicator almost never changes the signal, it is probably not adding independent evidence. It may still be useful visually, but it should not get a full vote.

I watch for shared inputs. If five conditions all depend on the same moving average length or the same lookback window, optimization can make the dashboard look more robust than it is. The script is really tuning one family of assumptions. A mature confluence tool should make that visible by grouping related evidence and limiting how much one family can dominate the final state.

I like to show the user why a signal passed, not only that it passed. A compact table with category names can do more than a large panel of raw indicator states. If the final signal came from trend, location, and volume, say that. If it came from five momentum derivatives, the table should not pretend that the evidence was broader than it was.

How I test it

I test design by removing things. If removing a panel, signal, or filter does not change the user’s decision, it may be decoration rather than function. Mature indicator design is not about showing everything the script can calculate. It is about showing what changes the workflow.

Checks before I trust it

  • Group related indicators before counting agreement.
  • Separate trigger conditions from filters.
  • Avoid giving duplicate momentum signals separate full votes.
  • Use dashboard categories that a nontechnical user can understand.
  • Test whether removing a condition actually changes decisions.

What matters here is that confluence is not a number of lights. It is a number of independent reasons. Pine can display either one, so the script has to choose carefully.