KB / alert
Bullish Signal Alignment
Last verified
Auto-generated. This article is rebuilt from
app/signals/config/alert_thresholds.jsonbyscripts/build_alerts_kb.py. Edit the alert config and re-run the script — do not edit this file directly.
Bullish Signal Alignment
Alert ID: BULL_ALIGNMENT
Category: composite
Cross-detection: no
Severity
INFO — positive signal or notable event; no action needed
Trigger condition
{
"type": "and",
"conditions": [
{
"field": "dix",
"op": "gte",
"value": 0.45
},
{
"field": "gex",
"op": "gt",
"value": 0
},
{
"field": "hy_oas",
"op": "lt",
"value": 3.0
},
{
"field": "pct_above_50sma",
"op": "gt",
"value": 50
}
]
}
All of the following must hold:
dix>= 0.45gex> 0hy_oas< 3.0pct_above_50sma> 50
Message template
Full bullish alignment: DIX {dix:.3f}, GEX +{gex:.1f}B, HY OAS {hy_oas:.2f}%, breadth {pct_above_50sma:.0f}%.
Rendered with the current signals dict via Python str.format. Placeholders that fail to resolve fall back to the raw template (see _format_message in app/signals/alerts.py).
Cooldown / dedup
- Cooldown: none. Re-evaluation on every cycle.
- Dedup: at most one
active(oracknowledged) row peralert_idat a time. Re-firing while active updatesfired_atand the message but keeps the originalfirst_fired_at.
Notifies
- Active alert feed (
/api/v1/alerts/active,/alerts/summary). - SSE stream (
/api/v1/agents/stream) for real-time consumers. alert_firedwebhook on first fire.alert_resolvedwebhook when the condition clears (non-cross-detection alerts only).