Market Pulse Transparency
How weighted global sentiment is calculated from timeframe and TA outputs.
What It Measures
Market Pulse is the cross-timeframe consensus score for directional bias. It combines 1W, 1D, and 4H engine outputs into one weighted bull/bear percentage, then maps that spread to sentiment and conviction.
Inputs
Required runtime inputs:
- Per-timeframe engine probability pairs:
bull_probandbear_prob. - Global weighting mode and presets (
global_weight_mode,global_weights). - Quality multipliers from hierarchy validity, pattern score, and decisiveness.
- Light additive overlays from Channels and Ichimoku with hard caps.
Active config values for this run:
global_weight_mode:macro-firstglobal_confidence_adjusted:trueglobal_weights:nullglobal_weight_presets:nullch_light_global_weight:{"1d": 0.07, "1w": 0.08, "4h": 0.05}ch_min_confidence_to_display:0.35ich_light_global_weight:{"1d": 0.06, "1w": 0.07, "4h": 0.04}ich_min_confidence_to_display:0.35
Calculation Pipeline
- Resolve base timeframe weights from preset or custom values and normalize to sum = 1.
- Compute quality multiplier
q(tf)per timeframe. - If enabled, multiply base weights by quality and re-normalize to effective weights.
- Compute weighted bull and bear raw totals from per-timeframe probabilities.
- Apply Channels additive delta with cap
[-5, +5]points. - Apply Ichimoku additive delta with cap
[-5, +5]points. - Clamp final bull score to
[0,100], set bear as100 - bull. - Map bull-bear spread to sentiment and conviction labels.
Formulas & Rules
base_weights = normalize(mode/preset/custom)
quality(tf) = clip(1.0 + hierarchy_term + pattern_term + decisiveness_term, 0.55, 1.35)
effective_weights(tf) = normalize(base_weights(tf) * quality(tf)) # when confidence-adjusted
bull_raw = Σ_tf [effective_weights(tf) * bull_prob(tf)]
bear_raw = Σ_tf [effective_weights(tf) * bear_prob(tf)]
ch_adjust = clip(Σ_tf [ch_weight(tf) * (ch_bull_ratio(tf) - 50)], -5, +5)
ich_adjust = clip(Σ_tf [ich_weight(tf) * (ich_bull_ratio(tf) - 50)], -5, +5)
bull_final = clip(round(bull_raw + ch_adjust + ich_adjust), 0, 100)
bear_final = 100 - bull_final
delta = bull_final - bear_final
sentiment: Bullish if delta >= 6; Bearish if delta <= -6; else Neutral
conviction: Strong if |delta| >= 30; Moderate if >= 15; else MixedLive Worked Example
| TF | Bull/Bear | Base Weight | Quality | Effective Weight | Bull Contrib | Bear Contrib |
|---|---|---|---|---|---|---|
| 1W | 22/78 | 0.5000 | 1.110 | 0.5023 | 11.05 | 39.18 |
| 1D | 23/77 | 0.3000 | 1.255 | 0.3405 | 7.83 | 26.22 |
| 4H | 17/83 | 0.2000 | 0.869 | 0.1572 | 2.67 | 13.05 |
| Step | Value |
|---|---|
| Raw bull (weighted) | 21.55 |
| Raw bear (weighted) | 78.45 |
| Channels adjustment | -5.000 |
| After CH | 16.55 |
| Ichimoku adjustment | -5.000 |
| After ICH | 11.55 |
| Final score | Bull 12% / Bear 88% |
| Labels | Bearish Bias • Strong |
Failure / Fallback Behavior
- If no valid timeframe rows exist, output defaults to
Bull 50 / Bear 50andNeutral / Mixed. - If weighted totals are invalid or zero, score is neutralized to 50/50.
- CH and ICH additive contributions are bounded to prevent override of primary engines.
- Low-confidence CH/ICH rows are ignored via confidence floor config.
Interpretation Notes
Market Pulse is a risk-state meter, not a standalone execution trigger. Use it with invalidation levels and per-engine structure context. Strong conviction indicates broad alignment; Mixed indicates transition or conflict across timeframes.