Files
signal-platform/regime-monitor-anforderungen.md
dennisthiessen ebff19940b
Deploy / lint (push) Successful in 7s
Deploy / test (push) Successful in 46s
Deploy / deploy (push) Successful in 27s
feat: add standalone AI/Tech regime-change monitor tab
A new /regime tab scoring how far the AI/Tech bull regime has deteriorated
toward a re-rating as a single 0-100 index with per-signal breakdown and a
7/30-day trend. Intentionally decoupled: nothing reads its output to gate or
score trades — the daily-pipeline membership is scheduling only.

- regime_monitor_service: price sub-scores (P1-P6 via Alpaca, like
  market_regime), VIX + HY credit spreads via a small FRED helper, weighted
  aggregation over available signals (missing source -> n/a, dropped from the
  denominator), one snapshot row/day, and a ~90-day history backfill by
  replaying the already-fetched series as-of each past day.
- F1/F3 fundamentals proposed by the configured grounded LLM (reuses
  sentiment_provider_service config resolution), with a manual override + lock.
- regime_snapshots table (migration 011); endpoints on the existing market
  router; admin-editable weights/threshold; standalone /regime page.

Data needs: prices via Alpaca, VIX/credit via FRED (optional key — signals show
n/a without it). No LLM needed for history.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 11:51:45 +02:00

4.9 KiB
Raw Permalink Blame History

Anforderungsdokument — "AI/Tech Regime Change Monitor"

Ziel: Ein persönliches Hobby-Tool, das fundamentale und kursbasierte Signale überwacht und einen einzigen Wert von 0100 ausgibt: die geschätzte Wahrscheinlichkeit, dass das KI/Tech-Bullenregime in eine Neubewertung kippt. Zweck: Disziplinierte Ausstiegs-Entscheidung für spekulative Einzelpositionen (NVDA, MSFT). Kein Auto-Trading, keine Anlageberatung, keine Timing-Garantie.


1. Scope

  • Beobachtete Instrumente: SMH (Halbleiter, schnelles Frühsignal) + QQQ (breiter, Bestätigung) als Regime-Sensoren; SPY, RSP (Marktbreite-Kontext); VIX (Volatilität); Hyperscaler GOOGL, AMZN, META, MSFT (Capex-Signal). Bewusst keine Einzelaktien-Trades — das Tool misst das Regime, nicht einzelne Titel.
  • Optionaler "Kanarienvogel": NVDA als reiner Frühindikator-Input (Lead-Aktie des Sektors, dreht oft vor SMH) — abschaltbar, keine Entscheidungsposition.
  • Read-only. Tool gibt nur einen Score + Aufschlüsselung aus, führt keine Orders aus.
  • Lauf-Kadenz: Kurssignale täglich, Fundamentalsignale quartalsweise (bzw. bei Earnings).

2. Output

  • Gesamtscore 0100 (0 = Regime stabil, 100 = Bruch im Gange) mit Label-Band:
    • 030 stabil · 3060 beobachten · 6080 erhöht · 80100 Bruch sichtbar
  • Aufschlüsselung pro Signal (Sub-Score 0100 + Gewicht + Beitrag).
  • Trend: Veränderung des Gesamtscores über 7 und 30 Tage (steigend/fallend).
  • Optional: einfacher Alert, wenn Gesamtscore eine konfigurierbare Schwelle (Default 65) überschreitet.

3. Signale

Jedes Signal liefert einen Sub-Score 0100 (0 = gesund, 100 = Regime bricht). Gewichte in config editierbar.

Kursbasiert (automatisierbar, täglich)

Grundprinzip: SMH ist das führende Signal, QQQ die Bestätigung. Wo beide eingehen, zählt SMH stärker (Default 2:1), damit du Frühwarnung und Filter gegen Fehlalarme hast.

ID Signal Logik (Sub-Score 0→100) Default-Gewicht
P1 Trendbruch 200-Tage-MA Gewichteter Anteil unter der 200-Tage-MA: SMH zählt doppelt, QQQ einfach 12
P2 Death Cross + Slope 50-Tage-MA unter 200-Tage-MA und 200er-Slope negativ (graduell nach Abstand), SMH führend 8
P3 Drawdown vom 52W-Hoch max(SMH, QQQ)-Drawdown: 0 % → 0, ≥ 20 % → 100 (linear) 10
P4 Relative Stärke Tech Trend des Verhältnisses SMH/SPY (Tech underperformt → höher) 8
P5 Volatilität VIX: ≤ 15 → 0, ≥ 30 → 100 (linear) 7
P6 Optional: Kanarienvogel NVDA NVDA unter 50-Tage-MA bei gleichzeitig noch intaktem SMH (Lead-Divergenz) → Frühwarnung; abschaltbar 0 (opt. 5)

Fundamental (teils manuell, quartalsweise)

ID Signal Logik (Sub-Score 0→100) Default-Gewicht
F1 Hyperscaler-Capex-Guidance Manuelle Eingabe je Name: anhebend = 0, haltend = 50, kürzend = 100; Mittel über die 4 25
F2 Kreditspreads US High-Yield OAS (FRED BAMLH0A0HYM2): Perzentil der letzten 3 J → Score; Ausweitung = höher 15
F3 Earnings-Reaktion "Good news, stock down": fielen Hyperscaler/SMH im Schnitt trotz Gewinn-Beats nach den letzten Earnings? (Reaktion ±2 Tage, auto oder manuell) 8
F4 Marktbreite Trend RSP/SPY (gleichgewichtet schlägt kapgewichtet bei Tech-Schwäche → Verschlechterung der Breite → höher) 7

Gesamtscore = Σ(Sub-Score × Gewicht) / Σ(Gewichte). Summe Defaults = 100.

4. Datenquellen (Vorschlag, alle frei)

  • Kurse/MA/Drawdown/VIX: yfinance (Yahoo Finance). Alternativ deine IBKR-API.
  • Kreditspreads: FRED-API (BAMLH0A0HYM2), kostenloser API-Key.
  • Capex-Guidance (F1): manuell pflegbar in signals.yaml (4 Werte/Quartal). Keine zuverlässige Gratis-API; bewusst manuell.
  • Earnings-Termine/-Reaktion (F3): yfinance earnings dates + Kursreaktion, optional manuell.

5. Konfiguration

  • config.yaml: Gewichte je Signal, Alert-Schwelle, Tickerlisten, Lookback-Fenster.
  • signals.yaml: manuelle Eingaben (F1, optional F3).
  • Alle Schwellen/Gewichte ohne Code-Änderung anpassbar.

6. Tech-Vorschlag (optional)

  • Python + pandas + yfinance + requests (FRED) + pyyaml.
  • Ausgabe als CLI-Report (Tabelle + Gesamtscore) und/oder kleines Streamlit-Dashboard mit Gauge + Verlaufschart.
  • Lokal lauffähig, ein python monitor.py reicht; Verlauf in lokaler CSV/SQLite für 7/30-Tage-Trend.

7. Explizite Nicht-Ziele / Grenzen

  • Sagt keinen exakten Zeitpunkt voraus; ein hoher Score ≠ garantierter Crash.
  • Die Gewichte sind subjektiv (Garbage-in → Garbage-out): Default ist ein Startpunkt, kein Optimum.
  • Das eindeutige Signal kommt oft erst mit dem Einbruch — das Tool senkt die Reaktionszeit, eliminiert sie nicht.
  • Reines Informations-/Disziplin-Werkzeug, keine Finanzberatung.