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 | 55/45 | 0.5000 | 0.991 | 0.5823 | 32.03 | 26.20 |
| 1D | 55/45 | 0.3000 | 0.650 | 0.2292 | 12.61 | 10.31 |
| 4H | 55/45 | 0.2000 | 0.802 | 0.1885 | 10.37 | 8.48 |
| Step | Value |
|---|---|
| Raw bull (weighted) | 55.00 |
| Raw bear (weighted) | 45.00 |
| Channels adjustment | -5.000 |
| After CH | 50.00 |
| Ichimoku adjustment | -0.588 |
| After ICH | 49.41 |
| Final score | Bull 49% / Bear 51% |
| Labels | Neutral • Mixed |
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.