ebff19940b
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>
4.9 KiB
4.9 KiB
Anforderungsdokument — "AI/Tech Regime Change Monitor"
Ziel: Ein persönliches Hobby-Tool, das fundamentale und kursbasierte Signale überwacht und einen einzigen Wert von 0–100 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 0–100 (0 = Regime stabil, 100 = Bruch im Gange) mit Label-Band:
- 0–30 stabil · 30–60 beobachten · 60–80 erhöht · 80–100 Bruch sichtbar
- Aufschlüsselung pro Signal (Sub-Score 0–100 + 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 0–100 (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):
yfinanceearnings 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.pyreicht; 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.