OPEN-SOURCE SCRIPT
MTF Confluence Dashboard v2.0

MTF Confluence Dashboard v2.0 — Multi-Timeframe Scoring Engine
Free & Open Source | Works on Every Asset Class
What Is This?
Most traders know the rule: trade with the higher timeframe trend and your win rate goes up. The problem is actually doing it. You end up with five chart tabs open — 15min, 1h, 4h, Daily, Weekly — manually checking EMA positions and RSI levels on each one, trying to hold five pictures in your head at the same time. You miss one. You misread another. You end up fighting the trend anyway.
MTF Confluence Dashboard solves this in one glance.
It is a real-time scoring engine that reads five timeframes simultaneously for up to three symbols, crunches the data down into a single weighted score per symbol, and displays everything in a compact dashboard pinned to your chart corner. In three seconds you know: is the environment aligned for a trade, how strong is that alignment, and is the signal strong enough to act on.
No repaint. No lookahead. No black box. Every calculation is in the open-source code.
The Core Logic — Two Independent Votes Per Timeframe
This is not a simple "count how many timeframes agree" counter. Every timeframe casts two completely independent votes, and the results are combined into a weighted composite score.
Vote 1 — Structure (Where is price right now?)
● Close above the 5-period EMA → +1
● Close below the 5-period EMA → −1
● Equal → 0
This is the fastest, cleanest measure of short-term price structure. No crossover lag. The result updates the instant the bar closes.
Vote 2 — Momentum (Is strength building or fading?)
This is where the indicator separates itself from 99% of MTF tools on TradingView.
Most indicators use a fixed RSI threshold: RSI above 55 = bullish, below 45 = bearish. The problem? In a sustained bull market, weekly RSI sits above 55 for months. The indicator gets permanently stuck on "bullish" and never gives you a short signal — even when the trend is actually rolling over.
We use relative RSI momentum instead:
● RSI above its own EMA signal line → +1
● RSI below its own EMA signal line → −1
This measures where RSI is going, not where it is. A weekly RSI at 65 but falling from 70 votes bearish. A weekly RSI at 40 but rising from 35 votes bullish. The logic is perfectly symmetric and has no built-in directional bias. It works identically in bull markets, bear markets, and sideways chop.
Per-Timeframe Raw Score
Each timeframe produces a raw score by combining both votes:
EMA Vote RSI Vote Raw Score Meaning
+1 +1 +2 Fully bullish — both agree
+1 0 or 0 +1 Partially bullish
0 0 0 Completely neutral
−1 0 or 0 −1 Partially bearish
−1 −1 −2 Fully bearish — both agree
The Weighted Composite Score
Not all timeframes carry equal weight. Higher timeframes define the macro environment; lower timeframes only provide entry timing context.
Timeframe Default Weight Role
Weekly (TF5) 2.0× Macro trend — defines the big picture
Daily (TF4) 2.0× Primary trend — most important for swing traders
4h (TF3) 1.5× Intermediate trend
1h (TF2) 1.0× Directional context
15min (TF1) 0.5× Entry timing only
Weights are automatically normalized before scoring, so the final WScore always falls on a fixed ±20 scale regardless of how you adjust the weights. The scale is controlled by the "Score Scale" input (default: 10), meaning:
● +20 = All five timeframes fully bullish on both EMA and RSI — maximum confluence
● −20 = All five timeframes fully bearish on both EMA and RSI — maximum confluence
● 0 = Complete neutrality
All five timeframes, all weights, and the Score Scale are fully adjustable in the settings panel.
Signal Generation
A signal fires when the WScore crosses the threshold with strict greater-than logic:
● WScore > +10 → 🟢 Green triangle below the bar (Long signal)
● WScore < −10 → 🔴 Red triangle above the bar (Short signal)
The default threshold of ±10 represents exactly 50% of the maximum possible score — meaning the market needs to show majority multi-timeframe confluence before a signal is issued. This is intentionally conservative. A score of exactly ±10 does not trigger.
You can adjust the threshold to suit your style:
Threshold Effect
±7 More frequent signals, higher sensitivity, more noise
±10 (default) Balanced — majority confluence required
±14 High conviction only, fewer signals, misses some moves
Signals are perfectly symmetric. The exact same logic and threshold applies to both longs and shorts. There is no hidden bullish or bearish bias built into the system.
Signal arrows appear only for the symbol on your current chart. The other dashboard symbols are monitoring-only.
The Dashboard
A compact table is pinned to your chosen chart corner (Top Right by default). It contains:
Row 0 — Status Banner
A color-coded banner showing the current data state:
● 🟢 Green: All monitored markets are open — live data
● 🟡 Yellow: Mixed — some markets open, some closed
● 🔴 Red: Base chart session closed — all data frozen at last close
Row 1 — Header
Column labels: Symbol | TF1 | TF2 | TF3 | TF4 | TF5 | WScore | Vol
Rows 2–4 — Symbol Rows
One row per symbol. Each timeframe cell shows two characters representing the EMA and RSI votes:
Display Meaning Cell Color
▲▲ Both bullish (+2) Dark green
▲– or –▲ One bullish, one neutral (+1) Light green
–– Both neutral (0) Grey
▼– or –▼ One bearish, one neutral (−1) Light red
▼▼ Both bearish (−2) Dark red
The symbol name cell (leftmost) shows market status at a glance:
● Green background = Live data, market is open
● Red background = Latest closed data, market session has ended
Row 5 — Score Row
Full-width row showing the WScore of your current chart symbol. Turns bright green when above the long threshold, bright red when below the short threshold.
Row 6–7 — Footer & Legend
Quick reference for the vote notation and score range.
Symbol 1 Auto-Sync
By default, Symbol 1 always tracks your base chart ticker automatically. Switch your chart from MU to 700.HK and the first dashboard row updates instantly — no settings change required.
If you prefer a fixed symbol in row 1 regardless of which chart you are on, simply uncheck "Symbol 1 = Chart Symbol (auto-sync)" in the Assets settings and enter your preferred ticker manually.
Volume Filter (Optional)
The volume filter is disabled by default and is clearly labeled optional for good reason. On many assets — particularly crypto during weekends, or equities during midday lulls — volume data is unreliable and will suppress perfectly valid signals.
When enabled, the filter does not block signals outright. Instead, it raises the trigger threshold by a configurable multiplier (default ×1.3) when the current bar's volume is below its 20-period SMA. A strong signal still fires; only borderline signals near the threshold edge are filtered out. The Vol column in the dashboard shows:
● OFF — filter disabled
● OK — filter enabled, volume passes
● ×1.3 — filter active, threshold has been raised
Only enable this if you have verified that your asset's volume data is consistent and reliable.
Live vs. Closed Market Detection
The indicator automatically detects whether each symbol's market is currently open or closed, with no hardcoded market hours and no asset-type lists. It checks the age of each symbol's most recent bar on TF1:
● If the bar is more than 35 minutes old during a realtime session → symbol is flagged as closed (red background)
● Crypto symbols are never flagged as closed since they trade 24/7
● When a closed market reopens → status clears automatically, live data resumes
This works correctly across all asset classes and broker prefixes: US stocks, Hong Kong stocks, forex, gold, commodities, indices, crypto.
What This Indicator Is — And Is Not
✅ What it is: A multi-timeframe environment filter. It tells you whether the macro conditions are aligned for a long, a short, or neither. It processes all five timeframes simultaneously so you never have to tab between charts again.
❌ What it is not: A precise entry signal. It does not tell you which exact candle to enter on, where to put your stop, or how large your position should be.
The indicator is designed to be the first layer of your trading system. Use it to filter out counter-trend trades before you even begin looking for an entry. Combine it with your own entry method — volume spread analysis, liquidity sweeps, support/resistance levels, or any other technique you prefer.
No Repaint. No Lookahead. No Surprises.
● All request.security() calls use lookahead=barmerge.lookahead_off — future bars have zero influence on current calculations
● Signals lock permanently the moment the triggering bar closes and never change on historical bars
● Every formula, every weight, every condition is visible in the open-source Pine Script code
Settings Reference
Group Parameter Default Description
Assets Symbol 1 Auto-Sync ON Follows base chart ticker automatically
Assets Symbol 1 / 2 / 3 BTCUSD / AAPL / SPY Symbols to monitor in the dashboard
Timeframes TF1–TF5 15 / 60 / 240 / D / W Five timeframes to score (TF1 smallest → TF5 largest)
Scoring — EMA Fast EMA Period 5 Period of the structure EMA
Scoring — RSI RSI Period 7 RSI lookback period
Scoring — RSI RSI Signal Period 20 EMA period applied to RSI for momentum vote
Scoring — TF Weights Weight TF1–TF5 0.5 / 1.0 / 1.5 / 2.0 / 2.0 Relative weight per timeframe
Scoring — TF Weights Score Scale 10 Controls the ±20 output range
Signal Signal Threshold 10.0 WScore must strictly exceed this to fire
Signal Show Arrows ON Display signal triangles on the chart
Volume Filter Enable OFF Raise threshold when volume is below SMA
Volume Filter Vol SMA Period 20 Lookback for volume average
Volume Filter Vol Multiplier 1.3 Threshold multiplier when volume is low
Dashboard Position Top Right Dashboard placement on chart
Dashboard Show Vol Column ON Show/hide the Vol status column
Disclaimer
This indicator is for informational and educational purposes only. It is not financial advice or a recommendation to buy or sell any asset. Past performance does not guarantee future results. Always do your own research and manage your own risk.
Open Source — Mozilla Public License 2.0
Copyright © 2026 WiseManAlgo. Free to use, study, modify, and distribute with attribution.
Free & Open Source | Works on Every Asset Class
What Is This?
Most traders know the rule: trade with the higher timeframe trend and your win rate goes up. The problem is actually doing it. You end up with five chart tabs open — 15min, 1h, 4h, Daily, Weekly — manually checking EMA positions and RSI levels on each one, trying to hold five pictures in your head at the same time. You miss one. You misread another. You end up fighting the trend anyway.
MTF Confluence Dashboard solves this in one glance.
It is a real-time scoring engine that reads five timeframes simultaneously for up to three symbols, crunches the data down into a single weighted score per symbol, and displays everything in a compact dashboard pinned to your chart corner. In three seconds you know: is the environment aligned for a trade, how strong is that alignment, and is the signal strong enough to act on.
No repaint. No lookahead. No black box. Every calculation is in the open-source code.
The Core Logic — Two Independent Votes Per Timeframe
This is not a simple "count how many timeframes agree" counter. Every timeframe casts two completely independent votes, and the results are combined into a weighted composite score.
Vote 1 — Structure (Where is price right now?)
● Close above the 5-period EMA → +1
● Close below the 5-period EMA → −1
● Equal → 0
This is the fastest, cleanest measure of short-term price structure. No crossover lag. The result updates the instant the bar closes.
Vote 2 — Momentum (Is strength building or fading?)
This is where the indicator separates itself from 99% of MTF tools on TradingView.
Most indicators use a fixed RSI threshold: RSI above 55 = bullish, below 45 = bearish. The problem? In a sustained bull market, weekly RSI sits above 55 for months. The indicator gets permanently stuck on "bullish" and never gives you a short signal — even when the trend is actually rolling over.
We use relative RSI momentum instead:
● RSI above its own EMA signal line → +1
● RSI below its own EMA signal line → −1
This measures where RSI is going, not where it is. A weekly RSI at 65 but falling from 70 votes bearish. A weekly RSI at 40 but rising from 35 votes bullish. The logic is perfectly symmetric and has no built-in directional bias. It works identically in bull markets, bear markets, and sideways chop.
Per-Timeframe Raw Score
Each timeframe produces a raw score by combining both votes:
EMA Vote RSI Vote Raw Score Meaning
+1 +1 +2 Fully bullish — both agree
+1 0 or 0 +1 Partially bullish
0 0 0 Completely neutral
−1 0 or 0 −1 Partially bearish
−1 −1 −2 Fully bearish — both agree
The Weighted Composite Score
Not all timeframes carry equal weight. Higher timeframes define the macro environment; lower timeframes only provide entry timing context.
Timeframe Default Weight Role
Weekly (TF5) 2.0× Macro trend — defines the big picture
Daily (TF4) 2.0× Primary trend — most important for swing traders
4h (TF3) 1.5× Intermediate trend
1h (TF2) 1.0× Directional context
15min (TF1) 0.5× Entry timing only
Weights are automatically normalized before scoring, so the final WScore always falls on a fixed ±20 scale regardless of how you adjust the weights. The scale is controlled by the "Score Scale" input (default: 10), meaning:
● +20 = All five timeframes fully bullish on both EMA and RSI — maximum confluence
● −20 = All five timeframes fully bearish on both EMA and RSI — maximum confluence
● 0 = Complete neutrality
All five timeframes, all weights, and the Score Scale are fully adjustable in the settings panel.
Signal Generation
A signal fires when the WScore crosses the threshold with strict greater-than logic:
● WScore > +10 → 🟢 Green triangle below the bar (Long signal)
● WScore < −10 → 🔴 Red triangle above the bar (Short signal)
The default threshold of ±10 represents exactly 50% of the maximum possible score — meaning the market needs to show majority multi-timeframe confluence before a signal is issued. This is intentionally conservative. A score of exactly ±10 does not trigger.
You can adjust the threshold to suit your style:
Threshold Effect
±7 More frequent signals, higher sensitivity, more noise
±10 (default) Balanced — majority confluence required
±14 High conviction only, fewer signals, misses some moves
Signals are perfectly symmetric. The exact same logic and threshold applies to both longs and shorts. There is no hidden bullish or bearish bias built into the system.
Signal arrows appear only for the symbol on your current chart. The other dashboard symbols are monitoring-only.
The Dashboard
A compact table is pinned to your chosen chart corner (Top Right by default). It contains:
Row 0 — Status Banner
A color-coded banner showing the current data state:
● 🟢 Green: All monitored markets are open — live data
● 🟡 Yellow: Mixed — some markets open, some closed
● 🔴 Red: Base chart session closed — all data frozen at last close
Row 1 — Header
Column labels: Symbol | TF1 | TF2 | TF3 | TF4 | TF5 | WScore | Vol
Rows 2–4 — Symbol Rows
One row per symbol. Each timeframe cell shows two characters representing the EMA and RSI votes:
Display Meaning Cell Color
▲▲ Both bullish (+2) Dark green
▲– or –▲ One bullish, one neutral (+1) Light green
–– Both neutral (0) Grey
▼– or –▼ One bearish, one neutral (−1) Light red
▼▼ Both bearish (−2) Dark red
The symbol name cell (leftmost) shows market status at a glance:
● Green background = Live data, market is open
● Red background = Latest closed data, market session has ended
Row 5 — Score Row
Full-width row showing the WScore of your current chart symbol. Turns bright green when above the long threshold, bright red when below the short threshold.
Row 6–7 — Footer & Legend
Quick reference for the vote notation and score range.
Symbol 1 Auto-Sync
By default, Symbol 1 always tracks your base chart ticker automatically. Switch your chart from MU to 700.HK and the first dashboard row updates instantly — no settings change required.
If you prefer a fixed symbol in row 1 regardless of which chart you are on, simply uncheck "Symbol 1 = Chart Symbol (auto-sync)" in the Assets settings and enter your preferred ticker manually.
Volume Filter (Optional)
The volume filter is disabled by default and is clearly labeled optional for good reason. On many assets — particularly crypto during weekends, or equities during midday lulls — volume data is unreliable and will suppress perfectly valid signals.
When enabled, the filter does not block signals outright. Instead, it raises the trigger threshold by a configurable multiplier (default ×1.3) when the current bar's volume is below its 20-period SMA. A strong signal still fires; only borderline signals near the threshold edge are filtered out. The Vol column in the dashboard shows:
● OFF — filter disabled
● OK — filter enabled, volume passes
● ×1.3 — filter active, threshold has been raised
Only enable this if you have verified that your asset's volume data is consistent and reliable.
Live vs. Closed Market Detection
The indicator automatically detects whether each symbol's market is currently open or closed, with no hardcoded market hours and no asset-type lists. It checks the age of each symbol's most recent bar on TF1:
● If the bar is more than 35 minutes old during a realtime session → symbol is flagged as closed (red background)
● Crypto symbols are never flagged as closed since they trade 24/7
● When a closed market reopens → status clears automatically, live data resumes
This works correctly across all asset classes and broker prefixes: US stocks, Hong Kong stocks, forex, gold, commodities, indices, crypto.
What This Indicator Is — And Is Not
✅ What it is: A multi-timeframe environment filter. It tells you whether the macro conditions are aligned for a long, a short, or neither. It processes all five timeframes simultaneously so you never have to tab between charts again.
❌ What it is not: A precise entry signal. It does not tell you which exact candle to enter on, where to put your stop, or how large your position should be.
The indicator is designed to be the first layer of your trading system. Use it to filter out counter-trend trades before you even begin looking for an entry. Combine it with your own entry method — volume spread analysis, liquidity sweeps, support/resistance levels, or any other technique you prefer.
No Repaint. No Lookahead. No Surprises.
● All request.security() calls use lookahead=barmerge.lookahead_off — future bars have zero influence on current calculations
● Signals lock permanently the moment the triggering bar closes and never change on historical bars
● Every formula, every weight, every condition is visible in the open-source Pine Script code
Settings Reference
Group Parameter Default Description
Assets Symbol 1 Auto-Sync ON Follows base chart ticker automatically
Assets Symbol 1 / 2 / 3 BTCUSD / AAPL / SPY Symbols to monitor in the dashboard
Timeframes TF1–TF5 15 / 60 / 240 / D / W Five timeframes to score (TF1 smallest → TF5 largest)
Scoring — EMA Fast EMA Period 5 Period of the structure EMA
Scoring — RSI RSI Period 7 RSI lookback period
Scoring — RSI RSI Signal Period 20 EMA period applied to RSI for momentum vote
Scoring — TF Weights Weight TF1–TF5 0.5 / 1.0 / 1.5 / 2.0 / 2.0 Relative weight per timeframe
Scoring — TF Weights Score Scale 10 Controls the ±20 output range
Signal Signal Threshold 10.0 WScore must strictly exceed this to fire
Signal Show Arrows ON Display signal triangles on the chart
Volume Filter Enable OFF Raise threshold when volume is below SMA
Volume Filter Vol SMA Period 20 Lookback for volume average
Volume Filter Vol Multiplier 1.3 Threshold multiplier when volume is low
Dashboard Position Top Right Dashboard placement on chart
Dashboard Show Vol Column ON Show/hide the Vol status column
Disclaimer
This indicator is for informational and educational purposes only. It is not financial advice or a recommendation to buy or sell any asset. Past performance does not guarantee future results. Always do your own research and manage your own risk.
Open Source — Mozilla Public License 2.0
Copyright © 2026 WiseManAlgo. Free to use, study, modify, and distribute with attribution.
Скрипт с открытым кодом
В истинном духе TradingView, создатель этого скрипта сделал его открытым исходным кодом, чтобы трейдеры могли проверить и убедиться в его функциональности. Браво автору! Вы можете использовать его бесплатно, но помните, что перепубликация кода подчиняется нашим Правилам поведения.
Отказ от ответственности
Информация и публикации не предназначены для предоставления и не являются финансовыми, инвестиционными, торговыми или другими видами советов или рекомендаций, предоставленных или одобренных TradingView. Подробнее читайте в Условиях использования.
Скрипт с открытым кодом
В истинном духе TradingView, создатель этого скрипта сделал его открытым исходным кодом, чтобы трейдеры могли проверить и убедиться в его функциональности. Браво автору! Вы можете использовать его бесплатно, но помните, что перепубликация кода подчиняется нашим Правилам поведения.
Отказ от ответственности
Информация и публикации не предназначены для предоставления и не являются финансовыми, инвестиционными, торговыми или другими видами советов или рекомендаций, предоставленных или одобренных TradingView. Подробнее читайте в Условиях использования.