In This Article
- The question this tool exists to answer
- The per-timeframe scoring formula — exact weights
- Why MACD gets the highest weight and RSI gets the lowest
- Volume and volatility as multipliers, not additive scores
- The price structure and S/R adjustment layer
- The seven trend levels and their thresholds
- How strategy signals are determined — the 1D gatekeeper
- Why WAIT signals exist and why they matter
- Why this runs in the browser with no server
- What this tool will not tell you
- How to actually use it
The question this tool exists to answer
Before I built this, I had a habit I suspect most traders share: when I wanted to take a trade, I would look at the chart that confirmed it. Bullish on BTC? Check the 4H — yes, looks good. Ignore the daily, which is clearly in a downtrend. Ignore the weekly, which hasn't made a higher high in eight weeks. Focus on the 4H. Enter.
This is timeframe selection bias. It's the most common and most expensive habit in retail trading, and it's invisible from the inside because you're always looking at a chart that says what you want to hear.
The MTF Strategy Dashboard exists to remove that choice. You put in a ticker and it tells you what every timeframe says simultaneously, using the same calculation on each one. You can't choose to look at the bullish one and ignore the bearish ones — they're all on screen at once. The strategy signal at the bottom of each card is only positive when multiple timeframes agree. When they don't, it says NO TRADE and gives no alternative interpretation.
The per-timeframe scoring formula — exact weights
Each of the five timeframes — 30m, 1H, 4H, 1D, 1W — goes through an identical scoring function. The same calculation, the same weights, no timeframe receives preferential treatment at the indicator level. The differentiation happens at the strategy signal stage, not the score stage.
The base score combines five indicator readings, each weighted independently:
base_trend = (ma_trend × 0.20) // Price vs SMA20
+ (price_trend × 0.15) // Current close vs previous close
+ (rsi_trend × 0.10) // RSI(14) above or below 50
+ (hl_trend × 0.08) // Close vs candle midpoint (H+L)/2
+ (macd_trend × 0.25) // MACD line above or below signal line
// Base range: -0.78 to +0.78 (sum of all weights)
| Indicator | Weight | What it measures | Why this weight |
|---|---|---|---|
| MACD crossover | 0.25 | MACD line vs signal line — bullish when MACD is above | MACD captures momentum shift across medium-term price action. It's a composite of two EMAs, so it inherently smooths noise better than any single-period indicator. Highest weight because it's the least susceptible to single-candle spikes. |
| MA trend (SMA20) | 0.20 | Close vs 20-period simple moving average | The SMA20 is the most widely watched short-term trend indicator across retail and institutional desks. Price above it means the market is currently paying above-average prices — a basic structural positive. Second weight because it's clean, robust, and universally referenced. |
| Price trend | 0.15 | Current close vs previous close | Raw directional momentum — is the last completed candle up or down? Low weight because it's the noisiest input. A single red candle in a bull trend flips this to -1, which is why it can't carry more weight without generating too many false readings. |
| RSI(14) | 0.10 | 14-period RSI above or below the 50 midline | Using RSI as a midline indicator — above 50 bullish, below 50 bearish — not as an overbought/oversold signal. Lowest meaningful weight because RSI at this level is essentially a smoothed version of price direction. On its own it adds little that MACD and MA trend don't already cover, but it does serve as a tiebreaker in ambiguous conditions. |
| HL midpoint | 0.08 | Close vs (High+Low)/2 of current candle | Where did price close within the candle's range? Closing in the upper half of a candle's range shows buying pressure dominated intrabar. Lowest weight — this is a micro-signal useful for confirming conviction on the current candle only, not directional strength over time. |
Why MACD gets the highest weight and RSI gets the lowest
This is the design decision I get challenged on most. The intuition most traders have is that RSI should carry significant weight — it's one of the most famous indicators in existence. Here's why I disagree with that intuition.
RSI is a bounded oscillator. At the 50-midline level, all it tells you is whether recent gains outpace recent losses. That is already partially captured by price trend and MA trend. The three inputs are correlated — when price is above the SMA20 and the last close is up, RSI above 50 is nearly guaranteed. In a scoring system, correlated inputs that add a third vote to something two inputs already agree on inflate confidence without adding information.
MACD is different because it measures the relationship between two exponential moving averages — 12-period vs 26-period. The gap between those averages captures acceleration, not just direction. A market can have price above SMA20, last close up, RSI above 50, and still have a narrowing MACD gap — which is an early warning that momentum is fading even though every other indicator looks positive. That divergence between direction and momentum is where MACD earns its weight.
The practical implication: When MACD disagrees with the other indicators — price above SMA20 but MACD below its signal line, for example — the overall score will be lower than if all indicators agreed. That disagreement is itself useful information and should make you more cautious, not less.
Volume and volatility as multipliers, not additive scores
After the base score is calculated, two environmental factors are applied as multipliers. This is a deliberate architectural choice that took several iterations to get right.
The first version of the tool treated volume as an additive component — high volume added points, low volume subtracted them. The problem was that it produced artificially high scores on high-volume days regardless of direction, and discounted valid signals on low-volume days during Asian session hours. Volume as an additive makes no sense unless you already know the direction it's confirming. Volume as a multiplier scales the existing directional signal up or down based on whether the market is participating in that direction.
if volume > 1.2× avg_volume → × 1.3 // high participation: amplify signal
if volume < 0.8× avg_volume → × 0.6 // low participation: dampen signal
else → × 1.0 // normal: no adjustment
// Volatility filter (ATR vs 20-bar average ATR)
if ATR_ratio > 1.5 → × 0.5 // extremely elevated vol: halve signal weight
if ATR_ratio > 1.0 → × 0.8 // above-average vol: reduce signal weight
if ATR_ratio > 0.5 → × 1.0 // normal vol: no adjustment
if ATR_ratio < 0.5 → × 1.2 // low vol / compression: strengthen signal
The volatility filter has a counterintuitive property worth understanding: low volatility makes signals stronger, not weaker. When ATR is below half its recent average, the tool applies a 1.2× boost to the score. This reflects a real market phenomenon — when Bitcoin compresses into a tight range with declining ATR, the eventual breakout from that compression tends to be clean and directional. A bullish score during low-volatility compression is a more reliable precursor to an upside move than the same bullish score during a volatile, choppy session.
The high-volatility penalty works the same way in reverse. A strong-looking score during a high-ATR period is less reliable because the indicators are reacting to whipsaw price action, not genuine directional commitment. Halving the signal weight during extreme volatility prevents the tool from producing confident readings during the exact conditions when confidence is least warranted.
The price structure and S/R adjustment layer
After the base score and before the multipliers, two structural adjustments are added as flat values:
if higher_high AND higher_low → +0.5 // confirmed uptrend structure
if lower_high AND lower_low → −0.5 // confirmed downtrend structure
else → 0.0 // mixed structure
// S/R pivot adjustment (10-bar pivot lookback)
if close > pivot_high × 0.98 → −0.3 // near resistance: reduce bullish conviction
if close < pivot_low × 1.02 → +0.3 // near support: increase bullish conviction
The structure adjustment is the largest single additive in the model. A confirmed higher-high, higher-low pattern adds +0.5 before multipliers are applied — that can be enough to lift a borderline Bullish reading into Strong Bull territory. The reason for the large weight is that HH/HL is the textbook definition of an uptrend, not an opinion about momentum. It's the most objective input in the entire model.
The S/R adjustment is intentionally modest at ±0.3. Proximity to a pivot high doesn't mean price won't break through — it just means there's structural resistance there that should reduce conviction slightly. Many valid breakout trades happen when price is near a pivot high. The adjustment nudges the score down, it doesn't block the signal.
The seven trend levels and their thresholds
The final per-timeframe score is capped between −1.5 and +1.5, then mapped to one of seven named trend levels:
| Strong Bull | score > +0.40 | All or most indicators aligned bullish with volume and structure confirmation |
| Bullish | score > +0.15 | Majority of indicators bullish, reasonable confirmation |
| Weak Bull | score > +0.05 | Marginal bullish lean — treat with caution |
| Neutral | −0.05 to +0.05 | No meaningful directional edge |
| Weak Bear | score < −0.05 | Marginal bearish lean |
| Bearish | score < −0.15 | Majority of indicators bearish |
| Strong Bear | score < −0.40 | All or most indicators aligned bearish |
The neutral band (−0.05 to +0.05) is deliberately narrow. A score of +0.06 is technically "Weak Bull" but practically indistinguishable from noise. This is why the strategy signal logic uses isBullish() — which includes Weak Bull — but treats Weak Bull signals from higher timeframes differently than Strong Bull or Bullish readings when calculating the checkmark count.
How strategy signals are determined — the 1D gatekeeper
The strategy signal at the bottom of each card is not a simple average of the five timeframe scores. It follows a decision tree with the 1D timeframe acting as a gatekeeper — no long signal is possible without the daily being bullish.
✅✅✅ LONG 30m–1W
1D bullish + 1W bullish + at least 2 of (30m, 1H, 4H) bullish. Highest conviction. All major timeframes aligned.
✅✅ LONG 30m–4H
1D bullish + at least 2 of (30m, 1H, 4H) bullish. Weekly not yet confirmed — valid swing entry but without macro support.
⏳ LONG 1D–1W
1D bullish + 1W bullish but swing TFs not aligned yet. WAIT — don't enter until 30m–4H confirm.
💵 NO TRADE
Timeframes conflicting or 1D not bullish. No edge in either direction. Stay flat.
SHORT variants follow the identical logic in reverse — SHORT 30m–1W requires 1D and 1W bearish with 2+ swing TFs bearish, and so on.
The 1D requirement is the most important architectural decision in the whole tool. Why does a 30-minute signal require daily confirmation? Because the daily timeframe is where the majority of professional and institutional traders set their directional bias. Trading against the daily trend on a 30-minute chart means trading against the larger book. It produces more frequent entries, lower win rates, and smaller average wins — the signature of a timeframe mismatch problem.
The 2-of-3 requirement on the swing timeframes (30m, 1H, 4H) rather than requiring all three is also deliberate. Requiring all three simultaneously to be bullish sets too high a bar — the 30m and 4H will frequently be out of sync during normal pullbacks within a valid trend. Requiring just two of the three is enough to confirm alignment without filtering out valid setups during minor timeframe disagreements.
Why WAIT signals exist and why they matter
"LONG 1D–1W" is not a trade signal. It's a preparation signal. The daily and weekly are bullish — the macro structure is right — but the swing timeframes (30m, 1H, 4H) haven't aligned yet. This means one of two things: either the pullback hasn't finished yet and the entry point hasn't arrived, or the swing timeframes are consolidating before the next leg.
I included WAIT signals specifically because the temptation when you see a bullish daily and weekly is to enter immediately. The entire premise of multi-timeframe analysis is that you use the higher timeframe to identify direction and the lower timeframe to time the entry. A WAIT signal is the tool telling you the direction is confirmed but the timing isn't.
The most expensive misuse of this tool: entering on a LONG 1D–1W signal without waiting for swing timeframe confirmation. I have done this. The daily and weekly look so convincingly bullish that entering at any price feels justified. Then the 4H and 1H spend another week in a descending structure before finally turning, and you're sitting in a drawdown the whole time with a position you entered too early.
The WAIT signal means wait. It is not a soft entry signal. It is a do-nothing signal with a plan attached.
Why this runs in the browser with no server
Unlike the BTC Bias Dashboard, which routes all data through a Netlify serverless function, the MTF Strategy Dashboard calls the Binance API directly from your browser. This was a deliberate choice, but it has a trade-off you should know about.
The tool fetches 220 klines per timeframe per symbol. With 5 timeframes and 4 default symbols, that's 20 API calls at load. If this went through a serverless function, those 20 calls would come from a single Netlify server IP — which Binance rate-limits aggressively. Running in the browser distributes those calls across user IPs globally, which means rate-limiting is virtually never an issue.
The trade-off is that Binance's browser CORS policy is permissive for read-only market data endpoints, but it means the tool can't access any authenticated endpoints — so there's no account data, no order placement, nothing that requires an API key. For a read-only analysis tool that's fine. If Binance ever tightens their CORS policy on klines endpoints, the tool would need to move to a proxy — the same problem the BTC Bias Dashboard already solved.
The symbol list is saved to your browser's localStorage. This means your custom tickers — whatever you've added to the dashboard — persist between sessions without any server, database, or login. It also means clearing your browser data clears your symbol list. A minor inconvenience in exchange for zero backend infrastructure.
What this tool will not tell you
It cannot tell you which price level to enter at. A "LONG 30m–4H" signal on Bitcoin tells you the timeframes are aligned for longs. It doesn't tell you whether $82,000 or $79,500 is the better entry. That requires your own analysis of support levels, order blocks, and candle structure on a lower timeframe than the dashboard covers.
It doesn't know about fundamentals or news. A Fed rate decision, an ETF approval or rejection, or a major exchange hack will move price in ways that no combination of EMAs, RSI, and MACD can anticipate. On the day of a major macro event, treat any dashboard reading with significantly more scepticism than usual.
The 5-minute refresh creates a knowledge gap. The dashboard auto-refreshes every 5 minutes. In a fast-moving session, a 4H or daily candle can close bullishly and then reverse during the next 4 minutes without the tool updating. The reading you see is accurate as of the last refresh, not necessarily accurate right now.
Weak Bull and Weak Bear readings are noise at higher timeframes. A Weak Bull on the 30m is fine — it's a low-conviction short-term signal. A Weak Bull on the weekly means nothing tradeable. Weekly signals should be Bullish or Strong Bull before you treat them as meaningful confirmation. The strategy signal logic uses isBullish() which includes Weak Bull, so a weekly Weak Bull does contribute to a LONG 30m–1W signal — but with lower checkmark count, which is your visual cue to reduce conviction.
How to actually use it
The workflow I use for swing trade research:
- Check the strategy signal first. NO TRADE means I close the tab immediately. WAIT means I bookmark the asset and come back tomorrow. LONG or SHORT means I'm interested and will go deeper.
- Read the checkmark count. Three checkmarks (✅✅✅) means all five timeframes are aligned. Two checkmarks means the daily and at least two swing timeframes agree but the weekly isn't confirming. One checkmark on a LONG 1D–1W is the weakest valid setup — treat it as early-stage information, not an entry.
- Look at each individual timeframe score. A LONG 30m–4H signal where the 4H is only "Weak Bull" (+0.06) is a different trade to one where the 4H is "Strong Bull" (+0.82). The label that drives the strategy signal classification hides the magnitude. Always look at the actual score.
- Cross-reference with the Signal Aggregator for BTC. If this tool says LONG on BTC and the Signal Aggregator score is below 5, there's a conflict worth investigating before entering.
- Use TradingView for the entry. This tool identifies conditions and alignment. The actual entry — the candle pattern, the level, the trigger — happens on your charting platform at a lower timeframe than the dashboard shows.
On adding custom tokens: The tool accepts any Binance USDT trading pair. This is useful but carries a risk — lower-cap altcoins on Binance have significantly less volume and liquidity than BTC and ETH, which means the volume multiplier and volatility filter behave differently. A 1.2× above-average volume on a low-cap altcoin may represent just a few hundred thousand dollars of real flow. The same multiplier on BTC represents billions. The signals are mathematically identical; the underlying market quality is not.
Use the Live Tool
The MTF Strategy Dashboard is free, analyses any Binance token across all five timeframes, and refreshes every 5 minutes. No sign-up required.
Open MTF Strategy Dashboard →Related Tools & Reading
- BTC Signal Aggregator — the MTF signal feeds into this as one of five combined indicators
- How the Signal Aggregator works — how the MTF score is weighted at 1.5× in the combined verdict
- How the BTC Bias Dashboard works — the derivatives-side complement to this technical analysis tool
- Trading Calculator — position sizing once the MTF alignment confirms direction
- Moving Averages: EMA vs SMA Guide — background on the SMA20 and MACD EMAs used in the scoring