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_prob and bear_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-first
  • global_confidence_adjusted: true
  • global_weights: null
  • global_weight_presets: null
  • ch_light_global_weight: {"1d": 0.07, "1w": 0.08, "4h": 0.05}
  • ch_min_confidence_to_display: 0.35
  • ich_light_global_weight: {"1d": 0.06, "1w": 0.07, "4h": 0.04}
  • ich_min_confidence_to_display: 0.35

Calculation Pipeline

  1. Resolve base timeframe weights from preset or custom values and normalize to sum = 1.
  2. Compute quality multiplier q(tf) per timeframe.
  3. If enabled, multiply base weights by quality and re-normalize to effective weights.
  4. Compute weighted bull and bear raw totals from per-timeframe probabilities.
  5. Apply Channels additive delta with cap [-5, +5] points.
  6. Apply Ichimoku additive delta with cap [-5, +5] points.
  7. Clamp final bull score to [0,100], set bear as 100 - bull.
  8. 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 Mixed

Live Worked Example

TFBull/BearBase WeightQualityEffective WeightBull ContribBear Contrib
1W55/450.50000.9910.582332.0326.20
1D55/450.30000.6500.229212.6110.31
4H55/450.20000.8020.188510.378.48
StepValue
Raw bull (weighted)55.00
Raw bear (weighted)45.00
Channels adjustment-5.000
After CH50.00
Ichimoku adjustment-0.588
After ICH49.41
Final scoreBull 49% / Bear 51%
LabelsNeutral • Mixed

Failure / Fallback Behavior

  • If no valid timeframe rows exist, output defaults to Bull 50 / Bear 50 and Neutral / 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.