[
  {
    "path": ".github/workflows/scanner.yml",
    "content": "name: Adaptive Asymmetry Scanner\n\non:\n  schedule:\n    - cron: '30 13 * * 1-5'  # 13:30 UTC = 15:30 MEZ (entspricht US-Marktöffnung)\n  workflow_dispatch:\n\njobs:\n  scan:\n    runs-on: ubuntu-latest\n    timeout-minutes: 45        # Hartes Limit: kein Run > 45 Min\n\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v4\n        with:\n          token: ${{ secrets.GITHUB_TOKEN }}\n          fetch-depth: 1\n\n      # ── FinBERT Model Cache ──────────────────────────────────────────────\n      # Wichtig: Cache persistiert zwischen Runs → kein 440MB Download täglich\n      - name: Cache FinBERT Model\n        uses: actions/cache@v4\n        id: finbert-cache\n        with:\n          path: /tmp/finbert_cache\n          key: finbert-prosusai-v1\n          restore-keys: finbert-prosusai-\n\n      # ── Python + pip Cache ───────────────────────────────────────────────\n      - name: Setup Python\n        uses: actions/setup-python@v5\n        with:\n          python-version: '3.11'\n          cache: 'pip'\n\n      - name: Install dependencies\n        run: pip install -r requirements.txt\n\n      # ── Scanner ──────────────────────────────────────────────────────────\n      - name: Run Scanner\n        env:\n          ANTHROPIC_API_KEY:     ${{ secrets.ANTHROPIC_API_KEY }}\n          TRADIER_API_KEY:       ${{ secrets.TRADIER_API_KEY }}\n          NEWS_API_KEY:          ${{ secrets.NEWS_API_KEY }}\n          GMAIL_SENDER:          ${{ secrets.GMAIL_SENDER }}\n          GMAIL_APP_PW:          ${{ secrets.GMAIL_APP_PW }}\n          NOTIFY_EMAIL:          ${{ secrets.NOTIFY_EMAIL }}\n          FINNHUB_API_KEY:       ${{ secrets.FINNHUB_API_KEY }}\n          ALPHA_VANTAGE_API_KEY: ${{ secrets.ALPHA_VANTAGE_API_KEY }}\n          FLASH_ALPHA_API_KEY:   ${{ secrets.FLASH_ALPHA_API_KEY }}\n          EULERPOOL_API_KEY:     ${{ secrets.EULERPOOL_API_KEY }}\n          HF_HUB_CACHE:          /tmp/finbert_cache\n          TRANSFORMERS_CACHE:    /tmp/finbert_cache\n          HF_HOME:               /tmp/finbert_cache\n        run: python pipeline.py\n\n      # ── Feedback Loop ────────────────────────────────────────────────────\n      - name: Run Feedback Loop\n        env:\n          ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}\n          TRADIER_API_KEY:   ${{ secrets.TRADIER_API_KEY }}\n        run: python feedback.py\n\n      # ── Git Commit ───────────────────────────────────────────────────────\n      - name: Commit daily report\n        env:\n          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n        run: |\n          git config user.name  \"github-actions[bot]\"\n          git config user.email \"github-actions[bot]@users.noreply.github.com\"\n          git add outputs/\n          git diff --cached --quiet && echo \"Keine Änderungen\" && exit 0\n          git commit -m \"chore: daily report $(date +%Y-%m-%d)\"\n          git push https://x-access-token:${GITHUB_TOKEN}@github.com/${{ github.repository }}.git HEAD:main\n"
  },
  {
    "path": ".gitignore",
    "content": ".env\n__pycache__/\n*.pyc\n.pytest_cache/\n.venv/\n*.egg-info/\n\n# FinBERT-Modell-Cache (417 MB – nicht in Git)\noutputs/models/finbert/\n\n# PPO-Modell MIT commit (klein, <1 MB)\n# outputs/models/ppo_options_agent.zip  ← NICHT ignorieren\n"
  },
  {
    "path": "README.md",
    "content": "# Adaptive Asymmetry-Scanner v3.5\n\nEin vollautomatischer News-to-Options-Scanner, der täglich Informations-Asymmetrien im US-Aktienmarkt identifiziert und konkrete Options-Vorschläge generiert.\n\n---\n\n## Kernkonzept\n\nDas System sucht nicht nach \"guten Nachrichten\", sondern nach **Underreactions**: Fundamentale Nachrichten mit einem 3–6-Monats-Impact, auf die der Markt innerhalb der ersten 48 Stunden statistisch zu schwach reagiert hat. Dieser Mismatch zwischen fundamentaler Stärke und Preisbewegung ist der eigentliche Alpha-Hebel.\n\n```\nNews-Stärke (Impact 0-10) minus Marktreaktion (Z-Score × 5) = Mismatch-Score\n```\n\nJe höher der Mismatch, desto wahrscheinlicher eine verzögerte Einpreisung.\n\n---\n\n## 7-Stufen-Pipeline\n\n```\n1. Daten-Ingestion      → News (NewsAPI/RSS) + yfinance Hard-Filter\n2. Prescreening         → Claude Haiku: Rauschen vs. strukturelle Änderung\n3. Deep Analysis        → Claude Sonnet: Asymmetry Reasoning + Bear Case\n4. Mismatch-Score       → Z-Score der 48h-Bewegung vs. Impact\n5. MiroFish-Simulation  → 10.000 Monte-Carlo-Pfade über 120 Tage\n6. Quasi-ML Scoring     → Selbstlernende Gewichtung aus history.json\n7. Options-Design       → IV-Rank-basierte Strategie via Tradier/yfinance\n```\n\n---\n\n## Schnellstart\n\n### 1. Repository klonen\n\n```bash\ngit clone https://github.com/DEIN-USERNAME/news-mirofish.git\ncd news-mirofish\n```\n\n### 2. Abhängigkeiten installieren\n\n```bash\npip install -r requirements.txt\n```\n\n### 3. API-Keys konfigurieren\n\n```bash\ncp .env.example .env\n# .env öffnen und Keys eintragen\n```\n\nLokal:\n```bash\nexport ANTHROPIC_API_KEY=\"sk-ant-...\"\nexport NEWS_API_KEY=\"...\"\nexport TRADIER_API_KEY=\"...\"   # optional, Fallback auf yfinance\n```\n\n### 4. Ersten Lauf starten\n\n```bash\npython pipeline.py\n```\n\n### 5. Feedback-Loop manuell ausführen\n\n```bash\npython feedback.py\n```\n\n---\n\n## GitHub Actions Setup\n\n### Secrets konfigurieren\n\nIm GitHub-Repo unter **Settings → Secrets and variables → Actions**:\n\n| Secret | Beschreibung |\n|---|---|\n| `ANTHROPIC_API_KEY` | Claude API Key (Pflicht) |\n| `NEWS_API_KEY` | NewsAPI Key (empfohlen) |\n| `TRADIER_API_KEY` | Tradier API Key (optional) |\n\n### Automatischer Trigger\n\nDie Pipeline läuft automatisch **Mo–Fr um 14:30 MEZ** (12:30 UTC).  \nManueller Trigger: GitHub → Actions → \"Adaptive Asymmetry-Scanner\" → \"Run workflow\".\n\n---\n\n## Projektstruktur\n\n```\nnews-mirofish/\n│\n├── pipeline.py              # Haupt-Orchestrator (7-Stufen-Flow)\n├── feedback.py              # Wöchentlicher Lern-Loop\n├── config.yaml              # Alle Parameter zentral\n├── requirements.txt\n├── .env.example\n│\n├── modules/\n│   ├── data_ingestion.py    # Stufe 1: News + Hard-Filter + EPS-Drift\n│   ├── prescreener.py       # Stufe 2: Claude Haiku Batch-Filter\n│   ├── deep_analysis.py     # Stufe 3: Claude Sonnet Asymmetry-Reasoning\n│   ├── mismatch_scorer.py   # Stufe 4: Z-Score + Mismatch-Formel\n│   ├── mirofish_simulation.py # Stufe 5: Monte-Carlo 10.000 Pfade\n│   ├── quasi_ml.py          # Stufe 6: Adaptive Bin-Scoring\n│   ├── options_designer.py  # Stufe 7: IV-Analyse + Kontrakt-Auswahl\n│   ├── risk_gates.py        # VIX-Check, Earnings-Gate, Liquidität\n│   └── reporter.py          # JSON + Markdown Report\n│\n├── outputs/\n│   ├── history.json         # Persistente Feature-Stats + Trades (im Git)\n│   └── daily_reports/\n│       ├── YYYY-MM-DD.json  # Maschinenlesbar\n│       └── YYYY-MM-DD.md    # Menschenlesbar\n│\n├── tests/\n│   └── test_pipeline.py     # Pytest-Suite\n│\n└── .github/\n    └── workflows/\n        └── scanner.yml      # GitHub Actions\n```\n\n---\n\n## Risk-Gates (Sicherheitslayer)\n\nAlle Gates blockieren den Trade automatisch:\n\n| Gate | Bedingung |\n|---|---|\n| VIX-Gate | VIX > 35 → gesamte Pipeline bricht ab |\n| Earnings-Gate | Earnings < 7 Tage → Ticker blockiert |\n| Bear-Case-Gate | bear_case_severity > 7 → Ticker blockiert |\n| Liquiditäts-Gate | Open Interest < 100 → Kontrakt abgelehnt |\n| Spread-Gate | Bid-Ask-Ratio > 10% → Kontrakt abgelehnt |\n\n---\n\n## Strategie-Logik\n\n| IV-Rank | Richtung | Strategie |\n|---|---|---|\n| < 50 | Bullish | Long Call (DTE 120–200, Delta ~0.65) |\n| ≥ 50 | Bullish | Bull Call Spread |\n| < 50 | Bearish | Long Put |\n| ≥ 50 | Bearish | Bear Put Spread |\n\n---\n\n## Quasi-ML Selbstlern-System\n\n`history.json` speichert für jede Feature-Kombination den historischen Durchschnitts-Return:\n\n```\nFinalScore = Σ(Bin_Avg_Return_i × Current_Weight_i)\n```\n\nNach jedem abgeschlossenen Trade (≥ 130 Tage) werden:\n1. Die Bin-Durchschnitte aktualisiert (laufender Ø)\n2. Die Feature-Gewichte via Pearson-Korrelation neu kalibriert\n\nJe mehr Trades, desto präziser das Scoring.\n\n---\n\n## Tests\n\n```bash\npytest tests/ -v\n```\n\n---\n\n## Haftungsausschluss\n\nDieses System generiert ** keine Anlageberatung **. Alle Vorschläge sind rein algorithmischer Natur und dienen ausschließlich zu Forschungs- und Lernzwecken. Der Einsatz von echtem Kapital auf Basis dieser Ausgaben erfolgt auf eigenes Risiko. Options-Handel kann zum vollständigen Verlust des eingesetzten Kapitals führen.\n\n**Empfehlung:** Mindestens 6 Monate Papier-Trading (nur Logs, kein echtes Kapital) bevor reale Positionen eröffnet werden.\n"
  },
  {
    "path": "config.yaml",
    "content": "# Adaptive Asymmetry-Scanner – Konfiguration v5.0\n\npipeline:\n  confidence_gate: 0.70\n  n_simulation_paths: 10000\n  simulation_days: 120\n  min_impact_threshold: 4\n  max_intraday_move: 0.07    # NEU: 7% → Signal verwerfen wenn zu spät\n\nfilters:\n  min_market_cap: 2_000_000_000\n  min_avg_volume: 1_000_000\n  universe: \"sp500_nasdaq100\"\n\nmodels:\n  prescreener: \"claude-haiku-4-5-20251001\"\n  deep_analysis: \"claude-sonnet-4-6\"\n\nrisk:\n  vix_threshold: 35.0\n  earnings_buffer_days: 7\n  min_open_interest: 100\n  max_bid_ask_ratio: 0.10\n  max_bear_case_severity: 8\n\noptions:\n  # DTE-Tiers werden in options_designer.py (DTE_TIERS) gesteuert.\n  # time_to_materialization aus deep_analysis bestimmt das DTE-Minimum (v9.0):\n  #   \"4-8 Wochen\"  → dte_floor=14  (Short-Term erlaubt)\n  #   \"2-3 Monate\"  → dte_floor=55  (Mid-Term Minimum)\n  #   \"6 Monate\"    → dte_floor=140 (Long-Term Minimum)\n  delta_target_low:  0.55\n  delta_target_high: 0.75\n  target_move_pct:   0.10\n  min_roi_after_spread: 0.15\n\nlearning:\n  learning_rate: 0.05\n  min_bin_count:  3\n  close_after_days: 45         # Geändert: 130 → 45\n\neps_drift:\n  noise_threshold:    0.02\n  relevant_threshold: 0.05\n  massive_threshold:  0.10\n\n# RL-System\nrl:\n  enabled: true\n  model_path: \"outputs/models/ppo_options_agent.zip\"\n  min_trades_for_training: 3\n  timesteps_per_update: 2000\n\n# FinBERT\nfinbert:\n  enabled: true\n  model_name: \"ProsusAI/finbert\"\n  cache_dir: \"/tmp/finbert_cache\"\n  max_headlines: 8\n  max_tokens: 128\n\n# Reddit\nreddit:\n  enabled: true\n  subreddits: [\"wallstreetbets\", \"stocks\", \"investing\", \"options\"]\n  max_posts_per_ticker: 50\n  time_filter: \"day\"\n  request_delay: 0.5\n\n# Externe API-Quellen\ndata_sources:\n\n  tradier:\n    enabled: true             # false → yfinance Fallback für Option Chains\n    base_url: \"https://api.tradier.com/v1\"\n    timeout: 10               # Sekunden pro Request\n    # Scope: options_designer.py (Chain + IV-Rank) + feedback.py (P&L-Tracking)\n    # Key:   TRADIER_API_KEY als GitHub Secret (nie hier eintragen!)\n\n  alpha_vantage:\n    enabled: true             # ALPHA_VANTAGE_API_KEY als Secret\n    max_daily_calls: 25       # Free Tier Limit\n    eps_tolerance: 0.10       # 10% Abweichung erlaubt\n\n  finnhub:\n    enabled: true             # FINNHUB_API_KEY als Secret\n    use_for_earnings: true    # Earnings-Gate via Finnhub statt yfinance\n\n  fda:\n    enabled: true             # Kein Key nötig\n    days_back: 7\n    sectors: [\"Healthcare\", \"Biotechnology\", \"Pharmaceuticals\"]\n\n  sec_insider:\n    enabled: true             # Kein Key nötig\n    days_back: 14\n    min_cluster_size: 2       # Mindestens 2 Insider für Cluster-Signal\n\n  flash_alpha:\n    enabled: true             # FLASH_ALPHA_API_KEY als Secret\n    max_daily_calls: 5        # KRITISCH: Nicht überschreiten!\n    top_n: 2                  # Nur für Top-2 Signale\n\n  eulerpool:\n    enabled: true             # EULERPOOL_API_KEY als Secret\n    top_n: 2                  # Nur für Top-2 Signale\n    iv_crush_threshold: 80    # IV-Percentile ab dem Warnung ausgegeben wird\n"
  },
  {
    "path": "feedback.py",
    "content": "\"\"\"\nfeedback.py – Adaptive Lern-Loop v5.0\n\nÄnderungen v5.0:\n    - Tradier Live-API als primäre Datenquelle für Optionspreise (P&L-Tracking)\n      Endpoint: /v1/markets/options/chains (Optionspreis via Strike-Filter)\n      Endpoint: /v1/markets/quotes        (Aktienkurs Real-Time)\n    - get_current_price():        Tradier Primary → yfinance Fallback\n    - get_current_option_price(): Tradier Primary → yfinance Fallback\n    - compute_outcome():          strategy-Parameter für saubere Call/Put-Erkennung\n    - TRADIER_API_KEY via os.environ (bereits als GitHub Secret hinterlegt)\n    - Warum wichtig: RL-Agent trainiert auf Outcomes — falsche Preise (yfinance\n      ~15min delayed) führen zu fehlerhaften Lern-Signalen für den PPO-Agenten.\n\nÄnderungen v4.0:\n    - Nach Trade-Close: PPO-Agent wird auf neuem closed_trade nachtrainiert\n    - RL-Training: Inkrementelles Update (Continual Learning)\n    - Bestehende Fixes M-04, M-05 bleiben erhalten\n\"\"\"\n\nimport json\nimport logging\nimport os\nimport sys\nfrom datetime import datetime\nfrom pathlib import Path\n\nimport numpy as np\nimport requests\nimport yfinance as yf\nfrom scipy import stats\n\nfrom modules.config import cfg\n\nlogging.basicConfig(\n    level=logging.INFO,\n    format=\"%(asctime)s [%(levelname)s] %(message)s\",\n    handlers=[logging.StreamHandler(sys.stdout)],\n)\nlog = logging.getLogger(__name__)\n\nHISTORY_PATH       = Path(\"outputs/history.json\")\nMIN_TRADE_AGE_DAYS = 7\n\nTRADIER_BASE    = \"https://api.tradier.com/v1\"\nTRADIER_TIMEOUT = 10\n\n\n# ── Tradier Hilfsfunktionen ───────────────────────────────────────────────────\n\ndef _tradier_headers() -> dict:\n    \"\"\"Authorization-Header für Tradier Live-API.\"\"\"\n    api_key = os.environ.get(\"TRADIER_API_KEY\", \"\")\n    return {\n        \"Authorization\": f\"Bearer {api_key}\",\n        \"Accept\":        \"application/json\",\n    }\n\n\ndef _use_tradier() -> bool:\n    \"\"\"Gibt True zurück wenn TRADIER_API_KEY gesetzt ist.\"\"\"\n    return bool(os.environ.get(\"TRADIER_API_KEY\", \"\").strip())\n\n\n# ── History I/O ───────────────────────────────────────────────────────────────\n\ndef load_history() -> dict:\n    if not HISTORY_PATH.exists():\n        log.error(\"history.json nicht gefunden.\")\n        sys.exit(1)\n    with open(HISTORY_PATH) as f:\n        return json.load(f)\n\n\ndef save_history(history: dict) -> None:\n    with open(HISTORY_PATH, \"w\") as f:\n        json.dump(history, f, indent=2, default=str)\n    log.info(\"history.json aktualisiert.\")\n\n\n# ── Preis-Abruf: Aktienkurs ───────────────────────────────────────────────────\n\ndef get_current_price(ticker: str) -> float:\n    \"\"\"\n    Aktueller Aktienkurs: Tradier Primary → yfinance Fallback.\n\n    Tradier /v1/markets/quotes liefert Real-Time-Kurse ohne Delay.\n    yfinance als Fallback wenn Tradier nicht erreichbar.\n    \"\"\"\n    if _use_tradier():\n        price = _tradier_stock_price(ticker)\n        if price > 0:\n            return price\n        log.debug(f\"[{ticker}] Tradier Aktienkurs fehlgeschlagen → yfinance\")\n\n    # yfinance Fallback\n    try:\n        info = yf.Ticker(ticker).info\n        return float(info.get(\"currentPrice\") or info.get(\"regularMarketPrice\") or 0)\n    except Exception:\n        return 0.0\n\n\ndef _tradier_stock_price(ticker: str) -> float:\n    \"\"\"\n    Aktienkurs via Tradier /v1/markets/quotes.\n\n    Response-Struktur:\n        {\"quotes\": {\"quote\": {\"last\": 150.25, \"bid\": ..., \"ask\": ...}}}\n    \"\"\"\n    try:\n        resp = requests.get(\n            f\"{TRADIER_BASE}/markets/quotes\",\n            params={\"symbols\": ticker, \"greeks\": \"false\"},\n            headers=_tradier_headers(),\n            timeout=TRADIER_TIMEOUT,\n        )\n        resp.raise_for_status()\n        data  = resp.json()\n        quote = data.get(\"quotes\", {}).get(\"quote\", {})\n\n        # Mehrere Symbole → Liste; einzelnes Symbol → Dict\n        if isinstance(quote, list):\n            quote = next((q for q in quote if q.get(\"symbol\") == ticker), {})\n\n        # \"last\" bevorzugt; Fallback auf Mid aus Bid/Ask\n        last = quote.get(\"last\")\n        if last and float(last) > 0:\n            return float(last)\n\n        bid = float(quote.get(\"bid\") or 0)\n        ask = float(quote.get(\"ask\") or 0)\n        if bid > 0 and ask > 0:\n            return round((bid + ask) / 2, 4)\n\n        return 0.0\n\n    except Exception as e:\n        log.debug(f\"Tradier Aktienkurs [{ticker}]: {e}\")\n        return 0.0\n\n\n# ── Preis-Abruf: Optionspreis ─────────────────────────────────────────────────\n\ndef get_current_option_price(\n    ticker: str, option: dict, strategy: str = \"\"\n) -> float:\n    \"\"\"\n    Aktueller Mid-Price einer Options-Position: Tradier Primary → yfinance Fallback.\n\n    Args:\n        ticker:   Ticker-Symbol (z.B. \"AAPL\")\n        option:   Option-Dict aus history.json (strike, expiry, ...)\n        strategy: Trade-Strategie (z.B. \"LONG_CALL\", \"BEAR_PUT_SPREAD\")\n                  → bestimmt ob Call oder Put gesucht wird.\n                  Leer → versucht Call zuerst, dann Put.\n    \"\"\"\n    if not option:\n        return 0.0\n    strike = option.get(\"strike\")\n    expiry = option.get(\"expiry\")\n    if not strike or not expiry:\n        return 0.0\n\n    # Option-Type aus Strategie ableiten\n    option_type = _option_type_from_strategy(strategy)\n\n    # ── Versuch 1: Tradier ────────────────────────────────────────────────────\n    if _use_tradier():\n        price = _tradier_option_price(ticker, strike, expiry, option_type)\n        if price > 0:\n            log.debug(\n                f\"[{ticker}] Tradier Options-Mid: strike={strike} \"\n                f\"expiry={expiry} → ${price:.2f}\"\n            )\n            return price\n        log.debug(f\"[{ticker}] Tradier Options-Preis fehlgeschlagen → yfinance\")\n\n    # ── Versuch 2: yfinance Fallback ──────────────────────────────────────────\n    return _yfinance_option_price(ticker, strike, expiry)\n\n\ndef _option_type_from_strategy(strategy: str) -> str:\n    \"\"\"\n    Leitet \"call\" oder \"put\" aus der Trade-Strategie ab.\n\n    \"LONG_CALL\", \"BULL_CALL_SPREAD\" → \"call\"\n    \"LONG_PUT\",  \"BEAR_PUT_SPREAD\"  → \"put\"\n    \"\"                              → \"call\" (Standard-Fallback; wird in\n                                      _tradier_option_price auch als Put versucht)\n    \"\"\"\n    s = strategy.upper()\n    if \"PUT\" in s or \"BEAR\" in s:\n        return \"put\"\n    return \"call\"  # Default: Call (häufiger Fall)\n\n\ndef _tradier_option_price(\n    ticker: str, strike: float, expiry: str, option_type: str\n) -> float:\n    \"\"\"\n    Options-Mid-Price via Tradier /v1/markets/options/chains.\n\n    Filtert die Chain nach Strike ± 0.01 und option_type.\n    Wenn option_type=\"call\" und nichts gefunden → versucht \"put\" (Fallback\n    bei alten Trades ohne Strategy-Info in history.json).\n    \"\"\"\n    def _fetch_mid(o_type: str) -> float:\n        try:\n            resp = requests.get(\n                f\"{TRADIER_BASE}/markets/options/chains\",\n                params={\n                    \"symbol\":     ticker,\n                    \"expiration\": expiry,\n                    \"greeks\":     \"false\",\n                },\n                headers=_tradier_headers(),\n                timeout=TRADIER_TIMEOUT,\n            )\n            resp.raise_for_status()\n            data    = resp.json()\n            options = data.get(\"options\", {}).get(\"option\", []) or []\n\n            # Einzelner Kontrakt kommt als Dict\n            if isinstance(options, dict):\n                options = [options]\n\n            for o in options:\n                if o.get(\"option_type\") != o_type:\n                    continue\n                # Strike-Vergleich mit Float-Toleranz\n                if abs(float(o.get(\"strike\", 0)) - float(strike)) > 0.01:\n                    continue\n\n                bid = float(o.get(\"bid\") or 0)\n                ask = float(o.get(\"ask\") or 0)\n                if bid > 0 and ask > 0:\n                    return round((bid + ask) / 2, 4)\n                # Nur Ask vorhanden\n                if ask > 0:\n                    return float(ask)\n\n            return 0.0\n\n        except Exception as e:\n            log.debug(f\"Tradier Options-Chain [{ticker} {expiry}]: {e}\")\n            return 0.0\n\n    # Primärer Versuch\n    price = _fetch_mid(option_type)\n    if price > 0:\n        return price\n\n    # Fallback: anderer Option-Type (für alte Trades ohne Strategy-Info)\n    other_type = \"put\" if option_type == \"call\" else \"call\"\n    return _fetch_mid(other_type)\n\n\ndef _yfinance_option_price(\n    ticker: str, strike: float, expiry: str\n) -> float:\n    \"\"\"Options-Mid-Price via yfinance (Fallback, unveränderte v4.0-Logik).\"\"\"\n    try:\n        t = yf.Ticker(ticker)\n        if expiry not in t.options:\n            return 0.0\n        chain   = t.option_chain(expiry)\n        # Versuche Calls zuerst, dann Puts\n        for opts in [chain.calls, chain.puts]:\n            matches = opts[(opts[\"strike\"] == strike) & (opts[\"ask\"] > 0)]\n            if not matches.empty:\n                row = matches.iloc[0]\n                return float((row[\"bid\"] + row[\"ask\"]) / 2)\n        return 0.0\n    except Exception as e:\n        log.debug(f\"yfinance Options-Preis Fehler für {ticker}: {e}\")\n        return 0.0\n\n\n# ── Outcome-Berechnung ────────────────────────────────────────────────────────\n\ndef compute_outcome(trade: dict, current_stock_price: float) -> float:\n    \"\"\"\n    Berechnet Trade-Outcome (Return) für das RL-Training.\n\n    Reihenfolge:\n    1. Echter Options-P&L (wenn entry_last bekannt → Tradier/yfinance Preis)\n    2. Delta-approximierter Return (Leverage-Schätzung)\n    3. Reiner Stock-Return als letzter Fallback\n    \"\"\"\n    ticker      = trade[\"ticker\"]\n    option      = trade.get(\"option\", {})\n    strategy    = trade.get(\"strategy\", \"\")   # v5.0: für Option-Type-Erkennung\n    sim         = trade.get(\"simulation\", {})\n    entry_stock = sim.get(\"current_price\", 0)\n\n    stock_return = 0.0\n    if entry_stock > 0 and current_stock_price > 0:\n        stock_return = (current_stock_price - entry_stock) / entry_stock\n\n    entry_last = option.get(\"last\", 0) if option else 0\n    if entry_last > 0:\n        # v5.0: strategy wird weitergegeben für saubere Call/Put-Erkennung\n        current_option = get_current_option_price(ticker, option, strategy)\n        if current_option > 0:\n            options_return = (current_option - entry_last) / entry_last\n            log.info(\n                f\"    Options-P&L: entry=${entry_last:.2f} → \"\n                f\"current=${current_option:.2f} = {options_return:+.2%}\"\n            )\n            return options_return\n\n    if entry_last > 0 and entry_stock > 0:\n        leverage      = (entry_stock / entry_last) * 0.65\n        approx_return = stock_return * leverage\n        log.info(f\"    Delta-approx: {stock_return:+.2%} × {leverage:.1f} = {approx_return:+.2%}\")\n        return approx_return\n\n    log.info(f\"    Stock-Return Fallback: {stock_return:+.2%}\")\n    return stock_return\n\n\n# ── Bin-Updates (Legacy, für Backward-Kompatibilität) ─────────────────────────\n\ndef update_bin(stats_dict: dict, feature: str, bin_label: str, outcome: float) -> None:\n    bin_data = stats_dict.setdefault(feature, {}).setdefault(\n        bin_label, {\"count\": 0, \"avg_return\": 0.0}\n    )\n    old_avg = bin_data[\"avg_return\"]\n    old_cnt = bin_data[\"count\"]\n    new_cnt = old_cnt + 1\n    new_avg = (old_avg * old_cnt + outcome) / new_cnt\n    bin_data[\"count\"]      = new_cnt\n    bin_data[\"avg_return\"] = round(new_avg, 6)\n\n\n# ── RL-Training ───────────────────────────────────────────────────────────────\n\ndef retrain_rl_agent(history: dict) -> None:\n    \"\"\"\n    Trainiert den PPO-Agenten inkrementell auf allen closed_trades.\n\n    Continual Learning: 2.000 Steps pro Feedback-Lauf (~5s auf CPU).\n    GitHub-Actions-tauglich: Modell als .zip committed, nächster Run nutzt es.\n    \"\"\"\n    try:\n        from modules.rl_agent import train_agent\n    except ImportError as e:\n        log.warning(f\"RL-Agent nicht importierbar: {e} → Training übersprungen\")\n        return\n\n    closed = history.get(\"closed_trades\", [])\n    if len(closed) < 5:\n        log.info(\n            f\"Nur {len(closed)} closed_trades → RL-Training übersprungen \"\n            f\"(Minimum: 5).\"\n        )\n        return\n\n    log.info(f\"Starte RL-Nachtraining auf {len(closed)} closed_trades...\")\n    success = train_agent(\n        history         = history,\n        total_timesteps = 2_000,\n        force_retrain   = False,\n    )\n\n    if success:\n        log.info(\"RL-Agent erfolgreich nachtrainiert.\")\n    else:\n        log.warning(\"RL-Nachtraining fehlgeschlagen (nicht kritisch).\")\n\n\n# ── Pearson-Gewichte (Legacy-Support) ────────────────────────────────────────\n\ndef compute_pearson_weights(history: dict) -> dict:\n    closed = history.get(\"closed_trades\", [])\n    if len(closed) < 5:\n        return history.get(\"model_weights\", {\"impact\": 0.35, \"mismatch\": 0.45, \"eps_drift\": 0.20})\n\n    outcomes, impacts, mismatches, drifts = [], [], [], []\n    for t in closed:\n        outcome = t.get(\"outcome\")\n        if outcome is None:\n            continue\n        feat = t.get(\"features\", {})\n        outcomes.append(outcome)\n        impacts.append(_bin_to_num(\"impact\",    feat.get(\"bin_impact\",    \"mid\")))\n        mismatches.append(_bin_to_num(\"mismatch\", feat.get(\"bin_mismatch\",  \"good\")))\n        drifts.append(_bin_to_num(\"eps_drift\", feat.get(\"bin_eps_drift\", \"noise\")))\n\n    if len(outcomes) < 5:\n        return history.get(\"model_weights\", {})\n\n    outcomes_arr = np.array(outcomes)\n    correlations = {}\n    for name, arr in [(\"impact\", np.array(impacts)),\n                       (\"mismatch\", np.array(mismatches)),\n                       (\"eps_drift\", np.array(drifts))]:\n        r, _ = stats.pearsonr(arr, outcomes_arr)\n        correlations[name] = max(r, 0)\n\n    total = sum(correlations.values()) or 1.0\n    old_w = history.get(\"model_weights\", {})\n    new_w = {}\n    for feat, corr in correlations.items():\n        raw_new     = corr / total\n        old         = old_w.get(feat, 1/3)\n        new_w[feat] = round(old + cfg.learning.learning_rate * (raw_new - old), 4)\n\n    total_w = sum(new_w.values())\n    return {k: round(v / total_w, 4) for k, v in new_w.items()}\n\n\ndef _bin_to_num(feature: str, bin_label: str) -> float:\n    mapping = {\n        \"impact\":    {\"low\": 0.0, \"mid\": 0.5, \"high\": 1.0},\n        \"mismatch\":  {\"weak\": 0.0, \"good\": 0.5, \"strong\": 1.0},\n        \"eps_drift\": {\"noise\": 0.0, \"relevant\": 0.5, \"massive\": 1.0},\n    }\n    return mapping.get(feature, {}).get(bin_label, 0.5)\n\n\n# ── Haupt-Loop ────────────────────────────────────────────────────────────────\n\ndef main() -> None:\n    log.info(\"=== Feedback-Loop v5.0 gestartet ===\")\n    log.info(f\"Tradier: {'aktiv' if _use_tradier() else 'KEIN KEY → yfinance Fallback'}\")\n\n    history      = load_history()\n    today        = datetime.utcnow()\n    active       = history.get(\"active_trades\", [])\n    still_active = []\n    newly_closed = 0\n\n    for trade in active:\n        ticker     = trade[\"ticker\"]\n        entry_date = datetime.strptime(trade[\"entry_date\"][:10], \"%Y-%m-%d\")\n        age_days   = (today - entry_date).days\n\n        if age_days < MIN_TRADE_AGE_DAYS:\n            log.info(f\"  [{ticker}] Alter={age_days}d < {MIN_TRADE_AGE_DAYS} → zu jung.\")\n            still_active.append(trade)\n            continue\n\n        current = get_current_price(ticker)\n        if current <= 0:\n            still_active.append(trade)\n            continue\n\n        outcome = compute_outcome(trade, current)\n        log.info(f\"  [{ticker}] Alter={age_days}d Outcome={outcome:+.2%}\")\n\n        # Legacy Bin-Updates (für Backward-Kompatibilität mit QuasiML)\n        feat = trade.get(\"features\", {})\n        for f_name, bin_key in [(\"impact\",    \"bin_impact\"),\n                                  (\"mismatch\",  \"bin_mismatch\"),\n                                  (\"eps_drift\", \"bin_eps_drift\")]:\n            bin_label = feat.get(bin_key)\n            if bin_label:\n                update_bin(history[\"feature_stats\"], f_name, bin_label, outcome)\n\n        if age_days >= cfg.learning.close_after_days:\n            trade[\"outcome\"]      = round(outcome, 4)\n            trade[\"close_date\"]   = today.strftime(\"%Y-%m-%d\")\n            trade[\"close_price\"]  = current\n            history.setdefault(\"closed_trades\", []).append(trade)\n            log.info(f\"  [{ticker}] Trade abgeschlossen (Return={outcome:+.2%})\")\n            newly_closed += 1\n        else:\n            trade[\"last_price\"]     = current\n            trade[\"current_return\"] = round(outcome, 4)\n            still_active.append(trade)\n\n    history[\"active_trades\"] = still_active\n    history[\"model_weights\"] = compute_pearson_weights(history)\n\n    save_history(history)\n\n    if newly_closed > 0:\n        log.info(f\"{newly_closed} neue closed_trades → starte RL-Nachtraining...\")\n        retrain_rl_agent(history)\n    else:\n        log.info(\"Keine neuen closed_trades → RL-Training übersprungen.\")\n\n    log.info(\"=== Feedback-Loop abgeschlossen ===\")\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "modules/__init__.py",
    "content": ""
  },
  {
    "path": "modules/alpha_sources.py",
    "content": "\"\"\"\nmodules/alpha_sources.py – Alternative Alpha-Quellen v9.0\n\nÄnderungen v9.0:\n    #15 Put/Call-Skew + Dealer-Gamma-Schätzung als neue Signalquellen.\n\n        fetch_options_skew(ticker, current_price):\n            Berechnet Put/Call IV-Skew aus der Options-Chain.\n            Hoher Skew (Puts teurer als Calls) = Markt ist bearish positioniert.\n            Niedriger Skew = Markt sieht wenig Downside = bullish neutral.\n            Nutzt Tradier (wenn verfügbar) sonst yfinance.\n\n        estimate_dealer_gamma(ticker, current_price):\n            Schätzt Dealer-Gamma-Exposure aus Open Interest.\n            Negative Gamma: Dealer müssen in Richtung bewegen → Volatilität verstärkt.\n            Positive Gamma: Dealer dämpfen Bewegungen → Mean Reversion wahrscheinlicher.\n            Wichtig für: Interpreation ob ein Move sich beschleunigt oder abbricht.\n\n        enrich_with_alpha_sources() jetzt auch mit Skew + Gamma-Signal.\n\nIntegriert FDA API, SEC Insider-Käufe und Finnhub Earnings-Kalender.\n\nAPI-Limits:\n  - FDA:     Unbegrenzt (offiziell, kein Key nötig)\n  - SEC:     Unbegrenzt (offiziell, kein Key nötig)\n  - Finnhub: 60 Calls/Minute auf Free Tier (API-Key nötig)\n  - Tradier: Wie konfiguriert (für Skew-Berechnung, optional)\n\"\"\"\n\nfrom __future__ import annotations\nimport logging\nimport os\nimport re\nimport time\nfrom datetime import datetime, timedelta, date\nfrom typing import Optional\n\nimport requests\n\nlog = logging.getLogger(__name__)\n\n_HEADERS = {\"User-Agent\": \"newstoption-scanner/4.1 research@pcctrading.com\"}\n\n# v9.0 #15: Skew-Schwellen\nSKEW_BEARISH_THRESHOLD = 1.20   # Puts > 20% teurer als Calls → bearishes Signal\nSKEW_BULLISH_THRESHOLD = 0.85   # Puts > 15% billiger als Calls → bullishes Signal\nSKEW_LOOKBACK_DTE_MIN  = 20     # Minimum DTE für Skew-Messung\nSKEW_LOOKBACK_DTE_MAX  = 50     # Maximum DTE für Skew-Messung (30-50d ist der Standard)\n\n\n# ── FDA API ───────────────────────────────────────────────────────────────────\n\ndef fetch_fda_events(company_name: str, days_back: int = 7) -> list[dict]:\n    \"\"\"\n    Ruft FDA-Ereignisse für ein Unternehmen ab.\n    Quelle: https://api.fda.gov/drug/event.json\n    \"\"\"\n    try:\n        since = (datetime.utcnow() - timedelta(days=days_back)).strftime(\"%Y%m%d\")\n        url   = (\n            f\"https://api.fda.gov/drug/event.json\"\n            f\"?search=receivedate:[{since}+TO+99991231]\"\n            f\"+AND+companynumb:{company_name.replace(' ', '+')}\"\n            f\"&limit=5\"\n        )\n        resp = requests.get(url, headers=_HEADERS, timeout=10)\n\n        if resp.status_code == 404:\n            return []\n\n        resp.raise_for_status()\n        results = resp.json().get(\"results\", [])\n\n        events = []\n        for r in results:\n            date = r.get(\"receivedate\", \"\")\n            desc = r.get(\"primarysource\", {}).get(\"reportercountry\", \"\")\n            events.append({\n                \"date\":        date,\n                \"type\":        \"fda_adverse_event\",\n                \"description\": f\"FDA Adverse Event Report ({desc})\",\n                \"source\":      \"FDA\",\n            })\n\n        return events\n\n    except Exception as e:\n        log.debug(f\"FDA API Fehler für {company_name}: {e}\")\n        return []\n\n\ndef fetch_fda_drug_approvals(days_back: int = 7) -> list[dict]:\n    \"\"\"\n    Ruft aktuelle FDA Drug Approvals ab (nicht ticker-spezifisch).\n    Quelle: https://api.fda.gov/drug/drugsfda.json\n    \"\"\"\n    try:\n        since = (datetime.utcnow() - timedelta(days=days_back)).strftime(\"%Y%m%d\")\n        url   = (\n            f\"https://api.fda.gov/drug/drugsfda.json\"\n            f\"?search=submissions.submission_status_date:[{since}+TO+99991231]\"\n            f\"+AND+submissions.submission_type:ORIG\"\n            f\"&limit=10\"\n        )\n        resp = requests.get(url, headers=_HEADERS, timeout=10)\n\n        if resp.status_code == 404:\n            return []\n\n        resp.raise_for_status()\n        results = resp.json().get(\"results\", [])\n\n        approvals = []\n        for r in results:\n            sponsor = r.get(\"sponsor_name\", \"\").upper()\n            drugs   = [p.get(\"brand_name\", \"\") for p in r.get(\"products\", [])[:2]]\n            approvals.append({\n                \"sponsor\":     sponsor,\n                \"drugs\":       drugs,\n                \"type\":        \"fda_approval\",\n                \"description\": f\"FDA Approval: {', '.join(drugs)}\",\n                \"source\":      \"FDA\",\n            })\n\n        return approvals\n\n    except Exception as e:\n        log.debug(f\"FDA Approvals Fehler: {e}\")\n        return []\n\n\ndef match_fda_to_ticker(ticker: str, company_info: dict, days_back: int = 7) -> list[str]:\n    \"\"\"Sucht FDA-Events für einen Ticker und gibt Headlines zurück.\"\"\"\n    company_name = company_info.get(\"shortName\", \"\") or company_info.get(\"longName\", \"\")\n    if not company_name:\n        return []\n\n    name_short = company_name.split()[0] if company_name else \"\"\n    if len(name_short) < 3:\n        return []\n\n    events    = fetch_fda_events(name_short, days_back)\n    approvals = fetch_fda_drug_approvals(days_back)\n\n    headlines = []\n\n    for e in events:\n        headlines.append(f\"FDA {e['type'].replace('_', ' ').title()}: {e['description']}\")\n\n    for a in approvals:\n        if name_short.upper() in a.get(\"sponsor\", \"\"):\n            headlines.append(f\"FDA APPROVAL: {a['description']} by {a['sponsor']}\")\n\n    if headlines:\n        log.info(f\"  [{ticker}] FDA: {len(headlines)} Events gefunden\")\n\n    return headlines\n\n\n# ── SEC Insider-Käufe ─────────────────────────────────────────────────────────\n\ndef fetch_sec_insider_trades(ticker: str, days_back: int = 14) -> list[dict]:\n    \"\"\"\n    Ruft Insider-Käufe für einen Ticker via SEC EDGAR ab.\n    \"\"\"\n    try:\n        search_url = (\n            f\"https://efts.sec.gov/LATEST/search-index?q=%22{ticker}%22\"\n            f\"&dateRange=custom&startdt=\"\n            f\"{(datetime.utcnow() - timedelta(days=days_back)).strftime('%Y-%m-%d')}\"\n            f\"&forms=4\"\n        )\n        resp = requests.get(search_url, headers=_HEADERS, timeout=10)\n\n        if resp.status_code != 200:\n            return _fetch_sec_form4_fallback(ticker, days_back)\n\n        hits   = resp.json().get(\"hits\", {}).get(\"hits\", [])\n        trades = []\n\n        for hit in hits[:10]:\n            src = hit.get(\"_source\", {})\n            trades.append({\n                \"date\":        src.get(\"period_of_report\", \"\"),\n                \"insider\":     src.get(\"display_names\", [\"Unknown\"])[0]\n                               if src.get(\"display_names\") else \"Unknown\",\n                \"filing_url\":  src.get(\"file_date\", \"\"),\n                \"form\":        \"Form 4\",\n                \"source\":      \"SEC\",\n            })\n\n        return trades\n\n    except Exception as e:\n        log.debug(f\"SEC EDGAR Fehler für {ticker}: {e}\")\n        return _fetch_sec_form4_fallback(ticker, days_back)\n\n\ndef _fetch_sec_form4_fallback(ticker: str, days_back: int) -> list[dict]:\n    try:\n        url = (\n            f\"https://efts.sec.gov/LATEST/search-index?q=%22{ticker}%22\"\n            f\"&forms=4&dateRange=custom\"\n            f\"&startdt={(datetime.utcnow()-timedelta(days=days_back)).strftime('%Y-%m-%d')}\"\n        )\n        resp = requests.get(url, headers=_HEADERS, timeout=8)\n        if resp.status_code != 200:\n            return []\n\n        hits   = resp.json().get(\"hits\", {}).get(\"hits\", [])\n        result = []\n        for h in hits[:5]:\n            s = h.get(\"_source\", {})\n            result.append({\n                \"date\":    s.get(\"file_date\", \"\"),\n                \"insider\": (s.get(\"display_names\") or [\"Unknown\"])[0],\n                \"form\":    \"Form 4\",\n                \"source\":  \"SEC\",\n            })\n        return result\n    except Exception:\n        return []\n\n\ndef detect_insider_cluster(ticker: str, days_back: int = 14) -> dict:\n    \"\"\"\n    Erkennt Cluster-Insider-Käufe: Mehrere verschiedene Insider kaufen\n    innerhalb von 72 Stunden → starkes Signal.\n    \"\"\"\n    trades = fetch_sec_insider_trades(ticker, days_back)\n\n    if not trades:\n        return {\"cluster_detected\": False, \"insider_count\": 0, \"trades\": []}\n\n    unique_insiders = set(t[\"insider\"] for t in trades)\n    cluster         = len(unique_insiders) >= 2\n\n    result = {\n        \"cluster_detected\": cluster,\n        \"insider_count\":    len(unique_insiders),\n        \"trades\":           trades[:5],\n        \"headline\":         \"\",\n    }\n\n    if cluster:\n        result[\"headline\"] = (\n            f\"SEC Form 4: {len(unique_insiders)} Insider kaufen {ticker} \"\n            f\"innerhalb {days_back} Tagen (Cluster-Signal)\"\n        )\n        log.info(\n            f\"  [{ticker}] SEC Insider-Cluster: \"\n            f\"{len(unique_insiders)} Insider, {len(trades)} Trades\"\n        )\n\n    return result\n\n\n# ── Finnhub Earnings-Kalender ─────────────────────────────────────────────────\n\ndef get_earnings_date_finnhub(ticker: str) -> Optional[str]:\n    \"\"\"Ruft das nächste Earnings-Datum via Finnhub ab.\"\"\"\n    finnhub_key = os.getenv(\"FINNHUB_API_KEY\", \"\")\n    if not finnhub_key:\n        return None\n\n    try:\n        today   = datetime.utcnow()\n        to_date = today + timedelta(days=30)\n        url     = (\n            f\"https://finnhub.io/api/v1/calendar/earnings\"\n            f\"?from={today.strftime('%Y-%m-%d')}\"\n            f\"&to={to_date.strftime('%Y-%m-%d')}\"\n            f\"&symbol={ticker}\"\n            f\"&token={finnhub_key}\"\n        )\n        resp = requests.get(url, timeout=8)\n        resp.raise_for_status()\n\n        earnings_calendar = resp.json().get(\"earningsCalendar\", [])\n        if not earnings_calendar:\n            return None\n\n        dates = sorted([e[\"date\"] for e in earnings_calendar if e.get(\"date\")])\n        return dates[0] if dates else None\n\n    except Exception as e:\n        log.debug(f\"Finnhub Earnings Fehler für {ticker}: {e}\")\n        return None\n\n\ndef has_earnings_within_days(\n    ticker:      str,\n    buffer_days: int  = 7,\n    use_finnhub: bool = True,\n) -> tuple[bool, Optional[str]]:\n    \"\"\"Prüft ob Earnings innerhalb der nächsten buffer_days liegen.\"\"\"\n    earnings_date = None\n\n    if use_finnhub and os.getenv(\"FINNHUB_API_KEY\"):\n        earnings_date = get_earnings_date_finnhub(ticker)\n\n    if not earnings_date:\n        try:\n            import yfinance as yf\n            info        = yf.Ticker(ticker).info\n            earnings_ts = info.get(\"earningsTimestamp\")\n            if earnings_ts:\n                earnings_date = datetime.fromtimestamp(earnings_ts).strftime(\"%Y-%m-%d\")\n        except Exception:\n            pass\n\n    if not earnings_date:\n        return False, None\n\n    try:\n        earnings_dt = datetime.strptime(earnings_date, \"%Y-%m-%d\")\n        # date.today() statt datetime.utcnow() — konsistent mit risk_gates.py.\n        # datetime.utcnow() hat UTC-Offset-Fehler (0d vs 1d je nach Tageszeit).\n        days_until  = (earnings_dt.date() - date.today()).days\n\n        if 0 <= days_until <= buffer_days:\n            log.info(\n                f\"  [{ticker}] EARNINGS-GATE: Earnings in {days_until}d \"\n                f\"({earnings_date}) → Hard-Block.\"\n            )\n            return True, earnings_date\n\n        return False, earnings_date\n\n    except Exception:\n        return False, None\n\n\n# ── v9.0 #15: Put/Call-Skew ───────────────────────────────────────────────────\n\ndef fetch_options_skew(ticker: str, current_price: float) -> dict:\n    \"\"\"\n    Berechnet Put/Call IV-Skew aus der 30-50 DTE Options-Chain.\n\n    Methode: ATM-Put-IV / ATM-Call-IV für das nächste Expiry im 20-50d Fenster.\n    Skew > 1.20: Markt ist bearish (Puts teurer → erhöhter Downside-Schutz)\n    Skew < 0.85: Markt sieht kaum Downside (bullish neutral)\n    Skew ~1.0:   Ausgeglichen\n\n    Nutzt yfinance (Tradier-Integration via TRADIER_API_KEY wenn verfügbar).\n\n    Returns:\n        {\n            \"skew_ratio\":      float,   # put_iv / call_iv\n            \"put_iv\":          float,\n            \"call_iv\":         float,\n            \"expiry\":          str,\n            \"signal\":          \"bearish_skew\" | \"neutral\" | \"bullish_skew\",\n            \"headline\":        str,     # Für News-Liste\n            \"data_available\":  bool,\n        }\n    \"\"\"\n    result_empty = {\n        \"skew_ratio\": 1.0, \"put_iv\": 0.0, \"call_iv\": 0.0,\n        \"expiry\": \"\", \"signal\": \"neutral\", \"headline\": \"\",\n        \"data_available\": False,\n    }\n\n    if current_price <= 0:\n        return result_empty\n\n    try:\n        # Primär: Tradier (genauere IV-Daten)\n        tradier_key = os.environ.get(\"TRADIER_API_KEY\", \"\").strip()\n        if tradier_key:\n            result = _fetch_skew_tradier(ticker, current_price, tradier_key)\n            if result and result.get(\"data_available\"):\n                log.info(\n                    f\"  [{ticker}] Put/Call Skew (Tradier): \"\n                    f\"ratio={result['skew_ratio']:.2f} signal={result['signal']}\"\n                )\n                return result\n\n        # Fallback: yfinance\n        result = _fetch_skew_yfinance(ticker, current_price)\n        if result and result.get(\"data_available\"):\n            log.info(\n                f\"  [{ticker}] Put/Call Skew (yfinance): \"\n                f\"ratio={result['skew_ratio']:.2f} signal={result['signal']}\"\n            )\n        return result if result else result_empty\n\n    except Exception as e:\n        log.debug(f\"  [{ticker}] Skew-Fehler: {e}\")\n        return result_empty\n\n\ndef _fetch_skew_yfinance(ticker: str, current_price: float) -> Optional[dict]:\n    \"\"\"yfinance-basierte Skew-Berechnung.\"\"\"\n    try:\n        import yfinance as yf\n        from datetime import timezone\n        from datetime import datetime as _dt\n\n        t = yf.Ticker(ticker)\n        now = _dt.now(timezone.utc)\n\n        target_expiry = None\n        for exp in (t.options or []):\n            try:\n                exp_dt = _dt.strptime(exp, \"%Y-%m-%d\").replace(tzinfo=timezone.utc)\n                dte    = (exp_dt - now).days\n                if SKEW_LOOKBACK_DTE_MIN <= dte <= SKEW_LOOKBACK_DTE_MAX:\n                    target_expiry = exp\n                    break\n            except Exception:\n                continue\n\n        if not target_expiry:\n            return None\n\n        chain = t.option_chain(target_expiry)\n\n        # ATM-Strike (nächster Strike zum aktuellen Preis)\n        atm_strike = None\n        for s in sorted(chain.calls[\"strike\"].tolist(), key=lambda x: abs(x - current_price)):\n            atm_strike = s\n            break\n\n        if not atm_strike:\n            return None\n\n        call_rows = chain.calls[chain.calls[\"strike\"] == atm_strike]\n        put_rows  = chain.puts[chain.puts[\"strike\"] == atm_strike]\n\n        if call_rows.empty or put_rows.empty:\n            return None\n\n        call_iv = float(call_rows[\"impliedVolatility\"].iloc[0])\n        put_iv  = float(put_rows[\"impliedVolatility\"].iloc[0])\n\n        if call_iv <= 0.01 or put_iv <= 0.01:\n            return None\n\n        skew_ratio = put_iv / call_iv\n        return _build_skew_result(ticker, skew_ratio, put_iv, call_iv, target_expiry)\n\n    except Exception as e:\n        log.debug(f\"  [{ticker}] yfinance Skew Fehler: {e}\")\n        return None\n\n\ndef _fetch_skew_tradier(ticker: str, current_price: float, api_key: str) -> Optional[dict]:\n    \"\"\"Tradier-basierte Skew-Berechnung (höhere IV-Qualität).\"\"\"\n    try:\n        from datetime import timezone\n        from datetime import datetime as _dt\n\n        headers = {\n            \"Authorization\": f\"Bearer {api_key}\",\n            \"Accept\":        \"application/json\",\n        }\n        resp = requests.get(\n            \"https://api.tradier.com/v1/markets/options/expirations\",\n            params={\"symbol\": ticker, \"includeAllRoots\": \"true\"},\n            headers=headers, timeout=10,\n        )\n        resp.raise_for_status()\n        all_dates = resp.json().get(\"expirations\", {}).get(\"date\", []) or []\n        if isinstance(all_dates, str):\n            all_dates = [all_dates]\n\n        now = _dt.now(timezone.utc)\n        target_expiry = None\n        for d in sorted(all_dates):\n            try:\n                exp_dt = _dt.strptime(d, \"%Y-%m-%d\").replace(tzinfo=timezone.utc)\n                dte    = (exp_dt - now).days\n                if SKEW_LOOKBACK_DTE_MIN <= dte <= SKEW_LOOKBACK_DTE_MAX:\n                    target_expiry = d\n                    break\n            except Exception:\n                continue\n\n        if not target_expiry:\n            return None\n\n        chain_resp = requests.get(\n            \"https://api.tradier.com/v1/markets/options/chains\",\n            params={\"symbol\": ticker, \"expiration\": target_expiry, \"greeks\": \"true\"},\n            headers=headers, timeout=10,\n        )\n        chain_resp.raise_for_status()\n        options = chain_resp.json().get(\"options\", {}).get(\"option\", []) or []\n        if isinstance(options, dict):\n            options = [options]\n\n        call_iv_atm, put_iv_atm = None, None\n        best_call_dist, best_put_dist = float(\"inf\"), float(\"inf\")\n\n        for o in options:\n            strike = float(o.get(\"strike\", 0))\n            dist   = abs(strike - current_price)\n            greeks = o.get(\"greeks\") or {}\n            iv     = greeks.get(\"mid_iv\") or greeks.get(\"smv_vol\") or 0.0\n            if not isinstance(iv, (int, float)) or iv <= 0.01:\n                continue\n\n            if o.get(\"option_type\") == \"call\" and dist < best_call_dist:\n                best_call_dist = dist\n                call_iv_atm    = float(iv)\n            elif o.get(\"option_type\") == \"put\" and dist < best_put_dist:\n                best_put_dist = dist\n                put_iv_atm    = float(iv)\n\n        if not call_iv_atm or not put_iv_atm:\n            return None\n\n        skew_ratio = put_iv_atm / call_iv_atm\n        return _build_skew_result(ticker, skew_ratio, put_iv_atm, call_iv_atm, target_expiry)\n\n    except Exception as e:\n        log.debug(f\"  [{ticker}] Tradier Skew Fehler: {e}\")\n        return None\n\n\ndef _build_skew_result(\n    ticker: str, skew_ratio: float, put_iv: float, call_iv: float, expiry: str\n) -> dict:\n    \"\"\"Erstellt das Skew-Result-Dict mit Signal und Headline.\"\"\"\n    if skew_ratio >= SKEW_BEARISH_THRESHOLD:\n        signal   = \"bearish_skew\"\n        headline = (\n            f\"Options-Skew {ticker}: Puts {skew_ratio:.1%} teurer als Calls \"\n            f\"(put_iv={put_iv:.1%} vs call_iv={call_iv:.1%}) — Markt sichert Downside ab\"\n        )\n    elif skew_ratio <= SKEW_BULLISH_THRESHOLD:\n        signal   = \"bullish_skew\"\n        headline = (\n            f\"Options-Skew {ticker}: Calls relativ zu Puts günstig \"\n            f\"(skew={skew_ratio:.2f}) — Markt erwartet wenig Downside\"\n        )\n    else:\n        signal   = \"neutral\"\n        headline = \"\"\n\n    return {\n        \"skew_ratio\":     round(skew_ratio, 3),\n        \"put_iv\":         round(put_iv, 4),\n        \"call_iv\":        round(call_iv, 4),\n        \"expiry\":         expiry,\n        \"signal\":         signal,\n        \"headline\":       headline,\n        \"data_available\": True,\n    }\n\n\n# ── v9.0 #15: Dealer-Gamma-Schätzung ─────────────────────────────────────────\n\ndef estimate_dealer_gamma(ticker: str, current_price: float) -> dict:\n    \"\"\"\n    Schätzt die Netto-Dealer-Gamma-Position aus Open Interest.\n\n    Vereinfachte Methode (ohne Live Market-Maker-Daten):\n    - Calls: Dealer sind typischerweise SHORT Calls (haben negative Gamma)\n      → hoher Call-OI nahe ATM → Dealer müssen kaufen wenn Preis steigt (Gamma hedging)\n    - Puts: Dealer sind typischerweise SHORT Puts (haben negative Gamma)\n      → hoher Put-OI nahe ATM → Dealer müssen verkaufen wenn Preis fällt\n\n    Netto-Gamma-Schätzung: Call-OI × Γ_call - Put-OI × Γ_put\n    Γ ≈ N'(d1) / (S × σ × √T) — für ATM Optionen vereinfacht proportional zu 1/σ\n\n    Positive Netto-Gamma: Dealer dämpfen Bewegungen (mean-reversion wahrscheinlicher)\n    Negative Netto-Gamma: Dealer verstärken Bewegungen (trending wahrscheinlicher)\n\n    Returns:\n        {\n            \"net_gamma_sign\":  \"positive\" | \"negative\" | \"neutral\",\n            \"call_oi_atm\":     int,\n            \"put_oi_atm\":      int,\n            \"oi_ratio\":        float,   # call_oi / put_oi\n            \"signal\":          str,\n            \"headline\":        str,\n            \"data_available\":  bool,\n        }\n    \"\"\"\n    result_empty = {\n        \"net_gamma_sign\": \"neutral\", \"call_oi_atm\": 0, \"put_oi_atm\": 0,\n        \"oi_ratio\": 1.0, \"signal\": \"neutral\", \"headline\": \"\",\n        \"data_available\": False,\n    }\n\n    if current_price <= 0:\n        return result_empty\n\n    try:\n        import yfinance as yf\n        from datetime import timezone\n        from datetime import datetime as _dt\n\n        t   = yf.Ticker(ticker)\n        now = _dt.now(timezone.utc)\n\n        target_expiry = None\n        for exp in (t.options or []):\n            try:\n                exp_dt = _dt.strptime(exp, \"%Y-%m-%d\").replace(tzinfo=timezone.utc)\n                dte    = (exp_dt - now).days\n                if 14 <= dte <= 45:\n                    target_expiry = exp\n                    break\n            except Exception:\n                continue\n\n        if not target_expiry:\n            return result_empty\n\n        chain = t.option_chain(target_expiry)\n\n        # ATM-Bereich: ±5% vom aktuellen Preis\n        atm_low  = current_price * 0.95\n        atm_high = current_price * 1.05\n\n        calls_atm = chain.calls[\n            (chain.calls[\"strike\"] >= atm_low) &\n            (chain.calls[\"strike\"] <= atm_high)\n        ]\n        puts_atm = chain.puts[\n            (chain.puts[\"strike\"] >= atm_low) &\n            (chain.puts[\"strike\"] <= atm_high)\n        ]\n\n        call_oi = int(calls_atm[\"openInterest\"].sum()) if not calls_atm.empty else 0\n        put_oi  = int(puts_atm[\"openInterest\"].sum())  if not puts_atm.empty  else 0\n\n        if call_oi + put_oi < 100:\n            return result_empty\n\n        oi_ratio = call_oi / put_oi if put_oi > 0 else 2.0\n\n        # Dealer-Gamma-Interpretation:\n        # Hoher Call-OI ATM → Dealer short viele Calls → müssen bei Anstieg kaufen\n        # = negative Dealer-Gamma (bei Calls) → verstärkt Aufwärtsbewegung\n        # Für Trading-Signal: hoher put_oi/call_oi-Ratio → viel Absicherung\n        # = Markt ist bearish positioniert aber gut abgesichert\n        if oi_ratio > 1.5:\n            net_gamma_sign = \"positive\"  # Mehr Calls, Dealer dämpfen Anstieg etwas\n            signal         = \"gamma_neutral_to_positive\"\n            headline       = (\n                f\"Dealer-Gamma {ticker}: Call-OI ({call_oi:,}) dominiert Put-OI ({put_oi:,}) \"\n                f\"ATM — Dealer-Hedging könnte Aufwärtsbewegungen leicht dämpfen\"\n            )\n        elif oi_ratio < 0.70:\n            net_gamma_sign = \"negative\"  # Mehr Puts, Dealer-Hedging verstärkt Abwärts\n            signal         = \"gamma_bearish_pressure\"\n            headline       = (\n                f\"Dealer-Gamma {ticker}: Put-OI ({put_oi:,}) dominiert ATM \"\n                f\"(Call/Put-Ratio={oi_ratio:.2f}) — Dealer-Hedging kann Abwärtsbewegungen verstärken\"\n            )\n        else:\n            net_gamma_sign = \"neutral\"\n            signal         = \"neutral\"\n            headline       = \"\"\n\n        log.info(\n            f\"  [{ticker}] Dealer-Gamma: call_oi={call_oi} put_oi={put_oi} \"\n            f\"ratio={oi_ratio:.2f} → {net_gamma_sign}\"\n        )\n\n        return {\n            \"net_gamma_sign\": net_gamma_sign,\n            \"call_oi_atm\":    call_oi,\n            \"put_oi_atm\":     put_oi,\n            \"oi_ratio\":       round(oi_ratio, 3),\n            \"signal\":         signal,\n            \"headline\":       headline,\n            \"data_available\": True,\n        }\n\n    except Exception as e:\n        log.debug(f\"  [{ticker}] Dealer-Gamma Fehler: {e}\")\n        return result_empty\n\n\n# ── Kombinierter Alpha-Enrichment ─────────────────────────────────────────────\n\ndef enrich_with_alpha_sources(candidate: dict) -> dict:\n    \"\"\"\n    Reichert einen Pipeline-Kandidaten mit FDA, SEC, Finnhub,\n    Put/Call-Skew und Dealer-Gamma-Daten an.\n\n    v9.0: Skew und Gamma werden als neue alpha_signals gespeichert\n    und auffällige Werte als Headlines in candidate[\"news\"] aufgenommen.\n    \"\"\"\n    ticker = candidate.get(\"ticker\", \"\")\n    info   = candidate.get(\"info\", {})\n\n    current_price = float(\n        info.get(\"currentPrice\") or\n        info.get(\"regularMarketPrice\") or 0\n    )\n\n    alpha_signals = {\n        \"fda_headlines\":     [],\n        \"sec_insider\":       {},\n        \"earnings_date\":     None,\n        \"has_near_earnings\": False,\n        \"options_skew\":      {},\n        \"dealer_gamma\":      {},\n    }\n\n    # 1. FDA (nur für Healthcare/Biotech)\n    sector = info.get(\"sector\", \"\")\n    if sector in (\"Healthcare\", \"Biotechnology\", \"Pharmaceuticals\"):\n        fda_headlines = match_fda_to_ticker(ticker, info)\n        alpha_signals[\"fda_headlines\"] = fda_headlines\n        if fda_headlines:\n            candidate.setdefault(\"news\", [])\n            candidate[\"news\"] = fda_headlines + candidate[\"news\"]\n\n    # 2. SEC Insider\n    insider_data = detect_insider_cluster(ticker)\n    alpha_signals[\"sec_insider\"] = insider_data\n    if insider_data.get(\"headline\"):\n        candidate.setdefault(\"news\", [])\n        candidate[\"news\"] = [insider_data[\"headline\"]] + candidate[\"news\"]\n\n    # 3. Finnhub Earnings\n    has_earnings, earnings_date = has_earnings_within_days(ticker)\n    alpha_signals[\"earnings_date\"]     = earnings_date\n    alpha_signals[\"has_near_earnings\"] = has_earnings\n    candidate[\"has_near_earnings\"]     = has_earnings\n\n    # 4. v9.0 #15: Put/Call-Skew\n    if current_price > 0:\n        skew_data = fetch_options_skew(ticker, current_price)\n        alpha_signals[\"options_skew\"] = skew_data\n        if skew_data.get(\"headline\"):\n            candidate.setdefault(\"news\", [])\n            candidate[\"news\"] = candidate[\"news\"] + [skew_data[\"headline\"]]\n\n    # 5. v9.0 #15: Dealer-Gamma-Schätzung\n    if current_price > 0:\n        gamma_data = estimate_dealer_gamma(ticker, current_price)\n        alpha_signals[\"dealer_gamma\"] = gamma_data\n        if gamma_data.get(\"headline\"):\n            candidate.setdefault(\"news\", [])\n            candidate[\"news\"] = candidate[\"news\"] + [gamma_data[\"headline\"]]\n\n    candidate[\"alpha_signals\"] = alpha_signals\n    return candidate\n"
  },
  {
    "path": "modules/config.py",
    "content": "import yaml\nimport os\nfrom box import ConfigBox\n\n# Pfad zur config.yaml (eine Ebene höher als dieser Ordner)\nconfig_path = os.path.join(os.path.dirname(__file__), \"..\", \"config.yaml\")\n\nwith open(config_path, \"r\") as f:\n    # ConfigBox erlaubt den Zugriff via cfg.filters.min_market_cap statt ['filters']['min_market_cap']\n    cfg = ConfigBox(yaml.safe_load(f))\n"
  },
  {
    "path": "modules/data_ingestion.py",
    "content": "\"\"\"\nmodules/data_ingestion.py v7.1\n\nv7.1: Short Interest als Feature\n    yfinance liefert shortPercentOfFloat bereits im info-Dict.\n    Kein zusätzlicher API-Call nötig.\n    Short Float > 15% → asymmetrisches Upside bei positiver News (Squeeze-Potential).\n    Wird als candidate[\"short_interest\"] gespeichert.\n\nv7.0:\nFix 1: Parallel-Requests statt sequenziell\n    Vorher: 493 Ticker × ~0.85s = ~7 Minuten\n    Jetzt:  ThreadPoolExecutor mit 20 Workers = ~30-45 Sekunden\n\nFix 2: Haiku↔Sonnet Konsistenz-Check\n    Prescreening-Begründung wird an Deep Analysis übergeben.\n\"\"\"\n\nfrom __future__ import annotations\nimport logging\nimport os\nimport time\nfrom concurrent.futures import ThreadPoolExecutor, as_completed\nfrom datetime import datetime, timedelta\nfrom typing import Optional\n\nimport requests\nimport yfinance as yf\n\nfrom modules.config   import cfg\nfrom modules.universe import get_universe\n\nlog = logging.getLogger(__name__)\n\nMIN_MARKET_CAP_USD    = 2_000_000_000\nMIN_AVG_VOLUME        = 1_000_000\nMIN_DOLLAR_VOLUME_USD = 10_000_000\nRV_BASE_THRESHOLD     = 0.6   # Basis-Schwelle (skaliert mit VIX dynamisch)\nMAX_WORKERS           = 20   # Parallel Threads — empirisch für Yahoo Finance\n\n# v7.1: Short Interest Schwellenwerte\nSHORT_INTEREST_HIGH   = 0.15   # 15% Short Float → \"high\" (Squeeze-Potential)\nSHORT_INTEREST_MED    = 0.08   # 8% Short Float → \"elevated\"\n\n\nclass DataIngestion:\n\n    def __init__(self, history: dict | None = None):\n        self.history      = history or {}\n        self.news_api_key = os.getenv(\"NEWS_API_KEY\", \"\")\n\n    def _get_current_vix(self) -> float:\n        \"\"\"VIX einmal holen — nicht pro Ticker wiederholen.\"\"\"\n        try:\n            import yfinance as _yf\n            val = _yf.Ticker(\"^VIX\").fast_info.last_price\n            return float(val or 20.0)\n        except Exception:\n            return 20.0\n\n    def run(self) -> list[dict]:\n        tickers = get_universe()\n        log.info(f\"Stufe 1: Hard-Filter auf {len(tickers)} Ticker \"\n                 f\"(parallel, {MAX_WORKERS} Workers)\")\n\n        vix_current = self._get_current_vix()\n        log.info(f\"  RV-Filter: VIX={vix_current:.1f} → Schwelle={0.6 * max(0.5, min(1.5, vix_current/20.0)):.3f}\")\n\n        stats = {\n            \"total\": len(tickers), \"no_data\": 0, \"market_cap\": 0,\n            \"avg_volume\": 0, \"dollar_volume\": 0, \"rel_volume\": 0,\n            \"no_news\": 0, \"passed\": 0,\n        }\n\n        candidates = []\n        # Parallel-Requests — massiv schneller als sequenziell\n        with ThreadPoolExecutor(max_workers=MAX_WORKERS) as executor:\n            futures = {\n                executor.submit(self._evaluate_ticker, ticker, {}, vix_current): ticker\n                for ticker in tickers\n            }\n            for future in as_completed(futures):\n                try:\n                    result, ticker_stats = future.result()\n                    # Stats thread-safe aggregieren\n                    for k, v in ticker_stats.items():\n                        stats[k] = stats.get(k, 0) + v\n                    if result:\n                        candidates.append(result)\n                except Exception as e:\n                    log.debug(f\"Future-Fehler: {e}\")\n                    stats[\"no_data\"] += 1\n\n        self._log_filter_stats(stats)\n        log.info(f\"  → {len(candidates)} Kandidaten nach Hard-Filter\")\n        return candidates\n\n    def _evaluate_ticker(\n        self, ticker: str, _stats: dict, vix_current: float = 20.0\n    ) -> tuple[Optional[dict], dict]:\n        \"\"\"Evaluiert einen Ticker. Gibt (result, stats_delta) zurück.\"\"\"\n        local_stats = {\n            \"no_data\": 0, \"market_cap\": 0, \"avg_volume\": 0,\n            \"dollar_volume\": 0, \"rel_volume\": 0, \"no_news\": 0, \"passed\": 0,\n        }\n        try:\n            # Retry bei 401 (yfinance Crumb-Invalidierung durch parallele Requests)\n            info = None\n            for _attempt in range(2):\n                try:\n                    t    = yf.Ticker(ticker)\n                    info = t.info\n                    if info and isinstance(info, dict):\n                        break\n                except Exception as _e:\n                    if _attempt == 0:\n                        time.sleep(0.4)   # kurze Pause vor Retry\n                    else:\n                        raise\n\n            if not info or not isinstance(info, dict):\n                local_stats[\"no_data\"] += 1\n                return None, local_stats\n\n            market_cap = info.get(\"marketCap\") or 0\n            if market_cap < MIN_MARKET_CAP_USD:\n                local_stats[\"market_cap\"] += 1\n                return None, local_stats\n\n            avg_vol = info.get(\"averageVolume\") or info.get(\"averageVolume10days\") or 0\n            if avg_vol < MIN_AVG_VOLUME:\n                local_stats[\"avg_volume\"] += 1\n                return None, local_stats\n\n            current_price = (\n                info.get(\"currentPrice\") or\n                info.get(\"regularMarketPrice\") or\n                info.get(\"previousClose\") or 0\n            )\n            if current_price * avg_vol < MIN_DOLLAR_VOLUME_USD:\n                local_stats[\"dollar_volume\"] += 1\n                return None, local_stats\n\n            volume_today = info.get(\"volume\") or info.get(\"regularMarketVolume\") or 0\n            rel_volume   = volume_today / avg_vol if avg_vol > 0 and volume_today > 0 else 0.0\n            # Dynamischer RV-Schwellenwert: skaliert mit VIX (einmal in run() geholt)\n            vix_avg = 20.0   # historischer Durchschnitt\n            # Schwelle sinkt bei ruhigem Markt, steigt bei Panik\n            rv_threshold = RV_BASE_THRESHOLD * max(0.5, min(1.5, vix_current / vix_avg))\n            rv_threshold = round(rv_threshold, 2)\n\n            # News-Override: Ticker mit starker News-Aktivität trotz niedrigem RV erlauben\n            news = self._fetch_news(ticker, info)\n            news_count   = len(news) if news else 0\n            news_override = (news_count >= 3 and rel_volume >= 0.25)\n\n            if rel_volume < rv_threshold and not news_override:\n                local_stats[\"rel_volume\"] += 1\n                return None, local_stats\n\n            if not news:\n                local_stats[\"no_news\"] += 1\n                return None, local_stats\n\n            # ── v7.1: Short Interest extrahieren (kostenlos, bereits in info) ─\n            short_pct   = info.get(\"shortPercentOfFloat\") or info.get(\"shortRatio\") or 0.0\n            short_float = float(short_pct) if short_pct else 0.0\n            # yfinance gibt manchmal als Ratio (0.15) oder Prozent (15.0)\n            if short_float > 1.0:\n                short_float = short_float / 100.0   # 15.0 → 0.15\n\n            if short_float >= SHORT_INTEREST_HIGH:\n                short_label = \"high\"\n            elif short_float >= SHORT_INTEREST_MED:\n                short_label = \"elevated\"\n            else:\n                short_label = \"normal\"\n\n            local_stats[\"passed\"] += 1\n            dollar_volume = current_price * avg_vol\n            log.info(\n                f\"  [{ticker}] ✅ Cap=${market_cap/1e9:.1f}B \"\n                f\"AvgVol={avg_vol/1e6:.1f}M \"\n                f\"$Vol=${dollar_volume/1e6:.0f}M \"\n                f\"RV={rel_volume:.2f} News={len(news)}\"\n                f\"{f' Short={short_float:.0%}({short_label})' if short_float >= SHORT_INTEREST_MED else ''}\"\n            )\n\n            return {\n                \"ticker\":        ticker,\n                \"info\":          info,\n                \"news\":          news,\n                \"market_cap\":    market_cap,\n                \"avg_volume\":    avg_vol,\n                \"dollar_volume\": dollar_volume,\n                \"rel_volume\":    round(rel_volume, 3),\n                \"current_price\": current_price,\n                \"features\":      {},\n                # v7.1: Short Interest\n                \"short_interest\": {\n                    \"short_float_pct\": round(short_float, 4),\n                    \"label\":           short_label,\n                },\n            }, local_stats\n\n        except Exception as e:\n            log.debug(f\"  [{ticker}] Fehler: {e}\")\n            local_stats[\"no_data\"] += 1\n            return None, local_stats\n\n    def _log_filter_stats(self, stats: dict) -> None:\n        total  = stats[\"total\"]\n        passed = stats[\"passed\"]\n        log.info(\"=\" * 55)\n        log.info(f\"HARD-FILTER ERGEBNIS: {passed}/{total} Ticker bestanden\")\n        log.info(\"-\" * 55)\n        log.info(f\"  ❌ Kein Data/Fehler:         {stats['no_data']:>4}  ({stats['no_data']/total*100:.1f}%)\")\n        log.info(f\"  ❌ Market Cap < 2 Mrd.:      {stats['market_cap']:>4}  ({stats['market_cap']/total*100:.1f}%)\")\n        log.info(f\"  ❌ Avg Volume < 1M:          {stats['avg_volume']:>4}  ({stats['avg_volume']/total*100:.1f}%)\")\n        log.info(f\"  ❌ Dollar-Vol < $10M:         {stats['dollar_volume']:>4}  ({stats['dollar_volume']/total*100:.1f}%)\")\n        log.info(f\"  ❌ Rel. Volume < Schwelle:  {stats['rel_volume']:>4}  ({stats['rel_volume']/total*100:.1f}%)\")\n        log.info(f\"  ❌ Keine News:                {stats['no_news']:>4}  ({stats['no_news']/total*100:.1f}%)\")\n        log.info(f\"  ✅ Bestanden:                {passed:>4}  ({passed/total*100:.1f}%)\")\n        log.info(\"=\" * 55)\n        if passed < 10:\n            log.warning(f\"Nur {passed} Kandidaten — wenig Material für Prescreening.\")\n        elif passed > 80:\n            log.warning(f\"{passed} Kandidaten — sehr viel, API-Kosten beachten.\")\n\n    def _fetch_news(self, ticker: str, info: dict) -> list[str]:\n        finnhub_key = os.getenv(\"FINNHUB_API_KEY\", \"\")\n        if finnhub_key:\n            news = self._fetch_finnhub_news(ticker, finnhub_key)\n            if news:\n                return news\n        if self.news_api_key:\n            company_name = info.get(\"longName\", ticker).split()[0]\n            news = self._fetch_newsapi(ticker, company_name)\n            if news:\n                return news\n        return self._fetch_yfinance_news(ticker)\n\n    def _fetch_finnhub_news(self, ticker: str, api_key: str) -> list[str]:\n        try:\n            since = (datetime.utcnow() - timedelta(days=2)).strftime(\"%Y-%m-%d\")\n            today = datetime.utcnow().strftime(\"%Y-%m-%d\")\n            resp  = requests.get(\n                \"https://finnhub.io/api/v1/company-news\",\n                params={\"symbol\": ticker, \"from\": since, \"to\": today, \"token\": api_key},\n                timeout=8,\n            )\n            resp.raise_for_status()\n            articles = resp.json()\n            return [a[\"headline\"] for a in (articles or [])[:5] if a.get(\"headline\")]\n        except Exception:\n            return []\n\n    def _fetch_newsapi(self, ticker: str, company_name: str) -> list[str]:\n        try:\n            since = (datetime.utcnow() - timedelta(days=2)).strftime(\"%Y-%m-%d\")\n            resp  = requests.get(\n                \"https://newsapi.org/v2/everything\",\n                params={\n                    \"q\": f'\"{ticker}\" OR \"{company_name}\"', \"from\": since,\n                    \"sortBy\": \"publishedAt\", \"pageSize\": 5,\n                    \"apiKey\": self.news_api_key, \"language\": \"en\",\n                },\n                timeout=8,\n            )\n            resp.raise_for_status()\n            return [a[\"title\"] for a in resp.json().get(\"articles\", []) if a.get(\"title\")]\n        except Exception:\n            return []\n\n    def _fetch_yfinance_news(self, ticker: str) -> list[str]:\n        try:\n            t     = yf.Ticker(ticker)\n            news  = t.news or []\n            since = datetime.utcnow() - timedelta(hours=48)\n            return [\n                n[\"title\"] for n in news[:5]\n                if n.get(\"title\") and\n                datetime.fromtimestamp(n.get(\"providerPublishTime\", 0)) >= since\n            ]\n        except Exception:\n            return []\n"
  },
  {
    "path": "modules/data_validator.py",
    "content": "\"\"\"\nmodules/data_validator.py v6.0\n\nFix 5: SEC EDGAR XBRL für EPS (statt veraltetem yfinance forwardEps)\n    EDGAR liefert geprüfte EPS-Daten direkt aus 10-Q/10-K Filings.\n    Kostenlos, kein API-Key nötig.\n    URL: https://data.sec.gov/api/xbrl/companyfacts/{CIK}.json\n\nFix 6: Echte Vega-Kalkulation im ROI-Gate\n    Bisher: Vega ignoriert → ROI-Schätzung zu optimistisch bei hohem IV-Rank\n    Jetzt:  Black-Scholes Vega berechnet → IV-Mean-Reversion-Verlust eingepreist\n    Formel: Vega-P&L = Vega × ΔIV (erwartete IV-Reduktion nach Event)\n\"\"\"\n\nfrom __future__ import annotations\nimport logging\nimport math\nimport os\nimport time\nfrom typing import Optional\n\nimport requests\nimport yfinance as yf\n\nlog = logging.getLogger(__name__)\n\n# Alpha Vantage Rate-Limit\n_AV_BASE       = \"https://www.alphavantage.co/query\"\n_AV_DELAY      = 12.5\n_last_av_call  = 0.0\n\n# SEC EDGAR\n_SEC_BASE      = \"https://data.sec.gov\"\n_SEC_HEADERS   = {\n    \"User-Agent\": \"newstoption-scanner/5.0 research@pcctrading.com\",\n    \"Accept-Encoding\": \"gzip, deflate\",\n}\n_cik_cache: dict[str, str] = {}\n\n\n# ── Fix 5: SEC EDGAR XBRL EPS ────────────────────────────────────────────────\n\ndef fetch_eps_sec_edgar(ticker: str) -> Optional[float]:\n    \"\"\"\n    Ruft EPS (TTM) direkt aus SEC EDGAR XBRL-Daten ab.\n    Quelle: 10-Q / 10-K Filings — geprüfte Zahlen, nicht veraltet.\n    Kein API-Key nötig.\n\n    Ablauf:\n    1. CIK (Central Index Key) für Ticker lookup via EDGAR Tickers API\n    2. EPS-Daten aus companyfacts API (XBRL Tag: us-gaap/EarningsPerShareBasic)\n    3. TTM berechnen aus letzten 4 Quartals-Filings\n    \"\"\"\n    try:\n        cik = _get_cik(ticker)\n        if not cik:\n            return None\n\n        url  = f\"{_SEC_BASE}/api/xbrl/companyfacts/CIK{cik}.json\"\n        resp = requests.get(url, headers=_SEC_HEADERS, timeout=15)\n\n        if resp.status_code != 200:\n            return None\n\n        facts = resp.json()\n        us_gaap = facts.get(\"facts\", {}).get(\"us-gaap\", {})\n\n        # EPS Basic (oder Diluted als Fallback)\n        for tag in (\"EarningsPerShareBasic\", \"EarningsPerShareDiluted\"):\n            eps_data = us_gaap.get(tag, {})\n            if not eps_data:\n                continue\n\n            # Nur USD-Einheit, Quartals-Filings (10-Q)\n            units = eps_data.get(\"units\", {}).get(\"USD/shares\", [])\n            if not units:\n                continue\n\n            # Neueste 4 Quartale für TTM\n            quarterly = [\n                u for u in units\n                if u.get(\"form\") in (\"10-Q\", \"10-K\") and u.get(\"val\") is not None\n            ]\n\n            if not quarterly:\n                continue\n\n            # Neueste 4 Einträge\n            quarterly.sort(key=lambda x: x.get(\"end\", \"\"), reverse=True)\n            ttm_eps = sum(u[\"val\"] for u in quarterly[:4])\n\n            log.info(\n                f\"  [{ticker}] SEC EDGAR EPS: TTM={ttm_eps:.2f} \"\n                f\"(aus {min(4, len(quarterly))} Quartalen, Tag={tag})\"\n            )\n            return round(ttm_eps, 4)\n\n        return None\n\n    except Exception as e:\n        log.debug(f\"SEC EDGAR EPS Fehler für {ticker}: {e}\")\n        return None\n\n\ndef _get_cik(ticker: str) -> Optional[str]:\n    \"\"\"Lookup CIK (Central Index Key) für einen Ticker via EDGAR.\"\"\"\n    if ticker in _cik_cache:\n        return _cik_cache[ticker]\n\n    try:\n        resp = requests.get(\n            f\"{_SEC_BASE}/files/company_tickers.json\",\n            headers=_SEC_HEADERS,\n            timeout=10,\n        )\n        if resp.status_code != 200:\n            return None\n\n        data = resp.json()\n        for _, company in data.items():\n            if company.get(\"ticker\", \"\").upper() == ticker.upper():\n                cik = str(company[\"cik_str\"]).zfill(10)\n                _cik_cache[ticker] = cik\n                return cik\n\n        return None\n\n    except Exception as e:\n        log.debug(f\"CIK-Lookup Fehler für {ticker}: {e}\")\n        return None\n\n\ndef cross_check_eps_edgar(\n    ticker: str,\n    yfinance_eps: float,\n    tolerance: float = 0.10,\n) -> dict:\n    \"\"\"\n    Cross-Check: yfinance EPS vs. SEC EDGAR (offizielle Filings).\n\n    Priorität:\n    1. SEC EDGAR (geprüfte Zahlen) — primäre Quelle\n    2. Alpha Vantage (Fallback wenn EDGAR fehlschlägt)\n    3. yfinance allein (wenn beides fehlschlägt)\n\n    Returns:\n        {\n            \"sec_eps\":         float or None,\n            \"yf_eps\":          float,\n            \"deviation_pct\":   float or None,\n            \"consistent\":      bool,\n            \"confidence\":      \"high\" | \"medium\" | \"low\",\n            \"source\":          \"SEC_EDGAR\" | \"ALPHA_VANTAGE\" | \"YFINANCE_ONLY\",\n            \"data_anomaly\":    bool,  # True wenn >20% Abweichung → Claude warnen\n        }\n    \"\"\"\n    sec_eps = fetch_eps_sec_edgar(ticker)\n    source  = \"YFINANCE_ONLY\"\n\n    if sec_eps is None:\n        # Fallback: Alpha Vantage\n        sec_eps = _fetch_eps_alphavantage(ticker)\n        if sec_eps is not None:\n            source = \"ALPHA_VANTAGE\"\n    else:\n        source = \"SEC_EDGAR\"\n\n    if sec_eps is None:\n        return {\n            \"sec_eps\": None, \"yf_eps\": yfinance_eps,\n            \"deviation_pct\": None, \"consistent\": True,\n            \"confidence\": \"medium\", \"source\": \"YFINANCE_ONLY\",\n            \"data_anomaly\": False,\n        }\n\n    if yfinance_eps == 0 or yfinance_eps is None:\n        return {\n            \"sec_eps\": sec_eps, \"yf_eps\": yfinance_eps,\n            \"deviation_pct\": None, \"consistent\": False,\n            \"confidence\": \"low\", \"source\": source,\n            \"data_anomaly\": True,\n        }\n\n    deviation = abs(sec_eps - yfinance_eps) / abs(yfinance_eps)\n    consistent  = deviation <= tolerance\n    data_anomaly = deviation > 0.20   # >20% → Claude im Prompt warnen\n\n    confidence = \"high\" if deviation < 0.02 else (\"medium\" if consistent else \"low\")\n\n    if data_anomaly:\n        log.warning(\n            f\"  [{ticker}] DATA ANOMALY: yfinance={yfinance_eps:.2f} vs \"\n            f\"{source}={sec_eps:.2f} Abweichung={deviation:.1%} > 20% \"\n            f\"→ Signal-Qualität reduziert.\"\n        )\n    elif not consistent:\n        log.warning(\n            f\"  [{ticker}] EPS-Inkonsistenz: yf={yfinance_eps:.2f} \"\n            f\"vs {source}={sec_eps:.2f} ({deviation:.1%})\"\n        )\n\n    return {\n        \"sec_eps\":       round(sec_eps, 4),\n        \"yf_eps\":        round(yfinance_eps, 4),\n        \"deviation_pct\": round(deviation, 4),\n        \"consistent\":    consistent,\n        \"confidence\":    confidence,\n        \"source\":        source,\n        \"data_anomaly\":  data_anomaly,\n    }\n\n\ndef _fetch_eps_alphavantage(ticker: str) -> Optional[float]:\n    global _last_av_call\n    api_key = os.getenv(\"ALPHA_VANTAGE_API_KEY\", \"\")\n    if not api_key:\n        return None\n    elapsed = time.time() - _last_av_call\n    if elapsed < _AV_DELAY:\n        time.sleep(_AV_DELAY - elapsed)\n    _last_av_call = time.time()\n    try:\n        resp = requests.get(\n            _AV_BASE,\n            params={\"function\": \"OVERVIEW\", \"symbol\": ticker, \"apikey\": api_key},\n            timeout=10,\n        )\n        data    = resp.json()\n        eps_str = data.get(\"EPS\", \"\")\n        if eps_str and eps_str not in (\"None\", \"-\", \"\"):\n            return float(eps_str)\n        return None\n    except Exception:\n        return None\n\n\n# ── Fix 6: Echte Vega-Kalkulation im ROI-Gate ────────────────────────────────\n\ndef compute_option_roi_with_vega(option: dict, simulation: dict) -> dict:\n    \"\"\"\n    Fix 6: ROI-Berechnung mit Vega-Adjustment.\n\n    Bisher ignoriert: IV Mean-Reversion nach News-Event.\n    Typisches Muster:\n      - News → IV springt +30-50% (Fear/Greed)\n      - 2-4 Wochen später: IV normalisiert sich -20-30%\n      - Long Call verliert durch Vega auch wenn Aktie steigt\n\n    Formel:\n      roi_delta_approx = stock_move × delta × leverage\n      vega_loss        = vega × expected_iv_drop\n      roi_net          = roi_delta_approx - spread_cost - vega_loss\n\n    Delta und Vega aus Black-Scholes (vereinfacht, ohne Zinsterm).\n    \"\"\"\n    bid     = option.get(\"bid\", 0.0) or 0.0\n    ask     = option.get(\"ask\", 0.0) or 0.0\n    strike  = option.get(\"strike\", 0.0) or 0.0\n    iv      = option.get(\"implied_vol\", 0.30) or 0.30\n    dte     = option.get(\"dte\", 120) or 120\n\n    if ask <= 0:\n        return _roi_empty()\n\n    spread_pct = (ask - bid) / ask if ask > 0 else 0.0\n\n    current = simulation.get(\"current_price\", 0.0) or 0.0\n    target  = simulation.get(\"target_price\", 0.0) or 0.0\n    iv_rank = simulation.get(\"iv_rank\", 50.0) or 50.0\n\n    if current <= 0 or target <= current:\n        roi_gross = 0.0\n        vega_loss = 0.0\n    else:\n        T = dte / 365.0   # Zeit in Jahren\n\n        # Black-Scholes Delta und Vega\n        delta_bs, vega_bs = _bs_delta_vega(current, strike, iv, T)\n\n        # Erwarteter Kursgewinn\n        expected_move = (target - current) / current\n        leverage      = current / ask if ask > 0 else 1.0\n\n        # Delta-approximierter ROI\n        roi_delta = expected_move * delta_bs * leverage\n\n        # Vega-Verlust durch IV Mean-Reversion\n        # Faustregel: Bei IV-Rank > 70% → IV fällt nach Event ~20-30%\n        # Bei IV-Rank 50-70% → IV fällt ~10-15%\n        # Bei IV-Rank < 50% → IV-Crush unwahrscheinlich, ~0-5%\n        if iv_rank >= 70:\n            expected_iv_drop = 0.25   # 25% IV-Reduktion\n        elif iv_rank >= 50:\n            expected_iv_drop = 0.12\n        else:\n            expected_iv_drop = 0.05\n\n        # Vega-P&L: Vega × ΔIV × leverage\n        # Vega in $ pro 1 Punkt IV, normalisiert auf Option-Preis\n        vega_normalized = vega_bs * iv * expected_iv_drop * leverage\n        vega_loss       = max(vega_normalized, 0.0)\n\n        roi_gross = roi_delta\n        log.debug(\n            f\"    ROI-Detail: delta={delta_bs:.2f} vega={vega_bs:.4f} \"\n            f\"iv_drop={expected_iv_drop:.0%} vega_loss={vega_loss:.3f}\"\n        )\n\n    # Spread-Kosten (Round-trip)\n    roi_net = roi_gross - (spread_pct * 2) - vega_loss\n\n    min_roi   = float(os.getenv(\"MIN_OPTION_ROI\", \"0.15\"))\n    passes    = roi_net >= min_roi\n\n    if not passes:\n        log.info(\n            f\"    ROI-GATE: gross={roi_gross:.1%} \"\n            f\"spread={spread_pct:.1%} vega_loss={vega_loss:.1%} \"\n            f\"net={roi_net:.1%} < {min_roi:.0%} → abgelehnt.\"\n        )\n\n    return {\n        \"roi_gross\":          round(roi_gross, 4),\n        \"roi_net\":            round(roi_net, 4),\n        \"spread_pct\":         round(spread_pct, 4),\n        \"vega_loss\":          round(vega_loss, 4),\n        \"passes_roi_gate\":    passes,\n        \"min_roi_threshold\":  min_roi,\n        \"iv_rank_used\":       iv_rank,\n    }\n\n\ndef _bs_delta_vega(S: float, K: float, sigma: float, T: float) -> tuple[float, float]:\n    \"\"\"\n    Black-Scholes Delta und Vega für eine Call-Option.\n    Vereinfacht: r=0 (für kurze Berechnungszwecke ausreichend).\n\n    Args:\n        S:     Aktueller Kurs\n        K:     Strike\n        sigma: Implizite Volatilität (z.B. 0.30 = 30%)\n        T:     Zeit in Jahren\n\n    Returns:\n        (delta, vega)\n    \"\"\"\n    if sigma <= 0 or T <= 0 or S <= 0 or K <= 0:\n        return 0.5, 0.0\n\n    try:\n        d1    = (math.log(S / K) + 0.5 * sigma ** 2 * T) / (sigma * math.sqrt(T))\n        delta = _norm_cdf(d1)\n        vega  = S * _norm_pdf(d1) * math.sqrt(T)\n        return round(delta, 4), round(vega, 4)\n    except Exception:\n        return 0.5, 0.0\n\n\ndef _norm_cdf(x: float) -> float:\n    \"\"\"Kumulative Normalverteilung.\"\"\"\n    return (1.0 + math.erf(x / math.sqrt(2.0))) / 2.0\n\n\ndef _norm_pdf(x: float) -> float:\n    \"\"\"Normalverteilungs-PDF.\"\"\"\n    return math.exp(-0.5 * x ** 2) / math.sqrt(2.0 * math.pi)\n\n\ndef _roi_empty() -> dict:\n    return {\n        \"roi_gross\": 0.0, \"roi_net\": 0.0,\n        \"spread_pct\": 0.0, \"vega_loss\": 0.0,\n        \"passes_roi_gate\": False,\n        \"min_roi_threshold\": 0.15,\n        \"iv_rank_used\": 50.0,\n    }\n\n\ndef validate_candidate_data(candidate: dict) -> dict:\n    \"\"\"Kombinierte Daten-Validierung: SEC EDGAR EPS + Confidence-Score.\"\"\"\n    info   = candidate.get(\"info\", {})\n    ticker = candidate.get(\"ticker\", \"\")\n    yf_eps = info.get(\"trailingEps\") or info.get(\"forwardEps\") or 0.0\n\n    eps_check = cross_check_eps_edgar(ticker, yf_eps)\n\n    candidate[\"data_validation\"] = {\"eps_cross_check\": eps_check}\n    candidate[\"data_confidence\"]  = eps_check[\"confidence\"]\n    candidate[\"data_anomaly\"]     = eps_check.get(\"data_anomaly\", False)\n\n    return candidate\n\n# Backward-Kompatibilitäts-Alias (pipeline.py importiert compute_option_roi)\ncompute_option_roi = compute_option_roi_with_vega\n"
  },
  {
    "path": "modules/deep_analysis.py",
    "content": "\"\"\"\nmodules/deep_analysis.py v9.0\n\nÄnderungen v9.0:\n    #10 catalyst_confidence (0-10) als neues JSON-Feld.\n        Separater Score für \"Wie sicher ist der Catalyst einzutreten?\"\n        Unabhängig vom Gesamt-Impact — ein Catalyst kann materialreich sein\n        (Impact=8) aber unsicher (confidence=3). Wird in RL-Observation\n        und Email ausgegeben.\n\n    #12 Mega-Cap-Filter im System-Prompt.\n        Bei Marktkapitalisierung > $200 Mrd. expliziter Hinweis auf\n        Informationseffizienz. Impact > 6 bei Mega-Caps erfordert\n        besonders starke Begründung. Marktkapitalisierung wird im\n        Analyse-Template angezeigt.\n\n    #3  mc_hit_rate wird im returned result dict gespeichert,\n        damit options_designer.py darauf zugreifen kann ohne\n        erneuten quick_mc-Lookup.\n\nÄnderungen v8.2:\n    - FIX: _get_48h_move() nutzt period='10d' und vergleicht volle Handelstage.\n\nÄnderungen v8.1:\n    - Analysedatum im SYSTEM_PROMPT + ANALYSIS_TEMPLATE\n    - asymmetry_reasoning: Genau 3 Sätze, max 500 Zeichen\n\"\"\"\n\nimport json\nimport logging\nimport os\nfrom datetime import datetime, timedelta\nfrom typing import Optional\n\nimport anthropic\nimport yfinance as yf\n\nfrom modules.config        import cfg\nfrom modules.macro_context import get_macro_context\n\nlog = logging.getLogger(__name__)\n\n# v9.0 #12: Mega-Cap-Schwelle in USD\nMEGA_CAP_THRESHOLD = 200_000_000_000  # $200 Mrd.\n\nSYSTEM_PROMPT = \"\"\"Du bist ein skeptischer Quant-Analyst mit Fokus auf mittelfristige Optionsstrategien (2-6 Monate). Das aktuelle Jahr ist {current_year}. Alle Jahreszahlen in deinen Analysen müssen ≥ {current_year} sein. Ignoriere historische Jahreszahlen aus deinen Trainingsdaten — orientiere dich ausschließlich am Analysedatum im Prompt.\n\nPFLICHT-ABLAUF — in dieser Reihenfolge, keine Ausnahme:\n\nSCHRITT 1 — RED TEAM (zuerst immer):\nFinde die 3 stärksten Argumente GEGEN diesen Trade.\nDenke wie ein Short-Seller. Was könnte das Signal zerstören?\nTypische Red Flags: Überbewertung, Sektor-Gegenwind, fragliche Datenqualität,\nMakro-Risiko, IV-Crush, Katalysator bereits eingepreist.\n\nSCHRITT 2 — STATISTIK-CHECK:\nIst die MC Hit-Rate realistisch gegeben historischer Volatilität?\nWarnung wenn Hit-Rate > 80% (Modell möglicherweise zu optimistisch).\n\nSCHRITT 3 — MAKRO-KONTEXT:\nPasst das Signal zum aktuellen Zinsumfeld?\nRezessives Umfeld (invertierte Kurve) → erhöhte Skepsis bei BULLISH-Signalen.\n\nSCHRITT 4 — MEGA-CAP-CHECK (wenn Marktkapitalisierung > $200 Mrd.):\nMega-Cap-Warnung: Bei Aktien mit Marktkapitalisierung > $200 Mrd. ist die\nInformationseffizienz extrem hoch. Große institutionelle Desk-Coverage bedeutet,\ndass öffentliche Informationen innerhalb von Minuten eingepreist werden.\nStrukturelle Underreactions bei Mega-Caps sind deutlich seltener als bei Mid-Caps.\nImpact > 6 bei Mega-Caps erfordert einen sehr konkreten, nicht-öffentlichen Informationsvorsprung.\nIm Zweifel: Impact auf 5 begrenzen wenn nur öffentliche Informationen vorliegen.\n\nSCHRITT 5 — ERST JETZT: Finale Bewertung.\nIm Zweifel BEARISH. Nur eindeutige strukturelle Signale verdienen Impact > 7.\n\nAntworte ausschließlich mit validem JSON.\"\"\"\n\nANALYSIS_TEMPLATE = \"\"\"=== ANALYSEDATUM: {analysis_date} (WICHTIG: Alle Jahreszahlen müssen ≥ {analysis_year} sein) ===\n\n=== MAKRO-KONTEXT ===\n{macro_context}\n\n=== TICKER: {ticker} ===\nAktueller Preis: ${current_price:.2f}\nMarktkapitalisierung: {market_cap_str}{mega_cap_flag}\nSektor: {sector}\nHaiku-Prescreening: {prescreen_reason} [Kategorie: {prescreen_category}]\nWICHTIG: Wenn deine Bewertung der Direction von der Haiku-Einschätzung abweicht,\nerkläre explizit warum im asymmetry_reasoning.\nEPS (yfinance): {forward_eps} | EPS (SEC EDGAR): {sec_eps}\nEPS-Abweichung: {eps_deviation}\n48h-Preisbewegung: {move_48h:+.1%}\n\n=== QUICK MONTE CARLO (Vorfilter) ===\nHit-Rate: {mc_hit_rate:.1%} ({mc_paths} Pfade, {mc_days}d)\nInterpretation: {mc_interpretation}\n\n=== NEWS (letzte 48h) ===\n{news_text}\n\n{data_anomaly_warning}\n\n=== DEINE AUFGABE ===\nFolge dem Pflicht-Ablauf: Red Team → Statistik → Makro → {mega_cap_step}→ Finale Bewertung.\n\nAntworte NUR mit diesem JSON:\n{{\n    \"red_team\": {{\n        \"argument_1\": \"<Stärkstes Argument gegen den Trade — Min 2 vollständige Sätze, mindestens 200 Zeichen, konkret>\",\n        \"argument_2\": \"<Zweitstärkstes Argument>\",\n        \"argument_3\": \"<Drittstärkstes Argument>\",\n        \"red_team_verdict\": \"VETO\" oder \"PASSIERT\"\n    }},\n    \"stats_check\": {{\n        \"mc_assessment\": \"<Ist {mc_hit_rate:.0%} realistisch?>\",\n        \"concern_level\": \"low\" oder \"medium\" oder \"high\"\n    }},\n    \"impact\": <0-10>,\n    \"surprise\": <0-10>,\n    \"direction\": \"BULLISH\" oder \"BEARISH\",\n    \"bear_case_severity\": <0-10>,\n    \"time_to_materialization\": \"4-8 Wochen\" oder \"2-3 Monate\" oder \"6 Monate\",\n    \"catalyst_confidence\": <0-10>,\n    \"asymmetry_reasoning\": \"<Genau 3 vollständige Sätze — warum der Markt unterreagiert hat. Maximal 500 Zeichen. Kein Satz darf abgebrochen werden>\",\n    \"catalyst\": \"<Spezifischer Katalysator>\",\n    \"bear_case\": \"<Stärkstes Gegenargument>\",\n    \"macro_assessment\": \"<Bewertung im aktuellen Makro-Umfeld>\",\n    \"data_confidence\": \"high\" oder \"medium\" oder \"low\"\n}}\"\"\"\n\n\ndef _format_market_cap(market_cap: Optional[int]) -> str:\n    if not market_cap or market_cap <= 0:\n        return \"Unbekannt\"\n    if market_cap >= 1_000_000_000_000:\n        return f\"${market_cap/1_000_000_000_000:.1f}B (Trillion)\"\n    if market_cap >= 1_000_000_000:\n        return f\"${market_cap/1_000_000_000:.1f} Mrd.\"\n    return f\"${market_cap/1_000_000:.0f} Mio.\"\n\n\nclass DeepAnalysis:\n\n    def __init__(self):\n        self.client = anthropic.Anthropic(api_key=os.getenv(\"ANTHROPIC_API_KEY\"))\n        self._macro = get_macro_context()\n        if self._macro[\"data_available\"]:\n            log.info(\n                f\"Makro: {self._macro['macro_regime']} | \"\n                f\"YC={self._macro.get('yield_curve_desc', 'n/a')}\"\n            )\n\n    def run(self, shortlist: list[dict]) -> list[dict]:\n        analyses = []\n        for candidate in shortlist:\n            analysis = self._analyze(candidate)\n            if not analysis:\n                continue\n\n            red_team = analysis.get(\"red_team\", {})\n            arg1 = (red_team.get(\"argument_1\", \"\") or \"\").lower()\n            narrativ_mismatch = any(w in arg1 for w in [\n                \"narrativ-mismatch\", \"narrative mismatch\", \"trifft das geschäftsmodell\",\n                \"falsches narrativ\", \"datenfehler in der vorselektion\",\n                \"grundlegendes missverständnis\", \"trifft nicht zu\"\n            ])\n            if narrativ_mismatch and red_team.get(\"red_team_verdict\") != \"VETO\":\n                log.warning(\n                    f\"  [{candidate['ticker']}] AUTO-VETO: Narrativ-Mismatch erkannt → \"\n                    f\"'{arg1[:60]}'\"\n                )\n                red_team[\"red_team_verdict\"] = \"VETO\"\n\n            if red_team.get(\"red_team_verdict\") == \"VETO\":\n                log.info(\n                    f\"  [{candidate['ticker']}] RED TEAM VETO → verworfen. \"\n                    f\"Grund: {red_team.get('argument_1', 'n/a')}\"\n                )\n                continue\n\n            stats = analysis.get(\"stats_check\", {})\n            if stats.get(\"concern_level\") == \"high\" and analysis.get(\"impact\", 0) > 6:\n                original = analysis[\"impact\"]\n                analysis[\"impact\"] = 6\n                log.info(\n                    f\"  [{candidate['ticker']}] Stats-Concern HIGH: \"\n                    f\"Impact {original} → 6 gedeckelt\"\n                )\n\n            haiku_reason  = candidate.get(\"prescreen_reason\", \"\").lower()\n            sonnet_dir    = analysis.get(\"direction\", \"\")\n            haiku_bullish = any(w in haiku_reason for w in\n                [\"positiv\", \"erhöht\", \"wachstum\", \"deal\", \"akquisition\",\n                 \"expansion\", \"gewinn\", \"stieg\", \"prognose\"])\n            if haiku_bullish and sonnet_dir == \"BEARISH\":\n                log.warning(\n                    f\"  [{candidate['ticker']}] ⚠️ WIDERSPRUCH: \"\n                    f\"Haiku=BULLISH ({haiku_reason[:50]}) \"\n                    f\"aber Sonnet=BEARISH → Impact={analysis['impact']} \"\n                    f\"gedeckelt auf max 6\"\n                )\n                if analysis.get(\"impact\", 0) > 6:\n                    analysis[\"impact\"] = 6\n                analysis[\"direction_conflict\"] = True\n            else:\n                analysis[\"direction_conflict\"] = False\n\n            cat_conf = analysis.get(\"catalyst_confidence\")\n            log.info(\n                f\"  [{candidate['ticker']}] \"\n                f\"Impact={analysis['impact']} \"\n                f\"Surprise={analysis['surprise']} \"\n                f\"Direction={analysis['direction']} \"\n                f\"CatalystConf={cat_conf}/10 \"\n                f\"TTM={analysis.get('time_to_materialization','?')} \"\n                f\"RedTeam={red_team.get('red_team_verdict', '?')} \"\n                f\"{'⚠️ KONFLIKT' if analysis.get('direction_conflict') else '✅'}\"\n            )\n\n            analyses.append({**candidate, \"deep_analysis\": analysis})\n\n        return analyses\n\n    def _analyze(self, candidate: dict) -> Optional[dict]:\n        ticker  = candidate.get(\"ticker\", \"\")\n        info    = candidate.get(\"info\", {})\n        news    = candidate.get(\"news\", [])\n\n        current_price = float(\n            info.get(\"currentPrice\") or\n            info.get(\"regularMarketPrice\") or 0\n        )\n        forward_eps  = info.get(\"forwardEps\") or info.get(\"trailingEps\") or 0.0\n        sector       = info.get(\"sector\", \"Unknown\")\n        market_cap   = info.get(\"marketCap\") or 0\n        move_48h     = self._get_48h_move(ticker)\n\n        eps_check     = candidate.get(\"data_validation\", {}).get(\"eps_cross_check\", {})\n        sec_eps       = eps_check.get(\"sec_eps\", \"n/a\")\n        dev_pct       = eps_check.get(\"deviation_pct\")\n        eps_deviation = f\"{dev_pct:.1%}\" if dev_pct is not None else \"n/a\"\n\n        data_anomaly    = candidate.get(\"data_anomaly\", False)\n        anomaly_warning = \"\"\n        if data_anomaly:\n            anomaly_warning = (\n                \"⚠️ DATA ANOMALY: EPS-Daten weichen >20% ab. \"\n                \"Red Team sollte Datenqualität als Argument 1 nennen. \"\n                \"data_confidence muss 'low' sein.\"\n            )\n\n        qmc         = candidate.get(\"quick_mc\", {})\n        mc_hit_rate = qmc.get(\"hit_rate\", 0.0)\n        mc_paths    = qmc.get(\"n_paths\", 0)\n        mc_days     = qmc.get(\"n_days\", 30)\n\n        if mc_hit_rate == 0:\n            mc_interpretation = \"Kein Quick MC durchgeführt — keine Statistik verfügbar.\"\n        elif mc_hit_rate > 0.80:\n            mc_interpretation = \"WARNUNG: >80% Hit-Rate ist ungewöhnlich hoch — Modell möglicherweise zu optimistisch.\"\n        elif mc_hit_rate > 0.60:\n            mc_interpretation = \"Solide statistische Basis — realistisch für 2-6M Horizont.\"\n        else:\n            mc_interpretation = f\"Nur {mc_hit_rate:.0%} — knapp über Minimum-Gate, erhöhte Vorsicht.\"\n\n        # v9.0 #12: Mega-Cap-Hinweis\n        market_cap_str = _format_market_cap(market_cap)\n        is_mega_cap    = market_cap >= MEGA_CAP_THRESHOLD\n        mega_cap_flag  = (\n            f\"\\n⚠️ MEGA-CAP: Informationseffizienz sehr hoch — Impact > 6 erfordert konkreten Edge!\"\n            if is_mega_cap else \"\"\n        )\n        mega_cap_step = \"Mega-Cap-Check → \" if is_mega_cap else \"\"\n\n        news_text = \"\\n\".join(f\"- {h}\" for h in news[:8]) if news else \"Keine News.\"\n\n        macro_text = (\n            self._macro.get(\"claude_context\", \"Makro: nicht verfügbar\")\n            if self._macro.get(\"data_available\")\n            else \"Makro-Kontext: FRED nicht erreichbar.\"\n        )\n\n        prescreen_reason   = candidate.get(\"prescreen_reason\", \"n/a\")\n        prescreen_category = candidate.get(\"prescreen_category\", \"n/a\")\n\n        from datetime import datetime as _dt\n        _today = _dt.now()\n        prompt = ANALYSIS_TEMPLATE.format(\n            analysis_date      = _today.strftime(\"%d.%m.%Y\"),\n            analysis_year      = _today.year,\n            macro_context      = macro_text,\n            ticker             = ticker,\n            current_price      = current_price,\n            market_cap_str     = market_cap_str,\n            mega_cap_flag      = mega_cap_flag,\n            mega_cap_step      = mega_cap_step,\n            sector             = sector,\n            prescreen_reason   = prescreen_reason,\n            prescreen_category = prescreen_category,\n            forward_eps        = forward_eps,\n            sec_eps            = sec_eps,\n            eps_deviation      = eps_deviation,\n            move_48h           = move_48h,\n            mc_hit_rate        = mc_hit_rate,\n            mc_paths           = mc_paths,\n            mc_days            = mc_days,\n            mc_interpretation  = mc_interpretation,\n            news_text          = news_text,\n            data_anomaly_warning = anomaly_warning,\n        )\n\n        try:\n            response = self.client.messages.create(\n                model      = cfg.models.deep_analysis,\n                max_tokens = 1600,\n                system     = SYSTEM_PROMPT.format(current_year=_today.year),\n                messages   = [{\"role\": \"user\", \"content\": prompt}],\n            )\n            raw = response.content[0].text.strip()\n\n            if \"```\" in raw:\n                parts = raw.split(\"```\")\n                raw   = parts[1].lstrip(\"json\").strip() if len(parts) > 1 else raw\n            if not raw.startswith(\"{\"):\n                idx = raw.find(\"{\")\n                if idx != -1:\n                    raw = raw[idx:]\n\n            try:\n                result = json.loads(raw)\n            except json.JSONDecodeError as je:\n                log.warning(f\"  [{ticker}] JSON teilweise abgeschnitten: {je} → Reparatur-Versuch\")\n                last_comma = raw.rfind('\",')\n                cutoff = max(last_comma, 0)\n                if cutoff > 100:\n                    raw_fixed = raw[:cutoff] + '\"}'\n                    try:\n                        result = json.loads(raw_fixed)\n                        log.info(f\"  [{ticker}] JSON repariert (gekürzt auf {cutoff} Zeichen)\")\n                    except Exception:\n                        log.warning(f\"  [{ticker}] JSON nicht reparierbar → Fallback-Response\")\n                        result = {\n                            \"red_team\": {\"argument_1\": \"JSON-Parse-Fehler\", \"red_team_verdict\": \"PASSIERT\"},\n                            \"stats_check\": {\"mc_assessment\": \"n/a\", \"concern_level\": \"medium\"},\n                            \"impact\": 3, \"surprise\": 3, \"direction\": \"BULLISH\",\n                            \"bear_case_severity\": 5,\n                            \"time_to_materialization\": \"2-3 Monate\",\n                            \"catalyst_confidence\": 5,\n                            \"asymmetry_reasoning\": \"JSON-Parse-Fehler — manuelle Prüfung empfohlen\",\n                            \"catalyst\": \"n/a\", \"bear_case\": \"n/a\",\n                            \"macro_assessment\": \"n/a\", \"data_confidence\": \"low\"\n                        }\n                else:\n                    raise\n\n            # Sicherstellen dass catalyst_confidence vorhanden ist (Fallback: 5)\n            if \"catalyst_confidence\" not in result:\n                result[\"catalyst_confidence\"] = 5\n\n            result[\"macro_regime\"]  = self._macro.get(\"macro_regime\", \"unknown\")\n            result[\"macro_context\"] = {\n                \"yield_curve\": self._macro.get(\"yield_curve_spread\"),\n                \"regime\":      self._macro.get(\"macro_regime\"),\n            }\n            # v9.0 #3: mc_hit_rate im Result speichern für options_designer\n            result[\"mc_hit_rate\"]  = mc_hit_rate\n            result[\"is_mega_cap\"]  = is_mega_cap\n            result[\"market_cap\"]   = market_cap\n\n            return result\n\n        except Exception as e:\n            log.error(f\"  [{ticker}] Deep Analysis Fehler: {e}\")\n            return None\n\n    # ── FIX v8.2: 48h-Move Timing ────────────────────────────────────────────\n    def _get_48h_move(self, ticker: str) -> float:\n        \"\"\"\n        Berechnet die Preisbewegung der letzten 2 vollen Handelstage.\n\n        FIX v8.2: Nutzt period='10d' und vergleicht volle Handelstage:\n          close[-2] = gestriger Close (letzter abgeschlossener Tag)\n          close[-4] = vor-3-Tage-Close (48h-Fenster)\n        \"\"\"\n        try:\n            hist = yf.Ticker(ticker).history(period=\"10d\")\n            close = hist[\"Close\"]\n            if hasattr(close, \"iloc\"):\n                close = close.squeeze()\n            if len(close) < 5:\n                return 0.0\n            return float((close.iloc[-2] - close.iloc[-4]) / close.iloc[-4])\n        except Exception:\n            return 0.0\n"
  },
  {
    "path": "modules/email_reporter.py",
    "content": "\"\"\"\nmodules/email_reporter.py v9.0\n\nÄnderungen v9.0:\n    #5  Greeks-Block im Trade-Card:\n        Delta (P(ITM)-Approximation), Theta/Tag, Vega-Exposure, Breakeven.\n        Trader sieht jetzt nicht nur ROI, sondern auch wie empfindlich\n        der Trade auf Seitwärtsbewegung und IV-Crush reagiert.\n\n    #7  MC-Probabilitäten im Report:\n        Hit-Rate aus Monte Carlo (P(Kurs > Ziel)) und Catalyst-Confidence\n        werden als separater Block angezeigt. Macht Wahrscheinlichkeits-\n        grundlage für den ROI transparent.\n\nÄnderungen v8.2:\n    - Integration der Exit-Regeln (Take-Profit, Stop-Loss, Time-Exit)\n    - Textlimit: [:700] für Best Argument For/Against\n    - Score-Schwelle für Email: >= 50\n    - Fix: pipeline_stats werden auch im Kein-Trade-Fall durchgereicht\n\"\"\"\n\nimport logging\nimport os\nimport smtplib\nfrom datetime import datetime\nfrom email.mime.multipart import MIMEMultipart\nfrom email.mime.text import MIMEText\n\nlog = logging.getLogger(__name__)\n\n\ndef send_status_email(pipeline_stats: dict, today: str) -> None:\n    trades  = pipeline_stats.get(\"trades\", 0)\n    subject = (\n        f\"Adaptive Asymmetry-Scanner – Trade Empfehlung – {today}\"\n        if trades > 0\n        else f\"Adaptive Asymmetry-Scanner – Kein Trade – {today}\"\n    )\n    html = _build_status_email(pipeline_stats, today)\n    _send_smtp(subject, html)\n\n\ndef send_email(proposals: list[dict], today: str, pipeline_stats: dict | None = None) -> None:\n    pipeline_stats = pipeline_stats or {}\n    proposals = [p for p in proposals\n                 if p.get(\"trade_score\", {}).get(\"total\", 0) >= 50]\n    if proposals:\n        html    = _build_trade_email(proposals, today)\n        subject = f\"Adaptive Asymmetry-Scanner – Trade Empfehlung – {today}\"\n    else:\n        stats   = {**pipeline_stats, \"trades\": 0}\n        html    = _build_status_email(stats, today)\n        subject = f\"Adaptive Asymmetry-Scanner – Kein Trade – {today}\"\n    _send_smtp(subject, html)\n\n\ndef _build_status_email(stats: dict, today: str) -> str:\n    vix         = stats.get(\"vix\")\n    trades      = stats.get(\"trades\", 0)\n    header_col  = \"#16a34a\" if trades > 0 else \"#0f172a\"\n    status_icon = \"🎯\" if trades > 0 else \"📊\"\n    status_text = \"Trade Empfehlung\" if trades > 0 else \"Kein Trade heute\"\n\n    funnel = [\n        (f\"{stats.get('universe', 0)} Ticker im Universum\", \"📋\", True),\n        (f\"{stats.get('candidates', 0)} nach Hard-Filter (Cap>2B, Vol>1M)\", \"🔍\", stats.get(\"candidates\", 0) > 0),\n        (f\"{stats.get('prescreened', 0)} nach Prescreening (Haiku)\", \"🤖\", stats.get(\"prescreened\", 0) > 0),\n        (f\"{stats.get('roi_precheck', 0)} nach ROI Pre-Check\", \"💰\", stats.get(\"roi_precheck\", 0) > 0),\n        (f\"{stats.get('analyzed', 0)} nach Deep Analysis (Sonnet)\", \"🧠\", stats.get(\"analyzed\", 0) > 0),\n        (f\"{stats.get('quick_mc', 0)} nach Quick Monte Carlo\", \"🎲\", stats.get(\"quick_mc\", 0) > 0),\n        (f\"{trades} finale Trade-Vorschläge\", \"🏆\" if trades > 0 else \"❌\", trades > 0),\n    ]\n\n    rows = \"\"\n    for label, icon, active in funnel:\n        bg    = \"#f0fdf4\" if active else \"#fef2f2\"\n        color = \"#16a34a\" if active else \"#dc2626\"\n        rows += f\"\"\"<tr><td style=\"padding:9px 16px;font-size:13px;color:{color};background:{bg};border-bottom:1px solid #e2e8f0;\">{icon}&nbsp; {label}</td></tr>\"\"\"\n\n    vix_str = f\"{float(vix):.2f}\" if vix else \"–\"\n\n    return f\"\"\"<!DOCTYPE html><html><body style=\"font-family:Arial,sans-serif;margin:0;padding:0;background:#f8fafc;\">\n<div style=\"max-width:620px;margin:30px auto;background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.1);\">\n  <div style=\"background:{header_col};padding:28px 32px;\">\n    <div style=\"font-size:28px;margin-bottom:6px;\">{status_icon}</div>\n    <div style=\"color:#fff;font-size:22px;font-weight:bold;\">Adaptive Asymmetry-Scanner</div>\n    <div style=\"color:rgba(255,255,255,0.85);font-size:16px;margin-top:4px;\">{status_text}</div>\n    <div style=\"color:rgba(255,255,255,0.6);font-size:13px;margin-top:6px;\">{today} &nbsp;·&nbsp; VIX {vix_str} &nbsp;·&nbsp; v9.0</div>\n  </div>\n  <div style=\"padding:24px 32px;\">\n    <table style=\"width:100%;border-collapse:collapse;border-radius:8px;overflow:hidden;border:1px solid #e2e8f0;\">{rows}</table>\n  </div>\n  <div style=\"padding:14px 32px;background:#f8fafc;border-top:1px solid #e2e8f0;font-size:11px;color:#94a3b8;text-align:center;\">\n    Adaptive Asymmetry-Scanner v9.0 &nbsp;·&nbsp; {datetime.utcnow().strftime('%H:%M UTC')}\n  </div>\n</div></body></html>\"\"\"\n\n\ndef _build_trade_email(proposals: list[dict], today: str) -> str:\n    cards = \"\"\n    for i, p in enumerate(proposals, 1):\n        ticker   = p.get(\"ticker\", \"?\")\n        strategy = p.get(\"strategy\", \"?\")\n        da       = p.get(\"deep_analysis\", {}) or {}\n        sim      = p.get(\"simulation\", {}) or {}\n        option   = p.get(\"option\", {}) or {}\n        roi      = p.get(\"roi_analysis\", {}) or {}\n        exit_r   = p.get(\"exit_rules\", {}) or {}\n        ts       = p.get(\"trade_score\", {}) or {}\n\n        ts_total = ts.get(\"total\", 0)\n        ts_grade = ts.get(\"grade\", \"–\")\n        best_for = (ts.get(\"best_argument_for\", \"\") or \"\")[:700]\n        best_ag  = (ts.get(\"best_argument_against\", \"\") or \"\")[:700]\n\n        score_color = \"#16a34a\" if ts_total >= 75 else \"#ca8a04\" if ts_total >= 60 else \"#ea580c\"\n\n        # ── v9.0 #5: Greeks-Block ─────────────────────────────────────────────\n        delta          = roi.get(\"delta\", 0) or 0\n        theta_day_pct  = roi.get(\"theta_daily_pct\", 0) or 0\n        vega_loss      = roi.get(\"vega_loss\", 0) or 0\n        breakeven      = roi.get(\"breakeven\", 0) or 0\n        breakeven_pct  = roi.get(\"breakeven_pct\", 0) or 0\n        mc_weight      = roi.get(\"mc_weight\", 0) or 0\n        ttm            = p.get(\"time_to_maturation\", da.get(\"time_to_materialization\", \"–\"))\n\n        theta_color = \"#dc2626\" if theta_day_pct > 0.025 else \"#ca8a04\" if theta_day_pct > 0.015 else \"#16a34a\"\n        delta_str   = f\"{delta:.2f}\" if delta else \"–\"\n        theta_str   = f\"{theta_day_pct:.1%}/Tag\" if theta_day_pct else \"–\"\n        be_str      = f\"${breakeven:.2f} (+{breakeven_pct:.1%})\" if breakeven else \"–\"\n        vega_str    = f\"{vega_loss:.1%}\" if vega_loss else \"–\"\n\n        greeks_html = f\"\"\"\n        <div style=\"margin-top:12px;padding:10px 14px;background:#f0f9ff;border:1px solid #bae6fd;border-radius:6px;font-size:12px;\">\n          <b style=\"color:#0369a1;\">📐 Greeks &amp; Optionsmechanik</b>\n          <table style=\"width:100%;margin-top:6px;font-size:12px;color:#0c4a6e;border-collapse:collapse;\">\n            <tr>\n              <td style=\"padding:2px 8px 2px 0;\"><b>Delta:</b> {delta_str}</td>\n              <td style=\"padding:2px 8px 2px 0;\"><b>Theta/Tag:</b> <span style=\"color:{theta_color};\">{theta_str}</span></td>\n            </tr>\n            <tr>\n              <td style=\"padding:2px 8px 2px 0;\"><b>Breakeven:</b> {be_str}</td>\n              <td style=\"padding:2px 8px 2px 0;\"><b>Vega-Exposure:</b> {vega_str}</td>\n            </tr>\n          </table>\n        </div>\"\"\"\n\n        # ── v9.0 #7 / v10.0 #5: MC-Wahrscheinlichkeits-Block + Implied Move ────\n        mc_hit_rate_pct = p.get(\"mc_hit_rate\", 0) or 0\n        cat_conf        = da.get(\"catalyst_confidence\", None)\n        dte_val         = option.get(\"dte\", \"–\")\n        catalyst_type   = p.get(\"catalyst_type\", \"OTHER\")\n        implied_move    = p.get(\"implied_move_pct\")   # z.B. 8.2 (%)\n        model_move      = p.get(\"model_move_pct\", 0)  # z.B. 12.4 (%)\n        edge_implied    = p.get(\"edge_vs_implied\")     # z.B. 4.2 (%)\n\n        mc_color = \"#16a34a\" if mc_hit_rate_pct >= 0.65 else \"#ca8a04\" if mc_hit_rate_pct >= 0.50 else \"#dc2626\"\n        cat_str  = f\"{cat_conf}/10\" if cat_conf is not None else \"–\"\n\n        # Implied Move Row\n        if implied_move is not None:\n            if edge_implied is not None and edge_implied > 5.0:\n                edge_color = \"#16a34a\"\n                edge_sign  = f\"+{edge_implied:.1f}%\"\n            elif edge_implied is not None and edge_implied < -2.0:\n                edge_color = \"#dc2626\"\n                edge_sign  = f\"{edge_implied:.1f}%\"\n            else:\n                edge_color = \"#ca8a04\"\n                edge_sign  = f\"{edge_implied:+.1f}%\" if edge_implied is not None else \"–\"\n            implied_row = f\"\"\"\n            <tr>\n              <td style=\"padding:4px 8px 2px 0;\" colspan=\"2\">\n                <b>Market-Implied:</b> ±{implied_move:.1f}% &nbsp;|&nbsp;\n                <b>Model-Target:</b> +{model_move:.1f}% &nbsp;|&nbsp;\n                <b>Edge:</b> <span style=\"color:{edge_color};font-weight:bold;\">{edge_sign}</span>\n                &nbsp;<span style=\"color:#64748b;font-size:11px;\">({catalyst_type})</span>\n              </td>\n            </tr>\"\"\"\n        else:\n            implied_row = \"\"\n\n        prob_html = f\"\"\"\n        <div style=\"margin-top:8px;padding:10px 14px;background:#fefce8;border:1px solid #fde68a;border-radius:6px;font-size:12px;\">\n          <b style=\"color:#92400e;\">📊 Wahrscheinlichkeiten &amp; Katalysator</b>\n          <table style=\"width:100%;margin-top:6px;font-size:12px;color:#78350f;border-collapse:collapse;\">\n            <tr>\n              <td style=\"padding:2px 8px 2px 0;\"><b>MC Hit-Rate:</b> <span style=\"color:{mc_color};font-weight:bold;\">{mc_hit_rate_pct:.0%}</span> (P Kurs &gt; Ziel)</td>\n              <td style=\"padding:2px 8px 2px 0;\"><b>Catalyst-Konfidenz:</b> {cat_str}</td>\n            </tr>\n            <tr>\n              <td style=\"padding:2px 8px 2px 0;\"><b>Thesis-Horizont:</b> {ttm}</td>\n              <td style=\"padding:2px 8px 2px 0;\"><b>Option-Laufzeit:</b> {dte_val}d</td>\n            </tr>\n            {implied_row}\n          </table>\n        </div>\"\"\"\n\n        # ── Exit-Regeln Block ─────────────────────────────────────────────────\n        exit_html = \"\"\n        if exit_r and exit_r.get(\"entry_cost\", 0) > 0:\n            exit_html = f\"\"\"\n            <div style=\"margin-top:10px;padding:12px;background:#fff7ed;border:1px dashed #ed8936;border-radius:6px;font-size:12px;\">\n                <b style=\"color:#c05621;\">🚪 EXIT-STRATEGIE (pro Kontrakt)</b><br>\n                <table style=\"width:100%;margin-top:5px;font-size:12px;color:#7b341e;\">\n                    <tr><td><b>Entry:</b> ${exit_r['entry_cost']:.2f}</td><td><b>Stop-Loss:</b> <span style=\"color:#dc2626;\">${exit_r['stop_loss_price']:.2f}</span></td></tr>\n                    <tr><td><b>TP 50%:</b> ${exit_r['take_profit_price']:.2f}</td><td><b>TP 100%:</b> ${exit_r['full_profit_price']:.2f}</td></tr>\n                    <tr><td colspan=\"2\"><b>Time-Exit:</b> {exit_r['time_exit_date']} (wenn Gewinn &lt; {exit_r['time_exit_min_profit_pct']}%)</td></tr>\n                </table>\n            </div>\"\"\"\n\n        cards += f\"\"\"\n        <div style=\"border:1px solid #e2e8f0;border-radius:10px;padding:20px;margin-bottom:24px;background:#fff;\">\n          <div style=\"display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;\">\n            <span style=\"font-size:22px;font-weight:bold;color:#0f172a;\">#{i} {ticker}</span>\n            <span style=\"background:{score_color};color:#fff;padding:4px 14px;border-radius:20px;font-size:13px;font-weight:600;\">\n              {ts_grade}&nbsp;·&nbsp;{ts_total}/100\n            </span>\n          </div>\n\n          <div style=\"background:#f8fafc;border-radius:6px;padding:10px 14px;margin-bottom:14px;font-size:12px;color:#334155;border-left:3px solid {score_color};\">\n            <span style=\"color:#16a34a;font-weight:600;\">✅ Für:</span> {best_for}<br>\n            <span style=\"color:#dc2626;font-weight:600;\">⚠️ Gegen:</span> {best_ag}\n          </div>\n\n          <div style=\"display:grid;grid-template-columns:1fr 1fr;gap:8px;font-size:13px;\">\n            <div><b>Strategie:</b> {strategy}</div>\n            <div><b>Richtung:</b> {da.get('direction','–')}</div>\n            <div><b>IV-Rank:</b> {p.get('iv_rank','–')}%</div>\n            <div><b>Ziel:</b> ${sim.get('target_price',0):.2f}</div>\n            <div><b>Strike:</b> ${option.get('strike','–')}</div>\n            <div><b>Expiry:</b> {option.get('expiry','–')} ({option.get('dte','–')}d)</div>\n            <div><b>Bid/Ask:</b> ${option.get('bid','–')} / ${option.get('ask','–')}</div>\n            <div><b>ROI netto:</b> <span style=\"color:#16a34a;font-weight:600;\">{roi.get('roi_net',0):.1%}</span></div>\n          </div>\n\n          {greeks_html}\n          {prob_html}\n          {exit_html}\n        </div>\"\"\"\n\n    return f\"\"\"<!DOCTYPE html><html><body style=\"font-family:Arial,sans-serif;background:#f8fafc;margin:0;padding:0;\">\n<div style=\"max-width:640px;margin:30px auto;background:#fff;border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,0.1);overflow:hidden;\">\n  <div style=\"background:#16a34a;padding:28px 32px;\">\n    <div style=\"font-size:28px;margin-bottom:6px;\">🎯</div>\n    <div style=\"color:#fff;font-size:22px;font-weight:bold;\">Adaptive Asymmetry-Scanner</div>\n    <div style=\"color:rgba(255,255,255,0.85);font-size:16px;margin-top:4px;\">Trade Empfehlung — {len(proposals)} Signal(e)</div>\n    <div style=\"color:rgba(255,255,255,0.6);font-size:13px;margin-top:6px;\">{today} &nbsp;·&nbsp; v9.0</div>\n  </div>\n  <div style=\"padding:24px 32px;\">{cards}</div>\n</div></body></html>\"\"\"\n\n\ndef _send_smtp(subject: str, html: str) -> None:\n    sender   = os.getenv(\"GMAIL_SENDER\", \"\")\n    password = os.getenv(\"GMAIL_APP_PW\", \"\")\n    receiver = os.getenv(\"NOTIFY_EMAIL\", sender)\n    if not sender or not password:\n        return\n    msg = MIMEMultipart(\"alternative\")\n    msg[\"Subject\"], msg[\"From\"], msg[\"To\"] = subject, sender, receiver\n    msg.attach(MIMEText(html, \"html\"))\n    try:\n        with smtplib.SMTP_SSL(\"smtp.gmail.com\", 465) as smtp:\n            smtp.login(sender, password)\n            smtp.sendmail(sender, receiver, msg.as_string())\n        log.info(f\"Email gesendet: {subject}\")\n    except Exception as e:\n        log.error(f\"SMTP-Fehler: {e}\")\n"
  },
  {
    "path": "modules/finbert_sentiment.py",
    "content": "\"\"\"\nmodules/finbert_sentiment.py – FinBERT-Sentiment als Feature-Spalte\n\nFIX: Cache-Verzeichnis auf /tmp statt outputs/models/finbert/\n     → verhindert dass das 417 MB Modell in Git landet.\n     /tmp wird bei jedem GitHub-Actions-Run neu befüllt (Download ~30s).\n\"\"\"\n\nfrom __future__ import annotations\nimport logging\nimport os\nfrom pathlib import Path\nfrom typing import Optional\n\nimport numpy as np\n\nlog = logging.getLogger(__name__)\n\n_MODEL_NAME = \"ProsusAI/finbert\"\n\n# FIX: /tmp statt outputs/models/finbert/\n# /tmp ist in GitHub Actions verfügbar und wird NICHT committed\n_CACHE_DIR = Path(os.environ.get(\"FINBERT_CACHE\", \"/tmp/finbert_cache\"))\n\n# Lazy-Loaded Globals\n_tokenizer = None\n_model     = None\n\n\ndef _load_model():\n    \"\"\"Lazy-Load FinBERT einmalig.\"\"\"\n    global _tokenizer, _model\n\n    if _tokenizer is not None:\n        return True\n\n    try:\n        from transformers import AutoTokenizer, AutoModelForSequenceClassification\n        import torch\n\n        log.info(f\"Lade FinBERT '{_MODEL_NAME}' (Cache: {_CACHE_DIR})...\")\n        _CACHE_DIR.mkdir(parents=True, exist_ok=True)\n\n        _tokenizer = AutoTokenizer.from_pretrained(\n            _MODEL_NAME, cache_dir=str(_CACHE_DIR),\n        )\n        _model = AutoModelForSequenceClassification.from_pretrained(\n            _MODEL_NAME, cache_dir=str(_CACHE_DIR),\n        )\n        _model.eval()\n        log.info(\"FinBERT erfolgreich geladen.\")\n        return True\n\n    except Exception as e:\n        log.warning(f\"FinBERT nicht ladbar: {e} → Fallback 0.0\")\n        return False\n\n\ndef score_headlines(headlines: list[str]) -> dict:\n    \"\"\"\n    Berechnet FinBERT-Sentiment für eine Liste von Headlines.\n    Gibt neutral (0.0) zurück wenn Modell nicht verfügbar.\n    \"\"\"\n    if not headlines:\n        return _neutral_result()\n\n    if not _load_model():\n        return _neutral_result()\n\n    try:\n        import torch\n\n        texts = [h[:256] for h in headlines[:8]]\n        inputs = _tokenizer(\n            texts, padding=True, truncation=True,\n            max_length=128, return_tensors=\"pt\",\n        )\n\n        with torch.no_grad():\n            outputs = _model(**inputs)\n            probs = torch.softmax(outputs.logits, dim=-1).numpy()\n\n        # FinBERT Labels: [positive, negative, neutral]\n        pos_probs  = probs[:, 0]\n        neg_probs  = probs[:, 1]\n        scores     = pos_probs - neg_probs\n        mean_score = float(np.mean(scores))\n\n        mean_probs = np.mean(probs, axis=0)\n        label_idx  = int(np.argmax(mean_probs))\n        labels     = [\"positive\", \"negative\", \"neutral\"]\n        label      = labels[label_idx]\n        confidence = float(mean_probs[label_idx])\n\n        return {\n            \"sentiment_score\":      round(mean_score, 4),\n            \"sentiment_label\":      label,\n            \"sentiment_confidence\": round(confidence, 4),\n        }\n\n    except Exception as e:\n        log.warning(f\"FinBERT Inference-Fehler: {e}\")\n        return _neutral_result()\n\n\ndef _neutral_result() -> dict:\n    return {\n        \"sentiment_score\":      0.0,\n        \"sentiment_label\":      \"neutral\",\n        \"sentiment_confidence\": 0.0,\n    }\n\n\ndef score_candidate(candidate: dict) -> dict:\n    return score_headlines(candidate.get(\"news\", []))\n"
  },
  {
    "path": "modules/intraday_delta.py",
    "content": "\"\"\"\nmodules/intraday_delta.py – Intraday-Delta seit News-Veröffentlichung\n\nPriorität 1: Verhindert \"Late-to-the-party\"-Trades.\n\nLogik:\n  Wenn eine Aktie seit Veröffentlichung der relevanten News bereits X% gestiegen\n  ist, ist die Informations-Asymmetrie eingepreist. Der Scanner hätte zu spät\n  reagiert und kauft in die Stärke hinein.\n\nSchwellenwert: max_intraday_move aus config.yaml (default: 0.07 = 7%)\n  - Unter 7%: Signal bleibt aktiv (Markt hat noch nicht vollständig reagiert)\n  - Über 7%: Signal wird verworfen (zu spät, Asymmetrie weg)\n\nDatenquelle: yfinance intraday (1m-Daten des heutigen Tages)\n             Kein API-Key nötig.\n\"\"\"\n\nfrom __future__ import annotations\nimport logging\nfrom datetime import datetime, timezone\nfrom typing import Optional\n\nimport yfinance as yf\n\nlog = logging.getLogger(__name__)\n\n# Standardschwelle: 7% Move seit Tagesbeginn → Signal verwerfen\nDEFAULT_MAX_MOVE = 0.07\n\n\ndef get_intraday_move(ticker: str) -> dict:\n    \"\"\"\n    Berechnet den heutigen Intraday-Move vom Eröffnungskurs zum aktuellen Kurs.\n\n    Returns:\n        {\n            \"move_pct\": float,        # z.B. 0.082 = +8.2% seit Eröffnung\n            \"open_price\": float,\n            \"current_price\": float,\n            \"data_available\": bool\n        }\n    \"\"\"\n    try:\n        t    = yf.Ticker(ticker)\n        hist = t.history(period=\"1d\", interval=\"5m\")\n\n        if hist.empty or len(hist) < 2:\n            return _no_data()\n\n        open_price    = float(hist[\"Open\"].iloc[0])\n        current_price = float(hist[\"Close\"].iloc[-1])\n\n        if open_price <= 0:\n            return _no_data()\n\n        move_pct = (current_price - open_price) / open_price\n\n        log.debug(\n            f\"  [{ticker}] Intraday: open={open_price:.2f} \"\n            f\"current={current_price:.2f} move={move_pct:+.2%}\"\n        )\n\n        return {\n            \"move_pct\":      round(move_pct, 4),\n            \"open_price\":    round(open_price, 2),\n            \"current_price\": round(current_price, 2),\n            \"data_available\": True,\n        }\n\n    except Exception as e:\n        log.debug(f\"  [{ticker}] Intraday-Fehler: {e}\")\n        return _no_data()\n\n\ndef is_already_moved(\n    ticker: str,\n    direction: str = \"BULLISH\",\n    max_move: float = DEFAULT_MAX_MOVE,\n) -> tuple[bool, dict]:\n    \"\"\"\n    Prüft ob eine Aktie bereits zu stark in die erwartete Richtung gelaufen ist.\n\n    Args:\n        ticker:    Aktien-Ticker\n        direction: \"BULLISH\" oder \"BEARISH\"\n        max_move:  Maximaler erlaubter Move (default: 7%)\n\n    Returns:\n        (already_moved: bool, delta_info: dict)\n        already_moved=True → Signal verwerfen, zu spät\n    \"\"\"\n    delta = get_intraday_move(ticker)\n\n    if not delta[\"data_available\"]:\n        # Keine Daten → konservativ: Signal nicht verwerfen\n        return False, delta\n\n    move = delta[\"move_pct\"]\n\n    # Bullish: Wenn Aktie schon stark gestiegen → zu spät\n    if direction == \"BULLISH\" and move > max_move:\n        log.info(\n            f\"  [{ticker}] INTRADAY-GATE: move={move:+.2%} > {max_move:.0%} \"\n            f\"(BULLISH) → Signal zu spät, verworfen.\"\n        )\n        return True, delta\n\n    # Bearish: Wenn Aktie schon stark gefallen → zu spät\n    if direction == \"BEARISH\" and move < -max_move:\n        log.info(\n            f\"  [{ticker}] INTRADAY-GATE: move={move:+.2%} < -{max_move:.0%} \"\n            f\"(BEARISH) → Signal zu spät, verworfen.\"\n        )\n        return True, delta\n\n    log.info(\n        f\"  [{ticker}] Intraday-Move={move:+.2%} → noch Asymmetrie vorhanden.\"\n    )\n    return False, delta\n\n\ndef filter_by_intraday_delta(\n    signals: list[dict],\n    max_move: float = DEFAULT_MAX_MOVE,\n) -> list[dict]:\n    \"\"\"\n    Filtert eine Liste von Pipeline-Signalen nach dem Intraday-Delta.\n    Wird nach Stufe 4 (Mismatch-Score) und vor Stufe 5 (Simulation) aufgerufen.\n\n    Fügt `intraday_delta` zu jedem Signal-Dict hinzu.\n    Entfernt Signale bei denen der Move zu groß ist.\n    \"\"\"\n    filtered = []\n    for s in signals:\n        ticker    = s.get(\"ticker\", \"\")\n        direction = s.get(\"deep_analysis\", {}).get(\"direction\", \"BULLISH\")\n\n        already_moved, delta_info = is_already_moved(ticker, direction, max_move)\n\n        s[\"intraday_delta\"] = delta_info\n\n        if already_moved:\n            continue\n\n        filtered.append(s)\n\n    log.info(\n        f\"Intraday-Delta-Filter: {len(signals)} → {len(filtered)} Signale \"\n        f\"({len(signals)-len(filtered)} zu spät)\"\n    )\n    return filtered\n\n\ndef _no_data() -> dict:\n    return {\n        \"move_pct\":       0.0,\n        \"open_price\":     0.0,\n        \"current_price\":  0.0,\n        \"data_available\": False,\n    }\n"
  },
  {
    "path": "modules/macro_context.py",
    "content": "\"\"\"\nmodules/macro_context.py – Makro-Kontext für Claude-Prompt\n\nFix 3: ISM Einkaufsmanagerindex + 10Y-2Y Yield Curve via FRED API.\n       Kein API-Key nötig (FRED public data).\n       Wird als Kontext-Variable in deep_analysis.py Prompt injiziert.\n\nWichtig: Kein Hard-Gate — nur Kontext für Claude.\nBegründung: ISM und Yield Curve sind zu träge für Hard-Gates.\n            Sie geben Claude aber wichtigen Hintergrund für die\n            Bewertung von 2-6 Monats-Signalen.\n\nFRED Endpoints (kostenlos, kein Key für Basic-Daten):\n    ISM Manufacturing PMI: MANEMP Proxy via M-PMI\n    10Y-2Y Spread:         T10Y2Y\n    Fed Funds Rate:        FEDFUNDS (als Zinskontext)\n\"\"\"\n\nfrom __future__ import annotations\nimport logging\nfrom datetime import datetime, timedelta\nfrom functools import lru_cache\nfrom typing import Optional\n\nimport requests\n\ntry:\n    import yfinance as yf\n    _YF_AVAILABLE = True\nexcept ImportError:\n    _YF_AVAILABLE = False\n\nlog = logging.getLogger(__name__)\n\n_FRED_BASE    = \"https://fred.stlouisfed.org/graph/fredgraph.csv\"\n_HEADERS      = {\"User-Agent\": \"newstoption-scanner/5.0 research@pcctrading.com\"}\n\n# Cache: Makro-Daten täglich einmal laden (nicht für jeden Ticker)\n_macro_cache: dict = {}\n_cache_date:  str  = \"\"\n\n\ndef get_macro_context() -> dict:\n    \"\"\"\n    Lädt Makro-Kontext-Daten einmal pro Tag (gecached).\n\n    Returns:\n        {\n            \"yield_curve_spread\": float,   # 10Y-2Y in %\n            \"yield_curve_regime\": str,     # \"normal\" | \"flat\" | \"inverted\"\n            \"ism_proxy\":          float,   # 10Y Zins als Proxy (kein Key nötig)\n            \"fed_funds_rate\":     float,\n            \"macro_regime\":       str,     # \"expansive\" | \"neutral\" | \"recessionary\"\n            \"claude_context\":     str,     # Fertig formulierter Kontext-String für Claude\n            \"data_available\":     bool,\n        }\n    \"\"\"\n    global _macro_cache, _cache_date\n\n    today = datetime.utcnow().strftime(\"%Y-%m-%d\")\n    if _cache_date == today and _macro_cache:\n        return _macro_cache\n\n    result = _fetch_macro_data()\n    _macro_cache = result\n    _cache_date  = today\n    return result\n\n\ndef _fetch_macro_data() -> dict:\n    \"\"\"Lädt aktuelle Makro-Daten von FRED.\"\"\"\n    t10y2y    = _fetch_fred_series(\"T10Y2Y\")    # 10Y-2Y Spread\n    fedfunds  = _fetch_fred_series(\"FEDFUNDS\")  # Fed Funds Rate\n    t10y      = _fetch_fred_series(\"GS10\")      # 10Y Treasury\n\n    # Yield Curve Regime\n    if t10y2y is not None:\n        if t10y2y > 0.5:\n            yc_regime = \"normal\"\n            yc_desc   = f\"+{t10y2y:.2f}% (Kurve steil, expansives Umfeld)\"\n        elif t10y2y > -0.25:\n            yc_regime = \"flat\"\n            yc_desc   = f\"{t10y2y:.2f}% (Kurve flach, Übergangsphase)\"\n        else:\n            yc_regime = \"inverted\"\n            yc_desc   = f\"{t10y2y:.2f}% (Kurve invertiert, Rezessionsrisiko)\"\n    else:\n        yc_regime = \"unknown\"\n        yc_desc   = \"Nicht verfügbar\"\n\n    # Makro-Gesamtregime\n    if yc_regime == \"normal\":\n        macro_regime = \"expansive\"\n        regime_desc  = \"Expansiv — Makro begünstigt Long-Positionen\"\n    elif yc_regime == \"flat\":\n        macro_regime = \"neutral\"\n        regime_desc  = \"Neutral — Makro weder Rücken- noch Gegenwind\"\n    else:\n        macro_regime = \"recessionary\"\n        regime_desc  = \"Rezessiv — Makro kann positives Alpha dämpfen\"\n\n    # VIX Term Structure\n    vix_ts = get_vix_term_structure()\n\n    # Fertiger Kontext-String für Claude-Prompt\n    claude_context = _build_claude_context(\n        t10y2y, fedfunds, t10y, yc_desc, regime_desc, vix_ts\n    )\n\n    result = {\n        \"yield_curve_spread\": t10y2y,\n        \"yield_curve_regime\": yc_regime,\n        \"yield_curve_desc\":   yc_desc,\n        \"fed_funds_rate\":     fedfunds,\n        \"t10y_rate\":          t10y,\n        \"macro_regime\":       macro_regime,\n        \"macro_regime_desc\":  regime_desc,\n        \"vix_term_structure\": vix_ts,\n        \"claude_context\":     claude_context,\n        \"data_available\":     t10y2y is not None,\n        \"fetched_at\":         datetime.utcnow().isoformat(),\n    }\n\n    fed_str = f\"{fedfunds:.2f}%\" if fedfunds is not None else \"Nicht verfügbar\"\n    log.info(\n        f\"Makro-Kontext geladen: Yield Curve={yc_desc} | \"\n        f\"Fed={fed_str} | Regime={macro_regime}\"\n    )\n\n    return result\n\n\ndef _fetch_fred_series(series_id: str, last_n: int = 1) -> Optional[float]:\n    \"\"\"\n    Lädt den aktuellsten Wert einer FRED-Zeitreihe.\n    Nutzt das CSV-Endpoint (kein API-Key nötig).\n    \"\"\"\n    try:\n        since = (datetime.utcnow() - timedelta(days=30)).strftime(\"%Y-%m-%d\")\n        resp  = requests.get(\n            _FRED_BASE,\n            params={\n                \"id\":              series_id,\n                \"vintage_date\":    datetime.utcnow().strftime(\"%Y-%m-%d\"),\n                \"observation_start\": since,\n            },\n            headers=_HEADERS,\n            timeout=10,\n        )\n\n        if resp.status_code != 200:\n            return None\n\n        lines = [l for l in resp.text.strip().split(\"\\n\") if l and not l.startswith(\"DATE\")]\n        if not lines:\n            return None\n\n        # Letzter nicht-leerer Wert\n        for line in reversed(lines):\n            parts = line.split(\",\")\n            if len(parts) >= 2 and parts[1].strip() not in (\".\", \"\"):\n                try:\n                    return float(parts[1].strip())\n                except ValueError:\n                    continue\n\n        return None\n\n    except Exception as e:\n        log.debug(f\"FRED {series_id} Fehler: {e}\")\n        return None\n\n\ndef _build_claude_context(\n    t10y2y:      Optional[float],\n    fedfunds:    Optional[float],\n    t10y:        Optional[float],\n    yc_desc:     str,\n    regime_desc: str,\n    vix_ts:      Optional[dict] = None,\n) -> str:\n    \"\"\"\n    Baut den Makro-Kontext-String für den Claude-Prompt.\n    Klar formuliert damit Claude ihn richtig interpretiert.\n    \"\"\"\n    lines = [\"=== MAKRO-KONTEXT FÜR MITTELFRISTIGE BEWERTUNG (2-6 Monate) ===\"]\n\n    if t10y2y is not None:\n        lines.append(f\"Zinskurve (10Y-2Y): {yc_desc}\")\n\n    if fedfunds is not None:\n        lines.append(f\"Fed Funds Rate: {fedfunds:.2f}%\")\n\n    if t10y is not None:\n        lines.append(f\"10Y Treasury: {t10y:.2f}%\")\n\n    lines.append(f\"Regime-Einschätzung: {regime_desc}\")\n\n    if vix_ts and vix_ts.get(\"available\"):\n        lines.append(f\"Volatilitäts-Struktur: {vix_ts['regime']}\")\n\n    lines.append(\"\")\n    lines.append(\n        \"ANWEISUNG: Berücksichtige diesen Makro-Kontext bei der Bewertung. \"\n        \"In einem rezessiven Umfeld (invertierte Kurve) sind positive \"\n        \"Einzel-Aktien-Signale auf 2-6 Monate mit erhöhter Skepsis zu bewerten, \"\n        \"da makroökonomischer Gegenwind das fundamentale Alpha oft überlagert. \"\n        \"In einem expansiven Umfeld können strukturelle Underreactions \"\n        \"stärker gewichtet werden. \"\n        \"Bei VIX Backwardation (kurzfristige Angst hoch) bevorzuge Spreads \"\n        \"gegenüber nackten Long-Calls um Vol-Crush-Risiko nach Events zu begrenzen.\"\n    )\n\n    return \"\\n\".join(lines)\n\n\ndef get_vix_term_structure() -> dict:\n    \"\"\"\n    Analysiert die VIX Term Structure (Contango vs. Backwardation).\n\n    Nutzt kostenlose yfinance-Ticker:\n      ^VIX9D  = 9-Tage-VIX  (sehr kurzfristig)\n      ^VIX    = 30-Tage-VIX (Standard)\n      ^VIX3M  = 3-Monats-VIX\n\n    Struktur:\n      Contango:      VIX9D < VIX < VIX3M → Markt ruhig, IV sinkt erwartet\n                     → Optionskäufer vorteilhaft, Vol-Crush-Risiko gering\n      Backwardation: VIX9D > VIX > VIX3M → kurzfristige Angst hoch\n                     → erhöhtes Vol-Crush-Risiko nach Event → Spreads bevorzugen\n      Flat:          Keine klare Richtung\n\n    Returns:\n        {\n            \"vix9d\":      float,\n            \"vix30\":      float,\n            \"vix3m\":      float,\n            \"structure\":  \"contango\" | \"backwardation\" | \"flat\",\n            \"slope\":      float,   # (vix3m - vix9d) / vix9d, positiv = Contango\n            \"regime\":     str,     # Kurzbeschreibung für Prompt\n            \"available\":  bool,\n        }\n    \"\"\"\n    empty = {\n        \"vix9d\": None, \"vix30\": None, \"vix3m\": None,\n        \"structure\": \"unknown\", \"slope\": 0.0,\n        \"regime\": \"VIX Term Structure nicht verfügbar\",\n        \"available\": False,\n    }\n\n    if not _YF_AVAILABLE:\n        return empty\n\n    try:\n        tickers = yf.download(\n            [\"^VIX9D\", \"^VIX\", \"^VIX3M\"],\n            period=\"2d\", progress=False, auto_adjust=True,\n        )\n        close = tickers[\"Close\"] if \"Close\" in tickers.columns else tickers\n\n        def _last(sym: str) -> Optional[float]:\n            if sym in close.columns:\n                vals = close[sym].dropna()\n                return float(vals.iloc[-1]) if not vals.empty else None\n            return None\n\n        vix9d = _last(\"^VIX9D\")\n        vix30 = _last(\"^VIX\")\n        vix3m = _last(\"^VIX3M\")\n\n        if not all([vix9d, vix30, vix3m]):\n            return empty\n\n        slope = (vix3m - vix9d) / vix9d  # positiv = Contango\n\n        if slope > 0.05:\n            structure = \"contango\"\n            regime    = (\n                f\"VIX Contango (9d={vix9d:.1f} → 3M={vix3m:.1f}, slope=+{slope:.0%}): \"\n                f\"Markt erwartet sinkende Volatilität → Long-Vol-Strategien weniger riskant\"\n            )\n        elif slope < -0.05:\n            structure = \"backwardation\"\n            regime    = (\n                f\"VIX Backwardation (9d={vix9d:.1f} → 3M={vix3m:.1f}, slope={slope:.0%}): \"\n                f\"Kurzfristige Angst erhöht → Vol-Crush nach Event wahrscheinlicher → Spreads bevorzugen\"\n            )\n        else:\n            structure = \"flat\"\n            regime    = (\n                f\"VIX Term Structure flach (9d={vix9d:.1f}, 3M={vix3m:.1f}): \"\n                f\"Kein eindeutiges Volatilitäts-Signal\"\n            )\n\n        log.info(f\"VIX Term Structure: {structure} | slope={slope:.1%} | {vix9d:.1f}/{vix30:.1f}/{vix3m:.1f}\")\n\n        return {\n            \"vix9d\":     round(vix9d, 2),\n            \"vix30\":     round(vix30, 2),\n            \"vix3m\":     round(vix3m, 2),\n            \"structure\": structure,\n            \"slope\":     round(slope, 4),\n            \"regime\":    regime,\n            \"available\": True,\n        }\n\n    except Exception as e:\n        log.debug(f\"VIX Term Structure Fehler: {e}\")\n        return empty\n\n\ndef get_macro_regime_multiplier() -> float:\n    \"\"\"\n    Gibt einen Multiplikator (0.7-1.2) für den Mismatch-Score zurück.\n    Rezessives Umfeld → Signal schwächer gewichten.\n    Expansives Umfeld → Signal stärker gewichten.\n\n    Wird in mismatch_scorer.py genutzt.\n    \"\"\"\n    ctx = get_macro_context()\n    regime = ctx.get(\"macro_regime\", \"neutral\")\n\n    multipliers = {\n        \"expansive\":    1.10,   # +10% Vertrauen in Signale\n        \"neutral\":      1.00,   # neutral\n        \"recessionary\": 0.80,   # -20% Vertrauen bei invertierter Kurve\n        \"unknown\":      1.00,\n    }\n    return multipliers.get(regime, 1.00)\n"
  },
  {
    "path": "modules/mirofish_simulation.py",
    "content": "\"\"\"\nmodules/mirofish_simulation.py v8.2\n\nMonte Carlo Simulation mit historischer yfinance-Kalibrierung.\n\nKernidee:\n    sigma (Volatilität) kommt aus echten historischen Preisdaten.\n    base_alpha (Signal-Drift) = historische Drift + Signal-Bonus.\n    Das macht Hit-Rates realistisch und ticker-spezifisch.\n\nv8.2 Kalibrierungs-Fix:\n    Problem: Hit-Rates lagen bei 97% für praktisch jedes Signal.\n             Der Cap (85%/95%) griff IMMER → alle Signale sahen gleich aus.\n\n    Ursache: max_signal_alpha=0.004 → bei Impact=6/Surprise=5 akkumulierten\n             sich ~19% Alpha-Drift über 120 Tage. Target war nur +8%.\n             → Trivial erreichbar, auch bei schwachen Signalen.\n\n    Fix (4 Stellschrauben):\n      1. max_signal_alpha: 0.004 → 0.001 (realistischer Informationsvorsprung)\n      2. NARRATIVE_DECAY: verdoppelt (News-Signal verblasst schneller)\n      3. HIT_RATE_CAP: 85%/95% → 75% (kein einzelnes Signal > 75%)\n      4. Target: volatilitäts-adaptiv statt pauschal +8%\n         Formel: target = current * (1 + max(0.08, 0.5 * σ * √days))\n         → Volatile Aktien brauchen grösseren Move für \"Hit\"\n\n    Erwartete Hit-Rates nach Fix: 35-70% je nach Signal-Stärke und Vola.\n\"\"\"\n\nfrom __future__ import annotations\nimport logging\nimport math\nimport numpy as np\nimport yfinance as yf\nfrom functools import lru_cache\n\nlog = logging.getLogger(__name__)\n\n# ── v8.2: Verdoppelte Decay-Rates ────────────────────────────────────────────\n# Vorher: short=0.015, medium=0.008, long=0.004\n# Begründung: Empirisch zerfallen News-Signale schneller als v8.0 annahm.\n# Typischer Nachrichtenzyklus: 3-5 Tage Peak, danach rapider Abfall.\nNARRATIVE_DECAY = {\n    \"short\":  0.030,   # Signal verpufft in ~30 Tagen (war: ~65 Tage)\n    \"medium\": 0.016,   # Signal verpufft in ~60 Tagen (war: ~125 Tage)\n    \"long\":   0.008,   # Signal verpufft in ~120 Tagen (war: ~250 Tage)\n}\n\nDEFAULT_SIGMA   = 0.020   # Fallback wenn yfinance nicht erreichbar\nQUICK_MC_PATHS  = 5_000\nFINAL_MC_PATHS  = 10_000\n\n# ── v8.2: Einheitlicher Cap auf 75% ─────────────────────────────────────────\n# Vorher: Short=85%, Long=95%\n# Begründung: Kein einzelnes News-Signal rechtfertigt >75% Konfidenz.\n# Selbst perfekte Insider-Information hat Execution-Risiko, Makro-Risiko,\n# und Timing-Unsicherheit. 75% ist die Obergrenze für \"sehr starkes Signal\".\nHIT_RATE_CAP_SHORT = 0.75\nHIT_RATE_CAP_LONG  = 0.75\n\n# ── v8.2: Reduzierter Signal-Alpha ──────────────────────────────────────────\n# Vorher: 0.004 → bei Impact=6/Surprise=5 = 0.22%/Tag = ~19% über 120d\n# Jetzt:  0.001 → bei Impact=6/Surprise=5 = 0.055%/Tag = ~4.5% über 120d\n# Begründung: Ein News-Signal gibt keinen 0.4%/Tag-Vorsprung.\n# Selbst der stärkste fundamentale Katalysator liefert ~0.1%/Tag Alpha.\nMAX_SIGNAL_ALPHA = 0.001\n\n\n@lru_cache(maxsize=128)\ndef _get_hist_params(ticker: str) -> tuple[float, float]:\n    \"\"\"\n    Holt historische Volatilität und Drift von yfinance.\n    Gecacht pro Ticker — wird nur einmal pro Run abgerufen.\n    Nutzt yf.download() für effizientere Batch-Verarbeitung.\n    \n    Returns:\n        (sigma, mu) — tägliche Vola und täglicher Drift\n    \"\"\"\n    try:\n        hist = yf.download(ticker, period=\"6mo\", progress=False, auto_adjust=True)\n        if hist.empty or len(hist) < 30:\n            log.debug(f\"  [{ticker}] Hist-Daten zu wenig → Default sigma\")\n            return DEFAULT_SIGMA, 0.0\n\n        close = hist[\"Close\"]\n        if hasattr(close, \"iloc\"):\n            close = close.squeeze()  # MultiIndex → Series\n\n        returns = close.pct_change().dropna()\n        sigma   = float(returns.std())\n        mu      = float(returns.mean())\n\n        # Sanity checks\n        if not (0.005 <= sigma <= 0.15):\n            sigma = DEFAULT_SIGMA\n        if not (-0.005 <= mu <= 0.005):\n            mu = 0.0\n\n        log.debug(f\"  [{ticker}] Hist: σ={sigma:.4f} μ={mu:.5f} ({len(returns)} Tage)\")\n        return sigma, mu\n\n    except Exception as e:\n        log.debug(f\"  [{ticker}] yfinance Hist-Fehler: {e} → Default\")\n        return DEFAULT_SIGMA, 0.0\n\n\ndef preload_hist_params(tickers: list[str]) -> None:\n    \"\"\"\n    Lädt historische Parameter für alle Ticker parallel vor.\n    Spart Zeit weil MC-Runs sofort auf Cache treffen.\n    Wird in pipeline.py nach Hard-Filter aufgerufen.\n    \"\"\"\n    from concurrent.futures import ThreadPoolExecutor, as_completed\n    log.info(f\"Preload historische Daten für {len(tickers)} Ticker...\")\n    \n    with ThreadPoolExecutor(max_workers=10) as ex:\n        futures = {ex.submit(_get_hist_params, t): t for t in tickers}\n        done = 0\n        for f in as_completed(futures):\n            done += 1\n            try:\n                f.result()\n            except Exception:\n                pass\n    log.info(f\"  Historische Daten geladen ({done} Ticker gecacht)\")\n\n\ndef _compute_dynamic_target(current: float, sigma: float, days: int) -> float:\n    \"\"\"\n    v8.2: Volatilitäts-adaptives Kursziel.\n\n    Vorher: pauschal current * 1.08 (+8% für alle)\n    Problem: +8% ist für eine Low-Vol-Aktie (σ=0.01) ein grosser Move,\n             aber für eine High-Vol-Aktie (σ=0.04) trivial.\n\n    Jetzt: target = current * (1 + max(0.08, 0.5 * σ * √days))\n      - Low-Vol  (σ=0.01, 120d): max(0.08, 0.055) = 8.0%  (unchanged)\n      - Normal   (σ=0.02, 120d): max(0.08, 0.110) = 11.0%\n      - High-Vol (σ=0.04, 120d): max(0.08, 0.219) = 21.9%\n\n    Ergebnis: Volatile Aktien brauchen stärkere Signale um hohe Hit-Rates\n    zu erreichen. Das verhindert falsch-positive \"starke\" Signale bei\n    naturgemäss volatilen Tech/Biotech-Titeln.\n    \"\"\"\n    sigma_move = 0.5 * sigma * math.sqrt(days)\n    target_pct = max(0.08, sigma_move)\n    return current * (1.0 + target_pct)\n\n\nclass MirofishSimulation:\n\n    def __init__(self):\n        self.rng = np.random.default_rng()\n\n    def run_for_dte(\n        self,\n        candidate:    dict,\n        days_to_expiry: int            = 120,\n        min_hit_rate:   float | None   = None,  # Override interner Threshold (Pre-MC)\n    ) -> dict | None:\n        ticker   = candidate.get(\"ticker\", \"\")\n        features = candidate.get(\"features\", {}) or {}\n        da       = candidate.get(\"deep_analysis\", {}) or {}\n        sim_data = candidate.get(\"simulation\", {}) or {}\n\n        current = float(\n            sim_data.get(\"current_price\") or\n            candidate.get(\"current_price\") or\n            candidate.get(\"info\", {}).get(\"currentPrice\") or\n            candidate.get(\"info\", {}).get(\"regularMarketPrice\") or 0\n        )\n        if current <= 0:\n            try:\n                info    = yf.Ticker(ticker).info\n                current = float(\n                    info.get(\"currentPrice\") or\n                    info.get(\"regularMarketPrice\") or\n                    info.get(\"previousClose\") or 0\n                )\n            except Exception:\n                pass\n        if current <= 0:\n            log.warning(f\"  [{ticker}] Kein Preis verfügbar → MC übersprungen\")\n            return None\n\n        # ── Historische Parameter von yfinance ───────────────────────────────\n        sigma, hist_mu = _get_hist_params(ticker)\n\n        # ── Signal-Alpha (News-Drift) ─────────────────────────────────────────\n        impact   = float(da.get(\"impact\", 5) or 5)\n        surprise = float(da.get(\"surprise\", 5) or 5)\n        ttm      = da.get(\"time_to_materialization\", \"medium\") or \"medium\"\n\n        # TTM-String normalisieren (Claude gibt manchmal verschiedene Formate)\n        ttm_lower = ttm.lower()\n        if \"woche\" in ttm_lower or \"4-8\" in ttm_lower:\n            ttm_key = \"short\"\n        elif \"6 monat\" in ttm_lower:\n            ttm_key = \"long\"\n        else:\n            ttm_key = \"medium\"\n\n        # Geometrisches Mittel: beide Dimensionen müssen stark sein\n        signal_strength = math.sqrt((impact / 10.0) * (surprise / 10.0))\n\n        # v8.2: Signal-Bonus reduziert — max 0.1%/Tag bei perfektem Signal\n        signal_alpha = signal_strength * MAX_SIGNAL_ALPHA\n\n        # Gesamt-Alpha: historischer Trend + Signal-Bonus\n        base_alpha = hist_mu + signal_alpha\n        decay_rate = NARRATIVE_DECAY.get(ttm_key, 0.016)\n\n        # v8.2: Volatilitäts-adaptives Target\n        target  = _compute_dynamic_target(current, sigma, days_to_expiry)\n        target_pct = (target / current - 1.0) * 100\n\n        n_paths   = QUICK_MC_PATHS if days_to_expiry <= 45 else FINAL_MC_PATHS\n        # min_hit_rate überschreibt den internen Threshold (genutzt für Pre-MC Gate\n        # mit niedrigerer Schwelle, ohne das Quick/Final-MC zu beeinflussen)\n        threshold = min_hit_rate if min_hit_rate is not None else (\n            0.45 if days_to_expiry <= 45 else 0.50\n        )\n\n        log.info(\n            f\"  [{ticker}] MC-Kalibrierung: \"\n            f\"σ={sigma:.3f} μ={hist_mu:.4f} \"\n            f\"signal={signal_strength:.2f} α={base_alpha:.5f} \"\n            f\"target=+{target_pct:.1f}% decay={decay_rate:.3f} \"\n            f\"({days_to_expiry}d, {n_paths} Pfade)\"\n        )\n\n        # ── Monte Carlo ───────────────────────────────────────────────────────\n        paths_hit = 0\n        for _ in range(n_paths):\n            price = current\n            hit   = False\n            for d in range(days_to_expiry):\n                # Alpha nimmt exponentiell ab (Narrative verblasst)\n                daily_alpha = base_alpha * math.exp(-decay_rate * d)\n                daily_ret   = daily_alpha + sigma * self.rng.standard_normal()\n                price      *= (1.0 + daily_ret)\n                if price >= target:\n                    hit = True\n                    break\n            if hit:\n                paths_hit += 1\n\n        hit_rate = paths_hit / n_paths\n\n        # v8.2: Einheitlicher Cap auf 75%\n        hit_rate_cap = HIT_RATE_CAP_SHORT if days_to_expiry <= 45 else HIT_RATE_CAP_LONG\n        if hit_rate >= hit_rate_cap:\n            log.warning(\n                f\"  [{ticker}] Hit-Rate={hit_rate:.1%} → Cap auf {hit_rate_cap:.0%}\"\n            )\n            hit_rate = hit_rate_cap\n\n        stderr = math.sqrt(hit_rate * (1 - hit_rate) / n_paths)\n\n        log.info(\n            f\"  [{ticker}] Simulation ({days_to_expiry}d, {n_paths} Pfade): \"\n            f\"Hit={hit_rate:.1%} ±{stderr:.1%} \"\n            f\"({'PASS' if hit_rate >= threshold else 'FAIL'})\"\n        )\n\n        if hit_rate < threshold:\n            log.info(f\"  [{ticker}] Hit-Rate {hit_rate:.1%} < {threshold:.0%} → verworfen\")\n            return None\n\n        return {\n            **candidate,\n            \"simulation\": {\n                \"current_price\": round(current, 2),\n                \"target_price\":  round(target, 2),\n                \"hit_rate\":      round(hit_rate, 4),\n                \"n_paths\":       n_paths,\n                \"days\":          days_to_expiry,\n                \"sigma\":         round(sigma, 4),\n                \"alpha\":         round(base_alpha, 5),\n            }\n        }\n\n    def _get_market_params(self, ticker: str) -> tuple[float, float, float]:\n        \"\"\"Für ROI Pre-Check: gibt (sigma, current, target) zurück.\"\"\"\n        sigma, _ = _get_hist_params(ticker)\n        try:\n            info    = yf.Ticker(ticker).info\n            current = float(\n                info.get(\"currentPrice\") or\n                info.get(\"regularMarketPrice\") or 0\n            )\n        except Exception:\n            current = 0.0\n        target = _compute_dynamic_target(current, sigma, 120)\n        return sigma, current, target\n\n\ndef compute_time_value_efficiency(roi_net: float, dte: int) -> dict:\n    \"\"\"ROI pro Tag und annualisierter ROI (nur wenn realistisch).\"\"\"\n    dte = max(int(dte or 1), 1)\n    roi_per_day = (roi_net / dte) * 100  # in %\n\n    try:\n        ann = float((1 + roi_net) ** (365 / dte) - 1)\n        # Nur anzeigen wenn realistisch (<500% p.a.)\n        ann_roi = round(ann, 4) if abs(ann) < 5.0 else None\n    except Exception:\n        ann_roi = None\n\n    return {\n        \"roi_per_day_pct\": round(roi_per_day, 4),\n        \"annualized_roi\":  ann_roi,\n        \"dte\":             dte,\n    }\n"
  },
  {
    "path": "modules/mismatch_scorer.py",
    "content": "\"\"\"\nStufe 5: Normalisierter Mismatch-Score (Quant-Validierung)\n\nFixes:\n  H-03: Negative Mismatch-Werte (Markt hat überreagiert) wurden als \"weak\"\n        klassifiziert und weiterverarbeitet. Fix: expliziter Filter, der\n        Überreaktionen vor der Simulation aussortiert.\n  M-01: EPS-Drift-Bins nutzten hardcodierte Werte statt config.yaml.\n        Fix: cfg.eps_drift.* Thresholds.\n\n  v8.2 FIX-A: price_move_48h wurde NIRGENDS im Produktionscode gesetzt.\n        r_2d war IMMER 0 → Z-Score IMMER 0 → Mismatch = Impact.\n        Fix: Mismatch-Scorer berechnet 48h-Move selbst via yfinance.\n\n  v8.2 FIX-B: EPS-Drift wurde unter falschem Key gelesen.\n        a.get(\"eps_drift\", {}).get(\"drift\", 0.0) → Feld existiert nie.\n        Korrekter Pfad: a[\"data_validation\"][\"eps_cross_check\"][\"deviation_pct\"]\n\"\"\"\n\nimport logging\nimport numpy as np\nimport yfinance as yf\n\nfrom modules.config import cfg\n\nlog = logging.getLogger(__name__)\n\n\ndef _bin_impact(impact: float) -> str:\n    if impact <= 4:\n        return \"low\"\n    if impact <= 7:\n        return \"mid\"\n    return \"high\"\n\n\ndef _bin_mismatch(mismatch: float) -> str:\n    \"\"\"\n    FIX H-03: Negative Werte bedeuten Überreaktion (Markt hat mehr reagiert\n    als die News rechtfertigen). Diese werden NICHT mehr als \"weak\" behandelt\n    – sie werden durch den expliziten Filter in _score() bereits entfernt.\n    Der verbleibende Wertebereich ist immer ≥ 0.\n    \"\"\"\n    if mismatch < 3:\n        return \"weak\"\n    if mismatch <= 6:\n        return \"good\"\n    return \"strong\"\n\n\ndef _bin_eps_drift(drift: float) -> str:\n    \"\"\"FIX M-01: Thresholds aus config.yaml statt hartcodiert.\"\"\"\n    abs_drift = abs(drift)\n    if abs_drift > cfg.eps_drift.massive_threshold:\n        return \"massive\"\n    if abs_drift > cfg.eps_drift.relevant_threshold:\n        return \"relevant\"\n    return \"noise\"\n\n\nclass MismatchScorer:\n\n    def run(self, analyses: list[dict]) -> list[dict]:\n        scored = []\n        for a in analyses:\n            result = self._score(a)\n            if result:\n                scored.append(result)\n        return scored\n\n    def _score(self, a: dict) -> dict | None:\n        ticker = a[\"ticker\"]\n        da     = a.get(\"deep_analysis\", {})\n        impact = da.get(\"impact\", 0)\n\n        # ── FIX v8.2-A: 48h-Move selbst berechnen ────────────────────────────\n        # Vorher: r_2d = abs(a.get(\"price_move_48h\", 0))\n        # Problem: \"price_move_48h\" wurde NIRGENDS im Produktionscode gesetzt.\n        #          Nur in Tests als Mock-Daten vorhanden.\n        #          → r_2d war IMMER 0 → Z-Score IMMER 0 → Mismatch = Impact.\n        # Jetzt:   Eigene Berechnung, gleiche Logik wie deep_analysis v8.2.\n        r_2d = abs(self._compute_48h_move(ticker))\n\n        sigma = self._compute_sigma(ticker)\n        if sigma == 0:\n            log.warning(f\"  [{ticker}] σ30d = 0, übersprungen.\")\n            return None\n\n        z_score  = r_2d / sigma\n        mismatch = impact - (z_score * 5)\n\n        # FIX H-03: Negative Mismatch explizit filtern.\n        # Negatives Mismatch = Markt hat MEHR reagiert als die News rechtfertigen\n        # = Überreaktion. Das ist das Gegenteil des gesuchten Signals (Underreaction).\n        # Solche Ticker werden nicht weiter verarbeitet.\n        if mismatch <= 0:\n            log.info(\n                f\"  [{ticker}] Mismatch={mismatch:.2f} ≤ 0 \"\n                f\"(Impact={impact}, Z={z_score:.2f}, 48h-Move={r_2d:.3f}) \"\n                f\"→ Markt hat überreagiert, gefiltert.\"\n            )\n            return None\n\n        # ── FIX v8.2-B: EPS-Drift aus korrektem Pfad lesen ───────────────────\n        # Vorher: eps_drift_val = a.get(\"eps_drift\", {}).get(\"drift\", 0.0)\n        # Problem: Feld \"eps_drift\" mit Subkey \"drift\" existiert nie.\n        #          data_validator.py schreibt unter:\n        #          candidate[\"data_validation\"][\"eps_cross_check\"][\"deviation_pct\"]\n        # Jetzt:   Korrekter Zugriffspfad.\n        eps_check     = a.get(\"data_validation\", {}).get(\"eps_cross_check\", {})\n        eps_drift_val = eps_check.get(\"deviation_pct\", 0.0) or 0.0\n\n        features = {\n            \"impact\":        impact,\n            \"surprise\":      da.get(\"surprise\", 0),\n            \"mismatch\":      round(mismatch, 3),\n            \"z_score\":       round(z_score, 3),\n            \"sigma_30d\":     round(sigma, 4),\n            \"price_move_48h\": round(r_2d, 4),   # NEU: für Reports & Debugging\n            \"eps_drift\":     round(eps_drift_val, 4),\n            \"bin_impact\":    _bin_impact(impact),\n            \"bin_mismatch\":  _bin_mismatch(mismatch),\n            \"bin_eps_drift\": _bin_eps_drift(eps_drift_val),\n        }\n\n        log.info(\n            f\"  [{ticker}] Mismatch={mismatch:.2f} \"\n            f\"Z={z_score:.2f} σ={sigma:.4f} \"\n            f\"48h-Move={r_2d:.3f} EPS-Drift={eps_drift_val:.4f}\"\n        )\n\n        return {**a, \"features\": features}\n\n    def _compute_sigma(self, ticker: str) -> float:\n        \"\"\"30-Tages Standardabweichung der täglichen Returns.\"\"\"\n        try:\n            hist = yf.Ticker(ticker).history(period=\"35d\")\n            if len(hist) < 10:\n                return 0.0\n            returns = hist[\"Close\"].pct_change().dropna()\n            return float(np.std(returns))\n        except Exception as e:\n            log.debug(f\"Sigma-Berechnung Fehler für {ticker}: {e}\")\n            return 0.0\n\n    def _compute_48h_move(self, ticker: str) -> float:\n        \"\"\"\n        Berechnet die Preisbewegung der letzten 2 vollen Handelstage.\n\n        Nutzt period='10d' und vergleicht volle Handelstage:\n          close[-2] = gestriger Close (letzter abgeschlossener Tag)\n          close[-4] = vor-3-Tage-Close (48h-Fenster)\n\n        Gleiche Logik wie deep_analysis.py v8.2 _get_48h_move().\n        \"\"\"\n        try:\n            hist  = yf.Ticker(ticker).history(period=\"10d\")\n            close = hist[\"Close\"]\n            if hasattr(close, \"iloc\"):\n                close = close.squeeze()\n            if len(close) < 5:\n                return 0.0\n            return float((close.iloc[-2] - close.iloc[-4]) / close.iloc[-4])\n        except Exception:\n            return 0.0\n"
  },
  {
    "path": "modules/news_fetcher.py",
    "content": "\"\"\"\nmodules/news_fetcher.py – Ticker-spezifische News via Finnhub\n\nFix 4: Ersetzt globale RSS-Feeds durch ticker-spezifisches Finnhub Company News API.\n\nVorher (RSS-Problem):\n  - Reuters/CNBC RSS werden nach Ticker-Erwähnung durchsucht\n  - Produziert False-Positives (z.B. ON Semiconductor matcht \"ON sale\")\n  - Generisch, nicht ticker-spezifisch\n  - Zeitlich unscharf (RSS-Posts haben kein exaktes Timestamp)\n\nJetzt (Finnhub):\n  - /company-news Endpoint liefert NUR News für den spezifischen Ticker\n  - Timestamp auf Minuten genau → ermöglicht echten Intraday-Delta\n  - Kein False-Positive-Problem mehr\n  - Free Tier: 60 Calls/Minute (ausreichend für 20 Ticker/Tag)\n  - Fallback auf RSS wenn kein Finnhub-Key\n\nAPI: https://finnhub.io/docs/api/company-news\nKey: FINNHUB_API_KEY als GitHub Secret\n\"\"\"\n\nfrom __future__ import annotations\nimport logging\nimport os\nimport time\nfrom datetime import datetime, timedelta\nfrom typing import Optional\n\nimport feedparser\nimport requests\n\nlog = logging.getLogger(__name__)\n\n_FINNHUB_BASE   = \"https://finnhub.io/api/v1\"\n_FINNHUB_DELAY  = 1.0   # Sekunden zwischen Calls (max 60/min)\n_last_call_time = 0.0\n\n# Fallback RSS-Feeds (nur wenn kein Finnhub-Key)\n_RSS_FEEDS = [\n    \"https://feeds.reuters.com/reuters/businessNews\",\n    \"https://www.cnbc.com/id/100003114/device/rss/rss.html\",\n]\n\n# Kurzticker die NICHT per RSS gematcht werden (False-Positive-Gefahr)\n_RSS_UNSAFE = frozenset({\n    \"ON\", \"IT\", \"OR\", \"ARE\", \"BE\", \"TO\", \"DO\", \"GO\", \"SO\", \"RE\",\n    \"AI\", \"GE\", \"AM\", \"PM\", \"IS\", \"AS\", \"AT\", \"BY\", \"IN\", \"OF\",\n    \"A\", \"V\", \"C\", \"F\", \"K\", \"D\", \"L\", \"O\",\n})\n\n\ndef fetch_company_news(\n    ticker: str,\n    days_back: int = 2,\n    max_articles: int = 5,\n) -> list[dict]:\n    \"\"\"\n    Ruft ticker-spezifische News via Finnhub ab.\n\n    Args:\n        ticker:       Aktien-Ticker (z.B. \"AAPL\")\n        days_back:    Wie viele Tage zurück (default: 2 = 48h)\n        max_articles: Maximale Anzahl zurückgegebener Artikel\n\n    Returns:\n        [{\"title\": str, \"datetime\": int (unix), \"source\": str, \"url\": str}]\n        Sortiert nach Datum (neueste zuerst).\n    \"\"\"\n    finnhub_key = os.getenv(\"FINNHUB_API_KEY\", \"\")\n\n    if finnhub_key:\n        news = _fetch_finnhub(ticker, days_back, max_articles, finnhub_key)\n        if news:\n            return news\n        log.debug(f\"  [{ticker}] Finnhub: keine News → RSS-Fallback\")\n\n    return _fetch_rss_fallback(ticker, max_articles)\n\n\ndef fetch_news_headlines(ticker: str, days_back: int = 2) -> list[str]:\n    \"\"\"\n    Convenience-Wrapper: Gibt nur Headlines als String-Liste zurück.\n    Kompatibel mit dem bisherigen news-Format in data_ingestion.py.\n    \"\"\"\n    news = fetch_company_news(ticker, days_back)\n    return [n[\"title\"] for n in news if n.get(\"title\")]\n\n\ndef get_news_with_timestamps(ticker: str, days_back: int = 2) -> list[dict]:\n    \"\"\"\n    Gibt News MIT Unix-Timestamps zurück.\n    Wird für Intraday-Delta-Berechnung genutzt:\n    Wenn die News älter als 4h ist und die Aktie schon +5% gestiegen →\n    Alpha möglicherweise eingepreist.\n    \"\"\"\n    return fetch_company_news(ticker, days_back)\n\n\ndef compute_news_age_hours(news_items: list[dict]) -> Optional[float]:\n    \"\"\"\n    Berechnet das Alter der neuesten News in Stunden.\n    Nur möglich mit Finnhub (hat Timestamps).\n\n    Returns:\n        Float (Stunden) oder None wenn kein Timestamp verfügbar.\n    \"\"\"\n    timestamps = [\n        n.get(\"datetime\", 0)\n        for n in news_items\n        if n.get(\"datetime\", 0) > 0\n    ]\n    if not timestamps:\n        return None\n\n    newest_ts   = max(timestamps)\n    newest_dt   = datetime.fromtimestamp(newest_ts)\n    age_hours   = (datetime.utcnow() - newest_dt).total_seconds() / 3600\n\n    return round(age_hours, 1)\n\n\n# ── Finnhub ───────────────────────────────────────────────────────────────────\n\ndef _rate_limit():\n    global _last_call_time\n    elapsed = time.time() - _last_call_time\n    if elapsed < _FINNHUB_DELAY:\n        time.sleep(_FINNHUB_DELAY - elapsed)\n    _last_call_time = time.time()\n\n\ndef _fetch_finnhub(\n    ticker: str,\n    days_back: int,\n    max_articles: int,\n    api_key: str,\n) -> list[dict]:\n    \"\"\"Ruft Company News von Finnhub ab.\"\"\"\n    _rate_limit()\n\n    try:\n        today = datetime.utcnow()\n        since = today - timedelta(days=days_back)\n\n        resp = requests.get(\n            f\"{_FINNHUB_BASE}/company-news\",\n            params={\n                \"symbol\": ticker,\n                \"from\":   since.strftime(\"%Y-%m-%d\"),\n                \"to\":     today.strftime(\"%Y-%m-%d\"),\n                \"token\":  api_key,\n            },\n            timeout=10,\n        )\n        resp.raise_for_status()\n        articles = resp.json()\n\n        if not isinstance(articles, list):\n            return []\n\n        # Neueste zuerst, max N zurückgeben\n        articles.sort(key=lambda x: x.get(\"datetime\", 0), reverse=True)\n        result = []\n        for a in articles[:max_articles]:\n            result.append({\n                \"title\":    a.get(\"headline\", \"\"),\n                \"datetime\": a.get(\"datetime\", 0),\n                \"source\":   a.get(\"source\", \"Finnhub\"),\n                \"url\":      a.get(\"url\", \"\"),\n                \"summary\":  a.get(\"summary\", \"\")[:200],\n            })\n\n        if result:\n            log.debug(f\"  [{ticker}] Finnhub: {len(result)} News-Artikel\")\n\n        return result\n\n    except requests.exceptions.HTTPError as e:\n        if e.response.status_code == 429:\n            log.warning(f\"Finnhub Rate-Limit (429) für {ticker} → warte 60s\")\n            time.sleep(60)\n        else:\n            log.debug(f\"  [{ticker}] Finnhub HTTP-Fehler: {e}\")\n        return []\n    except Exception as e:\n        log.debug(f\"  [{ticker}] Finnhub Fehler: {e}\")\n        return []\n\n\n# ── RSS Fallback ──────────────────────────────────────────────────────────────\n\nimport re\n_PATTERNS: dict[str, re.Pattern] = {}\n\n\ndef _get_pattern(ticker: str) -> Optional[re.Pattern]:\n    \"\"\"Word-Boundary-Pattern, None für unsichere Kurzticker.\"\"\"\n    if len(ticker) < 3 or ticker.upper() in _RSS_UNSAFE:\n        return None\n    if ticker not in _PATTERNS:\n        _PATTERNS[ticker] = re.compile(\n            rf\"\\b{re.escape(ticker)}\\b\", re.IGNORECASE\n        )\n    return _PATTERNS[ticker]\n\n\ndef _fetch_rss_fallback(ticker: str, max_articles: int) -> list[dict]:\n    \"\"\"RSS-Fallback wenn kein Finnhub-Key. Weniger präzise.\"\"\"\n    pattern = _get_pattern(ticker)\n    if pattern is None:\n        log.debug(f\"  [{ticker}] RSS: Kurzticker übersprungen (False-Positive-Risiko)\")\n        return []\n\n    results = []\n    for feed_url in _RSS_FEEDS:\n        try:\n            feed = feedparser.parse(feed_url)\n            for entry in feed.entries:\n                title = entry.get(\"title\", \"\")\n                if pattern.search(title):\n                    results.append({\n                        \"title\":    title,\n                        \"datetime\": 0,   # RSS hat keinen zuverlässigen Timestamp\n                        \"source\":   \"RSS\",\n                        \"url\":      entry.get(\"link\", \"\"),\n                        \"summary\":  \"\",\n                    })\n                    if len(results) >= max_articles:\n                        return results\n        except Exception as e:\n            log.debug(f\"RSS Fehler ({feed_url}): {e}\")\n\n    return results\n"
  },
  {
    "path": "modules/options_designer.py",
    "content": "\"\"\"\nmodules/options_designer.py v9.0\n\nÄnderungen v9.0:\n    #1  DTE-Architektur: Erste passende Tier-Logik ersetzt durch Catalyst-aligned DTE.\n        time_to_materialization aus deep_analysis bestimmt jetzt das DTE-Minimum.\n        Tiers unterhalb des Minimums werden übersprungen (nicht nur vega_loss-Check).\n\n    #2  IV-Spread-Gate: 85% → 52%.\n        BULL_CALL_SPREAD wird ab IV-Rank ≥ 52% gewählt (nicht erst bei 85%).\n        Bei normaler IV (< 52%) bleibt LONG_CALL, weil Vega-Exposure akzeptabel.\n\n    #3  Probability-weighted ROI: roi_delta × mc_hit_rate.\n        MC Hit-Rate aus quick_mc wird als Wahrscheinlichkeitsgewicht genutzt.\n        Ergebnis: 135%-ROI bei 0.55 Hit-Rate → ~74% realistischer Erwartungswert.\n\n    #6  time_to_materialization wird jetzt explizit aus deep_analysis\n        ausgelesen und an _compute_roi + Proposal weitergegeben.\n\n    #13 Theta-Decay-Gate: theta_daily_pct > 3%/Tag bei Short-Term → erzwingt\n        Upgrade auf Mid-Term. Verhindert dass Options mit >3% Tagesverlust\n        durch Zeitwert bei Short-Term akzeptiert werden.\n\nÄnderungen v8.1:\n    1. Adaptives Strike-Fenster bei hohem Aktienkurs\n    2. Delta-Filter im Tradier-Pfad\n\nÄnderungen v8.0:\n    - Tradier Live-API als primäre Datenquelle\n    - yfinance Fallback\n\nÄnderungen v7.5:\n    - IV-Rank Kalibrierung\n\"\"\"\n\nfrom __future__ import annotations\nimport logging\nimport math\nimport os\nimport numpy as np\nimport pandas as pd\nimport requests\nfrom datetime import datetime, timezone\nfrom typing import Optional\n\nimport yfinance as yf\n\nfrom modules.config        import cfg\nfrom modules.macro_context import get_macro_regime_multiplier, get_macro_context\n\nlog = logging.getLogger(__name__)\n\n# IV-Gate: ab diesem Wert wird SPREAD statt LONG_CALL gewählt\n# v9.0: 85% → 52% (Spread schützt bereits bei mittlerer IV)\nIV_SPREAD_GATE = 52.0\n\n# IV-Gate für Scoring-Log (behalten für Kompatibilität)\nIV_RANK_GATE = IV_SPREAD_GATE\n\nDTE_TIERS = [\n    {\"label\": \"Short-Term\", \"dte_min\": 14,  \"dte_max\": 60,  \"min_roi\": 0.15},\n    {\"label\": \"Mid-Term\",   \"dte_min\": 61,  \"dte_max\": 149, \"min_roi\": 0.12},\n    {\"label\": \"Long-Term\",  \"dte_min\": 150, \"dte_max\": 365, \"min_roi\": 0.10},\n]\n\n# v9.0 #6: time_to_materialization → DTE-Minimum\n# Verhindert 16-DTE-Option bei 3-Monats-Thesis\nTTM_TO_DTE_MIN: dict[str, int] = {\n    \"4-8 Wochen\":  45,   # Min 45d: Short-Thesis braucht trotzdem Puffer\n    \"2-3 Monate\":  55,   # Mid-Term Minimum (kein 16-DTE!)\n    \"6 Monate\":   140,   # Long-Term Minimum\n}\n\n# v9.0 #13: Theta-Decay-Gate\n# Wenn Zeitwertverlust > X%/Tag des Prämienpreises → Short-Term überspringen\nTHETA_DAILY_PCT_GATE = 0.030   # 3 % pro Tag\n\n# v10.0 #2: Event-typ-spezifische IV-Crush-Schätzungen (Basis-Rate, vor IV-Rank-Scaling)\n# Earnings:  IV crush hoch (42%/18%/6%), Event fix terminiert\n# FDA:       Sehr hoch (60%/22%/8%), binäres Outcome kollabiert Post-Event\n# M&A:       Mittel (25%/10%/3%), bereits teilweise eingepreist\n# Insider:   Niedrig (10%/4%/1%), kein konkretes Event-Datum\n# Other:     Standard (~22%/10%/3%)\n# Scaling:   × (0.5 + iv_rank/200) — bei iv_rank=50: ×0.75, bei iv_rank=100: ×1.0\nEVENT_IV_CRUSH: dict[str, dict[str, float]] = {\n    \"EARNINGS\": {\"short\": 0.42, \"mid\": 0.18, \"long\": 0.06},\n    \"FDA\":      {\"short\": 0.60, \"mid\": 0.22, \"long\": 0.08},\n    \"MA\":       {\"short\": 0.25, \"mid\": 0.10, \"long\": 0.03},\n    \"INSIDER\":  {\"short\": 0.10, \"mid\": 0.04, \"long\": 0.01},\n    \"OTHER\":    {\"short\": 0.22, \"mid\": 0.10, \"long\": 0.03},\n}\n\nSECTOR_ETF = {\n    \"Technology\": \"XLK\", \"Healthcare\": \"XLV\", \"Biotechnology\": \"XBI\",\n    \"Financial Services\": \"XLF\", \"Financials\": \"XLF\", \"Energy\": \"XLE\",\n    \"Consumer Cyclical\": \"XLY\", \"Consumer Defensive\": \"XLP\",\n    \"Industrials\": \"XLI\", \"Basic Materials\": \"XLB\",\n    \"Real Estate\": \"XLRE\", \"Utilities\": \"XLU\",\n    \"Communication Services\": \"XLC\", \"default\": \"SPY\",\n}\n\nRELATIVE_STRENGTH_MIN = -0.15  # -0.08→-0.15: weniger aggressiv, rettet Underreaction-Signale\n\nTRADIER_BASE    = \"https://api.tradier.com/v1\"\nTRADIER_TIMEOUT = 10\n\nMIN_STRIKE_DOLLAR_RANGE = 15.0\n\n\ndef _classify_catalyst_type(s: dict) -> str:\n    \"\"\"\n    Klassifiziert den Katalysator-Typ aus alpha_signals + deep_analysis.\n    Priorität: FDA > Earnings > M&A > Insider > Other\n    Wird in _compute_roi() für event-spezifischen IV-Crush genutzt.\n    \"\"\"\n    alpha        = s.get(\"alpha_signals\", {}) or {}\n    da           = s.get(\"deep_analysis\", {}) or {}\n    catalyst_txt = (da.get(\"catalyst\", \"\") or \"\").lower()\n\n    if alpha.get(\"fda_catalyst\"):\n        return \"FDA\"\n    # eps_drift ist ein Float — nur als EARNINGS klassifizieren wenn signifikant (>5%)\n    eps_drift_significant = abs(float(alpha.get(\"eps_drift\") or 0)) > 0.05\n    if eps_drift_significant or any(k in catalyst_txt for k in (\"earnings\", \" eps\", \"ergebnis\", \"guidance\")):\n        return \"EARNINGS\"\n    if any(k in catalyst_txt for k in (\"merger\", \"acquisition\", \"takeover\", \"buyout\", \"übernahme\", \"deal\", \"m&a\")):\n        return \"MA\"\n    if alpha.get(\"insider_cluster\") or \"insider\" in catalyst_txt:\n        return \"INSIDER\"\n    return \"OTHER\"\n\n\n# ── Tradier Hilfsfunktionen ───────────────────────────────────────────────────\n\ndef _tradier_headers() -> dict:\n    api_key = os.environ.get(\"TRADIER_API_KEY\", \"\")\n    return {\n        \"Authorization\": f\"Bearer {api_key}\",\n        \"Accept\":        \"application/json\",\n    }\n\n\ndef _tradier_expirations(symbol: str) -> list[str]:\n    try:\n        resp = requests.get(\n            f\"{TRADIER_BASE}/markets/options/expirations\",\n            params={\"symbol\": symbol, \"includeAllRoots\": \"true\"},\n            headers=_tradier_headers(),\n            timeout=TRADIER_TIMEOUT,\n        )\n        resp.raise_for_status()\n        data  = resp.json()\n        dates = data.get(\"expirations\", {}).get(\"date\", []) or []\n        if isinstance(dates, str):\n            dates = [dates]\n        return sorted(dates)\n    except Exception as e:\n        log.debug(f\"Tradier Expirations [{symbol}]: {e}\")\n        return []\n\n\ndef _tradier_chain(symbol: str, expiration: str) -> list[dict]:\n    try:\n        resp = requests.get(\n            f\"{TRADIER_BASE}/markets/options/chains\",\n            params={\n                \"symbol\":     symbol,\n                \"expiration\": expiration,\n                \"greeks\":     \"true\",\n            },\n            headers=_tradier_headers(),\n            timeout=TRADIER_TIMEOUT,\n        )\n        resp.raise_for_status()\n        data    = resp.json()\n        options = data.get(\"options\", {}).get(\"option\", []) or []\n        if isinstance(options, dict):\n            options = [options]\n        return options\n    except Exception as e:\n        log.debug(f\"Tradier Chain [{symbol} {expiration}]: {e}\")\n        return []\n\n\ndef _tradier_chain_to_df(options: list[dict], option_type: str) -> pd.DataFrame:\n    rows = []\n    for o in options:\n        if o.get(\"option_type\") != option_type:\n            continue\n        greeks = o.get(\"greeks\") or {}\n\n        iv = (\n            greeks.get(\"mid_iv\")\n            or greeks.get(\"smv_vol\")\n            or 0.30\n        )\n        if not isinstance(iv, (int, float)) or iv <= 0.01:\n            iv = 0.30\n\n        delta = greeks.get(\"delta\")\n        delta = float(delta) if isinstance(delta, (int, float)) else 0.0\n\n        rows.append({\n            \"strike\":            float(o.get(\"strike\", 0)),\n            \"bid\":               float(o.get(\"bid\") or 0),\n            \"ask\":               float(o.get(\"ask\") or 0),\n            \"openInterest\":      int(o.get(\"open_interest\") or 0),\n            \"impliedVolatility\": float(iv),\n            \"delta\":             delta,\n            \"volume\":            int(o.get(\"volume\") or 0),\n            \"_option_symbol\":    o.get(\"symbol\", \"\"),\n        })\n\n    if not rows:\n        return pd.DataFrame()\n\n    return pd.DataFrame(rows)\n\n\n# ── Strike-Fenster Berechnung ─────────────────────────────────────────────────\n\ndef _strike_window(current: float, dte_min: int, dte_max: int) -> tuple[float, float]:\n    \"\"\"\n    Berechnet OTM/ITM-Multiplikatoren für das Strike-Fenster.\n\n    v8.1: Adaptiv bei hohem Aktienkurs.\n    Mindestens MIN_STRIKE_DOLLAR_RANGE ($15) Spielraum pro Seite.\n\n    Beispiele:\n        AME  $310, Short-Term: 3% = $9.3  → zu eng → $15 = 4.8% → otm=1.048\n        AAPL $210, Short-Term: 3% = $6.3  → zu eng → $15 = 7.1% → otm=1.071\n        NVDA $900, Short-Term: 3% = $27.0 → ok      → otm=1.03 bleibt\n    \"\"\"\n    days_mid = (dte_min + dte_max) / 2\n    if days_mid <= 60:\n        base_otm, base_itm = 1.03, 0.97\n    elif days_mid <= 149:\n        base_otm, base_itm = 1.08, 0.96\n    else:\n        base_otm, base_itm = 1.12, 0.95\n\n    if current > 0 and current * (base_otm - 1.0) < MIN_STRIKE_DOLLAR_RANGE:\n        adj     = MIN_STRIKE_DOLLAR_RANGE / current\n        otm_max = round(1.0 + adj, 4)\n        itm_max = round(1.0 - adj, 4)\n        log.debug(\n            f\"  Strike-Fenster adaptiv: ${current:.0f} × {base_otm-1:.0%} \"\n            f\"= ${current*(base_otm-1):.1f} < ${MIN_STRIKE_DOLLAR_RANGE} \"\n            f\"→ otm={otm_max:.4f} itm={itm_max:.4f}\"\n        )\n    else:\n        otm_max, itm_max = base_otm, base_itm\n\n    return otm_max, itm_max\n\n\n# ── Haupt-Klasse ──────────────────────────────────────────────────────────────\n\nclass OptionsDesigner:\n\n    def __init__(self, gates):\n        self.gates = gates\n        self._use_tradier = bool(os.environ.get(\"TRADIER_API_KEY\", \"\").strip())\n        if self._use_tradier:\n            log.info(\"OptionsDesigner: Tradier Live-API aktiv (Primary)\")\n        else:\n            log.warning(\"OptionsDesigner: TRADIER_API_KEY fehlt → yfinance Fallback\")\n        # VIX Term Structure: einmal laden, gecacht für alle Ticker dieses Runs\n        self._vix_ts = get_macro_context().get(\"vix_term_structure\", {})\n\n    def run(self, signals: list[dict]) -> list[dict]:\n        proposals = []\n        for s in signals:\n            ticker = s.get(\"ticker\", \"\")\n            if not self._bear_case_ok(s):\n                continue\n            t_obj = yf.Ticker(ticker)\n            if not self._sector_momentum_ok(s, t=t_obj):\n                log.info(f\"  [{ticker}] SECTOR-GATE → verworfen\")\n                continue\n            proposal = self._design_with_adaptive_dte(s, t_obj)\n            if proposal:\n                proposals.append(proposal)\n        return proposals\n\n    def _design_with_adaptive_dte(self, s: dict, t=None) -> Optional[dict]:\n        ticker    = s[\"ticker\"]\n        direction = s.get(\"deep_analysis\", {}).get(\"direction\", \"BULLISH\")\n        sim       = s.get(\"simulation\", {})\n        current   = sim.get(\"current_price\", 0)\n\n        if current <= 0:\n            return None\n\n        if self.gates.has_upcoming_earnings(ticker):\n            log.info(f\"  [{ticker}] EARNINGS-GATE → blockiert\")\n            return None\n\n        if t is None:\n            t = yf.Ticker(ticker)\n        iv_rank = self._get_iv_rank(ticker, t)\n\n        # v9.0 #6: time_to_materialization → DTE-Minimum\n        da  = s.get(\"deep_analysis\", {})\n        ttm = da.get(\"time_to_materialization\", \"4-8 Wochen\") or \"4-8 Wochen\"\n        dte_floor = TTM_TO_DTE_MIN.get(ttm, 14)\n        log.info(\n            f\"  [{ticker}] TTM='{ttm}' → DTE-Minimum={dte_floor}d \"\n            f\"(Catalyst-aligned DTE Gate)\"\n        )\n\n        # v9.0 #3: MC Hit-Rate für probability-weighted ROI\n        # v10.0 #6: Kein unterer Clamp mehr — 0.30 war künstlich und verbesserte\n        # schlechte Signale. Mirofish filtert bereits < threshold (0.45/0.50).\n        qmc         = s.get(\"quick_mc\", {}) or {}\n        mc_hit_rate = float(qmc.get(\"hit_rate\", 0.65) or 0.65)\n        mc_hit_rate = min(0.95, mc_hit_rate)   # nur obere Grenze, kein Floor\n\n        # v10.0 #2: Katalysator-Typ für event-spezifischen IV-Crush\n        catalyst_type = _classify_catalyst_type(s)\n\n        # Dealer-Gamma aus alpha_signals (bereits in v9.0 berechnet)\n        dealer_gamma = (\n            s.get(\"alpha_signals\", {}).get(\"dealer_gamma\", {}) or {}\n        )\n\n        results_per_tier = []\n\n        for tier in DTE_TIERS:\n            label = tier[\"label\"]\n\n            # v9.0 #1: Überspringe Tiers die unter dem Catalyst-DTE-Minimum liegen.\n            # Korrekte Bedingung: dte_min des Tiers < dte_floor\n            # Beispiel: \"2-3 Monate\" → dte_floor=55\n            #   Short-Term dte_min=14 < 55 → übersprungen ✓\n            #   Mid-Term   dte_min=61 < 55 → False → evaluiert  ✓\n            if tier[\"dte_min\"] < dte_floor:\n                log.info(\n                    f\"  [{ticker}] {label}: dte_min={tier['dte_min']}d < \"\n                    f\"dte_floor={dte_floor}d (Thesis='{ttm}') → übersprungen\"\n                )\n                continue\n\n            strategy = self._select_strategy(ticker, direction, iv_rank, dealer_gamma)\n            option   = self._find_option_for_dte(\n                ticker, strategy, current, tier[\"dte_min\"], tier[\"dte_max\"], t\n            )\n\n            if not option:\n                log.info(f\"  [{ticker}] {label}: kein Kontrakt verfügbar\")\n                if \"SPREAD\" in strategy:\n                    fallback = \"LONG_CALL\" if \"BULL\" in strategy else \"LONG_PUT\"\n                    option   = self._find_option_for_dte(\n                        ticker, fallback, current, tier[\"dte_min\"], tier[\"dte_max\"], t\n                    )\n                    if option:\n                        strategy = fallback\n                        log.info(f\"  [{ticker}] {label}: Fallback → {fallback}\")\n                if not option:\n                    continue\n\n            roi = self._compute_roi(option, sim, iv_rank, tier, strategy, mc_hit_rate, catalyst_type)\n\n            try:\n                dte_safe       = max(int(option.get(\"dte\") or 1), 1)\n                roi_net_safe   = float(roi[\"roi_net\"].real if isinstance(roi[\"roi_net\"], complex) else roi[\"roi_net\"])\n                annualized_roi = float((1 + roi_net_safe) ** (365 / dte_safe) - 1)\n                annualized_roi = min(annualized_roi, 9.99)\n            except Exception:\n                annualized_roi = 0.0\n\n            log.info(\n                f\"  [{ticker}] {label} ({int(option['dte'] or 0)}d): \"\n                f\"ROI={roi['roi_net']:.1%} (mc_weighted) \"\n                f\"theta={roi.get('theta_daily_pct', 0):.1%}/d \"\n                f\"(ann.={annualized_roi:.1%}) \"\n                f\"{'✅ PASS' if roi['passes_roi_gate'] else '❌ FAIL'}\"\n            )\n\n            results_per_tier.append({\n                \"tier\": label, \"dte\": option[\"dte\"],\n                \"option\": option, \"roi\": roi,\n                \"annualized_roi\": round(annualized_roi, 4),\n                \"strategy\": strategy,\n            })\n\n            # v9.0 #13: Theta-Decay-Gate — bei Short-Term und hohem Theta → upgrade\n            if label == \"Short-Term\":\n                theta_pct = roi.get(\"theta_daily_pct\", 0.0)\n                vega_loss = roi.get(\"vega_loss\", 0)\n\n                if theta_pct > THETA_DAILY_PCT_GATE:\n                    log.info(\n                        f\"  [{ticker}] {label}: Theta={theta_pct:.1%}/d > \"\n                        f\"{THETA_DAILY_PCT_GATE:.0%} Gate → Zeitwertverlust zu hoch, \"\n                        f\"versuche längere Laufzeit\"\n                    )\n                    continue\n\n                if vega_loss > 0.35:\n                    log.info(\n                        f\"  [{ticker}] {label}: Vega-Loss={vega_loss:.0%} > 35% \"\n                        f\"→ zu hohes IV-Crush-Risiko, versuche längere Laufzeit\"\n                    )\n                    continue\n\n            if roi[\"passes_roi_gate\"]:\n                tier_idx = DTE_TIERS.index(tier)\n                if tier_idx > 0:\n                    prev_label = DTE_TIERS[0][\"label\"]\n                    prev_roi   = results_per_tier[0][\"roi\"][\"roi_net\"] if results_per_tier else None\n                    if prev_roi is not None:\n                        log.info(\n                            f\"  [{ticker}] ⚡ LAUFZEIT-RETTUNG: \"\n                            f\"{prev_label} ROI={prev_roi:.1%} (FAIL) → \"\n                            f\"{label} ROI={roi['roi_net']:.1%} (PASS) — \"\n                            f\"Trade akzeptiert mit {option['dte']}d Laufzeit\"\n                        )\n\n                # v10.0 #5: Market-Implied Expected Move (ATM Straddle)\n                implied_move = self._get_atm_straddle(ticker, current, option[\"expiry\"], t)\n                model_move   = (\n                    (sim.get(\"target_price\", 0) - current) / current\n                    if current > 0 and sim.get(\"target_price\", 0) > current else 0.0\n                )\n                edge_vs_implied = (model_move - implied_move) if implied_move is not None else None\n                if implied_move is not None:\n                    log.info(\n                        f\"  [{ticker}] Market-Implied: ±{implied_move:.1%} | \"\n                        f\"Model: +{model_move:.1%} | \"\n                        f\"Edge: {edge_vs_implied:+.1%} \"\n                        f\"({'✅ Edge vorhanden' if edge_vs_implied > 0 else '⚠️ kein Edge'})\"\n                    )\n\n                return {\n                    \"ticker\":              ticker,\n                    \"strategy\":            strategy,\n                    \"iv_rank\":             iv_rank,\n                    \"iv_gate_applied\":     iv_rank >= IV_SPREAD_GATE,\n                    \"direction\":           direction,\n                    \"option\":              option,\n                    \"roi_analysis\":        roi,\n                    \"dte_tier\":            label,\n                    \"annualized_roi\":      round(annualized_roi, 4),\n                    \"all_tiers_tried\":     results_per_tier,\n                    \"features\":            s.get(\"features\", {}),\n                    \"simulation\":          s.get(\"simulation\", {}),\n                    \"deep_analysis\":       s.get(\"deep_analysis\", {}),\n                    \"sector_momentum\":     s.get(\"sector_momentum\", {}),\n                    \"final_score\":         s.get(\"final_score\", 0),\n                    \"mc_hit_rate\":         mc_hit_rate,\n                    \"time_to_maturation\":  ttm,\n                    \"sector\":              s.get(\"info\", {}).get(\"sector\", \"\"),\n                    \"catalyst_type\":       catalyst_type,\n                    \"implied_move_pct\":    round(implied_move * 100, 2) if implied_move is not None else None,\n                    \"model_move_pct\":      round(model_move * 100, 2),\n                    \"edge_vs_implied\":     round(edge_vs_implied * 100, 2) if edge_vs_implied is not None else None,\n                }\n\n        tried = \", \".join(\n            f\"{r['tier']}={r['roi']['roi_net']:.1%}\" for r in results_per_tier\n        )\n        log.info(f\"  [{ticker}] Alle Laufzeiten unter ROI-Gate: {tried} → verworfen\")\n        return None\n\n    def _select_strategy(\n        self,\n        ticker:       str,\n        direction:    str,\n        iv_rank:      float,\n        dealer_gamma: dict | None = None,\n    ) -> str:\n        \"\"\"\n        Strategie-Auswahl mit drei Signalen:\n        1. IV-Rank: ≥ 52% → Spread (Vega-Schutz)\n        2. Dealer-Gamma: negative Gamma → aggressiver (LONG_CALL auch bei mittlerer IV)\n        3. Kombination: negative Gamma + niedrige IV → LONG_CALL\n                        positive Gamma + hohe IV   → SPREAD (doppelter Schutz)\n        \"\"\"\n        dealer_gamma  = dealer_gamma or {}\n        gamma_sign    = dealer_gamma.get(\"net_gamma_sign\", \"neutral\")\n        gamma_ok      = dealer_gamma.get(\"data_available\", False)\n\n        is_bullish = direction == \"BULLISH\"\n\n        if gamma_ok and gamma_sign == \"negative\":\n            effective_gate = min(IV_SPREAD_GATE + 13, 65.0)\n            reason = f\"Dealer-Gamma negativ (Trend-Verstärkung) → IV-Gate {effective_gate:.0f}%\"\n        elif gamma_ok and gamma_sign == \"positive\":\n            effective_gate = max(IV_SPREAD_GATE - 12, 40.0)\n            reason = f\"Dealer-Gamma positiv (Mean-Reversion) → IV-Gate {effective_gate:.0f}%\"\n        else:\n            effective_gate = IV_SPREAD_GATE\n            reason = f\"Dealer-Gamma neutral/unbekannt → Standard IV-Gate {IV_SPREAD_GATE:.0f}%\"\n\n        # VIX Term Structure: Backwardation → kurzfristige Angst hoch →\n        # Vol-Crush nach Event wahrscheinlicher → Spread bevorzugen (Gate -8%)\n        vix_structure = self._vix_ts.get(\"structure\", \"unknown\") if self._vix_ts else \"unknown\"\n        if vix_structure == \"backwardation\":\n            effective_gate = max(effective_gate - 8.0, 35.0)\n            reason += f\" | VIX Backwardation → Gate -{8:.0f}% ({effective_gate:.0f}%)\"\n        elif vix_structure == \"contango\":\n            pass  # Contango: kein Adjustment — Standardlogik reicht\n\n        if iv_rank >= effective_gate:\n            s = \"BULL_CALL_SPREAD\" if is_bullish else \"BEAR_PUT_SPREAD\"\n            log.info(\n                f\"  [{ticker}] IV={iv_rank:.0f}% ≥ {effective_gate:.0f}% → {s} \"\n                f\"(Spread | {reason})\"\n            )\n        else:\n            s = \"LONG_CALL\" if is_bullish else \"LONG_PUT\"\n            log.info(\n                f\"  [{ticker}] IV={iv_rank:.0f}% < {effective_gate:.0f}% → {s} \"\n                f\"(Naked | {reason})\"\n            )\n        return s\n\n    def _compute_roi(\n        self,\n        option:        dict,\n        sim:           dict,\n        iv_rank:       float,\n        tier:          dict,\n        strategy:      str   = \"\",\n        mc_hit_rate:   float = 0.65,   # v9.0 #3: probability weight\n        catalyst_type: str   = \"OTHER\", # v10.0 #2: event-spezifischer IV-Crush\n    ) -> dict:\n        bid     = option.get(\"bid\", 0) or 0\n        ask     = option.get(\"ask\", 0) or 0\n        strike  = option.get(\"strike\", 0) or 0\n        iv      = option.get(\"implied_vol\", 0.30) or 0.30\n        dte     = int(option.get(\"dte\", 120) or 120)\n        current = sim.get(\"current_price\", 0) or 0\n        target  = sim.get(\"target_price\", 0) or 0\n        min_roi = tier[\"min_roi\"]\n\n        is_spread = \"SPREAD\" in strategy\n        cost = option.get(\"net_debit\", ask) if is_spread else ask\n\n        if cost <= 0 or current <= 0:\n            return {\"roi_net\": 0.0, \"passes_roi_gate\": False,\n                    \"roi_gross\": 0.0, \"spread_pct\": 0.0,\n                    \"vega_loss\": 0.0, \"theta_daily_pct\": 0.0,\n                    \"breakeven\": 0.0, \"breakeven_pct\": 0.0,\n                    \"delta\": 0.0, \"min_roi_threshold\": min_roi}\n\n        if iv < 0.05 or iv > 3.0:\n            iv = 0.30\n\n        spread_pct = (ask - bid) / ask if ask > 0 else 0.0\n        T          = max(dte / 365.0, 1 / 365.0)  # mindestens 1 Tag\n\n        tradier_delta = option.get(\"delta\")\n        if tradier_delta and 0.01 <= abs(float(tradier_delta)) <= 0.99:\n            delta = float(tradier_delta)\n            vega  = 0.0\n            try:\n                d1   = (math.log(current / strike) + 0.5 * iv**2 * T) / (iv * math.sqrt(T))\n                nd1  = math.exp(-0.5 * d1**2) / math.sqrt(2 * math.pi)\n                vega = current * nd1 * math.sqrt(T)\n            except Exception:\n                nd1 = 0.0\n        else:\n            try:\n                d1   = (math.log(current / strike) + 0.5 * iv**2 * T) / (iv * math.sqrt(T))\n                nd1  = math.exp(-0.5 * d1**2) / math.sqrt(2 * math.pi)\n                delta = (1.0 + math.erf(d1 / math.sqrt(2.0))) / 2.0\n                vega  = current * nd1 * math.sqrt(T)\n            except Exception:\n                delta, vega, nd1 = 0.5, 0.0, 0.0\n\n        if is_spread:\n            delta *= 0.80\n\n        # v9.0 #13: Theta-Decay (vereinfachte BS-Formel, r≈0)\n        # theta_per_year = -current * N'(d1) * sigma / (2 * sqrt(T))\n        # = -vega * sigma / (2 * T)\n        try:\n            theta_per_year = -(current * nd1 * iv) / (2.0 * math.sqrt(T))\n            theta_daily    = theta_per_year / 365.0\n            theta_daily_pct = abs(theta_daily) / cost if cost > 0 else 0.0\n        except Exception:\n            theta_daily     = 0.0\n            theta_daily_pct = 0.0\n\n        # Breakeven bei Expiry\n        breakeven     = strike + ask if not is_spread else strike + cost\n        breakeven_pct = (breakeven - current) / current if current > 0 else 0.0\n\n        leverage      = current / cost if cost > 0 else 1.0\n        expected_move = (target - current) / current if target > current else 0.0\n\n        # v9.0 #3 / v10.0 #6: Probability-weighted ROI, kein unterer Clamp mehr\n        mc_weight = min(0.95, mc_hit_rate)\n        roi_delta = expected_move * delta * leverage * mc_weight\n\n        # v10.0 #2: Event-typ-spezifischer IV-Crush + IV-Rank-Scaling\n        # Basis-Rate aus EVENT_IV_CRUSH, dann skaliert mit IV-Rank:\n        # iv_rank=0  → 0.50× (kaum IV, kaum Crush)\n        # iv_rank=50 → 0.75× (mittlere IV)\n        # iv_rank=100→ 1.00× (maximale IV, maximaler Crush)\n        crush_rates  = EVENT_IV_CRUSH.get(catalyst_type, EVENT_IV_CRUSH[\"OTHER\"])\n        dte_key      = \"short\" if dte <= 60 else (\"mid\" if dte <= 149 else \"long\")\n        iv_drop_base = crush_rates[dte_key]\n        iv_rank_scale = 0.5 + (iv_rank / 200.0)\n\n        # VIX Term Structure: Backwardation → erhöhter Crush (×1.20)\n        #                     Contango      → geringerer Crush (×0.85, Markt ruhig)\n        vix_structure = self._vix_ts.get(\"structure\", \"unknown\") if self._vix_ts else \"unknown\"\n        vix_crush_scale = 1.20 if vix_structure == \"backwardation\" else (\n                          0.85 if vix_structure == \"contango\" else 1.00)\n\n        iv_drop = iv_drop_base * iv_rank_scale * vix_crush_scale\n\n        vega_loss = min((vega * iv * iv_drop) / cost, 0.50) if cost > 0 else 0.0\n        roi_net   = roi_delta - (spread_pct * 2) - vega_loss\n        passes    = roi_net >= min_roi\n\n        def _safe_float(v):\n            if isinstance(v, complex): return float(v.real)\n            try: return float(v)\n            except: return 0.0\n\n        return {\n            \"roi_gross\":         round(_safe_float(roi_delta), 4),\n            \"roi_net\":           round(_safe_float(roi_net), 4),\n            \"spread_pct\":        round(_safe_float(spread_pct), 4),\n            \"vega_loss\":         round(_safe_float(vega_loss), 4),\n            \"theta_daily\":       round(_safe_float(theta_daily), 4),\n            \"theta_daily_pct\":   round(_safe_float(theta_daily_pct), 4),\n            \"delta\":             round(_safe_float(delta), 4),\n            \"breakeven\":         round(_safe_float(breakeven), 2),\n            \"breakeven_pct\":     round(_safe_float(breakeven_pct), 4),\n            \"iv_drop_assumed\":   _safe_float(iv_drop),\n            \"iv_drop_base\":      _safe_float(iv_drop_base),\n            \"catalyst_type\":     catalyst_type,\n            \"cost_basis\":        round(float(cost), 4),\n            \"mc_weight\":         round(mc_weight, 3),\n            \"is_spread\":         is_spread,\n            \"passes_roi_gate\":   passes,\n            \"min_roi_threshold\": min_roi,\n            \"dte\":               int(dte),\n        }\n\n    # ── Option Chain Abruf: Tradier Primary, yfinance Fallback ───────────────\n\n    def _find_option_for_dte(\n        self, ticker: str, strategy: str, current: float,\n        dte_min: int, dte_max: int,\n        t: Optional[object] = None,\n    ) -> Optional[dict]:\n        if self._use_tradier:\n            result = self._find_option_tradier(ticker, strategy, current, dte_min, dte_max)\n            if result is not None:\n                return result\n            log.debug(f\"  [{ticker}] Tradier Chain leer → yfinance Fallback\")\n\n        return self._find_option_yfinance(ticker, strategy, current, dte_min, dte_max, t)\n\n    def _find_option_tradier(\n        self, ticker: str, strategy: str, current: float,\n        dte_min: int, dte_max: int,\n    ) -> Optional[dict]:\n        try:\n            all_dates = _tradier_expirations(ticker)\n            if not all_dates:\n                return None\n\n            dates = [d for d in all_dates if dte_min <= self._days_to(d) <= dte_max]\n            if not dates:\n                return None\n\n            best_expiry = dates[0]\n            is_call     = \"CALL\" in strategy or \"BULL\" in strategy\n            option_type = \"call\" if is_call else \"put\"\n\n            raw = _tradier_chain(ticker, best_expiry)\n            if not raw:\n                return None\n\n            opts = _tradier_chain_to_df(raw, option_type)\n            if opts.empty:\n                return None\n\n            otm_max, itm_max = _strike_window(current, dte_min, dte_max)\n\n            min_oi = max(\n                getattr(getattr(cfg, \"risk\", None), \"min_open_interest\", 100), 50\n            )\n            filtered = opts[\n                (opts[\"strike\"] >= current * itm_max) &\n                (opts[\"strike\"] <= current * otm_max) &\n                (opts[\"openInterest\"] >= min_oi)\n            ].copy()\n\n            if filtered.empty:\n                return None\n\n            filtered[\"spread_ratio\"] = (\n                (filtered[\"ask\"] - filtered[\"bid\"]) /\n                filtered[\"ask\"].clip(lower=0.01)\n            )\n            filtered = filtered[filtered[\"spread_ratio\"] <= cfg.risk.max_bid_ask_ratio]\n            if filtered.empty:\n                return None\n\n            delta_min = getattr(getattr(cfg, \"options\", None), \"delta_target_low\",  0.50)\n            delta_max = getattr(getattr(cfg, \"options\", None), \"delta_target_high\", 0.75)\n            if \"delta\" in filtered.columns:\n                delta_filtered = filtered[\n                    (filtered[\"delta\"].abs() >= delta_min) &\n                    (filtered[\"delta\"].abs() <= delta_max)\n                ]\n                if not delta_filtered.empty:\n                    filtered = delta_filtered\n                else:\n                    log.debug(\n                        f\"  [{ticker}] Delta-Filter ({delta_min:.2f}–{delta_max:.2f}): \"\n                        f\"kein Match → alle behalten\"\n                    )\n\n            best = filtered.sort_values(\"openInterest\", ascending=False).iloc[0]\n            dte  = self._days_to(best_expiry)\n\n            result = {\n                \"expiry\":        best_expiry,\n                \"strike\":        float(best[\"strike\"]),\n                \"bid\":           float(best[\"bid\"]),\n                \"ask\":           float(best[\"ask\"]),\n                \"open_interest\": int(best[\"openInterest\"]),\n                \"implied_vol\":   float(best[\"impliedVolatility\"]),\n                \"spread_ratio\":  round(float(best[\"spread_ratio\"]), 4),\n                \"dte\":           int(dte),\n                \"delta\":         float(best.get(\"delta\", 0)),\n                \"data_source\":   \"tradier\",\n            }\n\n            log.info(\n                f\"  [{ticker}] Tradier Chain: expiry={best_expiry} \"\n                f\"strike={result['strike']:.1f} IV={result['implied_vol']:.1%} \"\n                f\"delta={result['delta']:.2f} OI={result['open_interest']}\"\n            )\n\n            if \"SPREAD\" in strategy:\n                spread_leg = self._find_spread_leg(opts, best[\"strike\"])\n                result[\"spread_leg\"] = spread_leg\n                if spread_leg:\n                    result[\"net_debit\"] = round(\n                        result[\"ask\"] - spread_leg.get(\"bid\", 0), 2\n                    )\n                    if spread_leg.get(\"bid\", 0) <= 0:\n                        log.debug(f\"  [{ticker}] Short-Leg hat keine Liquidität → kein Spread\")\n                        result.pop(\"spread_leg\", None)\n                        result.pop(\"net_debit\", None)\n\n            return result\n\n        except Exception as e:\n            log.debug(f\"Tradier _find_option [{ticker}] {dte_min}-{dte_max}d: {e}\")\n            return None\n\n    def _find_option_yfinance(\n        self, ticker: str, strategy: str, current: float,\n        dte_min: int, dte_max: int,\n        t: Optional[object] = None,\n    ) -> Optional[dict]:\n        try:\n            if t is None:\n                t = yf.Ticker(ticker)\n            dates = [\n                d for d in (t.options or [])\n                if dte_min <= self._days_to(d) <= dte_max\n            ]\n            if not dates:\n                return None\n\n            best_expiry = dates[0]\n            chain       = t.option_chain(best_expiry)\n            is_call     = \"CALL\" in strategy or \"BULL\" in strategy\n            opts        = chain.calls if is_call else chain.puts\n\n            otm_max, itm_max = _strike_window(current, dte_min, dte_max)\n\n            filtered = opts[\n                (opts[\"strike\"] >= current * itm_max) &\n                (opts[\"strike\"] <= current * otm_max) &\n                (opts[\"openInterest\"] >= max(\n                    getattr(getattr(cfg, \"risk\", None), \"min_open_interest\", 100), 50\n                ))\n            ].copy()\n\n            if filtered.empty:\n                return None\n\n            filtered[\"spread_ratio\"] = (\n                (filtered[\"ask\"] - filtered[\"bid\"]) /\n                filtered[\"ask\"].clip(lower=0.01)\n            )\n            filtered = filtered[filtered[\"spread_ratio\"] <= cfg.risk.max_bid_ask_ratio]\n            if filtered.empty:\n                return None\n\n            best = filtered.sort_values(\"openInterest\", ascending=False).iloc[0]\n            dte  = self._days_to(best_expiry)\n\n            result = {\n                \"expiry\":        best_expiry,\n                \"strike\":        float(best[\"strike\"]),\n                \"bid\":           float(best[\"bid\"]),\n                \"ask\":           float(best[\"ask\"]),\n                \"open_interest\": int(best[\"openInterest\"]),\n                \"implied_vol\":   float(best.get(\"impliedVolatility\", 0.30)),\n                \"spread_ratio\":  round(float(best[\"spread_ratio\"]), 4),\n                \"dte\":           int(dte),\n                \"data_source\":   \"yfinance\",\n            }\n\n            if \"SPREAD\" in strategy:\n                spread_leg = self._find_spread_leg(opts, best[\"strike\"])\n                result[\"spread_leg\"] = spread_leg\n                if spread_leg:\n                    result[\"net_debit\"] = round(\n                        result[\"ask\"] - spread_leg.get(\"bid\", 0), 2\n                    )\n                    if spread_leg.get(\"bid\", 0) <= 0:\n                        log.debug(f\"  [{ticker}] Short-Leg hat keine Liquidität → kein Spread\")\n                        result.pop(\"spread_leg\", None)\n                        result.pop(\"net_debit\", None)\n\n            return result\n\n        except Exception as e:\n            log.debug(f\"yfinance _find_option [{ticker}] {dte_min}-{dte_max}d: {e}\")\n            return None\n\n    def _find_spread_leg(self, opts: pd.DataFrame, long_strike: float) -> Optional[dict]:\n        candidates = opts[\n            (opts[\"strike\"] >= long_strike * 1.05) &\n            (opts[\"strike\"] <= long_strike * 1.20)\n        ]\n        if candidates.empty:\n            return None\n        best = candidates.iloc[\n            (candidates[\"strike\"] - long_strike * 1.10).abs().argsort()\n        ].iloc[0]\n        return {\"strike\": float(best[\"strike\"]),\n                \"bid\": float(best[\"bid\"]), \"ask\": float(best[\"ask\"])}\n\n    # ── ATM Straddle (Market-Implied Expected Move) ───────────────────────────\n\n    def _get_atm_straddle(\n        self, ticker: str, current: float, expiry: str, t=None\n    ) -> Optional[float]:\n        \"\"\"\n        Berechnet den ATM Straddle-Preis (Call Ask + Put Ask) für eine Expiry.\n        Gibt ihn als Anteil des Aktienkurses zurück (= Market-Implied Expected Move).\n\n        Beispiel: Straddle $10 bei Kurs $100 → implied_move = 0.10 (±10%).\n        \"\"\"\n        # Tradier: Chain bereits für diese Expiry gecacht\n        if self._use_tradier:\n            try:\n                raw = _tradier_chain(ticker, expiry)\n                if raw:\n                    atm_call = min(\n                        (o for o in raw if o.get(\"option_type\") == \"call\"),\n                        key=lambda o: abs(float(o.get(\"strike\", 1e9)) - current),\n                        default=None,\n                    )\n                    atm_put = min(\n                        (o for o in raw if o.get(\"option_type\") == \"put\"),\n                        key=lambda o: abs(float(o.get(\"strike\", 1e9)) - current),\n                        default=None,\n                    )\n                    if atm_call and atm_put:\n                        ca = float(atm_call.get(\"ask\", 0) or 0)\n                        pa = float(atm_put.get(\"ask\", 0) or 0)\n                        if ca > 0 and pa > 0 and current > 0:\n                            return (ca + pa) / current\n            except Exception as e:\n                log.debug(f\"  [{ticker}] ATM Straddle Tradier Fehler: {e}\")\n\n        # yfinance Fallback\n        try:\n            if t is None:\n                t = yf.Ticker(ticker)\n            chain = t.option_chain(expiry)\n            c = chain.calls.iloc[(chain.calls[\"strike\"] - current).abs().argsort()].iloc[0]\n            p = chain.puts.iloc[(chain.puts[\"strike\"] - current).abs().argsort()].iloc[0]\n            ca = float(c.get(\"ask\", 0) or 0)\n            pa = float(p.get(\"ask\", 0) or 0)\n            if ca > 0 and pa > 0 and current > 0:\n                return (ca + pa) / current\n        except Exception as e:\n            log.debug(f\"  [{ticker}] ATM Straddle yfinance Fehler: {e}\")\n\n        return None\n\n    # ── IV-Rank ───────────────────────────────────────────────────────────────\n\n    def _get_iv_rank(self, ticker: str, t: Optional[object] = None) -> float:\n        try:\n            if t is None:\n                t = yf.Ticker(ticker)\n\n            rv_score = 50.0\n            info     = t.info\n            current  = float(info.get(\"currentPrice\") or info.get(\"regularMarketPrice\") or 0)\n\n            hist = t.history(period=\"1y\")\n            if not hist.empty and len(hist) >= 60:\n                rets    = hist[\"Close\"].pct_change().dropna()\n                roll_rv = rets.rolling(21).std().dropna() * (252 ** 0.5)\n                if len(roll_rv) >= 20:\n                    rv_current = float(roll_rv.iloc[-1])\n                    rv_min     = float(roll_rv.quantile(0.05))\n                    rv_max     = float(roll_rv.quantile(0.95))\n                    if rv_max > rv_min:\n                        rv_score = ((rv_current - rv_min) / (rv_max - rv_min)) * 100\n                        rv_score = max(0.0, min(100.0, rv_score))\n\n            if current <= 0:\n                return round(rv_score, 1)\n\n            term_score = 20.0\n            iv_pts     = self._get_term_structure_iv(ticker, current, t)\n\n            if len(iv_pts) >= 2:\n                iv_pts.sort()\n                iv_short = iv_pts[0][1]\n                iv_long  = iv_pts[-1][1]\n                if iv_long > 0:\n                    slope      = (iv_short / iv_long) - 1.0\n                    term_score = max(0.0, min(80.0, (slope + 0.05) * 100))\n\n            combined = round(rv_score * 0.80 + term_score * 0.20, 1)\n            log.info(\n                f\"  [{ticker}] IV-Rank: rv={rv_score:.0f} term={term_score:.0f} \"\n                f\"→ combined={combined:.0f} \"\n                f\"({'SPREAD' if combined >= IV_SPREAD_GATE else 'LONG'})\"\n            )\n            return combined\n\n        except Exception:\n            return 50.0\n\n    def _get_term_structure_iv(\n        self, ticker: str, current: float, t=None\n    ) -> list[tuple[int, float]]:\n        if self._use_tradier:\n            iv_pts = self._term_structure_tradier(ticker, current)\n            if len(iv_pts) >= 2:\n                return iv_pts\n            log.debug(f\"  [{ticker}] Term-Structure Tradier unvollständig → yfinance\")\n        return self._term_structure_yfinance(ticker, current, t)\n\n    def _term_structure_tradier(\n        self, ticker: str, current: float\n    ) -> list[tuple[int, float]]:\n        iv_pts = []\n        try:\n            dates = _tradier_expirations(ticker)\n            for d in dates[:3]:\n                dte = self._days_to(d)\n                if dte < 7:\n                    continue\n                raw = _tradier_chain(ticker, d)\n                if not raw:\n                    continue\n                atm_ivs = []\n                for o in raw:\n                    if o.get(\"option_type\") != \"call\":\n                        continue\n                    strike = float(o.get(\"strike\", 0))\n                    if not (current * 0.93 <= strike <= current * 1.07):\n                        continue\n                    greeks = o.get(\"greeks\") or {}\n                    iv = greeks.get(\"mid_iv\") or greeks.get(\"smv_vol\")\n                    if iv and isinstance(iv, (int, float)) and iv > 0.05:\n                        atm_ivs.append(float(iv))\n                if atm_ivs:\n                    iv_pts.append((dte, float(np.median(atm_ivs))))\n        except Exception as e:\n            log.debug(f\"  [{ticker}] Term-Structure Tradier Fehler: {e}\")\n        return iv_pts\n\n    def _term_structure_yfinance(\n        self, ticker: str, current: float, t=None\n    ) -> list[tuple[int, float]]:\n        iv_pts = []\n        try:\n            if t is None:\n                t = yf.Ticker(ticker)\n            dates = t.options or []\n            for d in dates[:3]:\n                try:\n                    dte = self._days_to(d)\n                    if dte < 7:\n                        continue\n                    ch  = t.option_chain(d)\n                    atm = ch.calls[\n                        (ch.calls[\"strike\"] >= current * 0.93) &\n                        (ch.calls[\"strike\"] <= current * 1.07) &\n                        (ch.calls[\"impliedVolatility\"] > 0.05)\n                    ]\n                    if not atm.empty:\n                        iv_pts.append((dte, float(atm[\"impliedVolatility\"].median())))\n                except Exception:\n                    continue\n        except Exception as e:\n            log.debug(f\"  [{ticker}] Term-Structure yfinance Fehler: {e}\")\n        return iv_pts\n\n    # ── Sektor-Momentum ───────────────────────────────────────────────────────\n\n    def _sector_momentum_ok(self, s: dict, t=None) -> bool:\n        ticker    = s.get(\"ticker\", \"\")\n        sector    = s.get(\"info\", {}).get(\"sector\", \"default\")\n        direction = s.get(\"deep_analysis\", {}).get(\"direction\", \"BULLISH\")\n        etf       = SECTOR_ETF.get(sector, SECTOR_ETF[\"default\"])\n        try:\n            ticker_obj = t if t is not None else yf.Ticker(ticker)\n            sh = ticker_obj.history(period=\"35d\")\n            eh = yf.Ticker(etf).history(period=\"35d\")\n            if sh.empty or eh.empty or len(sh) < 5:\n                return True\n            sr = float((sh[\"Close\"].iloc[-1] - sh[\"Close\"].iloc[0]) / sh[\"Close\"].iloc[0])\n            er = float((eh[\"Close\"].iloc[-1] - eh[\"Close\"].iloc[0]) / eh[\"Close\"].iloc[0])\n            rs = sr - er\n            s[\"sector_momentum\"] = {\"etf\": etf, \"rel_strength\": round(rs, 4)}\n            return rs >= RELATIVE_STRENGTH_MIN if direction == \"BULLISH\" else rs <= -RELATIVE_STRENGTH_MIN\n        except Exception:\n            return True\n\n    def _bear_case_ok(self, s: dict) -> bool:\n        sev = s.get(\"deep_analysis\", {}).get(\"bear_case_severity\", 0)\n        thr = getattr(getattr(cfg, \"risk\", None), \"max_bear_case_severity\", 8)\n        if sev >= thr:\n            log.info(f\"  [{s['ticker']}] BEAR-CASE={sev} ≥ {thr} → blockiert\")\n            return False\n        return True\n\n    def _days_to(self, expiry_str: str) -> int:\n        try:\n            expiry = datetime.strptime(expiry_str, \"%Y-%m-%d\").replace(tzinfo=timezone.utc)\n            now    = datetime.now(timezone.utc)\n            return max(0, (expiry - now).days)\n        except Exception:\n            return 0\n"
  },
  {
    "path": "modules/premium_signals.py",
    "content": "\"\"\"\nmodules/premium_signals.py – FLASH Alpha & Eulerpool (nur Top-Kandidaten)\n\nPriorität 5: Dealer Positioning, GEX, Vol Surface — nur für finale Kandidaten.\n\nBudget-Regeln (KRITISCH):\n  FLASH Alpha: Max 5 API-Calls/Tag → NUR für Top-2 Signale nach RL-Scoring\n  Eulerpool:   Free Tier begrenzt  → NUR für Top-2 Signale nach RL-Scoring\n\nDiese Signale laufen NACH Stufe 6 (RL-Scoring), VOR Stufe 7 (Options-Design).\nSie können ein Signal final boosten oder verwerfen.\n\"\"\"\n\nfrom __future__ import annotations\nimport logging\nimport os\nfrom typing import Optional\n\nimport requests\n\nlog = logging.getLogger(__name__)\n\n# Globaler Call-Zähler für FLASH Alpha (max 5/Tag)\n_flash_calls_today: int = 0\n_FLASH_MAX_DAILY   = 5\n\n\n# ── FLASH Alpha API ───────────────────────────────────────────────────────────\n\ndef fetch_flash_alpha(ticker: str) -> dict:\n    \"\"\"\n    Ruft Dealer Positioning, GEX und Gamma-Levels via FLASH Alpha ab.\n\n    FLASH Alpha Daten erklären:\n      - GEX (Gamma Exposure): Positives GEX → Dealer kaufen Rücksetzer (stabilisiert)\n                               Negatives GEX → Dealer verkaufen Rücksetzer (verstärkt)\n      - Gamma Flip Level: Preis unter dem Markt instabil wird\n      - Put/Call Walls: Preisbereiche mit starker Options-Konzentration\n\n    Relevant für Options-Trading:\n      - Wenn Aktie über Gamma-Flip: Calls profitieren von Dealer-Hedging\n      - Put-Wall unter Strike: natürlicher Support, reduziert Downside-Risiko\n\n    API: FLASH Alpha (kostenpflichtig, 5 Requests/Tag im getesteten Free-Tier)\n    Benötigt: FLASH_ALPHA_API_KEY als GitHub Secret\n    \"\"\"\n    global _flash_calls_today\n\n    api_key = os.getenv(\"FLASH_ALPHA_API_KEY\", \"\")\n    if not api_key:\n        log.debug(\"FLASH_ALPHA_API_KEY nicht gesetzt → übersprungen\")\n        return _flash_empty(ticker)\n\n    if _flash_calls_today >= _FLASH_MAX_DAILY:\n        log.warning(\n            f\"FLASH Alpha Tageslimit ({_FLASH_MAX_DAILY}) erreicht → \"\n            f\"{ticker} übersprungen.\"\n        )\n        return _flash_empty(ticker)\n\n    try:\n        # FLASH Alpha API Endpoint (Struktur gemäß Dokumentation)\n        url  = f\"https://api.flashalpha.com/v1/options/positioning/{ticker}\"\n        resp = requests.get(\n            url,\n            headers={\n                \"Authorization\": f\"Bearer {api_key}\",\n                \"Accept\":        \"application/json\",\n            },\n            timeout=10,\n        )\n        _flash_calls_today += 1\n        log.info(\n            f\"  [{ticker}] FLASH Alpha Call \"\n            f\"({_flash_calls_today}/{_FLASH_MAX_DAILY} heute)\"\n        )\n\n        if resp.status_code == 404:\n            return _flash_empty(ticker)\n\n        resp.raise_for_status()\n        data = resp.json()\n\n        gex              = data.get(\"gex\", 0.0)\n        gamma_flip       = data.get(\"gamma_flip_level\", None)\n        put_wall         = data.get(\"put_wall\", None)\n        call_wall        = data.get(\"call_wall\", None)\n        net_positioning  = data.get(\"net_positioning\", \"neutral\")\n\n        # Bullish Score aus Dealer-Daten\n        dealer_bullish = _compute_dealer_score(\n            gex, gamma_flip, put_wall, call_wall, data\n        )\n\n        result = {\n            \"ticker\":           ticker,\n            \"gex\":              gex,\n            \"gamma_flip_level\": gamma_flip,\n            \"put_wall\":         put_wall,\n            \"call_wall\":        call_wall,\n            \"net_positioning\":  net_positioning,\n            \"dealer_bullish\":   dealer_bullish,  # -1 (bearish) bis +1 (bullish)\n            \"data_available\":   True,\n            \"source\":           \"FLASH Alpha\",\n        }\n\n        log.info(\n            f\"  [{ticker}] FLASH Alpha: GEX={gex:.0f} \"\n            f\"flip={gamma_flip} dealer_score={dealer_bullish:.2f}\"\n        )\n        return result\n\n    except requests.exceptions.HTTPError as e:\n        if e.response.status_code == 402:\n            log.warning(\"FLASH Alpha: Limit erreicht (402 Payment Required)\")\n            _flash_calls_today = _FLASH_MAX_DAILY  # Weiteres Aufrufen verhindern\n        else:\n            log.debug(f\"FLASH Alpha HTTP Fehler für {ticker}: {e}\")\n        return _flash_empty(ticker)\n    except Exception as e:\n        log.debug(f\"FLASH Alpha Fehler für {ticker}: {e}\")\n        return _flash_empty(ticker)\n\n\ndef _compute_dealer_score(\n    gex: float,\n    gamma_flip: Optional[float],\n    put_wall: Optional[float],\n    call_wall: Optional[float],\n    raw_data: dict,\n) -> float:\n    \"\"\"\n    Berechnet einen normierten Dealer-Score (-1 bis +1).\n\n    Positiver Score → Dealer-Dynamik begünstigt Calls\n    Negativer Score → Dealer-Dynamik begünstigt Puts\n    \"\"\"\n    score = 0.0\n\n    # GEX: Positives GEX ist bullish (Dealer kaufen Rücksetzer)\n    if gex > 0:\n        score += min(gex / 1_000_000_000, 0.4)   # Cap bei 0.4\n    elif gex < 0:\n        score -= min(abs(gex) / 1_000_000_000, 0.4)\n\n    # Positioning\n    positioning = raw_data.get(\"net_positioning\", \"neutral\")\n    if positioning == \"bullish\":\n        score += 0.3\n    elif positioning == \"bearish\":\n        score -= 0.3\n\n    return round(max(-1.0, min(1.0, score)), 3)\n\n\ndef _flash_empty(ticker: str) -> dict:\n    return {\n        \"ticker\":           ticker,\n        \"gex\":              0.0,\n        \"gamma_flip_level\": None,\n        \"put_wall\":         None,\n        \"call_wall\":        None,\n        \"net_positioning\":  \"neutral\",\n        \"dealer_bullish\":   0.0,\n        \"data_available\":   False,\n        \"source\":           \"FLASH Alpha\",\n    }\n\n\n# ── Eulerpool Vol Surface ─────────────────────────────────────────────────────\n\ndef fetch_eulerpool_vol_surface(ticker: str) -> dict:\n    \"\"\"\n    Ruft Vol Surface Anomalien, OI Dynamics und Flow-Daten via Eulerpool ab.\n\n    Relevant für Options-Trading:\n      - Vol Surface Skew: Wenn Puts deutlich teurer als Calls → Downside-Angst\n      - OI Spike: Plötzlicher Open Interest Anstieg → Institutionelles Positioning\n      - Call/Put Flow: Netto-Options-Volumen zeigt Smart-Money-Richtung\n\n    Benötigt: EULERPOOL_API_KEY als GitHub Secret\n    Free Tier: Begrenzte Calls/Tag (genaues Limit in Doku prüfen)\n    \"\"\"\n    api_key = os.getenv(\"EULERPOOL_API_KEY\", \"\")\n    if not api_key:\n        log.debug(\"EULERPOOL_API_KEY nicht gesetzt → übersprungen\")\n        return _eulerpool_empty(ticker)\n\n    try:\n        # Eulerpool Options Flow Endpoint\n        url  = f\"https://api.eulerpool.com/v1/options/flow/{ticker}\"\n        resp = requests.get(\n            url,\n            headers={\n                \"Authorization\": f\"Bearer {api_key}\",\n                \"Accept\":        \"application/json\",\n            },\n            timeout=10,\n        )\n\n        if resp.status_code in (404, 403):\n            return _eulerpool_empty(ticker)\n\n        resp.raise_for_status()\n        data = resp.json()\n\n        # Vol Surface\n        iv_skew           = data.get(\"iv_skew\", 0.0)         # Put IV - Call IV\n        iv_percentile     = data.get(\"iv_percentile\", 50.0)  # 0-100\n        vol_surface_trend = data.get(\"vol_surface_trend\", \"flat\")\n\n        # Flow & OI\n        net_call_flow  = data.get(\"net_call_flow\", 0.0)   # USD\n        net_put_flow   = data.get(\"net_put_flow\", 0.0)    # USD\n        oi_change_pct  = data.get(\"oi_change_pct_24h\", 0.0)\n\n        # IV Crush Risiko berechnen\n        iv_crush_risk = _assess_iv_crush_risk(iv_percentile, iv_skew)\n\n        result = {\n            \"ticker\":           ticker,\n            \"iv_skew\":          iv_skew,\n            \"iv_percentile\":    iv_percentile,\n            \"vol_surface_trend\": vol_surface_trend,\n            \"net_call_flow\":    net_call_flow,\n            \"net_put_flow\":     net_put_flow,\n            \"oi_change_pct\":    oi_change_pct,\n            \"iv_crush_risk\":    iv_crush_risk,  # \"low\" | \"medium\" | \"high\"\n            \"smart_money_bias\": _compute_flow_bias(net_call_flow, net_put_flow),\n            \"data_available\":   True,\n            \"source\":           \"Eulerpool\",\n        }\n\n        log.info(\n            f\"  [{ticker}] Eulerpool: IV-Rank={iv_percentile:.0f}% \"\n            f\"skew={iv_skew:.2f} crush_risk={iv_crush_risk} \"\n            f\"flow_bias={result['smart_money_bias']:.2f}\"\n        )\n        return result\n\n    except Exception as e:\n        log.debug(f\"Eulerpool Fehler für {ticker}: {e}\")\n        return _eulerpool_empty(ticker)\n\n\ndef _assess_iv_crush_risk(iv_percentile: float, iv_skew: float) -> str:\n    \"\"\"\n    Bewertet das Risiko eines IV-Crush nach Event.\n\n    IV-Crush tritt auf wenn:\n    - IV sehr hoch vor Event (IV-Percentile > 80%)\n    - Event löst auf (Earnings, FDA-Entscheid)\n    - Realized Volatility ist niedriger als implizite\n\n    Für Long-Call-Käufer: IV-Crush kann profitablen Trade in Verlust verwandeln.\n    \"\"\"\n    if iv_percentile > 80:\n        return \"high\"\n    elif iv_percentile > 60:\n        return \"medium\"\n    else:\n        return \"low\"\n\n\ndef _compute_flow_bias(net_call_flow: float, net_put_flow: float) -> float:\n    \"\"\"\n    Berechnet Smart-Money-Bias aus Options-Flow.\n    +1.0 = Starker Call-Flow (bullish)\n    -1.0 = Starker Put-Flow (bearish)\n    \"\"\"\n    total = abs(net_call_flow) + abs(net_put_flow)\n    if total == 0:\n        return 0.0\n    return round((net_call_flow - net_put_flow) / total, 3)\n\n\ndef _eulerpool_empty(ticker: str) -> dict:\n    return {\n        \"ticker\":           ticker,\n        \"iv_skew\":          0.0,\n        \"iv_percentile\":    50.0,\n        \"vol_surface_trend\": \"flat\",\n        \"net_call_flow\":    0.0,\n        \"net_put_flow\":     0.0,\n        \"oi_change_pct\":    0.0,\n        \"iv_crush_risk\":    \"medium\",\n        \"smart_money_bias\": 0.0,\n        \"data_available\":   False,\n        \"source\":           \"Eulerpool\",\n    }\n\n\n# ── Top-2 Enrichment ──────────────────────────────────────────────────────────\n\ndef enrich_top_candidates(signals: list[dict], top_n: int = 2) -> list[dict]:\n    \"\"\"\n    Reichert die Top-N Signale nach RL-Scoring mit FLASH Alpha und Eulerpool an.\n    Wird nach Stufe 6 (RL-Scoring), vor Stufe 7 (Options-Design) aufgerufen.\n\n    Argumente:\n        signals: Nach final_score absteigend sortierte Liste\n        top_n:   Nur die ersten N Signale bekommen Premium-Daten (Budget-Schutz)\n    \"\"\"\n    enriched = []\n    for i, s in enumerate(signals):\n        if i < top_n:\n            ticker = s.get(\"ticker\", \"\")\n            log.info(f\"Premium-Enrichment für Top-{i+1}: {ticker}\")\n\n            s[\"flash_alpha\"] = fetch_flash_alpha(ticker)\n            s[\"eulerpool\"]   = fetch_eulerpool_vol_surface(ticker)\n\n            # IV-Crush Gate: Wenn hohes IV-Crush-Risiko → warnen\n            crush_risk = s[\"eulerpool\"].get(\"iv_crush_risk\", \"medium\")\n            if crush_risk == \"high\":\n                log.warning(\n                    f\"  [{ticker}] ⚠️ IV-Crush-Risiko HOCH \"\n                    f\"(IV-Percentile={s['eulerpool']['iv_percentile']:.0f}%) \"\n                    f\"→ Long-Options riskanter.\"\n                )\n                s[\"iv_crush_warning\"] = True\n            else:\n                s[\"iv_crush_warning\"] = False\n\n            # Dealer Score in final_score einpreisen (+/- 10% Adjustment)\n            dealer_score = s[\"flash_alpha\"].get(\"dealer_bullish\", 0.0)\n            if s[\"flash_alpha\"][\"data_available\"]:\n                old_score      = s.get(\"final_score\", 0.0)\n                adjustment     = dealer_score * 0.10   # Max ±10%\n                s[\"final_score\"] = round(old_score + adjustment, 4)\n                log.info(\n                    f\"  [{ticker}] Dealer-Adjustment: \"\n                    f\"{old_score:.4f} + {adjustment:+.4f} = {s['final_score']:.4f}\"\n                )\n        else:\n            # Nicht-Top-N: Leere Structs\n            s[\"flash_alpha\"]     = _flash_empty(s.get(\"ticker\", \"\"))\n            s[\"eulerpool\"]       = _eulerpool_empty(s.get(\"ticker\", \"\"))\n            s[\"iv_crush_warning\"] = False\n\n        enriched.append(s)\n\n    return enriched\n"
  },
  {
    "path": "modules/prescreener.py",
    "content": "\"\"\"\nmodules/prescreener.py v7.0 – Verschärfter Haiku-Prefilter\n\nProblem vorher: Haiku liess 17+ Ticker durch → Deep Analysis lief für jeden\n                einzeln → teuer (~$0.25 nur für Sonnet) + langsam (4 Min).\n\nFix: Strengerer System-Prompt + härtere Entscheidungsregeln.\n     Ziel: max. 3-5 YES pro Batch (statt 17+).\n\nVerschärfte Regeln:\n  - Im Zweifel IMMER [NO]\n  - Kein [YES] für Routine-Earnings, Upgrades, Dividenden\n  - [YES] nur für eindeutige, strukturelle, unerwartete Änderungen\n  - Explizite Kategorie-Abfrage damit Haiku begründen muss\n\"\"\"\n\nimport json\nimport logging\nimport os\nimport time\nimport anthropic\n\nfrom modules.config import cfg\n\nlog = logging.getLogger(__name__)\n\nMAX_RETRIES   = 3\nBACKOFF_BASE  = 2\nBATCH_SIZE    = 20\nMAX_HEADLINES = 3\n\nSYSTEM_PROMPT = \"\"\"Du bist ein Options-Analyst mit Fokus auf Informations-Asymmetrie.\n\nKERNFRAGE fuer jeden Ticker: \"Enthaelt diese Nachricht eine Information, die der breite\nMarkt noch nicht vollstaendig verarbeitet hat — und koennte ein Options-Kaeufer davon profitieren?\"\n\n[YES] wenn MINDESTENS EINE der folgenden Bedingungen zutrifft:\n  a) EINGEBETTETES SIGNAL: Guidance-Erhoehung im Nebensatz, strukturelle Aenderung versteckt\n     in Routine-Meldung, Insider-Kauf-Cluster, unerwartete Margenaenderung.\n  b) MARKT-UNTERREAKTION: Kurs hat nur halb so stark reagiert wie fundamental gerechtfertigt.\n     Typisch bei: komplexen Regulierungsentscheiden, mehrstufigen M&A-Auswirkungen.\n  c) KATALYSATOR VORAUS: Bekanntes Event in 10-60 Tagen (Earnings, FDA, Produktlaunch, \n     Regulierungs-Deadline) bei dem die aktuelle News die Ausgangslage veraendert hat.\n  d) SEKTOR-SPILLOVER: News bei Unternehmen X beeinflusst Unternehmen Y strukturell,\n     Markt hat Y noch nicht repriced.\n\n[NO] fuer: reine Analyst-Upgrades/Downgrades ohne neuen Datenpunkt, Standard-Dividenden,\nRuckkaeufe im Plan, vage CEO-Aussagen, Indexaufnahmen, allgemeine Wirtschaftsnews.\n\nWICHTIG: Du suchst Asymmetrie, keine Gewissheit. Eine 60%-Chance auf +15% reicht fuer [YES].\nZiel: 15-25% YES-Rate. Bei <10 Kandidaten mindestens 1 YES wenn irgendein Signal erkennbar.\nAntworte ausschliesslich mit validem JSON.\"\"\"\n\nUSER_TEMPLATE = \"\"\"Bewerte diese {n} Ticker auf Options-Asymmetrie-Potenzial.\n\n{ticker_news}\n\nAntworte NUR mit diesem JSON:\n{{\n  \"results\": [\n    {{\n      \"ticker\": \"AAPL\",\n      \"decision\": \"[YES]\" oder \"[NO]\",\n      \"category\": \"structural_change|routine_news|analyst_opinion|earnings|catalyst\",\n      \"reason\": \"Konkreter Grund in max 20 Worten — spezifisch, nicht vage\"\n    }}\n  ]\n}}\n\nRichtwert: ~15% YES bei vorhandenen Signalen. Vergib [YES] NUR bei echtem Signal.\nAn nachrichtenarmen Tagen ist 0% YES korrekt — erzwinge keine Quote.\"\"\"\n\n\nclass Prescreener:\n\n    def __init__(self):\n        self.client = anthropic.Anthropic(api_key=os.getenv(\"ANTHROPIC_API_KEY\"))\n\n    def run(self, candidates: list[dict]) -> list[dict]:\n        if not candidates:\n            return []\n\n        all_yes: dict[str, str] = {}\n\n        batches = [\n            candidates[i:i + BATCH_SIZE]\n            for i in range(0, len(candidates), BATCH_SIZE)\n        ]\n        log.info(\n            f\"Prescreening: {len(candidates)} Kandidaten in \"\n            f\"{len(batches)} Batch(es) à max {BATCH_SIZE}\"\n        )\n\n        for batch_idx, batch in enumerate(batches, 1):\n            log.info(f\"  Batch {batch_idx}/{len(batches)}: {len(batch)} Ticker\")\n            results = self._call_with_retry(batch)\n\n            if results is None:\n                log.warning(f\"  Batch {batch_idx} fehlgeschlagen → übersprungen\")\n                continue\n\n            yes_count = 0\n            no_count  = 0\n            for r in results:\n                decision = r.get(\"decision\", \"[NO]\")\n                category = r.get(\"category\", \"other\")\n                ticker   = r.get(\"ticker\", \"\")\n\n                if decision == \"[YES]\":\n                    # Zusatz-Check: Routine-Kategorien nie durchlassen\n                    if category in (\"routine_news\", \"analyst_opinion\", \"earnings\"):\n                        log.info(\n                            f\"  [{ticker}] Override: Kategorie='{category}' \"\n                            f\"→ trotz [YES] auf [NO] gesetzt\"\n                        )\n                        no_count += 1\n                        continue\n                    # Quick Options-Liquiditäts-Check\n                    if not self._has_options_liquidity(ticker):\n                        log.info(f\"  [{ticker}] OPTIONS-LIQUIDITÄT: zu gering → übersprungen\")\n                        no_count += 1\n                        continue\n                    all_yes[ticker] = {\n                        \"reason\":    r.get(\"reason\", \"\"),\n                        \"category\":  r.get(\"category\", \"\"),\n                    }\n                    yes_count += 1\n                else:\n                    no_count += 1\n\n            log.info(\n                f\"  Batch {batch_idx}: {yes_count} YES, {no_count} NO \"\n                f\"({yes_count/(yes_count+no_count)*100:.0f}% YES-Rate)\"\n            )\n\n        shortlist = []\n        for c in candidates:\n            if c[\"ticker\"] in all_yes:\n                prescreen_data = all_yes[c[\"ticker\"]]\n                c[\"prescreen_reason\"]   = prescreen_data.get(\"reason\", \"\")\n                c[\"prescreen_category\"] = prescreen_data.get(\"category\", \"\")\n                shortlist.append(c)\n                log.info(f\"  [YES] {c['ticker']}: {prescreen_data.get('reason','')} [{prescreen_data.get('category','')}]\")\n\n        log.info(\n            f\"Prescreening gesamt: {len(shortlist)}/{len(candidates)} YES \"\n            f\"({len(shortlist)/len(candidates)*100:.0f}% YES-Rate)\"\n        )\n        return shortlist\n\n    def _has_options_liquidity(self, ticker: str) -> bool:\n        \"\"\"Prüft ob genug Optionskontrakte verfügbar sind (schnell, kein API-Call).\"\"\"\n        try:\n            import yfinance as yf\n            t     = yf.Ticker(ticker)\n            dates = t.options\n            if not dates or len(dates) < 2:\n                return False\n            # Mindestens 2 Verfallsdaten → ausreichend liquide\n            return True\n        except Exception:\n            return True  # Im Zweifel durchlassen\n\n    def _call_with_retry(self, batch: list[dict]) -> list | None:\n        ticker_news_str = \"\\n\".join([\n            f\"[{c['ticker']}]: {' | '.join(c['news'][:MAX_HEADLINES])}\"\n            for c in batch\n        ])\n        min_yes = len(batch) // 7   # ~15% Richtwert, kann 0 sein — kein Zwang\n        prompt  = USER_TEMPLATE.format(\n            n           = len(batch),\n            ticker_news = ticker_news_str,\n            min_yes     = min_yes,\n        )\n\n        for attempt in range(1, MAX_RETRIES + 1):\n            try:\n                response = self.client.messages.create(\n                    model      = cfg.models.prescreener,\n                    max_tokens = 4096,\n                    system     = SYSTEM_PROMPT,\n                    messages   = [{\"role\": \"user\", \"content\": prompt}],\n                )\n                raw = response.content[0].text.strip()\n\n                if \"```\" in raw:\n                    parts = raw.split(\"```\")\n                    raw   = parts[1] if len(parts) > 1 else raw\n                    if raw.startswith(\"json\"):\n                        raw = raw[4:].strip()\n\n                if not raw.startswith(\"{\"):\n                    idx = raw.find(\"{\")\n                    if idx != -1:\n                        raw = raw[idx:]\n\n                parsed  = json.loads(raw)\n                results = parsed.get(\"results\", [])\n                log.info(\n                    f\"    Batch OK (Versuch {attempt}): \"\n                    f\"{len(results)} Ticker bewertet\"\n                )\n                return results\n\n            except (json.JSONDecodeError, KeyError) as e:\n                log.error(f\"    Parsing-Fehler (Versuch {attempt}): {e}\")\n                if attempt == MAX_RETRIES:\n                    return None\n                time.sleep(BACKOFF_BASE ** attempt)\n\n            except Exception as e:\n                wait = BACKOFF_BASE ** attempt\n                log.warning(\n                    f\"    API-Fehler (Versuch {attempt}/{MAX_RETRIES}): \"\n                    f\"{e} → Warte {wait}s\"\n                )\n                if attempt == MAX_RETRIES:\n                    return None\n                time.sleep(wait)\n\n        return None\n"
  },
  {
    "path": "modules/quasi_ml.py",
    "content": "\"\"\"\nStufe 6: Adaptive Quasi-ML Scoring (Selbstlern-Kern)\n- Unverändert vom Original (keine Bugs gefunden)\n- cfg: MIN_BIN_COUNT aus config.yaml\n\"\"\"\nimport logging\nfrom modules.config import cfg\n\nlog = logging.getLogger(__name__)\n\n\nclass QuasiML:\n    def __init__(self, history: dict):\n        self.history    = history\n        self.feat_stats = history.get(\"feature_stats\", {})\n        self.weights    = history.get(\"model_weights\", {\n            \"impact\": 0.35, \"mismatch\": 0.45, \"eps_drift\": 0.20,\n        })\n\n    def run(self, simulated: list[dict]) -> list[dict]:\n        scored = []\n        for s in simulated:\n            final_score = self._compute_final_score(s)\n            scored.append({**s, \"final_score\": round(final_score, 4)})\n            log.info(f\"  [{s['ticker']}] FinalScore={final_score:.4f}\")\n        scored.sort(key=lambda x: x[\"final_score\"], reverse=True)\n        return scored\n\n    def _compute_final_score(self, s: dict) -> float:\n        features = s.get(\"features\", {})\n        total = 0.0\n        for feat_name, bin_label in {\n            \"impact\": features.get(\"bin_impact\"),\n            \"mismatch\": features.get(\"bin_mismatch\"),\n            \"eps_drift\": features.get(\"bin_eps_drift\"),\n        }.items():\n            if bin_label is None:\n                continue\n            total += self._get_bin_avg_return(feat_name, bin_label) * self.weights.get(feat_name, 0.0)\n        if total == 0.0:\n            total = self._fallback_score(features)\n        return total\n\n    def _get_bin_avg_return(self, feature: str, bin_label: str) -> float:\n        try:\n            stats = self.feat_stats.get(feature, {}).get(bin_label, {})\n            if stats.get(\"count\", 0) < cfg.learning.min_bin_count:\n                return self._prior_return(feature, bin_label)\n            return stats.get(\"avg_return\", 0.0)\n        except Exception:\n            return 0.0\n\n    def _prior_return(self, feature: str, bin_label: str) -> float:\n        priors = {\n            \"impact\":    {\"low\": -0.02, \"mid\": 0.04, \"high\": 0.12},\n            \"mismatch\":  {\"weak\": -0.01, \"good\": 0.05, \"strong\": 0.15},\n            \"eps_drift\": {\"noise\": 0.00, \"relevant\": 0.04, \"massive\": 0.10},\n        }\n        return priors.get(feature, {}).get(bin_label, 0.0)\n\n    def _fallback_score(self, features: dict) -> float:\n        impact   = features.get(\"impact\", 0) / 10.0\n        mismatch = min(features.get(\"mismatch\", 0) / 10.0, 1.0)\n        drift    = min(abs(features.get(\"eps_drift\", 0)), 0.2) / 0.2\n        return (\n            impact   * self.weights.get(\"impact\",    0.35) +\n            mismatch * self.weights.get(\"mismatch\",  0.45) +\n            drift    * self.weights.get(\"eps_drift\", 0.20)\n        )\n"
  },
  {
    "path": "modules/reddit_signals.py",
    "content": "\"\"\"\nmodules/reddit_signals.py – Reddit als zweite News-Quelle\n\nInspiriert von: Mattbusel/Reddit-Options-Trader-ROT\nQuelle: Reddit r/wallstreetbets, r/stocks, r/investing via PRAW oder\n        Pushshift-kompatiblem API (kein API-Key nötig via öffentliches JSON).\n\nFeatures:\n  - Credibility-Scoring: Posts mit hohem Score/Upvotes gewichtet stärker\n  - Options-Intent-Erkennung: Sucht nach Calls/Puts-Erwähnungen\n  - Früher als NewsAPI: Reddit-Posts erscheinen oft 12–24h vor Mainstream-News\n\nDesign:\n  - Kein PRAW (kein Reddit API-Key nötig) → nutzt reddit.com/r/sub/.json\n  - Fallback: Gibt leere Liste zurück (Reddit-Fehler stoppen Pipeline nicht)\n  - Credibility-Score: log(upvotes + 1) × comment_ratio\n\nOutput pro Ticker:\n    {\n        \"reddit_posts\": [{\"title\": str, \"score\": int, \"credibility\": float}],\n        \"reddit_sentiment\": float,   # -1 bis +1 (Erwähnungs-Sentiment)\n        \"options_intent\": float,     # 0–1 (wie stark werden Options diskutiert)\n        \"mention_count\": int\n    }\n\"\"\"\n\nfrom __future__ import annotations\nimport logging\nimport re\nimport time\nfrom typing import Optional\n\nimport numpy as np\nimport requests\n\nlog = logging.getLogger(__name__)\n\n# Subreddits die gescannt werden (Reihenfolge = Priorität)\n_SUBREDDITS = [\n    \"wallstreetbets\",\n    \"stocks\",\n    \"investing\",\n    \"options\",\n]\n\n# Regex für Options-Erwähnungen (Calls, Puts, Strike-Preise)\n_OPTIONS_PATTERN = re.compile(\n    r\"\\b(call|calls|put|puts|strike|expiry|dte|leaps?|\"\n    r\"\\d+[cp]\\s*\\$?\\d+|\\$\\d+c|\\$\\d+p)\\b\",\n    re.IGNORECASE,\n)\n\n# Bullish/Bearish-Keywords für Sentiment\n_BULLISH_KEYWORDS = re.compile(\n    r\"\\b(bull|bullish|moon|rocket|buy|long|calls?|squeeze|\"\n    r\"breakout|beat|upside|strong|outperform)\\b\",\n    re.IGNORECASE,\n)\n_BEARISH_KEYWORDS = re.compile(\n    r\"\\b(bear|bearish|short|puts?|crash|dump|sell|downside|\"\n    r\"miss|weak|underperform|resistance)\\b\",\n    re.IGNORECASE,\n)\n\n_HEADERS = {\n    \"User-Agent\": \"newstoption-scanner/3.5 (research bot, no spam)\"\n}\n\n\ndef fetch_ticker_mentions(\n    ticker: str,\n    max_posts: int = 50,\n    time_filter: str = \"day\",   # \"day\" | \"week\"\n) -> dict:\n    \"\"\"\n    Sucht in Reddit-Subreddits nach Erwähnungen eines Tickers.\n\n    Args:\n        ticker:      Aktien-Ticker (z.B. \"AAPL\")\n        max_posts:   Maximale Anzahl Posts die geprüft werden\n        time_filter: Zeitfenster für Reddit-Suche\n\n    Returns:\n        Dict mit reddit_posts, reddit_sentiment, options_intent, mention_count\n    \"\"\"\n    all_posts = []\n\n    for subreddit in _SUBREDDITS:\n        posts = _fetch_subreddit_posts(subreddit, ticker, max_posts, time_filter)\n        all_posts.extend(posts)\n        if len(all_posts) >= max_posts:\n            break\n\n    if not all_posts:\n        return _empty_result()\n\n    # Credibility-Scoring und Sentiment-Berechnung\n    scored_posts     = [_score_post(p) for p in all_posts]\n    reddit_sentiment = _compute_sentiment(scored_posts)\n    options_intent   = _compute_options_intent(scored_posts)\n\n    # Top-5 nach Credibility\n    top_posts = sorted(scored_posts, key=lambda x: x[\"credibility\"], reverse=True)[:5]\n\n    log.info(\n        f\"  [{ticker}] Reddit: {len(all_posts)} Posts gefunden, \"\n        f\"sentiment={reddit_sentiment:.2f}, options_intent={options_intent:.2f}\"\n    )\n\n    return {\n        \"reddit_posts\":    top_posts,\n        \"reddit_sentiment\": round(reddit_sentiment, 4),\n        \"options_intent\":   round(options_intent, 4),\n        \"mention_count\":    len(all_posts),\n    }\n\n\ndef _fetch_subreddit_posts(\n    subreddit: str,\n    ticker: str,\n    max_posts: int,\n    time_filter: str,\n) -> list[dict]:\n    \"\"\"Ruft Posts via Reddit JSON-API ab (kein API-Key nötig).\"\"\"\n    try:\n        # Reddit öffentliches JSON-Endpoint (kein Auth nötig)\n        url = (\n            f\"https://www.reddit.com/r/{subreddit}/search.json\"\n            f\"?q={ticker}&restrict_sr=1&sort=top&t={time_filter}\"\n            f\"&limit={min(max_posts, 25)}\"\n        )\n        resp = requests.get(url, headers=_HEADERS, timeout=10)\n        resp.raise_for_status()\n\n        data  = resp.json()\n        posts = data.get(\"data\", {}).get(\"children\", [])\n\n        result = []\n        for post in posts:\n            d = post.get(\"data\", {})\n            title = d.get(\"title\", \"\")\n\n            # Nur Posts die den Ticker tatsächlich erwähnen\n            if ticker.upper() not in title.upper() and ticker.lower() not in title.lower():\n                # Auch in Selftext suchen (kurze Vorschau)\n                selftext = d.get(\"selftext\", \"\")[:200]\n                if ticker.upper() not in selftext.upper():\n                    continue\n\n            result.append({\n                \"title\":    title,\n                \"score\":    int(d.get(\"score\", 0)),\n                \"comments\": int(d.get(\"num_comments\", 0)),\n                \"selftext\": d.get(\"selftext\", \"\")[:500],\n                \"subreddit\": subreddit,\n            })\n\n        # Rate-Limit schonen\n        time.sleep(0.5)\n        return result\n\n    except requests.exceptions.RequestException as e:\n        log.debug(f\"Reddit-Fetch Fehler (r/{subreddit}, {ticker}): {e}\")\n        return []\n    except Exception as e:\n        log.debug(f\"Reddit-Parse Fehler: {e}\")\n        return []\n\n\ndef _score_post(post: dict) -> dict:\n    \"\"\"\n    Credibility-Score nach ROT-Prinzip:\n    log(upvotes + 1) × (1 + comment_ratio)\n\n    Posts mit vielen Upvotes UND Kommentaren sind glaubwürdiger als\n    Posts die nur upgevoted wurden (Engagement-Signal).\n    \"\"\"\n    score    = max(post[\"score\"], 0)\n    comments = max(post[\"comments\"], 0)\n\n    # Comment-Ratio: Wie aktiv ist die Diskussion?\n    comment_ratio = min(comments / (score + 1), 2.0)   # Cap bei 2.0\n\n    credibility = np.log1p(score) * (1.0 + comment_ratio)\n\n    text = (post[\"title\"] + \" \" + post.get(\"selftext\", \"\")).lower()\n\n    return {\n        **post,\n        \"credibility\":    round(float(credibility), 3),\n        \"has_options\":    bool(_OPTIONS_PATTERN.search(text)),\n        \"bullish_count\":  len(_BULLISH_KEYWORDS.findall(text)),\n        \"bearish_count\":  len(_BEARISH_KEYWORDS.findall(text)),\n    }\n\n\ndef _compute_sentiment(scored_posts: list[dict]) -> float:\n    \"\"\"\n    Gewichteter Sentiment-Score (Credibility-gewichtet).\n    Range: -1.0 (stark bearish) bis +1.0 (stark bullish)\n    \"\"\"\n    if not scored_posts:\n        return 0.0\n\n    total_weight = sum(p[\"credibility\"] for p in scored_posts)\n    if total_weight == 0:\n        return 0.0\n\n    weighted_sentiment = 0.0\n    for post in scored_posts:\n        w        = post[\"credibility\"] / total_weight\n        bullish  = post[\"bullish_count\"]\n        bearish  = post[\"bearish_count\"]\n        total_kw = bullish + bearish + 1   # +1 um Division by Zero zu vermeiden\n        post_sentiment = (bullish - bearish) / total_kw\n        weighted_sentiment += w * post_sentiment\n\n    return float(np.clip(weighted_sentiment, -1.0, 1.0))\n\n\ndef _compute_options_intent(scored_posts: list[dict]) -> float:\n    \"\"\"\n    Anteil der Posts die Options diskutieren (0–1).\n    Hohes Options-Intent = frühzeitiges Institutional-Signal.\n    \"\"\"\n    if not scored_posts:\n        return 0.0\n\n    options_posts = sum(1 for p in scored_posts if p.get(\"has_options\", False))\n    return float(options_posts / len(scored_posts))\n\n\ndef _empty_result() -> dict:\n    return {\n        \"reddit_posts\":    [],\n        \"reddit_sentiment\": 0.0,\n        \"options_intent\":   0.0,\n        \"mention_count\":    0,\n    }\n\n\ndef enrich_candidate(candidate: dict) -> dict:\n    \"\"\"\n    Fügt Reddit-Signals zu einem Pipeline-Kandidaten hinzu.\n    Modifiziert candidate[\"features\"] in-place.\n\n    Wird von data_ingestion.py aufgerufen.\n    \"\"\"\n    ticker = candidate.get(\"ticker\", \"\")\n    reddit = fetch_ticker_mentions(ticker)\n\n    # Reddit-Headlines zu News-Liste hinzufügen (für FinBERT)\n    reddit_headlines = [p[\"title\"] for p in reddit[\"reddit_posts\"]]\n    if \"news\" not in candidate:\n        candidate[\"news\"] = []\n    candidate[\"news\"] = reddit_headlines + candidate[\"news\"]   # Reddit zuerst\n\n    # Reddit-Features in candidate speichern\n    candidate[\"reddit\"] = reddit\n\n    return candidate\n"
  },
  {
    "path": "modules/reporter.py",
    "content": "\"\"\"\nReporter: Speichert tägliche Trade-Vorschläge als JSON + Markdown\n- outputs/daily_reports/YYYY-MM-DD.json\n- outputs/daily_reports/YYYY-MM-DD.md (lesbar)\n\nv8.2: Exit-Regeln in jedem Trade-Vorschlag:\n    - Take-Profit:  +50% Options-Wert → Position (oder Hälfte) schliessen\n    - Stop-Loss:    -40% Options-Wert → Gesamte Position liquidieren\n    - Time-Exit:    50% DTE verstrichen und < +20% → schliessen (Theta-Decay)\n    - Profit-Dollar: Konkrete $-Beträge basierend auf Entry-Preis\n\"\"\"\n\nimport json\nimport logging\nfrom datetime import datetime, timedelta\nfrom pathlib import Path\n\nlog = logging.getLogger(__name__)\n\n\ndef compute_exit_rules(proposal: dict) -> dict:\n    \"\"\"\n    Berechnet konkrete Exit-Regeln für einen Trade-Vorschlag.\n\n    Basiert auf:\n      - Options-Ask (Entry-Preis)\n      - DTE (Days to Expiry)\n      - Strategie (Spread vs. Long)\n\n    Returns:\n        {\n            \"take_profit_pct\": 50,\n            \"take_profit_price\": 4.50,     # Konkreter Options-Preis\n            \"stop_loss_pct\": -40,\n            \"stop_loss_price\": 1.80,\n            \"time_exit_dte\": 15,           # Konkretes Datum-nahes DTE\n            \"time_exit_date\": \"2026-05-01\",\n            \"time_exit_min_profit_pct\": 20,\n            \"entry_cost\": 3.00,\n        }\n    \"\"\"\n    option   = proposal.get(\"option\", {})\n    strategy = proposal.get(\"strategy\", \"\")\n\n    # Entry-Kosten: net_debit für Spreads, ask für Long\n    if \"SPREAD\" in strategy and option.get(\"net_debit\"):\n        entry = float(option.get(\"net_debit\", 0))\n    else:\n        entry = float(option.get(\"ask\", 0))\n\n    if entry <= 0:\n        return _empty_exit_rules()\n\n    dte = int(option.get(\"dte\", 0) or 0)\n\n    # Take-Profit: +50% (Hälfte schliessen), +100% (Rest schliessen)\n    take_profit_pct  = 50\n    take_profit_price = round(entry * 1.50, 2)\n    full_profit_price = round(entry * 2.00, 2)\n\n    # Stop-Loss: -40% (gesamte Position schliessen)\n    stop_loss_pct   = -40\n    stop_loss_price = round(entry * 0.60, 2)\n\n    # Time-Exit: Bei 50% abgelaufener DTE und < +20% → schliessen\n    time_exit_dte = max(dte // 2, 1)\n    try:\n        expiry_str = option.get(\"expiry\", \"\")\n        if expiry_str:\n            expiry_dt      = datetime.strptime(expiry_str, \"%Y-%m-%d\")\n            time_exit_date = (expiry_dt - timedelta(days=time_exit_dte)).strftime(\"%Y-%m-%d\")\n        else:\n            time_exit_date = \"N/A\"\n    except Exception:\n        time_exit_date = \"N/A\"\n\n    return {\n        \"entry_cost\":              entry,\n        \"take_profit_pct\":         take_profit_pct,\n        \"take_profit_price\":       take_profit_price,\n        \"full_profit_pct\":         100,\n        \"full_profit_price\":       full_profit_price,\n        \"stop_loss_pct\":           stop_loss_pct,\n        \"stop_loss_price\":         stop_loss_price,\n        \"time_exit_dte_remaining\": time_exit_dte,\n        \"time_exit_date\":          time_exit_date,\n        \"time_exit_min_profit_pct\": 20,\n    }\n\n\ndef _empty_exit_rules() -> dict:\n    return {\n        \"entry_cost\": 0, \"take_profit_pct\": 50, \"take_profit_price\": 0,\n        \"full_profit_pct\": 100, \"full_profit_price\": 0,\n        \"stop_loss_pct\": -40, \"stop_loss_price\": 0,\n        \"time_exit_dte_remaining\": 0, \"time_exit_date\": \"N/A\",\n        \"time_exit_min_profit_pct\": 20,\n    }\n\n\nclass Reporter:\n    def __init__(self, reports_dir: Path):\n        self.reports_dir = reports_dir\n        self.reports_dir.mkdir(parents=True, exist_ok=True)\n\n    def save(self, today: str, proposals: list[dict], history: dict) -> None:\n        # v8.2: Exit-Regeln zu jedem Proposal hinzufügen\n        for p in proposals:\n            if \"exit_rules\" not in p:\n                p[\"exit_rules\"] = compute_exit_rules(p)\n\n        self._save_json(today, proposals)\n        self._save_markdown(today, proposals, history)\n\n    def _save_json(self, today: str, proposals: list[dict]) -> None:\n        path = self.reports_dir / f\"{today}.json\"\n        with open(path, \"w\") as f:\n            json.dump(\n                {\"date\": today, \"proposals\": proposals},\n                f, indent=2, default=str\n            )\n        log.info(f\"Report gespeichert: {path}\")\n\n    def _save_markdown(self, today: str, proposals: list[dict], history: dict) -> None:\n        path = self.reports_dir / f\"{today}.md\"\n        lines = [\n            f\"# Adaptive Asymmetry-Scanner – {today}\",\n            \"\",\n            f\"**Generiert:** {datetime.utcnow().strftime('%Y-%m-%d %H:%M UTC')}\",\n            f\"**Trade-Vorschläge:** {len(proposals)}\",\n            \"\",\n        ]\n\n        if not proposals:\n            lines.append(\"_Kein Signal heute. Alle Gates haben blockiert._\")\n        else:\n            for i, p in enumerate(proposals, 1):\n                da     = p.get(\"deep_analysis\", {})\n                sim    = p.get(\"simulation\", {})\n                feat   = p.get(\"features\", {})\n                option = p.get(\"option\", {})\n                ts     = p.get(\"trade_score\", {})\n\n                lines += [\n                    f\"---\",\n                    f\"## {i}. {p['ticker']} – {p.get('strategy', '')}\",\n                    \"\",\n                    f\"**Richtung:** {p.get('direction', '')}  \",\n                    f\"**FinalScore:** `{p.get('final_score', 0):.4f}`  \",\n                    f\"**IV-Rank:** {p.get('iv_rank', 'N/A')}  \",\n                    f\"**Trade-Score:** {ts.get('total', 'N/A')}/100 — {ts.get('grade', '')}  \",\n                    \"\",\n                    \"### Asymmetry-Analyse\",\n                    f\"- **Impact:** {feat.get('impact', 'N/A')}/10\",\n                    f\"- **Surprise:** {feat.get('surprise', 'N/A')}/10\",\n                    f\"- **Mismatch-Score:** {feat.get('mismatch', 'N/A')}\",\n                    f\"- **Z-Score (48h):** {feat.get('z_score', 'N/A')}\",\n                    f\"- **48h-Move:** {feat.get('price_move_48h', 'N/A')}\",\n                    f\"- **EPS-Drift:** {feat.get('eps_drift', 'N/A')} ({feat.get('bin_eps_drift', '')})\",\n                    \"\",\n                    f\"**Asymmetry-Reasoning:**  \",\n                    f\"> {da.get('asymmetry_reasoning', da.get('mispricing_logic', 'N/A'))}\",\n                    \"\",\n                    f\"**Katalysator:** {da.get('catalyst', 'N/A')}  \",\n                    f\"**Time-to-Materialization:** {da.get('time_to_materialization', 'N/A')}  \",\n                    \"\",\n                    \"### Bear Case\",\n                    f\"> {da.get('bear_case', 'N/A')}  \",\n                    f\"**Severity:** {da.get('bear_case_severity', 'N/A')}/10\",\n                    \"\",\n                    \"### Monte-Carlo Simulation\",\n                    f\"- **Hit-Rate:** {sim.get('hit_rate', 0):.1%} ({sim.get('n_paths', 0):,} Pfade)\",\n                    f\"- **Target-Preis:** ${sim.get('target_price', 0):.2f}\",\n                    f\"- **Aktueller Preis:** ${sim.get('current_price', 0):.2f}\",\n                    f\"- **σ:** {sim.get('sigma', sim.get('sigma_adj', 0)):.4f}\",\n                    f\"- **α (Signal-Drift):** {sim.get('alpha', 0):.5f}\",\n                    \"\",\n                ]\n\n                if option:\n                    lines += [\n                        \"### Options-Vorschlag\",\n                        f\"- **Expiry:** {option.get('expiry', 'N/A')} ({option.get('dte', 'N/A')} DTE)\",\n                        f\"- **Strike:** ${option.get('strike', 0):.2f}\",\n                        f\"- **Bid/Ask:** ${option.get('bid', 0):.2f} / ${option.get('ask', 0):.2f}\",\n                        f\"- **Impl. Vol.:** {option.get('implied_vol', 0):.1%}\",\n                        f\"- **Open Interest:** {option.get('open_interest', 0):,}\",\n                        f\"- **Bid-Ask-Ratio:** {option.get('spread_ratio', 0):.2%}\",\n                        \"\",\n                    ]\n                    if p.get(\"strategy\") == \"BULL_CALL_SPREAD\" and option.get(\"spread_leg\"):\n                        sl = option[\"spread_leg\"]\n                        lines += [\n                            f\"- **Short Strike:** ${sl.get('strike', 0):.2f}  \",\n                            f\"- **Short Bid/Ask:** ${sl.get('bid', 0):.2f} / ${sl.get('ask', 0):.2f}\",\n                            f\"- **Net Debit:** ${option.get('net_debit', 0):.2f}\",\n                            \"\",\n                        ]\n\n                # ── v8.2: Exit-Regeln ────────────────────────────────────────\n                exit_r = p.get(\"exit_rules\", {})\n                if exit_r and exit_r.get(\"entry_cost\", 0) > 0:\n                    lines += [\n                        \"### 🚪 Exit-Regeln\",\n                        f\"- **Entry-Kosten:** ${exit_r['entry_cost']:.2f} pro Kontrakt\",\n                        f\"- **Take-Profit:** bei ${exit_r['take_profit_price']:.2f} \"\n                        f\"(+{exit_r['take_profit_pct']}%) → Hälfte schliessen\",\n                        f\"- **Full-Profit:** bei ${exit_r['full_profit_price']:.2f} \"\n                        f\"(+{exit_r['full_profit_pct']}%) → Rest schliessen\",\n                        f\"- **Stop-Loss:** bei ${exit_r['stop_loss_price']:.2f} \"\n                        f\"({exit_r['stop_loss_pct']}%) → Gesamte Position liquidieren\",\n                        f\"- **Time-Exit:** ab {exit_r['time_exit_date']} \"\n                        f\"({exit_r['time_exit_dte_remaining']} DTE Rest) \"\n                        f\"— schliessen wenn Gewinn < +{exit_r['time_exit_min_profit_pct']}%\",\n                        \"\",\n                    ]\n\n        # Modell-Gewichte\n        weights = history.get(\"model_weights\", {})\n        lines += [\n            \"---\",\n            \"## Modell-Gewichte (aktuell)\",\n            f\"- Impact: `{weights.get('impact', 0.35):.2f}`\",\n            f\"- Mismatch: `{weights.get('mismatch', 0.45):.2f}`\",\n            f\"- EPS-Drift: `{weights.get('eps_drift', 0.20):.2f}`\",\n            \"\",\n            \"_Automatisch generiert durch Adaptive Asymmetry-Scanner v8.2_\",\n        ]\n\n        with open(path, \"w\", encoding=\"utf-8\") as f:\n            f.write(\"\\n\".join(lines))\n\n        log.info(f\"Markdown-Report gespeichert: {path}\")\n"
  },
  {
    "path": "modules/risk_gates.py",
    "content": "\"\"\"\nmodules/risk_gates.py – Fixes\n\nFix 1: VIX Timeout → Fallback statt Pipeline-Abbruch\n       Begründung: Bei yfinance Timeout (curl 28) ist der Markt normal —\n       VIX nicht abrufbar bedeutet nicht VIX > 35.\n       Safety-First bedeutet: bei Ungewissheit Fallback-Wert nutzen,\n       nicht Pipeline komplett stoppen.\n\nFix 2: last_vix immer float (nie None) nach globalok()\n       Verhindert TypeError in pipeline.py stop_reason Formatierung.\n\"\"\"\n\nfrom __future__ import annotations\nimport logging\nimport os\nfrom datetime import datetime, date\nfrom typing import Optional\n\nimport requests\nimport yfinance as yf\n\nlog = logging.getLogger(__name__)\n\nVIX_HARD_GATE    = 35.0   # Über diesem Wert → kein Trading\nVIX_FALLBACK     = 20.0   # Fallback wenn VIX nicht abrufbar\nVIX_MAX_RETRIES  = 2\nVIX_TIMEOUT      = 15     # Sekunden (war 30 → zu lang für GitHub Actions)\n\n\nclass RiskGates:\n\n    def __init__(self):\n        self.last_vix: float = VIX_FALLBACK   # Default: nie None\n\n    def global_ok(self) -> bool:\n        \"\"\"\n        Prüft ob globales Marktumfeld Trading erlaubt.\n        Bei VIX-Fehler: Fallback statt Abbruch.\n        \"\"\"\n        vix = self._fetch_vix()\n\n        if vix is None:\n            log.warning(\n                f\"VIX nicht abrufbar → Fallback {VIX_FALLBACK:.1f} \"\n                f\"(Pipeline läuft weiter)\"\n            )\n            self.last_vix = VIX_FALLBACK\n            return True   # Im Zweifel: Pipeline laufen lassen\n\n        self.last_vix = float(vix)\n        log.info(f\"VIX aktuell: {self.last_vix:.2f} (Schwelle: {VIX_HARD_GATE})\")\n\n        if self.last_vix >= VIX_HARD_GATE:\n            log.warning(\n                f\"VIX {self.last_vix:.1f} ≥ {VIX_HARD_GATE} \"\n                f\"→ Markt zu volatil, Pipeline gestoppt.\"\n            )\n            return False\n\n        return True\n\n    def _fetch_vix(self) -> Optional[float]:\n        \"\"\"VIX abrufen mit kurzem Timeout und FRED-Fallback.\"\"\"\n        # Versuch 1: yfinance\n        for attempt in range(1, VIX_MAX_RETRIES + 1):\n            try:\n                ticker = yf.Ticker(\"^VIX\")\n                hist   = ticker.history(period=\"2d\", timeout=VIX_TIMEOUT)\n                if not hist.empty:\n                    return float(hist[\"Close\"].iloc[-1])\n\n                info = ticker.info\n                vix  = info.get(\"regularMarketPrice\") or info.get(\"previousClose\")\n                if vix:\n                    return float(vix)\n\n            except Exception as e:\n                log.debug(f\"VIX yfinance Versuch {attempt}: {e}\")\n\n        # Versuch 2: FRED API (kostenlos, kein Key)\n        try:\n            resp = requests.get(\n                \"https://fred.stlouisfed.org/graph/fredgraph.csv\",\n                params={\"id\": \"VIXCLS\"},\n                timeout=10,\n                headers={\"User-Agent\": \"newstoption-scanner/8.0\"},\n            )\n            if resp.status_code == 200:\n                lines = [\n                    l for l in resp.text.strip().split(\"\\n\")\n                    if l and not l.startswith(\"DATE\") and \".\" in l\n                ]\n                if lines:\n                    val = lines[-1].split(\",\")[1].strip()\n                    if val and val != \".\":\n                        log.info(f\"VIX via FRED: {val}\")\n                        return float(val)\n        except Exception as e:\n            log.debug(f\"VIX FRED Fallback Fehler: {e}\")\n\n        return None   # Beide Quellen fehlgeschlagen → Fallback in global_ok()\n\n    def has_upcoming_earnings(self, ticker: str) -> bool:\n        \"\"\"Prüft ob Earnings innerhalb der nächsten 14 Tage.\"\"\"\n        try:\n            cal = yf.Ticker(ticker).calendar\n            if cal is None or cal.empty:\n                return False\n            if \"Earnings Date\" not in cal.index:\n                return False\n\n            earnings_dates = cal.loc[\"Earnings Date\"]\n            if hasattr(earnings_dates, \"__iter__\"):\n                for ed in earnings_dates:\n                    try:\n                        if isinstance(ed, str):\n                            ed = datetime.strptime(ed, \"%Y-%m-%d\").date()\n                        elif hasattr(ed, \"date\"):\n                            ed = ed.date()\n                        days_away = (ed - date.today()).days\n                        if 0 <= days_away <= 14:\n                            log.info(\n                                f\"  [{ticker}] Earnings in {days_away}d \"\n                                f\"→ Earnings-Gate aktiv\"\n                            )\n                            return True\n                    except Exception:\n                        continue\n        except Exception:\n            pass\n        return False\n"
  },
  {
    "path": "modules/rl_agent.py",
    "content": "\"\"\"\nmodules/rl_agent.py – PPO-Agent (Stable-Baselines3) für Options-Scoring\n\nErsetzt QuasiML komplett in Stufe 6 der Pipeline.\n\nArchitektur:\n    - Algorithmus: PPO (Proximal Policy Optimization)\n      Begründung: Stabil, sample-efficient für kleine Datensätze,\n      keine Hyperparameter-Tuning nötig für MVP.\n    - Policy: MlpPolicy (2 Hidden Layers à 64 Neurons)\n      Begründung: Observation-Space hat 11 Dimensionen (v9.0),\n      tiefere Netze würden auf ~50 Trades overfitten.\n    - Modell wird als PPO_options_agent.zip gespeichert.\n    - Fallback: Wenn kein trainiertes Modell vorhanden →\n      QuasiML-Logik als Fallback (Backward-Kompatibilität).\n\nGitHub-Actions-Tauglichkeit:\n    - Training läuft nur in feedback.py (offline, nach Trade-Close)\n    - Inference in pipeline.py ist CPU-only, <10ms pro Signal\n    - Modell-Datei wird in outputs/models/ gecacht und per Git committed\n\"\"\"\n\nfrom __future__ import annotations\nimport logging\nfrom pathlib import Path\nfrom typing import Optional\n\nimport numpy as np\n\nfrom modules.rl_environment import (\n    OptionsRLEnv,\n    features_to_obs,\n    ACTION_SKIP,\n    ACTION_NORMAL,\n    ACTION_BOOST,\n    build_env_from_history,\n)\n\nlog = logging.getLogger(__name__)\n\nMODEL_PATH = Path(\"outputs/models/ppo_options_agent.zip\")\n\n\n# ── Training ──────────────────────────────────────────────────────────────────\n\ndef train_agent(\n    history: dict,\n    total_timesteps: int = 10_000,\n    force_retrain: bool = False,\n) -> bool:\n    \"\"\"\n    Trainiert den PPO-Agenten auf closed_trades aus history.json.\n\n    Args:\n        history:         history.json als Dict\n        total_timesteps: Trainings-Steps (10k reichen für <100 Trades)\n        force_retrain:   Wenn True, überschreibt existierendes Modell\n\n    Returns:\n        True wenn Training erfolgreich, False wenn zu wenig Daten\n    \"\"\"\n    try:\n        from stable_baselines3 import PPO\n        from stable_baselines3.common.env_checker import check_env\n    except ImportError as e:\n        log.error(f\"stable-baselines3 nicht installiert: {e}\")\n        return False\n\n    closed = history.get(\"closed_trades\", [])\n    if len(closed) < 5:\n        log.info(\n            f\"Nur {len(closed)} closed_trades → Training übersprungen \"\n            f\"(Minimum: 5).\"\n        )\n        return False\n\n    env = build_env_from_history(history)\n    if env is None:\n        return False\n\n    MODEL_PATH.parent.mkdir(parents=True, exist_ok=True)\n\n    # Existierendes Modell weiter-trainieren (Continual Learning)\n    if MODEL_PATH.exists() and not force_retrain:\n        try:\n            model = PPO.load(str(MODEL_PATH), env=env)\n            log.info(\n                f\"Existierendes Modell geladen, weiter-trainiere \"\n                f\"({total_timesteps} steps)...\"\n            )\n        except Exception as e:\n            log.warning(f\"Modell-Laden fehlgeschlagen ({e}) → Neu-Training\")\n            model = _create_new_model(env)\n    else:\n        model = _create_new_model(env)\n\n    log.info(f\"PPO-Training startet ({total_timesteps} timesteps)...\")\n    model.learn(total_timesteps=total_timesteps, progress_bar=False)\n    model.save(str(MODEL_PATH))\n    log.info(f\"Modell gespeichert: {MODEL_PATH}\")\n    return True\n\n\ndef _create_new_model(env: OptionsRLEnv):\n    \"\"\"Erstellt neues PPO-Modell mit bewährten Hyperparametern.\"\"\"\n    from stable_baselines3 import PPO\n\n    return PPO(\n        \"MlpPolicy\",\n        env,\n        learning_rate=3e-4,\n        n_steps=min(64, len(env.trade_data)),   # Kleinere Batches für kleine Datasets\n        batch_size=min(32, len(env.trade_data)),\n        n_epochs=10,\n        gamma=0.95,            # Etwas niedrigerer Discount (kürzere Episoden)\n        gae_lambda=0.95,\n        clip_range=0.2,\n        ent_coef=0.01,         # Leichte Exploration-Encouragement\n        policy_kwargs={\n            \"net_arch\": [64, 64],   # 2 Hidden Layers reichen für 11 Features\n        },\n        verbose=0,\n    )\n\n\n# ── Inference ─────────────────────────────────────────────────────────────────\n\nclass RLScorer:\n    \"\"\"\n    Drop-in-Ersatz für QuasiML.\n    Nutzt den trainierten PPO-Agenten für final_score-Berechnung.\n\n    Fallback: Wenn kein Modell vorhanden, wird die QuasiML-Logik genutzt.\n    \"\"\"\n\n    def __init__(self, history: dict):\n        self.history = history\n        self._model  = None\n        self._load_model()\n\n    def _load_model(self) -> None:\n        \"\"\"Lazy-Load des trainierten PPO-Modells.\"\"\"\n        if not MODEL_PATH.exists():\n            log.info(\n                \"Kein trainiertes RL-Modell gefunden → QuasiML-Fallback aktiv. \"\n                \"Führe feedback.py aus um das erste Modell zu trainieren.\"\n            )\n            return\n\n        try:\n            from stable_baselines3 import PPO\n            self._model = PPO.load(str(MODEL_PATH))\n            log.info(f\"RL-Modell geladen: {MODEL_PATH}\")\n        except Exception as e:\n            log.warning(f\"RL-Modell-Laden fehlgeschlagen: {e} → QuasiML-Fallback\")\n\n    def run(self, simulated: list[dict]) -> list[dict]:\n        \"\"\"\n        Stufe 6: Berechnet final_score für jeden Signal-Dict.\n\n        Wenn RL-Modell vorhanden: PPO-Inference\n        Sonst: QuasiML-Fallback\n        \"\"\"\n        if self._model is None:\n            return self._quasi_ml_fallback(simulated)\n\n        scored = []\n        for s in simulated:\n            dte = int(\n                s.get(\"option\", {}).get(\"dte\", 0) or\n                s.get(\"roi_analysis\", {}).get(\"dte\", 90)\n            )\n            obs = features_to_obs(\n                features      = s.get(\"features\", {}),\n                simulation    = s.get(\"simulation\", {}),\n                deep_analysis = s.get(\"deep_analysis\", {}),\n                dte           = dte,\n            )\n\n            # PPO-Inference: deterministisch (kein Exploration-Noise)\n            action, _ = self._model.predict(obs, deterministic=True)\n            action    = int(action)\n\n            # raw_score: gewichteter Score aus Observation-Vektor\n            # (interpretierbar, ähnlich wie QuasiML-Score)\n            raw_score = self._compute_raw_score(s)\n\n            if action == ACTION_SKIP:\n                final_score = 0.0\n                action_str  = \"SKIP\"\n            elif action == ACTION_NORMAL:\n                final_score = raw_score\n                action_str  = \"NORMAL\"\n            else:  # BOOST\n                final_score = raw_score * 1.5\n                action_str  = \"BOOST\"\n\n            log.info(\n                f\"  [{s['ticker']}] RL-Action={action_str} \"\n                f\"raw={raw_score:.4f} final={final_score:.4f}\"\n            )\n\n            # SKIP-Signale werden komplett gefiltert (kein Trade-Vorschlag)\n            if action == ACTION_SKIP:\n                log.info(f\"  [{s['ticker']}] → SKIP: nicht weitergeleitet.\")\n                continue\n\n            scored.append({**s, \"final_score\": round(final_score, 4)})\n\n        # Absteigend nach final_score sortieren\n        scored.sort(key=lambda x: x[\"final_score\"], reverse=True)\n        return scored\n\n    def _compute_raw_score(self, s: dict) -> float:\n        \"\"\"\n        Interpretierbare Score-Berechnung aus Observation-Vektor.\n        Gleichgewichtete Summe der normierten Features.\n        Ähnlich wie QuasiML, aber ohne historische Bins.\n        \"\"\"\n        features   = s.get(\"features\", {})\n        simulation = s.get(\"simulation\", {})\n        da         = s.get(\"deep_analysis\", {})\n\n        dte = int(\n            s.get(\"option\", {}).get(\"dte\", 0) or\n            s.get(\"roi_analysis\", {}).get(\"dte\", 90)\n        )\n        obs = features_to_obs(features, simulation, da, dte=dte)\n\n        # v9.0: 11 Gewichte (OBS_DIM=11)\n        weights = np.array([\n            0.15,   # impact\n            0.10,   # surprise\n            0.20,   # mismatch  (stärkstes Signal)\n            0.05,   # z_score\n            0.08,   # eps_drift\n            0.12,   # hit_rate\n            0.05,   # iv_rank\n            0.08,   # sentiment\n            0.08,   # bear_severity (invertiert)\n            0.05,   # dte_normalized (kurz = riskanter)\n            0.04,   # catalyst_confidence\n        ], dtype=np.float32)\n\n        return float(np.dot(obs, weights))\n\n    def _quasi_ml_fallback(self, simulated: list[dict]) -> list[dict]:\n        \"\"\"\n        Fallback auf QuasiML-Logik wenn kein RL-Modell vorhanden.\n        Vollständige Backward-Kompatibilität.\n        \"\"\"\n        log.info(\"QuasiML-Fallback aktiv (kein RL-Modell).\")\n        from modules.quasi_ml import QuasiML\n        qml = QuasiML(history=self.history)\n        return qml.run(simulated)\n"
  },
  {
    "path": "modules/rl_environment.py",
    "content": "\"\"\"\nmodules/rl_environment.py – Gymnasium-Environment für Options-Scoring v9.0\n\nÄnderungen v9.0:\n    #11 Observation Space erweitert von 9 auf 11 Dimensionen:\n        - Dim 9:  dte_normalized (DTE/365) — Agent lernt kurze Laufzeit = höheres Risiko\n        - Dim 10: catalyst_confidence (0-10 → /10) — separater Catalyst-Score aus v9.0\n\n        Reward-Shaping: Kurz-DTE-Verluste werden stärker bestraft, da der Agent\n        diese hätte meiden sollen. Positiv-Reward bei Short-DTE-Gewinn unveränder.\n\n        Cold-Start-Verbesserung: Minimum von 5 → 3 abgeschlossene Trades.\n        Unter 3: RL-Env wird nicht erstellt, PPO-Agent greift auf Heuristik zurück.\n\nErsetzt QuasiML (Stufe 6). Der RL-Agent lernt aus closed_trades in\nhistory.json welche Feature-Kombinationen zu positivem Options-P&L führen.\n\nObservation Space (11 Dimensionen, alle normalisiert auf [0, 1]):\n    0: impact              (0–10 → /10)\n    1: surprise            (0–10 → /10)\n    2: mismatch            (0–20 → /20, geclippt)\n    3: z_score             (0–5 → /5, geclippt)\n    4: eps_drift           (-0.5–0.5 → +0.5 /1.0)\n    5: hit_rate            (0–1, aus MiroFish)\n    6: iv_rank_norm        (0–100 → /100)\n    7: sentiment_score     (-1–1 → +1 /2)\n    8: bear_severity       (0–10 → /10, invertiert: 1 - x)\n    9: dte_normalized      (0–365 → /365, kurz=riskant)  [NEU v9.0]\n    10: catalyst_confidence (0–10 → /10)                  [NEU v9.0]\n\nAction Space (Diskret, 3 Aktionen):\n    0: SKIP   → Trade nicht empfehlen (final_score = 0)\n    1: NORMAL → Trade empfehlen      (final_score = raw_score)\n    2: BOOST  → Stark empfehlen      (final_score = raw_score × 1.5)\n\nReward:\n    Direkt der realisierte Options-P&L des Trade-Vorschlags.\n    Bei SKIP: reward = 0.\n    Bei SHORT-DTE-Verlust (DTE < 30 bei NORMAL/BOOST): Penalty × 1.3.\n    Wird in feedback.py nach Trade-Close eingetragen.\n\"\"\"\n\nfrom __future__ import annotations\nimport logging\nfrom typing import Optional\n\nimport numpy as np\nimport gymnasium as gym\nfrom gymnasium import spaces\n\nlog = logging.getLogger(__name__)\n\nOBS_DIM = 11  # v9.0: 9 → 11\n\nACTION_SKIP   = 0\nACTION_NORMAL = 1\nACTION_BOOST  = 2\n\nSHORT_DTE_THRESHOLD = 30   # DTE < 30 → erhöhter Penalty bei Verlust\nSHORT_DTE_PENALTY   = 1.3  # Verlust-Multiplikator für Short-DTE-Entscheidungen\n\n\ndef features_to_obs(\n    features:      dict,\n    simulation:    dict,\n    deep_analysis: dict,\n    dte:           int = 90,\n) -> np.ndarray:\n    \"\"\"\n    Konvertiert einen Pipeline-Signal-Dict in einen normierten Observation-Vektor.\n\n    v9.0: dte und catalyst_confidence als neue Dimensionen (9, 10).\n    dte-Parameter: tatsächliche Option-Laufzeit in Tagen.\n    \"\"\"\n    obs = np.zeros(OBS_DIM, dtype=np.float32)\n\n    obs[0] = np.clip(features.get(\"impact\", 0) / 10.0, 0.0, 1.0)\n    obs[1] = np.clip(features.get(\"surprise\", 0) / 10.0, 0.0, 1.0)\n    obs[2] = np.clip(features.get(\"mismatch\", 0) / 20.0, 0.0, 1.0)\n    obs[3] = np.clip(features.get(\"z_score\", 0) / 5.0, 0.0, 1.0)\n    obs[4] = np.clip((features.get(\"eps_drift\", 0) + 0.5) / 1.0, 0.0, 1.0)\n    obs[5] = np.clip(simulation.get(\"hit_rate\", 0.7), 0.0, 1.0)\n\n    iv_rank = features.get(\"iv_rank\", 30.0)\n    obs[6] = np.clip(iv_rank / 100.0, 0.0, 1.0)\n\n    sentiment = features.get(\"sentiment_score\", 0.0)\n    obs[7] = np.clip((sentiment + 1.0) / 2.0, 0.0, 1.0)\n\n    bear_sev = deep_analysis.get(\"bear_case_severity\", 5)\n    obs[8] = np.clip(1.0 - (bear_sev / 10.0), 0.0, 1.0)\n\n    # v9.0 dim 9: DTE normalisiert (kurze DTE → niedrigerer Wert → riskanter)\n    obs[9] = np.clip(dte / 365.0, 0.0, 1.0)\n\n    # v9.0 dim 10: catalyst_confidence (0-10 → 0-1)\n    cat_conf = deep_analysis.get(\"catalyst_confidence\", 5)\n    obs[10] = np.clip(float(cat_conf) / 10.0, 0.0, 1.0)\n\n    return obs\n\n\nclass OptionsRLEnv(gym.Env):\n    \"\"\"\n    Offline-Trainings-Environment.\n    Iteriert über einen Datensatz von (obs, outcome)-Paaren aus history.json.\n\n    v9.0: Erweiterte Observation (11 dims), DTE-aware Reward-Shaping.\n    \"\"\"\n\n    metadata = {\"render_modes\": []}\n\n    def __init__(self, trade_data: list[dict]):\n        super().__init__()\n\n        self.trade_data = [t for t in trade_data if t.get(\"outcome\") is not None]\n        if not self.trade_data:\n            raise ValueError(\n                \"Keine abgeschlossenen Trades in trade_data. \"\n                \"Mindestens 1 closed_trade mit 'outcome' nötig.\"\n            )\n\n        self.observation_space = spaces.Box(\n            low=0.0, high=1.0, shape=(OBS_DIM,), dtype=np.float32\n        )\n        self.action_space = spaces.Discrete(3)\n\n        self._idx         = 0\n        self._current_obs = None\n\n    def reset(self, seed=None, options=None):\n        super().reset(seed=seed)\n        self._idx = 0\n        obs = self._get_obs()\n        return obs, {}\n\n    def step(self, action: int):\n        trade   = self.trade_data[self._idx]\n        outcome = float(trade.get(\"outcome\", 0.0))\n\n        # DTE aus gespeichertem Trade lesen (falls vorhanden)\n        trade_dte = int(\n            trade.get(\"option\", {}).get(\"dte\", 0) or\n            trade.get(\"roi_analysis\", {}).get(\"dte\", 90)\n        )\n        is_short_dte = trade_dte > 0 and trade_dte < SHORT_DTE_THRESHOLD\n\n        if action == ACTION_SKIP:\n            reward = 0.0\n        elif action == ACTION_NORMAL:\n            # v9.0: Short-DTE-Verlust stärker bestrafen\n            if is_short_dte and outcome < 0:\n                reward = outcome * SHORT_DTE_PENALTY\n            else:\n                reward = outcome\n        else:  # BOOST\n            if is_short_dte and outcome < 0:\n                reward = outcome * SHORT_DTE_PENALTY * 1.5\n            else:\n                reward = outcome * 1.5\n\n        self._idx += 1\n        done      = self._idx >= len(self.trade_data)\n        truncated = False\n\n        obs = np.zeros(OBS_DIM, dtype=np.float32) if done else self._get_obs()\n\n        return obs, reward, done, truncated, {}\n\n    def _get_obs(self) -> np.ndarray:\n        trade = self.trade_data[self._idx]\n        dte   = int(\n            trade.get(\"option\", {}).get(\"dte\", 0) or\n            trade.get(\"roi_analysis\", {}).get(\"dte\", 90)\n        )\n        return features_to_obs(\n            features      = trade.get(\"features\", {}),\n            simulation    = trade.get(\"simulation\", {}),\n            deep_analysis = trade.get(\"deep_analysis\", {}),\n            dte           = dte,\n        )\n\n    def render(self):\n        pass\n\n\ndef build_env_from_history(history: dict) -> Optional[OptionsRLEnv]:\n    \"\"\"\n    Factory: Erstellt das Environment direkt aus history.json-Dict.\n    v9.0: Minimum von 5 → 3 abgeschlossene Trades.\n    \"\"\"\n    MIN_TRADES = 3\n\n    closed = history.get(\"closed_trades\", [])\n    valid  = [t for t in closed if t.get(\"outcome\") is not None]\n\n    if len(valid) < MIN_TRADES:\n        log.info(\n            f\"Nur {len(valid)} abgeschlossene Trades (Minimum: {MIN_TRADES}) → \"\n            f\"RL-Environment nicht erstellt. Sobald {MIN_TRADES} Trades mit \"\n            f\"'outcome' in history.json eingetragen sind, wird das RL-Modell aktiv.\"\n        )\n        return None\n\n    log.info(f\"RL-Environment v9.0 mit {len(valid)} Trades erstellt (OBS_DIM={OBS_DIM}).\")\n    return OptionsRLEnv(trade_data=valid)\n"
  },
  {
    "path": "modules/sentiment_tracker.py",
    "content": "\"\"\"\nmodules/sentiment_tracker.py – Sentiment-Drift über Zeit\n\nFix 4: Speichert täglich FinBERT-Scores pro Ticker in history.json.\n       Nach 4 Wochen nutzbar für Akkumulations-Erkennung.\n\nAkkumulationsphase-Erkennung:\n    Wenn Sentiment-Trend über 4 Wochen steigt (+0.3) bei stagnierendem\n    Preis (<3% Move) → klassische Akkumulationsphase → hochwertiges Signal.\n\nDatenstruktur in history.json:\n    \"sentiment_history\": {\n        \"AAPL\": [\n            {\"date\": \"2026-04-14\", \"score\": 0.42, \"headline_count\": 5},\n            {\"date\": \"2026-04-15\", \"score\": 0.38, \"headline_count\": 3},\n            ...\n        ]\n    }\n\nHinweis: Ab heute sammeln, nach 20+ Einträgen (4 Wochen) auswertbar.\n\"\"\"\n\nfrom __future__ import annotations\nimport logging\nfrom datetime import datetime, timedelta\nfrom typing import Optional\n\nimport numpy as np\n\nlog = logging.getLogger(__name__)\n\n# Mindestanzahl Einträge für Drift-Analyse\nMIN_ENTRIES_FOR_DRIFT  = 10   # ~2 Wochen\nFULL_DRIFT_ENTRIES     = 20   # ~4 Wochen\n\n# Akkumulations-Erkennung: Score-Anstieg über Periode\nACCUMULATION_THRESHOLD = 0.15  # +0.20 Sentiment-Anstieg über 4 Wochen\nPRICE_STAGNATION_MAX   = 0.05  # Preis darf sich max. 5% bewegt haben\n\n\ndef update_sentiment_history(\n    history: dict,\n    ticker:  str,\n    score:   float,\n    headline_count: int = 0,\n    today:   str = \"\",\n) -> None:\n    \"\"\"\n    Speichert den heutigen Sentiment-Score für einen Ticker.\n    Wird täglich in pipeline.py nach dem FinBERT-Enrichment aufgerufen.\n\n    Args:\n        history:        history.json als Dict\n        ticker:         Aktien-Ticker\n        score:          FinBERT Sentiment-Score (-1.0 bis +1.0)\n        headline_count: Anzahl Headlines die bewertet wurden\n        today:          Datum (default: heute UTC)\n    \"\"\"\n    if not today:\n        today = datetime.utcnow().strftime(\"%Y-%m-%d\")\n\n    sent_history = history.setdefault(\"sentiment_history\", {})\n    ticker_hist  = sent_history.setdefault(ticker, [])\n\n    # Duplikat-Check: Heute bereits eingetragen?\n    if ticker_hist and ticker_hist[-1].get(\"date\") == today:\n        log.debug(f\"  [{ticker}] Sentiment bereits für {today} gespeichert → überschreiben\")\n        ticker_hist[-1] = {\n            \"date\":           today,\n            \"score\":          round(score, 4),\n            \"headline_count\": headline_count,\n        }\n    else:\n        ticker_hist.append({\n            \"date\":           today,\n            \"score\":          round(score, 4),\n            \"headline_count\": headline_count,\n        })\n\n    # Nur letzten 60 Einträge behalten (3 Monate)\n    if len(ticker_hist) > 60:\n        sent_history[ticker] = ticker_hist[-60:]\n\n    log.debug(\n        f\"  [{ticker}] Sentiment gespeichert: {score:.3f} \"\n        f\"({headline_count} Headlines, {len(ticker_hist)} Einträge total)\"\n    )\n\n\ndef get_sentiment_drift(\n    history: dict,\n    ticker:  str,\n    days:    int = 28,\n) -> dict:\n    \"\"\"\n    Berechnet den Sentiment-Drift über die letzten N Tage.\n\n    Returns:\n        {\n            \"drift\":              float,   # Veränderung des Sentiment-Scores\n            \"trend\":              str,     # \"rising\" | \"falling\" | \"flat\"\n            \"entries_available\":  int,\n            \"enough_data\":        bool,\n            \"mean_score\":         float,\n            \"recent_score\":       float,   # Letzte 5 Tage\n            \"old_score\":          float,   # Erste 5 Tage der Periode\n            \"accumulation_signal\": bool,   # True wenn Akkumulationsphase erkannt\n        }\n    \"\"\"\n    sent_history = history.get(\"sentiment_history\", {})\n    ticker_hist  = sent_history.get(ticker, [])\n\n    if len(ticker_hist) < MIN_ENTRIES_FOR_DRIFT:\n        return {\n            \"drift\":               0.0,\n            \"trend\":               \"insufficient_data\",\n            \"entries_available\":   len(ticker_hist),\n            \"enough_data\":         False,\n            \"mean_score\":          0.0,\n            \"recent_score\":        0.0,\n            \"old_score\":           0.0,\n            \"accumulation_signal\": False,\n            \"days_until_ready\":    MIN_ENTRIES_FOR_DRIFT - len(ticker_hist),\n        }\n\n    # Nur Einträge der letzten N Tage\n    cutoff   = (datetime.utcnow() - timedelta(days=days)).strftime(\"%Y-%m-%d\")\n    relevant = [e for e in ticker_hist if e.get(\"date\", \"\") >= cutoff]\n\n    if len(relevant) < MIN_ENTRIES_FOR_DRIFT:\n        relevant = ticker_hist[-MIN_ENTRIES_FOR_DRIFT:]\n\n    scores = [e[\"score\"] for e in relevant]\n\n    # Drift: Differenz zwischen letzten 5 und ersten 5 Einträgen\n    n         = len(scores)\n    old_score = float(np.mean(scores[:min(5, n//2)]))\n    new_score = float(np.mean(scores[-min(5, n//2):]))\n    drift     = new_score - old_score\n    mean      = float(np.mean(scores))\n\n    # Trend\n    if drift > 0.10:\n        trend = \"rising\"\n    elif drift < -0.10:\n        trend = \"falling\"\n    else:\n        trend = \"flat\"\n\n    # Akkumulations-Signal: Steigendes Sentiment + kein starker Kursanstieg\n    # (Preis-Check erfolgt in pipeline.py mit yfinance)\n    accumulation = (\n        drift >= ACCUMULATION_THRESHOLD and\n        len(relevant) >= FULL_DRIFT_ENTRIES\n    )\n\n    result = {\n        \"drift\":               round(drift, 4),\n        \"trend\":               trend,\n        \"entries_available\":   len(relevant),\n        \"enough_data\":         len(relevant) >= MIN_ENTRIES_FOR_DRIFT,\n        \"mean_score\":          round(mean, 4),\n        \"recent_score\":        round(new_score, 4),\n        \"old_score\":           round(old_score, 4),\n        \"accumulation_signal\": accumulation,\n    }\n\n    if accumulation:\n        log.info(\n            f\"  [{ticker}] AKKUMULATIONS-SIGNAL: Sentiment +{drift:.2f} \"\n            f\"über {len(relevant)} Tage → mögliche Insider-Akkumulation\"\n        )\n\n    return result\n\n\ndef enrich_with_sentiment_drift(\n    candidate: dict,\n    history:   dict,\n) -> dict:\n    \"\"\"\n    Reichert einen Kandidaten mit Sentiment-Drift-Daten an.\n    Wird nach FinBERT-Enrichment in pipeline.py aufgerufen.\n\n    Speichert heutigen Score UND analysiert historischen Drift.\n    \"\"\"\n    ticker        = candidate.get(\"ticker\", \"\")\n    features      = candidate.get(\"features\", {})\n    today_score   = features.get(\"sentiment_score\", 0.0)\n    headline_cnt  = len(candidate.get(\"news\", []))\n\n    # Heutigen Score speichern\n    update_sentiment_history(\n        history        = history,\n        ticker         = ticker,\n        score          = today_score,\n        headline_count = headline_cnt,\n    )\n\n    # Historischen Drift berechnen\n    drift_data = get_sentiment_drift(history, ticker)\n    candidate[\"sentiment_drift\"] = drift_data\n\n    if drift_data[\"enough_data\"]:\n        log.info(\n            f\"  [{ticker}] Sentiment-Drift ({drift_data['entries_available']}d): \"\n            f\"trend={drift_data['trend']} drift={drift_data['drift']:+.3f}\"\n        )\n\n        # Drift in Features aufnehmen (für RL-Agent Observation-Vektor)\n        features[\"sentiment_drift\"]  = drift_data[\"drift\"]\n        features[\"sentiment_trend\"]  = 1.0 if drift_data[\"trend\"] == \"rising\" else (\n            -1.0 if drift_data[\"trend\"] == \"falling\" else 0.0\n        )\n    else:\n        days_left = drift_data.get(\"days_until_ready\", MIN_ENTRIES_FOR_DRIFT)\n        log.debug(\n            f\"  [{ticker}] Sentiment-Drift: noch {days_left} Tage bis auswertbar\"\n        )\n        features[\"sentiment_drift\"] = 0.0\n        features[\"sentiment_trend\"] = 0.0\n\n    return candidate\n\n\ndef get_accumulation_candidates(history: dict) -> list[str]:\n    \"\"\"\n    Gibt alle Ticker zurück die aktuell ein Akkumulations-Signal zeigen.\n    Kann für täglichen Report oder Email-Hinweis genutzt werden.\n    \"\"\"\n    accumulating = []\n    for ticker in history.get(\"sentiment_history\", {}):\n        drift = get_sentiment_drift(history, ticker)\n        if drift.get(\"accumulation_signal\"):\n            accumulating.append(ticker)\n    return accumulating\n"
  },
  {
    "path": "modules/trade_scorer.py",
    "content": "\"\"\"\nmodules/trade_scorer.py  —  Adaptive Asymmetry-Scanner v9.0\n\nScore-System (0-100 Punkte total):\n\nA. SIGNAL-QUALITÄT (0-40 Punkte)\n   √(Impact × Surprise) / 10 × 40\n\nB. OPTIONEN-QUALITÄT (0-30 Punkte)\n   - ROI netto:         max 15 Pkt  (DTE-aware, kurze DTE mit hohem ROI = Penalty)\n   - Bid-Ask Spread:    max 10 Pkt\n   - Open Interest:     max  5 Pkt\n\nC. RISIKO-ABZÜGE (0 bis -30 Punkte)\n   - Bear Case Severity ≥7:   bis -15 Pkt\n   - IV-Rank ≥85%:            bis -10 Pkt\n   - 48h-Move ≥5%:            bis  -5 Pkt\n\nD. KONTEXT-BONUS (0-30 Punkte)\n   - Makro expansiv (sektor-gewichtet): +10 × Sektor-Sensitivität\n   - Sektor-Momentum positiv:           +10\n   - KI-Konsistenz:                     +5\n   - Richtungskonflikt:                 -5\n\nÄnderungen v9.0:\n   #4  ROI-Scoring DTE-aware: >50% ROI bei <30 DTE → Penalty für Leverage-Artefakt.\n       Unterscheidet jetzt zwischen realistischem ROI und kurzfristigem Hebel-Effekt.\n\n   #8  Makro-Bonus sektor-spezifisch: Finanzwerte profitieren mehr von steiler Kurve\n       als Biotech/Healthcare. Multiplikator 0.1 (Healthcare) bis 1.0 (Financials).\n\nFinale Empfehlung:\n   >=75: STRONG BUY | 60-74: BUY | 45-59: WATCH | <45: AVOID\n\"\"\"\n\nfrom __future__ import annotations\nimport math\nimport logging\n\nlog = logging.getLogger(__name__)\n\n# v9.0 #8: Sektor-spezifische Makro-Sensitivität\n# Wie stark profitiert ein Sektor von einem expansiven Makro-Regime (steile Zinskurve)?\n# Basis: empirische Korrelation zwischen 10Y-2Y Spread und Sektorperformance\nMACRO_SECTOR_SENSITIVITY: dict[str, float] = {\n    \"Financial Services\":     1.00,  # Direkter NIM-Effekt\n    \"Financials\":             1.00,\n    \"Real Estate\":            0.85,  # Rate-sensitiv (Refinanzierung)\n    \"Consumer Cyclical\":      0.70,  # Konjunktursensitiv\n    \"Industrials\":            0.70,\n    \"Technology\":             0.60,  # Wachstums-Diskontierung\n    \"Communication Services\": 0.50,\n    \"Basic Materials\":        0.50,\n    \"Energy\":                 0.40,  # Rohstoff-getrieben, weniger Makro\n    \"Utilities\":              0.55,  # Defensive, moderat rate-sensitiv\n    \"Consumer Defensive\":     0.25,  # Stabil, kaum Makro-Beta\n    \"Healthcare\":             0.20,  # Pipeline-getrieben, makro-unabhängig\n    \"Biotechnology\":          0.10,  # Fast ausschließlich katalysatorgetrieben\n}\n\n\ndef compute_trade_score(proposal: dict) -> dict:\n    da       = proposal.get(\"deep_analysis\", {}) or {}\n    option   = proposal.get(\"option\", {}) or {}\n    roi_data = proposal.get(\"roi_analysis\", {}) or {}\n    features = proposal.get(\"features\", {}) or {}\n    red_team = da.get(\"red_team\", {}) or {}\n    ticker   = proposal.get(\"ticker\", \"?\")\n    sector   = proposal.get(\"sector\", \"\") or \"\"\n\n    # ── A: SIGNAL-QUALITÄT (0-40) ─────────────────────────────────────────────\n    impact   = float(da.get(\"impact\", 0) or 0)\n    surprise = float(da.get(\"surprise\", 0) or 0)\n\n    if impact > 0 and surprise > 0:\n        signal_raw = math.sqrt(impact * surprise) / 10.0\n    else:\n        signal_raw = 0.0\n    signal_pts = round(signal_raw * 40, 1)\n\n    # ── B: OPTIONEN-QUALITÄT (0-30) ───────────────────────────────────────────\n    roi_net    = float(roi_data.get(\"roi_net\", 0) or 0)\n    spread_pct = float(roi_data.get(\"spread_pct\", 1) or 1)\n    oi         = int(option.get(\"open_interest\", 0) or 0)\n    dte        = int(roi_data.get(\"dte\", 120) or 120)\n\n    # v9.0 #4: DTE-aware ROI-Scoring\n    # Kurze DTE + hoher ROI = Leverage-Artefakt, kein echter Alpha-Edge.\n    # Penalty verhindert, dass 16-DTE 135%-ROI denselben Score bekommt wie\n    # ein 90-DTE 40%-ROI (der probability-weighted realistischer ist).\n    roi_penalty = 0.0\n    if roi_net > 0.50 and dte < 30:\n        # Extremer Leverage-Artefakt: 135% ROI in 16 Tagen\n        roi_for_scoring = 0.20\n        roi_penalty     = -6.0\n        log.debug(f\"  [{ticker}] ROI-Penalty: {roi_net:.0%} bei {dte}d → score={roi_for_scoring:.0%} -6pts\")\n    elif roi_net > 0.80 and dte < 60:\n        # Hohes Leverage bei Short-Term\n        roi_for_scoring = 0.25\n        roi_penalty     = -3.0\n        log.debug(f\"  [{ticker}] ROI-Penalty: {roi_net:.0%} bei {dte}d → score={roi_for_scoring:.0%} -3pts\")\n    else:\n        # Realistischer Bereich: cap auf 40% (leicht höher als v8 wegen mc_weight)\n        roi_for_scoring = min(max(0.0, roi_net), 0.40)\n\n    roi_pts = round((roi_for_scoring / 0.40) * 15, 1)\n\n    if spread_pct <= 0.05:\n        liq_pts = 10.0\n    elif spread_pct <= 0.10:\n        liq_pts = 7.0\n    elif spread_pct <= 0.20:\n        liq_pts = 4.0\n    else:\n        liq_pts = 1.0\n\n    if oi >= 1000:\n        oi_pts = 5.0\n    elif oi >= 500:\n        oi_pts = 3.0\n    elif oi >= 100:\n        oi_pts = 1.5\n    else:\n        oi_pts = 0.5\n\n    # v10.0 #5: Edge vs. Market-Implied Expected Move\n    # edge_vs_implied in % (z.B. 4.2 = Modell erwartet 4.2% mehr als Markt impliziert)\n    # Positiver Edge → Signal hat echte Informationsasymmetrie\n    # Negativer Edge → Markt hat das Kurs-Ziel bereits eingepreist\n    edge_vs_implied = proposal.get(\"edge_vs_implied\")  # % oder None\n    edge_pts = 0.0\n    if edge_vs_implied is not None:\n        if edge_vs_implied < -2.0:\n            edge_pts = -6.0   # Modell-Move unter Market-Implied → kein Edge\n        elif edge_vs_implied < 0.0:\n            edge_pts = -2.0   # leicht negativ\n        elif edge_vs_implied > 5.0:\n            edge_pts = 4.0    # starker positiver Edge\n\n    options_pts = min(round(roi_pts + liq_pts + oi_pts + roi_penalty + edge_pts, 1), 30.0)\n    options_pts = max(options_pts, 0.0)\n\n    # ── C: RISIKO-ABZÜGE (0 bis -30) ─────────────────────────────────────────\n    bear_sev  = float(da.get(\"bear_case_severity\", 0) or 0)\n    iv_rank   = float(proposal.get(\"iv_rank\", 50) or 50)\n    _raw_move = float(features.get(\"price_change_48h\", 0) or 0)\n    move_48h  = abs(_raw_move / 100.0 if abs(_raw_move) > 1.0 else _raw_move)\n\n    if bear_sev <= 6:\n        bear_deduct = 0.0\n    elif bear_sev <= 7:\n        bear_deduct = -(bear_sev - 5) * 5.0\n    else:\n        bear_deduct = -10.0 - (bear_sev - 7) * 2.5\n\n    surprise_high = surprise >= 8.0\n    if iv_rank >= 95:\n        iv_deduct = -5.0 if surprise_high else -10.0\n    elif iv_rank >= 85:\n        iv_deduct = -2.5 if surprise_high else -5.0\n    elif iv_rank >= 70:\n        iv_deduct = -1.0 if surprise_high else -2.0\n    else:\n        iv_deduct = 0.0\n\n    if move_48h >= 0.10:\n        move_deduct = -5.0\n    elif move_48h >= 0.05:\n        move_deduct = -3.0\n    else:\n        move_deduct = 0.0\n\n    risk_pts = round(bear_deduct + iv_deduct + move_deduct, 1)\n\n    # ── D: KONTEXT-BONUS (0-30) ───────────────────────────────────────────────\n    macro_regime = da.get(\"macro_regime\", \"neutral\")\n    dir_conflict = bool(da.get(\"direction_conflict\", False))\n    sector_info  = proposal.get(\"sector_momentum\", {}) or {}\n    sector_rs    = float(sector_info.get(\"rel_strength\", 0) or 0)\n\n    # v9.0 #8: Sektor-spezifische Makro-Sensitivität\n    # Makro-Bonus wird mit der Sektor-Korrelation zur Zinskurve gewichtet.\n    macro_sensitivity = MACRO_SECTOR_SENSITIVITY.get(sector, 0.50)\n    if macro_regime == \"expansive\":\n        macro_bonus_base = 10.0\n    elif macro_regime in (\"neutral\", \"unknown\"):\n        macro_bonus_base = 5.0\n    else:\n        macro_bonus_base = 0.0\n    macro_bonus = round(macro_bonus_base * macro_sensitivity, 1)\n\n    if sector_rs >= 0.03:\n        sector_bonus = 10.0\n    elif sector_rs >= 0.0:\n        sector_bonus = 5.0\n    else:\n        sector_bonus = 0.0\n\n    ki_bonus     = 5.0 if not dir_conflict else 0.0\n    conflict_pen = 0.0 if not dir_conflict else -5.0\n\n    context_pts = min(round(macro_bonus + sector_bonus + ki_bonus + conflict_pen, 1), 30.0)\n\n    # ── TOTAL ─────────────────────────────────────────────────────────────────\n    total = max(0, min(100, int(round(signal_pts + options_pts + risk_pts + context_pts, 0))))\n\n    # ── GRADE ─────────────────────────────────────────────────────────────────\n    if total >= 75:\n        grade = \"STRONG BUY\"\n        emoji = \"🟢\"\n    elif total >= 60:\n        grade = \"BUY\"\n        emoji = \"🟡\"\n    elif total >= 45:\n        grade = \"WATCH\"\n        emoji = \"🟠\"\n    else:\n        grade = \"AVOID\"\n        emoji = \"🔴\"\n\n    grade_short = grade\n    grade_full  = f\"{grade} {emoji}\"\n\n    # ── REASONING ─────────────────────────────────────────────────────────────\n    strengths  = []\n    weaknesses = []\n\n    if signal_pts >= 25:\n        strengths.append(f\"starkes Signal (Impact={impact:.0f}/Surprise={surprise:.0f})\")\n    elif signal_pts >= 15:\n        strengths.append(f\"solides Signal (Impact={impact:.0f}/Surprise={surprise:.0f})\")\n    else:\n        weaknesses.append(f\"schwaches Signal (Impact={impact:.0f}/Surprise={surprise:.0f})\")\n\n    if roi_net >= 0.20:\n        strengths.append(f\"guter ROI ({roi_net:.0%})\")\n    elif roi_net < 0:\n        weaknesses.append(f\"negativer ROI ({roi_net:.0%})\")\n\n    if roi_penalty < 0:\n        weaknesses.append(f\"ROI-Penalty: {roi_net:.0%} bei {dte}d (Leverage-Artefakt)\")\n\n    if edge_vs_implied is not None:\n        implied_pct = proposal.get(\"implied_move_pct\", 0) or 0\n        model_pct   = proposal.get(\"model_move_pct\", 0) or 0\n        if edge_vs_implied < -2.0:\n            weaknesses.append(\n                f\"Kein IV-Edge: Model +{model_pct:.1f}% ≤ Markt ±{implied_pct:.1f}% (bereits eingepreist)\"\n            )\n        elif edge_vs_implied > 5.0:\n            strengths.append(\n                f\"Klarer Edge: Model +{model_pct:.1f}% vs. Markt ±{implied_pct:.1f}% (+{edge_vs_implied:.1f}%)\"\n            )\n\n    if iv_rank >= 85:\n        weaknesses.append(f\"hohe IV ({iv_rank:.0f}%) — Optionen teuer\")\n    elif iv_rank <= 40:\n        strengths.append(f\"günstige IV ({iv_rank:.0f}%)\")\n\n    if move_48h >= 0.05:\n        weaknesses.append(f\"48h-Move +{move_48h:.0%} — Alpha teilw. eingepreist\")\n\n    if bear_sev >= 7:\n        weaknesses.append(f\"hohes Bear-Risiko ({bear_sev:.0f}/10)\")\n\n    if sector_rs >= 0.03:\n        strengths.append(\"positive Sektor-Relative-Stärke\")\n    elif sector_rs < -0.03:\n        weaknesses.append(\"Sektor underperformt Markt\")\n\n    if macro_regime == \"expansive\" and macro_bonus > 5:\n        strengths.append(f\"expansives Makro (Sektor-Sensitivität {macro_sensitivity:.0%})\")\n    elif macro_regime == \"expansive\" and macro_bonus <= 3:\n        weaknesses.append(f\"Makro expansiv aber Sektor-Korrelation gering ({macro_sensitivity:.0%})\")\n\n    reasoning_parts = []\n    if strengths:\n        reasoning_parts.append(\"Stärken: \" + \", \".join(strengths[:3]))\n    if weaknesses:\n        reasoning_parts.append(\"Risiken: \" + \", \".join(weaknesses[:3]))\n\n    best_for     = (da.get(\"asymmetry_reasoning\", \"\") or \"Strukturelles Signal erkannt\")[:700]\n    best_against = (red_team.get(\"argument_1\", \"\") or \"n/a\")[:700]\n\n    log.info(\n        f\"  [{ticker}] Score: {total}/100 ({grade_short}) | \"\n        f\"Signal={signal_pts} Optionen={options_pts} \"\n        f\"Risiko={risk_pts} Kontext={context_pts} \"\n        f\"(MacroSens={macro_sensitivity:.0%} Sektor='{sector}')\"\n    )\n\n    return {\n        \"total\":       total,\n        \"grade\":       grade_full,\n        \"grade_short\": grade_short,\n        \"components\": {\n            \"signal_quality\":    signal_pts,\n            \"options_quality\":   options_pts,\n            \"risk_deductions\":   risk_pts,\n            \"context_bonus\":     context_pts,\n            \"roi_penalty\":       roi_penalty,\n            \"edge_pts\":          edge_pts,\n            \"macro_sensitivity\": macro_sensitivity,\n        },\n        \"reasoning\":             \" | \".join(reasoning_parts),\n        \"best_argument_for\":     best_for,\n        \"best_argument_against\": best_against,\n    }\n\n\ndef rank_proposals(proposals: list[dict]) -> list[dict]:\n    \"\"\"Rankt Trade-Vorschläge nach Score (höchster zuerst).\"\"\"\n    for p in proposals:\n        p[\"trade_score\"] = compute_trade_score(p)\n\n    proposals.sort(key=lambda x: x[\"trade_score\"][\"total\"], reverse=True)\n\n    for i, p in enumerate(proposals):\n        p[\"trade_rank\"] = i + 1\n\n    return proposals\n"
  },
  {
    "path": "modules/universe.py",
    "content": "\"\"\"\nmodules/universe.py – Dynamisches Ticker-Universum\n\nFix: Veraltete/delistete Ticker aus _SP500_STATIC entfernt.\n     Stand April 2026 — alle 8 Fehler-Ticker erklärt:\n\n  ANSS → delisted: Synopsys-Akquisition (2025)\n  CMA  → delisted: Mergers Umpqua/Columbia Banking  \n  DAY  → delisted: Wurde zu WEX umbenannt\n  FI   → delisted: Fiserv-Ticker; jetzt korrekt als FISV\n  HES  → delisted: Chevron-Akquisition (2025)\n  IPG  → delisted: Omnicom-Akquisition (2025) → 0.344 OMC\n  K    → delisted: Mars-Akquisition (Kellanova, Dez 2025)\n  WBA  → delisted: Private-Equity (Sycamore, Aug 2025)\n\nErsetzt durch aktuelle Aufnahmen:\n  IBKR, ARES, APP, HOOD, EME, CVNA, FIX, CRH, XYZ (Block)\n\"\"\"\n\nfrom __future__ import annotations\nimport logging\nfrom functools import lru_cache\nfrom io import StringIO\n\nimport requests\n\nlog = logging.getLogger(__name__)\n\n# Wikipedia blockiert Standard-Scraper ohne User-Agent\n_WP_HEADERS = {\n    \"User-Agent\": \"AdaptiveAsymmetryScanner/9.0 (research@pcctrading.com; index-rebalancing-tracker)\",\n    \"Accept-Language\": \"en-US,en;q=0.9\",\n}\n\n# ── Veraltete Ticker (delistet/akquiriert) ────────────────────────────────────\n# Diese Ticker sollen NIE mehr im Universum auftauchen\n_DELISTED = frozenset({\n    \"ANSS\",  # → Synopsys-Akquisition\n    \"CMA\",   # → Columbia Banking\n    \"DAY\",   # → umbenannt\n    \"FI\",    # → war falsch, Fiserv = FISV\n    \"HES\",   # → Chevron-Akquisition\n    \"IPG\",   # → Omnicom-Akquisition\n    \"K\",     # → Mars-Akquisition (Kellanova)\n    \"WBA\",   # → Sycamore Private Equity\n    # Weitere bekannte Delistings 2025:\n    \"CZR\",   # → aus S&P500 entfernt Sep 2025\n    \"ENPH\",  # → aus S&P500 entfernt Sep 2025\n    \"MKTX\",  # → aus S&P500 entfernt Sep 2025\n})\n\n# ── Statischer S&P 500 Fallback (April 2026) ──────────────────────────────────\n_SP500_STATIC: list[str] = [\n    \"MMM\",\"AOS\",\"ABT\",\"ABBV\",\"ACN\",\"ADBE\",\"AMD\",\"AES\",\"AFL\",\"A\",\"APD\",\"ABNB\",\n    \"AKAM\",\"ALB\",\"ARE\",\"ALGN\",\"ALLE\",\"LNT\",\"ALL\",\"GOOGL\",\"GOOG\",\"META\",\"AMZN\",\n    \"AMCR\",\"AEE\",\"AEP\",\"AXP\",\"AIG\",\"AMT\",\"AWK\",\"AMP\",\"AME\",\"AMGN\",\"APH\",\"ADI\",\n    \"AON\",\"APA\",\"AAPL\",\"AMAT\",\"APTV\",\"ACGL\",\"ADM\",\"ANET\",\"AJG\",\"AIZ\",\n    \"T\",\"ATO\",\"ADSK\",\"AZO\",\"AVB\",\"AVY\",\"AXON\",\"BKR\",\"BALL\",\"BAC\",\"BK\",\"BBWI\",\n    \"BAX\",\"BDX\",\"BRK-B\",\"BBY\",\"BIO\",\"TECH\",\"BIIB\",\"BLK\",\"BX\",\"BA\",\"BMY\",\n    \"AVGO\",\"BR\",\"BRO\",\"BF-B\",\"BLDR\",\"BG\",\"CDNS\",\"CPT\",\"CPB\",\"COF\",\"CAH\",\n    \"KMX\",\"CCL\",\"CARR\",\"CAT\",\"CBOE\",\"CBRE\",\"CDW\",\"CE\",\"COR\",\"CNC\",\"CNX\",\n    \"CDAY\",\"CF\",\"CRL\",\"SCHW\",\"CHTR\",\"CVX\",\"CMG\",\"CB\",\"CHD\",\"CI\",\"CINF\",\"CTAS\",\n    \"CSCO\",\"C\",\"CFG\",\"CLX\",\"CME\",\"CMS\",\"KO\",\"CTSH\",\"CL\",\"CMCSA\",\"CAG\",\n    \"COP\",\"ED\",\"STZ\",\"CEG\",\"COO\",\"CPRT\",\"GLW\",\"CTVA\",\"CSGP\",\"COST\",\"CTRA\",\"CCI\",\n    \"CSX\",\"CMI\",\"CVS\",\"DHI\",\"DHR\",\"DRI\",\"DVA\",\"DECK\",\"DE\",\"DAL\",\"DVN\",\n    \"DXCM\",\"FANG\",\"DLR\",\"DFS\",\"DG\",\"DLTR\",\"D\",\"DPZ\",\"DOV\",\"DOW\",\"DUK\",\"DD\",\n    \"EMN\",\"ETN\",\"EBAY\",\"ECL\",\"EIX\",\"EW\",\"EA\",\"ELV\",\"LLY\",\"EMR\",\"ETR\",\n    \"EOG\",\"EPAM\",\"EQT\",\"EFX\",\"EQIX\",\"EQR\",\"ESS\",\"EL\",\"ETSY\",\"EG\",\"EVRG\",\"ES\",\n    \"EXC\",\"EXPE\",\"EXPD\",\"EXR\",\"XOM\",\"FFIV\",\"FDS\",\"FICO\",\"FAST\",\"FRT\",\"FDX\",\n    \"FIS\",\"FITB\",\"FSLR\",\"FE\",\"FISV\",\"FMC\",\"F\",\"FTNT\",\"FTV\",\"FOXA\",\"FOX\",\"BEN\",\n    \"FCX\",\"GRMN\",\"IT\",\"GE\",\"GEHC\",\"GEV\",\"GEN\",\"GNRC\",\"GD\",\"GIS\",\"GM\",\"GPC\",\n    \"GILD\",\"GPN\",\"GL\",\"GDDY\",\"GS\",\"HAL\",\"HIG\",\"HAS\",\"HCA\",\"DOC\",\"HSIC\",\"HSY\",\n    \"HPE\",\"HLT\",\"HOLX\",\"HD\",\"HON\",\"HRL\",\"HST\",\"HWM\",\"HPQ\",\"HUBB\",\"HUM\",\n    \"HBAN\",\"HII\",\"IBM\",\"IEX\",\"IDXX\",\"ITW\",\"INCY\",\"IR\",\"PODD\",\"INTC\",\"ICE\",\n    \"IFF\",\"IP\",\"INTU\",\"ISRG\",\"IVZ\",\"INVH\",\"IQV\",\"IRM\",\"JPM\",\"KVUE\",\n    \"KDP\",\"KEY\",\"KEYS\",\"KMB\",\"KIM\",\"KMI\",\"KLAC\",\"KHC\",\"KR\",\"LH\",\"LRCX\",\"LW\",\n    \"LVS\",\"LDOS\",\"LEN\",\"LII\",\"LLY\",\"LIN\",\"LYV\",\"LKQ\",\"LMT\",\"L\",\"LOW\",\"LULU\",\n    \"LYB\",\"MTB\",\"MRO\",\"MPC\",\"MKTX\",\"MAR\",\"MMC\",\"MLM\",\"MAS\",\"MA\",\"MTCH\",\"MKC\",\n    \"MCD\",\"MCK\",\"MDT\",\"MRK\",\"MET\",\"MTD\",\"MGM\",\"MCHP\",\"MU\",\"MSFT\",\"MAA\",\n    \"MRNA\",\"MHK\",\"MOH\",\"TAP\",\"MDLZ\",\"MPWR\",\"MNST\",\"MCO\",\"MS\",\"MOS\",\"MSI\",\"MSCI\",\n    \"NDAQ\",\"NTAP\",\"NFLX\",\"NEM\",\"NWSA\",\"NWS\",\"NEE\",\"NKE\",\"NI\",\"NDSN\",\"NSC\",\n    \"NTRS\",\"NOC\",\"NCLH\",\"NRG\",\"NUE\",\"NVDA\",\"NVR\",\"NXPI\",\"ORLY\",\"OXY\",\"ODFL\",\n    \"OMC\",\"ON\",\"OKE\",\"ORCL\",\"OTIS\",\"PCAR\",\"PKG\",\"PANW\",\"PH\",\"PAYX\",\"PAYC\",\n    \"PYPL\",\"PNR\",\"PEP\",\"PFE\",\"PCG\",\"PM\",\"PSX\",\"PNW\",\"PNC\",\"POOL\",\"PPG\",\"PPL\",\n    \"PFG\",\"PG\",\"PGR\",\"PLD\",\"PRU\",\"PEG\",\"PTC\",\"PSA\",\"PHM\",\"QCOM\",\"DGX\",\"RL\",\n    \"RJF\",\"RTX\",\"O\",\"REG\",\"REGN\",\"RF\",\"RSG\",\"RMD\",\"RVTY\",\"ROK\",\"ROL\",\"ROP\",\n    \"ROST\",\"RCL\",\"SPGI\",\"CRM\",\"SBAC\",\"SLB\",\"STX\",\"SRE\",\"NOW\",\"SHW\",\"SPG\",\n    \"SWKS\",\"SJM\",\"SNA\",\"SOLV\",\"SO\",\"LUV\",\"SWK\",\"SBUX\",\"STT\",\"STLD\",\"STE\",\n    \"SYK\",\"SYF\",\"SNPS\",\"SYY\",\"TMUS\",\"TROW\",\"TTWO\",\"TPR\",\"TRGP\",\"TGT\",\"TEL\",\n    \"TDY\",\"TFX\",\"TER\",\"TSLA\",\"TXN\",\"TXT\",\"TMO\",\"TJX\",\"TSCO\",\"TT\",\"TDG\",\"TRV\",\n    \"TRMB\",\"TFC\",\"TYL\",\"TSN\",\"USB\",\"UBER\",\"UDR\",\"ULTA\",\"UNP\",\"UAL\",\"UPS\",\"URI\",\n    \"UNH\",\"UHS\",\"VLO\",\"VTR\",\"VLTO\",\"VRSN\",\"VRSK\",\"VZ\",\"VRTX\",\"VTRS\",\"VICI\",\n    \"V\",\"VST\",\"VMC\",\"WRB\",\"GWW\",\"WAB\",\"WMT\",\"DIS\",\"WBD\",\"WM\",\"WAT\",\n    \"WEC\",\"WFC\",\"WELL\",\"WST\",\"WDC\",\"WY\",\"WYNN\",\"XEL\",\"XYL\",\"YUM\",\"ZBRA\",\"ZBH\",\"ZTS\",\n    # Neue Aufnahmen 2025/2026\n    \"IBKR\",\"ARES\",\"APP\",\"HOOD\",\"EME\",\"CVNA\",\"FIX\",\"CRH\",\"XYZ\",\n    \"PLTR\",\"VST\",\"GEV\",\"SOLV\",\"VLTO\",\n]\n\n_NASDAQ100_STATIC: list[str] = [\n    \"ADBE\",\"ADP\",\"ABNB\",\"GOOGL\",\"GOOG\",\"AMZN\",\"AMD\",\"AEP\",\"AMGN\",\"ADI\",\n    \"AAPL\",\"AMAT\",\"APP\",\"ARM\",\"ASML\",\"TEAM\",\"ADSK\",\"AZN\",\"BIIB\",\"BKNG\",\n    \"AVGO\",\"CDNS\",\"CDW\",\"CHTR\",\"CTAS\",\"CSCO\",\"CTSH\",\"CMCSA\",\"CEG\",\"CPRT\",\n    \"CSGP\",\"COST\",\"CRWD\",\"CSX\",\"DDOG\",\"DXCM\",\"FANG\",\"DLTR\",\"EA\",\"EXC\",\"FAST\",\n    \"FTNT\",\"GEHC\",\"GILD\",\"GFS\",\"HON\",\"IDXX\",\"INTC\",\"INTU\",\"ISRG\",\"KDP\",\n    \"KLAC\",\"KHC\",\"LRCX\",\"LIN\",\"MELI\",\"META\",\"MCHP\",\"MU\",\"MSFT\",\"MRNA\",\"MDLZ\",\n    \"MDB\",\"MNST\",\"NFLX\",\"NVDA\",\"NXPI\",\"ORLY\",\"ON\",\"ODFL\",\"PCAR\",\"PANW\",\"PAYX\",\n    \"PYPL\",\"PDD\",\"PEP\",\"QCOM\",\"REGN\",\"ROST\",\"SBUX\",\"SNPS\",\"TTWO\",\"TMUS\",\"TSLA\",\n    \"TXN\",\"TTD\",\"VRSK\",\"VRTX\",\"WDAY\",\"ZS\",\"PLTR\",\"ARM\",\n]\n\n\ndef _fetch_sp500() -> list[str]:\n    try:\n        import pandas as pd\n        url  = \"https://en.wikipedia.org/wiki/List_of_S%26P_500_companies\"\n        resp = requests.get(url, headers=_WP_HEADERS, timeout=12)\n        resp.raise_for_status()\n        tables  = pd.read_html(StringIO(resp.text), attrs={\"id\": \"constituents\"})\n        tickers = (\n            tables[0][\"Symbol\"]\n            .str.replace(\".\", \"-\", regex=False)\n            .str.strip()\n            .tolist()\n        )\n        log.info(f\"S&P 500: {len(tickers)} Ticker von Wikipedia geladen.\")\n        return tickers\n    except Exception as e:\n        log.warning(f\"S&P 500 Wikipedia-Fehler: {e} → statischer Fallback.\")\n        return []\n\n\ndef _fetch_nasdaq100() -> list[str]:\n    try:\n        import pandas as pd\n        url  = \"https://en.wikipedia.org/wiki/Nasdaq-100\"\n        resp = requests.get(url, headers=_WP_HEADERS, timeout=12)\n        resp.raise_for_status()\n        all_tables = pd.read_html(StringIO(resp.text))\n        for table in all_tables:\n            if \"Ticker\" in table.columns:\n                tickers = (\n                    table[\"Ticker\"]\n                    .str.replace(\".\", \"-\", regex=False)\n                    .str.strip()\n                    .tolist()\n                )\n                log.info(f\"Nasdaq 100: {len(tickers)} Ticker von Wikipedia geladen.\")\n                return tickers\n        log.warning(\"Nasdaq-100: Keine Tabelle gefunden → statischer Fallback.\")\n        return []\n    except Exception as e:\n        log.warning(f\"Nasdaq-100 Wikipedia-Fehler: {e} → statischer Fallback.\")\n        return []\n\n\ndef _clean(tickers: list[str]) -> list[str]:\n    seen:   set[str] = set()\n    result: list[str] = []\n    for t in tickers:\n        if not isinstance(t, str):\n            continue\n        t = t.strip().upper()\n        if not t or len(t) > 6:\n            continue\n        if not all(c.isalpha() or c == \"-\" for c in t):\n            continue\n        # FIX: Delistete Ticker herausfiltern\n        if t in _DELISTED:\n            continue\n        if t not in seen:\n            seen.add(t)\n            result.append(t)\n    return result\n\n\n@lru_cache(maxsize=1)\ndef get_universe(universe: str = \"\") -> list[str]:\n    \"\"\"Gibt die konfigurierte Ticker-Liste zurück (ohne delistete Ticker).\"\"\"\n    if not universe:\n        try:\n            from modules.config import cfg\n            universe = cfg.filters.universe\n        except Exception:\n            universe = \"sp500_nasdaq100\"\n\n    log.info(f\"Lade Ticker-Universum: '{universe}'\")\n\n    sp500:  list[str] = []\n    ndq100: list[str] = []\n\n    if universe in (\"sp500\", \"sp500_nasdaq100\"):\n        sp500 = _fetch_sp500()\n        if not sp500:\n            sp500 = list(_SP500_STATIC)\n\n    if universe in (\"nasdaq100\", \"sp500_nasdaq100\"):\n        ndq100 = _fetch_nasdaq100()\n        if not ndq100:\n            ndq100 = list(_NASDAQ100_STATIC)\n\n    combined = _clean(sp500 + ndq100)\n\n    # Nochmal explizit delistete rausfiltern (falls Wikipedia noch veraltet)\n    removed = [t for t in (sp500 + ndq100) if t in _DELISTED]\n    if removed:\n        log.info(f\"Delistete Ticker entfernt: {removed}\")\n\n    log.info(\n        f\"Universum '{universe}': {len(combined)} Ticker \"\n        f\"(S&P500={len(sp500)}, Nasdaq100={len(ndq100)}, \"\n        f\"nach Deduplizierung+Delisting-Filter={len(combined)})\"\n    )\n    return combined\n"
  },
  {
    "path": "outputs/daily_reports/2026-04-11.json",
    "content": "{\n  \"date\": \"2026-04-11\",\n  \"proposals\": [\n    {\n      \"ticker\": \"LLY\",\n      \"strategy\": \"LONG_CALL\",\n      \"iv_rank\": 22.222222222222225,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-08-21\",\n        \"strike\": 980.0,\n        \"bid\": 74.0,\n        \"ask\": 77.3,\n        \"last\": 85.4,\n        \"open_interest\": 255,\n        \"implied_vol\": 0.41737948348999016,\n        \"spread_ratio\": 0.0427,\n        \"dte\": 131\n      },\n      \"features\": {\n        \"impact\": 4,\n        \"surprise\": 3,\n        \"mismatch\": 0.595,\n        \"z_score\": 0.681,\n        \"sigma_30d\": 0.0213,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"low\",\n        \"bin_mismatch\": \"weak\",\n        \"bin_eps_drift\": \"noise\"\n      },\n      \"simulation\": {\n        \"hit_rate\": 0.9717,\n        \"n_paths\": 10000,\n        \"n_days\": 120,\n        \"target_price\": 1033.42,\n        \"current_price\": 939.47,\n        \"sigma_adj\": 0.0192,\n        \"sector\": \"Healthcare\",\n        \"ttm\": \"4-8 Wochen\"\n      },\n      \"deep_analysis\": {\n        \"ticker\": \"LLY\",\n        \"impact\": 4,\n        \"surprise\": 3,\n        \"mispricing_logic\": \"Der Markt \\u00fcberreagiert auf Indien-spezifische Generika-Konkurrenz, die f\\u00fcr LLY's Kernumsatz strukturell irrelevant ist. Indien ist kein Prim\\u00e4rmarkt f\\u00fcr Mounjaro/Zepbound \\u2013 der US-Markt bleibt patentgesch\\u00fctzt bis 2036. EPS-Drift von 0.0 signalisiert keine Konsensrevision. Die -1.45% Bewegung reflektiert Headline-Rauschen, nicht fundamentale Neubewertung. Markt verwechselt regionale Generika-Dynamik mit globaler Bedrohung.\",\n        \"catalyst\": \"Q2 2025 Earnings (voraussichtlich Juli/August) mit US-Marktanteils- und Volumendaten f\\u00fcr Zepbound/Mounjaro \\u2013 erwartete Reacceleration durch Kapazit\\u00e4tserweiterung und neue Indikationen (Herz-Kreislauf, NASH).\",\n        \"time_to_materialization\": \"4-8 Wochen\",\n        \"bear_case\": \"US-Gesetzgeber beschleunigen Generika-Zulassungen oder Medicare-Preisverhandlungen unter IRA greifen fr\\u00fcher als erwartet. Produktionsengp\\u00e4sse bleiben bestehen und erm\\u00f6glichen Marktanteilsverlust an Novo.\",\n        \"bear_case_severity\": 5,\n        \"direction\": \"BULLISH\"\n      },\n      \"final_score\": 0.1668\n    }\n  ]\n}"
  },
  {
    "path": "outputs/daily_reports/2026-04-11.md",
    "content": "# Adaptive Asymmetry-Scanner – 2026-04-11\n\n**Generiert:** 2026-04-11 06:56 UTC\n**Trade-Vorschläge:** 1\n\n---\n## 1. LLY – LONG_CALL\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.1668`  \n**IV-Rank:** 22.222222222222225  \n\n### Asymmetry-Analyse\n- **Impact:** 4/10\n- **Surprise:** 3/10\n- **Mismatch-Score:** 0.595\n- **Z-Score (48h):** 0.681\n- **EPS-Drift:** 0.0 (noise)\n\n**Mispricing-Logik:**  \n> Der Markt überreagiert auf Indien-spezifische Generika-Konkurrenz, die für LLY's Kernumsatz strukturell irrelevant ist. Indien ist kein Primärmarkt für Mounjaro/Zepbound – der US-Markt bleibt patentgeschützt bis 2036. EPS-Drift von 0.0 signalisiert keine Konsensrevision. Die -1.45% Bewegung reflektiert Headline-Rauschen, nicht fundamentale Neubewertung. Markt verwechselt regionale Generika-Dynamik mit globaler Bedrohung.\n\n**Katalysator:** Q2 2025 Earnings (voraussichtlich Juli/August) mit US-Marktanteils- und Volumendaten für Zepbound/Mounjaro – erwartete Reacceleration durch Kapazitätserweiterung und neue Indikationen (Herz-Kreislauf, NASH).  \n**Time-to-Materialization:** 4-8 Wochen  \n\n### Bear Case\n> US-Gesetzgeber beschleunigen Generika-Zulassungen oder Medicare-Preisverhandlungen unter IRA greifen früher als erwartet. Produktionsengpässe bleiben bestehen und ermöglichen Marktanteilsverlust an Novo.  \n**Severity:** 5/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 97.2% (10,000 Pfade)\n- **Target-Preis:** $1033.42\n- **Aktueller Preis:** $939.47\n- **σ (adj.):** 0.0192\n\n### Options-Vorschlag\n- **Expiry:** 2026-08-21 (131 DTE)\n- **Strike:** $980.00\n- **Bid/Ask:** $74.00 / $77.30\n- **Impl. Vol.:** 41.7%\n- **Open Interest:** 255\n- **Bid-Ask-Ratio:** 4.27%\n\n---\n## Modell-Gewichte (aktuell)\n- Impact: `0.35`\n- Mismatch: `0.45`\n- EPS-Drift: `0.20`\n\n_Automatisch generiert durch Adaptive Asymmetry-Scanner v3.5_"
  },
  {
    "path": "outputs/daily_reports/2026-04-12.json",
    "content": "{\n  \"date\": \"2026-04-12\",\n  \"proposals\": [\n    {\n      \"ticker\": \"ON\",\n      \"strategy\": \"BULL_CALL_SPREAD\",\n      \"iv_rank\": 67.74,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-09-18\",\n        \"strike\": 70.0,\n        \"bid\": 9.15,\n        \"ask\": 10.0,\n        \"last\": 10.0,\n        \"open_interest\": 811,\n        \"implied_vol\": 0.5621381677246093,\n        \"spread_ratio\": 0.085,\n        \"dte\": 158,\n        \"spread_leg\": {\n          \"strike\": 75.0,\n          \"bid\": 6.85,\n          \"ask\": 7.8\n        }\n      },\n      \"features\": {\n        \"impact\": 3,\n        \"surprise\": 2,\n        \"mismatch\": 2.408,\n        \"z_score\": 0.118,\n        \"sigma_30d\": 0.0334,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"low\",\n        \"bin_mismatch\": \"weak\",\n        \"bin_eps_drift\": \"noise\"\n      },\n      \"simulation\": {\n        \"hit_rate\": 1.0,\n        \"n_paths\": 10000,\n        \"n_days\": 120,\n        \"target_price\": 75.52,\n        \"current_price\": 68.65,\n        \"sigma_adj\": 0.0434,\n        \"sector\": \"Technology\",\n        \"ttm\": \"2-3 Monate\",\n        \"vix\": 19.23\n      },\n      \"deep_analysis\": {\n        \"ticker\": \"ON\",\n        \"impact\": 3,\n        \"surprise\": 2,\n        \"mispricing_logic\": \"Der Ticker ON (ON Semiconductor) hat keinen direkten Bezug zu den Kodak-Headlines \\u2013 hier liegt ein Datenfehler in der Vorselektion vor. ON Semiconductor ist ein EV/Industrial-Chips-Unternehmen. Der massive Gap zwischen Forward EPS (4.04) und Konsens (2.32) deutet auf Sch\\u00e4tzungsdivergenz hin, vermutlich durch Zyklus-Unsicherheit im Auto-Halbleitermarkt. Der Markt diskontiert EV-Verlangsamung und China-Exposure zu stark, ignoriert aber strukturelle SiC-Dominanz.\",\n        \"catalyst\": \"N\\u00e4chster Earnings-Call (ca. Q3 2025, Oktober) mit potenziellem EPS-Beat bei Lagerabbau-Normalisierung und SiC-Design-Win-Announcements von OEM-Partnern.\",\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"bear_case\": \"China-EV-Nachfrage bleibt schwach, US-Z\\u00f6lle treffen Lieferketten, SiC-Konkurrenz durch STMicro/Wolfspeed beschleunigt sich. Konsens-EPS von 2.32 k\\u00f6nnte die Realit\\u00e4t besser abbilden als Forward-4.04-Sch\\u00e4tzungen.\",\n        \"bear_case_severity\": 7,\n        \"direction\": \"BULLISH\"\n      },\n      \"final_score\": 0.2134\n    }\n  ]\n}"
  },
  {
    "path": "outputs/daily_reports/2026-04-12.md",
    "content": "# Adaptive Asymmetry-Scanner – 2026-04-12\n\n**Generiert:** 2026-04-12 11:57 UTC\n**Trade-Vorschläge:** 1\n\n---\n## 1. ON – BULL_CALL_SPREAD\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.2134`  \n**IV-Rank:** 67.74  \n\n### Asymmetry-Analyse\n- **Impact:** 3/10\n- **Surprise:** 2/10\n- **Mismatch-Score:** 2.408\n- **Z-Score (48h):** 0.118\n- **EPS-Drift:** 0.0 (noise)\n\n**Mispricing-Logik:**  \n> Der Ticker ON (ON Semiconductor) hat keinen direkten Bezug zu den Kodak-Headlines – hier liegt ein Datenfehler in der Vorselektion vor. ON Semiconductor ist ein EV/Industrial-Chips-Unternehmen. Der massive Gap zwischen Forward EPS (4.04) und Konsens (2.32) deutet auf Schätzungsdivergenz hin, vermutlich durch Zyklus-Unsicherheit im Auto-Halbleitermarkt. Der Markt diskontiert EV-Verlangsamung und China-Exposure zu stark, ignoriert aber strukturelle SiC-Dominanz.\n\n**Katalysator:** Nächster Earnings-Call (ca. Q3 2025, Oktober) mit potenziellem EPS-Beat bei Lagerabbau-Normalisierung und SiC-Design-Win-Announcements von OEM-Partnern.  \n**Time-to-Materialization:** 2-3 Monate  \n\n### Bear Case\n> China-EV-Nachfrage bleibt schwach, US-Zölle treffen Lieferketten, SiC-Konkurrenz durch STMicro/Wolfspeed beschleunigt sich. Konsens-EPS von 2.32 könnte die Realität besser abbilden als Forward-4.04-Schätzungen.  \n**Severity:** 7/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 100.0% (10,000 Pfade)\n- **Target-Preis:** $75.52\n- **Aktueller Preis:** $68.65\n- **σ (adj.):** 0.0434\n\n### Options-Vorschlag\n- **Expiry:** 2026-09-18 (158 DTE)\n- **Strike:** $70.00\n- **Bid/Ask:** $9.15 / $10.00\n- **Impl. Vol.:** 56.2%\n- **Open Interest:** 811\n- **Bid-Ask-Ratio:** 8.50%\n\n- **Short Strike:** $75.00  \n- **Short Bid/Ask:** $6.85 / $7.80\n\n---\n## Modell-Gewichte (aktuell)\n- Impact: `0.35`\n- Mismatch: `0.45`\n- EPS-Drift: `0.20`\n\n_Automatisch generiert durch Adaptive Asymmetry-Scanner v3.5_"
  },
  {
    "path": "outputs/daily_reports/2026-04-13.json",
    "content": "{\n  \"date\": \"2026-04-13\",\n  \"proposals\": []\n}"
  },
  {
    "path": "outputs/daily_reports/2026-04-13.md",
    "content": "# Adaptive Asymmetry-Scanner – 2026-04-13\n\n**Generiert:** 2026-04-13 18:31 UTC\n**Trade-Vorschläge:** 0\n\n_Kein Signal heute. Alle Gates haben blockiert._\n---\n## Modell-Gewichte (aktuell)\n- Impact: `0.35`\n- Mismatch: `0.45`\n- EPS-Drift: `0.20`\n\n_Automatisch generiert durch Adaptive Asymmetry-Scanner v3.5_"
  },
  {
    "path": "outputs/daily_reports/2026-04-14.json",
    "content": "{\n  \"date\": \"2026-04-14\",\n  \"proposals\": []\n}"
  },
  {
    "path": "outputs/daily_reports/2026-04-14.md",
    "content": "# Adaptive Asymmetry-Scanner – 2026-04-14\n\n**Generiert:** 2026-04-14 19:13 UTC\n**Trade-Vorschläge:** 0\n\n_Kein Signal heute. Alle Gates haben blockiert._\n---\n## Modell-Gewichte (aktuell)\n- Impact: `0.35`\n- Mismatch: `0.45`\n- EPS-Drift: `0.20`\n\n_Automatisch generiert durch Adaptive Asymmetry-Scanner v3.5_"
  },
  {
    "path": "outputs/daily_reports/2026-04-15.json",
    "content": "{\n  \"date\": \"2026-04-15\",\n  \"proposals\": [\n    {\n      \"ticker\": \"AVGO\",\n      \"strategy\": \"BULL_CALL_SPREAD\",\n      \"iv_rank\": 100.0,\n      \"iv_gate_applied\": true,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-05-08\",\n        \"strike\": 390.0,\n        \"bid\": 21.15,\n        \"ask\": 22.0,\n        \"open_interest\": 845,\n        \"implied_vol\": 0.45862357788085945,\n        \"spread_ratio\": 0.0386,\n        \"dte\": 22,\n        \"spread_leg\": {\n          \"strike\": 430.0,\n          \"bid\": 5.4,\n          \"ask\": 6.45\n        },\n        \"net_debit\": 16.6\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 1.0502,\n        \"roi_net\": 0.7747,\n        \"spread_pct\": 0.0386,\n        \"vega_loss\": 0.1982,\n        \"delta\": 0.5824,\n        \"iv_drop_assumed\": 0.25,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.15,\n        \"dte\": 22\n      },\n      \"dte_tier\": \"Short-Term\",\n      \"annualized_roi\": 13588.6849,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Short-Term\",\n          \"dte\": 22,\n          \"option\": {\n            \"expiry\": \"2026-05-08\",\n            \"strike\": 390.0,\n            \"bid\": 21.15,\n            \"ask\": 22.0,\n            \"open_interest\": 845,\n            \"implied_vol\": 0.45862357788085945,\n            \"spread_ratio\": 0.0386,\n            \"dte\": 22,\n            \"spread_leg\": {\n              \"strike\": 430.0,\n              \"bid\": 5.4,\n              \"ask\": 6.45\n            },\n            \"net_debit\": 16.6\n          },\n          \"roi\": {\n            \"roi_gross\": 1.0502,\n            \"roi_net\": 0.7747,\n            \"spread_pct\": 0.0386,\n            \"vega_loss\": 0.1982,\n            \"delta\": 0.5824,\n            \"iv_drop_assumed\": 0.25,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.15,\n            \"dte\": 22\n          },\n          \"annualized_roi\": 13588.6849,\n          \"strategy\": \"BULL_CALL_SPREAD\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 7,\n        \"surprise\": 5,\n        \"mismatch\": 7.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.028,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"strong\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.97\n      },\n      \"simulation\": {\n        \"hit_rate\": 0.97,\n        \"stderr\": 0.0017,\n        \"n_paths\": 10000,\n        \"n_days\": 120,\n        \"days_to_expiry\": 120,\n        \"target_price\": 436.39,\n        \"current_price\": 396.72,\n        \"sigma_adj\": 0.0364,\n        \"sector\": \"Technology\",\n        \"ema200\": {},\n        \"macd\": {\n          \"macd\": 14.8662,\n          \"signal\": 5.6798,\n          \"histogram\": 9.1864,\n          \"momentum_score\": 1.0,\n          \"data_available\": true\n        }\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Katalysator bereits eingepreist: AVGO ist nach der News-Ver\\u00f6ffentlichung bereits +4.5% innerhalb von 48h gestiegen. Der Meta-Deal ist breit in der Finanzpresse bekannt (Bloomberg, CNBC, multiple Outlets), was darauf hindeutet, dass das fundamentale Upside weitgehend vom Markt absorbiert wurde. Options-Trader, die jetzt long gehen, kaufen m\\u00f6glicherweise in die Euphorie nach dem Peak.\",\n          \"argument_2\": \"Bewertungsrisiko und Konzentration: AVGO handelt bei einem Forward-KGV von ~30x nach dem Kursanstieg. Die EPS-Abweichung zwischen yfinance (17.99) und SEC EDGAR (5.13) ist erheblich und deutet auf erhebliche Non-GAAP-Adjustments hin. Der AI-Chip-Sektor ist bekannt f\\u00fcr aggressive Bewertungsannahmen. Ein R\\u00fcckgang der AI-Capex-Erwartungen bei Meta (oder regulatorischer Gegenwind) k\\u00f6nnte die Pr\\u00e4mie schnell abbauen.\",\n          \"argument_3\": \"Kundenkonzentration und Verhandlungsmacht: Multi-Jahr-Deals mit einem Hyperscaler wie Meta erscheinen positiv, erh\\u00f6hen aber die Abh\\u00e4ngigkeit von einem einzigen Gro\\u00dfkunden und geben Meta erhebliche Verhandlungsmacht bei Preisverhandlungen. Broadcom hat historisch Margenrisiken, wenn dominante Kunden beginnen, eigene Chip-Designs zu entwickeln (analog zu Google's TPU-Strategie). Meta k\\u00f6nnte langfristig in-house gehen.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein MC durchgef\\u00fchrt (0 Pfade, 30d). Bei AVGO's historischer 30d-Volatilit\\u00e4t von ~35-45% annualisiert (implizierte Vola bei AI-Semis typisch hoch) w\\u00e4re eine Hit-Rate von 0% unrealistisch \\u2014 es wurden schlicht keine Simulationen ausgef\\u00fchrt. Das ist ein Datenl\\u00fccke, kein bearishes Signal. Die fehlende MC-Statistik reduziert die statistische Konfidenz des Signals, ist aber neutral bez\\u00fcglich Direction.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 7,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 5,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Trotz +4.5% Kursbewegung k\\u00f6nnte der Markt die Langfristigkeit und Revenue-Visibilit\\u00e4t eines Multi-Jahr-Deals mit Meta untersch\\u00e4tzen \\u2014 solche Vereinbarungen sichern Broadcom planbare AI-ASIC-Ums\\u00e4tze \\u00fcber mehrere Jahreszyklen, die in kurzfristigen Kursreaktionen typischerweise nicht voll kapitalisiert werden. Der Cluster von 7 Insider-K\\u00e4ufen innerhalb 14 Tagen ist ein unabh\\u00e4ngiges Signal, das auf informationales Advantage des Managements hindeutet. Das neutrale Makro-Umfeld (keine invertierte Kurve) beseitigt den typischen strukturellen Gegenwind, der Einzel-Aktien-Signale in rezessiven Phasen \\u00fcberlagert.\",\n        \"catalyst\": \"Best\\u00e4tigung und Erweiterung des Multi-Jahr-Meta-AI-ASIC-Deals mit konkreten Umsatzimplikationen im n\\u00e4chsten Earnings-Call (Q2 FY2025), kombiniert mit Insider-Cluster-K\\u00e4ufen als Best\\u00e4tigungssignal\",\n        \"bear_case\": \"Der Katalysator ist nach +4.5% in 48h weitgehend eingepreist; aggressive Non-GAAP-Adjustments (EPS-Abweichung yfinance vs. SEC) verschleiern die tats\\u00e4chliche GAAP-Ertragskraft, und ein R\\u00fcckgang der AI-Capex-Guidance bei Meta w\\u00fcrde den Deal-Wert sofort in Frage stellen.\",\n        \"macro_assessment\": \"Neutrale Makro-Umgebung (10Y-2Y: +0.50%, Fed Funds 3.64%) ist konstruktiv f\\u00fcr Growth/Tech-Signale. Keine invertierte Kurve bedeutet kein struktureller Rezessionsgegenwind, der das fundamentale Alpha \\u00fcberlagern w\\u00fcrde. Der moderate Zinssatz (kein ZIRP, aber kein restriktiver Extremus) erlaubt moderate Bewertungspr\\u00e4mien f\\u00fcr AI-Infrastruktur-Plays. Makro ist kein Headwind, aber auch kein signifikanter Tailwind.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.5,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLK\",\n        \"rel_strength\": 0.144\n      },\n      \"final_score\": 0.0675,\n      \"time_value_efficiency\": {\n        \"roi_per_day\": 0.035214,\n        \"roi_per_day_pct\": 3.5214,\n        \"annualized_roi\": 13588.6849,\n        \"efficiency_label\": \"high\",\n        \"dte\": 22\n      },\n      \"trade_score\": {\n        \"total\": 62,\n        \"grade\": \"BUY \\ud83d\\udfe1\",\n        \"grade_short\": \"BUY\",\n        \"components\": {\n          \"signal_quality\": 23.7,\n          \"options_quality\": 28.0,\n          \"risk_deductions\": -10.0,\n          \"context_bonus\": 20.0\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=7/Surprise=5), guter ROI (77%), positive Sektor-Relative-St\\u00e4rke | Risiken: sehr hohe IV (100%) \\u2014 Optionen teuer\",\n        \"best_argument_for\": \"Trotz +4.5% Kursbewegung k\\u00f6nnte der Markt die Langfristigkeit und Revenue-Visibilit\\u00e4t eines Multi-Ja\",\n        \"best_argument_against\": \"Katalysator bereits eingepreist: AVGO ist nach der News-Ver\\u00f6ffentlichung bereits +4.5% innerhalb von\"\n      },\n      \"trade_rank\": 1\n    },\n    {\n      \"ticker\": \"AMD\",\n      \"strategy\": \"BULL_CALL_SPREAD\",\n      \"iv_rank\": 100.0,\n      \"iv_gate_applied\": true,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-05-08\",\n        \"strike\": 255.0,\n        \"bid\": 17.05,\n        \"ask\": 17.75,\n        \"open_interest\": 1187,\n        \"implied_vol\": 0.6022378643798829,\n        \"spread_ratio\": 0.0394,\n        \"dte\": 22,\n        \"spread_leg\": {\n          \"strike\": 280.0,\n          \"bid\": 7.3,\n          \"ask\": 7.55\n        },\n        \"net_debit\": 10.45\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 0.8173,\n        \"roi_net\": 0.5266,\n        \"spread_pct\": 0.0394,\n        \"vega_loss\": 0.2118,\n        \"delta\": 0.5621,\n        \"iv_drop_assumed\": 0.25,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.15,\n        \"dte\": 22\n      },\n      \"dte_tier\": \"Short-Term\",\n      \"annualized_roi\": 1116.2981,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Short-Term\",\n          \"dte\": 22,\n          \"option\": {\n            \"expiry\": \"2026-05-08\",\n            \"strike\": 255.0,\n            \"bid\": 17.05,\n            \"ask\": 17.75,\n            \"open_interest\": 1187,\n            \"implied_vol\": 0.6022378643798829,\n            \"spread_ratio\": 0.0394,\n            \"dte\": 22,\n            \"spread_leg\": {\n              \"strike\": 280.0,\n              \"bid\": 7.3,\n              \"ask\": 7.55\n            },\n            \"net_debit\": 10.45\n          },\n          \"roi\": {\n            \"roi_gross\": 0.8173,\n            \"roi_net\": 0.5266,\n            \"spread_pct\": 0.0394,\n            \"vega_loss\": 0.2118,\n            \"delta\": 0.5621,\n            \"iv_drop_assumed\": 0.25,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.15,\n            \"dte\": 22\n          },\n          \"annualized_roi\": 1116.2981,\n          \"strategy\": \"BULL_CALL_SPREAD\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 6.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0316,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.97\n      },\n      \"simulation\": {\n        \"hit_rate\": 0.97,\n        \"stderr\": 0.0017,\n        \"n_paths\": 10000,\n        \"n_days\": 120,\n        \"days_to_expiry\": 120,\n        \"target_price\": 283.93,\n        \"current_price\": 258.12,\n        \"sigma_adj\": 0.041,\n        \"sector\": \"Technology\",\n        \"ema200\": {},\n        \"macd\": {\n          \"macd\": 12.1507,\n          \"signal\": 6.8137,\n          \"histogram\": 5.337,\n          \"momentum_score\": 1.0,\n          \"data_available\": true\n        }\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Katalysator bereits eingepreist: Die +4,6% Bewegung in 48h und der MI450-Hype deuten darauf hin, dass der Markt das Chip-Launch-Narrativ bereits aggressiv diskontiert. AMD handelt bei ~$258 mit einem Forward-KGV von deutlich \\u00fcber 40x \\u2013 jede Entt\\u00e4uschung beim tats\\u00e4chlichen Launch (Verz\\u00f6gerung, schwache Erstbestellungen, Yield-Probleme) k\\u00f6nnte zu einem scharfen Reversal f\\u00fchren.\",\n          \"argument_2\": \"Wettbewerbsintensit\\u00e4t und NVIDIA-Dominanz: NVIDIA (H100/H200/B200) hat im AI-Accelerator-Markt einen strukturellen Softwarevorsprung (CUDA-\\u00d6kosystem), der sich in 2-6 Monaten nicht erodiert. AMD's MI-Serie hat historisch entt\\u00e4uscht (MI300X Adoption schw\\u00e4cher als erwartet) \\u2013 Marktverl\\u00e4sslichkeit des MI450-Hypes ist fragw\\u00fcrdig ohne harte Vorbestellungsdaten.\",\n          \"argument_3\": \"EPS-Diskrepanz als Datenproblem: Die Abweichung zwischen yfinance EPS (10.83) und SEC EDGAR EPS (2.60) ist massiv und deutet auf Non-GAAP vs. GAAP-Verzerrung hin. Das tats\\u00e4chliche GAAP-EPS von $2.60 impliziert ein KGV von ~99x beim aktuellen Kurs \\u2013 eine Bewertung, die bei makro\\u00f6konomischer Normalisierung oder Entt\\u00e4uschung katastrophal korrigieren kann.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein Quick MC verf\\u00fcgbar (0 Pfade). Bei AMD's historischer 30-Tages-Volatilit\\u00e4t von typischerweise 40-60% annualisiert ist eine 0%-Hit-Rate nicht aussagekr\\u00e4ftig \\u2013 wahrscheinlich technischer Fehler im Vorfilter, nicht ein fundamentales Signal. Die fehlende MC-Statistik erh\\u00f6ht die Datenunsicherheit erheblich.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 7,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt scheint den MI450-Launch als graduelles Upgrade zu behandeln, w\\u00e4hrend Insider-Cluster-K\\u00e4ufe von 4 Personen in 14 Tagen auf nicht-\\u00f6ffentliche \\u00dcberzeugung im Management hindeuten. Das strukturelle Argument: Falls AMD tats\\u00e4chlich CUDA-kompatible Software-Integration beim MI450 liefert, w\\u00e4re die Reaktion des Marktes deutlich st\\u00e4rker als eingepreist. Allerdings ist die hohe Bewertung (GAAP KGV ~99x) ein substanzieller Gegenwind zur Aufw\\u00e4rtsasymmetrie.\",\n        \"catalyst\": \"AMD MI450 Chip Launch mit konkreten Enterprise-Bestellungen/Partnerschaften \\u2014 insbesondere hyperscaler-Commitments (Microsoft Azure, Meta, Oracle) als Adoption-Signal\",\n        \"bear_case\": \"GAAP-KGV von ~99x bei einem neutralen Makroumfeld l\\u00e4sst keinen Bewertungspuffer: Eine Verz\\u00f6gerung des MI450 oder schwache Erstadoption w\\u00fcrde den +4,6% Vorlauf vollst\\u00e4ndig aufl\\u00f6sen und AMD zur\\u00fcck Richtung $220-230 dr\\u00fccken.\",\n        \"macro_assessment\": \"Neutrales Makroumfeld (flache Kurve, Fed Funds bei 3,64%) ist weder R\\u00fccken- noch Gegenwind. Die 10Y-Treasury-Rendite von 4,25% belastet jedoch hochbewertete Growth-Aktien strukturell via Diskontierungssatz \\u2014 AMD's Non-GAAP-Story tr\\u00e4gt dieses Umfeld besser als pure-play Unprofitable Tech, bleibt aber exponiert gegen\\u00fcber Rate-Repricing.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.5,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLK\",\n        \"rel_strength\": 0.1718\n      },\n      \"final_score\": 0.48,\n      \"time_value_efficiency\": {\n        \"roi_per_day\": 0.023936,\n        \"roi_per_day_pct\": 2.3936,\n        \"annualized_roi\": 1116.2981,\n        \"efficiency_label\": \"high\",\n        \"dte\": 22\n      },\n      \"trade_score\": {\n        \"total\": 52,\n        \"grade\": \"WATCH \\ud83d\\udfe0\",\n        \"grade_short\": \"WATCH\",\n        \"components\": {\n          \"signal_quality\": 21.9,\n          \"options_quality\": 30.0,\n          \"risk_deductions\": -20.0,\n          \"context_bonus\": 20.0\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=6/Surprise=5), guter ROI (53%), positive Sektor-Relative-St\\u00e4rke | Risiken: sehr hohe IV (100%) \\u2014 Optionen teuer, hohes Bear-Risiko (7/10)\",\n        \"best_argument_for\": \"Der Markt scheint den MI450-Launch als graduelles Upgrade zu behandeln, w\\u00e4hrend Insider-Cluster-K\\u00e4uf\",\n        \"best_argument_against\": \"Katalysator bereits eingepreist: Die +4,6% Bewegung in 48h und der MI450-Hype deuten darauf hin, das\"\n      },\n      \"trade_rank\": 2\n    },\n    {\n      \"ticker\": \"CTVA\",\n      \"strategy\": \"BULL_CALL_SPREAD\",\n      \"iv_rank\": 100.0,\n      \"iv_gate_applied\": true,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-05-15\",\n        \"strike\": 80.0,\n        \"bid\": 3.7,\n        \"ask\": 4.1,\n        \"open_interest\": 383,\n        \"implied_vol\": 0.36255520263671875,\n        \"spread_ratio\": 0.0976,\n        \"dte\": 29,\n        \"spread_leg\": {\n          \"strike\": 90.0,\n          \"bid\": 0.3,\n          \"ask\": 0.8\n        },\n        \"net_debit\": 3.8\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 1.1573,\n        \"roi_net\": 0.7645,\n        \"spread_pct\": 0.0976,\n        \"vega_loss\": 0.1977,\n        \"delta\": 0.5836,\n        \"iv_drop_assumed\": 0.25,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.15,\n        \"dte\": 29\n      },\n      \"dte_tier\": \"Short-Term\",\n      \"annualized_roi\": 1269.6656,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Short-Term\",\n          \"dte\": 29,\n          \"option\": {\n            \"expiry\": \"2026-05-15\",\n            \"strike\": 80.0,\n            \"bid\": 3.7,\n            \"ask\": 4.1,\n            \"open_interest\": 383,\n            \"implied_vol\": 0.36255520263671875,\n            \"spread_ratio\": 0.0976,\n            \"dte\": 29,\n            \"spread_leg\": {\n              \"strike\": 90.0,\n              \"bid\": 0.3,\n              \"ask\": 0.8\n            },\n            \"net_debit\": 3.8\n          },\n          \"roi\": {\n            \"roi_gross\": 1.1573,\n            \"roi_net\": 0.7645,\n            \"spread_pct\": 0.0976,\n            \"vega_loss\": 0.1977,\n            \"delta\": 0.5836,\n            \"iv_drop_assumed\": 0.25,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.15,\n            \"dte\": 29\n          },\n          \"annualized_roi\": 1269.6656,\n          \"strategy\": \"BULL_CALL_SPREAD\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"mismatch\": 5.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0149,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.97\n      },\n      \"simulation\": {\n        \"hit_rate\": 0.97,\n        \"stderr\": 0.0017,\n        \"n_paths\": 10000,\n        \"n_days\": 120,\n        \"days_to_expiry\": 120,\n        \"target_price\": 89.45,\n        \"current_price\": 81.32,\n        \"sigma_adj\": 0.0164,\n        \"sector\": \"Basic Materials\",\n        \"ema200\": {},\n        \"macd\": {\n          \"macd\": 1.3359,\n          \"signal\": 1.7096,\n          \"histogram\": -0.3737,\n          \"momentum_score\": -1.0,\n          \"data_available\": true\n        }\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Bewertungsrisiko nach 40% Rally: Der Artikel 'Is Corteva Still Reasonable After A 40% One-Year Share Price Rally?' signalisiert, dass die Aktie m\\u00f6glicherweise bereits fair bis \\u00fcberbewertet ist. Bei einem KGV auf Basis des bereinigten EPS von ~4.05 ergibt sich ein P/E von ~20x \\u2014 f\\u00fcr ein agrochemisches Unternehmen mit zyklischem Exposure durchaus ambitioniert. Das Alpha k\\u00f6nnte bereits verbraucht sein.\",\n          \"argument_2\": \"Management-Disruption als Risiko: Die Aufspaltung in zwei separate Einheiten (Crop Protection unter neuem CEO Kissam ab Juni 2026 und eine 'Advanced Seed and Genetics'-Gesellschaft) erzeugt erhebliche operative Unsicherheit. Spin-Off-Transitionen binden Management-Kapazit\\u00e4ten, verursachen Restrukturierungskosten und k\\u00f6nnen zu Kundenunsicherheit f\\u00fchren. Die 2-6 Monats-Periode ist genau das Fenster maximaler Disruption.\",\n          \"argument_3\": \"EPS-Divergenz und Datenqualit\\u00e4t: Die Diskrepanz zwischen yfinance EPS (4.05) und SEC EDGAR EPS (1.75) ist erheblich (2.3x Faktor) und deutet auf erhebliche Non-GAAP-Adjustierungen hin. Ohne Kenntnis der genauen Zusammensetzung ist unklar, wie nachhaltig die Ertragskraft ist. Zus\\u00e4tzlich der -2.6% Preisr\\u00fcckgang in 48h trotz positiver Insider-K\\u00e4ufe zeigt, dass der Markt die Restrukturierungs-News skeptisch aufnimmt.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Monte Carlo nicht durchgef\\u00fchrt (0 Pfade). Bei CTVA mit historischer Volatilit\\u00e4t im Bereich 25-35% f\\u00fcr einen Agrochemie-Titel w\\u00e4ren in einem 30-Tage-Fenster normalerweise ca. 40-60% Aufw\\u00e4rtspfade realistisch. Der fehlende MC-Check liefert keine verwertbare statistische Grundlage \\u2014 Vorsicht geboten.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"6 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt verarbeitet die Aufspaltungs-Ank\\u00fcndigung kurzfristig negativ (Unsicherheits-Discount), untersch\\u00e4tzt dabei m\\u00f6glicherweise den Sum-of-Parts-Value der zwei entstehenden fokussierten Unternehmen. Insider-Cluster-K\\u00e4ufe (4 Insider in 14 Tagen) trotz laufendem Preisr\\u00fcckgang signalisieren Insider\\u00fcberzeugung, dass der Markt \\u00fcberreagiert. Jedoch ist die Haiku-Einsch\\u00e4tzung 'n/a' zutreffend: Das Signal ist strategisch aber ohne klaren Short-Term-Katalysator, was einen Impact >6 nicht rechtfertigt.\",\n        \"catalyst\": \"Q1 2026 Earnings Report als erster Beweis f\\u00fcr operative Stabilit\\u00e4t w\\u00e4hrend der Restrukturierung; anschlie\\u00dfend konkrete Kapitalmarkt-Kommunikation zum Spin-Off-Timeline und Bewertungsrahmen beider Einheiten\",\n        \"bear_case\": \"Nach einer 40% Jahresrally mit laufendem Restrukturierungsrisiko und ambitionierter Bewertung k\\u00f6nnte der Q1-Earnings-Report bei jeder Guidance-Entt\\u00e4uschung einen erheblichen De-Rating-Effekt ausl\\u00f6sen \\u2014 typisches 'Sell the restructuring news'-Muster in zyklischen Sektoren.\",\n        \"macro_assessment\": \"Neutrales Makro-Umfeld (flache Kurve, Fed Funds bei 3.64%) ist f\\u00fcr CTVA nicht besonders unterst\\u00fctzend: Agrochemie profitiert wenig von Zinssenkungserwartungen, und ein schw\\u00e4cherer Agrar-Commodity-Zyklus (Mais, Soja) k\\u00f6nnte Saatgut/Crop-Protection-Nachfrage d\\u00e4mpfen. Keine signifikante Makro-Einschr\\u00e4nkung, aber auch kein struktureller R\\u00fcckenwind.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.5,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLB\",\n        \"rel_strength\": 0.0767\n      },\n      \"final_score\": 0.4,\n      \"time_value_efficiency\": {\n        \"roi_per_day\": 0.026362,\n        \"roi_per_day_pct\": 2.6362,\n        \"annualized_roi\": 1269.6656,\n        \"efficiency_label\": \"high\",\n        \"dte\": 29\n      },\n      \"trade_score\": {\n        \"total\": 46,\n        \"grade\": \"WATCH \\ud83d\\udfe0\",\n        \"grade_short\": \"WATCH\",\n        \"components\": {\n          \"signal_quality\": 17.9,\n          \"options_quality\": 23.5,\n          \"risk_deductions\": -15.0,\n          \"context_bonus\": 20.0\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=5/Surprise=4), guter ROI (76%), positive Sektor-Relative-St\\u00e4rke | Risiken: sehr hohe IV (100%) \\u2014 Optionen teuer\",\n        \"best_argument_for\": \"Der Markt verarbeitet die Aufspaltungs-Ank\\u00fcndigung kurzfristig negativ (Unsicherheits-Discount), unt\",\n        \"best_argument_against\": \"Bewertungsrisiko nach 40% Rally: Der Artikel 'Is Corteva Still Reasonable After A 40% One-Year Share\"\n      },\n      \"trade_rank\": 3\n    },\n    {\n      \"ticker\": \"ABT\",\n      \"strategy\": \"BULL_CALL_SPREAD\",\n      \"iv_rank\": 100.0,\n      \"iv_gate_applied\": true,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-08-21\",\n        \"strike\": 115.0,\n        \"bid\": 2.1,\n        \"ask\": 2.3,\n        \"open_interest\": 980,\n        \"implied_vol\": 0.27637442382812494,\n        \"spread_ratio\": 0.087,\n        \"dte\": 127,\n        \"spread_leg\": {\n          \"strike\": 125.0,\n          \"bid\": 0.7,\n          \"ask\": 0.8\n        },\n        \"net_debit\": 1.6\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 1.0955,\n        \"roi_net\": 0.5799,\n        \"spread_pct\": 0.087,\n        \"vega_loss\": 0.3417,\n        \"delta\": 0.248,\n        \"iv_drop_assumed\": 0.15,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.12,\n        \"dte\": 127\n      },\n      \"dte_tier\": \"Mid-Term\",\n      \"annualized_roi\": 2.7228,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Mid-Term\",\n          \"dte\": 127,\n          \"option\": {\n            \"expiry\": \"2026-08-21\",\n            \"strike\": 115.0,\n            \"bid\": 2.1,\n            \"ask\": 2.3,\n            \"open_interest\": 980,\n            \"implied_vol\": 0.27637442382812494,\n            \"spread_ratio\": 0.087,\n            \"dte\": 127,\n            \"spread_leg\": {\n              \"strike\": 125.0,\n              \"bid\": 0.7,\n              \"ask\": 0.8\n            },\n            \"net_debit\": 1.6\n          },\n          \"roi\": {\n            \"roi_gross\": 1.0955,\n            \"roi_net\": 0.5799,\n            \"spread_pct\": 0.087,\n            \"vega_loss\": 0.3417,\n            \"delta\": 0.248,\n            \"iv_drop_assumed\": 0.15,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.12,\n            \"dte\": 127\n          },\n          \"annualized_roi\": 2.7228,\n          \"strategy\": \"BULL_CALL_SPREAD\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 6.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0122,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.97\n      },\n      \"simulation\": {\n        \"hit_rate\": 0.97,\n        \"stderr\": 0.0017,\n        \"n_paths\": 10000,\n        \"n_days\": 120,\n        \"days_to_expiry\": 120,\n        \"target_price\": 111.72,\n        \"current_price\": 101.56,\n        \"sigma_adj\": 0.011,\n        \"sector\": \"Healthcare\",\n        \"ema200\": {},\n        \"macd\": {\n          \"macd\": -2.3053,\n          \"signal\": -2.4062,\n          \"histogram\": 0.1008,\n          \"momentum_score\": 0.3986,\n          \"data_available\": true\n        }\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Der Exact Sciences Deal ist ein komplexes M&A-Ereignis mit erheblicher Integrations- und Verw\\u00e4sserungsrisk. ABT zahlt m\\u00f6glicherweise einen Premium f\\u00fcr ein Unternehmen mit negativem Free Cash Flow, was kurzfristig die Margen belastet und die Bilanz strapaziert. Der Markt k\\u00f6nnte den Deal als overpriced einpreisen, sobald Details bekannt werden.\",\n          \"argument_2\": \"EPS-Diskrepanz zwischen yfinance (6.11) und SEC EDGAR (3.73) ist alarmierend \\u2014 eine Abweichung von ~64% bei EPS-Werten (nicht 0.3% wie angegeben, das ist offensichtlich falsch berechnet). Dies deutet auf erhebliche Non-GAAP-Adjustierungen hin, was die Bewertungsgrundlage untergr\\u00e4bt. Bei einem KGV basierend auf bereinigtem EPS k\\u00f6nnte ABT deutlich teurer sein als es erscheint.\",\n          \"argument_3\": \"Abbott hat bereits mehrere Legalrisiken (NEC-Klagen bzgl. Fr\\u00fchgeborenen-Formel). Ein Verdict in Zusammenhang mit dem Headline 'Abbott Verdict' deutet auf m\\u00f6gliche negative juristische Entwicklungen hin, die die Bewertung belasten k\\u00f6nnten. Das Newsflow-Signal 'reshape risk' k\\u00f6nnte genau dieses Downside-Risk reflektieren.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein MC durchgef\\u00fchrt \\u2014 0% Hit-Rate bedeutet hier 'keine Simulation verf\\u00fcgbar', nicht Nullwahrscheinlichkeit. Bei einem Bluechip-Healthcare-Titel wie ABT mit bekannter historischer Volatilit\\u00e4t von ~15-20% annualisiert w\\u00e4re eine 30-Tage-Bewegung von typisch \\u00b15-8% zu erwarten. Das Fehlen der MC-Statistik reduziert die quantitative Grundlage erheblich.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Cluster-Insider-K\\u00e4ufe von +$3.1M innerhalb von 14 Tagen sind ein starkes Signal, dass Management den aktuellen Kurs als unterbewertet sieht \\u2014 Insider haben Einblick in Q1-Zahlen und Deal-Synergien. Der Markt scheint den Exact Sciences Deal prim\\u00e4r als Risiko zu framen, untersch\\u00e4tzt aber m\\u00f6glicherweise die Wachstumsoption im Diagnostics-Bereich. ABT wird als 'oversold' eingestuft, was technisch und fundamental Aufholpotenzial signalisiert. ABWEICHUNG von Haiku: Haiku kategorisierte als 'n/a' (unklar), jedoch sprechen Insider-Cluster + oversold-Status + robustes Medical Business f\\u00fcr eine BULLISH-Einsch\\u00e4tzung trotz Deal-Risiken.\",\n        \"catalyst\": \"Q1 Earnings Release (Robuste Medical Device Performance erwartet) + potenzielle Klarheit zu Exact Sciences Deal-Konditionen und Synergien\",\n        \"bear_case\": \"Die EPS-Diskrepanz (~64% zwischen GAAP und Non-GAAP) kombiniert mit M&A-Verw\\u00e4sserung und laufenden NEC-Rechtsrisiken k\\u00f6nnte bei Q1-Earnings eine negative \\u00dcberraschung liefern, insbesondere wenn Deal-Kosten erstmals vollst\\u00e4ndig sichtbar werden.\",\n        \"macro_assessment\": \"Neutrales Makro-Umfeld (flache Kurve, Fed Funds bei 3.64%) ist f\\u00fcr Healthcare-Defensivsektoren moderat positiv \\u2014 ABT als Bluechip-Dividendentitel profitiert von stabilen Zinsen ohne Rezessionsdruck. Kein signifikanter Makro-Gegenwind, aber auch kein expansiver R\\u00fcckenwind f\\u00fcr aggressives Multiples-Expansion.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.5,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLV\",\n        \"rel_strength\": -0.0551\n      },\n      \"final_score\": 0.48,\n      \"time_value_efficiency\": {\n        \"roi_per_day\": 0.004566,\n        \"roi_per_day_pct\": 0.4566,\n        \"annualized_roi\": 2.7228,\n        \"efficiency_label\": \"medium\",\n        \"dte\": 127\n      },\n      \"trade_score\": {\n        \"total\": 42,\n        \"grade\": \"AVOID \\ud83d\\udd34\",\n        \"grade_short\": \"AVOID\",\n        \"components\": {\n          \"signal_quality\": 21.9,\n          \"options_quality\": 25.0,\n          \"risk_deductions\": -15.0,\n          \"context_bonus\": 10.0\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=6/Surprise=5), guter ROI (58%) | Risiken: sehr hohe IV (100%) \\u2014 Optionen teuer, Sektor underperformt\",\n        \"best_argument_for\": \"Cluster-Insider-K\\u00e4ufe von +$3.1M innerhalb von 14 Tagen sind ein starkes Signal, dass Management den\",\n        \"best_argument_against\": \"Der Exact Sciences Deal ist ein komplexes M&A-Ereignis mit erheblicher Integrations- und Verw\\u00e4sserun\"\n      },\n      \"trade_rank\": 4\n    },\n    {\n      \"ticker\": \"AMAT\",\n      \"strategy\": \"BULL_CALL_SPREAD\",\n      \"iv_rank\": 100.0,\n      \"iv_gate_applied\": true,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-05-08\",\n        \"strike\": 390.0,\n        \"bid\": 23.7,\n        \"ask\": 25.35,\n        \"open_interest\": 172,\n        \"implied_vol\": 0.5571333349609376,\n        \"spread_ratio\": 0.0651,\n        \"dte\": 22,\n        \"spread_leg\": {\n          \"strike\": 430.0,\n          \"bid\": 7.2,\n          \"ask\": 10.05\n        },\n        \"net_debit\": 18.15\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 0.8691,\n        \"roi_net\": 0.5291,\n        \"spread_pct\": 0.0651,\n        \"vega_loss\": 0.2099,\n        \"delta\": 0.5588,\n        \"iv_drop_assumed\": 0.25,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.15,\n        \"dte\": 22\n      },\n      \"dte_tier\": \"Short-Term\",\n      \"annualized_roi\": 1147.0454,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Short-Term\",\n          \"dte\": 22,\n          \"option\": {\n            \"expiry\": \"2026-05-08\",\n            \"strike\": 390.0,\n            \"bid\": 23.7,\n            \"ask\": 25.35,\n            \"open_interest\": 172,\n            \"implied_vol\": 0.5571333349609376,\n            \"spread_ratio\": 0.0651,\n            \"dte\": 22,\n            \"spread_leg\": {\n              \"strike\": 430.0,\n              \"bid\": 7.2,\n              \"ask\": 10.05\n            },\n            \"net_debit\": 18.15\n          },\n          \"roi\": {\n            \"roi_gross\": 0.8691,\n            \"roi_net\": 0.5291,\n            \"spread_pct\": 0.0651,\n            \"vega_loss\": 0.2099,\n            \"delta\": 0.5588,\n            \"iv_drop_assumed\": 0.25,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.15,\n            \"dte\": 22\n          },\n          \"annualized_roi\": 1147.0454,\n          \"strategy\": \"BULL_CALL_SPREAD\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"mismatch\": 5.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0344,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.97\n      },\n      \"simulation\": {\n        \"hit_rate\": 0.97,\n        \"stderr\": 0.0017,\n        \"n_paths\": 10000,\n        \"n_days\": 120,\n        \"days_to_expiry\": 120,\n        \"target_price\": 433.69,\n        \"current_price\": 394.26,\n        \"sigma_adj\": 0.0448,\n        \"sector\": \"Technology\",\n        \"ema200\": {},\n        \"macd\": {\n          \"macd\": 12.4673,\n          \"signal\": 7.7758,\n          \"histogram\": 4.6915,\n          \"momentum_score\": 1.0,\n          \"data_available\": true\n        }\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Tariff-Risiko direkt relevant: Die News \\u00fcber Supply-Chain-St\\u00f6rungen und verz\\u00f6gerte Zollr\\u00fcckerstattungen ($166 Mrd.) treffen AMAT als Halbleiter-Equipment-Hersteller mit globaler Lieferkette (China-Exposure ~30% Revenue) besonders hart. China-Exportbeschr\\u00e4nkungen bleiben strukturelles Risiko.\",\n          \"argument_2\": \"2nm-Tool-Ank\\u00fcndigung bereits eingepreist: AMAT kommuniziert regelm\\u00e4\\u00dfig \\u00fcber Technologie-Roadmaps. Bei einer Aktie, die bereits bei $394 notiert und in einem Sektor agiert, der 2024/2025 bereits stark gelaufen ist, d\\u00fcrfte ein 'neues Tool f\\u00fcr 2nm'-Statement keinen strukturellen \\u00dcberraschungseffekt mehr haben \\u2014 klassischer Katalysator-bereits-eingepreist-Fall.\",\n          \"argument_3\": \"EPS-Divergenz als Datenproblem: Die gemeldeten EPS-Quellen zeigen $14.01 (yfinance) vs. $9.73 (SEC EDGAR) \\u2014 das ist eine erhebliche Diskrepanz, die auf unterschiedliche Berechnungsbasen (GAAP vs. non-GAAP) hindeutet. Ohne Klarheit \\u00fcber die tats\\u00e4chliche Bewertungsbasis ist ein fairer Value-Check nicht m\\u00f6glich. Zudem: Keine Monte-Carlo-Daten verf\\u00fcgbar.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"MC wurde nicht durchgef\\u00fchrt (0 Pfade), daher 0% Hit-Rate ist nicht interpretierbar als bearisches Signal \\u2014 es fehlen schlicht Daten. F\\u00fcr AMAT mit historischer 30d-Volatilit\\u00e4t von ~35-40% annualisiert w\\u00e4re eine realistische Hit-Rate bei moderaten Ziellevels (z.B. +10%) im Bereich 40-55% zu erwarten. Keine statistischen R\\u00fcckenwind-Argumente m\\u00f6glich.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Insider-Cluster-K\\u00e4ufe (3 in 14 Tagen) bei gleichzeitiger 2nm-Tool-Ank\\u00fcndigung suggerieren, dass Management einen nahenden positiven Inflexionspunkt sieht, den der Markt angesichts Tariff-Noise und sektorweitem Sell-off untersch\\u00e4tzt. Der Markt preist aktuell Makro-Gegenwind \\u00fcber, w\\u00e4hrend das Equipment-Superzyklus-Narrativ (AI-CapEx-getrieben) strukturell intakt bleibt. Dennoch: China-Risiko und EPS-Unklarheit limitieren das Conviction-Level erheblich.\",\n        \"catalyst\": \"Q3 FY2025 Earnings + Management Commentary zu 2nm-Design-Win-Pipeline und China-Revenue-Outlook\",\n        \"bear_case\": \"Eskalation der US-China-Halbleiter-Exportbeschr\\u00e4nkungen k\\u00f6nnte AMAT-Revenue um 15-25% treffen und alle positiven Technologie-Signale \\u00fcberlagern.\",\n        \"macro_assessment\": \"Neutrales Makro-Umfeld (flache Kurve, Fed bei 3.64%) liefert keinen starken R\\u00fcckenwind, aber auch keinen strukturellen Gegenwind. Die Zinsbelastung f\\u00fcr kapitalintensive Halbleiter-Kunden (TSMC, Samsung Capex) bleibt moderat \\u2014 positiv f\\u00fcr Equipment-Nachfrage auf 2-6 Monate. Tariff-Unsicherheit ist der gr\\u00f6\\u00dfere Risikofaktor als das Zinsumfeld selbst.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.5,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLK\",\n        \"rel_strength\": -0.054\n      },\n      \"final_score\": 0.4,\n      \"time_value_efficiency\": {\n        \"roi_per_day\": 0.02405,\n        \"roi_per_day_pct\": 2.405,\n        \"annualized_roi\": 1147.0454,\n        \"efficiency_label\": \"high\",\n        \"dte\": 22\n      },\n      \"trade_score\": {\n        \"total\": 36,\n        \"grade\": \"AVOID \\ud83d\\udd34\",\n        \"grade_short\": \"AVOID\",\n        \"components\": {\n          \"signal_quality\": 17.9,\n          \"options_quality\": 23.5,\n          \"risk_deductions\": -15.0,\n          \"context_bonus\": 10.0\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=5/Surprise=4), guter ROI (53%) | Risiken: sehr hohe IV (100%) \\u2014 Optionen teuer, Sektor underperformt\",\n        \"best_argument_for\": \"Insider-Cluster-K\\u00e4ufe (3 in 14 Tagen) bei gleichzeitiger 2nm-Tool-Ank\\u00fcndigung suggerieren, dass Mana\",\n        \"best_argument_against\": \"Tariff-Risiko direkt relevant: Die News \\u00fcber Supply-Chain-St\\u00f6rungen und verz\\u00f6gerte Zollr\\u00fcckerstattun\"\n      },\n      \"trade_rank\": 5\n    }\n  ]\n}"
  },
  {
    "path": "outputs/daily_reports/2026-04-15.md",
    "content": "# Adaptive Asymmetry-Scanner – 2026-04-15\n\n**Generiert:** 2026-04-15 20:55 UTC\n**Trade-Vorschläge:** 5\n\n---\n## 1. AVGO – BULL_CALL_SPREAD\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.0675`  \n**IV-Rank:** 100.0  \n\n### Asymmetry-Analyse\n- **Impact:** 7/10\n- **Surprise:** 5/10\n- **Mismatch-Score:** 7.0\n- **Z-Score (48h):** 0.0\n- **EPS-Drift:** 0.0 (noise)\n\n**Mispricing-Logik:**  \n> N/A\n\n**Katalysator:** Bestätigung und Erweiterung des Multi-Jahr-Meta-AI-ASIC-Deals mit konkreten Umsatzimplikationen im nächsten Earnings-Call (Q2 FY2025), kombiniert mit Insider-Cluster-Käufen als Bestätigungssignal  \n**Time-to-Materialization:** 2-3 Monate  \n\n### Bear Case\n> Der Katalysator ist nach +4.5% in 48h weitgehend eingepreist; aggressive Non-GAAP-Adjustments (EPS-Abweichung yfinance vs. SEC) verschleiern die tatsächliche GAAP-Ertragskraft, und ein Rückgang der AI-Capex-Guidance bei Meta würde den Deal-Wert sofort in Frage stellen.  \n**Severity:** 5/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 97.0% (10,000 Pfade)\n- **Target-Preis:** $436.39\n- **Aktueller Preis:** $396.72\n- **σ (adj.):** 0.0364\n\n### Options-Vorschlag\n- **Expiry:** 2026-05-08 (22 DTE)\n- **Strike:** $390.00\n- **Bid/Ask:** $21.15 / $22.00\n- **Impl. Vol.:** 45.9%\n- **Open Interest:** 845\n- **Bid-Ask-Ratio:** 3.86%\n\n- **Short Strike:** $430.00  \n- **Short Bid/Ask:** $5.40 / $6.45\n\n---\n## 2. AMD – BULL_CALL_SPREAD\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.4800`  \n**IV-Rank:** 100.0  \n\n### Asymmetry-Analyse\n- **Impact:** 6/10\n- **Surprise:** 5/10\n- **Mismatch-Score:** 6.0\n- **Z-Score (48h):** 0.0\n- **EPS-Drift:** 0.0 (noise)\n\n**Mispricing-Logik:**  \n> N/A\n\n**Katalysator:** AMD MI450 Chip Launch mit konkreten Enterprise-Bestellungen/Partnerschaften — insbesondere hyperscaler-Commitments (Microsoft Azure, Meta, Oracle) als Adoption-Signal  \n**Time-to-Materialization:** 2-3 Monate  \n\n### Bear Case\n> GAAP-KGV von ~99x bei einem neutralen Makroumfeld lässt keinen Bewertungspuffer: Eine Verzögerung des MI450 oder schwache Erstadoption würde den +4,6% Vorlauf vollständig auflösen und AMD zurück Richtung $220-230 drücken.  \n**Severity:** 7/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 97.0% (10,000 Pfade)\n- **Target-Preis:** $283.93\n- **Aktueller Preis:** $258.12\n- **σ (adj.):** 0.0410\n\n### Options-Vorschlag\n- **Expiry:** 2026-05-08 (22 DTE)\n- **Strike:** $255.00\n- **Bid/Ask:** $17.05 / $17.75\n- **Impl. Vol.:** 60.2%\n- **Open Interest:** 1,187\n- **Bid-Ask-Ratio:** 3.94%\n\n- **Short Strike:** $280.00  \n- **Short Bid/Ask:** $7.30 / $7.55\n\n---\n## 3. CTVA – BULL_CALL_SPREAD\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.4000`  \n**IV-Rank:** 100.0  \n\n### Asymmetry-Analyse\n- **Impact:** 5/10\n- **Surprise:** 4/10\n- **Mismatch-Score:** 5.0\n- **Z-Score (48h):** 0.0\n- **EPS-Drift:** 0.0 (noise)\n\n**Mispricing-Logik:**  \n> N/A\n\n**Katalysator:** Q1 2026 Earnings Report als erster Beweis für operative Stabilität während der Restrukturierung; anschließend konkrete Kapitalmarkt-Kommunikation zum Spin-Off-Timeline und Bewertungsrahmen beider Einheiten  \n**Time-to-Materialization:** 6 Monate  \n\n### Bear Case\n> Nach einer 40% Jahresrally mit laufendem Restrukturierungsrisiko und ambitionierter Bewertung könnte der Q1-Earnings-Report bei jeder Guidance-Enttäuschung einen erheblichen De-Rating-Effekt auslösen — typisches 'Sell the restructuring news'-Muster in zyklischen Sektoren.  \n**Severity:** 6/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 97.0% (10,000 Pfade)\n- **Target-Preis:** $89.45\n- **Aktueller Preis:** $81.32\n- **σ (adj.):** 0.0164\n\n### Options-Vorschlag\n- **Expiry:** 2026-05-15 (29 DTE)\n- **Strike:** $80.00\n- **Bid/Ask:** $3.70 / $4.10\n- **Impl. Vol.:** 36.3%\n- **Open Interest:** 383\n- **Bid-Ask-Ratio:** 9.76%\n\n- **Short Strike:** $90.00  \n- **Short Bid/Ask:** $0.30 / $0.80\n\n---\n## 4. ABT – BULL_CALL_SPREAD\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.4800`  \n**IV-Rank:** 100.0  \n\n### Asymmetry-Analyse\n- **Impact:** 6/10\n- **Surprise:** 5/10\n- **Mismatch-Score:** 6.0\n- **Z-Score (48h):** 0.0\n- **EPS-Drift:** 0.0 (noise)\n\n**Mispricing-Logik:**  \n> N/A\n\n**Katalysator:** Q1 Earnings Release (Robuste Medical Device Performance erwartet) + potenzielle Klarheit zu Exact Sciences Deal-Konditionen und Synergien  \n**Time-to-Materialization:** 2-3 Monate  \n\n### Bear Case\n> Die EPS-Diskrepanz (~64% zwischen GAAP und Non-GAAP) kombiniert mit M&A-Verwässerung und laufenden NEC-Rechtsrisiken könnte bei Q1-Earnings eine negative Überraschung liefern, insbesondere wenn Deal-Kosten erstmals vollständig sichtbar werden.  \n**Severity:** 6/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 97.0% (10,000 Pfade)\n- **Target-Preis:** $111.72\n- **Aktueller Preis:** $101.56\n- **σ (adj.):** 0.0110\n\n### Options-Vorschlag\n- **Expiry:** 2026-08-21 (127 DTE)\n- **Strike:** $115.00\n- **Bid/Ask:** $2.10 / $2.30\n- **Impl. Vol.:** 27.6%\n- **Open Interest:** 980\n- **Bid-Ask-Ratio:** 8.70%\n\n- **Short Strike:** $125.00  \n- **Short Bid/Ask:** $0.70 / $0.80\n\n---\n## 5. AMAT – BULL_CALL_SPREAD\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.4000`  \n**IV-Rank:** 100.0  \n\n### Asymmetry-Analyse\n- **Impact:** 5/10\n- **Surprise:** 4/10\n- **Mismatch-Score:** 5.0\n- **Z-Score (48h):** 0.0\n- **EPS-Drift:** 0.0 (noise)\n\n**Mispricing-Logik:**  \n> N/A\n\n**Katalysator:** Q3 FY2025 Earnings + Management Commentary zu 2nm-Design-Win-Pipeline und China-Revenue-Outlook  \n**Time-to-Materialization:** 2-3 Monate  \n\n### Bear Case\n> Eskalation der US-China-Halbleiter-Exportbeschränkungen könnte AMAT-Revenue um 15-25% treffen und alle positiven Technologie-Signale überlagern.  \n**Severity:** 6/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 97.0% (10,000 Pfade)\n- **Target-Preis:** $433.69\n- **Aktueller Preis:** $394.26\n- **σ (adj.):** 0.0448\n\n### Options-Vorschlag\n- **Expiry:** 2026-05-08 (22 DTE)\n- **Strike:** $390.00\n- **Bid/Ask:** $23.70 / $25.35\n- **Impl. Vol.:** 55.7%\n- **Open Interest:** 172\n- **Bid-Ask-Ratio:** 6.51%\n\n- **Short Strike:** $430.00  \n- **Short Bid/Ask:** $7.20 / $10.05\n\n---\n## Modell-Gewichte (aktuell)\n- Impact: `0.35`\n- Mismatch: `0.45`\n- EPS-Drift: `0.20`\n\n_Automatisch generiert durch Adaptive Asymmetry-Scanner v3.5_"
  },
  {
    "path": "outputs/daily_reports/2026-04-16.json",
    "content": "{\n  \"date\": \"2026-04-16\",\n  \"proposals\": [\n    {\n      \"ticker\": \"ORCL\",\n      \"strategy\": \"BULL_CALL_SPREAD\",\n      \"iv_rank\": 100.0,\n      \"iv_gate_applied\": true,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-05-08\",\n        \"strike\": 175.0,\n        \"bid\": 10.7,\n        \"ask\": 11.1,\n        \"open_interest\": 1445,\n        \"implied_vol\": 0.5363815893554689,\n        \"spread_ratio\": 0.036,\n        \"dte\": 21,\n        \"spread_leg\": {\n          \"strike\": 195.0,\n          \"bid\": 3.5,\n          \"ask\": 3.85\n        },\n        \"net_debit\": 7.6\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 0.9191,\n        \"roi_net\": 0.645,\n        \"spread_pct\": 0.036,\n        \"vega_loss\": 0.202,\n        \"delta\": 0.5738,\n        \"iv_drop_assumed\": 0.25,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.15,\n        \"dte\": 21\n      },\n      \"dte_tier\": \"Short-Term\",\n      \"annualized_roi\": 5716.014,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Short-Term\",\n          \"dte\": 21,\n          \"option\": {\n            \"expiry\": \"2026-05-08\",\n            \"strike\": 175.0,\n            \"bid\": 10.7,\n            \"ask\": 11.1,\n            \"open_interest\": 1445,\n            \"implied_vol\": 0.5363815893554689,\n            \"spread_ratio\": 0.036,\n            \"dte\": 21,\n            \"spread_leg\": {\n              \"strike\": 195.0,\n              \"bid\": 3.5,\n              \"ask\": 3.85\n            },\n            \"net_debit\": 7.6\n          },\n          \"roi\": {\n            \"roi_gross\": 0.9191,\n            \"roi_net\": 0.645,\n            \"spread_pct\": 0.036,\n            \"vega_loss\": 0.202,\n            \"delta\": 0.5738,\n            \"iv_drop_assumed\": 0.25,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.15,\n            \"dte\": 21\n          },\n          \"annualized_roi\": 5716.014,\n          \"strategy\": \"BULL_CALL_SPREAD\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 6.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0366,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.97\n      },\n      \"simulation\": {\n        \"hit_rate\": 0.97,\n        \"stderr\": 0.0017,\n        \"n_paths\": 10000,\n        \"n_days\": 120,\n        \"days_to_expiry\": 120,\n        \"target_price\": 195.54,\n        \"current_price\": 177.76,\n        \"sigma_adj\": 0.0476,\n        \"sector\": \"Technology\",\n        \"ema200\": {},\n        \"macd\": {\n          \"macd\": 2.9543,\n          \"signal\": -1.0516,\n          \"histogram\": 4.0059,\n          \"momentum_score\": 1.0,\n          \"data_available\": true\n        }\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Der Kurs ist bereits +9.1% in 48h gestiegen \\u2014 der AWS-Deal ist damit weitgehend eingepreist. Bei einer Forward-P/E von ~30x und einem EPS-Discrepancy zwischen yfinance ($7.97) und SEC EDGAR ($5.81) von 37% besteht erhebliches \\u00dcberbewertungsrisiko. Anleger, die jetzt einsteigen, kaufen nach dem Move.\",\n          \"argument_2\": \"EPS-Abweichung von 37% zwischen yfinance und SEC EDGAR ist ein erhebliches Datenqualit\\u00e4tsproblem. Basiert die Bewertung auf Non-GAAP-Adjustments, die das tats\\u00e4chliche GAAP-Ergebnis massiv \\u00fcberzeichnen? ORCL hat historisch aggressive Aktienr\\u00fcckk\\u00e4ufe und M&A-Amortisierung, was GAAP-EPS strukturell dr\\u00fcckt \\u2014 die 'fundamentale St\\u00e4rke' des Deals k\\u00f6nnte optisch besser wirken als sie ist.\",\n          \"argument_3\": \"Cloud-Partnerschaften mit AWS sind grunds\\u00e4tzlich zweischneidig: Oracle konkurriert direkt mit AWS in der Cloud-Datenbank-Infrastruktur. Eine tiefere AWS-Integration k\\u00f6nnte Oracle-eigene Cloud-Migrationsbem\\u00fchungen (OCI) kannibalisieren und langfristig die Marge von OCI unter Druck setzen. Der 'strategische Deal' k\\u00f6nnte ein Zugest\\u00e4ndnis an AWS-Marktmacht sein.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein MC durchgef\\u00fchrt (0 Pfade) \\u2014 keine statistische Validierung m\\u00f6glich. Bei einem Kurs von $177.72 nach +9.1% in 48h und typischer 30-Tage-Volatilit\\u00e4t von ORCL (~25-30% annualisiert) w\\u00e4re eine Momentum-Fortsetzung zwar plausibel, aber ohne MC-Daten bleibt das Confidence-Level niedrig. Die fehlende Simulation ist ein Datenmangel, kein Signal.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt hat zwar mit +9.1% reagiert, aber die strukturelle Bedeutung des AWS-Deals f\\u00fcr ORCLs AI-Infrastruktur-Positionierung (Oracle Database auf Multi-Cloud-Plattformen) k\\u00f6nnte noch nicht vollst\\u00e4ndig in den Konsenssch\\u00e4tzungen reflektiert sein. Insider-Cluster-K\\u00e4ufe von 6 Personen in 14 Tagen signalisieren Insider-Conviction jenseits des einmaligen News-Events. Allerdings weiche ich von einer st\\u00e4rkeren Bewertung ab, weil der +9.1%-Move erheblich von der urspr\\u00fcnglichen Underreaction wegfrisst.\",\n        \"catalyst\": \"Amazon AWS Cloud Deal \\u2014 strategische Multi-Cloud-Partnerschaft f\\u00fcr Oracle Database Services auf AWS-Infrastruktur, kombiniert mit AI/GPU-Nachfragesog f\\u00fcr Oracle Cloud Infrastructure (OCI)\",\n        \"bear_case\": \"Mit +9.1% bereits bewegt und Forward-P/E ~30x auf fragw\\u00fcrdiger Non-GAAP-Basis ist der Einstieg nach dem Move asymmetrisch ung\\u00fcnstig; ein schwaches n\\u00e4chstes Quartal oder Makro-Schock k\\u00f6nnte den gesamten Gain revidieren.\",\n        \"macro_assessment\": \"Expansives Umfeld mit steiler Zinskurve (+0.53%) und Fed Funds bei 3.64% ist konstruktiv f\\u00fcr Tech-Largecaps. Niedrigere Refinanzierungskosten beg\\u00fcnstigen ORCLs schuldenfinanzierte Buyback-Strategie. Das Makro-R\\u00fcckenwind-Argument st\\u00fctzt eine moderate BULLISH-Positionierung, aber rechtfertigt keine aggressive \\u00dcbergewichtung nach dem Kurssprung.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.53,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLK\",\n        \"rel_strength\": 0.1104\n      },\n      \"final_score\": 0.48,\n      \"time_value_efficiency\": {\n        \"roi_per_day\": 0.030714,\n        \"roi_per_day_pct\": 3.0714,\n        \"annualized_roi\": 5716.014,\n        \"efficiency_label\": \"high\",\n        \"dte\": 21\n      },\n      \"trade_score\": {\n        \"total\": 62,\n        \"grade\": \"BUY \\ud83d\\udfe1\",\n        \"grade_short\": \"BUY\",\n        \"components\": {\n          \"signal_quality\": 21.9,\n          \"options_quality\": 30.0,\n          \"risk_deductions\": -15.0,\n          \"context_bonus\": 25.0\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=6/Surprise=5), guter ROI (64%), positive Sektor-Relative-St\\u00e4rke | Risiken: sehr hohe IV (100%) \\u2014 Optionen teuer\",\n        \"best_argument_for\": \"Der Markt hat zwar mit +9.1% reagiert, aber die strukturelle Bedeutung des AWS-Deals f\\u00fcr ORCLs AI-In\",\n        \"best_argument_against\": \"Der Kurs ist bereits +9.1% in 48h gestiegen \\u2014 der AWS-Deal ist damit weitgehend eingepreist. Bei ein\"\n      },\n      \"trade_rank\": 1\n    }\n  ]\n}"
  },
  {
    "path": "outputs/daily_reports/2026-04-16.md",
    "content": "# Adaptive Asymmetry-Scanner – 2026-04-16\n\n**Generiert:** 2026-04-16 18:53 UTC\n**Trade-Vorschläge:** 1\n\n---\n## 1. ORCL – BULL_CALL_SPREAD\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.4800`  \n**IV-Rank:** 100.0  \n\n### Asymmetry-Analyse\n- **Impact:** 6/10\n- **Surprise:** 5/10\n- **Mismatch-Score:** 6.0\n- **Z-Score (48h):** 0.0\n- **EPS-Drift:** 0.0 (noise)\n\n**Mispricing-Logik:**  \n> N/A\n\n**Katalysator:** Amazon AWS Cloud Deal — strategische Multi-Cloud-Partnerschaft für Oracle Database Services auf AWS-Infrastruktur, kombiniert mit AI/GPU-Nachfragesog für Oracle Cloud Infrastructure (OCI)  \n**Time-to-Materialization:** 2-3 Monate  \n\n### Bear Case\n> Mit +9.1% bereits bewegt und Forward-P/E ~30x auf fragwürdiger Non-GAAP-Basis ist der Einstieg nach dem Move asymmetrisch ungünstig; ein schwaches nächstes Quartal oder Makro-Schock könnte den gesamten Gain revidieren.  \n**Severity:** 6/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 97.0% (10,000 Pfade)\n- **Target-Preis:** $195.54\n- **Aktueller Preis:** $177.76\n- **σ (adj.):** 0.0476\n\n### Options-Vorschlag\n- **Expiry:** 2026-05-08 (21 DTE)\n- **Strike:** $175.00\n- **Bid/Ask:** $10.70 / $11.10\n- **Impl. Vol.:** 53.6%\n- **Open Interest:** 1,445\n- **Bid-Ask-Ratio:** 3.60%\n\n- **Short Strike:** $195.00  \n- **Short Bid/Ask:** $3.50 / $3.85\n\n---\n## Modell-Gewichte (aktuell)\n- Impact: `0.35`\n- Mismatch: `0.45`\n- EPS-Drift: `0.20`\n\n_Automatisch generiert durch Adaptive Asymmetry-Scanner v3.5_"
  },
  {
    "path": "outputs/daily_reports/2026-04-17.json",
    "content": "{\n  \"date\": \"2026-04-17\",\n  \"proposals\": [\n    {\n      \"ticker\": \"SCHW\",\n      \"strategy\": \"BULL_CALL_SPREAD\",\n      \"iv_rank\": 100.0,\n      \"iv_gate_applied\": true,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-05-15\",\n        \"strike\": 95.0,\n        \"bid\": 1.79,\n        \"ask\": 1.88,\n        \"open_interest\": 3138,\n        \"implied_vol\": 0.2866282275390625,\n        \"spread_ratio\": 0.0479,\n        \"dte\": 27,\n        \"spread_leg\": {\n          \"strike\": 105.0,\n          \"bid\": 0.16,\n          \"ask\": 0.25\n        },\n        \"net_debit\": 1.72\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 1.5305,\n        \"roi_net\": 1.0668,\n        \"spread_pct\": 0.0479,\n        \"vega_loss\": 0.368,\n        \"delta\": 0.3883,\n        \"iv_drop_assumed\": 0.25,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.15,\n        \"dte\": 27\n      },\n      \"dte_tier\": \"Short-Term\",\n      \"annualized_roi\": 18295.4981,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Short-Term\",\n          \"dte\": 27,\n          \"option\": {\n            \"expiry\": \"2026-05-15\",\n            \"strike\": 95.0,\n            \"bid\": 1.79,\n            \"ask\": 1.88,\n            \"open_interest\": 3138,\n            \"implied_vol\": 0.2866282275390625,\n            \"spread_ratio\": 0.0479,\n            \"dte\": 27,\n            \"spread_leg\": {\n              \"strike\": 105.0,\n              \"bid\": 0.16,\n              \"ask\": 0.25\n            },\n            \"net_debit\": 1.72\n          },\n          \"roi\": {\n            \"roi_gross\": 1.5305,\n            \"roi_net\": 1.0668,\n            \"spread_pct\": 0.0479,\n            \"vega_loss\": 0.368,\n            \"delta\": 0.3883,\n            \"iv_drop_assumed\": 0.25,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.15,\n            \"dte\": 27\n          },\n          \"annualized_roi\": 18295.4981,\n          \"strategy\": \"BULL_CALL_SPREAD\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 6.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0184,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.5654\n      },\n      \"simulation\": {\n        \"current_price\": 92.64,\n        \"target_price\": 100.05,\n        \"hit_rate\": 0.8812,\n        \"n_paths\": 10000,\n        \"days\": 120,\n        \"sigma\": 0.0164,\n        \"alpha\": 0.00223\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Der -7.8%-Kursr\\u00fcckgang in 48h trotz positiver News (Dual PT-Erh\\u00f6hungen, Record Revenues) deutet auf erheblichen Verkaufsdruck hin, m\\u00f6glicherweise ausgel\\u00f6st durch Robinhood-Konkurrenz im Crypto-Segment \\u2013 der Markt k\\u00f6nnte bereits eingepreist haben, dass SCHW im Crypto-Wettbewerb strukturell benachteiligt ist.\",\n          \"argument_2\": \"Schwabs Kerngesch\\u00e4ft (Brokerage, Zinsertr\\u00e4ge aus Cash-Sweeps) steht unter Druck, wenn Zinsen weiter sinken: Bei Fed Funds Rate 3.64% und m\\u00f6glichen weiteren Cuts schrumpft die Net Interest Margin, die ~40-50% des Umsatzes ausmacht \\u2013 der Crypto-Launch kann diesen strukturellen Gegenwind kaum kompensieren.\",\n          \"argument_3\": \"EPS-Divergenz (yfinance 6.95 vs. SEC EDGAR 4.65) ist erheblich und fragw\\u00fcrdig \\u2013 wenn die 'echte' Ertragsbasis n\\u00e4her an 4.65 liegt, ist SCHW bei ~92$ auf Basis adjustierter Zahlen deutlich teurer bewertet als kommuniziert, was institutionelle Investoren m\\u00f6glicherweise bereits erkannt haben und aussteigen.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"0% Hit-Rate bedeutet kein MC durchgef\\u00fchrt \\u2013 keine statistischen Prognose-Informationen verf\\u00fcgbar. Dies erh\\u00f6ht Unsicherheit, bedeutet aber nicht per se Negativsignal. Angesichts der historischen Volatilit\\u00e4t bei Finanzwerten und dem scharfen 48h-Drop erscheint eine Erholung auf 30d-Basis plausibel, aber ohne quantitative Untermauerung bleibt die Konfidenz niedrig.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"4-8 Wochen\",\n        \"asymmetry_reasoning\": \"Der Markt \\u00fcberreagiert auf Robinhood-Konkurrenzangst und vernachl\\u00e4ssigt das Cluster-Insider-Kaufsignal (5 Insider in 14 Tagen) sowie Dual Price Target-Erh\\u00f6hungen von Tier-1-Banken, was auf fundamentale Unterbewertung hindeutet. Der -7.8%-Drop erscheint \\u00fcberproportional zur tats\\u00e4chlichen Bedrohung durch den Crypto-Launch von Robinhood. Die SEC-Regel\\u00e4nderung beg\\u00fcnstigt SCHW strukturell ebenso und er\\u00f6ffnet eine neue Umsatzkategorie mit vergleichsweise niedrigem Marginalaufwand.\",\n        \"catalyst\": \"SCHW-eigener Crypto-Trading-Launch (SEC-Regel\\u00e4nderung) + Insider-Cluster-K\\u00e4ufe als Kontraindikator zum Kursr\\u00fcckgang + m\\u00f6gliche Q2-Earnings-\\u00dcberraschung auf Basis Record-Revenue-Trend\",\n        \"bear_case\": \"Signifikanter R\\u00fcckgang der Net Interest Income bei weiteren Fed-Cuts trifft Kerngesch\\u00e4ft st\\u00e4rker als Crypto-Gewinne kompensieren k\\u00f6nnen; EPS-Diskrepanz signalisiert m\\u00f6gliche Qualit\\u00e4tsprobleme bei den Earnings\",\n        \"macro_assessment\": \"Expansives Makro-Umfeld (steile Kurve +0.54%, moderate Fed Funds Rate 3.64%) beg\\u00fcnstigt grunds\\u00e4tzlich Finanzwerte und Long-Positionen. Allerdings ist f\\u00fcr SCHW spezifisch zu beachten, dass bei weiter sinkenden Kurzfristzinsen (Fed-Cuts-Erwartungen) die Cash-Sweep-Ertr\\u00e4ge leiden \\u2013 das Makro ist supportiv f\\u00fcr den Sektor, aber nicht uneingeschr\\u00e4nkt f\\u00fcr SCHWs Ertragsmodell.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.54,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLF\",\n        \"rel_strength\": -0.0581\n      },\n      \"final_score\": 0.48,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 3.9511,\n        \"annualized_roi\": null,\n        \"dte\": 27\n      },\n      \"trade_score\": {\n        \"total\": 52,\n        \"grade\": \"WATCH \\ud83d\\udfe0\",\n        \"grade_short\": \"WATCH\",\n        \"components\": {\n          \"signal_quality\": 21.9,\n          \"options_quality\": 30.0,\n          \"risk_deductions\": -15.0,\n          \"context_bonus\": 15.0\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=6/Surprise=5), guter ROI (107%), expansives Makro-Umfeld | Risiken: sehr hohe IV (100%) \\u2014 Optionen teuer, Sektor underperformt\",\n        \"best_argument_for\": \"Der Markt \\u00fcberreagiert auf Robinhood-Konkurrenzangst und vernachl\\u00e4ssigt das Cluster-Insider-Kaufsign\",\n        \"best_argument_against\": \"Der -7.8%-Kursr\\u00fcckgang in 48h trotz positiver News (Dual PT-Erh\\u00f6hungen, Record Revenues) deutet auf \"\n      },\n      \"trade_rank\": 1\n    }\n  ]\n}"
  },
  {
    "path": "outputs/daily_reports/2026-04-17.md",
    "content": "# Adaptive Asymmetry-Scanner – 2026-04-17\n\n**Generiert:** 2026-04-17 17:42 UTC\n**Trade-Vorschläge:** 1\n\n---\n## 1. SCHW – BULL_CALL_SPREAD\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.4800`  \n**IV-Rank:** 100.0  \n\n### Asymmetry-Analyse\n- **Impact:** 6/10\n- **Surprise:** 5/10\n- **Mismatch-Score:** 6.0\n- **Z-Score (48h):** 0.0\n- **EPS-Drift:** 0.0 (noise)\n\n**Mispricing-Logik:**  \n> N/A\n\n**Katalysator:** SCHW-eigener Crypto-Trading-Launch (SEC-Regeländerung) + Insider-Cluster-Käufe als Kontraindikator zum Kursrückgang + mögliche Q2-Earnings-Überraschung auf Basis Record-Revenue-Trend  \n**Time-to-Materialization:** 4-8 Wochen  \n\n### Bear Case\n> Signifikanter Rückgang der Net Interest Income bei weiteren Fed-Cuts trifft Kerngeschäft stärker als Crypto-Gewinne kompensieren können; EPS-Diskrepanz signalisiert mögliche Qualitätsprobleme bei den Earnings  \n**Severity:** 6/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 88.1% (10,000 Pfade)\n- **Target-Preis:** $100.05\n- **Aktueller Preis:** $92.64\n- **σ (adj.):** 0.0000\n\n### Options-Vorschlag\n- **Expiry:** 2026-05-15 (27 DTE)\n- **Strike:** $95.00\n- **Bid/Ask:** $1.79 / $1.88\n- **Impl. Vol.:** 28.7%\n- **Open Interest:** 3,138\n- **Bid-Ask-Ratio:** 4.79%\n\n- **Short Strike:** $105.00  \n- **Short Bid/Ask:** $0.16 / $0.25\n\n---\n## Modell-Gewichte (aktuell)\n- Impact: `0.35`\n- Mismatch: `0.45`\n- EPS-Drift: `0.20`\n\n_Automatisch generiert durch Adaptive Asymmetry-Scanner v3.5_"
  },
  {
    "path": "outputs/daily_reports/2026-04-20.json",
    "content": "{\n  \"date\": \"2026-04-20\",\n  \"proposals\": [\n    {\n      \"ticker\": \"HOOD\",\n      \"strategy\": \"BULL_CALL_SPREAD\",\n      \"iv_rank\": 100.0,\n      \"iv_gate_applied\": true,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-05-15\",\n        \"strike\": 90.0,\n        \"bid\": 7.0,\n        \"ask\": 7.1,\n        \"open_interest\": 11387,\n        \"implied_vol\": 0.7180203979492188,\n        \"spread_ratio\": 0.0141,\n        \"dte\": 24,\n        \"spread_leg\": {\n          \"strike\": 100.0,\n          \"bid\": 3.35,\n          \"ask\": 3.45\n        },\n        \"net_debit\": 3.75\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 0.5548,\n        \"roi_net\": 0.2944,\n        \"spread_pct\": 0.0141,\n        \"vega_loss\": 0.2322,\n        \"delta\": 0.5448,\n        \"iv_drop_assumed\": 0.25,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.15,\n        \"dte\": 24\n      },\n      \"dte_tier\": \"Short-Term\",\n      \"annualized_roi\": 49.6262,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Short-Term\",\n          \"dte\": 24,\n          \"option\": {\n            \"expiry\": \"2026-05-15\",\n            \"strike\": 90.0,\n            \"bid\": 7.0,\n            \"ask\": 7.1,\n            \"open_interest\": 11387,\n            \"implied_vol\": 0.7180203979492188,\n            \"spread_ratio\": 0.0141,\n            \"dte\": 24,\n            \"spread_leg\": {\n              \"strike\": 100.0,\n              \"bid\": 3.35,\n              \"ask\": 3.45\n            },\n            \"net_debit\": 3.75\n          },\n          \"roi\": {\n            \"roi_gross\": 0.5548,\n            \"roi_net\": 0.2944,\n            \"spread_pct\": 0.0141,\n            \"vega_loss\": 0.2322,\n            \"delta\": 0.5448,\n            \"iv_drop_assumed\": 0.25,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.15,\n            \"dte\": 24\n          },\n          \"annualized_roi\": 49.6262,\n          \"strategy\": \"BULL_CALL_SPREAD\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 7,\n        \"surprise\": 6,\n        \"mismatch\": 7.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0414,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"strong\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.6522\n      },\n      \"simulation\": {\n        \"current_price\": 90.34,\n        \"target_price\": 97.57,\n        \"hit_rate\": 0.7152,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0454,\n        \"alpha\": 0.00034\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"HOOD hat innerhalb von 48 Stunden bereits +4,1% zugelegt und Mizuho hat das Kursziel auf $115 angehoben \\u2014 beides deutet darauf hin, dass der Katalysator (SEC Pattern Day Trader Rule Change) m\\u00f6glicherweise bereits weitgehend eingepreist ist. Optionsk\\u00e4ufer, die jetzt einsteigen, zahlen erh\\u00f6hte implizite Volatilit\\u00e4t auf einem bereits gestiegenen Kurs, was den IV-Crush nach dem ersten Nachrichtenrausch erheblich verst\\u00e4rkt.\",\n          \"argument_2\": \"HOOD handelt bei $90.34 mit einem EPS von ~$2.05\\u20132.69, was einem KGV von 33\\u201344x entspricht \\u2014 eine ambitionierte Bewertung f\\u00fcr ein Unternehmen, dessen Kerngesch\\u00e4ft stark von Retail-Trader-Aktivit\\u00e4t und Marktsentiment abh\\u00e4ngt. Sollte die Marktvolatilit\\u00e4t sinken oder Retail-Interesse nachlassen (wie nach 2021 gesehen), k\\u00f6nnte die Umsatzbasis schnell kollabieren und die hohe Bewertung nicht mehr rechtfertigbar sein.\",\n          \"argument_3\": \"Die SEC Pattern Day Trader Rule ist ein regulatorisches Signal, das von der Beh\\u00f6rde auch revidiert oder verz\\u00f6gert werden kann \\u2014 regulatorische Unsicherheiten in den USA sind derzeit hoch. Zudem ist die eigentliche Umsetzung und Monetarisierung neuer Kundensegmente ein mehrstufiger Prozess, der 12\\u201324 Monate ben\\u00f6tigt, was weit \\u00fcber den mittelfristigen Horizont von 2\\u20136 Monaten hinausgeht.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Quick MC wurde nicht durchgef\\u00fchrt (0 Pfade), daher ist die 0% Hit-Rate kein echtes statistisches Ergebnis sondern ein Datenl\\u00fccken-Artefakt. Bei HOOD mit historischer Volatilit\\u00e4t von typischerweise 60\\u201380% annualisiert w\\u00e4re eine realistische 30-Tage-Hit-Rate f\\u00fcr bullische Szenarien (z.B. +10%) im Bereich 40\\u201355% zu erwarten. Das Fehlen des MC ist keine Warnung gegen den Trade, aber das Modell liefert keine quantitative Unterst\\u00fctzung.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 7,\n        \"surprise\": 6,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 5,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt hat die SEC Pattern Day Trader Rule Change m\\u00f6glicherweise als inkrementelles regulatorisches Update untersch\\u00e4tzt, obwohl sie strukturell neue Nutzerkohorten f\\u00fcr HOOD erschlie\\u00dft \\u2014 besonders j\\u00fcngere, aktivere Trader mit kleineren Konten, die bislang durch die $25.000-Mindestanforderung ausgeschlossen waren. Das Insider-Cluster-Signal (4 K\\u00e4ufe in 14 Tagen) kombiniert mit dem Mizuho-Upgrade und der Konkurrenz-Analyse gegen\\u00fcber Schwab legt nahe, dass institutionelle und informierte Akteure das Potenzial breiter sehen als der aktuelle Kurs widerspiegelt. Im expansiven Makro-Umfeld mit steiler Zinskurve profitiert HOOD zus\\u00e4tzlich vom zinsbedingten Spread auf Cash-Best\\u00e4nde der Kunden. Die Kombination aus regulatorischem Katalysator, Insider-K\\u00e4ufen und expansivem Umfeld schafft eine asymmetrische Ausgangslage, sofern man nicht auf dem bereits gestiegenen +4,1%-Kurs \\u00fcberteuertes Premium zahlt.\",\n        \"catalyst\": \"SEC Pattern Day Trader Rule Change \\u2014 Senkung/Abschaffung der $25.000-Mindestkapitalgrenze, die HOOD neue Kundensegmente (kleinere Retail-Trader) erschlie\\u00dft und Marktanteilsgewinne gegen\\u00fcber etablierten Brokern wie Schwab erm\\u00f6glicht\",\n        \"bear_case\": \"Katalysator bereits eingepreist (+4,1% in 48h, Mizuho-Upgrade \\u00f6ffentlich bekannt), kombiniert mit ambitionierter Bewertung (KGV 33\\u201344x) und dem Risiko einer regulatorischen Verz\\u00f6gerung oder Revision der Regel, was den Kurs schnell wieder auf $75\\u201380 zur\\u00fcckwerfen k\\u00f6nnte\",\n        \"macro_assessment\": \"Das expansive Makro-Umfeld (steile Kurve +0,55%, Fed Funds bei 3,64%) ist klar positiv f\\u00fcr HOOD: Retail-Trader sind in Risk-On-Phasen aktiver, HOOD verdient an Cash-Spreads, und das Kreditumfeld belastet nicht. Keine Rezessionswarnung, keine invertierte Kurve \\u2014 das Makro unterst\\u00fctzt den bullischen Case und erlaubt eine vollgewichtete Einsch\\u00e4tzung des strukturellen Signals.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.55,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLF\",\n        \"rel_strength\": 0.1162\n      },\n      \"final_score\": 0.1065,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 1.2267,\n        \"annualized_roi\": null,\n        \"dte\": 24\n      },\n      \"trade_score\": {\n        \"total\": 71,\n        \"grade\": \"BUY \\ud83d\\udfe1\",\n        \"grade_short\": \"BUY\",\n        \"components\": {\n          \"signal_quality\": 25.9,\n          \"options_quality\": 29.7,\n          \"risk_deductions\": -10.0,\n          \"context_bonus\": 25.0\n        },\n        \"reasoning\": \"St\\u00e4rken: starkes Signal (Impact=7/Surprise=6), guter ROI (29%), positive Sektor-Relative-St\\u00e4rke | Risiken: hohe IV (100%) \\u2014 Optionen teuer\",\n        \"best_argument_for\": \"Der Markt hat die SEC Pattern Day Trader Rule Change m\\u00f6glicherweise als inkrementelles regulatorisches Update untersch\\u00e4tzt, obwohl sie strukturell neue Nutzerkohorten f\\u00fcr HOOD erschlie\\u00dft \\u2014 besonders j\\u00fcngere, aktivere Trader mit kleineren Konten, die bislang durch die $25.000-Mindestanforderung ausgeschlossen waren. Das Insider-Cluster-Signal (4 K\\u00e4ufe in 14 Tagen) kombiniert mit dem Mizuho-Upgrade \",\n        \"best_argument_against\": \"HOOD hat innerhalb von 48 Stunden bereits +4,1% zugelegt und Mizuho hat das Kursziel auf $115 angehoben \\u2014 beides deutet darauf hin, dass der Katalysator (SEC Pattern Day Trader Rule Change) m\\u00f6glicherweise bereits weitgehend eingepreist ist. Optionsk\\u00e4ufer, die jetzt einsteigen, zahlen erh\\u00f6hte implizite Volatilit\\u00e4t auf einem bereits gestiegenen Kurs, was den IV-Crush nach dem ersten Nachrichtenrausc\"\n      },\n      \"trade_rank\": 1\n    },\n    {\n      \"ticker\": \"ON\",\n      \"strategy\": \"BULL_CALL_SPREAD\",\n      \"iv_rank\": 100.0,\n      \"iv_gate_applied\": true,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-05-15\",\n        \"strike\": 85.0,\n        \"bid\": 5.9,\n        \"ask\": 6.15,\n        \"open_interest\": 3117,\n        \"implied_vol\": 0.6499058447265625,\n        \"spread_ratio\": 0.0407,\n        \"dte\": 24,\n        \"spread_leg\": {\n          \"strike\": 95.0,\n          \"bid\": 2.32,\n          \"ask\": 2.62\n        },\n        \"net_debit\": 3.83\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 0.5948,\n        \"roi_net\": 0.2844,\n        \"spread_pct\": 0.0407,\n        \"vega_loss\": 0.2291,\n        \"delta\": 0.5371,\n        \"iv_drop_assumed\": 0.25,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.15,\n        \"dte\": 24\n      },\n      \"dte_tier\": \"Short-Term\",\n      \"annualized_roi\": 43.9936,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Short-Term\",\n          \"dte\": 24,\n          \"option\": {\n            \"expiry\": \"2026-05-15\",\n            \"strike\": 85.0,\n            \"bid\": 5.9,\n            \"ask\": 6.15,\n            \"open_interest\": 3117,\n            \"implied_vol\": 0.6499058447265625,\n            \"spread_ratio\": 0.0407,\n            \"dte\": 24,\n            \"spread_leg\": {\n              \"strike\": 95.0,\n              \"bid\": 2.32,\n              \"ask\": 2.62\n            },\n            \"net_debit\": 3.83\n          },\n          \"roi\": {\n            \"roi_gross\": 0.5948,\n            \"roi_net\": 0.2844,\n            \"spread_pct\": 0.0407,\n            \"vega_loss\": 0.2291,\n            \"delta\": 0.5371,\n            \"iv_drop_assumed\": 0.25,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.15,\n            \"dte\": 24\n          },\n          \"annualized_roi\": 43.9936,\n          \"strategy\": \"BULL_CALL_SPREAD\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 7,\n        \"mismatch\": 6.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0379,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.85\n      },\n      \"simulation\": {\n        \"current_price\": 85.14,\n        \"target_price\": 91.95,\n        \"hit_rate\": 0.85,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0307,\n        \"alpha\": 0.00661\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Die +6,7% Preisbewegung innerhalb von 48 Stunden suggeriert, dass der Markt bereits auf das Energiespeicher-Narrativ reagiert hat. ON Semiconductor ist nach diesem Anstieg auf einem Niveau, das kurzfristig \\u00fcberkauft wirken k\\u00f6nnte \\u2014 ein klassisches Buy-the-News-Ph\\u00e4nomen. Der Katalysator (Energiespeicher-Boom, US-Lithium-Shift) k\\u00f6nnte bereits vollst\\u00e4ndig eingepreist sein, was das Upside f\\u00fcr die n\\u00e4chsten 2-6 Monate erheblich begrenzt und das R\\u00fcckschlagsrisiko erh\\u00f6ht.\",\n          \"argument_2\": \"Die massive EPS-Abweichung zwischen yfinance ($4.05) und SEC EDGAR ($0.29) ist ein gravierendes Datenproblem. Ein fairer Fundamentalwert l\\u00e4sst sich unter diesen Umst\\u00e4nden kaum berechnen. Wenn die EDGAR-Zahl korrekt ist, handelt ON Semiconductor zu einem extrem hohen P/E-Multiple, was bei einem zyklischen Halbleiterunternehmen mit Exposure zu EV-M\\u00e4rkten (die laut News einen Slowdown erfahren) fundamental nicht zu rechtfertigen ist.\",\n          \"argument_3\": \"ON Semiconductor ist stark im EV-Halbleiter-Segment exponiert, und die News signalisieren explizit einen Slowdown im US-EV-Markt. Der Navitas-Artikel warnt zudem vor scharfen Re-Ratings in der GaN/SiC-Power-Halbleiter-Branche \\u2014 ein direkter Wettbewerber-Signal. Obwohl Energiespeicher kompensieren k\\u00f6nnten, bleibt die Frage, ob das reicht, um den EV-R\\u00fcckgang zu \\u00fcberkompensieren, besonders da die Margen im Energiespeicher-Segment typischerweise geringer sind als im Premium-EV-Segment.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein Monte Carlo durchgef\\u00fchrt \\u2014 0% Hit-Rate durch fehlende Berechnung, nicht durch tats\\u00e4chlich negative Modell-Ausgabe. Dies ist ein technisches Datenproblem, nicht ein Signal. Die fehlende MC-Validierung erh\\u00f6ht die Unsicherheit erheblich, da keine statistische Absicherung der Kursziele m\\u00f6glich ist.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 7,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Das Cluster-Insider-Kaufsignal (9 Insider in 14 Tagen) ist statistisch signifikant und deutet auf informierten Optimismus hin, der \\u00fcber den kurzfristigen Preisanstieg hinausgeht. Der Markt hat m\\u00f6glicherweise den strukturellen Shift vom EV-Segment zum Energiespeicher-Segment noch nicht vollst\\u00e4ndig bewertet \\u2014 dies ist ein mittelfristiger Treiber, der sich \\u00fcber Quartale entfaltet. Der expansive Makro-Kontext (steile Zinskurve, Fed Funds bei 3.64%) beg\\u00fcnstigt zyklische Halbleiter-Wetten. Die Kombination aus US-Produktions-Lokalisierung durch geopolitischen Druck und staatlichen Subventionen f\\u00fcr Energiespeicher schafft eine strukturelle Nachfragebasis, die weniger zinssensitiv ist als reine EV-Exposure.\",\n        \"catalyst\": \"Quartalsberichterstattung mit expliziten Energiespeicher-Segment-Guidance-Anhebungen sowie m\\u00f6gliche Ank\\u00fcndigung neuer US-Fertigungspartnerschaften im Kontext von IRA-Subventionen\",\n        \"bear_case\": \"EPS-Dateninkonsistenz (EDGAR vs. yfinance) l\\u00e4sst keine verl\\u00e4ssliche Fundamentalbewertung zu; bei hohem tats\\u00e4chlichem P/E ist ON bei EV-Abschw\\u00e4chung anf\\u00e4llig f\\u00fcr scharfe Multiple-Kontraktion\",\n        \"macro_assessment\": \"Das expansive Makro-Umfeld (steile Kurve +0.55%, moderate Fed Funds Rate) beg\\u00fcnstigt das Signal. Steigende Zinskurven profitieren kapitalintensiven Unternehmen wie ON, die in neue Fertigungskapazit\\u00e4ten investieren. Das Umfeld ist konsistent mit einer Bullish-Einsch\\u00e4tzung, solange die EPS-Datenunsicherheit nicht das fundamentale Bild zerst\\u00f6rt.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.55,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLK\",\n        \"rel_strength\": 0.1748\n      },\n      \"final_score\": 0.0437,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 1.185,\n        \"annualized_roi\": null,\n        \"dte\": 24\n      },\n      \"trade_score\": {\n        \"total\": 70,\n        \"grade\": \"BUY \\ud83d\\udfe1\",\n        \"grade_short\": \"BUY\",\n        \"components\": {\n          \"signal_quality\": 25.9,\n          \"options_quality\": 29.2,\n          \"risk_deductions\": -10.0,\n          \"context_bonus\": 25.0\n        },\n        \"reasoning\": \"St\\u00e4rken: starkes Signal (Impact=6/Surprise=7), guter ROI (28%), positive Sektor-Relative-St\\u00e4rke | Risiken: hohe IV (100%) \\u2014 Optionen teuer\",\n        \"best_argument_for\": \"Das Cluster-Insider-Kaufsignal (9 Insider in 14 Tagen) ist statistisch signifikant und deutet auf informierten Optimismus hin, der \\u00fcber den kurzfristigen Preisanstieg hinausgeht. Der Markt hat m\\u00f6glicherweise den strukturellen Shift vom EV-Segment zum Energiespeicher-Segment noch nicht vollst\\u00e4ndig bewertet \\u2014 dies ist ein mittelfristiger Treiber, der sich \\u00fcber Quartale entfaltet. Der expansive Makro\",\n        \"best_argument_against\": \"Die +6,7% Preisbewegung innerhalb von 48 Stunden suggeriert, dass der Markt bereits auf das Energiespeicher-Narrativ reagiert hat. ON Semiconductor ist nach diesem Anstieg auf einem Niveau, das kurzfristig \\u00fcberkauft wirken k\\u00f6nnte \\u2014 ein klassisches Buy-the-News-Ph\\u00e4nomen. Der Katalysator (Energiespeicher-Boom, US-Lithium-Shift) k\\u00f6nnte bereits vollst\\u00e4ndig eingepreist sein, was das Upside f\\u00fcr die n\\u00e4ch\"\n      },\n      \"trade_rank\": 2\n    }\n  ]\n}"
  },
  {
    "path": "outputs/daily_reports/2026-04-20.md",
    "content": "# Adaptive Asymmetry-Scanner – 2026-04-20\n\n**Generiert:** 2026-04-20 19:07 UTC\n**Trade-Vorschläge:** 2\n\n---\n## 1. HOOD – BULL_CALL_SPREAD\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.1065`  \n**IV-Rank:** 100.0  \n\n### Asymmetry-Analyse\n- **Impact:** 7/10\n- **Surprise:** 6/10\n- **Mismatch-Score:** 7.0\n- **Z-Score (48h):** 0.0\n- **EPS-Drift:** 0.0 (noise)\n\n**Mispricing-Logik:**  \n> N/A\n\n**Katalysator:** SEC Pattern Day Trader Rule Change — Senkung/Abschaffung der $25.000-Mindestkapitalgrenze, die HOOD neue Kundensegmente (kleinere Retail-Trader) erschließt und Marktanteilsgewinne gegenüber etablierten Brokern wie Schwab ermöglicht  \n**Time-to-Materialization:** 2-3 Monate  \n\n### Bear Case\n> Katalysator bereits eingepreist (+4,1% in 48h, Mizuho-Upgrade öffentlich bekannt), kombiniert mit ambitionierter Bewertung (KGV 33–44x) und dem Risiko einer regulatorischen Verzögerung oder Revision der Regel, was den Kurs schnell wieder auf $75–80 zurückwerfen könnte  \n**Severity:** 5/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 71.5% (10,000 Pfade)\n- **Target-Preis:** $97.57\n- **Aktueller Preis:** $90.34\n- **σ (adj.):** 0.0000\n\n### Options-Vorschlag\n- **Expiry:** 2026-05-15 (24 DTE)\n- **Strike:** $90.00\n- **Bid/Ask:** $7.00 / $7.10\n- **Impl. Vol.:** 71.8%\n- **Open Interest:** 11,387\n- **Bid-Ask-Ratio:** 1.41%\n\n- **Short Strike:** $100.00  \n- **Short Bid/Ask:** $3.35 / $3.45\n\n---\n## 2. ON – BULL_CALL_SPREAD\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.0437`  \n**IV-Rank:** 100.0  \n\n### Asymmetry-Analyse\n- **Impact:** 6/10\n- **Surprise:** 7/10\n- **Mismatch-Score:** 6.0\n- **Z-Score (48h):** 0.0\n- **EPS-Drift:** 0.0 (noise)\n\n**Mispricing-Logik:**  \n> N/A\n\n**Katalysator:** Quartalsberichterstattung mit expliziten Energiespeicher-Segment-Guidance-Anhebungen sowie mögliche Ankündigung neuer US-Fertigungspartnerschaften im Kontext von IRA-Subventionen  \n**Time-to-Materialization:** 2-3 Monate  \n\n### Bear Case\n> EPS-Dateninkonsistenz (EDGAR vs. yfinance) lässt keine verlässliche Fundamentalbewertung zu; bei hohem tatsächlichem P/E ist ON bei EV-Abschwächung anfällig für scharfe Multiple-Kontraktion  \n**Severity:** 6/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 85.0% (10,000 Pfade)\n- **Target-Preis:** $91.95\n- **Aktueller Preis:** $85.14\n- **σ (adj.):** 0.0000\n\n### Options-Vorschlag\n- **Expiry:** 2026-05-15 (24 DTE)\n- **Strike:** $85.00\n- **Bid/Ask:** $5.90 / $6.15\n- **Impl. Vol.:** 65.0%\n- **Open Interest:** 3,117\n- **Bid-Ask-Ratio:** 4.07%\n\n- **Short Strike:** $95.00  \n- **Short Bid/Ask:** $2.32 / $2.62\n\n---\n## Modell-Gewichte (aktuell)\n- Impact: `0.35`\n- Mismatch: `0.45`\n- EPS-Drift: `0.20`\n\n_Automatisch generiert durch Adaptive Asymmetry-Scanner v3.5_"
  },
  {
    "path": "outputs/daily_reports/2026-04-21.json",
    "content": "{\n  \"date\": \"2026-04-21\",\n  \"proposals\": [\n    {\n      \"ticker\": \"AEP\",\n      \"strategy\": \"BULL_CALL_SPREAD\",\n      \"iv_rank\": 100.0,\n      \"iv_gate_applied\": true,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-05-15\",\n        \"strike\": 130.0,\n        \"bid\": 4.9,\n        \"ask\": 5.4,\n        \"open_interest\": 1438,\n        \"implied_vol\": 0.2788158056640625,\n        \"spread_ratio\": 0.0926,\n        \"dte\": 23,\n        \"spread_leg\": {\n          \"strike\": 145.0,\n          \"bid\": 0.15,\n          \"ask\": 0.45\n        },\n        \"net_debit\": 5.25\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 1.2581,\n        \"roi_net\": 0.9116,\n        \"spread_pct\": 0.0926,\n        \"vega_loss\": 0.1614,\n        \"delta\": 0.6385,\n        \"iv_drop_assumed\": 0.25,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.15,\n        \"dte\": 23\n      },\n      \"dte_tier\": \"Short-Term\",\n      \"annualized_roi\": 29216.8591,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Short-Term\",\n          \"dte\": 23,\n          \"option\": {\n            \"expiry\": \"2026-05-15\",\n            \"strike\": 130.0,\n            \"bid\": 4.9,\n            \"ask\": 5.4,\n            \"open_interest\": 1438,\n            \"implied_vol\": 0.2788158056640625,\n            \"spread_ratio\": 0.0926,\n            \"dte\": 23,\n            \"spread_leg\": {\n              \"strike\": 145.0,\n              \"bid\": 0.15,\n              \"ask\": 0.45\n            },\n            \"net_debit\": 5.25\n          },\n          \"roi\": {\n            \"roi_gross\": 1.2581,\n            \"roi_net\": 0.9116,\n            \"spread_pct\": 0.0926,\n            \"vega_loss\": 0.1614,\n            \"delta\": 0.6385,\n            \"iv_drop_assumed\": 0.25,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.15,\n            \"dte\": 23\n          },\n          \"annualized_roi\": 29216.8591,\n          \"strategy\": \"BULL_CALL_SPREAD\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 6,\n        \"mismatch\": 5.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.01,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.6648\n      },\n      \"simulation\": {\n        \"current_price\": 132.94,\n        \"target_price\": 143.58,\n        \"hit_rate\": 0.8378,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0117,\n        \"alpha\": 0.00338\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Morgan Stanley hat das Price Target auf $136 gesenkt, obwohl der aktuelle Kurs bei $132.94 liegt \\u2014 das impliziert nur noch ~2.3% Upside zum MS-Target. Diese minimale Marge ist f\\u00fcr einen 2-6 Monats-Options-Trade v\\u00f6llig unzureichend, da Theta-Decay und Transaktionskosten diesen schmalen Puffer rasch aufzehren. Die Kombination 'Overweight-Rating beibehalten, aber Target senken' signalisiert intern zunehmende Skepsis des Analysten trotz formell bullischer Haltung.\",\n          \"argument_2\": \"Utilities sind ein defensiver Sektor, der zwar im expansiven Makro-Umfeld nicht kategorisch benachteiligt wird, aber typischerweise underperformt wenn Zinsen hoch bleiben (4.25% 10Y Treasury). AEP ist ein kapitalintensives Unternehmen mit hoher Schuldenlast; steigende oder persistente Realzinsen erh\\u00f6hen die Kapitalkosten direkt und dr\\u00fccken auf die Bewertungsmultiples (Utility-DCF ist zinssensibler als fast jeder andere Sektor). Bei 4.25% 10Y ist das Dividenden-Rendite-Argument f\\u00fcr AEP deutlich schw\\u00e4cher als in Niedrigzinsumgebungen.\",\n          \"argument_3\": \"Der neue Analyst-Initiator (Truist, Buy, $148 Target) k\\u00f6nnte einen typischen 'Initiierungsboost' erzeugen, der rasch wieder abflacht. Solche Initiierungen sind oft bereits eingepreist bevor Retailinvestoren reagieren k\\u00f6nnen, und das Momentum verpufft innerhalb von 2-4 Wochen. Der Cluster-Insider-Kauf muss ebenfalls kritisch gesehen werden: Bei Utilities k\\u00f6nnen Insider-K\\u00e4ufe auch regulatorisch motiviert oder durch Compain-Programme bedingt sein, ohne zwingend auf nicht-\\u00f6ffentliche positive Informationen hinzuweisen.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"0% Hit-Rate bedeutet kein MC wurde durchgef\\u00fchrt \\u2014 es existiert schlicht keine statistische Grundlage aus dem Modell. Dies ist eine neutrale Feststellung (kein Datenpunkt vorhanden), nicht ein negatives Signal per se. Das erh\\u00f6ht jedoch die Unsicherheit erheblich, da wir uns ausschlie\\u00dflich auf qualitative Signale st\\u00fctzen m\\u00fcssen. Concern-Level wird entsprechend auf medium gesetzt.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 5,\n        \"surprise\": 6,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 5,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt scheint die Kombination aus Truist-Initiierung ($148 Target, +11.3% Upside) und Insider-Cluster-K\\u00e4ufen noch nicht vollst\\u00e4ndig eingepreist zu haben, da die 48h-Preisbewegung mit -0.5% leicht negativ bleibt. Dies deutet darauf hin, dass die bullischen Katalysatoren entweder ignoriert oder durch die MS-Targetsenkung neutralisiert wurden. Die asymmetrische Gelegenheit liegt darin, dass bei einer KI-Power-Nachfrage-Story (vgl. Bloom Energy Erw\\u00e4hnung im Kontext) auch AEP als Infrastruktur-Utility von steigendem Strombedarf profitieren k\\u00f6nnte \\u2014 ein struktureller Wachstumstreiber, der im aktuellen Narrative noch unterbewertet scheint. Das Upside-Ziel von $148 (Truist) vs. aktuellem Kurs $132.94 bietet mit ~11% einen f\\u00fcr einen Utility-Trade \\u00fcberdurchschnittlichen potenziellen Return, der die Optionspr\\u00e4mie rechtfertigen k\\u00f6nnte.\",\n        \"catalyst\": \"Truist-Initiierung mit $148 Buy-Rating kombiniert mit 3-fach Insider-Cluster-Kauf als Vertrauenssignal; m\\u00f6gliche Positionierung als AI-Power-Infrastruktur-Benefiziar\",\n        \"bear_case\": \"Morgan Stanleys Targetsenkung auf $136 bei nur ~2.3% Upside und der persistente 10Y-Zins von 4.25% limitieren das strukturelle Kurspotenzial f\\u00fcr einen kapitalintensiven Utility erheblich; IV-Crush nach Initiierungsphase wahrscheinlich\",\n        \"macro_assessment\": \"Das expansive Makroumfeld (Zinskurve +0.54%, Fed Funds 3.64%) ist grunds\\u00e4tzlich supportiv f\\u00fcr Risk-Assets. F\\u00fcr Utilities ist es jedoch ambivalent: Zwar beg\\u00fcnstigt die steilere Kurve keine Rezessionsangst, aber der absolute 10Y-Level von 4.25% bleibt ein struktureller Gegenwind f\\u00fcr zinssensitive, hochverschuldete Utilities wie AEP. Das Makro ist damit neutral bis leicht negativ f\\u00fcr AEP, nicht klar positiv.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.54,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLU\",\n        \"rel_strength\": 0.0408\n      },\n      \"final_score\": 0.1307,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 3.9635,\n        \"annualized_roi\": null,\n        \"dte\": 23\n      },\n      \"trade_score\": {\n        \"total\": 64,\n        \"grade\": \"BUY \\ud83d\\udfe1\",\n        \"grade_short\": \"BUY\",\n        \"components\": {\n          \"signal_quality\": 21.9,\n          \"options_quality\": 27.0,\n          \"risk_deductions\": -10.0,\n          \"context_bonus\": 25.0\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=5/Surprise=6), guter ROI (91%), positive Sektor-Relative-St\\u00e4rke | Risiken: hohe IV (100%) \\u2014 Optionen teuer\",\n        \"best_argument_for\": \"Der Markt scheint die Kombination aus Truist-Initiierung ($148 Target, +11.3% Upside) und Insider-Cluster-K\\u00e4ufen noch nicht vollst\\u00e4ndig eingepreist zu haben, da die 48h-Preisbewegung mit -0.5% leicht negativ bleibt. Dies deutet darauf hin, dass die bullischen Katalysatoren entweder ignoriert oder durch die MS-Targetsenkung neutralisiert wurden. Die asymmetrische Gelegenheit liegt darin, dass bei einer KI-Power-Nachfrage-Story (vgl. Bloom Energy Erw\\u00e4hnung im Kontext) auch AEP als Infrastruktur-Utility von steigendem Strombedarf profitieren k\\u00f6nnte \\u2014 ein struktureller Wachstumstreiber, der im akt\",\n        \"best_argument_against\": \"Morgan Stanley hat das Price Target auf $136 gesenkt, obwohl der aktuelle Kurs bei $132.94 liegt \\u2014 das impliziert nur noch ~2.3% Upside zum MS-Target. Diese minimale Marge ist f\\u00fcr einen 2-6 Monats-Options-Trade v\\u00f6llig unzureichend, da Theta-Decay und Transaktionskosten diesen schmalen Puffer rasch aufzehren. Die Kombination 'Overweight-Rating beibehalten, aber Target senken' signalisiert intern zunehmende Skepsis des Analysten trotz formell bullischer Haltung.\"\n      },\n      \"trade_rank\": 1\n    }\n  ]\n}"
  },
  {
    "path": "outputs/daily_reports/2026-04-21.md",
    "content": "# Adaptive Asymmetry-Scanner – 2026-04-21\n\n**Generiert:** 2026-04-21 18:33 UTC\n**Trade-Vorschläge:** 1\n\n---\n## 1. AEP – BULL_CALL_SPREAD\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.1307`  \n**IV-Rank:** 100.0  \n\n### Asymmetry-Analyse\n- **Impact:** 5/10\n- **Surprise:** 6/10\n- **Mismatch-Score:** 5.0\n- **Z-Score (48h):** 0.0\n- **EPS-Drift:** 0.0 (noise)\n\n**Mispricing-Logik:**  \n> N/A\n\n**Katalysator:** Truist-Initiierung mit $148 Buy-Rating kombiniert mit 3-fach Insider-Cluster-Kauf als Vertrauenssignal; mögliche Positionierung als AI-Power-Infrastruktur-Benefiziar  \n**Time-to-Materialization:** 2-3 Monate  \n\n### Bear Case\n> Morgan Stanleys Targetsenkung auf $136 bei nur ~2.3% Upside und der persistente 10Y-Zins von 4.25% limitieren das strukturelle Kurspotenzial für einen kapitalintensiven Utility erheblich; IV-Crush nach Initiierungsphase wahrscheinlich  \n**Severity:** 5/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 83.8% (10,000 Pfade)\n- **Target-Preis:** $143.58\n- **Aktueller Preis:** $132.94\n- **σ (adj.):** 0.0000\n\n### Options-Vorschlag\n- **Expiry:** 2026-05-15 (23 DTE)\n- **Strike:** $130.00\n- **Bid/Ask:** $4.90 / $5.40\n- **Impl. Vol.:** 27.9%\n- **Open Interest:** 1,438\n- **Bid-Ask-Ratio:** 9.26%\n\n- **Short Strike:** $145.00  \n- **Short Bid/Ask:** $0.15 / $0.45\n\n---\n## Modell-Gewichte (aktuell)\n- Impact: `0.35`\n- Mismatch: `0.45`\n- EPS-Drift: `0.20`\n\n_Automatisch generiert durch Adaptive Asymmetry-Scanner v3.5_"
  },
  {
    "path": "outputs/daily_reports/2026-04-22.json",
    "content": "{\n  \"date\": \"2026-04-22\",\n  \"proposals\": [\n    {\n      \"ticker\": \"APA\",\n      \"strategy\": \"LONG_CALL\",\n      \"iv_rank\": 50.0,\n      \"iv_gate_applied\": false,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-07-17\",\n        \"strike\": 40.0,\n        \"bid\": 3.1,\n        \"ask\": 3.25,\n        \"open_interest\": 1564,\n        \"implied_vol\": 0.5295457202148439,\n        \"spread_ratio\": 0.0462,\n        \"dte\": 85\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 0.4489,\n        \"roi_net\": 0.2728,\n        \"spread_pct\": 0.0462,\n        \"vega_loss\": 0.0837,\n        \"delta\": 0.4783,\n        \"iv_drop_assumed\": 0.07,\n        \"cost_basis\": 3.25,\n        \"is_spread\": false,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.12,\n        \"dte\": 85\n      },\n      \"dte_tier\": \"Mid-Term\",\n      \"annualized_roi\": 1.8174,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Mid-Term\",\n          \"dte\": 85,\n          \"option\": {\n            \"expiry\": \"2026-07-17\",\n            \"strike\": 40.0,\n            \"bid\": 3.1,\n            \"ask\": 3.25,\n            \"open_interest\": 1564,\n            \"implied_vol\": 0.5295457202148439,\n            \"spread_ratio\": 0.0462,\n            \"dte\": 85\n          },\n          \"roi\": {\n            \"roi_gross\": 0.4489,\n            \"roi_net\": 0.2728,\n            \"spread_pct\": 0.0462,\n            \"vega_loss\": 0.0837,\n            \"delta\": 0.4783,\n            \"iv_drop_assumed\": 0.07,\n            \"cost_basis\": 3.25,\n            \"is_spread\": false,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.12,\n            \"dte\": 85\n          },\n          \"annualized_roi\": 1.8174,\n          \"strategy\": \"LONG_CALL\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 6.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0325,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.85\n      },\n      \"simulation\": {\n        \"current_price\": 38.18,\n        \"target_price\": 41.23,\n        \"hit_rate\": 0.85,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0296,\n        \"alpha\": 0.00683\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"APA ist ein reiner \\u00d6l-Preis-Beta-Trade ohne operativen Differenzierungsvorteil. Der 6%-Kursanstieg in 48h ist fast ausschlie\\u00dflich auf den \\u00d6lpreisanstieg zur\\u00fcckzuf\\u00fchren, nicht auf fundamentale Unternehmensverbesserungen. Sobald die geopolitische Pr\\u00e4mie (Iran-Deadline 22. April) abklingt \\u2014 sei es durch Einigung oder Eskalation mit anschlie\\u00dfender Normalisierung \\u2014 f\\u00e4llt APA proportional zur\\u00fcck. Der Truist-Analyst hat das Kursziel lediglich auf $39 angehoben, was bei einem Preis von $38.18 praktisch keinen Upside impliziert.\",\n          \"argument_2\": \"Die geopolitische Asymmetrie ist ein zweischneidiges Schwert. Eine echte Eskalation treibt den \\u00d6lpreis kurzfristig, erh\\u00f6ht aber gleichzeitig das Makrorisiko global \\u2014 h\\u00f6here Energiepreise w\\u00fcrden Nachfrage d\\u00e4mpfen und k\\u00f6nnten eine Rezession triggern, die den \\u00d6lpreis mittelfristig (2-6 Monate) deutlich dr\\u00fcckt. APA operiert zudem stark in Regionen wie Suriname und \\u00c4gypten mit inh\\u00e4rentem politischem Risiko. Das geopolitische Signal ist also strukturell ambivalent, nicht klar bullish.\",\n          \"argument_3\": \"Der Insider-Cluster-Kauf (8 Insider in 14 Tagen) klingt positiv, muss aber kritisch hinterfragt werden: APA hat in den letzten 12 Monaten erheblich underperformt und die Aktie notiert auf Mehrjahrestiefs. Insider-K\\u00e4ufe in fallenden Aktien sind oft Value-Traps-Signale, nicht Turnaround-Indikatoren. Zudem hat APA strukturelle Herausforderungen: sinkende US-Onshore-Produktion, hohe Schulden (~$5.8 Mrd. Nettoverschuldung), und die strategische Unsicherheit nach der Callon-Akquisition. Das EPS liegt bei ~$3.83-4.17 bei einem KGV von ~9-10x \\u2014 niedrig, aber oft bewusst so bewertet durch den Markt.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein Quick MC wurde durchgef\\u00fchrt (0 Pfade), daher ist eine Hit-Rate von 0% hier technisch bedeutungslos \\u2014 es handelt sich um fehlende Daten, nicht um ein Modellsignal. Bei historischer 30-Tage-Volatilit\\u00e4t von \\u00d6l-E&P-Aktien (~35-45% annualisiert) w\\u00e4re ein 30d-Monte-Carlo typischerweise mit 50-65% Hit-Rate f\\u00fcr moderate Upside-Targets zu erwarten. Das Fehlen der Berechnung senkt die statistische Konfidenz erheblich.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"4-8 Wochen\",\n        \"asymmetry_reasoning\": \"Der Markt hat den Iran-Waffenstillstand-Deadline-Effekt auf APA m\\u00f6glicherweise noch nicht vollst\\u00e4ndig eingepreist, da der 6%-Anstieg sich auf den gesamten Energie-Sektor verteilt hat und APA spezifische Katalysatoren (Insider-Cluster + geopolitische Exposition) nicht vollst\\u00e4ndig reflektiert. APA handelt auf einem historisch niedrigen KGV von ~9x, was bei steigenden \\u00d6lpreisen ein \\u00fcberproportionales Re-Rating erm\\u00f6glicht. Der Truist-Zielpreis von $39 erscheint konservativ \\u2014 ein \\u00d6lpreis-Anstieg auf $80-85/bbl w\\u00fcrde APAs Free Cash Flow signifikant verbessern und Buyside-Neubewertungen ausl\\u00f6sen. Die Kombination aus Insider-Kaufcluster (8 K\\u00e4ufe in 14 Tagen ist statistisch selten) und klarem sektoralem Katalysator schafft eine kurzfristige Momentum-Asymmetrie, die in der n\\u00e4chsten 4-8-Wochen-Periode durch weitere geopolitische Entwicklungen verst\\u00e4rkt werden k\\u00f6nnte.\",\n        \"catalyst\": \"Iran-US-Waffenstillstand-Deadline 22. April: Scheitern der Gespr\\u00e4che \\u2192 \\u00d6lpreisanstieg \\u2192 APA Re-Rating; alternativ Insider-getriebenes Momentum-Signal mit Q1-Earnings als sekund\\u00e4rem Katalysator\",\n        \"bear_case\": \"Geopolitische Einigung vor dem 22. April eliminiert die Risikopr\\u00e4mie im \\u00d6lpreis sofort; APA f\\u00e4llt auf Pre-Rally-Niveaus (~$36) zur\\u00fcck, da fundamentale Underperformance und hohe Verschuldung wieder in den Vordergrund treten\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.52,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLE\",\n        \"rel_strength\": 0.213\n      },\n      \"final_score\": 0.1451,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 0.3209,\n        \"annualized_roi\": 1.8174,\n        \"dte\": 85\n      },\n      \"trade_score\": {\n        \"total\": 76,\n        \"grade\": \"STRONG BUY \\ud83d\\udfe2\",\n        \"grade_short\": \"STRONG BUY\",\n        \"components\": {\n          \"signal_quality\": 21.9,\n          \"options_quality\": 28.6,\n          \"risk_deductions\": 0.0,\n          \"context_bonus\": 25.0\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=6/Surprise=5), guter ROI (27%), positive Sektor-Relative-St\\u00e4rke\",\n        \"best_argument_for\": \"Der Markt hat den Iran-Waffenstillstand-Deadline-Effekt auf APA m\\u00f6glicherweise noch nicht vollst\\u00e4ndig eingepreist, da der 6%-Anstieg sich auf den gesamten Energie-Sektor verteilt hat und APA spezifische Katalysatoren (Insider-Cluster + geopolitische Exposition) nicht vollst\\u00e4ndig reflektiert. APA handelt auf einem historisch niedrigen KGV von ~9x, was bei steigenden \\u00d6lpreisen ein \\u00fcberproportionales Re-Rating erm\\u00f6glicht. Der Truist-Zielpreis von $39 erscheint konservativ \\u2014 ein \\u00d6lpreis-Anstieg auf $80-85/bbl w\\u00fcrde APAs Free Cash Flow signifikant verbessern und Buyside-Neubewertungen ausl\\u00f6sen. Die\",\n        \"best_argument_against\": \"APA ist ein reiner \\u00d6l-Preis-Beta-Trade ohne operativen Differenzierungsvorteil. Der 6%-Kursanstieg in 48h ist fast ausschlie\\u00dflich auf den \\u00d6lpreisanstieg zur\\u00fcckzuf\\u00fchren, nicht auf fundamentale Unternehmensverbesserungen. Sobald die geopolitische Pr\\u00e4mie (Iran-Deadline 22. April) abklingt \\u2014 sei es durch Einigung oder Eskalation mit anschlie\\u00dfender Normalisierung \\u2014 f\\u00e4llt APA proportional zur\\u00fcck. Der Truist-Analyst hat das Kursziel lediglich auf $39 angehoben, was bei einem Preis von $38.18 praktisch keinen Upside impliziert.\"\n      },\n      \"trade_rank\": 1\n    },\n    {\n      \"ticker\": \"ABNB\",\n      \"strategy\": \"LONG_CALL\",\n      \"iv_rank\": 42.9,\n      \"iv_gate_applied\": false,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-05-08\",\n        \"strike\": 140.0,\n        \"bid\": 8.8,\n        \"ask\": 9.55,\n        \"open_interest\": 194,\n        \"implied_vol\": 0.5730023168945313,\n        \"spread_ratio\": 0.0785,\n        \"dte\": 15\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 0.7553,\n        \"roi_net\": 0.5649,\n        \"spread_pct\": 0.0785,\n        \"vega_loss\": 0.0333,\n        \"delta\": 0.6245,\n        \"iv_drop_assumed\": 0.05,\n        \"cost_basis\": 9.55,\n        \"is_spread\": false,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.15,\n        \"dte\": 15\n      },\n      \"dte_tier\": \"Short-Term\",\n      \"annualized_roi\": 54013.0866,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Short-Term\",\n          \"dte\": 15,\n          \"option\": {\n            \"expiry\": \"2026-05-08\",\n            \"strike\": 140.0,\n            \"bid\": 8.8,\n            \"ask\": 9.55,\n            \"open_interest\": 194,\n            \"implied_vol\": 0.5730023168945313,\n            \"spread_ratio\": 0.0785,\n            \"dte\": 15\n          },\n          \"roi\": {\n            \"roi_gross\": 0.7553,\n            \"roi_net\": 0.5649,\n            \"spread_pct\": 0.0785,\n            \"vega_loss\": 0.0333,\n            \"delta\": 0.6245,\n            \"iv_drop_assumed\": 0.05,\n            \"cost_basis\": 9.55,\n            \"is_spread\": false,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.15,\n            \"dte\": 15\n          },\n          \"annualized_roi\": 54013.0866,\n          \"strategy\": \"LONG_CALL\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 6.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0218,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.6948\n      },\n      \"simulation\": {\n        \"current_price\": 144.28,\n        \"target_price\": 155.83,\n        \"hit_rate\": 0.7998,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0201,\n        \"alpha\": 0.00339\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Der Wells Fargo Upgrade auf Overweight mit $178 Ziel ist ein klassischer Fall eines 'bereits eingepreisten Katalysators'. Sell-Side-Upgrades nach einem bereits laufenden Aufw\\u00e4rtstrend tendieren dazu, kurzfristige Kursgewinne zu generieren, die schnell wieder abgebaut werden. Der Markt hatte Wells Fargos Neubewertungs-Narrativ bereits antizipiert, und das 'Inflection Point'-Framing ist marketing-sprachliche Rhetorik, kein fundamentaler Beleg f\\u00fcr strukturellen Wandel. Der aktuelle Preis von $144 versus $178 Ziel impliziert ~23% Upside, was f\\u00fcr einen Optionskauf bereits hohe IV-Pr\\u00e4mien bedeutet.\",\n          \"argument_2\": \"ABNB operiert im Consumer Cyclical Sektor, der bei einer konjunkturellen Abk\\u00fchlung \\u00fcberproportional leidet. Trotz aktuell expansivem Makroregime gibt es strukturelle Risiken: US-Verbraucher zeigen Zeichen von Kaufkrafterm\\u00fcdung (Kreditkartenverschuldung auf Rekordhochs, Sparquote gefallen), und der Reisesektor zeigte bereits 2024 erste Normalisierungstendenzen nach dem Post-Covid-Boom. Die 'Inflection Point'-These k\\u00f6nnte schlicht ein Versuch sein, einen Seitw\\u00e4rtsmarkt als Wendepunkt zu verkaufen.\",\n          \"argument_3\": \"Der Talent-Abfluss bei ABNB ist ein strukturelles Warnsignal: Ein leitender ABNB-Executive wurde von OpenAI abgeworben. In einem Umfeld, wo AI-Talente Premium-Geh\\u00e4lter erhalten, k\\u00f6nnte ABNB als Rekrutierungsplattform f\\u00fcr Tech-Talent gesehen werden, nicht als Retentionsmaschine. Dies deutet auf potenzielle Kultur- und Innovationsprobleme hin. Zudem ist die EPS-Diskrepanz zwischen yfinance ($5.80) und SEC EDGAR ($4.03) \\u2014 obwohl als 0.2% Abweichung getaggt, faktisch aber ~44% Unterschied \\u2014 ein Warnsignal f\\u00fcr Datenqualit\\u00e4t und Earnings-Qualit\\u00e4ts-Beurteilung.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein Monte Carlo durchgef\\u00fchrt (0 Pfade), daher keine statistische Validierung m\\u00f6glich. Die 0% Hit-Rate ist nicht interpretierbar als B\\u00e4rensignal, sondern als fehlende Berechnung. Dies erh\\u00f6ht die Unsicherheit der Analyse erheblich, da keine quantitative Wahrscheinlichkeitsabsch\\u00e4tzung f\\u00fcr den Zielkurs vorliegt.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 5,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt hat auf das Wells Fargo Upgrade mit nur +0.6% in 48h reagiert, was f\\u00fcr einen Overweight-Upgrade mit $178 Ziel (23% Upside) eine deutliche Unterreaktion darstellt. Institutional Cluster-Insider-K\\u00e4ufe von 4 Personen innerhalb von 14 Tagen kombiniert mit einem glaubw\\u00fcrdigen Analyst-Upgrade signalisieren, dass informierte Akteure eine Neubewertung antizipieren, die der breite Markt noch nicht vollst\\u00e4ndig diskontiert hat. Das expansive Makroregime (steile Zinskurve +0.52%, Fed Funds bei 3.64%) beg\\u00fcnstigt Consumer Discretionary und Travel-Plattformen, da niedrigere Realzinsen die Konsumlaune st\\u00fctzen. Die 'Inflection Point'-These von Wells Fargo bezieht sich vermutlich auf ABNB's Diversifikation ins Experiences-Segment und m\\u00f6glicherweise Marktanteilsgewinne im Langzeitmieten-Bereich, was strukturelles Alpha jenseits des zyklischen Reisebooms darstellt.\",\n        \"catalyst\": \"Wells Fargo Upgrade auf Overweight ($178 Ziel) + Cluster-Insider-K\\u00e4ufe (4 Personen/14 Tage) als Neubewertungs-Signal; n\\u00e4chstes Earnings-Event als Best\\u00e4tigung der 'Inflection Point'-These\",\n        \"bear_case\": \"Upgrade bereits eingepreist, Consumer Discretionary leidet bei Verbraucher-Erm\\u00fcdung, und der EPS-Datendiskrepanz (~44% zwischen yfinance und SEC EDGAR) unterminiert das fundamentale Vertrauensniveau f\\u00fcr Options-Positionierung.\",\n        \"macro_assessment\": \"Das expansive Makroumfeld (steile Zinskurve, Fed Funds 3.64%, 10Y bei 4.25%) ist grunds\\u00e4tzlich konstruktiv f\\u00fcr ABNB als Consumer Cyclical. Niedrigere Zinskosten erleichtern Kapitalr\\u00fcckgaben und beg\\u00fcnstigen Plattform-Multiples. Die Kombination aus expansivem Regime und sektorrelevanten Tailwinds (Reise-Nachholeffekte, Normalisierung der Urlaubsplanung) st\\u00fctzt die bullische These, reduziert aber nicht das idiosynkratische Risiko einer \\u00fcberstrapazierten Upgrade-Story.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.52,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLY\",\n        \"rel_strength\": 0.0404\n      },\n      \"final_score\": 0.1451,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 3.766,\n        \"annualized_roi\": null,\n        \"dte\": 15\n      },\n      \"trade_score\": {\n        \"total\": 70,\n        \"grade\": \"BUY \\ud83d\\udfe1\",\n        \"grade_short\": \"BUY\",\n        \"components\": {\n          \"signal_quality\": 21.9,\n          \"options_quality\": 23.5,\n          \"risk_deductions\": 0.0,\n          \"context_bonus\": 25.0\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=6/Surprise=5), guter ROI (56%), positive Sektor-Relative-St\\u00e4rke\",\n        \"best_argument_for\": \"Der Markt hat auf das Wells Fargo Upgrade mit nur +0.6% in 48h reagiert, was f\\u00fcr einen Overweight-Upgrade mit $178 Ziel (23% Upside) eine deutliche Unterreaktion darstellt. Institutional Cluster-Insider-K\\u00e4ufe von 4 Personen innerhalb von 14 Tagen kombiniert mit einem glaubw\\u00fcrdigen Analyst-Upgrade signalisieren, dass informierte Akteure eine Neubewertung antizipieren, die der breite Markt noch nicht vollst\\u00e4ndig diskontiert hat. Das expansive Makroregime (steile Zinskurve +0.52%, Fed Funds bei 3.64%) beg\\u00fcnstigt Consumer Discretionary und Travel-Plattformen, da niedrigere Realzinsen die Konsumlau\",\n        \"best_argument_against\": \"Der Wells Fargo Upgrade auf Overweight mit $178 Ziel ist ein klassischer Fall eines 'bereits eingepreisten Katalysators'. Sell-Side-Upgrades nach einem bereits laufenden Aufw\\u00e4rtstrend tendieren dazu, kurzfristige Kursgewinne zu generieren, die schnell wieder abgebaut werden. Der Markt hatte Wells Fargos Neubewertungs-Narrativ bereits antizipiert, und das 'Inflection Point'-Framing ist marketing-sprachliche Rhetorik, kein fundamentaler Beleg f\\u00fcr strukturellen Wandel. Der aktuelle Preis von $144 versus $178 Ziel impliziert ~23% Upside, was f\\u00fcr einen Optionskauf bereits hohe IV-Pr\\u00e4mien bedeutet.\"\n      },\n      \"trade_rank\": 2\n    },\n    {\n      \"ticker\": \"AMAT\",\n      \"strategy\": \"LONG_PUT\",\n      \"iv_rank\": 56.1,\n      \"iv_gate_applied\": false,\n      \"direction\": \"BEARISH\",\n      \"option\": {\n        \"expiry\": \"2026-07-17\",\n        \"strike\": 390.0,\n        \"bid\": 34.6,\n        \"ask\": 37.85,\n        \"open_interest\": 585,\n        \"implied_vol\": 0.5516707431030273,\n        \"spread_ratio\": 0.0859,\n        \"dte\": 85\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 0.5133,\n        \"roi_net\": 0.265,\n        \"spread_pct\": 0.0859,\n        \"vega_loss\": 0.0766,\n        \"delta\": 0.6022,\n        \"iv_drop_assumed\": 0.07,\n        \"cost_basis\": 37.85,\n        \"is_spread\": false,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.12,\n        \"dte\": 85\n      },\n      \"dte_tier\": \"Mid-Term\",\n      \"annualized_roi\": 1.744,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Mid-Term\",\n          \"dte\": 85,\n          \"option\": {\n            \"expiry\": \"2026-07-17\",\n            \"strike\": 390.0,\n            \"bid\": 34.6,\n            \"ask\": 37.85,\n            \"open_interest\": 585,\n            \"implied_vol\": 0.5516707431030273,\n            \"spread_ratio\": 0.0859,\n            \"dte\": 85\n          },\n          \"roi\": {\n            \"roi_gross\": 0.5133,\n            \"roi_net\": 0.265,\n            \"spread_pct\": 0.0859,\n            \"vega_loss\": 0.0766,\n            \"delta\": 0.6022,\n            \"iv_drop_assumed\": 0.07,\n            \"cost_basis\": 37.85,\n            \"is_spread\": false,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.12,\n            \"dte\": 85\n          },\n          \"annualized_roi\": 1.744,\n          \"strategy\": \"LONG_PUT\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 6.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0321,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.6564\n      },\n      \"simulation\": {\n        \"current_price\": 403.31,\n        \"target_price\": 435.57,\n        \"hit_rate\": 0.7214,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0305,\n        \"alpha\": 0.00219\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"US-China Chip Export Restrictions sind ein massives strukturelles Risiko f\\u00fcr AMAT. Applied Materials generiert ca. 25-30% seines Umsatzes in China. Neue oder versch\\u00e4rfte Exportkontrollen \\u2013 insbesondere wenn Micron aktiv beim US-Kongress lobbyiert, Chip-Tool-Verk\\u00e4ufe an chinesische Wettbewerber einzuschr\\u00e4nken \\u2013 k\\u00f6nnten direkt auf AMATs China-Gesch\\u00e4ft zielen. Ein Guidance-Cut w\\u00e4re bei den n\\u00e4chsten Earnings fast unvermeidlich, und der Markt w\\u00fcrde dies mit einem deutlichen Abschlag von 10-20% bestrafen.\",\n          \"argument_2\": \"Die Bewertung erscheint bereits gestreckt ('Valuation Looks Stretched' laut Barron's-Headline). Bei einem KGV von ca. 28-30x und einem Kurs von $403, der in 48h bereits +3% gestiegen ist, ist viel positives Szenario eingepreist. Das Insider-Cluster-Signal k\\u00f6nnte auch als Contrarian-Warnsignal interpretiert werden: Insider kaufen oft vor Lock-up-Abl\\u00e4ufen oder zur Signalisierung, nicht weil ein unmittelbarer Katalysator bevorsteht \\u2013 der Kursanstieg k\\u00f6nnte einfach Short-Covering nach dem letzten Ausverkauf sein, nicht echter Momentum.\",\n          \"argument_3\": \"EPS-Diskrepanz zwischen yfinance ($14.07) und SEC EDGAR ($9.75) \\u2013 eine Abweichung von \\u00fcber 44% \\u2013 ist hochgradig verd\\u00e4chtig. Diese Diskrepanz deutet auf unterschiedliche EPS-Definitionen hin (GAAP vs. non-GAAP), was Bewertungsmodelle verzerrt. Wenn der Markt auf Basis von non-GAAP-EPS bewertet und die Regulatoren oder Analysten auf GAAP-Basis korrigieren, ergibt sich ein signifikant h\\u00f6heres KGV und damit erh\\u00f6htes Downside-Risiko.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Der Quick MC wurde nicht durchgef\\u00fchrt (0 Pfade), daher ist die 0%-Hit-Rate nicht als tats\\u00e4chliches statistisches Signal zu interpretieren \\u2013 sie ist schlicht nicht vorhanden. Dies reduziert die quantitative Konfidenz erheblich. Ohne MC-Daten muss die Bewertung st\\u00e4rker auf fundamentale und makro-basierte Einsch\\u00e4tzungen gest\\u00fctzt werden, was die Gesamtkonfidenz auf 'medium' reduziert.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BEARISH\",\n        \"bear_case_severity\": 7,\n        \"time_to_materialization\": \"4-8 Wochen\",\n        \"asymmetry_reasoning\": \"Der Markt scheint das Insider-Kaufsignal als bullishes Zeichen zu deuten und reagiert mit +3% innerhalb von 48h positiv. Jedoch wird die strukturelle Bedrohung durch versch\\u00e4rfte US-China Exportrestriktionen \\u2013 befeuert durch aktives Lobbying von Micron beim US-Kongress \\u2013 als mittelfristiges Risiko m\\u00f6glicherweise untersch\\u00e4tzt. Applied Materials ist als Hersteller von Chip-Fertigungsanlagen direkt exponiert, da ein Gro\\u00dfteil des China-Umsatzes von neuen Restriktionen betroffen sein k\\u00f6nnte. Die 'Valuation Looks Stretched'-Schlagzeile und die EPS-Diskrepanz zwischen GAAP und non-GAAP (44% Differenz) legen nahe, dass Marktanalysten auf optimistischeren Kennzahlen bewertet haben. Der n\\u00e4chste Earnings-Katalysator k\\u00f6nnte einen doppelten Schock liefern: niedrigere Guidance wegen China-Risiken plus Bewertungskorrektur durch den Multiplikator-Effekt bei hohem Ausgangskurs.\",\n        \"catalyst\": \"N\\u00e4chste AMAT Earnings mit m\\u00f6glichem China-Guidance-Cut durch versch\\u00e4rfte US-Exportrestriktionen auf Halbleiter-Equipment\",\n        \"bear_case\": \"Versch\\u00e4rfte US-Exportkontrollen f\\u00fcr Chip-Equipment nach chinesischem Lobbying von Micron k\\u00f6nnten AMATs China-Umsatz (25-30% des Gesamtumsatzes) signifikant reduzieren, was zu einem Guidance-Cut und multiplikatorbasierter Bewertungskorrektur f\\u00fchrt.\",\n        \"macro_assessment\": \"Das expansive Makroumfeld mit steiler Zinskurve (+0.52%) und Fed Funds Rate bei 3.64% beg\\u00fcnstigt grunds\\u00e4tzlich Long-Positionen in Technologie. Allerdings ist das idiosynkratische Risiko durch geopolitische Regulierung \\u2013 US-China Trade War Eskalation im Chip-Sektor \\u2013 ein Faktor, der das makro-expansive Signal f\\u00fcr AMAT spezifisch konterkariert. Das expansive Umfeld reduziert das systemische Risiko, sch\\u00fctzt aber nicht vor sektorspezifischem regulatorischen Gegenwind.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.52,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLK\",\n        \"rel_strength\": -0.003\n      },\n      \"final_score\": 0.1451,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 0.3118,\n        \"annualized_roi\": 1.744,\n        \"dte\": 85\n      },\n      \"trade_score\": {\n        \"total\": 50,\n        \"grade\": \"WATCH \\ud83d\\udfe0\",\n        \"grade_short\": \"WATCH\",\n        \"components\": {\n          \"signal_quality\": 21.9,\n          \"options_quality\": 23.3,\n          \"risk_deductions\": -10.0,\n          \"context_bonus\": 15.0\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=6/Surprise=5), guter ROI (26%), expansives Makro-Umfeld | Risiken: hohes Bear-Risiko (7/10)\",\n        \"best_argument_for\": \"Der Markt scheint das Insider-Kaufsignal als bullishes Zeichen zu deuten und reagiert mit +3% innerhalb von 48h positiv. Jedoch wird die strukturelle Bedrohung durch versch\\u00e4rfte US-China Exportrestriktionen \\u2013 befeuert durch aktives Lobbying von Micron beim US-Kongress \\u2013 als mittelfristiges Risiko m\\u00f6glicherweise untersch\\u00e4tzt. Applied Materials ist als Hersteller von Chip-Fertigungsanlagen direkt exponiert, da ein Gro\\u00dfteil des China-Umsatzes von neuen Restriktionen betroffen sein k\\u00f6nnte. Die 'Valuation Looks Stretched'-Schlagzeile und die EPS-Diskrepanz zwischen GAAP und non-GAAP (44% Differenz)\",\n        \"best_argument_against\": \"US-China Chip Export Restrictions sind ein massives strukturelles Risiko f\\u00fcr AMAT. Applied Materials generiert ca. 25-30% seines Umsatzes in China. Neue oder versch\\u00e4rfte Exportkontrollen \\u2013 insbesondere wenn Micron aktiv beim US-Kongress lobbyiert, Chip-Tool-Verk\\u00e4ufe an chinesische Wettbewerber einzuschr\\u00e4nken \\u2013 k\\u00f6nnten direkt auf AMATs China-Gesch\\u00e4ft zielen. Ein Guidance-Cut w\\u00e4re bei den n\\u00e4chsten Earnings fast unvermeidlich, und der Markt w\\u00fcrde dies mit einem deutlichen Abschlag von 10-20% bestrafen.\"\n      },\n      \"trade_rank\": 3\n    }\n  ]\n}"
  },
  {
    "path": "outputs/daily_reports/2026-04-22.md",
    "content": "# Adaptive Asymmetry-Scanner – 2026-04-22\n\n**Generiert:** 2026-04-22 19:35 UTC\n**Trade-Vorschläge:** 3\n\n---\n## 1. APA – LONG_CALL\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.1451`  \n**IV-Rank:** 50.0  \n\n### Asymmetry-Analyse\n- **Impact:** 6/10\n- **Surprise:** 5/10\n- **Mismatch-Score:** 6.0\n- **Z-Score (48h):** 0.0\n- **EPS-Drift:** 0.0 (noise)\n\n**Mispricing-Logik:**  \n> N/A\n\n**Katalysator:** Iran-US-Waffenstillstand-Deadline 22. April: Scheitern der Gespräche → Ölpreisanstieg → APA Re-Rating; alternativ Insider-getriebenes Momentum-Signal mit Q1-Earnings als sekundärem Katalysator  \n**Time-to-Materialization:** 4-8 Wochen  \n\n### Bear Case\n> Geopolitische Einigung vor dem 22. April eliminiert die Risikoprämie im Ölpreis sofort; APA fällt auf Pre-Rally-Niveaus (~$36) zurück, da fundamentale Underperformance und hohe Verschuldung wieder in den Vordergrund treten  \n**Severity:** 6/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 85.0% (10,000 Pfade)\n- **Target-Preis:** $41.23\n- **Aktueller Preis:** $38.18\n- **σ (adj.):** 0.0000\n\n### Options-Vorschlag\n- **Expiry:** 2026-07-17 (85 DTE)\n- **Strike:** $40.00\n- **Bid/Ask:** $3.10 / $3.25\n- **Impl. Vol.:** 53.0%\n- **Open Interest:** 1,564\n- **Bid-Ask-Ratio:** 4.62%\n\n---\n## 2. ABNB – LONG_CALL\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.1451`  \n**IV-Rank:** 42.9  \n\n### Asymmetry-Analyse\n- **Impact:** 6/10\n- **Surprise:** 5/10\n- **Mismatch-Score:** 6.0\n- **Z-Score (48h):** 0.0\n- **EPS-Drift:** 0.0 (noise)\n\n**Mispricing-Logik:**  \n> N/A\n\n**Katalysator:** Wells Fargo Upgrade auf Overweight ($178 Ziel) + Cluster-Insider-Käufe (4 Personen/14 Tage) als Neubewertungs-Signal; nächstes Earnings-Event als Bestätigung der 'Inflection Point'-These  \n**Time-to-Materialization:** 2-3 Monate  \n\n### Bear Case\n> Upgrade bereits eingepreist, Consumer Discretionary leidet bei Verbraucher-Ermüdung, und der EPS-Datendiskrepanz (~44% zwischen yfinance und SEC EDGAR) unterminiert das fundamentale Vertrauensniveau für Options-Positionierung.  \n**Severity:** 5/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 80.0% (10,000 Pfade)\n- **Target-Preis:** $155.83\n- **Aktueller Preis:** $144.28\n- **σ (adj.):** 0.0000\n\n### Options-Vorschlag\n- **Expiry:** 2026-05-08 (15 DTE)\n- **Strike:** $140.00\n- **Bid/Ask:** $8.80 / $9.55\n- **Impl. Vol.:** 57.3%\n- **Open Interest:** 194\n- **Bid-Ask-Ratio:** 7.85%\n\n---\n## 3. AMAT – LONG_PUT\n\n**Richtung:** BEARISH  \n**FinalScore:** `0.1451`  \n**IV-Rank:** 56.1  \n\n### Asymmetry-Analyse\n- **Impact:** 6/10\n- **Surprise:** 5/10\n- **Mismatch-Score:** 6.0\n- **Z-Score (48h):** 0.0\n- **EPS-Drift:** 0.0 (noise)\n\n**Mispricing-Logik:**  \n> N/A\n\n**Katalysator:** Nächste AMAT Earnings mit möglichem China-Guidance-Cut durch verschärfte US-Exportrestriktionen auf Halbleiter-Equipment  \n**Time-to-Materialization:** 4-8 Wochen  \n\n### Bear Case\n> Verschärfte US-Exportkontrollen für Chip-Equipment nach chinesischem Lobbying von Micron könnten AMATs China-Umsatz (25-30% des Gesamtumsatzes) signifikant reduzieren, was zu einem Guidance-Cut und multiplikatorbasierter Bewertungskorrektur führt.  \n**Severity:** 7/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 72.1% (10,000 Pfade)\n- **Target-Preis:** $435.57\n- **Aktueller Preis:** $403.31\n- **σ (adj.):** 0.0000\n\n### Options-Vorschlag\n- **Expiry:** 2026-07-17 (85 DTE)\n- **Strike:** $390.00\n- **Bid/Ask:** $34.60 / $37.85\n- **Impl. Vol.:** 55.2%\n- **Open Interest:** 585\n- **Bid-Ask-Ratio:** 8.59%\n\n---\n## Modell-Gewichte (aktuell)\n- Impact: `0.35`\n- Mismatch: `0.45`\n- EPS-Drift: `0.20`\n\n_Automatisch generiert durch Adaptive Asymmetry-Scanner v3.5_"
  },
  {
    "path": "outputs/daily_reports/2026-04-23.json",
    "content": "{\n  \"date\": \"2026-04-23\",\n  \"proposals\": [\n    {\n      \"ticker\": \"BX\",\n      \"strategy\": \"LONG_CALL\",\n      \"iv_rank\": 69.0,\n      \"iv_gate_applied\": false,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-07-17\",\n        \"strike\": 120.0,\n        \"bid\": 10.1,\n        \"ask\": 10.45,\n        \"open_interest\": 1675,\n        \"implied_vol\": 0.4165097412109374,\n        \"spread_ratio\": 0.0335,\n        \"dte\": 84\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 0.5414,\n        \"roi_net\": 0.4104,\n        \"spread_pct\": 0.0335,\n        \"vega_loss\": 0.0641,\n        \"delta\": 0.5779,\n        \"iv_drop_assumed\": 0.07,\n        \"cost_basis\": 10.45,\n        \"is_spread\": false,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.12,\n        \"dte\": 84\n      },\n      \"dte_tier\": \"Mid-Term\",\n      \"annualized_roi\": 3.4558,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Mid-Term\",\n          \"dte\": 84,\n          \"option\": {\n            \"expiry\": \"2026-07-17\",\n            \"strike\": 120.0,\n            \"bid\": 10.1,\n            \"ask\": 10.45,\n            \"open_interest\": 1675,\n            \"implied_vol\": 0.4165097412109374,\n            \"spread_ratio\": 0.0335,\n            \"dte\": 84\n          },\n          \"roi\": {\n            \"roi_gross\": 0.5414,\n            \"roi_net\": 0.4104,\n            \"spread_pct\": 0.0335,\n            \"vega_loss\": 0.0641,\n            \"delta\": 0.5779,\n            \"iv_drop_assumed\": 0.07,\n            \"cost_basis\": 10.45,\n            \"is_spread\": false,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.12,\n            \"dte\": 84\n          },\n          \"annualized_roi\": 3.4558,\n          \"strategy\": \"LONG_CALL\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 6.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0274,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.5094\n      },\n      \"simulation\": {\n        \"current_price\": 122.34,\n        \"target_price\": 132.13,\n        \"hit_rate\": 0.6016,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0233,\n        \"alpha\": 0.0007\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Die 48h-Preisbewegung von -5.2% signalisiert, dass der Markt trotz positiver Q1-Earnings aktiv Risiko abbaut. Das deutet darauf hin, dass entweder die Earnings-Qualit\\u00e4t (z.B. unrealisierte Bewertungsgewinne in illiquiden Portfolios) angezweifelt wird oder dass der BDC-Sektor-Gegenwind als strukturelles Problem f\\u00fcr Blackstones Fundraising-Pipeline interpretiert wird.\",\n          \"argument_2\": \"Die eklatante EPS-Abweichung zwischen yfinance (7.65) und SEC EDGAR (3.87) ist ein erhebliches Datenkvalit\\u00e4tsproblem. Wenn die relevante GAAP-EPS laut SEC nur 3.87 betr\\u00e4gt, ist das Earnings-Beat-Narrativ m\\u00f6glicherweise auf Distributable Earnings oder Non-GAAP-Metriken basiert, die bei steigenden Risikopr\\u00e4mien im alternatives-Sektor schnell kollabieren k\\u00f6nnen.\",\n          \"argument_3\": \"Der BDC-Markt-Gegenwind (Blackstone zahlt 850M$ Bond-Pr\\u00e4mie trotz Turbulenzen) deutet auf erh\\u00f6hte Refinanzierungskosten und komprimierende Spreads hin. Bei einem AUM von 1.3T$ ist die Marginalit\\u00e4t neuer Kapitalzufl\\u00fcsse sinkend, und Retail-Investoren in BX-Vehikeln (BREIT, BCRED) k\\u00f6nnten bei anhaltender Sektor-Schw\\u00e4che R\\u00fccknahmen erh\\u00f6hen.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"0% Hit-Rate bedeutet, dass kein Quick MC durchgef\\u00fchrt wurde \\u2014 keine statistische Validierung m\\u00f6glich. Dies ist ein erheblicher blinder Fleck: Bei einer 48h-Bewegung von -5.2% und dem aktuellen Momentum fehlt jede probabilistische Absch\\u00e4tzung des Aufw\\u00e4rtspotenzials. Die Abwesenheit dieser Daten erh\\u00f6ht die Unsicherheit, rechtfertigt aber keinen Trade-Ausschluss allein.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt bestraft BX wegen BDC-Sektor-Contagion, obwohl Blackstone als GP fundamental anders positioniert ist als BDCs. Das Insider-Cluster-Signal (6 K\\u00e4ufe in 14 Tagen) kombiniert mit Rekord-AUM suggeriert, dass das Sell-off \\u00fcberproportional ist. Das expansive Makroumfeld mit steiler Kurve beg\\u00fcnstigt re-pricing von Alternatives-Managern auf einem 2-3 Monats-Horizont.\",\n        \"catalyst\": \"Q2 2026 Earnings mit weiterem AUM-Wachstum und potenzieller Ank\\u00fcndigung neuer Fundraising-Vehikel \\u2014 erwartet ca. Juli 2026\",\n        \"bear_case\": \"Anhaltende Retail-R\\u00fccknahmen aus BREIT/BCRED k\\u00f6nnten Fee-Revenue belasten und das AUM-Wachstums-Narrativ untergraben, w\\u00e4hrend die Bond-Emission zu h\\u00f6heren Kosten die Marge im Kreditgesch\\u00e4ft komprimiert.\",\n        \"macro_assessment\": \"Die steile Zinskurve (+0.51%) und Fed Funds Rate von 3.64% sind strukturell positiv f\\u00fcr Alternatives-Manager: h\\u00f6here Renditeerwartungen treiben institutionelle Allokationen in Private Credit und Real Assets. Das expansive Regime st\\u00fctzt das BULLISH-Urteil, reduziert aber nicht die idiosynkratischen BDC-Sektor-Risiken.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.51,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLF\",\n        \"rel_strength\": 0.036\n      },\n      \"final_score\": 0.1458,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 0.4886,\n        \"annualized_roi\": 3.4558,\n        \"dte\": 84\n      },\n      \"trade_score\": {\n        \"total\": 77,\n        \"grade\": \"STRONG BUY \\ud83d\\udfe2\",\n        \"grade_short\": \"STRONG BUY\",\n        \"components\": {\n          \"signal_quality\": 21.9,\n          \"options_quality\": 30.0,\n          \"risk_deductions\": 0.0,\n          \"context_bonus\": 25.0\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=6/Surprise=5), guter ROI (41%), positive Sektor-Relative-St\\u00e4rke\",\n        \"best_argument_for\": \"Der Markt bestraft BX wegen BDC-Sektor-Contagion, obwohl Blackstone als GP fundamental anders positioniert ist als BDCs. Das Insider-Cluster-Signal (6 K\\u00e4ufe in 14 Tagen) kombiniert mit Rekord-AUM suggeriert, dass das Sell-off \\u00fcberproportional ist. Das expansive Makroumfeld mit steiler Kurve beg\\u00fcnstigt re-pricing von Alternatives-Managern auf einem 2-3 Monats-Horizont.\",\n        \"best_argument_against\": \"Die 48h-Preisbewegung von -5.2% signalisiert, dass der Markt trotz positiver Q1-Earnings aktiv Risiko abbaut. Das deutet darauf hin, dass entweder die Earnings-Qualit\\u00e4t (z.B. unrealisierte Bewertungsgewinne in illiquiden Portfolios) angezweifelt wird oder dass der BDC-Sektor-Gegenwind als strukturelles Problem f\\u00fcr Blackstones Fundraising-Pipeline interpretiert wird.\"\n      },\n      \"trade_rank\": 1\n    },\n    {\n      \"ticker\": \"DVA\",\n      \"strategy\": \"LONG_CALL\",\n      \"iv_rank\": 33.8,\n      \"iv_gate_applied\": false,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-07-17\",\n        \"strike\": 160.0,\n        \"bid\": 9.7,\n        \"ask\": 10.5,\n        \"open_interest\": 1505,\n        \"implied_vol\": 0.4100400793457031,\n        \"spread_ratio\": 0.0762,\n        \"dte\": 84\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 0.5793,\n        \"roi_net\": 0.4036,\n        \"spread_pct\": 0.0762,\n        \"vega_loss\": 0.0233,\n        \"delta\": 0.4874,\n        \"iv_drop_assumed\": 0.02,\n        \"cost_basis\": 10.5,\n        \"is_spread\": false,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.12,\n        \"dte\": 84\n      },\n      \"dte_tier\": \"Mid-Term\",\n      \"annualized_roi\": 3.3632,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Mid-Term\",\n          \"dte\": 84,\n          \"option\": {\n            \"expiry\": \"2026-07-17\",\n            \"strike\": 160.0,\n            \"bid\": 9.7,\n            \"ask\": 10.5,\n            \"open_interest\": 1505,\n            \"implied_vol\": 0.4100400793457031,\n            \"spread_ratio\": 0.0762,\n            \"dte\": 84\n          },\n          \"roi\": {\n            \"roi_gross\": 0.5793,\n            \"roi_net\": 0.4036,\n            \"spread_pct\": 0.0762,\n            \"vega_loss\": 0.0233,\n            \"delta\": 0.4874,\n            \"iv_drop_assumed\": 0.02,\n            \"cost_basis\": 10.5,\n            \"is_spread\": false,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.12,\n            \"dte\": 84\n          },\n          \"annualized_roi\": 3.3632,\n          \"strategy\": \"LONG_CALL\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 6,\n        \"mismatch\": 5.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0156,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.7608\n      },\n      \"simulation\": {\n        \"current_price\": 155.96,\n        \"target_price\": 168.44,\n        \"hit_rate\": 0.828,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0267,\n        \"alpha\": 0.00411\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Der Xeltis-Katalysator betrifft ein Fremdunternehmen (Xeltis), nicht DaVita direkt. DVA ist prim\\u00e4r ein Dialyse-Dienstleister (Kliniken), kein Ger\\u00e4tehersteller \\u2014 ein CE-Mark f\\u00fcr ein Konkurrenzprodukt oder ein Partnerprodukt, das DVAs bestehende Infrastruktur unter Druck setzen k\\u00f6nnte, w\\u00e4re eher negativ. Der direkte kausale Link zwischen Xeltis-Zulassung und DVA-Kursanstieg ist analytisch fragw\\u00fcrdig und m\\u00f6glicherweise ein Fehler im Prescreening.\",\n          \"argument_2\": \"Der Kursanstieg von +3.9% in 48h deutet darauf hin, dass der Markt den Catalyst bereits teilweise eingepreist hat. Bei einem IV-sensitiven Optionshandel im Bereich 2-6 Monate besteht erhebliches IV-Crush-Risiko nach dem n\\u00e4chsten Earnings oder nach dem FDA-Katalysator \\u2014 der erwartete Move ist wom\\u00f6glich bereits im Preis, und Calls werden durch sinkende implizite Volatilit\\u00e4t nach dem Event wertlos.\",\n          \"argument_3\": \"Der EPS-Konflikt zwischen yfinance (16.40) und SEC EDGAR (9.51) ist signifikant, auch wenn die ausgewiesene Abweichung mit 0% falsch kalkuliert erscheint. Eine solche Diskrepanz kann auf adjustierte vs. GAAP-Zahlen hinweisen und untergr\\u00e4bt die Bewertungsgrundlage. DVA operiert zudem in einem regulatorisch stark belasteten Umfeld (CMS-Erstattungsk\\u00fcrzungen, ESRD-Politikrisiken), was mittelfristige fundamentale Upside limitiert.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein MC durchgef\\u00fchrt (0 Pfade). Eine Hit-Rate von 0% ist nicht inhaltlich aussagekr\\u00e4ftig \\u2014 es fehlen schlicht Daten. Das Signal kann weder statistisch best\\u00e4tigt noch verworfen werden. Concern ist moderat, da das Fehlen des MC-Filters keine Filterfunktion aus\\u00fcbt.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 5,\n        \"surprise\": 6,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt untersch\\u00e4tzt m\\u00f6glicherweise das Insider-Cluster-Signal (7 K\\u00e4ufe in 14 Tagen), das auf informierten Flow hindeutet. Der Xeltis CE-Mark er\\u00f6ffnet DVA als Klinikbetreiber potenziell Zugang zu \\u00fcberlegener Technologie, was Margenvorteile bringen k\\u00f6nnte. Das expansive Makroumfeld unterst\\u00fctzt Healthcare-Longs strukturell.\",\n        \"catalyst\": \"Xeltis CE-Mark f\\u00fcr aXess H\\u00e4modialyse-Konduit kombiniert mit Insider-Cluster-K\\u00e4ufen als Signal f\\u00fcr erwarteten positiven Newsflow bis Q3 2026\",\n        \"bear_case\": \"DVA ist Dienstleister, kein Ger\\u00e4tehersteller \\u2014 Xeltis-Zulassung hat keinen direkten P&L-Impact und der +3.9%-Move k\\u00f6nnte bereits den gesamten \\u00dcberraschungseffekt absorbiert haben.\",\n        \"macro_assessment\": \"Steile Zinskurve (+0.51%) und Fed Funds Rate bei 3.64% signalisieren expansives Umfeld. Healthcare-Sektor profitiert moderat von sinkenden Finanzierungskosten. Kein makro\\u00f6konomischer Gegenwind f\\u00fcr mittelfristige Long-Positionen erkennbar \\u2014 das Regime unterst\\u00fctzt den Trade.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.51,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLV\",\n        \"rel_strength\": 0.0854\n      },\n      \"final_score\": 0.1458,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 0.4805,\n        \"annualized_roi\": 3.3632,\n        \"dte\": 84\n      },\n      \"trade_score\": {\n        \"total\": 74,\n        \"grade\": \"BUY \\ud83d\\udfe1\",\n        \"grade_short\": \"BUY\",\n        \"components\": {\n          \"signal_quality\": 21.9,\n          \"options_quality\": 27.0,\n          \"risk_deductions\": 0.0,\n          \"context_bonus\": 25.0\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=5/Surprise=6), guter ROI (40%), g\\u00fcnstige IV (34%)\",\n        \"best_argument_for\": \"Der Markt untersch\\u00e4tzt m\\u00f6glicherweise das Insider-Cluster-Signal (7 K\\u00e4ufe in 14 Tagen), das auf informierten Flow hindeutet. Der Xeltis CE-Mark er\\u00f6ffnet DVA als Klinikbetreiber potenziell Zugang zu \\u00fcberlegener Technologie, was Margenvorteile bringen k\\u00f6nnte. Das expansive Makroumfeld unterst\\u00fctzt Healthcare-Longs strukturell.\",\n        \"best_argument_against\": \"Der Xeltis-Katalysator betrifft ein Fremdunternehmen (Xeltis), nicht DaVita direkt. DVA ist prim\\u00e4r ein Dialyse-Dienstleister (Kliniken), kein Ger\\u00e4tehersteller \\u2014 ein CE-Mark f\\u00fcr ein Konkurrenzprodukt oder ein Partnerprodukt, das DVAs bestehende Infrastruktur unter Druck setzen k\\u00f6nnte, w\\u00e4re eher negativ. Der direkte kausale Link zwischen Xeltis-Zulassung und DVA-Kursanstieg ist analytisch fragw\\u00fcrdig und m\\u00f6glicherweise ein Fehler im Prescreening.\"\n      },\n      \"trade_rank\": 2\n    },\n    {\n      \"ticker\": \"AXP\",\n      \"strategy\": \"LONG_CALL\",\n      \"iv_rank\": 33.7,\n      \"iv_gate_applied\": false,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-07-17\",\n        \"strike\": 340.0,\n        \"bid\": 9.65,\n        \"ask\": 10.05,\n        \"open_interest\": 283,\n        \"implied_vol\": 0.308051353149414,\n        \"spread_ratio\": 0.0398,\n        \"dte\": 84\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 0.8529,\n        \"roi_net\": 0.7393,\n        \"spread_pct\": 0.0398,\n        \"vega_loss\": 0.034,\n        \"delta\": 0.3387,\n        \"iv_drop_assumed\": 0.02,\n        \"cost_basis\": 10.05,\n        \"is_spread\": false,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.12,\n        \"dte\": 84\n      },\n      \"dte_tier\": \"Mid-Term\",\n      \"annualized_roi\": 10.0786,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Mid-Term\",\n          \"dte\": 84,\n          \"option\": {\n            \"expiry\": \"2026-07-17\",\n            \"strike\": 340.0,\n            \"bid\": 9.65,\n            \"ask\": 10.05,\n            \"open_interest\": 283,\n            \"implied_vol\": 0.308051353149414,\n            \"spread_ratio\": 0.0398,\n            \"dte\": 84\n          },\n          \"roi\": {\n            \"roi_gross\": 0.8529,\n            \"roi_net\": 0.7393,\n            \"spread_pct\": 0.0398,\n            \"vega_loss\": 0.034,\n            \"delta\": 0.3387,\n            \"iv_drop_assumed\": 0.02,\n            \"cost_basis\": 10.05,\n            \"is_spread\": false,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.12,\n            \"dte\": 84\n          },\n          \"annualized_roi\": 10.0786,\n          \"strategy\": \"LONG_CALL\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 6.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.016,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.5022\n      },\n      \"simulation\": {\n        \"current_price\": 316.25,\n        \"target_price\": 341.56,\n        \"hit_rate\": 0.6196,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0179,\n        \"alpha\": 0.00148\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Die -4,0% Preisbewegung der letzten 48h deutet darauf hin, dass der Q1 2026 Earnings Call trotz Rekord-Ausgabenwachstum die Erwartungen nicht vollst\\u00e4ndig erf\\u00fcllt hat \\u2014 m\\u00f6glicherweise durch vorsichtigere Guidance, steigende Kreditausf\\u00e4lle oder entt\\u00e4uschende Margenentwicklung. Wenn der Markt trotz positiver Headline-Zahlen verkauft, ist das ein klassisches 'buy the rumor, sell the news'-Muster, das eine fundamentale Neubewertung nach unten signalisieren k\\u00f6nnte.\",\n          \"argument_2\": \"Der EPS-Widerspruch zwischen yfinance (20,11) und SEC EDGAR (15,38) ist erheblich und trotz der '0% Abweichung'-Angabe methodisch beunruhigend \\u2014 dies k\\u00f6nnte auf unterschiedliche Berechnungsbasen (GAAP vs. Non-GAAP, verw\\u00e4ssert vs. unverw\\u00e4ssert) hindeuten. Wenn das 'wahre' EPS n\\u00e4her an 15,38 liegt, ist AXP bei $316,25 mit einem KGV von ~20,5x in einem Umfeld steigender Kreditkosten und Konsumentendruck m\\u00f6glicherweise strukturell \\u00fcberteuert.\",\n          \"argument_3\": \"Der Consumer-Kreditsektor steht 2026 unter zunehmendem Druck durch verz\\u00f6gerte Transmissionseffekte der vorherigen Zinserh\\u00f6hungszyklen \\u2014 trotz aktuell expansivem Makro bleibt die Kreditkartenausfallrate ein strukturelles Risiko f\\u00fcr AXP. Zudem sind Insider-Cluster-K\\u00e4ufe bei Finanzwerten oft ambivalente Signale, da Management-Teams ihre eigene Aktie routinem\\u00e4\\u00dfig nach Kursr\\u00fcckg\\u00e4ngen kaufen, ohne fundamentale Trendwenden zu signalisieren.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Der Quick MC wurde nicht durchgef\\u00fchrt (0 Pfade), daher ist die 0%-Hit-Rate nicht interpretierbar \\u2014 sie reflektiert einen technischen Ausfall des Vorfilters, keine echte Wahrscheinlichkeitsaussage. Dies erh\\u00f6ht die Unsicherheit erheblich, da keine statistische Bandbreite f\\u00fcr 30-Tage-Preispfade vorliegt. Das Fehlen des MC-Outputs muss als Datenl\\u00fccke gewertet werden, nicht als bearishes Signal per se.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 5,\n        \"time_to_materialization\": \"4-8 Wochen\",\n        \"asymmetry_reasoning\": \"Der Markt reagiert kurzfristig \\u00fcberproportional auf den Kursr\\u00fcckgang nach Earnings, obwohl das h\\u00f6chste Ausgabenwachstum seit 3 Jahren strukturell positiv ist. Insider-Cluster-K\\u00e4ufe direkt nach dem Kursrutsch deuten darauf hin, dass Insider die Bewertung als attraktiv einstufen. Das expansive Makro-Umfeld mit steiler Zinskurve beg\\u00fcnstigt Konsumfinanzierung und st\\u00fctzt das mittelfristige Ertragspotenzial von AXP.\",\n        \"catalyst\": \"Revision der Konsenssch\\u00e4tzungen nach oben durch Sell-Side-Analysten infolge des Rekord-Ausgabenwachstums im Q1 2026 sowie potenzielle Guidance-Erh\\u00f6hung im n\\u00e4chsten Earnings-Zyklus (Q2 2026)\",\n        \"bear_case\": \"Trotz Rekord-Ausgabenwachstum k\\u00f6nnte eine Verschlechterung der Kreditqualit\\u00e4t (steigende Delinquency-Raten im Prime-Consumer-Segment) die Margen komprimieren und den Bullish-Case zunichte machen, insbesondere wenn die Fed die Zinsen l\\u00e4nger hochh\\u00e4lt als erwartet.\",\n        \"macro_assessment\": \"Das expansive Makro-Umfeld (10Y-2Y Spread +0,51%, Fed Funds Rate 3,64%) ist strukturell positiv f\\u00fcr AXP: Eine steile Zinskurve verbessert die Net Interest Margins im Kreditkartengesch\\u00e4ft, und das Konsumklima bleibt tendenziell unterst\\u00fctzend. Dennoch mahnt das aktuelle Zinsniveau von 4,25% (10Y) zur Vorsicht bei zyklischen Konsumfinanzwerten, da Kreditkosten f\\u00fcr Endverbraucher noch erh\\u00f6ht bleiben.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.51,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLF\",\n        \"rel_strength\": 0.0188\n      },\n      \"final_score\": 0.1458,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 0.8801,\n        \"annualized_roi\": null,\n        \"dte\": 84\n      },\n      \"trade_score\": {\n        \"total\": 68,\n        \"grade\": \"BUY \\ud83d\\udfe1\",\n        \"grade_short\": \"BUY\",\n        \"components\": {\n          \"signal_quality\": 21.9,\n          \"options_quality\": 26.5,\n          \"risk_deductions\": 0.0,\n          \"context_bonus\": 20.0\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=6/Surprise=5), guter ROI (74%), g\\u00fcnstige IV (34%)\",\n        \"best_argument_for\": \"Der Markt reagiert kurzfristig \\u00fcberproportional auf den Kursr\\u00fcckgang nach Earnings, obwohl das h\\u00f6chste Ausgabenwachstum seit 3 Jahren strukturell positiv ist. Insider-Cluster-K\\u00e4ufe direkt nach dem Kursrutsch deuten darauf hin, dass Insider die Bewertung als attraktiv einstufen. Das expansive Makro-Umfeld mit steiler Zinskurve beg\\u00fcnstigt Konsumfinanzierung und st\\u00fctzt das mittelfristige Ertragspotenzial von AXP.\",\n        \"best_argument_against\": \"Die -4,0% Preisbewegung der letzten 48h deutet darauf hin, dass der Q1 2026 Earnings Call trotz Rekord-Ausgabenwachstum die Erwartungen nicht vollst\\u00e4ndig erf\\u00fcllt hat \\u2014 m\\u00f6glicherweise durch vorsichtigere Guidance, steigende Kreditausf\\u00e4lle oder entt\\u00e4uschende Margenentwicklung. Wenn der Markt trotz positiver Headline-Zahlen verkauft, ist das ein klassisches 'buy the rumor, sell the news'-Muster, das eine fundamentale Neubewertung nach unten signalisieren k\\u00f6nnte.\"\n      },\n      \"trade_rank\": 3\n    },\n    {\n      \"ticker\": \"T\",\n      \"strategy\": \"LONG_CALL\",\n      \"iv_rank\": 43.3,\n      \"iv_gate_applied\": false,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-05-08\",\n        \"strike\": 26.0,\n        \"bid\": 0.89,\n        \"ask\": 0.98,\n        \"open_interest\": 272,\n        \"implied_vol\": 0.28125718749999995,\n        \"spread_ratio\": 0.0918,\n        \"dte\": 14\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 1.5,\n        \"roi_net\": 1.2899,\n        \"spread_pct\": 0.0918,\n        \"vega_loss\": 0.0264,\n        \"delta\": 0.6901,\n        \"iv_drop_assumed\": 0.05,\n        \"cost_basis\": 0.98,\n        \"is_spread\": false,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.15,\n        \"dte\": 14\n      },\n      \"dte_tier\": \"Short-Term\",\n      \"annualized_roi\": 2403978749.1632,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Short-Term\",\n          \"dte\": 14,\n          \"option\": {\n            \"expiry\": \"2026-05-08\",\n            \"strike\": 26.0,\n            \"bid\": 0.89,\n            \"ask\": 0.98,\n            \"open_interest\": 272,\n            \"implied_vol\": 0.28125718749999995,\n            \"spread_ratio\": 0.0918,\n            \"dte\": 14\n          },\n          \"roi\": {\n            \"roi_gross\": 1.5,\n            \"roi_net\": 1.2899,\n            \"spread_pct\": 0.0918,\n            \"vega_loss\": 0.0264,\n            \"delta\": 0.6901,\n            \"iv_drop_assumed\": 0.05,\n            \"cost_basis\": 0.98,\n            \"is_spread\": false,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.15,\n            \"dte\": 14\n          },\n          \"annualized_roi\": 2403978749.1632,\n          \"strategy\": \"LONG_CALL\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 6.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0158,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.652\n      },\n      \"simulation\": {\n        \"current_price\": 26.68,\n        \"target_price\": 28.81,\n        \"hit_rate\": 0.7936,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0146,\n        \"alpha\": 0.00311\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"AT&T tr\\u00e4gt eine massive Schuldenlast von \\u00fcber 130 Mrd. USD, die trotz Fiber-Wachstum die freien Cashflows erheblich unter Druck setzt. In einem Umfeld mit Fed Funds Rate von 3.64% bleiben Refinanzierungskosten hoch, was strukturelle Margenpotenziale systematisch auffrisst und das Upside f\\u00fcr Aktion\\u00e4re begrenzt.\",\n          \"argument_2\": \"Scotiabank hat das Kursziel gerade erst auf $31 GESENKT \\u2013 trotz 'Sector Perform'-Rating. Dies signalisiert, dass selbst Bullen die Erwartungen nach unten korrigieren. Ein gesenktes Kursziel bei gleichzeitigem Kursanstieg von +2.8% in 48h riecht nach einem bereits eingepreisten Kurzfrist-Bounce, nicht nach nachhaltigem strukturellen Aufw\\u00e4rtstrend.\",\n          \"argument_3\": \"Das Fiber-Expansion-Narrativ ist in der Telekombranche seit Jahren bekannt und von Analysten intensiv beobachtet. Die Convergence-Strategie ist kein Geheimnis \\u2013 sie wird in jedem Earnings-Call kommuniziert. Das Risiko eines IV-Crush nach dem Q1-Earnings-Event ist erheblich: Optionspr\\u00e4mien werden vor dem Katalysator aufgebl\\u00e4ht und kollabieren danach unabh\\u00e4ngig vom Ergebnis.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein Quick MC wurde durchgef\\u00fchrt (0 Pfade), daher ist die 0%-Hit-Rate nicht aussagekr\\u00e4ftig \\u2013 sie reflektiert fehlende Simulation, nicht ein negatives Signal. Die Abwesenheit statistischer Validierung erh\\u00f6ht die Unsicherheit und sollte als mittleres Warnsignal gewertet werden.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 5,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt bewertet AT&T prim\\u00e4r als Schulden-Story und \\u00fcbersieht die operative Hebelwirkung beschleunigter Fiber-Penetration auf EBITDA-Margen ab 2H 2026. Cluster-Insider-K\\u00e4ufe von 8 Personen binnen 14 Tagen signalisieren Insider\\u00fcberzeugung, die \\u00f6ffentlich noch nicht vollst\\u00e4ndig in Konsenssch\\u00e4tzungen eingeflossen ist. Die Kombination aus expansivem Makro-Umfeld und struktureller Margin-Verbesserung schafft einen asymmetrischen Einstiegspunkt.\",\n        \"catalyst\": \"Q2 2026 Earnings mit erh\\u00f6hter 2H-Guidance durch Fiber-Subscriber-Wachstum und Convergence-Bundle-Margen \\u00fcber Konsenserwartung\",\n        \"bear_case\": \"Hohe Schuldenlast begrenzt Aktion\\u00e4rs-Upside strukturell; Scotiabank-Kurszielsenkung signalisiert ged\\u00e4mpfte Erwartungen selbst bullischer Analysten\",\n        \"macro_assessment\": \"Expansives Makro-Umfeld mit steiler Zinskurve (+0.51%) und moderatem Fed Funds Rate (3.64%) beg\\u00fcnstigt Long-Positionen in zinssensitiven High-Yield-Sektoren wie Telekom. AT&T profitiert von stabilen Finanzierungsbedingungen f\\u00fcr Fiber-CapEx und attraktiver Dividendenrendite im aktuellen Zinsumfeld.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.51,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLC\",\n        \"rel_strength\": -0.0656\n      },\n      \"final_score\": 0.1458,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 9.2136,\n        \"annualized_roi\": null,\n        \"dte\": 14\n      },\n      \"trade_score\": {\n        \"total\": 60,\n        \"grade\": \"BUY \\ud83d\\udfe1\",\n        \"grade_short\": \"BUY\",\n        \"components\": {\n          \"signal_quality\": 21.9,\n          \"options_quality\": 23.5,\n          \"risk_deductions\": 0.0,\n          \"context_bonus\": 15.0\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=6/Surprise=5), guter ROI (129%), expansives Makro-Umfeld | Risiken: Sektor underperformt Markt\",\n        \"best_argument_for\": \"Der Markt bewertet AT&T prim\\u00e4r als Schulden-Story und \\u00fcbersieht die operative Hebelwirkung beschleunigter Fiber-Penetration auf EBITDA-Margen ab 2H 2026. Cluster-Insider-K\\u00e4ufe von 8 Personen binnen 14 Tagen signalisieren Insider\\u00fcberzeugung, die \\u00f6ffentlich noch nicht vollst\\u00e4ndig in Konsenssch\\u00e4tzungen eingeflossen ist. Die Kombination aus expansivem Makro-Umfeld und struktureller Margin-Verbesserung schafft einen asymmetrischen Einstiegspunkt.\",\n        \"best_argument_against\": \"AT&T tr\\u00e4gt eine massive Schuldenlast von \\u00fcber 130 Mrd. USD, die trotz Fiber-Wachstum die freien Cashflows erheblich unter Druck setzt. In einem Umfeld mit Fed Funds Rate von 3.64% bleiben Refinanzierungskosten hoch, was strukturelle Margenpotenziale systematisch auffrisst und das Upside f\\u00fcr Aktion\\u00e4re begrenzt.\"\n      },\n      \"trade_rank\": 4\n    },\n    {\n      \"ticker\": \"EQT\",\n      \"strategy\": \"LONG_CALL\",\n      \"iv_rank\": 34.2,\n      \"iv_gate_applied\": false,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-05-08\",\n        \"strike\": 59.0,\n        \"bid\": 1.85,\n        \"ask\": 1.99,\n        \"open_interest\": 153,\n        \"implied_vol\": 0.3667055517578125,\n        \"spread_ratio\": 0.0704,\n        \"dte\": 14\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 1.308,\n        \"roi_net\": 1.1249,\n        \"spread_pct\": 0.0704,\n        \"vega_loss\": 0.0424,\n        \"delta\": 0.548,\n        \"iv_drop_assumed\": 0.05,\n        \"cost_basis\": 1.99,\n        \"is_spread\": false,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.15,\n        \"dte\": 14\n      },\n      \"dte_tier\": \"Short-Term\",\n      \"annualized_roi\": 342122966.7365,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Short-Term\",\n          \"dte\": 14,\n          \"option\": {\n            \"expiry\": \"2026-05-08\",\n            \"strike\": 59.0,\n            \"bid\": 1.85,\n            \"ask\": 1.99,\n            \"open_interest\": 153,\n            \"implied_vol\": 0.3667055517578125,\n            \"spread_ratio\": 0.0704,\n            \"dte\": 14\n          },\n          \"roi\": {\n            \"roi_gross\": 1.308,\n            \"roi_net\": 1.1249,\n            \"spread_pct\": 0.0704,\n            \"vega_loss\": 0.0424,\n            \"delta\": 0.548,\n            \"iv_drop_assumed\": 0.05,\n            \"cost_basis\": 1.99,\n            \"is_spread\": false,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.15,\n            \"dte\": 14\n          },\n          \"annualized_roi\": 342122966.7365,\n          \"strategy\": \"LONG_CALL\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 6,\n        \"mismatch\": 5.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0187,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.683\n      },\n      \"simulation\": {\n        \"current_price\": 59.36,\n        \"target_price\": 64.11,\n        \"hit_rate\": 0.7866,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0203,\n        \"alpha\": 0.00328\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Der M&A-Katalysator (NIIF/Sprng Energy) betrifft prim\\u00e4r ein indisches Infrastrukturunternehmen und EQTs Beteiligung daran ist unklar und spekulativ. Die Verbindung zwischen NIIF's Sprng-Energy-Akquisition und EQT Corp (US Erdgas) ist inhaltlich fraglich \\u2014 es k\\u00f6nnte sich um eine Verwechslung mit EQT AB (schwedische Private-Equity-Gesellschaft) handeln, was die Datenbasis des Signals fundamental besch\\u00e4digt.\",\n          \"argument_2\": \"EQT ist als US-Erdgasproduzent stark von Naturgaspreisen abh\\u00e4ngig. Nach dem +4,1% Anstieg in 48 Stunden k\\u00f6nnte ein erheblicher Teil des Katalysators bereits eingepreist sein. Zudem ist EQT bei aktuellen Gaspreisen (~$3/MMBtu) nur moderat profitabel, und ein R\\u00fcckgang der Erdgaspreise durch milde Sommer-Nachfrage oder hohe Lagerbest\\u00e4nde k\\u00f6nnte den fundamentalen R\\u00fcckenwind neutralisieren.\",\n          \"argument_3\": \"Die 6 Insider-K\\u00e4ufe innerhalb von 14 Tagen sind ein positives Signal, jedoch muss beachtet werden, dass EQT-Insider in der Vergangenheit bei volatilen Energiepreisen oft antizyklisch kauften, ohne dass kurzfristige Kursgewinne folgten. Der Cluster-Kauf k\\u00f6nnte auch auf Optionsaus\\u00fcbungen oder Compensation-Plans zur\\u00fcckgehen und w\\u00e4re damit kein echtes Conviction-Signal.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Die 0% Hit-Rate resultiert aus einem nicht durchgef\\u00fchrten Monte-Carlo-Lauf und ist daher inhaltsleer \\u2014 sie kann weder als bullish noch bearish interpretiert werden. Das Fehlen dieser Statistik erh\\u00f6ht die Unsicherheit, ist aber kein negatives Signal per se.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 5,\n        \"surprise\": 6,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt hat das Insider-Cluster-Signal und den FCF-Rekord m\\u00f6glicherweise noch nicht vollst\\u00e4ndig bewertet, da Energieaktien bei steilen Zinskurven selektiv bevorzugt werden. Die M&A-Verbindung ist spekulativ, aber Recordkassenzufl\\u00fcsse und operative Outperformance schaffen fundamentale Unterst\\u00fctzung. Sollte die NIIF-Verbindung sich als valide herausstellen, existiert ein uneingepreister Katalysator.\",\n        \"catalyst\": \"Q1 Record Free Cash Flow + 6-facher Insider-Kauf-Cluster als Conviction-Signal f\\u00fcr organisches Wachstum; potenzieller M&A-Katalysator in 60-90 Tagen\",\n        \"bear_case\": \"Verwechslungsrisiko EQT Corp vs. EQT AB beim M&A-Signal; Erdgaspreissensitivit\\u00e4t und bereits +4,1% eingepreiste Bewegung reduzieren asymmetrisches Aufw\\u00e4rtspotenzial\",\n        \"macro_assessment\": \"Expansives Makroumfeld mit steiler Zinskurve (+0,51%) und Fed Funds Rate bei 3,64% beg\\u00fcnstigt Energieproduzenten mit starkem FCF-Profil. EQT profitiert von niedrigeren Finanzierungskosten und stabiler Industrienachfrage. Kein makro\\u00f6konomischer Gegenwind erkennbar.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.51,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLE\",\n        \"rel_strength\": -0.054\n      },\n      \"final_score\": 0.1458,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 8.035,\n        \"annualized_roi\": null,\n        \"dte\": 14\n      },\n      \"trade_score\": {\n        \"total\": 60,\n        \"grade\": \"BUY \\ud83d\\udfe1\",\n        \"grade_short\": \"BUY\",\n        \"components\": {\n          \"signal_quality\": 21.9,\n          \"options_quality\": 23.5,\n          \"risk_deductions\": 0.0,\n          \"context_bonus\": 15.0\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=5/Surprise=6), guter ROI (112%), g\\u00fcnstige IV (34%) | Risiken: Sektor underperformt Markt\",\n        \"best_argument_for\": \"Der Markt hat das Insider-Cluster-Signal und den FCF-Rekord m\\u00f6glicherweise noch nicht vollst\\u00e4ndig bewertet, da Energieaktien bei steilen Zinskurven selektiv bevorzugt werden. Die M&A-Verbindung ist spekulativ, aber Recordkassenzufl\\u00fcsse und operative Outperformance schaffen fundamentale Unterst\\u00fctzung. Sollte die NIIF-Verbindung sich als valide herausstellen, existiert ein uneingepreister Katalysator.\",\n        \"best_argument_against\": \"Der M&A-Katalysator (NIIF/Sprng Energy) betrifft prim\\u00e4r ein indisches Infrastrukturunternehmen und EQTs Beteiligung daran ist unklar und spekulativ. Die Verbindung zwischen NIIF's Sprng-Energy-Akquisition und EQT Corp (US Erdgas) ist inhaltlich fraglich \\u2014 es k\\u00f6nnte sich um eine Verwechslung mit EQT AB (schwedische Private-Equity-Gesellschaft) handeln, was die Datenbasis des Signals fundamental besch\\u00e4digt.\"\n      },\n      \"trade_rank\": 5\n    }\n  ]\n}"
  },
  {
    "path": "outputs/daily_reports/2026-04-23.md",
    "content": "# Adaptive Asymmetry-Scanner – 2026-04-23\n\n**Generiert:** 2026-04-23 18:47 UTC\n**Trade-Vorschläge:** 5\n\n---\n## 1. BX – LONG_CALL\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.1458`  \n**IV-Rank:** 69.0  \n\n### Asymmetry-Analyse\n- **Impact:** 6/10\n- **Surprise:** 5/10\n- **Mismatch-Score:** 6.0\n- **Z-Score (48h):** 0.0\n- **EPS-Drift:** 0.0 (noise)\n\n**Mispricing-Logik:**  \n> N/A\n\n**Katalysator:** Q2 2026 Earnings mit weiterem AUM-Wachstum und potenzieller Ankündigung neuer Fundraising-Vehikel — erwartet ca. Juli 2026  \n**Time-to-Materialization:** 2-3 Monate  \n\n### Bear Case\n> Anhaltende Retail-Rücknahmen aus BREIT/BCRED könnten Fee-Revenue belasten und das AUM-Wachstums-Narrativ untergraben, während die Bond-Emission zu höheren Kosten die Marge im Kreditgeschäft komprimiert.  \n**Severity:** 6/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 60.2% (10,000 Pfade)\n- **Target-Preis:** $132.13\n- **Aktueller Preis:** $122.34\n- **σ (adj.):** 0.0000\n\n### Options-Vorschlag\n- **Expiry:** 2026-07-17 (84 DTE)\n- **Strike:** $120.00\n- **Bid/Ask:** $10.10 / $10.45\n- **Impl. Vol.:** 41.7%\n- **Open Interest:** 1,675\n- **Bid-Ask-Ratio:** 3.35%\n\n---\n## 2. DVA – LONG_CALL\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.1458`  \n**IV-Rank:** 33.8  \n\n### Asymmetry-Analyse\n- **Impact:** 5/10\n- **Surprise:** 6/10\n- **Mismatch-Score:** 5.0\n- **Z-Score (48h):** 0.0\n- **EPS-Drift:** 0.0 (noise)\n\n**Mispricing-Logik:**  \n> N/A\n\n**Katalysator:** Xeltis CE-Mark für aXess Hämodialyse-Konduit kombiniert mit Insider-Cluster-Käufen als Signal für erwarteten positiven Newsflow bis Q3 2026  \n**Time-to-Materialization:** 2-3 Monate  \n\n### Bear Case\n> DVA ist Dienstleister, kein Gerätehersteller — Xeltis-Zulassung hat keinen direkten P&L-Impact und der +3.9%-Move könnte bereits den gesamten Überraschungseffekt absorbiert haben.  \n**Severity:** 6/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 82.8% (10,000 Pfade)\n- **Target-Preis:** $168.44\n- **Aktueller Preis:** $155.96\n- **σ (adj.):** 0.0000\n\n### Options-Vorschlag\n- **Expiry:** 2026-07-17 (84 DTE)\n- **Strike:** $160.00\n- **Bid/Ask:** $9.70 / $10.50\n- **Impl. Vol.:** 41.0%\n- **Open Interest:** 1,505\n- **Bid-Ask-Ratio:** 7.62%\n\n---\n## 3. AXP – LONG_CALL\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.1458`  \n**IV-Rank:** 33.7  \n\n### Asymmetry-Analyse\n- **Impact:** 6/10\n- **Surprise:** 5/10\n- **Mismatch-Score:** 6.0\n- **Z-Score (48h):** 0.0\n- **EPS-Drift:** 0.0 (noise)\n\n**Mispricing-Logik:**  \n> N/A\n\n**Katalysator:** Revision der Konsensschätzungen nach oben durch Sell-Side-Analysten infolge des Rekord-Ausgabenwachstums im Q1 2026 sowie potenzielle Guidance-Erhöhung im nächsten Earnings-Zyklus (Q2 2026)  \n**Time-to-Materialization:** 4-8 Wochen  \n\n### Bear Case\n> Trotz Rekord-Ausgabenwachstum könnte eine Verschlechterung der Kreditqualität (steigende Delinquency-Raten im Prime-Consumer-Segment) die Margen komprimieren und den Bullish-Case zunichte machen, insbesondere wenn die Fed die Zinsen länger hochhält als erwartet.  \n**Severity:** 5/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 62.0% (10,000 Pfade)\n- **Target-Preis:** $341.56\n- **Aktueller Preis:** $316.25\n- **σ (adj.):** 0.0000\n\n### Options-Vorschlag\n- **Expiry:** 2026-07-17 (84 DTE)\n- **Strike:** $340.00\n- **Bid/Ask:** $9.65 / $10.05\n- **Impl. Vol.:** 30.8%\n- **Open Interest:** 283\n- **Bid-Ask-Ratio:** 3.98%\n\n---\n## 4. T – LONG_CALL\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.1458`  \n**IV-Rank:** 43.3  \n\n### Asymmetry-Analyse\n- **Impact:** 6/10\n- **Surprise:** 5/10\n- **Mismatch-Score:** 6.0\n- **Z-Score (48h):** 0.0\n- **EPS-Drift:** 0.0 (noise)\n\n**Mispricing-Logik:**  \n> N/A\n\n**Katalysator:** Q2 2026 Earnings mit erhöhter 2H-Guidance durch Fiber-Subscriber-Wachstum und Convergence-Bundle-Margen über Konsenserwartung  \n**Time-to-Materialization:** 2-3 Monate  \n\n### Bear Case\n> Hohe Schuldenlast begrenzt Aktionärs-Upside strukturell; Scotiabank-Kurszielsenkung signalisiert gedämpfte Erwartungen selbst bullischer Analysten  \n**Severity:** 5/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 79.4% (10,000 Pfade)\n- **Target-Preis:** $28.81\n- **Aktueller Preis:** $26.68\n- **σ (adj.):** 0.0000\n\n### Options-Vorschlag\n- **Expiry:** 2026-05-08 (14 DTE)\n- **Strike:** $26.00\n- **Bid/Ask:** $0.89 / $0.98\n- **Impl. Vol.:** 28.1%\n- **Open Interest:** 272\n- **Bid-Ask-Ratio:** 9.18%\n\n---\n## 5. EQT – LONG_CALL\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.1458`  \n**IV-Rank:** 34.2  \n\n### Asymmetry-Analyse\n- **Impact:** 5/10\n- **Surprise:** 6/10\n- **Mismatch-Score:** 5.0\n- **Z-Score (48h):** 0.0\n- **EPS-Drift:** 0.0 (noise)\n\n**Mispricing-Logik:**  \n> N/A\n\n**Katalysator:** Q1 Record Free Cash Flow + 6-facher Insider-Kauf-Cluster als Conviction-Signal für organisches Wachstum; potenzieller M&A-Katalysator in 60-90 Tagen  \n**Time-to-Materialization:** 2-3 Monate  \n\n### Bear Case\n> Verwechslungsrisiko EQT Corp vs. EQT AB beim M&A-Signal; Erdgaspreissensitivität und bereits +4,1% eingepreiste Bewegung reduzieren asymmetrisches Aufwärtspotenzial  \n**Severity:** 6/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 78.7% (10,000 Pfade)\n- **Target-Preis:** $64.11\n- **Aktueller Preis:** $59.36\n- **σ (adj.):** 0.0000\n\n### Options-Vorschlag\n- **Expiry:** 2026-05-08 (14 DTE)\n- **Strike:** $59.00\n- **Bid/Ask:** $1.85 / $1.99\n- **Impl. Vol.:** 36.7%\n- **Open Interest:** 153\n- **Bid-Ask-Ratio:** 7.04%\n\n---\n## Modell-Gewichte (aktuell)\n- Impact: `0.35`\n- Mismatch: `0.45`\n- EPS-Drift: `0.20`\n\n_Automatisch generiert durch Adaptive Asymmetry-Scanner v3.5_"
  },
  {
    "path": "outputs/daily_reports/2026-04-24.json",
    "content": "{\n  \"date\": \"2026-04-24\",\n  \"proposals\": [\n    {\n      \"ticker\": \"AMAT\",\n      \"strategy\": \"LONG_CALL\",\n      \"iv_rank\": 56.0,\n      \"iv_gate_applied\": false,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-05-15\",\n        \"strike\": 430.0,\n        \"bid\": 21.8,\n        \"ask\": 23.35,\n        \"open_interest\": 1721,\n        \"implied_vol\": 0.6723665576171877,\n        \"spread_ratio\": 0.0664,\n        \"dte\": 20\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 0.6666,\n        \"roi_net\": 0.3992,\n        \"spread_pct\": 0.0664,\n        \"vega_loss\": 0.1346,\n        \"delta\": 0.4646,\n        \"iv_drop_assumed\": 0.12,\n        \"cost_basis\": 23.35,\n        \"is_spread\": false,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.15,\n        \"dte\": 20\n      },\n      \"dte_tier\": \"Short-Term\",\n      \"annualized_roi\": 458.522,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Short-Term\",\n          \"dte\": 20,\n          \"option\": {\n            \"expiry\": \"2026-05-15\",\n            \"strike\": 430.0,\n            \"bid\": 21.8,\n            \"ask\": 23.35,\n            \"open_interest\": 1721,\n            \"implied_vol\": 0.6723665576171877,\n            \"spread_ratio\": 0.0664,\n            \"dte\": 20\n          },\n          \"roi\": {\n            \"roi_gross\": 0.6666,\n            \"roi_net\": 0.3992,\n            \"spread_pct\": 0.0664,\n            \"vega_loss\": 0.1346,\n            \"delta\": 0.4646,\n            \"iv_drop_assumed\": 0.12,\n            \"cost_basis\": 23.35,\n            \"is_spread\": false,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.15,\n            \"dte\": 20\n          },\n          \"annualized_roi\": 458.522,\n          \"strategy\": \"LONG_CALL\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 6.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0296,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.6546\n      },\n      \"simulation\": {\n        \"current_price\": 418.81,\n        \"target_price\": 452.31,\n        \"hit_rate\": 0.748,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0305,\n        \"alpha\": 0.00219\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Die Headline 'Chip stocks just added $3 trillion in market value \\u2014 but are the most overextended in decades' deutet auf eine bereits erhebliche \\u00dcberbewertung im Sektor hin. AMAT hat in 48h bereits +3.8% zugelegt, was bedeutet, dass ein erheblicher Teil des Katalysator-Potenzials durch Intel-Beat und Samsung-Streik bereits eingepreist ist. Ein Nachz\\u00fcgler-Einstieg nach einem so starken Sympathy-Rally erh\\u00f6ht das Risiko eines Mean-Reversion-Trades erheblich.\",\n          \"argument_2\": \"Die EPS-Diskrepanz zwischen yfinance (14.07) und SEC EDGAR (9.73) ist ein erhebliches Warnsignal zur Datenqualit\\u00e4t. Eine Differenz von ~44% zwischen den Quellen kann auf unterschiedliche Berechnungsgrundlagen (GAAP vs. Non-GAAP) hinweisen, macht aber eine fundamentale Bewertung unzuverl\\u00e4ssig. Falls die SEC-GAAP-Zahl die relevante ist, ist die Bewertung auf Basis von Non-GAAP-EPS deutlich aggressiver als es scheint.\",\n          \"argument_3\": \"Der Samsung-Streik als positiver Katalysator f\\u00fcr AMAT ist ein kurzfristiger, unsicherer Effekt: Streiks werden typischerweise beigelegt, und der resultierende Nachfrageimpuls ist tempor\\u00e4r und bereits in der Presse diskutiert. Struktureller Gegenwind durch US-Exportbeschr\\u00e4nkungen f\\u00fcr Semiconductor-Equipment nach China bleibt ein erhebliches Risiko f\\u00fcr AMAT's Umsatzbasis, das durch kurzfristige Sympathy-Moves \\u00fcberdeckt, aber nicht beseitigt wird.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Der Quick MC wurde nicht durchgef\\u00fchrt (0 Pfade), daher ist die 0% Hit-Rate nicht als Modellsignal zu interpretieren, sondern als Datenl\\u00fccke. Bei einer 48h-Bewegung von +3.8% und einer typischen 30-Tage-Volatilit\\u00e4t f\\u00fcr AMAT von ~35-40% annualisiert w\\u00e4re eine Hit-Rate von 55-65% f\\u00fcr ein bullisches Szenario realistisch. Das Fehlen der MC-Daten reduziert die statistische Konfidenz erheblich.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"4-8 Wochen\",\n        \"asymmetry_reasoning\": \"Der Markt hat den Compound-Effekt aus Intel-Beat und Samsung-Produktionsausfall auf AMAT's Auftragseingang noch nicht vollst\\u00e4ndig in eine Guidance-Revision eingepreist. Insider-Cluster-K\\u00e4ufe innerhalb von 14 Tagen signalisieren informiertes Kapital, das vor einem potenziellen Earnings-Catalyst positioniert. Die expansive Makrolage mit steiler Kurve reduziert den Diskontierungsdruck auf Wachstumswerte und st\\u00fctzt eine weitere Neubewertung.\",\n        \"catalyst\": \"AMAT-Earnings-Guidance-Revision Q2/Q3 2026 getrieben durch Intel-Kapex-Erh\\u00f6hung und Samsung-Nachholbedarf nach Streikunterbrechung\",\n        \"bear_case\": \"Sektor-\\u00dcberdehnung nach $3T Rally kombiniert mit China-Exportrestriktionen f\\u00fcr Semiconductor-Equipment k\\u00f6nnte AMAT-Umsatzwachstum strukturell deckeln und den aktuellen Kursanstieg als reine Sentiment-Rally entlarven.\",\n        \"macro_assessment\": \"Das expansive Makroumfeld mit positiver 10Y-2Y-Kurve (+0.51%) und Fed Funds Rate bei 3.64% beg\\u00fcnstigt kapitalintensive Technologiewerte wie AMAT. Die Kombination aus sinkenden Finanzierungskosten f\\u00fcr Chipfabriken und steigender AI-getriebener Nachfrage nach Semiconductor-Equipment schafft ein strukturell positives Umfeld f\\u00fcr den Trade auf dem Analysedatum 24.04.2026.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.51,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLK\",\n        \"rel_strength\": 0.1225\n      },\n      \"final_score\": 0.1385,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 1.996,\n        \"annualized_roi\": null,\n        \"dte\": 20\n      },\n      \"trade_score\": {\n        \"total\": 74,\n        \"grade\": \"BUY \\ud83d\\udfe1\",\n        \"grade_short\": \"BUY\",\n        \"components\": {\n          \"signal_quality\": 21.9,\n          \"options_quality\": 27.0,\n          \"risk_deductions\": 0.0,\n          \"context_bonus\": 25.0\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=6/Surprise=5), guter ROI (40%), positive Sektor-Relative-St\\u00e4rke\",\n        \"best_argument_for\": \"Der Markt hat den Compound-Effekt aus Intel-Beat und Samsung-Produktionsausfall auf AMAT's Auftragseingang noch nicht vollst\\u00e4ndig in eine Guidance-Revision eingepreist. Insider-Cluster-K\\u00e4ufe innerhalb von 14 Tagen signalisieren informiertes Kapital, das vor einem potenziellen Earnings-Catalyst positioniert. Die expansive Makrolage mit steiler Kurve reduziert den Diskontierungsdruck auf Wachstumswerte und st\\u00fctzt eine weitere Neubewertung.\",\n        \"best_argument_against\": \"Die Headline 'Chip stocks just added $3 trillion in market value \\u2014 but are the most overextended in decades' deutet auf eine bereits erhebliche \\u00dcberbewertung im Sektor hin. AMAT hat in 48h bereits +3.8% zugelegt, was bedeutet, dass ein erheblicher Teil des Katalysator-Potenzials durch Intel-Beat und Samsung-Streik bereits eingepreist ist. Ein Nachz\\u00fcgler-Einstieg nach einem so starken Sympathy-Rally erh\\u00f6ht das Risiko eines Mean-Reversion-Trades erheblich.\"\n      },\n      \"trade_rank\": 1\n    },\n    {\n      \"ticker\": \"ANET\",\n      \"strategy\": \"LONG_CALL\",\n      \"iv_rank\": 49.8,\n      \"iv_gate_applied\": false,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-05-15\",\n        \"strike\": 180.0,\n        \"bid\": 11.75,\n        \"ask\": 12.55,\n        \"open_interest\": 2562,\n        \"implied_vol\": 0.7146024633789063,\n        \"spread_ratio\": 0.0637,\n        \"dte\": 20\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 0.599,\n        \"roi_net\": 0.4239,\n        \"spread_pct\": 0.0637,\n        \"vega_loss\": 0.0476,\n        \"delta\": 0.5242,\n        \"iv_drop_assumed\": 0.05,\n        \"cost_basis\": 12.55,\n        \"is_spread\": false,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.15,\n        \"dte\": 20\n      },\n      \"dte_tier\": \"Short-Term\",\n      \"annualized_roi\": 631.4129,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Short-Term\",\n          \"dte\": 20,\n          \"option\": {\n            \"expiry\": \"2026-05-15\",\n            \"strike\": 180.0,\n            \"bid\": 11.75,\n            \"ask\": 12.55,\n            \"open_interest\": 2562,\n            \"implied_vol\": 0.7146024633789063,\n            \"spread_ratio\": 0.0637,\n            \"dte\": 20\n          },\n          \"roi\": {\n            \"roi_gross\": 0.599,\n            \"roi_net\": 0.4239,\n            \"spread_pct\": 0.0637,\n            \"vega_loss\": 0.0476,\n            \"delta\": 0.5242,\n            \"iv_drop_assumed\": 0.05,\n            \"cost_basis\": 12.55,\n            \"is_spread\": false,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.15,\n            \"dte\": 20\n          },\n          \"annualized_roi\": 631.4129,\n          \"strategy\": \"LONG_CALL\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 6.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0336,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.7564\n      },\n      \"simulation\": {\n        \"current_price\": 179.31,\n        \"target_price\": 193.65,\n        \"hit_rate\": 0.823,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0327,\n        \"alpha\": 0.00396\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"ANET handelt auf einem erheblichen Bewertungspremium im Vergleich zu Sektor-Peers. Die 'AI-Infrastruktur-Buzz'-Schlagzeile in den News deutet darauf hin, dass der Markt den AI-Tailwind bereits aktiv diskutiert und preist \\u2014 ein klassisches Signal f\\u00fcr 'Catalyst already priced in'. Wenn Investoren bereits aktiv die Trillion-Dollar-Migration thematisieren, ist das \\u00dcberraschungspotenzial nach oben begrenzt, w\\u00e4hrend das Downside-Risiko bei Entt\\u00e4uschung asymmetrisch gro\\u00df ist.\",\n          \"argument_2\": \"Die EPS-Diskrepanz zwischen yfinance (4.31) und SEC EDGAR (2.74) ist erheblich und betr\\u00e4gt rechnerisch ~57% \\u2014 das ist keine kleine Abweichung, auch wenn das System '0.0% Abweichung' meldet, was auf einen Berechnungsfehler im System hindeutet. Eine solche Datenunsicherheit untergr\\u00e4bt die fundamentale Bewertungsgrundlage erheblich. Wenn der 'wahre' EPS n\\u00e4her an 2.74 liegt, ist das KGV deutlich h\\u00f6her als erwartet und das Bewertungsrisiko entsprechend gr\\u00f6\\u00dfer.\",\n          \"argument_3\": \"Insider-Cluster-K\\u00e4ufe sind zwar positiv, aber in einem Umfeld, wo AI-Infrastruktur-Themen medial \\u00fcberhitzt sind, kann dies auch als Marketing-Signal interpretiert werden. Zudem ist ANET stark von wenigen Hyperscaler-Kunden abh\\u00e4ngig (Meta, Microsoft, Google) \\u2014 eine Verlangsamung der CapEx-Ausgaben dieser Kunden oder eine Verschiebung zu In-House-L\\u00f6sungen w\\u00fcrde das Wachstum unmittelbar treffen und ist bei aktuell hohen Multiplikatoren besonders gef\\u00e4hrlich.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Quick MC wurde nicht durchgef\\u00fchrt (0 Pfade), daher ist die 0%-Hit-Rate ein Datenl\\u00fccken-Artefakt und nicht interpretierbar. Ohne MC-Basis kann keine statistische Unterst\\u00fctzung f\\u00fcr das Signal abgeleitet werden \\u2014 dies erh\\u00f6ht die Unsicherheit der Gesamtbewertung.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt diskutiert AI-Infrastruktur breit, untersch\\u00e4tzt aber ARISTAs spezifischen Architektur-Vorteil bei 400G/800G-Ethernet gegen\\u00fcber InfiniBand in skalierbaren Cluster-Deployments. Insider-Cluster-K\\u00e4ufe signalisieren Insider-Zuversicht vor dem n\\u00e4chsten Earnings-Zyklus, was institutionelle Repositionierung ausl\\u00f6sen kann. Das expansive Makro-Umfeld mit steiler Kurve beg\\u00fcnstigt Growth-Risikobereitschaft und reduziert den Diskontierungsdruck auf zuk\\u00fcnftige Cashflows.\",\n        \"catalyst\": \"Q2 2026 Earnings-Report mit konkreten Hyperscaler-CapEx-Commitments und potenzielle Design-Win-Ank\\u00fcndigungen f\\u00fcr AI-Fabric-Architektur bei Tier-1-Cloud-Kunden\",\n        \"bear_case\": \"Bewertungspremium ist bereits f\\u00fcr einen erheblichen Teil des AI-Netzwerk-Wachstums eingepreist; eine Verlangsamung der Hyperscaler-CapEx oder Markts\\u00e4ttigung bei Ethernet-Switching w\\u00fcrde multiple Kontraktion bei gleichzeitig fallendem EPS-Wachstum ausl\\u00f6sen.\",\n        \"macro_assessment\": \"Das expansive Makro-Umfeld mit steiler Zinskurve (+0.51%) und moderater Fed Funds Rate (3.64%) beg\\u00fcnstigt ANET als Growth-Titel: niedrigerer Diskontierungsdruck, risikofreudige Institutionelle und fortlaufende Unternehmens-CapEx-Ausgaben st\\u00fctzen das Infrastruktur-Nachfrageprofil. Kein signifikanter Makro-Gegenwind identifizierbar.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.51,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLK\",\n        \"rel_strength\": 0.1819\n      },\n      \"final_score\": 0.1385,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 2.1195,\n        \"annualized_roi\": null,\n        \"dte\": 20\n      },\n      \"trade_score\": {\n        \"total\": 74,\n        \"grade\": \"BUY \\ud83d\\udfe1\",\n        \"grade_short\": \"BUY\",\n        \"components\": {\n          \"signal_quality\": 21.9,\n          \"options_quality\": 27.0,\n          \"risk_deductions\": 0.0,\n          \"context_bonus\": 25.0\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=6/Surprise=5), guter ROI (42%), positive Sektor-Relative-St\\u00e4rke\",\n        \"best_argument_for\": \"Der Markt diskutiert AI-Infrastruktur breit, untersch\\u00e4tzt aber ARISTAs spezifischen Architektur-Vorteil bei 400G/800G-Ethernet gegen\\u00fcber InfiniBand in skalierbaren Cluster-Deployments. Insider-Cluster-K\\u00e4ufe signalisieren Insider-Zuversicht vor dem n\\u00e4chsten Earnings-Zyklus, was institutionelle Repositionierung ausl\\u00f6sen kann. Das expansive Makro-Umfeld mit steiler Kurve beg\\u00fcnstigt Growth-Risikobereitschaft und reduziert den Diskontierungsdruck auf zuk\\u00fcnftige Cashflows.\",\n        \"best_argument_against\": \"ANET handelt auf einem erheblichen Bewertungspremium im Vergleich zu Sektor-Peers. Die 'AI-Infrastruktur-Buzz'-Schlagzeile in den News deutet darauf hin, dass der Markt den AI-Tailwind bereits aktiv diskutiert und preist \\u2014 ein klassisches Signal f\\u00fcr 'Catalyst already priced in'. Wenn Investoren bereits aktiv die Trillion-Dollar-Migration thematisieren, ist das \\u00dcberraschungspotenzial nach oben begrenzt, w\\u00e4hrend das Downside-Risiko bei Entt\\u00e4uschung asymmetrisch gro\\u00df ist.\"\n      },\n      \"trade_rank\": 2\n    },\n    {\n      \"ticker\": \"BX\",\n      \"strategy\": \"LONG_CALL\",\n      \"iv_rank\": 49.6,\n      \"iv_gate_applied\": false,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-05-15\",\n        \"strike\": 125.0,\n        \"bid\": 3.15,\n        \"ask\": 3.4,\n        \"open_interest\": 1133,\n        \"implied_vol\": 0.39465937377929694,\n        \"spread_ratio\": 0.0735,\n        \"dte\": 20\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 1.2021,\n        \"roi_net\": 0.9903,\n        \"spread_pct\": 0.0735,\n        \"vega_loss\": 0.0648,\n        \"delta\": 0.4183,\n        \"iv_drop_assumed\": 0.05,\n        \"cost_basis\": 3.4,\n        \"is_spread\": false,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.15,\n        \"dte\": 20\n      },\n      \"dte_tier\": \"Short-Term\",\n      \"annualized_roi\": 285273.8002,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Short-Term\",\n          \"dte\": 20,\n          \"option\": {\n            \"expiry\": \"2026-05-15\",\n            \"strike\": 125.0,\n            \"bid\": 3.15,\n            \"ask\": 3.4,\n            \"open_interest\": 1133,\n            \"implied_vol\": 0.39465937377929694,\n            \"spread_ratio\": 0.0735,\n            \"dte\": 20\n          },\n          \"roi\": {\n            \"roi_gross\": 1.2021,\n            \"roi_net\": 0.9903,\n            \"spread_pct\": 0.0735,\n            \"vega_loss\": 0.0648,\n            \"delta\": 0.4183,\n            \"iv_drop_assumed\": 0.05,\n            \"cost_basis\": 3.4,\n            \"is_spread\": false,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.15,\n            \"dte\": 20\n          },\n          \"annualized_roi\": 285273.8002,\n          \"strategy\": \"LONG_CALL\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 6.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0257,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.5166\n      },\n      \"simulation\": {\n        \"current_price\": 122.12,\n        \"target_price\": 131.89,\n        \"hit_rate\": 0.5948,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0233,\n        \"alpha\": 0.00072\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Die -6% Preisbewegung in 48h trotz Earnings-Beat und Oppenheimer-PT-Erh\\u00f6hung signalisiert, dass der Markt das 'Discount-Narrativ' bereits kritisch bewertet. Der Artikel \\u00fcber Versicherer, die an Private-Credit-Fonds verleihen, aus denen Investoren gleichzeitig aussteigen, deutet auf systemische Liquidit\\u00e4tsspannungen im Kerngesch\\u00e4ft von Blackstone hin \\u2014 ein strukturelles Risiko, das den AUM-Wachstumstrend gef\\u00e4hrden kann.\",\n          \"argument_2\": \"Der EPS-Diskrepanz zwischen yfinance ($7.65) und SEC EDGAR ($3.90) ist erheblich und deutet auf unterschiedliche Berechnungsgrundlagen hin (m\\u00f6glicherweise Distributable Earnings vs. GAAP). Diese Unklarheit erschwert eine seri\\u00f6se Bewertung der Ertragskraft und k\\u00f6nnte bei weiterer Analyse zu einer Neubewertung der vermeintlichen Unterbewertung f\\u00fchren. Anleger, die auf falschen EPS-Daten modellieren, setzen sich einem Daten-Qualit\\u00e4tsrisiko aus.\",\n          \"argument_3\": \"Blackstone ist als Alternative Asset Manager stark abh\\u00e4ngig von Deal-Flow, Carry-Realisierungen und Kapitalzufl\\u00fcssen von institutionellen Anlegern. Bei einem Fed Funds Rate von noch immer 3.64% bleiben risikolose Renditen attraktiv, was den Druck auf Fundraising aufrechterh\\u00e4lt. Zudem sind Private-Equity-Exit-Multiples in einem noch elevated-Rate-Umfeld komprimiert, was Carry-Einnahmen auf 2-6 Monate strukturell begrenzt.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein Quick MC wurde durchgef\\u00fchrt (0 Pfade), daher ist die 0%-Hit-Rate nicht interpretierbar als Modellsignal, sondern als technischer Ausfall. Eine Bewertung der statistischen Robustheit ist damit nicht m\\u00f6glich, was die Datenkonfidenz senkt.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 5,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt hat den -6%-Selloff m\\u00f6glicherweise \\u00fcberreagiert auf kurzfristige Liquidit\\u00e4tssorgen im Private-Credit-Segment, w\\u00e4hrend die strukturelle AUM-Wachstumsstory und das AI-Infrastructure-Engagement l\\u00e4ngerfristig positiv wirken. Sechs Insider-K\\u00e4ufe im Cluster sind ein starkes Conviction-Signal, das oft Underreactions bei fundamentaler St\\u00e4rke anzeigt. Das expansive Makro-Umfeld mit steiler Kurve beg\\u00fcnstigt risikotragende Assetklassen und damit Blackstones Kerngesch\\u00e4ft.\",\n        \"catalyst\": \"Oppenheimer PT-Erh\\u00f6hung auf $156 kombiniert mit Insider-Cluster-K\\u00e4ufen nach Q1-2026-Earnings-Beat und Record-AUM-Meldung als Ausl\\u00f6ser f\\u00fcr Neubewertung der vermeintlichen Unterbewertung\",\n        \"bear_case\": \"Systemische Liquidit\\u00e4tsspannungen im Private-Credit-Markt (Versicherer verleihen an Fonds, aus denen Investoren aussteigen) k\\u00f6nnten AUM-Wachstum und Carry-Realisierungen auf 2-6 Monate strukturell belasten\",\n        \"macro_assessment\": \"Das expansive Umfeld mit +0.51% Steilheit der Kurve und Fed Funds Rate bei 3.64% ist grunds\\u00e4tzlich f\\u00f6rderlich f\\u00fcr Blackstones Gesch\\u00e4ftsmodell. Risikopr\\u00e4mien k\\u00f6nnen sich ausweiten, Dealflow sollte sich graduell erholen. Das Makro unterst\\u00fctzt die bullishe These, d\\u00e4mpft aber die \\u00dcberzeugung nicht vollst\\u00e4ndig angesichts noch immer restriktiver absoluter Zinsniveaus.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.51,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLF\",\n        \"rel_strength\": 0.0817\n      },\n      \"final_score\": 0.1385,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 4.9515,\n        \"annualized_roi\": null,\n        \"dte\": 20\n      },\n      \"trade_score\": {\n        \"total\": 74,\n        \"grade\": \"BUY \\ud83d\\udfe1\",\n        \"grade_short\": \"BUY\",\n        \"components\": {\n          \"signal_quality\": 21.9,\n          \"options_quality\": 27.0,\n          \"risk_deductions\": 0.0,\n          \"context_bonus\": 25.0\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=6/Surprise=5), guter ROI (99%), positive Sektor-Relative-St\\u00e4rke\",\n        \"best_argument_for\": \"Der Markt hat den -6%-Selloff m\\u00f6glicherweise \\u00fcberreagiert auf kurzfristige Liquidit\\u00e4tssorgen im Private-Credit-Segment, w\\u00e4hrend die strukturelle AUM-Wachstumsstory und das AI-Infrastructure-Engagement l\\u00e4ngerfristig positiv wirken. Sechs Insider-K\\u00e4ufe im Cluster sind ein starkes Conviction-Signal, das oft Underreactions bei fundamentaler St\\u00e4rke anzeigt. Das expansive Makro-Umfeld mit steiler Kurve beg\\u00fcnstigt risikotragende Assetklassen und damit Blackstones Kerngesch\\u00e4ft.\",\n        \"best_argument_against\": \"Die -6% Preisbewegung in 48h trotz Earnings-Beat und Oppenheimer-PT-Erh\\u00f6hung signalisiert, dass der Markt das 'Discount-Narrativ' bereits kritisch bewertet. Der Artikel \\u00fcber Versicherer, die an Private-Credit-Fonds verleihen, aus denen Investoren gleichzeitig aussteigen, deutet auf systemische Liquidit\\u00e4tsspannungen im Kerngesch\\u00e4ft von Blackstone hin \\u2014 ein strukturelles Risiko, das den AUM-Wachstumstrend gef\\u00e4hrden kann.\"\n      },\n      \"trade_rank\": 3\n    },\n    {\n      \"ticker\": \"AMD\",\n      \"strategy\": \"LONG_CALL\",\n      \"iv_rank\": 34.7,\n      \"iv_gate_applied\": false,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-05-15\",\n        \"strike\": 350.0,\n        \"bid\": 25.4,\n        \"ask\": 26.15,\n        \"open_interest\": 6615,\n        \"implied_vol\": 0.7811301184082031,\n        \"spread_ratio\": 0.0287,\n        \"dte\": 20\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 0.5585,\n        \"roi_net\": 0.4527,\n        \"spread_pct\": 0.0287,\n        \"vega_loss\": 0.0485,\n        \"delta\": 0.5246,\n        \"iv_drop_assumed\": 0.05,\n        \"cost_basis\": 26.15,\n        \"is_spread\": false,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.15,\n        \"dte\": 20\n      },\n      \"dte_tier\": \"Short-Term\",\n      \"annualized_roi\": 910.4038,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Short-Term\",\n          \"dte\": 20,\n          \"option\": {\n            \"expiry\": \"2026-05-15\",\n            \"strike\": 350.0,\n            \"bid\": 25.4,\n            \"ask\": 26.15,\n            \"open_interest\": 6615,\n            \"implied_vol\": 0.7811301184082031,\n            \"spread_ratio\": 0.0287,\n            \"dte\": 20\n          },\n          \"roi\": {\n            \"roi_gross\": 0.5585,\n            \"roi_net\": 0.4527,\n            \"spread_pct\": 0.0287,\n            \"vega_loss\": 0.0485,\n            \"delta\": 0.5246,\n            \"iv_drop_assumed\": 0.05,\n            \"cost_basis\": 26.15,\n            \"is_spread\": false,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.15,\n            \"dte\": 20\n          },\n          \"annualized_roi\": 910.4038,\n          \"strategy\": \"LONG_CALL\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 6.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0375,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.7988\n      },\n      \"simulation\": {\n        \"current_price\": 348.1,\n        \"target_price\": 375.94,\n        \"hit_rate\": 0.85,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0392,\n        \"alpha\": 0.00554\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"AMD ist bereits +14,7% in 48 Stunden gestiegen und handelt bei $348 \\u2014 der Intel-Katalysator ist weitgehend eingepreist. Ein 'CPU-Boom'-Signal von einem direkten Konkurrenten ist kein struktureller Vorteil f\\u00fcr AMD, sondern hebt lediglich die gesamte Branche an. Wer jetzt AMD-Calls kauft, zahlt explodierte Implied Volatility nach dem Spike, was den IV-Crush nach dem n\\u00e4chsten Earnings-Event zum gravierenden Risiko macht.\",\n          \"argument_2\": \"Die EPS-Diskrepanz zwischen yfinance ($11.01) und SEC EDGAR ($2.60) ist hochgradig besorgniserregend und deutet auf inkonsistente Datenbasis hin. Entweder handelt es sich um adjusted vs. GAAP-Verwirrung oder um einen Datenfehler \\u2014 beides untergr\\u00e4bt die Verl\\u00e4sslichkeit der fundamentalen Bewertungsgrundlage dieses Trades erheblich. Bei einem Kurs von $348 und einem GAAP-EPS von $2.60 ergibt sich ein KGV von ~134x, was bei jeglicher Wachstumsentt\\u00e4uschung massives Downside-Potenzial bedeutet.\",\n          \"argument_3\": \"Der Humanoid-Robot- und AI-Chip-Hype k\\u00f6nnte sich als \\u00fcberdehnter Sektor-Narrative entpuppen. ARM Holdings konkurriert direkt im CPU-Markt, und das Aufkommen von Custom Silicon (Apple, AWS, Microsoft) reduziert den adressierbaren Markt f\\u00fcr AMD langfristig strukturell. Ein Cluster-Insider-Kauf klingt positiv, aber 4 K\\u00e4ufe in 14 Tagen bei einem $100Mrd+-Unternehmen sind angesichts des Kursanstiegs m\\u00f6glicherweise bereits durch routine-basierte Kaufprogramme erkl\\u00e4rbar.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Die 0% Hit-Rate ist nicht aussagekr\\u00e4ftig, da kein Quick MC durchgef\\u00fchrt wurde. Bei einer 48h-Bewegung von +14,7% und einer damit implizit sehr hohen realisierten Volatilit\\u00e4t w\\u00e4re eine 30-Tage-Fortsetzung ohne R\\u00fccksetzer statistisch unwahrscheinlich. Das Fehlen der MC-Daten verhindert eine quantitative Validierung \\u2014 dies erh\\u00f6ht die Unsicherheit, ist aber kein direktes Veto-Signal.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 7,\n        \"time_to_materialization\": \"4-8 Wochen\",\n        \"asymmetry_reasoning\": \"Der Markt hat den Intel-Spillover-Effekt auf AMD teilweise eingepreist, aber die strukturelle Nachfrageverbesserung im CPU/GPU-Segment f\\u00fcr Rechenzentren \\u00fcber mehrere Quartale hinweg noch nicht vollst\\u00e4ndig reflektiert. Das Insider-Cluster-Signal deutet auf informierten Optimismus vor dem n\\u00e4chsten Earnings-Event hin. Die Asymmetrie liegt in kurz laufenden Optionen mit Strike leicht oberhalb des aktuellen Kurses, sofern die IV nach dem ersten Spike wieder etwas abk\\u00fchlt.\",\n        \"catalyst\": \"AMD Q2 2026 Earnings-Guidance: Best\\u00e4tigung erh\\u00f6hter CPU/GPU-Nachfrage im Rechenzentrumsbereich nach Intel-Signal \\u2014 erwartet in ~6-8 Wochen\",\n        \"bear_case\": \"IV-Crush nach Earnings bei \\u00fcberh\\u00f6htem Einstiegspreis nach +14,7% Spike; GAAP-KGV von ~134x l\\u00e4sst wenig Sicherheitsmarge bei Entt\\u00e4uschung\",\n        \"macro_assessment\": \"Das expansive Makroumfeld mit steiler Zinskurve (+0,51%) und Fed Funds Rate bei 3,64% ist grunds\\u00e4tzlich g\\u00fcnstig f\\u00fcr wachstumsstarke Tech-Werte. Long-Positionen in AMD sind makroseitig nicht kontraindiziert. Allerdings bleibt das absolute Bewertungsniveau bei GAAP-Metriken ein eigenst\\u00e4ndiges Risiko unabh\\u00e4ngig vom Zinsumfeld.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.51,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLK\",\n        \"rel_strength\": 0.6428\n      },\n      \"final_score\": 0.1385,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 2.2635,\n        \"annualized_roi\": null,\n        \"dte\": 20\n      },\n      \"trade_score\": {\n        \"total\": 67,\n        \"grade\": \"BUY \\ud83d\\udfe1\",\n        \"grade_short\": \"BUY\",\n        \"components\": {\n          \"signal_quality\": 21.9,\n          \"options_quality\": 30.0,\n          \"risk_deductions\": -10.0,\n          \"context_bonus\": 25.0\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=6/Surprise=5), guter ROI (45%), g\\u00fcnstige IV (35%) | Risiken: hohes Bear-Risiko (7/10)\",\n        \"best_argument_for\": \"Der Markt hat den Intel-Spillover-Effekt auf AMD teilweise eingepreist, aber die strukturelle Nachfrageverbesserung im CPU/GPU-Segment f\\u00fcr Rechenzentren \\u00fcber mehrere Quartale hinweg noch nicht vollst\\u00e4ndig reflektiert. Das Insider-Cluster-Signal deutet auf informierten Optimismus vor dem n\\u00e4chsten Earnings-Event hin. Die Asymmetrie liegt in kurz laufenden Optionen mit Strike leicht oberhalb des aktuellen Kurses, sofern die IV nach dem ersten Spike wieder etwas abk\\u00fchlt.\",\n        \"best_argument_against\": \"AMD ist bereits +14,7% in 48 Stunden gestiegen und handelt bei $348 \\u2014 der Intel-Katalysator ist weitgehend eingepreist. Ein 'CPU-Boom'-Signal von einem direkten Konkurrenten ist kein struktureller Vorteil f\\u00fcr AMD, sondern hebt lediglich die gesamte Branche an. Wer jetzt AMD-Calls kauft, zahlt explodierte Implied Volatility nach dem Spike, was den IV-Crush nach dem n\\u00e4chsten Earnings-Event zum gravierenden Risiko macht.\"\n      },\n      \"trade_rank\": 4\n    },\n    {\n      \"ticker\": \"ALB\",\n      \"strategy\": \"LONG_CALL\",\n      \"iv_rank\": 58.2,\n      \"iv_gate_applied\": false,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-12-18\",\n        \"strike\": 200.0,\n        \"bid\": 32.6,\n        \"ask\": 33.95,\n        \"open_interest\": 256,\n        \"implied_vol\": 0.6387060055541992,\n        \"spread_ratio\": 0.0398,\n        \"dte\": 237\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 0.2424,\n        \"roi_net\": 0.1293,\n        \"spread_pct\": 0.0398,\n        \"vega_loss\": 0.0336,\n        \"delta\": 0.5502,\n        \"iv_drop_assumed\": 0.03,\n        \"cost_basis\": 33.95,\n        \"is_spread\": false,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.1,\n        \"dte\": 237\n      },\n      \"dte_tier\": \"Long-Term\",\n      \"annualized_roi\": 0.206,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Long-Term\",\n          \"dte\": 237,\n          \"option\": {\n            \"expiry\": \"2026-12-18\",\n            \"strike\": 200.0,\n            \"bid\": 32.6,\n            \"ask\": 33.95,\n            \"open_interest\": 256,\n            \"implied_vol\": 0.6387060055541992,\n            \"spread_ratio\": 0.0398,\n            \"dte\": 237\n          },\n          \"roi\": {\n            \"roi_gross\": 0.2424,\n            \"roi_net\": 0.1293,\n            \"spread_pct\": 0.0398,\n            \"vega_loss\": 0.0336,\n            \"delta\": 0.5502,\n            \"iv_drop_assumed\": 0.03,\n            \"cost_basis\": 33.95,\n            \"is_spread\": false,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.1,\n            \"dte\": 237\n          },\n          \"annualized_roi\": 0.206,\n          \"strategy\": \"LONG_CALL\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"mismatch\": 5.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0423,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.6756\n      },\n      \"simulation\": {\n        \"current_price\": 186.94,\n        \"target_price\": 201.9,\n        \"hit_rate\": 0.7418,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0396,\n        \"alpha\": 0.00179\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Die fundamentale EPS-Diskrepanz zwischen yfinance (+9.11) und SEC EDGAR (-5.76) ist ein erhebliches Warnsignal bez\\u00fcglich Datenqualit\\u00e4t. Ein negatives SEC-EPS deutet auf reale Verluste hin, w\\u00e4hrend der positive yfinance-Wert m\\u00f6glicherweise adjustierte/non-GAAP-Zahlen reflektiert. Diese Divergenz macht eine faire Bewertung des Unternehmens zum aktuellen Kursniveau \\u00e4u\\u00dferst schwierig.\",\n          \"argument_2\": \"Lithiumpreise befinden sich seit 2023 in einem strukturellen B\\u00e4renmarkt durch massives \\u00dcberangebot aus chinesischer Produktion und schw\\u00e4cherer EV-Nachfrage als erwartet. Der RBC Price-Target-Anstieg auf $245 (+31% zum aktuellen Kurs) k\\u00f6nnte bereits vollst\\u00e4ndig eingepreist sein, da Analysten-Upgrades bei Rohstoffaktien typischerweise nachlaufende Indikatoren sind. Ein entt\\u00e4uschendes Q1-Earnings oder schwacher Ausblick w\\u00fcrde den Trade sofort zerst\\u00f6ren.\",\n          \"argument_3\": \"Die 48h-Preisbewegung von -3.7% trotz positivem Analysten-Upgrade zeigt, dass der Markt dem bullishen Narrativ nicht folgt \\u2014 ein klares Warnsignal f\\u00fcr strukturellen Verkaufsdruck. Insider-K\\u00e4ufe in Lithium-Unternehmen sind oft Value-Traps, da Management-Insiders die Zyklusbodenfindung regelm\\u00e4\\u00dfig zu fr\\u00fch antizipieren. Ohne konkreten Lithiumpreis-Recovery-Katalysator bleibt der Gegenwind strukturell.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"0% Hit-Rate ist technisch nicht aussagekr\\u00e4ftig, da kein MC durchgef\\u00fchrt wurde \\u2014 die Abwesenheit von Daten bedeutet weder Best\\u00e4tigung noch Widerlegung. Bei einer 48h-Bewegung von -3.7% und hoher Rohstoffvolatilit\\u00e4t w\\u00e4re eine realistische 30-Tage Hit-Rate f\\u00fcr Bullish-Szenarien wahrscheinlich zwischen 35-50%, was moderate Skepsis rechtfertigt.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 7,\n        \"time_to_materialization\": \"4-8 Wochen\",\n        \"asymmetry_reasoning\": \"Der Markt unterreagiert m\\u00f6glicherweise auf das Cluster-Insider-Kaufsignal (7 K\\u00e4ufer in 14 Tagen), da der strukturelle Lithium-B\\u00e4renmarkt den Nachrichtenwert \\u00fcberlagert. Das bevorstehende Q1-Earnings bildet einen bin\\u00e4ren Katalysator mit echter Aufw\\u00e4rts-Asymmetrie falls Lithiumpreise sich stabilisiert haben. RBC-Upgrade auf $245 gibt institutionelles Deckungsfeuer f\\u00fcr Re-Rating.\",\n        \"catalyst\": \"Q1-2026 Earnings-Release ALB mit Lithiumpreis-Guidance und potenzieller Margen-Erholung\",\n        \"bear_case\": \"Strukturelles Lithium-\\u00dcberangebot aus China h\\u00e4lt Preise gedr\\u00fcckt, SEC-GAAP-EPS negativ deutet auf fundamentale Ertragsschw\\u00e4che, -3.7% Preisreaktion trotz Upgrade signalisiert Verteilungsphase.\",\n        \"macro_assessment\": \"Die steile Zinskurve (+0.51%) und Fed Funds Rate von 3.64% unterst\\u00fctzen grunds\\u00e4tzlich zyklische Rohstoffaktien in einem expansiven Regime. Allerdings ist ALB als Lithium-Pure-Play st\\u00e4rker von Commoditypreisen als vom Makrozyklus abh\\u00e4ngig, weshalb der positive Makrokontext nur bedingt das sektorspezifische \\u00dcberangebot-Problem kompensiert.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.51,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLB\",\n        \"rel_strength\": 0.1122\n      },\n      \"final_score\": 0.1385,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 0.0546,\n        \"annualized_roi\": 0.206,\n        \"dte\": 237\n      },\n      \"trade_score\": {\n        \"total\": 51,\n        \"grade\": \"WATCH \\ud83d\\udfe0\",\n        \"grade_short\": \"WATCH\",\n        \"components\": {\n          \"signal_quality\": 17.9,\n          \"options_quality\": 18.0,\n          \"risk_deductions\": -10.0,\n          \"context_bonus\": 25.0\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=5/Surprise=4), positive Sektor-Relative-St\\u00e4rke, expansives Makro-Umfeld | Risiken: hohes Bear-Risiko (7/10)\",\n        \"best_argument_for\": \"Der Markt unterreagiert m\\u00f6glicherweise auf das Cluster-Insider-Kaufsignal (7 K\\u00e4ufer in 14 Tagen), da der strukturelle Lithium-B\\u00e4renmarkt den Nachrichtenwert \\u00fcberlagert. Das bevorstehende Q1-Earnings bildet einen bin\\u00e4ren Katalysator mit echter Aufw\\u00e4rts-Asymmetrie falls Lithiumpreise sich stabilisiert haben. RBC-Upgrade auf $245 gibt institutionelles Deckungsfeuer f\\u00fcr Re-Rating.\",\n        \"best_argument_against\": \"Die fundamentale EPS-Diskrepanz zwischen yfinance (+9.11) und SEC EDGAR (-5.76) ist ein erhebliches Warnsignal bez\\u00fcglich Datenqualit\\u00e4t. Ein negatives SEC-EPS deutet auf reale Verluste hin, w\\u00e4hrend der positive yfinance-Wert m\\u00f6glicherweise adjustierte/non-GAAP-Zahlen reflektiert. Diese Divergenz macht eine faire Bewertung des Unternehmens zum aktuellen Kursniveau \\u00e4u\\u00dferst schwierig.\"\n      },\n      \"trade_rank\": 5\n    }\n  ]\n}"
  },
  {
    "path": "outputs/daily_reports/2026-04-24.md",
    "content": "# Adaptive Asymmetry-Scanner – 2026-04-24\n\n**Generiert:** 2026-04-24 17:14 UTC\n**Trade-Vorschläge:** 5\n\n---\n## 1. AMAT – LONG_CALL\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.1385`  \n**IV-Rank:** 56.0  \n\n### Asymmetry-Analyse\n- **Impact:** 6/10\n- **Surprise:** 5/10\n- **Mismatch-Score:** 6.0\n- **Z-Score (48h):** 0.0\n- **EPS-Drift:** 0.0 (noise)\n\n**Mispricing-Logik:**  \n> N/A\n\n**Katalysator:** AMAT-Earnings-Guidance-Revision Q2/Q3 2026 getrieben durch Intel-Kapex-Erhöhung und Samsung-Nachholbedarf nach Streikunterbrechung  \n**Time-to-Materialization:** 4-8 Wochen  \n\n### Bear Case\n> Sektor-Überdehnung nach $3T Rally kombiniert mit China-Exportrestriktionen für Semiconductor-Equipment könnte AMAT-Umsatzwachstum strukturell deckeln und den aktuellen Kursanstieg als reine Sentiment-Rally entlarven.  \n**Severity:** 6/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 74.8% (10,000 Pfade)\n- **Target-Preis:** $452.31\n- **Aktueller Preis:** $418.81\n- **σ (adj.):** 0.0000\n\n### Options-Vorschlag\n- **Expiry:** 2026-05-15 (20 DTE)\n- **Strike:** $430.00\n- **Bid/Ask:** $21.80 / $23.35\n- **Impl. Vol.:** 67.2%\n- **Open Interest:** 1,721\n- **Bid-Ask-Ratio:** 6.64%\n\n---\n## 2. ANET – LONG_CALL\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.1385`  \n**IV-Rank:** 49.8  \n\n### Asymmetry-Analyse\n- **Impact:** 6/10\n- **Surprise:** 5/10\n- **Mismatch-Score:** 6.0\n- **Z-Score (48h):** 0.0\n- **EPS-Drift:** 0.0 (noise)\n\n**Mispricing-Logik:**  \n> N/A\n\n**Katalysator:** Q2 2026 Earnings-Report mit konkreten Hyperscaler-CapEx-Commitments und potenzielle Design-Win-Ankündigungen für AI-Fabric-Architektur bei Tier-1-Cloud-Kunden  \n**Time-to-Materialization:** 2-3 Monate  \n\n### Bear Case\n> Bewertungspremium ist bereits für einen erheblichen Teil des AI-Netzwerk-Wachstums eingepreist; eine Verlangsamung der Hyperscaler-CapEx oder Marktsättigung bei Ethernet-Switching würde multiple Kontraktion bei gleichzeitig fallendem EPS-Wachstum auslösen.  \n**Severity:** 6/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 82.3% (10,000 Pfade)\n- **Target-Preis:** $193.65\n- **Aktueller Preis:** $179.31\n- **σ (adj.):** 0.0000\n\n### Options-Vorschlag\n- **Expiry:** 2026-05-15 (20 DTE)\n- **Strike:** $180.00\n- **Bid/Ask:** $11.75 / $12.55\n- **Impl. Vol.:** 71.5%\n- **Open Interest:** 2,562\n- **Bid-Ask-Ratio:** 6.37%\n\n---\n## 3. BX – LONG_CALL\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.1385`  \n**IV-Rank:** 49.6  \n\n### Asymmetry-Analyse\n- **Impact:** 6/10\n- **Surprise:** 5/10\n- **Mismatch-Score:** 6.0\n- **Z-Score (48h):** 0.0\n- **EPS-Drift:** 0.0 (noise)\n\n**Mispricing-Logik:**  \n> N/A\n\n**Katalysator:** Oppenheimer PT-Erhöhung auf $156 kombiniert mit Insider-Cluster-Käufen nach Q1-2026-Earnings-Beat und Record-AUM-Meldung als Auslöser für Neubewertung der vermeintlichen Unterbewertung  \n**Time-to-Materialization:** 2-3 Monate  \n\n### Bear Case\n> Systemische Liquiditätsspannungen im Private-Credit-Markt (Versicherer verleihen an Fonds, aus denen Investoren aussteigen) könnten AUM-Wachstum und Carry-Realisierungen auf 2-6 Monate strukturell belasten  \n**Severity:** 5/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 59.5% (10,000 Pfade)\n- **Target-Preis:** $131.89\n- **Aktueller Preis:** $122.12\n- **σ (adj.):** 0.0000\n\n### Options-Vorschlag\n- **Expiry:** 2026-05-15 (20 DTE)\n- **Strike:** $125.00\n- **Bid/Ask:** $3.15 / $3.40\n- **Impl. Vol.:** 39.5%\n- **Open Interest:** 1,133\n- **Bid-Ask-Ratio:** 7.35%\n\n---\n## 4. AMD – LONG_CALL\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.1385`  \n**IV-Rank:** 34.7  \n\n### Asymmetry-Analyse\n- **Impact:** 6/10\n- **Surprise:** 5/10\n- **Mismatch-Score:** 6.0\n- **Z-Score (48h):** 0.0\n- **EPS-Drift:** 0.0 (noise)\n\n**Mispricing-Logik:**  \n> N/A\n\n**Katalysator:** AMD Q2 2026 Earnings-Guidance: Bestätigung erhöhter CPU/GPU-Nachfrage im Rechenzentrumsbereich nach Intel-Signal — erwartet in ~6-8 Wochen  \n**Time-to-Materialization:** 4-8 Wochen  \n\n### Bear Case\n> IV-Crush nach Earnings bei überhöhtem Einstiegspreis nach +14,7% Spike; GAAP-KGV von ~134x lässt wenig Sicherheitsmarge bei Enttäuschung  \n**Severity:** 7/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 85.0% (10,000 Pfade)\n- **Target-Preis:** $375.94\n- **Aktueller Preis:** $348.10\n- **σ (adj.):** 0.0000\n\n### Options-Vorschlag\n- **Expiry:** 2026-05-15 (20 DTE)\n- **Strike:** $350.00\n- **Bid/Ask:** $25.40 / $26.15\n- **Impl. Vol.:** 78.1%\n- **Open Interest:** 6,615\n- **Bid-Ask-Ratio:** 2.87%\n\n---\n## 5. ALB – LONG_CALL\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.1385`  \n**IV-Rank:** 58.2  \n\n### Asymmetry-Analyse\n- **Impact:** 5/10\n- **Surprise:** 4/10\n- **Mismatch-Score:** 5.0\n- **Z-Score (48h):** 0.0\n- **EPS-Drift:** 0.0 (noise)\n\n**Mispricing-Logik:**  \n> N/A\n\n**Katalysator:** Q1-2026 Earnings-Release ALB mit Lithiumpreis-Guidance und potenzieller Margen-Erholung  \n**Time-to-Materialization:** 4-8 Wochen  \n\n### Bear Case\n> Strukturelles Lithium-Überangebot aus China hält Preise gedrückt, SEC-GAAP-EPS negativ deutet auf fundamentale Ertragsschwäche, -3.7% Preisreaktion trotz Upgrade signalisiert Verteilungsphase.  \n**Severity:** 7/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 74.2% (10,000 Pfade)\n- **Target-Preis:** $201.90\n- **Aktueller Preis:** $186.94\n- **σ (adj.):** 0.0000\n\n### Options-Vorschlag\n- **Expiry:** 2026-12-18 (237 DTE)\n- **Strike:** $200.00\n- **Bid/Ask:** $32.60 / $33.95\n- **Impl. Vol.:** 63.9%\n- **Open Interest:** 256\n- **Bid-Ask-Ratio:** 3.98%\n\n---\n## Modell-Gewichte (aktuell)\n- Impact: `0.35`\n- Mismatch: `0.45`\n- EPS-Drift: `0.20`\n\n_Automatisch generiert durch Adaptive Asymmetry-Scanner v3.5_"
  },
  {
    "path": "outputs/daily_reports/2026-04-27.json",
    "content": "{\n  \"date\": \"2026-04-27\",\n  \"proposals\": [\n    {\n      \"ticker\": \"BKR\",\n      \"strategy\": \"LONG_CALL\",\n      \"iv_rank\": 36.3,\n      \"iv_gate_applied\": false,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-05-15\",\n        \"strike\": 70.0,\n        \"bid\": 1.75,\n        \"ask\": 1.9,\n        \"open_interest\": 3488,\n        \"implied_vol\": 0.3813538427734374,\n        \"spread_ratio\": 0.0789,\n        \"dte\": 17\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 1.2575,\n        \"roi_net\": 1.041,\n        \"spread_pct\": 0.0789,\n        \"vega_loss\": 0.0586,\n        \"delta\": 0.4336,\n        \"iv_drop_assumed\": 0.05,\n        \"cost_basis\": 1.9,\n        \"is_spread\": false,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.15,\n        \"dte\": 17\n      },\n      \"dte_tier\": \"Short-Term\",\n      \"annualized_roi\": 4492741.955,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Short-Term\",\n          \"dte\": 17,\n          \"option\": {\n            \"expiry\": \"2026-05-15\",\n            \"strike\": 70.0,\n            \"bid\": 1.75,\n            \"ask\": 1.9,\n            \"open_interest\": 3488,\n            \"implied_vol\": 0.3813538427734374,\n            \"spread_ratio\": 0.0789,\n            \"dte\": 17\n          },\n          \"roi\": {\n            \"roi_gross\": 1.2575,\n            \"roi_net\": 1.041,\n            \"spread_pct\": 0.0789,\n            \"vega_loss\": 0.0586,\n            \"delta\": 0.4336,\n            \"iv_drop_assumed\": 0.05,\n            \"cost_basis\": 1.9,\n            \"is_spread\": false,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.15,\n            \"dte\": 17\n          },\n          \"annualized_roi\": 4492741.955,\n          \"strategy\": \"LONG_CALL\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 7,\n        \"surprise\": 6,\n        \"mismatch\": 7.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0251,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"strong\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.85\n      },\n      \"simulation\": {\n        \"current_price\": 68.81,\n        \"target_price\": 74.32,\n        \"hit_rate\": 0.85,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0212,\n        \"alpha\": 0.00603\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Der Kurs ist bereits um +6,8% in 48 Stunden gestiegen, was stark darauf hindeutet, dass der Markt den Hormuz-Katalysator bereits eingepreist hat. Ein Einstieg nach einem solchen Move birgt erhebliches Mean-Reversion-Risiko, insbesondere wenn die geopolitische Pr\\u00e4mie sich als tempor\\u00e4r oder \\u00fcbertrieben erweist. Optionsk\\u00e4ufer zahlen nach einem solchen Spike deutlich erh\\u00f6hte Implied Volatility (IV-Crush-Risiko post-Catalyst).\",\n          \"argument_2\": \"Die Stra\\u00dfe von Hormuz als Investment-Thesis ist strukturell fragil: Geopolitische Krisen deeskalieren h\\u00e4ufig schneller als erwartet, und jede Nachricht \\u00fcber Verhandlungen oder \\u00d6ffnung der Meerenge w\\u00fcrde die geopolitische Pr\\u00e4mie sofort aufl\\u00f6sen. BKR als Oilfield-Services-Unternehmen profitiert prim\\u00e4r von Bohraktivit\\u00e4t, nicht direkt von \\u00d6lpreispr\\u00e4mien \\u2014 der direkte Transmissionsmechanismus vom Hormuz-Risiko zu BKR-Earnings ist schw\\u00e4cher als bei integrierten \\u00d6lkonzernen.\",\n          \"argument_3\": \"Der CFO-Kommentar zur Hormuz-Blockade bis H2 2026 k\\u00f6nnte als Forward Guidance-Signal missverstanden werden. Baker Hughes hat keine operative Kontrolle \\u00fcber geopolitische Entwicklungen, und wenn sich diese Aussage als \\u00fcbertrieben pessimistisch erweist oder der Markt sie als Risiko-Framing (nicht als Upside-Catalyst) interpretiert, k\\u00f6nnte die Aktie korrigieren. Zudem sind 7 Insider-K\\u00e4ufe zwar positiv, aber der absolute Dollarwert der Transaktionen ist aus den vorliegenden Daten nicht ersichtlich.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein Monte Carlo durchgef\\u00fchrt \\u2014 0% Hit-Rate ist technisch bedeutungslos und nicht als bearisches Signal zu werten. Die fehlende Statistik erh\\u00f6ht die Unsicherheit der quantitativen Absicherung erheblich. Ohne MC-Daten muss die Bewertung st\\u00e4rker auf fundamentale und qualitative Signale gest\\u00fctzt werden, was die Datenconfidence reduziert.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 7,\n        \"surprise\": 6,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 5,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt hat zwar kurzfristig reagiert, untersch\\u00e4tzt aber die strukturelle Neubewertung von BKR als Benefiziar prolongierter Middle-East-Disruption im IET-Segment. Record-IET-Orders und starke EBITDA-Entwicklung liefern fundamentale Unterst\\u00fctzung jenseits der rein geopolitischen Pr\\u00e4mie. Insider-Cluster-K\\u00e4ufe signalisieren, dass das Management die aktuelle Bewertung als attraktiv erachtet, was eine nachhaltige Underreaction impliziert.\",\n        \"catalyst\": \"CFO-Guidance zur anhaltenden Hormuz-Disruption bis H2 2026 kombiniert mit Record-IET-Orders aus Q1 2026 und 7-facher Insider-Akkumulation als strukturelles Repricing-Signal\",\n        \"bear_case\": \"Geopolitische Deeskalation am Persischen Golf w\\u00fcrde die Hormuz-Pr\\u00e4mie sofort aufl\\u00f6sen; nach +6,8% in 48h ist erhebliche IV bereits eingepreist, was Optionsstrategien verteuert und IV-Crush-Risiko bei weiterer Entspannung schafft.\",\n        \"macro_assessment\": \"Das expansive Makroumfeld mit steiler Zinskurve (+0,53%) und Fed Funds Rate von 3,64% beg\\u00fcnstigt kapitalintensive Industriesektoren wie Oilfield Services. Die 10Y-Rate von 4,25% ist moderat und dr\\u00fcckt nicht auf die Bewertung von zyklischen Wachstumswerten. Gesamtbewertung: Makro-R\\u00fcckenwind unterst\\u00fctzt die bullische These und kompensiert teilweise das Risiko der bereits erfolgten Kursbewegung.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.53,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLE\",\n        \"rel_strength\": 0.1261\n      },\n      \"final_score\": 0.1558,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 6.1235,\n        \"annualized_roi\": null,\n        \"dte\": 17\n      },\n      \"trade_score\": {\n        \"total\": 78,\n        \"grade\": \"STRONG BUY \\ud83d\\udfe2\",\n        \"grade_short\": \"STRONG BUY\",\n        \"components\": {\n          \"signal_quality\": 25.9,\n          \"options_quality\": 27.0,\n          \"risk_deductions\": 0.0,\n          \"context_bonus\": 25.0\n        },\n        \"reasoning\": \"St\\u00e4rken: starkes Signal (Impact=7/Surprise=6), guter ROI (104%), g\\u00fcnstige IV (36%)\",\n        \"best_argument_for\": \"Der Markt hat zwar kurzfristig reagiert, untersch\\u00e4tzt aber die strukturelle Neubewertung von BKR als Benefiziar prolongierter Middle-East-Disruption im IET-Segment. Record-IET-Orders und starke EBITDA-Entwicklung liefern fundamentale Unterst\\u00fctzung jenseits der rein geopolitischen Pr\\u00e4mie. Insider-Cluster-K\\u00e4ufe signalisieren, dass das Management die aktuelle Bewertung als attraktiv erachtet, was eine nachhaltige Underreaction impliziert.\",\n        \"best_argument_against\": \"Der Kurs ist bereits um +6,8% in 48 Stunden gestiegen, was stark darauf hindeutet, dass der Markt den Hormuz-Katalysator bereits eingepreist hat. Ein Einstieg nach einem solchen Move birgt erhebliches Mean-Reversion-Risiko, insbesondere wenn die geopolitische Pr\\u00e4mie sich als tempor\\u00e4r oder \\u00fcbertrieben erweist. Optionsk\\u00e4ufer zahlen nach einem solchen Spike deutlich erh\\u00f6hte Implied Volatility (IV-Crush-Risiko post-Catalyst).\"\n      },\n      \"trade_rank\": 1\n    },\n    {\n      \"ticker\": \"CMCSA\",\n      \"strategy\": \"LONG_PUT\",\n      \"iv_rank\": 73.4,\n      \"iv_gate_applied\": false,\n      \"direction\": \"BEARISH\",\n      \"option\": {\n        \"expiry\": \"2026-05-15\",\n        \"strike\": 28.5,\n        \"bid\": 1.19,\n        \"ask\": 1.32,\n        \"open_interest\": 138,\n        \"implied_vol\": 0.36817038085937503,\n        \"spread_ratio\": 0.0985,\n        \"dte\": 17\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 0.6511,\n        \"roi_net\": 0.2941,\n        \"spread_pct\": 0.0985,\n        \"vega_loss\": 0.16,\n        \"delta\": 0.3871,\n        \"iv_drop_assumed\": 0.25,\n        \"cost_basis\": 1.32,\n        \"is_spread\": false,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.15,\n        \"dte\": 17\n      },\n      \"dte_tier\": \"Short-Term\",\n      \"annualized_roi\": 252.5218,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Short-Term\",\n          \"dte\": 17,\n          \"option\": {\n            \"expiry\": \"2026-05-15\",\n            \"strike\": 28.5,\n            \"bid\": 1.19,\n            \"ask\": 1.32,\n            \"open_interest\": 138,\n            \"implied_vol\": 0.36817038085937503,\n            \"spread_ratio\": 0.0985,\n            \"dte\": 17\n          },\n          \"roi\": {\n            \"roi_gross\": 0.6511,\n            \"roi_net\": 0.2941,\n            \"spread_pct\": 0.0985,\n            \"vega_loss\": 0.16,\n            \"delta\": 0.3871,\n            \"iv_drop_assumed\": 0.25,\n            \"cost_basis\": 1.32,\n            \"is_spread\": false,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.15,\n            \"dte\": 17\n          },\n          \"annualized_roi\": 252.5218,\n          \"strategy\": \"LONG_PUT\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 6.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0295,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.644\n      },\n      \"simulation\": {\n        \"current_price\": 27.77,\n        \"target_price\": 29.99,\n        \"hit_rate\": 0.7392,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0215,\n        \"alpha\": 0.00267\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"FCC-Regulierungsdruck ist strukturell und nicht kurzfristig l\\u00f6sbar: Die Trump-FCC verfolgt aktiv neue Wege, TV-Networks zu belasten, was Comcasts Kerngesch\\u00e4ft (NBCUniversal, Broadcast) direkt trifft. Diese regulatorische Unsicherheit kann die Bewertungsmultiples dauerhaft komprimieren und ist kein einmaliges Event.\",\n          \"argument_2\": \"Peacock verliert weiterhin massiv Geld (-432 Mio USD) und skaliert nicht profitabel. In einem Umfeld mit steigendem Streaming-Wettbewerb (Disney+, Netflix, Max) fehlt Peacock die kritische Content-Masse. Ohne klaren Weg zur Profitabilit\\u00e4t belastet der Streamingarm die Gesamtmargen nachhaltig.\",\n          \"argument_3\": \"Der -12,1% Preisr\\u00fcckgang in 48h deutet auf erheblichen fundamentalen Schock hin (vermutlich schlechte Earnings oder Guidance-Cut). Insider-K\\u00e4ufe k\\u00f6nnen ein Catching-Falling-Knife-Signal sein \\u2014 Management glaubt an die Aktie, aber der Markt preist strukturellen Verfall ein. Der EPS-Gap zwischen yfinance (3,84) und SEC EDGAR (5,10) deutet zudem auf Qualit\\u00e4tsprobleme bei den Gewinndaten hin.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Die 0% Hit-Rate ist bei einem bereits -12,1% gefallenen Titel ohne MC-Simulation nicht aussagekr\\u00e4ftig. Da kein Quick MC durchgef\\u00fchrt wurde, fehlt die statistische Basis f\\u00fcr eine Wahrscheinlichkeitsaussage. Der fehlende MC erh\\u00f6ht die Datelunsicherheit erheblich \\u2014 keine Warnung wegen \\u00dcberkalibrierung, aber Confidence sinkt.\",\n          \"concern_level\": \"high\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BEARISH\",\n        \"bear_case_severity\": 7,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt hat den -12,1%-Drop m\\u00f6glicherweise als \\u00fcberverkauft eingestuft, w\\u00e4hrend strukturelle Faktoren (FCC-Druck, Peacock-Verluste, Kabelkundenschwund) dauerhaft wirken. Insider-K\\u00e4ufe erzeugen ein bullisches Gegensignal, das kurzfristig stabilisiert, aber die fundamentalen Probleme nicht l\\u00f6st. Das Risiko liegt in einer weiteren Neubewertung der Multiples bei anhaltend schwachen Streaming-Metriken im Q2-2026-Ergebnis.\",\n        \"catalyst\": \"Q2-2026-Earnings mit Peacock-Verlustentwicklung und FCC-Regulierungsank\\u00fcndigungen bis Juli 2026\",\n        \"bear_case\": \"Struktureller Kabelkunden-Exodus kombiniert mit Peacock-Verlusten und FCC-Druck kann die FCF-Generation nachhaltig komprimieren, was weitere Multiple-Kontraktion erzwingt \\u2014 Insider-K\\u00e4ufe reichen nicht aus, um diesen Trend umzukehren.\",\n        \"macro_assessment\": \"Das expansive Makro-Umfeld (steile Kurve +0,53%, Fed Funds 3,64%) ist grunds\\u00e4tzlich positiv f\\u00fcr Leverage-intensive Unternehmen wie Comcast. Allerdings \\u00fcberlagern sektorspezifische Strukturrisiken (Regulierung, Streaming-Burn) den makro-tailwind, weshalb das bullische Makro-Signal hier nur begrenzte Unterst\\u00fctzung bietet.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.53,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLC\",\n        \"rel_strength\": -0.0877\n      },\n      \"final_score\": 0.1351,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 1.73,\n        \"annualized_roi\": null,\n        \"dte\": 17\n      },\n      \"trade_score\": {\n        \"total\": 48,\n        \"grade\": \"WATCH \\ud83d\\udfe0\",\n        \"grade_short\": \"WATCH\",\n        \"components\": {\n          \"signal_quality\": 21.9,\n          \"options_quality\": 23.2,\n          \"risk_deductions\": -12.0,\n          \"context_bonus\": 15.0\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=6/Surprise=5), guter ROI (29%), expansives Makro-Umfeld | Risiken: hohes Bear-Risiko (7/10), Sektor underperformt Markt\",\n        \"best_argument_for\": \"Der Markt hat den -12,1%-Drop m\\u00f6glicherweise als \\u00fcberverkauft eingestuft, w\\u00e4hrend strukturelle Faktoren (FCC-Druck, Peacock-Verluste, Kabelkundenschwund) dauerhaft wirken. Insider-K\\u00e4ufe erzeugen ein bullisches Gegensignal, das kurzfristig stabilisiert, aber die fundamentalen Probleme nicht l\\u00f6st. Das Risiko liegt in einer weiteren Neubewertung der Multiples bei anhaltend schwachen Streaming-Metriken im Q2-2026-Ergebnis.\",\n        \"best_argument_against\": \"FCC-Regulierungsdruck ist strukturell und nicht kurzfristig l\\u00f6sbar: Die Trump-FCC verfolgt aktiv neue Wege, TV-Networks zu belasten, was Comcasts Kerngesch\\u00e4ft (NBCUniversal, Broadcast) direkt trifft. Diese regulatorische Unsicherheit kann die Bewertungsmultiples dauerhaft komprimieren und ist kein einmaliges Event.\"\n      },\n      \"trade_rank\": 2\n    }\n  ]\n}"
  },
  {
    "path": "outputs/daily_reports/2026-04-27.md",
    "content": "# Adaptive Asymmetry-Scanner – 2026-04-27\n\n**Generiert:** 2026-04-27 15:26 UTC\n**Trade-Vorschläge:** 2\n\n---\n## 1. BKR – LONG_CALL\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.1558`  \n**IV-Rank:** 36.3  \n\n### Asymmetry-Analyse\n- **Impact:** 7/10\n- **Surprise:** 6/10\n- **Mismatch-Score:** 7.0\n- **Z-Score (48h):** 0.0\n- **EPS-Drift:** 0.0 (noise)\n\n**Mispricing-Logik:**  \n> N/A\n\n**Katalysator:** CFO-Guidance zur anhaltenden Hormuz-Disruption bis H2 2026 kombiniert mit Record-IET-Orders aus Q1 2026 und 7-facher Insider-Akkumulation als strukturelles Repricing-Signal  \n**Time-to-Materialization:** 2-3 Monate  \n\n### Bear Case\n> Geopolitische Deeskalation am Persischen Golf würde die Hormuz-Prämie sofort auflösen; nach +6,8% in 48h ist erhebliche IV bereits eingepreist, was Optionsstrategien verteuert und IV-Crush-Risiko bei weiterer Entspannung schafft.  \n**Severity:** 5/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 85.0% (10,000 Pfade)\n- **Target-Preis:** $74.32\n- **Aktueller Preis:** $68.81\n- **σ (adj.):** 0.0000\n\n### Options-Vorschlag\n- **Expiry:** 2026-05-15 (17 DTE)\n- **Strike:** $70.00\n- **Bid/Ask:** $1.75 / $1.90\n- **Impl. Vol.:** 38.1%\n- **Open Interest:** 3,488\n- **Bid-Ask-Ratio:** 7.89%\n\n---\n## 2. CMCSA – LONG_PUT\n\n**Richtung:** BEARISH  \n**FinalScore:** `0.1351`  \n**IV-Rank:** 73.4  \n\n### Asymmetry-Analyse\n- **Impact:** 6/10\n- **Surprise:** 5/10\n- **Mismatch-Score:** 6.0\n- **Z-Score (48h):** 0.0\n- **EPS-Drift:** 0.0 (noise)\n\n**Mispricing-Logik:**  \n> N/A\n\n**Katalysator:** Q2-2026-Earnings mit Peacock-Verlustentwicklung und FCC-Regulierungsankündigungen bis Juli 2026  \n**Time-to-Materialization:** 2-3 Monate  \n\n### Bear Case\n> Struktureller Kabelkunden-Exodus kombiniert mit Peacock-Verlusten und FCC-Druck kann die FCF-Generation nachhaltig komprimieren, was weitere Multiple-Kontraktion erzwingt — Insider-Käufe reichen nicht aus, um diesen Trend umzukehren.  \n**Severity:** 7/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 73.9% (10,000 Pfade)\n- **Target-Preis:** $29.99\n- **Aktueller Preis:** $27.77\n- **σ (adj.):** 0.0000\n\n### Options-Vorschlag\n- **Expiry:** 2026-05-15 (17 DTE)\n- **Strike:** $28.50\n- **Bid/Ask:** $1.19 / $1.32\n- **Impl. Vol.:** 36.8%\n- **Open Interest:** 138\n- **Bid-Ask-Ratio:** 9.85%\n\n---\n## Modell-Gewichte (aktuell)\n- Impact: `0.35`\n- Mismatch: `0.45`\n- EPS-Drift: `0.20`\n\n_Automatisch generiert durch Adaptive Asymmetry-Scanner v3.5_"
  },
  {
    "path": "outputs/daily_reports/2026-04-28.json",
    "content": "{\n  \"date\": \"2026-04-28\",\n  \"proposals\": [\n    {\n      \"ticker\": \"AMAT\",\n      \"strategy\": \"LONG_PUT\",\n      \"iv_rank\": 61.8,\n      \"iv_gate_applied\": false,\n      \"direction\": \"BEARISH\",\n      \"option\": {\n        \"expiry\": \"2026-05-15\",\n        \"strike\": 380.0,\n        \"bid\": 20.0,\n        \"ask\": 21.2,\n        \"open_interest\": 1624,\n        \"implied_vol\": 0.6688875885009766,\n        \"spread_ratio\": 0.0566,\n        \"dte\": 16\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 1.0621,\n        \"roi_net\": 0.8288,\n        \"spread_pct\": 0.0566,\n        \"vega_loss\": 0.1201,\n        \"delta\": 0.5635,\n        \"iv_drop_assumed\": 0.12,\n        \"cost_basis\": 21.2,\n        \"is_spread\": false,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.15,\n        \"dte\": 16\n      },\n      \"dte_tier\": \"Short-Term\",\n      \"annualized_roi\": 956458.8306,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Short-Term\",\n          \"dte\": 16,\n          \"option\": {\n            \"expiry\": \"2026-05-15\",\n            \"strike\": 380.0,\n            \"bid\": 20.0,\n            \"ask\": 21.2,\n            \"open_interest\": 1624,\n            \"implied_vol\": 0.6688875885009766,\n            \"spread_ratio\": 0.0566,\n            \"dte\": 16\n          },\n          \"roi\": {\n            \"roi_gross\": 1.0621,\n            \"roi_net\": 0.8288,\n            \"spread_pct\": 0.0566,\n            \"vega_loss\": 0.1201,\n            \"delta\": 0.5635,\n            \"iv_drop_assumed\": 0.12,\n            \"cost_basis\": 21.2,\n            \"is_spread\": false,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.15,\n            \"dte\": 16\n          },\n          \"annualized_roi\": 956458.8306,\n          \"strategy\": \"LONG_PUT\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 5.619,\n        \"z_score\": 0.076,\n        \"sigma_30d\": 0.0309,\n        \"price_move_48h\": 0.0024,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.75\n      },\n      \"simulation\": {\n        \"current_price\": 384.81,\n        \"target_price\": 424.77,\n        \"hit_rate\": 0.75,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.031,\n        \"alpha\": 0.00528\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Die US-Exportbeschr\\u00e4nkungen gegen Hua Hong und andere chinesische Chipmaker treffen AMAT direkt im Kerngesch\\u00e4ft. China macht historisch 25-30% des AMAT-Umsatzes aus, und jede weitere Versch\\u00e4rfung der Restriktionen kann Auftragsbest\\u00e4nde signifikant schrumpfen lassen. Der Markt hat dieses strukturelle Risiko m\\u00f6glicherweise noch nicht vollst\\u00e4ndig eingepreist, was eine weitere Abw\\u00e4rtsbewegung trotz positivem Makro wahrscheinlich macht.\",\n          \"argument_2\": \"Der breite Semiconductor Sell-Off, der den S&P 500 und Nasdaq belastet, deutet auf sektorweiten Gegenwind hin. AMAT als Capital-Equipment-Anbieter ist doppelt exponiert: erstens \\u00fcber das China-Risiko, zweitens \\u00fcber die Investitionszyklen der Chipmaker, die bei unsicherem Nachfrageausblick ihre CapEx-Budgets k\\u00fcrzen k\\u00f6nnten. Insider-K\\u00e4ufe reichen erfahrungsgem\\u00e4\\u00df nicht aus, um sektorweiten Abverkauf aufzufangen.\",\n          \"argument_3\": \"Die EPS-Diskrepanz zwischen yfinance (14.07) und SEC EDGAR (9.76) ist erheblich und deutet auf m\\u00f6gliche Normalisierungseffekte oder Non-GAAP-Anpassungen hin, die die fundamentale Bewertung verzerren. Bei einem Kurs von $384.81 liegt das KGV je nach Datenbasis zwischen ca. 27 und 39 \\u2014 bei regulatorischem Gegenwind und einem m\\u00f6glichen CapEx-Zyklus-R\\u00fcckgang ist die Aktie keinesfalls g\\u00fcnstig bewertet.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein Monte Carlo wurde durchgef\\u00fchrt (0 Pfade), daher ist die 0%-Hit-Rate nicht interpretierbar und liefert keinerlei statistische Basis f\\u00fcr die Entscheidung. Die fehlende Simulation erh\\u00f6ht die Modell-Unsicherheit erheblich und erfordert h\\u00f6here Vorsicht bei der Richtungsbewertung.\",\n          \"concern_level\": \"high\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BEARISH\",\n        \"bear_case_severity\": 7,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt fokussiert kurzfristig auf Insider-K\\u00e4ufe und den bullishen B.-Riley-Kommentar, untersch\\u00e4tzt aber das strukturelle China-Exportrisiko, das in 2-3 Monaten in Auftragsr\\u00fcckg\\u00e4ngen sichtbar wird. Die Haiku-Einsch\\u00e4tzung bewertet das Signal als katalytisch-neutral, doch die Richtung ist BEARISH, weil Exportbeschr\\u00e4nkungen Umsatzbeitr\\u00e4ge dauerhaft kappen. Sektorweiter Sell-Off und regulatorische Eskalation \\u00fcberlagern das expansive Makroumfeld f\\u00fcr equipment-lastige Semis.\",\n        \"catalyst\": \"Weitere US-Exportbeschr\\u00e4nkungen gegen chinesische Chipmaker (Hua Hong) mit direktem Auftragsr\\u00fcckgang bei AMAT im n\\u00e4chsten Earnings-Zyklus (Q2/Q3 2026)\",\n        \"bear_case\": \"China-Exposure von ca. 25-30% des Umsatzes trifft auf eskalierende Exportkontrollen, w\\u00e4hrend sektorweiter CapEx-Pessimismus den Orderbuchaufbau hemmt und die Bewertung auf GAAP-Basis mit KGV ~39 wenig Sicherheitsmarge bietet.\",\n        \"macro_assessment\": \"Das expansive Makroumfeld (steile Kurve, Fed Funds bei 3.64%) ist grunds\\u00e4tzlich positiv f\\u00fcr Long-Positionen, federt aber das spezifische regulatorische Risiko f\\u00fcr AMAT nicht ab. Geopolitisch getriebene Umsatzausf\\u00e4lle sind makro-unabh\\u00e4ngig und dominieren den mittelfristigen Ausblick f\\u00fcr China-exponierte Halbleiterausr\\u00fcster.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.57,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLK\",\n        \"rel_strength\": -0.0218\n      },\n      \"final_score\": 0.1172,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 5.18,\n        \"annualized_roi\": null,\n        \"dte\": 16\n      },\n      \"trade_score\": {\n        \"total\": 54,\n        \"grade\": \"WATCH \\ud83d\\udfe0\",\n        \"grade_short\": \"WATCH\",\n        \"components\": {\n          \"signal_quality\": 21.9,\n          \"options_quality\": 27.0,\n          \"risk_deductions\": -10.0,\n          \"context_bonus\": 15.0\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=6/Surprise=5), guter ROI (83%), expansives Makro-Umfeld | Risiken: hohes Bear-Risiko (7/10)\",\n        \"best_argument_for\": \"Der Markt fokussiert kurzfristig auf Insider-K\\u00e4ufe und den bullishen B.-Riley-Kommentar, untersch\\u00e4tzt aber das strukturelle China-Exportrisiko, das in 2-3 Monaten in Auftragsr\\u00fcckg\\u00e4ngen sichtbar wird. Die Haiku-Einsch\\u00e4tzung bewertet das Signal als katalytisch-neutral, doch die Richtung ist BEARISH, weil Exportbeschr\\u00e4nkungen Umsatzbeitr\\u00e4ge dauerhaft kappen. Sektorweiter Sell-Off und regulatorische Eskalation \\u00fcberlagern das expansive Makroumfeld f\\u00fcr equipment-lastige Semis.\",\n        \"best_argument_against\": \"Die US-Exportbeschr\\u00e4nkungen gegen Hua Hong und andere chinesische Chipmaker treffen AMAT direkt im Kerngesch\\u00e4ft. China macht historisch 25-30% des AMAT-Umsatzes aus, und jede weitere Versch\\u00e4rfung der Restriktionen kann Auftragsbest\\u00e4nde signifikant schrumpfen lassen. Der Markt hat dieses strukturelle Risiko m\\u00f6glicherweise noch nicht vollst\\u00e4ndig eingepreist, was eine weitere Abw\\u00e4rtsbewegung trotz positivem Makro wahrscheinlich macht.\"\n      },\n      \"trade_rank\": 1,\n      \"exit_rules\": {\n        \"entry_cost\": 21.2,\n        \"take_profit_pct\": 50,\n        \"take_profit_price\": 31.8,\n        \"full_profit_pct\": 100,\n        \"full_profit_price\": 42.4,\n        \"stop_loss_pct\": -40,\n        \"stop_loss_price\": 12.72,\n        \"time_exit_dte_remaining\": 8,\n        \"time_exit_date\": \"2026-05-07\",\n        \"time_exit_min_profit_pct\": 20\n      }\n    },\n    {\n      \"ticker\": \"CCL\",\n      \"strategy\": \"LONG_PUT\",\n      \"iv_rank\": 82.7,\n      \"iv_gate_applied\": false,\n      \"direction\": \"BEARISH\",\n      \"option\": {\n        \"expiry\": \"2026-05-15\",\n        \"strike\": 27.0,\n        \"bid\": 1.68,\n        \"ask\": 1.75,\n        \"open_interest\": 6908,\n        \"implied_vol\": 0.5361374511718751,\n        \"spread_ratio\": 0.04,\n        \"dte\": 16\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 0.7176,\n        \"roi_net\": 0.473,\n        \"spread_pct\": 0.04,\n        \"vega_loss\": 0.1646,\n        \"delta\": 0.4214,\n        \"iv_drop_assumed\": 0.25,\n        \"cost_basis\": 1.75,\n        \"is_spread\": false,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.15,\n        \"dte\": 16\n      },\n      \"dte_tier\": \"Short-Term\",\n      \"annualized_roi\": 6871.6648,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Short-Term\",\n          \"dte\": 16,\n          \"option\": {\n            \"expiry\": \"2026-05-15\",\n            \"strike\": 27.0,\n            \"bid\": 1.68,\n            \"ask\": 1.75,\n            \"open_interest\": 6908,\n            \"implied_vol\": 0.5361374511718751,\n            \"spread_ratio\": 0.04,\n            \"dte\": 16\n          },\n          \"roi\": {\n            \"roi_gross\": 0.7176,\n            \"roi_net\": 0.473,\n            \"spread_pct\": 0.04,\n            \"vega_loss\": 0.1646,\n            \"delta\": 0.4214,\n            \"iv_drop_assumed\": 0.25,\n            \"cost_basis\": 1.75,\n            \"is_spread\": false,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.15,\n            \"dte\": 16\n          },\n          \"annualized_roi\": 6871.6648,\n          \"strategy\": \"LONG_PUT\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 6,\n        \"mismatch\": 4.425,\n        \"z_score\": 0.115,\n        \"sigma_30d\": 0.0391,\n        \"price_move_48h\": 0.0045,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.5558\n      },\n      \"simulation\": {\n        \"current_price\": 26.24,\n        \"target_price\": 29.22,\n        \"hit_rate\": 0.5684,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0339,\n        \"alpha\": 0.00065\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Der Insider-Verkauf von $15M ist ein massives Warnsignal: Wenn Unternehmensinsider trotz eines bereits 25%-igen Kursabsturzes in einem Monat noch verkaufen, signalisiert das, dass das Management selbst keinen kurzfristigen Boden sieht. Strukturelle Probleme wie Treibstoffkosten-Risiken und Konsumenten-Zur\\u00fcckhaltung bei Luxusausgaben k\\u00f6nnten den Druck weiter verst\\u00e4rken.\",\n          \"argument_2\": \"CCL als Consumer Cyclical ist extrem sensitiv gegen\\u00fcber Konsumentenvertrauen und Kreditverf\\u00fcgbarkeit. Selbst in einem expansiven Makro-Umfeld kann eine Verlangsamung der Buchungsaktivit\\u00e4t oder steigende Treibstoffkosten (Fuel Risks laut News explizit erw\\u00e4hnt) die Margen stark komprimieren \\u2014 der FY2029-Ausblick ist zu weit entfernt, um kurzfristige Kursverluste aufzufangen.\",\n          \"argument_3\": \"Die Haiku-Einsch\\u00e4tzung identifiziert 'structural_change' \\u2014 was darauf hindeutet, dass der Kursverfall nicht nur zyklisch, sondern m\\u00f6glicherweise fundamental begr\\u00fcndet ist. Ein 25%-Absturz in einem Monat bei gleichzeitigem Insider-Selling k\\u00f6nnte Markt-Erwartungen einer echten Revision nach unten widerspiegeln, sodass Puts attraktiver erscheinen als Long-Positionen. Das Cluster-Insider-Kauf-Signal (2 Insider kaufen) ist im Volumen deutlich kleiner als der $15M-Verkauf.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"0% Hit-Rate ist hier nicht als statistisches Ergebnis zu werten, da kein Quick MC durchgef\\u00fchrt wurde \\u2014 die Kennzahl ist schlicht nicht verf\\u00fcgbar. Die fehlende MC-Simulation erh\\u00f6ht die Unsicherheit der Richtungseinsch\\u00e4tzung erheblich; ohne Pfad-Daten kann keine robuste Wahrscheinlichkeitsaussage getroffen werden.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 5,\n        \"surprise\": 6,\n        \"direction\": \"BEARISH\",\n        \"bear_case_severity\": 7,\n        \"time_to_materialization\": \"4-8 Wochen\",\n        \"asymmetry_reasoning\": \"Der Markt k\\u00f6nnte die Kombination aus Insider-Selling und strukturellem Preisverfall als isolierte Ereignisse werten, anstatt als koh\\u00e4rentes Signal f\\u00fcr weiteren Abw\\u00e4rtsdruck. Zwei kleinere Insider-K\\u00e4ufe werden gegen einen $15M-Verkauf aufgewogen \\u2014 das Netto-Signal bleibt klar bearish. Das expansive Makro-Umfeld verleitet Investoren, zyklische Rebounds zu antizipieren, obwohl sektorspezifische Risiken (Treibstoff, Buchungsr\\u00fcckgang) diesen \\u00fcberlagern k\\u00f6nnten.\",\n        \"catalyst\": \"N\\u00e4chste Earnings-Revision oder Guidance-Senkung f\\u00fcr FY2026 bei schwachen Buchungsdaten oder steigenden Treibstoffkosten\",\n        \"bear_case\": \"Ein rascher R\\u00fcckgang der \\u00d6lpreise und \\u00fcberraschend starke Buchungszahlen k\\u00f6nnten den Kurs schnell erholen lassen \\u2014 Buy-Analysten-Initierungen (Initiating With A Buy in News) k\\u00f6nnten kurzfristig Short-Squeezes ausl\\u00f6sen.\",\n        \"macro_assessment\": \"Das expansive Makro-Umfeld (steile Zinskurve +0.57%, Fed Funds 3.64%) beg\\u00fcnstigt grunds\\u00e4tzlich Long-Positionen in Consumer Cyclicals. Dennoch ist CCL ein Spezialfall: Der bereits materialisierte 25%-Absturz und das Insider-Selling dominieren das sektorspezifische Risiko. Das Makro mildert die Bearish-Einsch\\u00e4tzung leicht, reicht aber nicht aus, um das strukturelle Signal zu \\u00fcberstimmen.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.57,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": true\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLY\",\n        \"rel_strength\": -0.025\n      },\n      \"final_score\": 0.1172,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 2.9562,\n        \"annualized_roi\": null,\n        \"dte\": 16\n      },\n      \"trade_score\": {\n        \"total\": 45,\n        \"grade\": \"WATCH \\ud83d\\udfe0\",\n        \"grade_short\": \"WATCH\",\n        \"components\": {\n          \"signal_quality\": 21.9,\n          \"options_quality\": 30.0,\n          \"risk_deductions\": -12.0,\n          \"context_bonus\": 5.0\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=5/Surprise=6), guter ROI (47%), expansives Makro-Umfeld | Risiken: hohes Bear-Risiko (7/10)\",\n        \"best_argument_for\": \"Der Markt k\\u00f6nnte die Kombination aus Insider-Selling und strukturellem Preisverfall als isolierte Ereignisse werten, anstatt als koh\\u00e4rentes Signal f\\u00fcr weiteren Abw\\u00e4rtsdruck. Zwei kleinere Insider-K\\u00e4ufe werden gegen einen $15M-Verkauf aufgewogen \\u2014 das Netto-Signal bleibt klar bearish. Das expansive Makro-Umfeld verleitet Investoren, zyklische Rebounds zu antizipieren, obwohl sektorspezifische Risiken (Treibstoff, Buchungsr\\u00fcckgang) diesen \\u00fcberlagern k\\u00f6nnten.\",\n        \"best_argument_against\": \"Der Insider-Verkauf von $15M ist ein massives Warnsignal: Wenn Unternehmensinsider trotz eines bereits 25%-igen Kursabsturzes in einem Monat noch verkaufen, signalisiert das, dass das Management selbst keinen kurzfristigen Boden sieht. Strukturelle Probleme wie Treibstoffkosten-Risiken und Konsumenten-Zur\\u00fcckhaltung bei Luxusausgaben k\\u00f6nnten den Druck weiter verst\\u00e4rken.\"\n      },\n      \"trade_rank\": 2,\n      \"exit_rules\": {\n        \"entry_cost\": 1.75,\n        \"take_profit_pct\": 50,\n        \"take_profit_price\": 2.62,\n        \"full_profit_pct\": 100,\n        \"full_profit_price\": 3.5,\n        \"stop_loss_pct\": -40,\n        \"stop_loss_price\": 1.05,\n        \"time_exit_dte_remaining\": 8,\n        \"time_exit_date\": \"2026-05-07\",\n        \"time_exit_min_profit_pct\": 20\n      }\n    }\n  ]\n}"
  },
  {
    "path": "outputs/daily_reports/2026-04-28.md",
    "content": "# Adaptive Asymmetry-Scanner – 2026-04-28\n\n**Generiert:** 2026-04-28 19:32 UTC\n**Trade-Vorschläge:** 2\n\n---\n## 1. AMAT – LONG_PUT\n\n**Richtung:** BEARISH  \n**FinalScore:** `0.1172`  \n**IV-Rank:** 61.8  \n**Trade-Score:** 54/100 — WATCH 🟠  \n\n### Asymmetry-Analyse\n- **Impact:** 6/10\n- **Surprise:** 5/10\n- **Mismatch-Score:** 5.619\n- **Z-Score (48h):** 0.076\n- **48h-Move:** 0.0024\n- **EPS-Drift:** 0.0 (noise)\n\n**Asymmetry-Reasoning:**  \n> Der Markt fokussiert kurzfristig auf Insider-Käufe und den bullishen B.-Riley-Kommentar, unterschätzt aber das strukturelle China-Exportrisiko, das in 2-3 Monaten in Auftragsrückgängen sichtbar wird. Die Haiku-Einschätzung bewertet das Signal als katalytisch-neutral, doch die Richtung ist BEARISH, weil Exportbeschränkungen Umsatzbeiträge dauerhaft kappen. Sektorweiter Sell-Off und regulatorische Eskalation überlagern das expansive Makroumfeld für equipment-lastige Semis.\n\n**Katalysator:** Weitere US-Exportbeschränkungen gegen chinesische Chipmaker (Hua Hong) mit direktem Auftragsrückgang bei AMAT im nächsten Earnings-Zyklus (Q2/Q3 2026)  \n**Time-to-Materialization:** 2-3 Monate  \n\n### Bear Case\n> China-Exposure von ca. 25-30% des Umsatzes trifft auf eskalierende Exportkontrollen, während sektorweiter CapEx-Pessimismus den Orderbuchaufbau hemmt und die Bewertung auf GAAP-Basis mit KGV ~39 wenig Sicherheitsmarge bietet.  \n**Severity:** 7/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 75.0% (10,000 Pfade)\n- **Target-Preis:** $424.77\n- **Aktueller Preis:** $384.81\n- **σ:** 0.0310\n- **α (Signal-Drift):** 0.00528\n\n### Options-Vorschlag\n- **Expiry:** 2026-05-15 (16 DTE)\n- **Strike:** $380.00\n- **Bid/Ask:** $20.00 / $21.20\n- **Impl. Vol.:** 66.9%\n- **Open Interest:** 1,624\n- **Bid-Ask-Ratio:** 5.66%\n\n### 🚪 Exit-Regeln\n- **Entry-Kosten:** $21.20 pro Kontrakt\n- **Take-Profit:** bei $31.80 (+50%) → Hälfte schliessen\n- **Full-Profit:** bei $42.40 (+100%) → Rest schliessen\n- **Stop-Loss:** bei $12.72 (-40%) → Gesamte Position liquidieren\n- **Time-Exit:** ab 2026-05-07 (8 DTE Rest) — schliessen wenn Gewinn < +20%\n\n---\n## 2. CCL – LONG_PUT\n\n**Richtung:** BEARISH  \n**FinalScore:** `0.1172`  \n**IV-Rank:** 82.7  \n**Trade-Score:** 45/100 — WATCH 🟠  \n\n### Asymmetry-Analyse\n- **Impact:** 5/10\n- **Surprise:** 6/10\n- **Mismatch-Score:** 4.425\n- **Z-Score (48h):** 0.115\n- **48h-Move:** 0.0045\n- **EPS-Drift:** 0.0 (noise)\n\n**Asymmetry-Reasoning:**  \n> Der Markt könnte die Kombination aus Insider-Selling und strukturellem Preisverfall als isolierte Ereignisse werten, anstatt als kohärentes Signal für weiteren Abwärtsdruck. Zwei kleinere Insider-Käufe werden gegen einen $15M-Verkauf aufgewogen — das Netto-Signal bleibt klar bearish. Das expansive Makro-Umfeld verleitet Investoren, zyklische Rebounds zu antizipieren, obwohl sektorspezifische Risiken (Treibstoff, Buchungsrückgang) diesen überlagern könnten.\n\n**Katalysator:** Nächste Earnings-Revision oder Guidance-Senkung für FY2026 bei schwachen Buchungsdaten oder steigenden Treibstoffkosten  \n**Time-to-Materialization:** 4-8 Wochen  \n\n### Bear Case\n> Ein rascher Rückgang der Ölpreise und überraschend starke Buchungszahlen könnten den Kurs schnell erholen lassen — Buy-Analysten-Initierungen (Initiating With A Buy in News) könnten kurzfristig Short-Squeezes auslösen.  \n**Severity:** 7/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 56.8% (10,000 Pfade)\n- **Target-Preis:** $29.22\n- **Aktueller Preis:** $26.24\n- **σ:** 0.0339\n- **α (Signal-Drift):** 0.00065\n\n### Options-Vorschlag\n- **Expiry:** 2026-05-15 (16 DTE)\n- **Strike:** $27.00\n- **Bid/Ask:** $1.68 / $1.75\n- **Impl. Vol.:** 53.6%\n- **Open Interest:** 6,908\n- **Bid-Ask-Ratio:** 4.00%\n\n### 🚪 Exit-Regeln\n- **Entry-Kosten:** $1.75 pro Kontrakt\n- **Take-Profit:** bei $2.62 (+50%) → Hälfte schliessen\n- **Full-Profit:** bei $3.50 (+100%) → Rest schliessen\n- **Stop-Loss:** bei $1.05 (-40%) → Gesamte Position liquidieren\n- **Time-Exit:** ab 2026-05-07 (8 DTE Rest) — schliessen wenn Gewinn < +20%\n\n---\n## Modell-Gewichte (aktuell)\n- Impact: `0.35`\n- Mismatch: `0.45`\n- EPS-Drift: `0.20`\n\n_Automatisch generiert durch Adaptive Asymmetry-Scanner v8.2_"
  },
  {
    "path": "outputs/daily_reports/2026-04-29.json",
    "content": "{\n  \"date\": \"2026-04-29\",\n  \"proposals\": [\n    {\n      \"ticker\": \"BKR\",\n      \"strategy\": \"LONG_CALL\",\n      \"iv_rank\": 46.3,\n      \"iv_gate_applied\": false,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-05-15\",\n        \"strike\": 70.0,\n        \"bid\": 1.6,\n        \"ask\": 1.65,\n        \"open_interest\": 3344,\n        \"implied_vol\": 0.35986968261718744,\n        \"spread_ratio\": 0.0303,\n        \"dte\": 15\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 1.4044,\n        \"roi_net\": 1.2842,\n        \"spread_pct\": 0.0303,\n        \"vega_loss\": 0.0595,\n        \"delta\": 0.4213,\n        \"iv_drop_assumed\": 0.05,\n        \"cost_basis\": 1.65,\n        \"is_spread\": false,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.15,\n        \"dte\": 15\n      },\n      \"dte_tier\": \"Short-Term\",\n      \"annualized_roi\": 536039871.4154,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Short-Term\",\n          \"dte\": 15,\n          \"option\": {\n            \"expiry\": \"2026-05-15\",\n            \"strike\": 70.0,\n            \"bid\": 1.6,\n            \"ask\": 1.65,\n            \"open_interest\": 3344,\n            \"implied_vol\": 0.35986968261718744,\n            \"spread_ratio\": 0.0303,\n            \"dte\": 15\n          },\n          \"roi\": {\n            \"roi_gross\": 1.4044,\n            \"roi_net\": 1.2842,\n            \"spread_pct\": 0.0303,\n            \"vega_loss\": 0.0595,\n            \"delta\": 0.4213,\n            \"iv_drop_assumed\": 0.05,\n            \"cost_basis\": 1.65,\n            \"is_spread\": false,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.15,\n            \"dte\": 15\n          },\n          \"annualized_roi\": 536039871.4154,\n          \"strategy\": \"LONG_CALL\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 2.339,\n        \"z_score\": 0.732,\n        \"sigma_30d\": 0.0252,\n        \"price_move_48h\": 0.0184,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"weak\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.6906\n      },\n      \"simulation\": {\n        \"current_price\": 68.81,\n        \"target_price\": 74.31,\n        \"hit_rate\": 0.75,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0211,\n        \"alpha\": 0.0037\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Der Energiesektor steht unter erheblichem Gegenwind durch volatile \\u00d6lpreise und geopolitische Unsicherheiten im Nahen Osten. BKR selbst berichtet von Disruptions in Middle East Operations im Q1 2026, was darauf hindeutet, dass ein strukturell wichtiger Markt bereits unter Druck steht. Ein weiterer R\\u00fcckgang der Energiepreise k\\u00f6nnte Capex-Budgets gro\\u00dfer \\u00d6lproduzenten belasten und BKRs Auftragseingang in H2 2026 empfindlich treffen.\",\n          \"argument_2\": \"Das Jefferies-Kursziel von $80 liegt bei einem aktuellen Preis von $68.81 und damit bereits rund 16% im Upside \\u2014 was bedeutet, dass ein Gro\\u00dfteil der positiven Neubewertung durch die PT-Erh\\u00f6hung und den Q1-Beat m\\u00f6glicherweise bereits eingepreist ist. Die 48h-Preisbewegung von -1.8% trotz positiver Nachrichten (Inauguration, PT-Erh\\u00f6hung, Q1-Beat) signalisiert, dass der Markt diese Katalysatoren bereits absorbiert hat und kein weiterer Impuls unmittelbar bevorsteht. Dies ist ein klassisches 'Buy the News, Sell the Fact'-Muster.\",\n          \"argument_3\": \"Die EPS-Abweichung zwischen yfinance ($2.79) und SEC EDGAR ($3.13) betr\\u00e4gt zwar laut Angabe 0%, arithmetisch jedoch ca. 12.3% \\u2014 ein erheblicher Unterschied, der Zweifel an der Datenqualit\\u00e4t weckt. Wenn die h\\u00f6here SEC-Zahl adjustierte Einmaleffekte enth\\u00e4lt (z.B. Ver\\u00e4u\\u00dferungsgewinne, Restrukturierungseffekte), k\\u00f6nnte das operative EPS-Bild weniger rosig sein als dargestellt. Investoren k\\u00f6nnten diesen Unterschied im n\\u00e4chsten Quartal als Entt\\u00e4uschung wahrnehmen.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein Quick MC wurde durchgef\\u00fchrt, daher ist 0% schlicht ein technisches Artefakt und keine inhaltliche Aussage. Die fehlende Simulation schr\\u00e4nkt die quantitative Absicherung der Thesis ein. Angesichts historischer Volatilit\\u00e4t im Energiesektor (~25-35% annualisiert f\\u00fcr OFS-Titel) w\\u00e4re eine 30d-Hit-Rate von 55-65% realistisch \\u2014 das fehlende Modell ist kein positives oder negatives Signal, aber eine Datenl\\u00fccke.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 5,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt reagierte trotz drei simultaner positiver Katalysatoren mit -1.8%, was auf initiale \\u00dcberreaktion auf Makro-Energiesorgen hindeutet. Der Cluster aus 7 Insider-K\\u00e4ufen in 14 Tagen ist ein seltenes Signal mit hoher Glaubw\\u00fcrdigkeit, da Insider selten koordiniert ohne Information kaufen. Das neue Subsea-Facility st\\u00e4rkt BKRs Wettbewerbsposition im North Sea strukturell \\u00fcber mehrere Jahre.\",\n        \"catalyst\": \"Jefferies PT-Erh\\u00f6hung auf $80 kombiniert mit 7-Insider-Kaufcluster und Subsea-Facility-Inauguration als struktureller Wachstumstreiber f\\u00fcr North Sea Backlog 2026-2027\",\n        \"bear_case\": \"\\u00d6lpreisr\\u00fcckgang unter $65/Barrel k\\u00f6nnte Capex-K\\u00fcrzungen bei europ\\u00e4ischen und nahost-Kunden ausl\\u00f6sen und den Q2/Q3 2026 Auftragseingang substanziell unter Konsenserwartungen dr\\u00fccken.\",\n        \"macro_assessment\": \"Das expansive Makroumfeld mit steiler Zinskurve (+0.52%) und Fed Funds bei 3.64% beg\\u00fcnstigt kapitalintensive Industrietitel wie BKR. Energieunternehmen profitieren von stabilen Finanzierungskosten f\\u00fcr Gro\\u00dfprojekte. Der Makrokontext unterst\\u00fctzt die Bullish-These, gibt jedoch keine Absicherung gegen sektorspezifischen \\u00d6lpreisrisiken.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.52,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLE\",\n        \"rel_strength\": 0.1269\n      },\n      \"final_score\": 0.1745,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 8.5613,\n        \"annualized_roi\": null,\n        \"dte\": 15\n      },\n      \"trade_score\": {\n        \"total\": 77,\n        \"grade\": \"STRONG BUY \\ud83d\\udfe2\",\n        \"grade_short\": \"STRONG BUY\",\n        \"components\": {\n          \"signal_quality\": 21.9,\n          \"options_quality\": 30.0,\n          \"risk_deductions\": 0.0,\n          \"context_bonus\": 25.0\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=6/Surprise=5), guter ROI (128%), positive Sektor-Relative-St\\u00e4rke\",\n        \"best_argument_for\": \"Der Markt reagierte trotz drei simultaner positiver Katalysatoren mit -1.8%, was auf initiale \\u00dcberreaktion auf Makro-Energiesorgen hindeutet. Der Cluster aus 7 Insider-K\\u00e4ufen in 14 Tagen ist ein seltenes Signal mit hoher Glaubw\\u00fcrdigkeit, da Insider selten koordiniert ohne Information kaufen. Das neue Subsea-Facility st\\u00e4rkt BKRs Wettbewerbsposition im North Sea strukturell \\u00fcber mehrere Jahre.\",\n        \"best_argument_against\": \"Der Energiesektor steht unter erheblichem Gegenwind durch volatile \\u00d6lpreise und geopolitische Unsicherheiten im Nahen Osten. BKR selbst berichtet von Disruptions in Middle East Operations im Q1 2026, was darauf hindeutet, dass ein strukturell wichtiger Markt bereits unter Druck steht. Ein weiterer R\\u00fcckgang der Energiepreise k\\u00f6nnte Capex-Budgets gro\\u00dfer \\u00d6lproduzenten belasten und BKRs Auftragseingang in H2 2026 empfindlich treffen.\"\n      },\n      \"trade_rank\": 1,\n      \"exit_rules\": {\n        \"entry_cost\": 1.65,\n        \"take_profit_pct\": 50,\n        \"take_profit_price\": 2.47,\n        \"full_profit_pct\": 100,\n        \"full_profit_price\": 3.3,\n        \"stop_loss_pct\": -40,\n        \"stop_loss_price\": 0.99,\n        \"time_exit_dte_remaining\": 7,\n        \"time_exit_date\": \"2026-05-08\",\n        \"time_exit_min_profit_pct\": 20\n      }\n    },\n    {\n      \"ticker\": \"APD\",\n      \"strategy\": \"LONG_CALL\",\n      \"iv_rank\": 6.6,\n      \"iv_gate_applied\": false,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-09-18\",\n        \"strike\": 320.0,\n        \"bid\": 14.9,\n        \"ask\": 16.5,\n        \"open_interest\": 193,\n        \"implied_vol\": 0.3064644549560547,\n        \"spread_ratio\": 0.097,\n        \"dte\": 141\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 0.6336,\n        \"roi_net\": 0.4121,\n        \"spread_pct\": 0.097,\n        \"vega_loss\": 0.0276,\n        \"delta\": 0.43,\n        \"iv_drop_assumed\": 0.02,\n        \"cost_basis\": 16.5,\n        \"is_spread\": false,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.12,\n        \"dte\": 141\n      },\n      \"dte_tier\": \"Mid-Term\",\n      \"annualized_roi\": 1.4431,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Mid-Term\",\n          \"dte\": 141,\n          \"option\": {\n            \"expiry\": \"2026-09-18\",\n            \"strike\": 320.0,\n            \"bid\": 14.9,\n            \"ask\": 16.5,\n            \"open_interest\": 193,\n            \"implied_vol\": 0.3064644549560547,\n            \"spread_ratio\": 0.097,\n            \"dte\": 141\n          },\n          \"roi\": {\n            \"roi_gross\": 0.6336,\n            \"roi_net\": 0.4121,\n            \"spread_pct\": 0.097,\n            \"vega_loss\": 0.0276,\n            \"delta\": 0.43,\n            \"iv_drop_assumed\": 0.02,\n            \"cost_basis\": 16.5,\n            \"is_spread\": false,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.12,\n            \"dte\": 141\n          },\n          \"annualized_roi\": 1.4431,\n          \"strategy\": \"LONG_CALL\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 3.923,\n        \"z_score\": 0.415,\n        \"sigma_30d\": 0.0127,\n        \"price_move_48h\": 0.0053,\n        \"eps_drift\": 0.0137,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.588\n      },\n      \"simulation\": {\n        \"current_price\": 303.87,\n        \"target_price\": 328.18,\n        \"hit_rate\": 0.6838,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0184,\n        \"alpha\": 0.00244\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Die EPS-Divergenz zwischen yfinance (14.13) und SEC EDGAR (-1.48) ist ein gravierendes Datenproblem. Ein negatives SEC-EPS w\\u00fcrde auf erhebliche Sonderbelastungen oder Restrukturierungskosten hindeuten und macht fundamentale Bewertungsaussagen unzuverl\\u00e4ssig. Bei KGV-Analysen k\\u00f6nnte APD bei echter Verlustlage massiv \\u00fcberbewertet sein.\",\n          \"argument_2\": \"Der Samsung-Fab-Vertrag in S\\u00fcdkorea ist bereits via offizielle Pressemitteilung und News-Coverage publiziert worden \\u2014 der positive Katalysator ist damit \\u00f6ffentlich bekannt und d\\u00fcrfte bereits eingepreist sein. Industrial-Gas-Vertr\\u00e4ge sind zudem langfristig strukturell, generieren aber kurzfristig kaum Kurs-Momentum, da der Revenue-Impact erst \\u00fcber Jahre sichtbar wird. Mittelfristige Optionsstrategien (2-6 Monate) profitieren nur bedingt.\",\n          \"argument_3\": \"APD operiert im Basic Materials / Industrial Gases Sektor, der stark von Energiepreisen, Rohstoffkosten und globaler Industrienachfrage abh\\u00e4ngt. Bei einer m\\u00f6glichen Verlangsamung der Halbleiter-Kapitalausgaben (CAPEX-Zyklen bei Samsung k\\u00f6nnen verschoben werden) sowie geopolitischen Risiken auf der koreanischen Halbinsel k\\u00f6nnte der Vertragswert und die Liefersicherheit in Frage gestellt werden. Die +0.5% 48h-Bewegung suggeriert bereits eine ged\\u00e4mpfte Marktreaktion.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein MC durchgef\\u00fchrt \\u2014 0% Hit-Rate ist nicht interpretierbar als Signal, sondern als Datenl\\u00fccke. Ohne Monte-Carlo-Basis ist eine statistische Absicherung der Kurszielprognose nicht m\\u00f6glich. Das erh\\u00f6ht die Unsicherheit, disqualifiziert den Trade aber nicht automatisch.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 5,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt reagiert ged\\u00e4mpft, weil Industrial-Gas-Vertr\\u00e4ge als langweilig und langsam geltend eingestuft werden, obwohl sie stabile Cashflows sichern. Der 8-fache Insider-Cluster-Kauf innerhalb von 14 Tagen ist ein starkes, aber von Retail oft ignoriertes strukturelles Signal. Das expansive Makro-Umfeld mit steiler Zinskurve beg\\u00fcnstigt Capital-Intensive-Industrials zus\\u00e4tzlich.\",\n        \"catalyst\": \"Offizieller Vertragsabschluss und Revenue-Guidance-Anhebung im n\\u00e4chsten Earnings-Call (Q2 2026) aufgrund des Samsung-Fab-Deals und weiterer Semiconductor-Gas-Vertr\\u00e4ge\",\n        \"bear_case\": \"EPS-Diskrepanz zwischen Datenbankquellen deutet auf m\\u00f6gliche Bilanzrisiken hin; falls das SEC-EPS von -1.48 die reale operative Lage widerspiegelt, ist APD bei $303.87 fundamental erheblich \\u00fcberbewertet und jede Kursrally w\\u00e4re auf d\\u00fcnnem Fundament gebaut.\",\n        \"macro_assessment\": \"Das expansive Makro-Umfeld mit steiler Zinskurve (+0.52%) und moderatem Fed Funds Rate (3.64%) beg\\u00fcnstigt kapitalintensive Industrials wie APD. Long-Positionen in Basic Materials sind in diesem Regime historisch solide unterst\\u00fctzt, da Industrienachfrage und Kreditverf\\u00fcgbarkeit positiv korrelieren.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.52,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLB\",\n        \"rel_strength\": 0.0706\n      },\n      \"final_score\": 0.1062,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 0.2923,\n        \"annualized_roi\": 1.4431,\n        \"dte\": 141\n      },\n      \"trade_score\": {\n        \"total\": 70,\n        \"grade\": \"BUY \\ud83d\\udfe1\",\n        \"grade_short\": \"BUY\",\n        \"components\": {\n          \"signal_quality\": 21.9,\n          \"options_quality\": 23.5,\n          \"risk_deductions\": 0.0,\n          \"context_bonus\": 25.0\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=6/Surprise=5), guter ROI (41%), g\\u00fcnstige IV (7%)\",\n        \"best_argument_for\": \"Der Markt reagiert ged\\u00e4mpft, weil Industrial-Gas-Vertr\\u00e4ge als langweilig und langsam geltend eingestuft werden, obwohl sie stabile Cashflows sichern. Der 8-fache Insider-Cluster-Kauf innerhalb von 14 Tagen ist ein starkes, aber von Retail oft ignoriertes strukturelles Signal. Das expansive Makro-Umfeld mit steiler Zinskurve beg\\u00fcnstigt Capital-Intensive-Industrials zus\\u00e4tzlich.\",\n        \"best_argument_against\": \"Die EPS-Divergenz zwischen yfinance (14.13) und SEC EDGAR (-1.48) ist ein gravierendes Datenproblem. Ein negatives SEC-EPS w\\u00fcrde auf erhebliche Sonderbelastungen oder Restrukturierungskosten hindeuten und macht fundamentale Bewertungsaussagen unzuverl\\u00e4ssig. Bei KGV-Analysen k\\u00f6nnte APD bei echter Verlustlage massiv \\u00fcberbewertet sein.\"\n      },\n      \"trade_rank\": 2,\n      \"exit_rules\": {\n        \"entry_cost\": 16.5,\n        \"take_profit_pct\": 50,\n        \"take_profit_price\": 24.75,\n        \"full_profit_pct\": 100,\n        \"full_profit_price\": 33.0,\n        \"stop_loss_pct\": -40,\n        \"stop_loss_price\": 9.9,\n        \"time_exit_dte_remaining\": 70,\n        \"time_exit_date\": \"2026-07-10\",\n        \"time_exit_min_profit_pct\": 20\n      }\n    },\n    {\n      \"ticker\": \"BA\",\n      \"strategy\": \"LONG_CALL\",\n      \"iv_rank\": 63.5,\n      \"iv_gate_applied\": false,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-05-15\",\n        \"strike\": 220.0,\n        \"bid\": 8.05,\n        \"ask\": 8.65,\n        \"open_interest\": 5375,\n        \"implied_vol\": 0.383795224609375,\n        \"spread_ratio\": 0.0694,\n        \"dte\": 15\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 1.1767,\n        \"roi_net\": 0.9437,\n        \"spread_pct\": 0.0694,\n        \"vega_loss\": 0.0942,\n        \"delta\": 0.5721,\n        \"iv_drop_assumed\": 0.12,\n        \"cost_basis\": 8.65,\n        \"is_spread\": false,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.15,\n        \"dte\": 15\n      },\n      \"dte_tier\": \"Short-Term\",\n      \"annualized_roi\": 10551430.3301,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Short-Term\",\n          \"dte\": 15,\n          \"option\": {\n            \"expiry\": \"2026-05-15\",\n            \"strike\": 220.0,\n            \"bid\": 8.05,\n            \"ask\": 8.65,\n            \"open_interest\": 5375,\n            \"implied_vol\": 0.383795224609375,\n            \"spread_ratio\": 0.0694,\n            \"dte\": 15\n          },\n          \"roi\": {\n            \"roi_gross\": 1.1767,\n            \"roi_net\": 0.9437,\n            \"spread_pct\": 0.0694,\n            \"vega_loss\": 0.0942,\n            \"delta\": 0.5721,\n            \"iv_drop_assumed\": 0.12,\n            \"cost_basis\": 8.65,\n            \"is_spread\": false,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.15,\n            \"dte\": 15\n          },\n          \"annualized_roi\": 10551430.3301,\n          \"strategy\": \"LONG_CALL\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"mismatch\": 3.474,\n        \"z_score\": 0.305,\n        \"sigma_30d\": 0.0242,\n        \"price_move_48h\": 0.0074,\n        \"eps_drift\": 0.0079,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.505\n      },\n      \"simulation\": {\n        \"current_price\": 222.46,\n        \"target_price\": 240.25,\n        \"hit_rate\": 0.6068,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0216,\n        \"alpha\": 0.00099\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Boeing k\\u00e4mpft weiterhin mit tiefgreifenden strukturellen Problemen: Produktionsm\\u00e4ngel, FAA-\\u00dcberwachung und anhaltende 737 Max-Zertifizierungsauflagen belasten den operativen Betrieb. Eine Bestellung von f\\u00fcnf Flugzeugen durch Scat Airlines \\u2013 eine kasachische Regionalfluggesellschaft \\u2013 ist angesichts des Auftragsbestands von \\u00fcber 5.000 Einheiten operativ bedeutungslos und kaum geeignet, die fundamentale Repricing-These zu tragen.\",\n          \"argument_2\": \"Die EPS-Diskrepanz zwischen yfinance (4.38) und SEC EDGAR (2.52) deutet auf erhebliche Datenqualit\\u00e4tsprobleme hin. Der Headline-EPS spiegelt m\\u00f6glicherweise adjustierte Werte wider, w\\u00e4hrend der SEC-Wert die tats\\u00e4chliche GAAP-Ertragslage zeigt \\u2013 ein klassisches Zeichen f\\u00fcr earnings quality risk bei Unternehmen in operativer Restrukturierung. Investoren, die auf falsche EPS-Zahlen vertrauen, untersch\\u00e4tzen die reale Bewertungsbelastung.\",\n          \"argument_3\": \"Der Artikel-Hinweis 'Investors Shouldn't Be Too Comfortable With Boeing's Earnings' signalisiert, dass institutionelle Analysten die Qualit\\u00e4t der gemeldeten Gewinne anzweifeln. Kombiniert mit einem -0.7% Preisr\\u00fcckgang in 48h trotz positiver Nachrichtenlage (Bestellung, Insider-K\\u00e4ufe) zeigt der Markt strukturelle Absorption auf h\\u00f6herem Niveau \\u2013 ein klassisches bearishes Divergenzsignal.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein MC durchgef\\u00fchrt. Eine 0%-Hit-Rate bei fehlenden Pfaden ist nicht interpretierbar \\u2013 es fehlt schlicht die Simulation. Dies reduziert die statistische Validierbarkeit erheblich und erh\\u00f6ht die Unsicherheit bei der Richtungsentscheidung.\",\n          \"concern_level\": \"high\"\n        },\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 7,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt wertet die Insider-Cluster-K\\u00e4ufe und die Scat-Airlines-Bestellung als zu klein ab, untersch\\u00e4tzt aber das Signaling-Potenzial von Insider-Aktivit\\u00e4t in einer Phase regulatorischer Normalisierung. Die EPS-Divergenz erzeugt kurzfristige Unsicherheit, die eine strukturelle Neubewertung verz\\u00f6gert. Das expansive Makro-Umfeld beg\\u00fcnstigt industrielle Long-Positionen mittelfristig.\",\n        \"catalyst\": \"Insider-Cluster-K\\u00e4ufe (5 Insider in 14 Tagen) als Vorl\\u00e4ufer einer Q2-2026-Guidance-Anhebung oder positiver FAA-Zertifizierungsfortschritte f\\u00fcr die 737 Max-Produktionshochlauf.\",\n        \"bear_case\": \"EPS-Qualit\\u00e4tsprobleme (GAAP vs. adjusted Divergenz) kombiniert mit anhaltender FAA-Aufsicht und minimaler operativer Relevanz der Scat-Bestellung k\\u00f6nnen jegliches bullishes Momentum schnell absorbieren.\",\n        \"macro_assessment\": \"Das expansive Makro-Umfeld (steile Kurve +0.52%, Fed Funds 3.64%) beg\\u00fcnstigt Industrietitel mit zyklischer Erholung. Boeing profitiert von steigenden Defense-Budgets (+2.9% global) und ziviler Luftfahrtnachfrage. Das Makro liefert R\\u00fcckenwind, allerdings reichen fundamentale Boeing-spezifische Risiken aus, um diesen Effekt teilweise zu neutralisieren.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.52,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLI\",\n        \"rel_strength\": 0.0337\n      },\n      \"final_score\": 0.1062,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 6.2913,\n        \"annualized_roi\": null,\n        \"dte\": 15\n      },\n      \"trade_score\": {\n        \"total\": 60,\n        \"grade\": \"BUY \\ud83d\\udfe1\",\n        \"grade_short\": \"BUY\",\n        \"components\": {\n          \"signal_quality\": 17.9,\n          \"options_quality\": 27.0,\n          \"risk_deductions\": -10.0,\n          \"context_bonus\": 25.0\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=5/Surprise=4), guter ROI (94%), positive Sektor-Relative-St\\u00e4rke | Risiken: hohes Bear-Risiko (7/10)\",\n        \"best_argument_for\": \"Der Markt wertet die Insider-Cluster-K\\u00e4ufe und die Scat-Airlines-Bestellung als zu klein ab, untersch\\u00e4tzt aber das Signaling-Potenzial von Insider-Aktivit\\u00e4t in einer Phase regulatorischer Normalisierung. Die EPS-Divergenz erzeugt kurzfristige Unsicherheit, die eine strukturelle Neubewertung verz\\u00f6gert. Das expansive Makro-Umfeld beg\\u00fcnstigt industrielle Long-Positionen mittelfristig.\",\n        \"best_argument_against\": \"Boeing k\\u00e4mpft weiterhin mit tiefgreifenden strukturellen Problemen: Produktionsm\\u00e4ngel, FAA-\\u00dcberwachung und anhaltende 737 Max-Zertifizierungsauflagen belasten den operativen Betrieb. Eine Bestellung von f\\u00fcnf Flugzeugen durch Scat Airlines \\u2013 eine kasachische Regionalfluggesellschaft \\u2013 ist angesichts des Auftragsbestands von \\u00fcber 5.000 Einheiten operativ bedeutungslos und kaum geeignet, die fundamentale Repricing-These zu tragen.\"\n      },\n      \"trade_rank\": 3,\n      \"exit_rules\": {\n        \"entry_cost\": 8.65,\n        \"take_profit_pct\": 50,\n        \"take_profit_price\": 12.98,\n        \"full_profit_pct\": 100,\n        \"full_profit_price\": 17.3,\n        \"stop_loss_pct\": -40,\n        \"stop_loss_price\": 5.19,\n        \"time_exit_dte_remaining\": 7,\n        \"time_exit_date\": \"2026-05-08\",\n        \"time_exit_min_profit_pct\": 20\n      }\n    }\n  ]\n}"
  },
  {
    "path": "outputs/daily_reports/2026-04-29.md",
    "content": "# Adaptive Asymmetry-Scanner – 2026-04-29\n\n**Generiert:** 2026-04-29 17:48 UTC\n**Trade-Vorschläge:** 3\n\n---\n## 1. BKR – LONG_CALL\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.1745`  \n**IV-Rank:** 46.3  \n**Trade-Score:** 77/100 — STRONG BUY 🟢  \n\n### Asymmetry-Analyse\n- **Impact:** 6/10\n- **Surprise:** 5/10\n- **Mismatch-Score:** 2.339\n- **Z-Score (48h):** 0.732\n- **48h-Move:** 0.0184\n- **EPS-Drift:** 0.0 (noise)\n\n**Asymmetry-Reasoning:**  \n> Der Markt reagierte trotz drei simultaner positiver Katalysatoren mit -1.8%, was auf initiale Überreaktion auf Makro-Energiesorgen hindeutet. Der Cluster aus 7 Insider-Käufen in 14 Tagen ist ein seltenes Signal mit hoher Glaubwürdigkeit, da Insider selten koordiniert ohne Information kaufen. Das neue Subsea-Facility stärkt BKRs Wettbewerbsposition im North Sea strukturell über mehrere Jahre.\n\n**Katalysator:** Jefferies PT-Erhöhung auf $80 kombiniert mit 7-Insider-Kaufcluster und Subsea-Facility-Inauguration als struktureller Wachstumstreiber für North Sea Backlog 2026-2027  \n**Time-to-Materialization:** 2-3 Monate  \n\n### Bear Case\n> Ölpreisrückgang unter $65/Barrel könnte Capex-Kürzungen bei europäischen und nahost-Kunden auslösen und den Q2/Q3 2026 Auftragseingang substanziell unter Konsenserwartungen drücken.  \n**Severity:** 5/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 75.0% (10,000 Pfade)\n- **Target-Preis:** $74.31\n- **Aktueller Preis:** $68.81\n- **σ:** 0.0211\n- **α (Signal-Drift):** 0.00370\n\n### Options-Vorschlag\n- **Expiry:** 2026-05-15 (15 DTE)\n- **Strike:** $70.00\n- **Bid/Ask:** $1.60 / $1.65\n- **Impl. Vol.:** 36.0%\n- **Open Interest:** 3,344\n- **Bid-Ask-Ratio:** 3.03%\n\n### 🚪 Exit-Regeln\n- **Entry-Kosten:** $1.65 pro Kontrakt\n- **Take-Profit:** bei $2.47 (+50%) → Hälfte schliessen\n- **Full-Profit:** bei $3.30 (+100%) → Rest schliessen\n- **Stop-Loss:** bei $0.99 (-40%) → Gesamte Position liquidieren\n- **Time-Exit:** ab 2026-05-08 (7 DTE Rest) — schliessen wenn Gewinn < +20%\n\n---\n## 2. APD – LONG_CALL\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.1062`  \n**IV-Rank:** 6.6  \n**Trade-Score:** 70/100 — BUY 🟡  \n\n### Asymmetry-Analyse\n- **Impact:** 6/10\n- **Surprise:** 5/10\n- **Mismatch-Score:** 3.923\n- **Z-Score (48h):** 0.415\n- **48h-Move:** 0.0053\n- **EPS-Drift:** 0.0137 (noise)\n\n**Asymmetry-Reasoning:**  \n> Der Markt reagiert gedämpft, weil Industrial-Gas-Verträge als langweilig und langsam geltend eingestuft werden, obwohl sie stabile Cashflows sichern. Der 8-fache Insider-Cluster-Kauf innerhalb von 14 Tagen ist ein starkes, aber von Retail oft ignoriertes strukturelles Signal. Das expansive Makro-Umfeld mit steiler Zinskurve begünstigt Capital-Intensive-Industrials zusätzlich.\n\n**Katalysator:** Offizieller Vertragsabschluss und Revenue-Guidance-Anhebung im nächsten Earnings-Call (Q2 2026) aufgrund des Samsung-Fab-Deals und weiterer Semiconductor-Gas-Verträge  \n**Time-to-Materialization:** 2-3 Monate  \n\n### Bear Case\n> EPS-Diskrepanz zwischen Datenbankquellen deutet auf mögliche Bilanzrisiken hin; falls das SEC-EPS von -1.48 die reale operative Lage widerspiegelt, ist APD bei $303.87 fundamental erheblich überbewertet und jede Kursrally wäre auf dünnem Fundament gebaut.  \n**Severity:** 5/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 68.4% (10,000 Pfade)\n- **Target-Preis:** $328.18\n- **Aktueller Preis:** $303.87\n- **σ:** 0.0184\n- **α (Signal-Drift):** 0.00244\n\n### Options-Vorschlag\n- **Expiry:** 2026-09-18 (141 DTE)\n- **Strike:** $320.00\n- **Bid/Ask:** $14.90 / $16.50\n- **Impl. Vol.:** 30.6%\n- **Open Interest:** 193\n- **Bid-Ask-Ratio:** 9.70%\n\n### 🚪 Exit-Regeln\n- **Entry-Kosten:** $16.50 pro Kontrakt\n- **Take-Profit:** bei $24.75 (+50%) → Hälfte schliessen\n- **Full-Profit:** bei $33.00 (+100%) → Rest schliessen\n- **Stop-Loss:** bei $9.90 (-40%) → Gesamte Position liquidieren\n- **Time-Exit:** ab 2026-07-10 (70 DTE Rest) — schliessen wenn Gewinn < +20%\n\n---\n## 3. BA – LONG_CALL\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.1062`  \n**IV-Rank:** 63.5  \n**Trade-Score:** 60/100 — BUY 🟡  \n\n### Asymmetry-Analyse\n- **Impact:** 5/10\n- **Surprise:** 4/10\n- **Mismatch-Score:** 3.474\n- **Z-Score (48h):** 0.305\n- **48h-Move:** 0.0074\n- **EPS-Drift:** 0.0079 (noise)\n\n**Asymmetry-Reasoning:**  \n> Der Markt wertet die Insider-Cluster-Käufe und die Scat-Airlines-Bestellung als zu klein ab, unterschätzt aber das Signaling-Potenzial von Insider-Aktivität in einer Phase regulatorischer Normalisierung. Die EPS-Divergenz erzeugt kurzfristige Unsicherheit, die eine strukturelle Neubewertung verzögert. Das expansive Makro-Umfeld begünstigt industrielle Long-Positionen mittelfristig.\n\n**Katalysator:** Insider-Cluster-Käufe (5 Insider in 14 Tagen) als Vorläufer einer Q2-2026-Guidance-Anhebung oder positiver FAA-Zertifizierungsfortschritte für die 737 Max-Produktionshochlauf.  \n**Time-to-Materialization:** 2-3 Monate  \n\n### Bear Case\n> EPS-Qualitätsprobleme (GAAP vs. adjusted Divergenz) kombiniert mit anhaltender FAA-Aufsicht und minimaler operativer Relevanz der Scat-Bestellung können jegliches bullishes Momentum schnell absorbieren.  \n**Severity:** 7/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 60.7% (10,000 Pfade)\n- **Target-Preis:** $240.25\n- **Aktueller Preis:** $222.46\n- **σ:** 0.0216\n- **α (Signal-Drift):** 0.00099\n\n### Options-Vorschlag\n- **Expiry:** 2026-05-15 (15 DTE)\n- **Strike:** $220.00\n- **Bid/Ask:** $8.05 / $8.65\n- **Impl. Vol.:** 38.4%\n- **Open Interest:** 5,375\n- **Bid-Ask-Ratio:** 6.94%\n\n### 🚪 Exit-Regeln\n- **Entry-Kosten:** $8.65 pro Kontrakt\n- **Take-Profit:** bei $12.98 (+50%) → Hälfte schliessen\n- **Full-Profit:** bei $17.30 (+100%) → Rest schliessen\n- **Stop-Loss:** bei $5.19 (-40%) → Gesamte Position liquidieren\n- **Time-Exit:** ab 2026-05-08 (7 DTE Rest) — schliessen wenn Gewinn < +20%\n\n---\n## Modell-Gewichte (aktuell)\n- Impact: `0.35`\n- Mismatch: `0.45`\n- EPS-Drift: `0.20`\n\n_Automatisch generiert durch Adaptive Asymmetry-Scanner v8.2_"
  },
  {
    "path": "outputs/daily_reports/2026-04-30.json",
    "content": "{\n  \"date\": \"2026-04-30\",\n  \"proposals\": [\n    {\n      \"ticker\": \"AMZN\",\n      \"strategy\": \"LONG_CALL\",\n      \"iv_rank\": 33.2,\n      \"iv_gate_applied\": false,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-05-15\",\n        \"strike\": 260.0,\n        \"bid\": 6.8,\n        \"ask\": 6.95,\n        \"open_interest\": 36585,\n        \"implied_vol\": 0.35883209533691407,\n        \"spread_ratio\": 0.0216,\n        \"dte\": 14\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 1.4318,\n        \"roi_net\": 1.3365,\n        \"spread_pct\": 0.0216,\n        \"vega_loss\": 0.0521,\n        \"delta\": 0.4812,\n        \"iv_drop_assumed\": 0.05,\n        \"cost_basis\": 6.95,\n        \"is_spread\": false,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.15,\n        \"dte\": 14\n      },\n      \"dte_tier\": \"Short-Term\",\n      \"annualized_roi\": 4064775336.5925,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Short-Term\",\n          \"dte\": 14,\n          \"option\": {\n            \"expiry\": \"2026-05-15\",\n            \"strike\": 260.0,\n            \"bid\": 6.8,\n            \"ask\": 6.95,\n            \"open_interest\": 36585,\n            \"implied_vol\": 0.35883209533691407,\n            \"spread_ratio\": 0.0216,\n            \"dte\": 14\n          },\n          \"roi\": {\n            \"roi_gross\": 1.4318,\n            \"roi_net\": 1.3365,\n            \"spread_pct\": 0.0216,\n            \"vega_loss\": 0.0521,\n            \"delta\": 0.4812,\n            \"iv_drop_assumed\": 0.05,\n            \"cost_basis\": 6.95,\n            \"is_spread\": false,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.15,\n            \"dte\": 14\n          },\n          \"annualized_roi\": 4064775336.5925,\n          \"strategy\": \"LONG_CALL\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 4.184,\n        \"z_score\": 0.363,\n        \"sigma_30d\": 0.0202,\n        \"price_move_48h\": 0.0074,\n        \"eps_drift\": 0.1423,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"massive\",\n        \"quick_mc_hit_rate\": 0.5736\n      },\n      \"simulation\": {\n        \"current_price\": 258.5,\n        \"target_price\": 279.18,\n        \"hit_rate\": 0.664,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0208,\n        \"alpha\": 0.00196\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Der AWS-Backlog von $364B ist zwar beeindruckend, aber Backlog ist keine Revenue-Garantie: Kunden k\\u00f6nnen Vertr\\u00e4ge renegotiieren, Projekte verz\\u00f6gern oder k\\u00fcrzen, insbesondere wenn Makro-Unsicherheit zunimmt. Die Umwandlungsrate von Backlog zu tats\\u00e4chlichem Revenue ist historisch variabel, und M\\u00e4rkte k\\u00f6nnten den Backlog bereits vollst\\u00e4ndig eingepreist haben, da die Zahl seit Wochen in der Presse kursiert.\",\n          \"argument_2\": \"Die EPS-Abweichung zwischen yfinance ($9.45) und SEC EDGAR ($7.17) von 14.2% ist ein erhebliches Datenkvalit\\u00e4tsproblem. Wenn der 'Beat' auf Basis der h\\u00f6heren, m\\u00f6glicherweise fehlerhaften EPS-Zahl kommuniziert wird, k\\u00f6nnte eine Korrektur der Erwartungen folgen. Zudem ist der Kurs bereits +0.7% in 48h gestiegen, was darauf hindeutet, dass die gute Nachricht teils schon eingepreist ist.\",\n          \"argument_3\": \"AMZN handelt in einem Consumer Cyclical-Sektor, der bei anhaltendem Inflationsdruck (Fed-Inflationsma\\u00df auf 2-Jahres-Hoch laut News) besonders empfindlich ist. Bei einer Fed Funds Rate von 3.64% und flacher Zinskurve sind die Kapitalkosten f\\u00fcr Amazons massive CapEx-Pl\\u00e4ne im AI/Cloud-Bereich weiterhin erh\\u00f6ht, was Margin-Expansion-Thesen unter Druck setzt.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Hit-Rate von 0% ist nicht aussagekr\\u00e4ftig, da kein Monte-Carlo-Lauf durchgef\\u00fchrt wurde. Die Abwesenheit von MC-Daten erh\\u00f6ht die Unsicherheit der quantitativen Basis erheblich und sollte als Warnsignal f\\u00fcr die Modellrobustheit gewertet werden.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 5,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt preist den $364B Backlog m\\u00f6glicherweise linear ein, untersch\\u00e4tzt aber den konvexen Margin-Effekt bei AI-getriebener Workload-Skalierung in AWS. Cluster-Insider-K\\u00e4ufe von 5 Personen innerhalb 14 Tagen signalisieren fundiertes internes Vertrauen, das \\u00fcber kurzfristige Kursreaktionen hinausgeht. Der strukturelle Shift hin zu langfristigen Cloud-Commitments reduziert Revenue-Volatilit\\u00e4t und verdient einen h\\u00f6heren Multiplikator.\",\n        \"catalyst\": \"AWS Q2-2026 Revenue Report mit Margin-Expansion durch AI-Workload-Mix und m\\u00f6gliche Erh\\u00f6hung des Jahres-CapEx-Guidance als Confidence-Signal\",\n        \"bear_case\": \"Inflationsdruck k\\u00f6nnte Fed zu erneuten Zinserh\\u00f6hungen zwingen, was Amazons CapEx-intensive AI-Strategie verteuert und Consumer-Spending-Schw\\u00e4che den Retail-Segment-Beitrag d\\u00e4mpft.\",\n        \"macro_assessment\": \"Neutral-Makro mit flacher Kurve (0.50%) ist kein Gegenwind, aber auch kein R\\u00fcckenwind. Fed Funds bei 3.64% belastet CapEx-schwere Gesch\\u00e4ftsmodelle moderat. AI-Nachfrage als struktureller Treiber \\u00fcberwiegt leicht das Zinsrisiko, sodass eine vorsichtig bullishe Haltung vertretbar bleibt.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.5,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLY\",\n        \"rel_strength\": 0.1794\n      },\n      \"final_score\": 0.0911,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 9.5464,\n        \"annualized_roi\": null,\n        \"dte\": 14\n      },\n      \"trade_score\": {\n        \"total\": 72,\n        \"grade\": \"BUY \\ud83d\\udfe1\",\n        \"grade_short\": \"BUY\",\n        \"components\": {\n          \"signal_quality\": 21.9,\n          \"options_quality\": 30.0,\n          \"risk_deductions\": 0.0,\n          \"context_bonus\": 20.0\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=6/Surprise=5), guter ROI (134%), g\\u00fcnstige IV (33%)\",\n        \"best_argument_for\": \"Der Markt preist den $364B Backlog m\\u00f6glicherweise linear ein, untersch\\u00e4tzt aber den konvexen Margin-Effekt bei AI-getriebener Workload-Skalierung in AWS. Cluster-Insider-K\\u00e4ufe von 5 Personen innerhalb 14 Tagen signalisieren fundiertes internes Vertrauen, das \\u00fcber kurzfristige Kursreaktionen hinausgeht. Der strukturelle Shift hin zu langfristigen Cloud-Commitments reduziert Revenue-Volatilit\\u00e4t und verdient einen h\\u00f6heren Multiplikator.\",\n        \"best_argument_against\": \"Der AWS-Backlog von $364B ist zwar beeindruckend, aber Backlog ist keine Revenue-Garantie: Kunden k\\u00f6nnen Vertr\\u00e4ge renegotiieren, Projekte verz\\u00f6gern oder k\\u00fcrzen, insbesondere wenn Makro-Unsicherheit zunimmt. Die Umwandlungsrate von Backlog zu tats\\u00e4chlichem Revenue ist historisch variabel, und M\\u00e4rkte k\\u00f6nnten den Backlog bereits vollst\\u00e4ndig eingepreist haben, da die Zahl seit Wochen in der Presse kursiert.\"\n      },\n      \"trade_rank\": 1,\n      \"exit_rules\": {\n        \"entry_cost\": 6.95,\n        \"take_profit_pct\": 50,\n        \"take_profit_price\": 10.43,\n        \"full_profit_pct\": 100,\n        \"full_profit_price\": 13.9,\n        \"stop_loss_pct\": -40,\n        \"stop_loss_price\": 4.17,\n        \"time_exit_dte_remaining\": 7,\n        \"time_exit_date\": \"2026-05-08\",\n        \"time_exit_min_profit_pct\": 20\n      }\n    },\n    {\n      \"ticker\": \"APH\",\n      \"strategy\": \"LONG_CALL\",\n      \"iv_rank\": 23.8,\n      \"iv_gate_applied\": false,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-05-15\",\n        \"strike\": 145.0,\n        \"bid\": 5.5,\n        \"ask\": 6.1,\n        \"open_interest\": 1736,\n        \"implied_vol\": 0.45532771240234376,\n        \"spread_ratio\": 0.0984,\n        \"dte\": 14\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 1.2892,\n        \"roi_net\": 1.0502,\n        \"spread_pct\": 0.0984,\n        \"vega_loss\": 0.0423,\n        \"delta\": 0.535,\n        \"iv_drop_assumed\": 0.05,\n        \"cost_basis\": 6.1,\n        \"is_spread\": false,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.15,\n        \"dte\": 14\n      },\n      \"dte_tier\": \"Short-Term\",\n      \"annualized_roi\": 134577704.0352,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Short-Term\",\n          \"dte\": 14,\n          \"option\": {\n            \"expiry\": \"2026-05-15\",\n            \"strike\": 145.0,\n            \"bid\": 5.5,\n            \"ask\": 6.1,\n            \"open_interest\": 1736,\n            \"implied_vol\": 0.45532771240234376,\n            \"spread_ratio\": 0.0984,\n            \"dte\": 14\n          },\n          \"roi\": {\n            \"roi_gross\": 1.2892,\n            \"roi_net\": 1.0502,\n            \"spread_pct\": 0.0984,\n            \"vega_loss\": 0.0423,\n            \"delta\": 0.535,\n            \"iv_drop_assumed\": 0.05,\n            \"cost_basis\": 6.1,\n            \"is_spread\": false,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.15,\n            \"dte\": 14\n          },\n          \"annualized_roi\": 134577704.0352,\n          \"strategy\": \"LONG_CALL\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 4,\n        \"mismatch\": 5.664,\n        \"z_score\": 0.067,\n        \"sigma_30d\": 0.026,\n        \"price_move_48h\": 0.0017,\n        \"eps_drift\": 0.0458,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.6088\n      },\n      \"simulation\": {\n        \"current_price\": 145.56,\n        \"target_price\": 160.26,\n        \"hit_rate\": 0.6182,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0301,\n        \"alpha\": 0.00137\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"APH hat nach starken Q1-Ergebnissen und positivem Analyst-Coverage bereits eine signifikante Neubewertung erfahren. Der AI-Infrastruktur-Narrativ ist im Halbleiter- und Connectivity-Sektor mittlerweile so weit verbreitet, dass jede positive Einsch\\u00e4tzung als bereits eingepreist gelten muss. Der Markt hat AI-Exposure-Plays seit 2024 aggressiv bewertet, und bei einem KGV, das deutlich \\u00fcber historischen Normen f\\u00fcr Industriekonglomerate liegt, ist das Aufw\\u00e4rtspotenzial begrenzt.\",\n          \"argument_2\": \"Die EPS-Abweichung zwischen yfinance (5.19) und SEC EDGAR (3.33) betr\\u00e4gt faktisch \\u00fcber 55% \\u2014 die angegebene 4.6% ist rechnerisch falsch. Diese massive Diskrepanz in den Gewinnzahlen untergr\\u00e4bt die Datenqualit\\u00e4t erheblich. Wenn das EDGAR-EPS korrekt ist, liegt das tats\\u00e4chliche KGV deutlich h\\u00f6her als vom Markt angenommen, was die Bewertung fundamental in Frage stellt.\",\n          \"argument_3\": \"Cluster-Insider-K\\u00e4ufe sind ein ambivalentes Signal: Sie k\\u00f6nnen echte \\u00dcberzeugung widerspiegeln, aber auch koordiniertes Signal-Sending sein. Bei einem Kurs von $145.56 und einem bereits etablierten Post-Earnings-Anstieg besteht die Gefahr, dass kurzfristige Optionspositionen von IV-Crush getroffen werden \\u2014 die implizite Volatilit\\u00e4t d\\u00fcrfte nach dem Earnings Call signifikant gefallen sein, was Long-Optionen strukturell benachteiligt.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein MC durchgef\\u00fchrt \\u2014 0% Hit-Rate bedeutet keine Modell-Evidenz, nicht 0% Erfolgswahrscheinlichkeit. Die Abwesenheit des MC-Modells ist neutral, jedoch kann keine statistische Validierung des Targets erfolgen. Concern liegt darin, dass ohne quantitative Pfad-Analyse die Risiko-Reward-Sch\\u00e4tzung rein qualitativ bleibt.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt bewertet APH prim\\u00e4r als diversifizierten Connector-Hersteller, untersch\\u00e4tzt aber die strukturelle Margenausweitung durch AI-Datacenter-spezifische Produkte mit h\\u00f6herem ASP. Insider-Cluster-K\\u00e4ufe nach Earnings deuten auf Management\\u00fcberzeugung hin, die \\u00fcber das kommunizierte Guidance-Niveau hinausgeht. Die EPS-Diskrepanz verunsichert kurzfristige Algo-Trader, schafft aber Einstiegsgelegenheit f\\u00fcr fundamentale Investoren.\",\n        \"catalyst\": \"Analyst-Upgrades mit explizitem AI-Infrastructure-Target-Erh\\u00f6hung und n\\u00e4chste Quartals-Guidance Q2 2026\",\n        \"bear_case\": \"Massi EPS-Datendivergenz (EDGAR vs. yfinance) signalisiert m\\u00f6gliche Accounting-Komplexit\\u00e4t; bei Kl\\u00e4rung zugunsten des niedrigeren EDGAR-Werts droht Bewertungskorrektur von 15-20%.\",\n        \"macro_assessment\": \"Flache Zinskurve bei 0.50% und Fed Funds Rate von 3.64% repr\\u00e4sentiert ein neutrales Makroumfeld ohne klaren R\\u00fcckenwind. F\\u00fcr AI-Infrastruktur-Plays ist dieses Umfeld akzeptabel, da Capex-Ausgaben von Hyperscalern zinsunempfindlicher sind als konsumgetriebene Sektoren. Kein signifikanter makro\\u00f6konomischer Gegenwind, aber auch kein expansiver Boost.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.5,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLK\",\n        \"rel_strength\": -0.0393\n      },\n      \"final_score\": 0.1009,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 7.5014,\n        \"annualized_roi\": null,\n        \"dte\": 14\n      },\n      \"trade_score\": {\n        \"total\": 57,\n        \"grade\": \"WATCH \\ud83d\\udfe0\",\n        \"grade_short\": \"WATCH\",\n        \"components\": {\n          \"signal_quality\": 19.6,\n          \"options_quality\": 27.0,\n          \"risk_deductions\": 0.0,\n          \"context_bonus\": 10.0\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=6/Surprise=4), guter ROI (105%), g\\u00fcnstige IV (24%) | Risiken: Sektor underperformt Markt\",\n        \"best_argument_for\": \"Der Markt bewertet APH prim\\u00e4r als diversifizierten Connector-Hersteller, untersch\\u00e4tzt aber die strukturelle Margenausweitung durch AI-Datacenter-spezifische Produkte mit h\\u00f6herem ASP. Insider-Cluster-K\\u00e4ufe nach Earnings deuten auf Management\\u00fcberzeugung hin, die \\u00fcber das kommunizierte Guidance-Niveau hinausgeht. Die EPS-Diskrepanz verunsichert kurzfristige Algo-Trader, schafft aber Einstiegsgelegenheit f\\u00fcr fundamentale Investoren.\",\n        \"best_argument_against\": \"APH hat nach starken Q1-Ergebnissen und positivem Analyst-Coverage bereits eine signifikante Neubewertung erfahren. Der AI-Infrastruktur-Narrativ ist im Halbleiter- und Connectivity-Sektor mittlerweile so weit verbreitet, dass jede positive Einsch\\u00e4tzung als bereits eingepreist gelten muss. Der Markt hat AI-Exposure-Plays seit 2024 aggressiv bewertet, und bei einem KGV, das deutlich \\u00fcber historischen Normen f\\u00fcr Industriekonglomerate liegt, ist das Aufw\\u00e4rtspotenzial begrenzt.\"\n      },\n      \"trade_rank\": 2,\n      \"exit_rules\": {\n        \"entry_cost\": 6.1,\n        \"take_profit_pct\": 50,\n        \"take_profit_price\": 9.15,\n        \"full_profit_pct\": 100,\n        \"full_profit_price\": 12.2,\n        \"stop_loss_pct\": -40,\n        \"stop_loss_price\": 3.66,\n        \"time_exit_dte_remaining\": 7,\n        \"time_exit_date\": \"2026-05-08\",\n        \"time_exit_min_profit_pct\": 20\n      }\n    }\n  ]\n}"
  },
  {
    "path": "outputs/daily_reports/2026-04-30.md",
    "content": "# Adaptive Asymmetry-Scanner – 2026-04-30\n\n**Generiert:** 2026-04-30 15:32 UTC\n**Trade-Vorschläge:** 2\n\n---\n## 1. AMZN – LONG_CALL\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.0911`  \n**IV-Rank:** 33.2  \n**Trade-Score:** 72/100 — BUY 🟡  \n\n### Asymmetry-Analyse\n- **Impact:** 6/10\n- **Surprise:** 5/10\n- **Mismatch-Score:** 4.184\n- **Z-Score (48h):** 0.363\n- **48h-Move:** 0.0074\n- **EPS-Drift:** 0.1423 (massive)\n\n**Asymmetry-Reasoning:**  \n> Der Markt preist den $364B Backlog möglicherweise linear ein, unterschätzt aber den konvexen Margin-Effekt bei AI-getriebener Workload-Skalierung in AWS. Cluster-Insider-Käufe von 5 Personen innerhalb 14 Tagen signalisieren fundiertes internes Vertrauen, das über kurzfristige Kursreaktionen hinausgeht. Der strukturelle Shift hin zu langfristigen Cloud-Commitments reduziert Revenue-Volatilität und verdient einen höheren Multiplikator.\n\n**Katalysator:** AWS Q2-2026 Revenue Report mit Margin-Expansion durch AI-Workload-Mix und mögliche Erhöhung des Jahres-CapEx-Guidance als Confidence-Signal  \n**Time-to-Materialization:** 2-3 Monate  \n\n### Bear Case\n> Inflationsdruck könnte Fed zu erneuten Zinserhöhungen zwingen, was Amazons CapEx-intensive AI-Strategie verteuert und Consumer-Spending-Schwäche den Retail-Segment-Beitrag dämpft.  \n**Severity:** 5/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 66.4% (10,000 Pfade)\n- **Target-Preis:** $279.18\n- **Aktueller Preis:** $258.50\n- **σ:** 0.0208\n- **α (Signal-Drift):** 0.00196\n\n### Options-Vorschlag\n- **Expiry:** 2026-05-15 (14 DTE)\n- **Strike:** $260.00\n- **Bid/Ask:** $6.80 / $6.95\n- **Impl. Vol.:** 35.9%\n- **Open Interest:** 36,585\n- **Bid-Ask-Ratio:** 2.16%\n\n### 🚪 Exit-Regeln\n- **Entry-Kosten:** $6.95 pro Kontrakt\n- **Take-Profit:** bei $10.43 (+50%) → Hälfte schliessen\n- **Full-Profit:** bei $13.90 (+100%) → Rest schliessen\n- **Stop-Loss:** bei $4.17 (-40%) → Gesamte Position liquidieren\n- **Time-Exit:** ab 2026-05-08 (7 DTE Rest) — schliessen wenn Gewinn < +20%\n\n---\n## 2. APH – LONG_CALL\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.1009`  \n**IV-Rank:** 23.8  \n**Trade-Score:** 57/100 — WATCH 🟠  \n\n### Asymmetry-Analyse\n- **Impact:** 6/10\n- **Surprise:** 4/10\n- **Mismatch-Score:** 5.664\n- **Z-Score (48h):** 0.067\n- **48h-Move:** 0.0017\n- **EPS-Drift:** 0.0458 (noise)\n\n**Asymmetry-Reasoning:**  \n> Der Markt bewertet APH primär als diversifizierten Connector-Hersteller, unterschätzt aber die strukturelle Margenausweitung durch AI-Datacenter-spezifische Produkte mit höherem ASP. Insider-Cluster-Käufe nach Earnings deuten auf Managementüberzeugung hin, die über das kommunizierte Guidance-Niveau hinausgeht. Die EPS-Diskrepanz verunsichert kurzfristige Algo-Trader, schafft aber Einstiegsgelegenheit für fundamentale Investoren.\n\n**Katalysator:** Analyst-Upgrades mit explizitem AI-Infrastructure-Target-Erhöhung und nächste Quartals-Guidance Q2 2026  \n**Time-to-Materialization:** 2-3 Monate  \n\n### Bear Case\n> Massi EPS-Datendivergenz (EDGAR vs. yfinance) signalisiert mögliche Accounting-Komplexität; bei Klärung zugunsten des niedrigeren EDGAR-Werts droht Bewertungskorrektur von 15-20%.  \n**Severity:** 6/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 61.8% (10,000 Pfade)\n- **Target-Preis:** $160.26\n- **Aktueller Preis:** $145.56\n- **σ:** 0.0301\n- **α (Signal-Drift):** 0.00137\n\n### Options-Vorschlag\n- **Expiry:** 2026-05-15 (14 DTE)\n- **Strike:** $145.00\n- **Bid/Ask:** $5.50 / $6.10\n- **Impl. Vol.:** 45.5%\n- **Open Interest:** 1,736\n- **Bid-Ask-Ratio:** 9.84%\n\n### 🚪 Exit-Regeln\n- **Entry-Kosten:** $6.10 pro Kontrakt\n- **Take-Profit:** bei $9.15 (+50%) → Hälfte schliessen\n- **Full-Profit:** bei $12.20 (+100%) → Rest schliessen\n- **Stop-Loss:** bei $3.66 (-40%) → Gesamte Position liquidieren\n- **Time-Exit:** ab 2026-05-08 (7 DTE Rest) — schliessen wenn Gewinn < +20%\n\n---\n## Modell-Gewichte (aktuell)\n- Impact: `0.35`\n- Mismatch: `0.45`\n- EPS-Drift: `0.20`\n\n_Automatisch generiert durch Adaptive Asymmetry-Scanner v8.2_"
  },
  {
    "path": "outputs/daily_reports/2026-05-01.json",
    "content": "{\n  \"date\": \"2026-05-01\",\n  \"proposals\": []\n}"
  },
  {
    "path": "outputs/daily_reports/2026-05-01.md",
    "content": "# Adaptive Asymmetry-Scanner – 2026-05-01\n\n**Generiert:** 2026-05-01 14:38 UTC\n**Trade-Vorschläge:** 0\n\n_Kein Signal heute. Alle Gates haben blockiert._\n---\n## Modell-Gewichte (aktuell)\n- Impact: `0.35`\n- Mismatch: `0.45`\n- EPS-Drift: `0.20`\n\n_Automatisch generiert durch Adaptive Asymmetry-Scanner v8.2_"
  },
  {
    "path": "outputs/daily_reports/2026-05-04.json",
    "content": "{\n  \"date\": \"2026-05-04\",\n  \"proposals\": [\n    {\n      \"ticker\": \"AMAT\",\n      \"strategy\": \"LONG_CALL\",\n      \"iv_rank\": 50.1,\n      \"iv_gate_applied\": false,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-07-17\",\n        \"strike\": 380.0,\n        \"bid\": 47.7,\n        \"ask\": 49.85,\n        \"open_interest\": 803,\n        \"implied_vol\": 0.6332739309692383,\n        \"spread_ratio\": 0.0431,\n        \"dte\": 73\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 0.4823,\n        \"roi_net\": 0.3358,\n        \"spread_pct\": 0.0431,\n        \"vega_loss\": 0.0602,\n        \"delta\": 0.5931,\n        \"iv_drop_assumed\": 0.07,\n        \"cost_basis\": 49.85,\n        \"is_spread\": false,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.12,\n        \"dte\": 73\n      },\n      \"dte_tier\": \"Mid-Term\",\n      \"annualized_roi\": 3.2531,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Mid-Term\",\n          \"dte\": 73,\n          \"option\": {\n            \"expiry\": \"2026-07-17\",\n            \"strike\": 380.0,\n            \"bid\": 47.7,\n            \"ask\": 49.85,\n            \"open_interest\": 803,\n            \"implied_vol\": 0.6332739309692383,\n            \"spread_ratio\": 0.0431,\n            \"dte\": 73\n          },\n          \"roi\": {\n            \"roi_gross\": 0.4823,\n            \"roi_net\": 0.3358,\n            \"spread_pct\": 0.0431,\n            \"vega_loss\": 0.0602,\n            \"delta\": 0.5931,\n            \"iv_drop_assumed\": 0.07,\n            \"cost_basis\": 49.85,\n            \"is_spread\": false,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.12,\n            \"dte\": 73\n          },\n          \"annualized_roi\": 3.2531,\n          \"strategy\": \"LONG_CALL\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 3.244,\n        \"z_score\": 0.551,\n        \"sigma_30d\": 0.0308,\n        \"price_move_48h\": 0.017,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.75\n      },\n      \"simulation\": {\n        \"current_price\": 390.23,\n        \"target_price\": 430.77,\n        \"hit_rate\": 0.75,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.031,\n        \"alpha\": 0.00535\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"China-Risiko ist strukturell und akut: Chinesische Semiconductor-Equipment-Anbieter gewinnen trotz US-Sanktionen Marktanteile, was AMAT's wichtigen China-Umsatzanteil (historisch ~25-30% der Revenues) mittel- bis langfristig erodiert. Weitere Exportrestriktionen durch das US-Handelsministerium k\\u00f6nnten 2026 versch\\u00e4rft werden und direkten Umsatzdruck erzeugen, bevor die NEXX-Akquisition ihre Ertr\\u00e4ge entfaltet.\",\n          \"argument_2\": \"Die NEXX-Akquisition tr\\u00e4gt das klassische M&A-Integrationsrisiko: Advanced Packaging ist ein kompetitives Feld mit Lam Research und ASML als starke Konkurrenten. Integrationskosten, Margin-Dilution in den ersten 2-3 Quartalen und die Unsicherheit \\u00fcber Synergien k\\u00f6nnten den strukturellen Aufw\\u00e4rtstrend zeitlich verz\\u00f6gern und kurzfristig als Entt\\u00e4uschungskatalysator wirken.\",\n          \"argument_3\": \"Der EPS-Datenwiderspruch ist auff\\u00e4llig: yfinance meldet 14.07 vs. SEC EDGAR 9.77 \\u2014 eine Differenz von ca. 44%, die auf Bereinigungen (Non-GAAP vs. GAAP) hindeutet. Bewertet der Markt AMAT auf Basis zu optimistischer Non-GAAP-Zahlen, ist ein Re-Rating-Risiko nach unten m\\u00f6glich, sobald GAAP-Belastungen durch Akquisitions-Amortisierungen in Q3/Q4 2026 sichtbar werden.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"MC wurde nicht durchgef\\u00fchrt (0 Pfade). Eine 0%-Hit-Rate aus einem echten MC-Run w\\u00e4re bei AMAT mit ~30% implizierter Volatilit\\u00e4t unrealistisch. Da kein Lauf stattfand, ist diese Metrik schlicht nicht verf\\u00fcgbar und kann weder positiv noch negativ gewertet werden. Das Fehlen des MC erh\\u00f6ht die Daten-Unsicherheit.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt bewertet die NEXX-Akquisition prim\\u00e4r als kurzfristigen Kostenfaktor, untersch\\u00e4tzt jedoch den strategischen Wert im wachsenden Advanced-Packaging-Segment f\\u00fcr AI-Chips. Insider-Cluster-K\\u00e4ufe signalisieren Informationsasymmetrie zugunsten des Managements bez\\u00fcglich der Integrations-Timeline. Das expansive Makro-Umfeld mit steiler Kurve und 3.64% Fed Rate beg\\u00fcnstigt Capex-intensive Halbleiter-Equipment-Nachfrage strukturell.\",\n        \"catalyst\": \"Q3 2026 Earnings-Call mit ersten quantifizierten NEXX-Synergien und Advanced-Packaging-Orderbook-Update\",\n        \"bear_case\": \"Weitere US-Exportrestriktionen gegen China k\\u00f6nnten 2026 einen Umsatzschock von 15-20% im China-Segment erzeugen und die NEXX-Upside vollst\\u00e4ndig neutralisieren.\",\n        \"macro_assessment\": \"Das expansive Umfeld (Kurve +51bp, Fed Rate 3.64%) ist grunds\\u00e4tzlich positiv f\\u00fcr Capex-Zyklen und Halbleiter-Equipment. Die moderate Zinslast erlaubt Kunden wie TSMC und Samsung erh\\u00f6hte Investitionsbudgets. Das Makro liefert keinen Gegenwind, st\\u00fctzt aber keine aggressive Positionsgr\\u00f6\\u00dfe angesichts geopolitischer Bin\\u00e4rereignisse.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.51,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLK\",\n        \"rel_strength\": -0.0406\n      },\n      \"final_score\": 0.0915,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 0.46,\n        \"annualized_roi\": 3.2531,\n        \"dte\": 73\n      },\n      \"trade_score\": {\n        \"total\": 65,\n        \"grade\": \"BUY \\ud83d\\udfe1\",\n        \"grade_short\": \"BUY\",\n        \"components\": {\n          \"signal_quality\": 21.9,\n          \"options_quality\": 28.0,\n          \"risk_deductions\": 0.0,\n          \"context_bonus\": 15.0\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=6/Surprise=5), guter ROI (34%), expansives Makro-Umfeld | Risiken: Sektor underperformt Markt\",\n        \"best_argument_for\": \"Der Markt bewertet die NEXX-Akquisition prim\\u00e4r als kurzfristigen Kostenfaktor, untersch\\u00e4tzt jedoch den strategischen Wert im wachsenden Advanced-Packaging-Segment f\\u00fcr AI-Chips. Insider-Cluster-K\\u00e4ufe signalisieren Informationsasymmetrie zugunsten des Managements bez\\u00fcglich der Integrations-Timeline. Das expansive Makro-Umfeld mit steiler Kurve und 3.64% Fed Rate beg\\u00fcnstigt Capex-intensive Halbleiter-Equipment-Nachfrage strukturell.\",\n        \"best_argument_against\": \"China-Risiko ist strukturell und akut: Chinesische Semiconductor-Equipment-Anbieter gewinnen trotz US-Sanktionen Marktanteile, was AMAT's wichtigen China-Umsatzanteil (historisch ~25-30% der Revenues) mittel- bis langfristig erodiert. Weitere Exportrestriktionen durch das US-Handelsministerium k\\u00f6nnten 2026 versch\\u00e4rft werden und direkten Umsatzdruck erzeugen, bevor die NEXX-Akquisition ihre Ertr\\u00e4ge entfaltet.\"\n      },\n      \"trade_rank\": 1,\n      \"exit_rules\": {\n        \"entry_cost\": 49.85,\n        \"take_profit_pct\": 50,\n        \"take_profit_price\": 74.78,\n        \"full_profit_pct\": 100,\n        \"full_profit_price\": 99.7,\n        \"stop_loss_pct\": -40,\n        \"stop_loss_price\": 29.91,\n        \"time_exit_dte_remaining\": 36,\n        \"time_exit_date\": \"2026-06-11\",\n        \"time_exit_min_profit_pct\": 20\n      }\n    }\n  ]\n}"
  },
  {
    "path": "outputs/daily_reports/2026-05-04.md",
    "content": "# Adaptive Asymmetry-Scanner – 2026-05-04\n\n**Generiert:** 2026-05-04 15:32 UTC\n**Trade-Vorschläge:** 1\n\n---\n## 1. AMAT – LONG_CALL\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.0915`  \n**IV-Rank:** 50.1  \n**Trade-Score:** 65/100 — BUY 🟡  \n\n### Asymmetry-Analyse\n- **Impact:** 6/10\n- **Surprise:** 5/10\n- **Mismatch-Score:** 3.244\n- **Z-Score (48h):** 0.551\n- **48h-Move:** 0.017\n- **EPS-Drift:** 0.0 (noise)\n\n**Asymmetry-Reasoning:**  \n> Der Markt bewertet die NEXX-Akquisition primär als kurzfristigen Kostenfaktor, unterschätzt jedoch den strategischen Wert im wachsenden Advanced-Packaging-Segment für AI-Chips. Insider-Cluster-Käufe signalisieren Informationsasymmetrie zugunsten des Managements bezüglich der Integrations-Timeline. Das expansive Makro-Umfeld mit steiler Kurve und 3.64% Fed Rate begünstigt Capex-intensive Halbleiter-Equipment-Nachfrage strukturell.\n\n**Katalysator:** Q3 2026 Earnings-Call mit ersten quantifizierten NEXX-Synergien und Advanced-Packaging-Orderbook-Update  \n**Time-to-Materialization:** 2-3 Monate  \n\n### Bear Case\n> Weitere US-Exportrestriktionen gegen China könnten 2026 einen Umsatzschock von 15-20% im China-Segment erzeugen und die NEXX-Upside vollständig neutralisieren.  \n**Severity:** 6/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 75.0% (10,000 Pfade)\n- **Target-Preis:** $430.77\n- **Aktueller Preis:** $390.23\n- **σ:** 0.0310\n- **α (Signal-Drift):** 0.00535\n\n### Options-Vorschlag\n- **Expiry:** 2026-07-17 (73 DTE)\n- **Strike:** $380.00\n- **Bid/Ask:** $47.70 / $49.85\n- **Impl. Vol.:** 63.3%\n- **Open Interest:** 803\n- **Bid-Ask-Ratio:** 4.31%\n\n### 🚪 Exit-Regeln\n- **Entry-Kosten:** $49.85 pro Kontrakt\n- **Take-Profit:** bei $74.78 (+50%) → Hälfte schliessen\n- **Full-Profit:** bei $99.70 (+100%) → Rest schliessen\n- **Stop-Loss:** bei $29.91 (-40%) → Gesamte Position liquidieren\n- **Time-Exit:** ab 2026-06-11 (36 DTE Rest) — schliessen wenn Gewinn < +20%\n\n---\n## Modell-Gewichte (aktuell)\n- Impact: `0.35`\n- Mismatch: `0.45`\n- EPS-Drift: `0.20`\n\n_Automatisch generiert durch Adaptive Asymmetry-Scanner v8.2_"
  },
  {
    "path": "outputs/daily_reports/2026-05-05.json",
    "content": "{\n  \"date\": \"2026-05-05\",\n  \"proposals\": [\n    {\n      \"ticker\": \"AMD\",\n      \"strategy\": \"LONG_CALL\",\n      \"iv_rank\": 42.3,\n      \"iv_gate_applied\": false,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-05-22\",\n        \"strike\": 350.0,\n        \"bid\": 25.55,\n        \"ask\": 26.4,\n        \"open_interest\": 557,\n        \"implied_vol\": 0.7040434869384766,\n        \"spread_ratio\": 0.0322,\n        \"dte\": 16\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 1.0865,\n        \"roi_net\": 0.9833,\n        \"spread_pct\": 0.0322,\n        \"vega_loss\": 0.0388,\n        \"delta\": 0.5952,\n        \"iv_drop_assumed\": 0.05,\n        \"cost_basis\": 26.4,\n        \"is_spread\": false,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.15,\n        \"dte\": 16\n      },\n      \"dte_tier\": \"Short-Term\",\n      \"annualized_roi\": 6083774.0298,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Short-Term\",\n          \"dte\": 16,\n          \"option\": {\n            \"expiry\": \"2026-05-22\",\n            \"strike\": 350.0,\n            \"bid\": 25.55,\n            \"ask\": 26.4,\n            \"open_interest\": 557,\n            \"implied_vol\": 0.7040434869384766,\n            \"spread_ratio\": 0.0322,\n            \"dte\": 16\n          },\n          \"roi\": {\n            \"roi_gross\": 1.0865,\n            \"roi_net\": 0.9833,\n            \"spread_pct\": 0.0322,\n            \"vega_loss\": 0.0388,\n            \"delta\": 0.5952,\n            \"iv_drop_assumed\": 0.05,\n            \"cost_basis\": 26.4,\n            \"is_spread\": false,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.15,\n            \"dte\": 16\n          },\n          \"annualized_roi\": 6083774.0298,\n          \"strategy\": \"LONG_CALL\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 1.439,\n        \"z_score\": 0.912,\n        \"sigma_30d\": 0.04,\n        \"price_move_48h\": 0.0365,\n        \"eps_drift\": 0.0538,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"weak\",\n        \"bin_eps_drift\": \"relevant\",\n        \"quick_mc_hit_rate\": 0.662\n      },\n      \"simulation\": {\n        \"current_price\": 358.74,\n        \"target_price\": 406.93,\n        \"hit_rate\": 0.6836,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.04,\n        \"alpha\": 0.00407\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"AMD notiert bei $358.74 nach einem massiven Run-up und der bevorstehende Earnings-Katalysator ist bereits weitgehend eingepreist. Morgan Stanley's PT-Anhebung ist ein klassisches 'Buy the rumor'-Signal \\u2014 nach dem Event droht IV-Crush, der Long-Options-Positionen selbst bei positiver \\u00dcberraschung vernichtet. Der 48h-R\\u00fcckgang von -3.7% deutet darauf hin, dass Smart Money bereits Gewinne mitnimmt.\",\n          \"argument_2\": \"Die massive EPS-Diskrepanz zwischen yfinance ($11.22) und SEC EDGAR ($2.46) ist ein ernstes Datenzuverl\\u00e4ssigkeits-Problem. Eine 5.4% ausgewiesene Abweichung verdeckt, dass die Bewertungsgrundlage fundamental unklar ist \\u2014 bei einem KGV-basierten Ansatz kann dies die gesamte Bullish-These invalidieren, da AMD m\\u00f6glicherweise deutlich teurer ist als oberfl\\u00e4chlich erscheint.\",\n          \"argument_3\": \"AMD operiert in einem hochkompetitiven AI-Chip-Markt, in dem NVIDIA strukturelle Dominanz besitzt und Intel trotz Schw\\u00e4che als Gegenbeispiel f\\u00fcr Sektor-Volatilit\\u00e4t warnt. Die Seed-Investments in kleine AI-Startups (RadixArk, Altara) sind keine fundamentalen Revenue-Treiber f\\u00fcr 2026 \\u2014 sie signalisieren eher Diversifikationsversuche als organisches Kernwachstum und k\\u00f6nnten Analysten entt\\u00e4uschen.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein Monte Carlo verf\\u00fcgbar (0 Pfade). Bei einem Earnings-Event mit expliziter Markterwartung gro\\u00dfer Swings ist dies ein erhebliches Risiko-Einsch\\u00e4tzungsdefizit. Ohne MC-Daten kann keine statistische Hit-Rate-Validierung erfolgen \\u2014 die Abwesenheit von Daten erh\\u00f6ht die Unsicherheit erheblich und erfordert konservative Positionierung.\",\n          \"concern_level\": \"high\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 7,\n        \"time_to_materialization\": \"4-8 Wochen\",\n        \"asymmetry_reasoning\": \"Insider-Cluster-K\\u00e4ufe von 4 Personen binnen 14 Tagen signalisieren informiertes Kapital, das trotz Pre-Earnings-Nervosit\\u00e4t akkumuliert. Der Markt diskontiert kurzfristig den -3.7% R\\u00fcckgang als Risiko, untersch\\u00e4tzt aber das strukturelle AI-Infrastruktur-Exposure von AMD als NVIDIA-Alternative. Morgan Stanleys PT-Revision kombiniert mit Insider-Aktivit\\u00e4t erzeugt asymmetrisches Upside bei positivem Earnings-\\u00dcberraschungspotenzial.\",\n        \"catalyst\": \"AMD Earnings-Report Q1/Q2 2026: \\u00dcberraschung bei AI-GPU-Ums\\u00e4tzen (MI300X-Nachfolge) plus institutionelle Neubewertung durch Morgan Stanley PT-Anhebung\",\n        \"bear_case\": \"IV-Crush nach Earnings vernichtet Options-Premium selbst bei neutralem Report; EPS-Datendivergenz deutet auf fragile Bewertungsgrundlage hin\",\n        \"macro_assessment\": \"Neutrale Makrolage (Kurve +0.50%, Fed Funds 3.64%) bietet weder strukturellen R\\u00fcckenwind noch aktiven Gegenwind. Das Zinsumfeld ist f\\u00fcr Tech-Wachstumswerte tolerierbar, aber nicht f\\u00f6rderlich \\u2014 mittelfristige Bewertungsmultiplikatoren bleiben unter Druck. Kein Makro-VETO, aber auch kein Verst\\u00e4rker f\\u00fcr die Bullish-These.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.5,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLK\",\n        \"rel_strength\": 0.631\n      },\n      \"final_score\": 0.1438,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 6.1456,\n        \"annualized_roi\": null,\n        \"dte\": 16\n      },\n      \"trade_score\": {\n        \"total\": 60,\n        \"grade\": \"BUY \\ud83d\\udfe1\",\n        \"grade_short\": \"BUY\",\n        \"components\": {\n          \"signal_quality\": 21.9,\n          \"options_quality\": 28.0,\n          \"risk_deductions\": -10.0,\n          \"context_bonus\": 20.0\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=6/Surprise=5), guter ROI (98%), positive Sektor-Relative-St\\u00e4rke | Risiken: hohes Bear-Risiko (7/10)\",\n        \"best_argument_for\": \"Insider-Cluster-K\\u00e4ufe von 4 Personen binnen 14 Tagen signalisieren informiertes Kapital, das trotz Pre-Earnings-Nervosit\\u00e4t akkumuliert. Der Markt diskontiert kurzfristig den -3.7% R\\u00fcckgang als Risiko, untersch\\u00e4tzt aber das strukturelle AI-Infrastruktur-Exposure von AMD als NVIDIA-Alternative. Morgan Stanleys PT-Revision kombiniert mit Insider-Aktivit\\u00e4t erzeugt asymmetrisches Upside bei positivem Earnings-\\u00dcberraschungspotenzial.\",\n        \"best_argument_against\": \"AMD notiert bei $358.74 nach einem massiven Run-up und der bevorstehende Earnings-Katalysator ist bereits weitgehend eingepreist. Morgan Stanley's PT-Anhebung ist ein klassisches 'Buy the rumor'-Signal \\u2014 nach dem Event droht IV-Crush, der Long-Options-Positionen selbst bei positiver \\u00dcberraschung vernichtet. Der 48h-R\\u00fcckgang von -3.7% deutet darauf hin, dass Smart Money bereits Gewinne mitnimmt.\"\n      },\n      \"trade_rank\": 1,\n      \"exit_rules\": {\n        \"entry_cost\": 26.4,\n        \"take_profit_pct\": 50,\n        \"take_profit_price\": 39.6,\n        \"full_profit_pct\": 100,\n        \"full_profit_price\": 52.8,\n        \"stop_loss_pct\": -40,\n        \"stop_loss_price\": 15.84,\n        \"time_exit_dte_remaining\": 8,\n        \"time_exit_date\": \"2026-05-14\",\n        \"time_exit_min_profit_pct\": 20\n      }\n    }\n  ]\n}"
  },
  {
    "path": "outputs/daily_reports/2026-05-05.md",
    "content": "# Adaptive Asymmetry-Scanner – 2026-05-05\n\n**Generiert:** 2026-05-05 18:17 UTC\n**Trade-Vorschläge:** 1\n\n---\n## 1. AMD – LONG_CALL\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.1438`  \n**IV-Rank:** 42.3  \n**Trade-Score:** 60/100 — BUY 🟡  \n\n### Asymmetry-Analyse\n- **Impact:** 6/10\n- **Surprise:** 5/10\n- **Mismatch-Score:** 1.439\n- **Z-Score (48h):** 0.912\n- **48h-Move:** 0.0365\n- **EPS-Drift:** 0.0538 (relevant)\n\n**Asymmetry-Reasoning:**  \n> Insider-Cluster-Käufe von 4 Personen binnen 14 Tagen signalisieren informiertes Kapital, das trotz Pre-Earnings-Nervosität akkumuliert. Der Markt diskontiert kurzfristig den -3.7% Rückgang als Risiko, unterschätzt aber das strukturelle AI-Infrastruktur-Exposure von AMD als NVIDIA-Alternative. Morgan Stanleys PT-Revision kombiniert mit Insider-Aktivität erzeugt asymmetrisches Upside bei positivem Earnings-Überraschungspotenzial.\n\n**Katalysator:** AMD Earnings-Report Q1/Q2 2026: Überraschung bei AI-GPU-Umsätzen (MI300X-Nachfolge) plus institutionelle Neubewertung durch Morgan Stanley PT-Anhebung  \n**Time-to-Materialization:** 4-8 Wochen  \n\n### Bear Case\n> IV-Crush nach Earnings vernichtet Options-Premium selbst bei neutralem Report; EPS-Datendivergenz deutet auf fragile Bewertungsgrundlage hin  \n**Severity:** 7/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 68.4% (10,000 Pfade)\n- **Target-Preis:** $406.93\n- **Aktueller Preis:** $358.74\n- **σ:** 0.0400\n- **α (Signal-Drift):** 0.00407\n\n### Options-Vorschlag\n- **Expiry:** 2026-05-22 (16 DTE)\n- **Strike:** $350.00\n- **Bid/Ask:** $25.55 / $26.40\n- **Impl. Vol.:** 70.4%\n- **Open Interest:** 557\n- **Bid-Ask-Ratio:** 3.22%\n\n### 🚪 Exit-Regeln\n- **Entry-Kosten:** $26.40 pro Kontrakt\n- **Take-Profit:** bei $39.60 (+50%) → Hälfte schliessen\n- **Full-Profit:** bei $52.80 (+100%) → Rest schliessen\n- **Stop-Loss:** bei $15.84 (-40%) → Gesamte Position liquidieren\n- **Time-Exit:** ab 2026-05-14 (8 DTE Rest) — schliessen wenn Gewinn < +20%\n\n---\n## Modell-Gewichte (aktuell)\n- Impact: `0.35`\n- Mismatch: `0.45`\n- EPS-Drift: `0.20`\n\n_Automatisch generiert durch Adaptive Asymmetry-Scanner v8.2_"
  },
  {
    "path": "outputs/daily_reports/2026-05-06.json",
    "content": "{\n  \"date\": \"2026-05-06\",\n  \"proposals\": [\n    {\n      \"ticker\": \"GOOG\",\n      \"strategy\": \"LONG_CALL\",\n      \"iv_rank\": 80.0,\n      \"iv_gate_applied\": false,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-05-22\",\n        \"strike\": 390.0,\n        \"bid\": 11.55,\n        \"ask\": 12.35,\n        \"open_interest\": 4042,\n        \"implied_vol\": 0.31342239318847653,\n        \"spread_ratio\": 0.0648,\n        \"dte\": 15\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 1.4254,\n        \"roi_net\": 1.0965,\n        \"spread_pct\": 0.0648,\n        \"vega_loss\": 0.1994,\n        \"delta\": 0.5599,\n        \"iv_drop_assumed\": 0.25,\n        \"cost_basis\": 12.35,\n        \"is_spread\": false,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.15,\n        \"dte\": 15\n      },\n      \"dte_tier\": \"Short-Term\",\n      \"annualized_roi\": 66533711.5162,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Short-Term\",\n          \"dte\": 15,\n          \"option\": {\n            \"expiry\": \"2026-05-22\",\n            \"strike\": 390.0,\n            \"bid\": 11.55,\n            \"ask\": 12.35,\n            \"open_interest\": 4042,\n            \"implied_vol\": 0.31342239318847653,\n            \"spread_ratio\": 0.0648,\n            \"dte\": 15\n          },\n          \"roi\": {\n            \"roi_gross\": 1.4254,\n            \"roi_net\": 1.0965,\n            \"spread_pct\": 0.0648,\n            \"vega_loss\": 0.1994,\n            \"delta\": 0.5599,\n            \"iv_drop_assumed\": 0.25,\n            \"cost_basis\": 12.35,\n            \"is_spread\": false,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.15,\n            \"dte\": 15\n          },\n          \"annualized_roi\": 66533711.5162,\n          \"strategy\": \"LONG_CALL\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"mismatch\": 4.441,\n        \"z_score\": 0.112,\n        \"sigma_30d\": 0.0245,\n        \"price_move_48h\": 0.0027,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.6684\n      },\n      \"simulation\": {\n        \"current_price\": 392.96,\n        \"target_price\": 424.4,\n        \"hit_rate\": 0.75,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0193,\n        \"alpha\": 0.00325\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Der 'Anthropic-Deal-Spillover' ist ein narrativer Proxy-Trade mit schwacher Kausalit\\u00e4t: Google ist bereits tief in Anthropic investiert, und der Markt kennt diese Partnerschaft seit 2023. Der Effekt d\\u00fcrfte l\\u00e4ngst eingepreist sein \\u2014 ein klassisches 'buy the rumor, sold the news'-Muster, das bei AI-Hype-Narrativen wiederholt zu beobachten war.\",\n          \"argument_2\": \"Googles Kerngesch\\u00e4ft (Search-Advertising) steht unter strukturellem Druck durch AI-generierte Suchergebnisse, die CPCs und Click-Through-Rates senken k\\u00f6nnten. Wenn Googles eigene KI-Produkte den Werbekanal kannibalisieren, ist die AI-Compute-These ein zweischneidiges Schwert \\u2014 Revenue-Wachstum k\\u00f6nnte trotz technologischem Fortschritt entt\\u00e4uschen.\",\n          \"argument_3\": \"Cathie Woods ARK-K\\u00e4ufe sind historisch ein schlechter Kontr\\u00e4r-Indikator und kein Alpha-Signal. Bei einem Preis von ~$393 und einem Trailing-EPS von ~$13-14 handelt GOOG mit einem KGV von ~28-30x \\u2014 nicht g\\u00fcnstig f\\u00fcr ein reifes Unternehmen in einem Umfeld mit 4.32% 10Y-Renditen, wo der Diskontierungseffekt auf High-Multiple-Namen signifikant ist.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Hit-Rate von 0% bedeutet hier schlicht 'kein MC durchgef\\u00fchrt', nicht eine echte Null-Wahrscheinlichkeit. Ohne MC-Daten fehlt die quantitative Basis f\\u00fcr eine Pfadanalyse. Das Fehlen dieser Statistik erh\\u00f6ht Unsicherheit, ist aber kein disqualifizierendes Signal per se \\u2014 die fundamentale und nachrichtenbasierte Analyse muss st\\u00e4rker gewichtet werden.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt behandelt Google prim\\u00e4r als Advertising-Unternehmen, untersch\\u00e4tzt aber den Leverage auf AI-Infrastruktur via TPU-Cloudkapazit\\u00e4t und Gemini-Monetarisierung. Insider-Cluster-K\\u00e4ufe in Kombination mit steigender AI-Compute-Nachfrage deuten auf nicht-\\u00f6ffentlich bekannte Wachstumsbeschleunigung hin. Das neutrale Makroumfeld mit flacher Kurve und moderaten Zinsen belastet High-Multiple-Namen weniger als in inversionsphasen.\",\n        \"catalyst\": \"Q2 2026 Earnings (erwarteter Termin Juli 2026) mit AI-Cloud-Revenue-Beschleunigung und m\\u00f6glicher Erh\\u00f6hung der Compute-Guidance\",\n        \"bear_case\": \"Strukturelle Kannibalisierung des Search-Ad-Gesch\\u00e4fts durch eigene KI-Produkte bei gleichzeitig hohem Capex-Druck k\\u00f6nnte Margenkompression ausl\\u00f6sen und das Multiple weiter unter Druck setzen.\",\n        \"macro_assessment\": \"Neutrale Makrolage mit flacher Zinskurve (+0.50%) und Fed Funds Rate von 3.64% ist moderat konstruktiv f\\u00fcr Growth-Aktien. Der 10Y bei 4.32% \\u00fcbt weiterhin leichten Druck auf DCF-basierte Bewertungen aus, ist aber kein dominanter Gegenwind. \\u00d6lpreisr\\u00fcckgang durch m\\u00f6gliche Nahost-Entspannung st\\u00fctzt den breiten Markt und reduziert Stagflationsrisiko \\u2014 per Saldo leicht bullisher Kontext f\\u00fcr GOOG.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.5,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLC\",\n        \"rel_strength\": 0.2496\n      },\n      \"final_score\": 0.0815,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 7.31,\n        \"annualized_roi\": null,\n        \"dte\": 15\n      },\n      \"trade_score\": {\n        \"total\": 63,\n        \"grade\": \"BUY \\ud83d\\udfe1\",\n        \"grade_short\": \"BUY\",\n        \"components\": {\n          \"signal_quality\": 17.9,\n          \"options_quality\": 27.0,\n          \"risk_deductions\": -2.0,\n          \"context_bonus\": 20.0\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=5/Surprise=4), guter ROI (110%), positive Sektor-Relative-St\\u00e4rke\",\n        \"best_argument_for\": \"Der Markt behandelt Google prim\\u00e4r als Advertising-Unternehmen, untersch\\u00e4tzt aber den Leverage auf AI-Infrastruktur via TPU-Cloudkapazit\\u00e4t und Gemini-Monetarisierung. Insider-Cluster-K\\u00e4ufe in Kombination mit steigender AI-Compute-Nachfrage deuten auf nicht-\\u00f6ffentlich bekannte Wachstumsbeschleunigung hin. Das neutrale Makroumfeld mit flacher Kurve und moderaten Zinsen belastet High-Multiple-Namen weniger als in inversionsphasen.\",\n        \"best_argument_against\": \"Der 'Anthropic-Deal-Spillover' ist ein narrativer Proxy-Trade mit schwacher Kausalit\\u00e4t: Google ist bereits tief in Anthropic investiert, und der Markt kennt diese Partnerschaft seit 2023. Der Effekt d\\u00fcrfte l\\u00e4ngst eingepreist sein \\u2014 ein klassisches 'buy the rumor, sold the news'-Muster, das bei AI-Hype-Narrativen wiederholt zu beobachten war.\"\n      },\n      \"trade_rank\": 1,\n      \"exit_rules\": {\n        \"entry_cost\": 12.35,\n        \"take_profit_pct\": 50,\n        \"take_profit_price\": 18.52,\n        \"full_profit_pct\": 100,\n        \"full_profit_price\": 24.7,\n        \"stop_loss_pct\": -40,\n        \"stop_loss_price\": 7.41,\n        \"time_exit_dte_remaining\": 7,\n        \"time_exit_date\": \"2026-05-15\",\n        \"time_exit_min_profit_pct\": 20\n      }\n    },\n    {\n      \"ticker\": \"AMCR\",\n      \"strategy\": \"LONG_CALL\",\n      \"iv_rank\": 83.5,\n      \"iv_gate_applied\": false,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-10-16\",\n        \"strike\": 40.0,\n        \"bid\": 3.9,\n        \"ask\": 4.2,\n        \"open_interest\": 152,\n        \"implied_vol\": 0.33423517333984376,\n        \"spread_ratio\": 0.0714,\n        \"dte\": 162\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 0.4622,\n        \"roi_net\": 0.2517,\n        \"spread_pct\": 0.0714,\n        \"vega_loss\": 0.0677,\n        \"delta\": 0.5901,\n        \"iv_drop_assumed\": 0.08,\n        \"cost_basis\": 4.2,\n        \"is_spread\": false,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.1,\n        \"dte\": 162\n      },\n      \"dte_tier\": \"Long-Term\",\n      \"annualized_roi\": 0.6584,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Long-Term\",\n          \"dte\": 162,\n          \"option\": {\n            \"expiry\": \"2026-10-16\",\n            \"strike\": 40.0,\n            \"bid\": 3.9,\n            \"ask\": 4.2,\n            \"open_interest\": 152,\n            \"implied_vol\": 0.33423517333984376,\n            \"spread_ratio\": 0.0714,\n            \"dte\": 162\n          },\n          \"roi\": {\n            \"roi_gross\": 0.4622,\n            \"roi_net\": 0.2517,\n            \"spread_pct\": 0.0714,\n            \"vega_loss\": 0.0677,\n            \"delta\": 0.5901,\n            \"iv_drop_assumed\": 0.08,\n            \"cost_basis\": 4.2,\n            \"is_spread\": false,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.1,\n            \"dte\": 162\n          },\n          \"annualized_roi\": 0.6584,\n          \"strategy\": \"LONG_CALL\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"mismatch\": 4.506,\n        \"z_score\": 0.099,\n        \"sigma_30d\": 0.0295,\n        \"price_move_48h\": 0.0029,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.4832\n      },\n      \"simulation\": {\n        \"current_price\": 41.05,\n        \"target_price\": 44.34,\n        \"hit_rate\": 0.5866,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0226,\n        \"alpha\": 0.0008\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"AMCR ist als Verpackungsunternehmen strukturell dem Konsumg\\u00fctersektor ausgesetzt, der unter anhaltendem Margendruck durch Rohstoffkosten (Harz, Aluminium) leidet. Der Verkauf von zwei US-Produktionsanlagen an Closure Systems signalisiert m\\u00f6glicherweise einen strategischen R\\u00fcckzug aus marginschwachen Segmenten, was kurzfristig Einmalbelastungen und Restrukturierungskosten mit sich bringen kann.\",\n          \"argument_2\": \"Der EPS-Diskrepanz zwischen yfinance (4.36) und SEC EDGAR (1.33) ist ein erhebliches Datenkonfidenz-Warnsignal. Q3-Earnings matchten lediglich die Sch\\u00e4tzungen, ohne positiv zu \\u00fcberraschen \\u2014 der Revenue-Beat und die angehobene Guidance k\\u00f6nnten bereits durch die kurzfristige Preisreaktion vollst\\u00e4ndig eingepreist sein, zumal die 48h-Bewegung mit -0.3% neutral bis leicht negativ ausf\\u00e4llt, was auf fehlende \\u00dcberzeugung beim Markt hindeutet.\",\n          \"argument_3\": \"Der Consumer Cyclical Sektor ist bei einem Fed Funds Rate von 3.64% und einem 10Y Treasury von 4.32% strukturell unter Druck, da h\\u00f6here Kapitalkosten Investitionsentscheidungen bei Konsumenten und Industrie bremsen. AMCR als Zulieferer ist indirekt von Volumenr\\u00fcckg\\u00e4ngen bei Endkunden abh\\u00e4ngig; ein Cluster-Insider-Kauf allein ist kein hinreichendes Bullish-Signal, wenn das operative Momentum durch Anlagenverk\\u00e4ufe und flaches EPS-Wachstum relativiert wird.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"0% Hit-Rate resultiert aus fehlendem Quick-MC-Durchlauf, nicht aus einem negativen Modellsignal. Die Abwesenheit statistischer Evidenz erh\\u00f6ht die Unsicherheit erheblich und zwingt zu gr\\u00f6\\u00dferer Vorsicht bei der Einsch\\u00e4tzung der Upside-Wahrscheinlichkeit. Bei AMCR mit historisch moderater Volatilit\\u00e4t w\\u00e4re eine realistische Hit-Rate im Bereich 45-60% f\\u00fcr bullische Pfade \\u00fcber 30 Tage zu erwarten.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 5,\n        \"time_to_materialization\": \"4-8 Wochen\",\n        \"asymmetry_reasoning\": \"Der Markt verarbeitet Revenue-Beat und Guidance-Anhebung verz\\u00f6gert, da AMCR als Verpackungs-Utility-\\u00e4hnlicher Titel wenig Analyst-Coverage-Momentum erzeugt. Neun Insider-K\\u00e4ufe im 14-Tage-Cluster signalisieren internen Optimismus vor weiteren Katalysatoren. Der Anlagenverkauf reduziert kurzfristig Kapitalintensit\\u00e4t und k\\u00f6nnte Bilanzverbesserungen mit sich bringen.\",\n        \"catalyst\": \"Angehobene Jahresguidance Q3 2026 kombiniert mit Insider-Cluster-Kauf als vorgelagertes Signal f\\u00fcr operative Margenverbesserung\",\n        \"bear_case\": \"EPS-Diskrepanz zwischen Datensources und fehlende positive Earnings-\\u00dcberraschung deuten darauf hin, dass der Markt die Guidance-Anhebung als konservativ einsch\\u00e4tzt und weiteres Upside bereits begrenzt ist.\",\n        \"macro_assessment\": \"Neutrales Makro-Umfeld mit flacher Kurve (+0.50%) ist f\\u00fcr AMCR weder R\\u00fccken- noch Gegenwind. Bei 4.32% 10Y-Yield bleibt Dividenden-orientiertes Kapital in Anleihen konkurrenzf\\u00e4hig, was die relative Attraktivit\\u00e4t von AMCR als Yield-Titel begrenzt. Kein strukturelles Makro-Veto, aber auch kein Tailwind.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.5,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLY\",\n        \"rel_strength\": -0.0501\n      },\n      \"final_score\": 0.0815,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 0.1554,\n        \"annualized_roi\": 0.6584,\n        \"dte\": 162\n      },\n      \"trade_score\": {\n        \"total\": 47,\n        \"grade\": \"WATCH \\ud83d\\udfe0\",\n        \"grade_short\": \"WATCH\",\n        \"components\": {\n          \"signal_quality\": 17.9,\n          \"options_quality\": 21.1,\n          \"risk_deductions\": -2.0,\n          \"context_bonus\": 10.0\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=5/Surprise=4), guter ROI (25%) | Risiken: Sektor underperformt Markt\",\n        \"best_argument_for\": \"Der Markt verarbeitet Revenue-Beat und Guidance-Anhebung verz\\u00f6gert, da AMCR als Verpackungs-Utility-\\u00e4hnlicher Titel wenig Analyst-Coverage-Momentum erzeugt. Neun Insider-K\\u00e4ufe im 14-Tage-Cluster signalisieren internen Optimismus vor weiteren Katalysatoren. Der Anlagenverkauf reduziert kurzfristig Kapitalintensit\\u00e4t und k\\u00f6nnte Bilanzverbesserungen mit sich bringen.\",\n        \"best_argument_against\": \"AMCR ist als Verpackungsunternehmen strukturell dem Konsumg\\u00fctersektor ausgesetzt, der unter anhaltendem Margendruck durch Rohstoffkosten (Harz, Aluminium) leidet. Der Verkauf von zwei US-Produktionsanlagen an Closure Systems signalisiert m\\u00f6glicherweise einen strategischen R\\u00fcckzug aus marginschwachen Segmenten, was kurzfristig Einmalbelastungen und Restrukturierungskosten mit sich bringen kann.\"\n      },\n      \"trade_rank\": 2,\n      \"exit_rules\": {\n        \"entry_cost\": 4.2,\n        \"take_profit_pct\": 50,\n        \"take_profit_price\": 6.3,\n        \"full_profit_pct\": 100,\n        \"full_profit_price\": 8.4,\n        \"stop_loss_pct\": -40,\n        \"stop_loss_price\": 2.52,\n        \"time_exit_dte_remaining\": 81,\n        \"time_exit_date\": \"2026-07-27\",\n        \"time_exit_min_profit_pct\": 20\n      }\n    }\n  ]\n}"
  },
  {
    "path": "outputs/daily_reports/2026-05-06.md",
    "content": "# Adaptive Asymmetry-Scanner – 2026-05-06\n\n**Generiert:** 2026-05-06 15:48 UTC\n**Trade-Vorschläge:** 2\n\n---\n## 1. GOOG – LONG_CALL\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.0815`  \n**IV-Rank:** 80.0  \n**Trade-Score:** 63/100 — BUY 🟡  \n\n### Asymmetry-Analyse\n- **Impact:** 5/10\n- **Surprise:** 4/10\n- **Mismatch-Score:** 4.441\n- **Z-Score (48h):** 0.112\n- **48h-Move:** 0.0027\n- **EPS-Drift:** 0.0 (noise)\n\n**Asymmetry-Reasoning:**  \n> Der Markt behandelt Google primär als Advertising-Unternehmen, unterschätzt aber den Leverage auf AI-Infrastruktur via TPU-Cloudkapazität und Gemini-Monetarisierung. Insider-Cluster-Käufe in Kombination mit steigender AI-Compute-Nachfrage deuten auf nicht-öffentlich bekannte Wachstumsbeschleunigung hin. Das neutrale Makroumfeld mit flacher Kurve und moderaten Zinsen belastet High-Multiple-Namen weniger als in inversionsphasen.\n\n**Katalysator:** Q2 2026 Earnings (erwarteter Termin Juli 2026) mit AI-Cloud-Revenue-Beschleunigung und möglicher Erhöhung der Compute-Guidance  \n**Time-to-Materialization:** 2-3 Monate  \n\n### Bear Case\n> Strukturelle Kannibalisierung des Search-Ad-Geschäfts durch eigene KI-Produkte bei gleichzeitig hohem Capex-Druck könnte Margenkompression auslösen und das Multiple weiter unter Druck setzen.  \n**Severity:** 6/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 75.0% (10,000 Pfade)\n- **Target-Preis:** $424.40\n- **Aktueller Preis:** $392.96\n- **σ:** 0.0193\n- **α (Signal-Drift):** 0.00325\n\n### Options-Vorschlag\n- **Expiry:** 2026-05-22 (15 DTE)\n- **Strike:** $390.00\n- **Bid/Ask:** $11.55 / $12.35\n- **Impl. Vol.:** 31.3%\n- **Open Interest:** 4,042\n- **Bid-Ask-Ratio:** 6.48%\n\n### 🚪 Exit-Regeln\n- **Entry-Kosten:** $12.35 pro Kontrakt\n- **Take-Profit:** bei $18.52 (+50%) → Hälfte schliessen\n- **Full-Profit:** bei $24.70 (+100%) → Rest schliessen\n- **Stop-Loss:** bei $7.41 (-40%) → Gesamte Position liquidieren\n- **Time-Exit:** ab 2026-05-15 (7 DTE Rest) — schliessen wenn Gewinn < +20%\n\n---\n## 2. AMCR – LONG_CALL\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.0815`  \n**IV-Rank:** 83.5  \n**Trade-Score:** 47/100 — WATCH 🟠  \n\n### Asymmetry-Analyse\n- **Impact:** 5/10\n- **Surprise:** 4/10\n- **Mismatch-Score:** 4.506\n- **Z-Score (48h):** 0.099\n- **48h-Move:** 0.0029\n- **EPS-Drift:** 0.0 (noise)\n\n**Asymmetry-Reasoning:**  \n> Der Markt verarbeitet Revenue-Beat und Guidance-Anhebung verzögert, da AMCR als Verpackungs-Utility-ähnlicher Titel wenig Analyst-Coverage-Momentum erzeugt. Neun Insider-Käufe im 14-Tage-Cluster signalisieren internen Optimismus vor weiteren Katalysatoren. Der Anlagenverkauf reduziert kurzfristig Kapitalintensität und könnte Bilanzverbesserungen mit sich bringen.\n\n**Katalysator:** Angehobene Jahresguidance Q3 2026 kombiniert mit Insider-Cluster-Kauf als vorgelagertes Signal für operative Margenverbesserung  \n**Time-to-Materialization:** 4-8 Wochen  \n\n### Bear Case\n> EPS-Diskrepanz zwischen Datensources und fehlende positive Earnings-Überraschung deuten darauf hin, dass der Markt die Guidance-Anhebung als konservativ einschätzt und weiteres Upside bereits begrenzt ist.  \n**Severity:** 5/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 58.7% (10,000 Pfade)\n- **Target-Preis:** $44.34\n- **Aktueller Preis:** $41.05\n- **σ:** 0.0226\n- **α (Signal-Drift):** 0.00080\n\n### Options-Vorschlag\n- **Expiry:** 2026-10-16 (162 DTE)\n- **Strike:** $40.00\n- **Bid/Ask:** $3.90 / $4.20\n- **Impl. Vol.:** 33.4%\n- **Open Interest:** 152\n- **Bid-Ask-Ratio:** 7.14%\n\n### 🚪 Exit-Regeln\n- **Entry-Kosten:** $4.20 pro Kontrakt\n- **Take-Profit:** bei $6.30 (+50%) → Hälfte schliessen\n- **Full-Profit:** bei $8.40 (+100%) → Rest schliessen\n- **Stop-Loss:** bei $2.52 (-40%) → Gesamte Position liquidieren\n- **Time-Exit:** ab 2026-07-27 (81 DTE Rest) — schliessen wenn Gewinn < +20%\n\n---\n## Modell-Gewichte (aktuell)\n- Impact: `0.35`\n- Mismatch: `0.45`\n- EPS-Drift: `0.20`\n\n_Automatisch generiert durch Adaptive Asymmetry-Scanner v8.2_"
  },
  {
    "path": "outputs/daily_reports/2026-05-07.json",
    "content": "{\n  \"date\": \"2026-05-07\",\n  \"proposals\": [\n    {\n      \"ticker\": \"ALB\",\n      \"strategy\": \"LONG_CALL\",\n      \"iv_rank\": 81.6,\n      \"iv_gate_applied\": false,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-12-18\",\n        \"strike\": 200.0,\n        \"bid\": 44.5,\n        \"ask\": 47.85,\n        \"open_interest\": 264,\n        \"implied_vol\": 0.6726717303466798,\n        \"spread_ratio\": 0.07,\n        \"dte\": 224\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 0.3654,\n        \"roi_net\": 0.1562,\n        \"spread_pct\": 0.07,\n        \"vega_loss\": 0.0692,\n        \"delta\": 0.6377,\n        \"iv_drop_assumed\": 0.08,\n        \"cost_basis\": 47.85,\n        \"is_spread\": false,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.1,\n        \"dte\": 224\n      },\n      \"dte_tier\": \"Long-Term\",\n      \"annualized_roi\": 0.2668,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Long-Term\",\n          \"dte\": 224,\n          \"option\": {\n            \"expiry\": \"2026-12-18\",\n            \"strike\": 200.0,\n            \"bid\": 44.5,\n            \"ask\": 47.85,\n            \"open_interest\": 264,\n            \"implied_vol\": 0.6726717303466798,\n            \"spread_ratio\": 0.07,\n            \"dte\": 224\n          },\n          \"roi\": {\n            \"roi_gross\": 0.3654,\n            \"roi_net\": 0.1562,\n            \"spread_pct\": 0.07,\n            \"vega_loss\": 0.0692,\n            \"delta\": 0.6377,\n            \"iv_drop_assumed\": 0.08,\n            \"cost_basis\": 47.85,\n            \"is_spread\": false,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.1,\n            \"dte\": 224\n          },\n          \"annualized_roi\": 0.2668,\n          \"strategy\": \"LONG_CALL\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 6,\n        \"mismatch\": 3.886,\n        \"z_score\": 0.223,\n        \"sigma_30d\": 0.0452,\n        \"price_move_48h\": 0.0101,\n        \"eps_drift\": 0.6822,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"massive\",\n        \"quick_mc_hit_rate\": 0.5472\n      },\n      \"simulation\": {\n        \"current_price\": 209.58,\n        \"target_price\": 237.0,\n        \"hit_rate\": 0.5684,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.039,\n        \"alpha\": 0.00055\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Die EPS-Daten weichen um 68,2% zwischen yfinance ($9.03) und SEC EDGAR (-$5.77) ab \\u2014 das ist eine massive Diskrepanz, die fundamentale Zweifel an der Qualit\\u00e4t der Earnings-Zahlen aufwirft. Es ist m\\u00f6glich, dass yfinance adjustierte/Non-GAAP-Zahlen zeigt, w\\u00e4hrend SEC EDGAR GAAP-Verluste reflektiert. Ein 'Blowout-Earnings' auf Basis von Non-GAAP-Zahlen bei tats\\u00e4chlichem GAAP-Verlust ist ein klassisches rotes Flag f\\u00fcr Earnings-Qualit\\u00e4t und k\\u00f6nnte den Markt bei n\\u00e4herer Analyse entt\\u00e4uschen.\",\n          \"argument_2\": \"Der Lithium-Sektor bleibt strukturell unter Druck: \\u00dcberkapazit\\u00e4ten aus chinesischer Produktion, anhaltend niedrige Lithiumpreise seit dem Peak 2022/2023 und schw\\u00e4chere EV-Nachfrage in Europa und den USA dr\\u00fccken die Margen. Ein einzelnes Quartal mit besseren Zahlen rechtfertigt noch keine nachhaltige Markt-Reoberung \\u2014 der Katalysator k\\u00f6nnte bereits vollst\\u00e4ndig im +1,0%-Move und im Pre-Market-Anstieg eingepreist sein, sodass kein weiteres Aufw\\u00e4rtspotenzial f\\u00fcr eine 2-6-Monats-Optionsstrategie verbleibt.\",\n          \"argument_3\": \"Cluster-Insider-K\\u00e4ufe klingen positiv, k\\u00f6nnen aber auch taktisches Signaling sein oder auf Antizipation interner Restrukturierungsma\\u00dfnahmen hinweisen, die kurzfristig nicht wertsch\\u00f6pfend sind. Zudem fehlt ein Quick Monte Carlo (0 Pfade), was bedeutet, dass keine statistisch fundierte Wahrscheinlichkeitsverteilung f\\u00fcr das 30-Tage-Kursziel existiert \\u2014 eine mittelfristige Optionsstrategie ohne MC-Basis ist wesentlich riskanter, da IV-Crush nach dem Earnings-Event sofort Optionspr\\u00e4mien vernichtet.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Quick MC wurde nicht durchgef\\u00fchrt (0 Pfade) \\u2014 eine Hit-Rate von 0% ist in diesem Fall nicht als Marktprognose interpretierbar, sondern zeigt einen technischen Ausfall des Vorfilters. Dies erh\\u00f6ht die Unsicherheit erheblich, da keine statistische Absicherung der Richtungsprognose vorliegt. Concern ist hoch, da eine Optionsstrategie ohne probabilistische Grundlage rein auf Sentiment und fraglichen Earnings-Zahlen basiert.\",\n          \"concern_level\": \"high\"\n        },\n        \"impact\": 5,\n        \"surprise\": 6,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 7,\n        \"time_to_materialization\": \"4-8 Wochen\",\n        \"asymmetry_reasoning\": \"Der Markt reagiert nur mit +1,0% trotz positiver Earnings-\\u00dcberraschung, m\\u00f6glicherweise weil die EPS-Diskrepanz (GAAP vs. Non-GAAP) Skepsis erzeugt. Insider-Cluster-K\\u00e4ufe sind noch nicht vollst\\u00e4ndig in institutionellen Flows eingepreist. Falls die Guidance-Phase in 45 Tagen GAAP-Profitabilit\\u00e4t best\\u00e4tigt, k\\u00f6nnte eine zweite Repricing-Welle einsetzen.\",\n        \"catalyst\": \"Q2 2026 Guidance-Update in ~45 Tagen mit potenzieller Best\\u00e4tigung von GAAP-Profitabilit\\u00e4t und Lithiumpreis-Erholung\",\n        \"bear_case\": \"GAAP-Verlust laut SEC EDGAR bei -$5.77 EPS signalisiert, dass die 'Blowout-Earnings' prim\\u00e4r auf Non-GAAP-Adjustierungen beruhen \\u2014 bei anhaltend niedrigen Lithiumpreisen und \\u00dcberkapazit\\u00e4ten droht eine Entt\\u00e4uschung in der n\\u00e4chsten Guidance-Phase.\",\n        \"macro_assessment\": \"Neutrale Makrolage (flache Kurve, Fed Funds bei 3.64%) bietet weder signifikanten R\\u00fccken- noch Gegenwind f\\u00fcr ALB. Das Zinsumfeld ist f\\u00fcr einen kapitalintensiven Rohstoff-Player wie Albemarle moderat belastend, aber nicht akut bedrohlich. Sektor-spezifische Risiken (Lithiumpreise, China-Konkurrenz) dominieren gegen\\u00fcber dem Makro-Signal.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.49,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLB\",\n        \"rel_strength\": 0.1761\n      },\n      \"final_score\": 0.0738,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 0.0697,\n        \"annualized_roi\": 0.2668,\n        \"dte\": 224\n      },\n      \"trade_score\": {\n        \"total\": 46,\n        \"grade\": \"WATCH \\ud83d\\udfe0\",\n        \"grade_short\": \"WATCH\",\n        \"components\": {\n          \"signal_quality\": 21.9,\n          \"options_quality\": 16.3,\n          \"risk_deductions\": -12.0,\n          \"context_bonus\": 20.0\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=5/Surprise=6), positive Sektor-Relative-St\\u00e4rke | Risiken: hohes Bear-Risiko (7/10)\",\n        \"best_argument_for\": \"Der Markt reagiert nur mit +1,0% trotz positiver Earnings-\\u00dcberraschung, m\\u00f6glicherweise weil die EPS-Diskrepanz (GAAP vs. Non-GAAP) Skepsis erzeugt. Insider-Cluster-K\\u00e4ufe sind noch nicht vollst\\u00e4ndig in institutionellen Flows eingepreist. Falls die Guidance-Phase in 45 Tagen GAAP-Profitabilit\\u00e4t best\\u00e4tigt, k\\u00f6nnte eine zweite Repricing-Welle einsetzen.\",\n        \"best_argument_against\": \"Die EPS-Daten weichen um 68,2% zwischen yfinance ($9.03) und SEC EDGAR (-$5.77) ab \\u2014 das ist eine massive Diskrepanz, die fundamentale Zweifel an der Qualit\\u00e4t der Earnings-Zahlen aufwirft. Es ist m\\u00f6glich, dass yfinance adjustierte/Non-GAAP-Zahlen zeigt, w\\u00e4hrend SEC EDGAR GAAP-Verluste reflektiert. Ein 'Blowout-Earnings' auf Basis von Non-GAAP-Zahlen bei tats\\u00e4chlichem GAAP-Verlust ist ein klassisches rotes Flag f\\u00fcr Earnings-Qualit\\u00e4t und k\\u00f6nnte den Markt bei n\\u00e4herer Analyse entt\\u00e4uschen.\"\n      },\n      \"trade_rank\": 1,\n      \"exit_rules\": {\n        \"entry_cost\": 47.85,\n        \"take_profit_pct\": 50,\n        \"take_profit_price\": 71.78,\n        \"full_profit_pct\": 100,\n        \"full_profit_price\": 95.7,\n        \"stop_loss_pct\": -40,\n        \"stop_loss_price\": 28.71,\n        \"time_exit_dte_remaining\": 112,\n        \"time_exit_date\": \"2026-08-28\",\n        \"time_exit_min_profit_pct\": 20\n      }\n    }\n  ]\n}"
  },
  {
    "path": "outputs/daily_reports/2026-05-07.md",
    "content": "# Adaptive Asymmetry-Scanner – 2026-05-07\n\n**Generiert:** 2026-05-07 15:51 UTC\n**Trade-Vorschläge:** 1\n\n---\n## 1. ALB – LONG_CALL\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.0738`  \n**IV-Rank:** 81.6  \n**Trade-Score:** 46/100 — WATCH 🟠  \n\n### Asymmetry-Analyse\n- **Impact:** 5/10\n- **Surprise:** 6/10\n- **Mismatch-Score:** 3.886\n- **Z-Score (48h):** 0.223\n- **48h-Move:** 0.0101\n- **EPS-Drift:** 0.6822 (massive)\n\n**Asymmetry-Reasoning:**  \n> Der Markt reagiert nur mit +1,0% trotz positiver Earnings-Überraschung, möglicherweise weil die EPS-Diskrepanz (GAAP vs. Non-GAAP) Skepsis erzeugt. Insider-Cluster-Käufe sind noch nicht vollständig in institutionellen Flows eingepreist. Falls die Guidance-Phase in 45 Tagen GAAP-Profitabilität bestätigt, könnte eine zweite Repricing-Welle einsetzen.\n\n**Katalysator:** Q2 2026 Guidance-Update in ~45 Tagen mit potenzieller Bestätigung von GAAP-Profitabilität und Lithiumpreis-Erholung  \n**Time-to-Materialization:** 4-8 Wochen  \n\n### Bear Case\n> GAAP-Verlust laut SEC EDGAR bei -$5.77 EPS signalisiert, dass die 'Blowout-Earnings' primär auf Non-GAAP-Adjustierungen beruhen — bei anhaltend niedrigen Lithiumpreisen und Überkapazitäten droht eine Enttäuschung in der nächsten Guidance-Phase.  \n**Severity:** 7/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 56.8% (10,000 Pfade)\n- **Target-Preis:** $237.00\n- **Aktueller Preis:** $209.58\n- **σ:** 0.0390\n- **α (Signal-Drift):** 0.00055\n\n### Options-Vorschlag\n- **Expiry:** 2026-12-18 (224 DTE)\n- **Strike:** $200.00\n- **Bid/Ask:** $44.50 / $47.85\n- **Impl. Vol.:** 67.3%\n- **Open Interest:** 264\n- **Bid-Ask-Ratio:** 7.00%\n\n### 🚪 Exit-Regeln\n- **Entry-Kosten:** $47.85 pro Kontrakt\n- **Take-Profit:** bei $71.78 (+50%) → Hälfte schliessen\n- **Full-Profit:** bei $95.70 (+100%) → Rest schliessen\n- **Stop-Loss:** bei $28.71 (-40%) → Gesamte Position liquidieren\n- **Time-Exit:** ab 2026-08-28 (112 DTE Rest) — schliessen wenn Gewinn < +20%\n\n---\n## Modell-Gewichte (aktuell)\n- Impact: `0.35`\n- Mismatch: `0.45`\n- EPS-Drift: `0.20`\n\n_Automatisch generiert durch Adaptive Asymmetry-Scanner v8.2_"
  },
  {
    "path": "outputs/daily_reports/2026-05-08.json",
    "content": "{\n  \"date\": \"2026-05-08\",\n  \"proposals\": [\n    {\n      \"ticker\": \"ABNB\",\n      \"strategy\": \"LONG_CALL\",\n      \"iv_rank\": 24.2,\n      \"iv_gate_applied\": false,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-07-17\",\n        \"strike\": 140.0,\n        \"bid\": 13.55,\n        \"ask\": 14.3,\n        \"open_interest\": 793,\n        \"implied_vol\": 0.45691461059570315,\n        \"spread_ratio\": 0.0524,\n        \"dte\": 69\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 0.504,\n        \"roi_net\": 0.3837,\n        \"spread_pct\": 0.0524,\n        \"vega_loss\": 0.0154,\n        \"delta\": 0.6181,\n        \"iv_drop_assumed\": 0.02,\n        \"cost_basis\": 14.3,\n        \"is_spread\": false,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.12,\n        \"dte\": 69\n      },\n      \"dte_tier\": \"Mid-Term\",\n      \"annualized_roi\": 4.573,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Mid-Term\",\n          \"dte\": 69,\n          \"option\": {\n            \"expiry\": \"2026-07-17\",\n            \"strike\": 140.0,\n            \"bid\": 13.55,\n            \"ask\": 14.3,\n            \"open_interest\": 793,\n            \"implied_vol\": 0.45691461059570315,\n            \"spread_ratio\": 0.0524,\n            \"dte\": 69\n          },\n          \"roi\": {\n            \"roi_gross\": 0.504,\n            \"roi_net\": 0.3837,\n            \"spread_pct\": 0.0524,\n            \"vega_loss\": 0.0154,\n            \"delta\": 0.6181,\n            \"iv_drop_assumed\": 0.02,\n            \"cost_basis\": 14.3,\n            \"is_spread\": false,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.12,\n            \"dte\": 69\n          },\n          \"annualized_roi\": 4.573,\n          \"strategy\": \"LONG_CALL\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"mismatch\": 3.726,\n        \"z_score\": 0.255,\n        \"sigma_30d\": 0.0205,\n        \"price_move_48h\": 0.0052,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.5792\n      },\n      \"simulation\": {\n        \"current_price\": 145.71,\n        \"target_price\": 157.37,\n        \"hit_rate\": 0.6902,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0203,\n        \"alpha\": 0.00221\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Der KI-Code-Anteil von 60% ist prim\\u00e4r ein Effizienz-Narrativ, das bereits weitgehend eingepreist sein d\\u00fcrfte. Der Travel-Sektor handelt ABNB mit einem signifikanten Premium gegen\\u00fcber Peers \\u2014 ein KV von ~25x auf Forward-EPS l\\u00e4sst wenig Raum f\\u00fcr Entt\\u00e4uschungen, und Margin-Expansion durch KI ist bereits Konsens-Erwartung, kein Alpha-generierendes \\u00dcberraschungselement mehr.\",\n          \"argument_2\": \"Der Reise-Sektor steht unter strukturellem Gegenwind durch Konsumvorsicht: Bei Fed Funds Rate von 3.64% und Kerninflation, die den Verbraucher belastet, zeigen Leisure-Travel-Daten zunehmend Normalisierungstendenzen post-COVID-Boom. Expedia Q1 Earnings Highlights k\\u00f6nnten auf Preisdruck und sinkende Buchungsintensit\\u00e4t hindeuten, was direkt auf ABNBs Pricing-Power dr\\u00fcckt.\",\n          \"argument_3\": \"Die EPS-Divergenz zwischen yfinance (5.78) und SEC EDGAR (4.05) ist signifikant \\u2014 eine Abweichung von ~43% zwischen den Quellen signalisiert entweder au\\u00dferordentliche Ertr\\u00e4ge oder Accounting-Qualit\\u00e4tsprobleme. Kein echtes Signal ohne gekl\\u00e4rte Datengrundlage. Der Insider-Cluster-Kauf k\\u00f6nnte zudem Pflicht-Akquisitionen im Rahmen von Kompensationspaketen sein, nicht organisches Conviction-Signal.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein MC durchgef\\u00fchrt \\u2014 0% Hit-Rate ist technisches Artefakt, keine statistisch valide Aussage. Ohne Simulationsdaten fehlt jede quantitative Grundlage zur Pfad-Wahrscheinlichkeit. Concern bleibt medium, da fehlende MC-Daten keine Optimismus-Kontrolle erm\\u00f6glichen.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt untersch\\u00e4tzt die operative Hebelwirkung, wenn KI-gest\\u00fctzte Entwicklung die R&D-Kostenbasis strukturell senkt und Produktiterationszyklen beschleunigt. Insider-Cluster-K\\u00e4ufe \\u00fcber 14 Tage bei f\\u00fcnf Beteiligten erh\\u00f6hen die Signalqualit\\u00e4t gegen\\u00fcber Einzel-Transaktionen erheblich. Die Kombination aus Margin-Expansion und Summer-Travel-Katalysator 2026 ist im aktuellen Konsens noch nicht vollst\\u00e4ndig modelliert.\",\n        \"catalyst\": \"Q2 2026 Earnings Release mit KI-bedingter Margin-Expansion und Summer-Travel-Buchungsvolumen als operative Best\\u00e4tigung\",\n        \"bear_case\": \"EPS-Datendivergenz zwischen Quellen untergr\\u00e4bt die Bewertungsgrundlage; bei bereits hohem Bewertungsmultiple gen\\u00fcgt eine moderate Guidance-Verfehlung f\\u00fcr einen scharfen Kursr\\u00fcckgang von 15-20%.\",\n        \"macro_assessment\": \"Neutrales Makro-Umfeld mit flacher Kurve (0.49%) bietet weder strukturellen R\\u00fcckenwind noch aktiven Gegenwind. Fed Funds bei 3.64% belastet Consumer Cyclicals moderat \\u2014 kein Veto, aber Upside-Potenzial ist ged\\u00e4mpft. Keine Rezessionssignale, aber auch kein expansiver Tailwind.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.49,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLY\",\n        \"rel_strength\": 0.0079\n      },\n      \"final_score\": 0.0794,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 0.5561,\n        \"annualized_roi\": 4.573,\n        \"dte\": 69\n      },\n      \"trade_score\": {\n        \"total\": 58,\n        \"grade\": \"WATCH \\ud83d\\udfe0\",\n        \"grade_short\": \"WATCH\",\n        \"components\": {\n          \"signal_quality\": 17.9,\n          \"options_quality\": 25.0,\n          \"risk_deductions\": 0.0,\n          \"context_bonus\": 15.0\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=5/Surprise=4), guter ROI (38%), g\\u00fcnstige IV (24%)\",\n        \"best_argument_for\": \"Der Markt untersch\\u00e4tzt die operative Hebelwirkung, wenn KI-gest\\u00fctzte Entwicklung die R&D-Kostenbasis strukturell senkt und Produktiterationszyklen beschleunigt. Insider-Cluster-K\\u00e4ufe \\u00fcber 14 Tage bei f\\u00fcnf Beteiligten erh\\u00f6hen die Signalqualit\\u00e4t gegen\\u00fcber Einzel-Transaktionen erheblich. Die Kombination aus Margin-Expansion und Summer-Travel-Katalysator 2026 ist im aktuellen Konsens noch nicht vollst\\u00e4ndig modelliert.\",\n        \"best_argument_against\": \"Der KI-Code-Anteil von 60% ist prim\\u00e4r ein Effizienz-Narrativ, das bereits weitgehend eingepreist sein d\\u00fcrfte. Der Travel-Sektor handelt ABNB mit einem signifikanten Premium gegen\\u00fcber Peers \\u2014 ein KV von ~25x auf Forward-EPS l\\u00e4sst wenig Raum f\\u00fcr Entt\\u00e4uschungen, und Margin-Expansion durch KI ist bereits Konsens-Erwartung, kein Alpha-generierendes \\u00dcberraschungselement mehr.\"\n      },\n      \"trade_rank\": 1,\n      \"exit_rules\": {\n        \"entry_cost\": 14.3,\n        \"take_profit_pct\": 50,\n        \"take_profit_price\": 21.45,\n        \"full_profit_pct\": 100,\n        \"full_profit_price\": 28.6,\n        \"stop_loss_pct\": -40,\n        \"stop_loss_price\": 8.58,\n        \"time_exit_dte_remaining\": 34,\n        \"time_exit_date\": \"2026-06-13\",\n        \"time_exit_min_profit_pct\": 20\n      }\n    }\n  ]\n}"
  },
  {
    "path": "outputs/daily_reports/2026-05-08.md",
    "content": "# Adaptive Asymmetry-Scanner – 2026-05-08\n\n**Generiert:** 2026-05-08 15:11 UTC\n**Trade-Vorschläge:** 1\n\n---\n## 1. ABNB – LONG_CALL\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.0794`  \n**IV-Rank:** 24.2  \n**Trade-Score:** 58/100 — WATCH 🟠  \n\n### Asymmetry-Analyse\n- **Impact:** 5/10\n- **Surprise:** 4/10\n- **Mismatch-Score:** 3.726\n- **Z-Score (48h):** 0.255\n- **48h-Move:** 0.0052\n- **EPS-Drift:** 0.0 (noise)\n\n**Asymmetry-Reasoning:**  \n> Der Markt unterschätzt die operative Hebelwirkung, wenn KI-gestützte Entwicklung die R&D-Kostenbasis strukturell senkt und Produktiterationszyklen beschleunigt. Insider-Cluster-Käufe über 14 Tage bei fünf Beteiligten erhöhen die Signalqualität gegenüber Einzel-Transaktionen erheblich. Die Kombination aus Margin-Expansion und Summer-Travel-Katalysator 2026 ist im aktuellen Konsens noch nicht vollständig modelliert.\n\n**Katalysator:** Q2 2026 Earnings Release mit KI-bedingter Margin-Expansion und Summer-Travel-Buchungsvolumen als operative Bestätigung  \n**Time-to-Materialization:** 2-3 Monate  \n\n### Bear Case\n> EPS-Datendivergenz zwischen Quellen untergräbt die Bewertungsgrundlage; bei bereits hohem Bewertungsmultiple genügt eine moderate Guidance-Verfehlung für einen scharfen Kursrückgang von 15-20%.  \n**Severity:** 6/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 69.0% (10,000 Pfade)\n- **Target-Preis:** $157.37\n- **Aktueller Preis:** $145.71\n- **σ:** 0.0203\n- **α (Signal-Drift):** 0.00221\n\n### Options-Vorschlag\n- **Expiry:** 2026-07-17 (69 DTE)\n- **Strike:** $140.00\n- **Bid/Ask:** $13.55 / $14.30\n- **Impl. Vol.:** 45.7%\n- **Open Interest:** 793\n- **Bid-Ask-Ratio:** 5.24%\n\n### 🚪 Exit-Regeln\n- **Entry-Kosten:** $14.30 pro Kontrakt\n- **Take-Profit:** bei $21.45 (+50%) → Hälfte schliessen\n- **Full-Profit:** bei $28.60 (+100%) → Rest schliessen\n- **Stop-Loss:** bei $8.58 (-40%) → Gesamte Position liquidieren\n- **Time-Exit:** ab 2026-06-13 (34 DTE Rest) — schliessen wenn Gewinn < +20%\n\n---\n## Modell-Gewichte (aktuell)\n- Impact: `0.35`\n- Mismatch: `0.45`\n- EPS-Drift: `0.20`\n\n_Automatisch generiert durch Adaptive Asymmetry-Scanner v8.2_"
  },
  {
    "path": "outputs/daily_reports/2026-05-11.json",
    "content": "{\n  \"date\": \"2026-05-11\",\n  \"proposals\": [\n    {\n      \"ticker\": \"AVGO\",\n      \"strategy\": \"LONG_CALL\",\n      \"iv_rank\": 31.1,\n      \"iv_gate_applied\": false,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-05-29\",\n        \"strike\": 420.0,\n        \"bid\": 24.35,\n        \"ask\": 25.45,\n        \"open_interest\": 1406,\n        \"implied_vol\": 0.5131274273681641,\n        \"spread_ratio\": 0.0432,\n        \"dte\": 17\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 0.9886,\n        \"roi_net\": 0.8661,\n        \"spread_pct\": 0.0432,\n        \"vega_loss\": 0.036,\n        \"delta\": 0.6049,\n        \"iv_drop_assumed\": 0.05,\n        \"cost_basis\": 25.45,\n        \"is_spread\": false,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.15,\n        \"dte\": 17\n      },\n      \"dte_tier\": \"Short-Term\",\n      \"annualized_roi\": 656343.655,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Short-Term\",\n          \"dte\": 17,\n          \"option\": {\n            \"expiry\": \"2026-05-29\",\n            \"strike\": 420.0,\n            \"bid\": 24.35,\n            \"ask\": 25.45,\n            \"open_interest\": 1406,\n            \"implied_vol\": 0.5131274273681641,\n            \"spread_ratio\": 0.0432,\n            \"dte\": 17\n          },\n          \"roi\": {\n            \"roi_gross\": 0.9886,\n            \"roi_net\": 0.8661,\n            \"spread_pct\": 0.0432,\n            \"vega_loss\": 0.036,\n            \"delta\": 0.6049,\n            \"iv_drop_assumed\": 0.05,\n            \"cost_basis\": 25.45,\n            \"is_spread\": false,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.15,\n            \"dte\": 17\n          },\n          \"annualized_roi\": 656343.655,\n          \"strategy\": \"LONG_CALL\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 3.987,\n        \"z_score\": 0.403,\n        \"sigma_30d\": 0.0266,\n        \"price_move_48h\": 0.0107,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.6444\n      },\n      \"simulation\": {\n        \"current_price\": 429.92,\n        \"target_price\": 471.51,\n        \"hit_rate\": 0.6704,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0288,\n        \"alpha\": 0.00261\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Der Headline 'Parabolic Semiconductor Rally Is Pricing In 2028 Already' ist ein massives Warnsignal: AVGO bei $429.92 handelt m\\u00f6glicherweise bereits weit \\u00fcber fairen Wert f\\u00fcr 2026-Fundamentaldaten. Wenn der Markt 2028-Gewinne diskontiert, ist das Aufw\\u00e4rtspotenzial strukturell begrenzt und Entt\\u00e4uschungsrisiko bei jedem Katalysator erheblich.\",\n          \"argument_2\": \"Die krasse EPS-Diskrepanz zwischen yfinance ($18.12) und SEC EDGAR ($5.12) deutet auf massive Goodwill-Amortisierungen, Akquisitionseffekte oder Non-GAAP-Adjustierungen hin. Ein KGV auf GAAP-Basis von ~84x bei einem Makroumfeld mit 4.32% 10Y-Rendite ist fundamental schwer zu rechtfertigen \\u2014 jede Zinserwartungsverschiebung nach oben dr\\u00fcckt den fairen Wert signifikant.\",\n          \"argument_3\": \"Der 'Nvidia caution into earnings'-Kontext ist ein zweischneidiges Schwert: Wenn Nvidia entt\\u00e4uscht oder Guidance schw\\u00e4cht, wird AVGO als AI-Proxy mit abgestraft \\u2014 unabh\\u00e4ngig von eigenen Fundamentaldaten. Der AI-Surge-Narrative ist ein Sentiment-getriebenes Signal, kein strukturelles, und Cluster-Insider-K\\u00e4ufe k\\u00f6nnen auch als Bodenbildung nach einem R\\u00fccksetzer interpretiert werden, nicht zwingend als bullishes Momentum-Signal.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein MC durchgef\\u00fchrt \\u2014 0% Hit-Rate bedeutet keine Datenbasis, nicht 'keine Chance'. Ohne MC-Statistik fehlt quantitative Absicherung der Upside-Wahrscheinlichkeit. Bei einem Titel mit ~35-45% impliziter Volatilit\\u00e4t (Semiconductor-Sektor) w\\u00e4ren realistische 30d-Hit-Rates auf ein definiertes Kursziel zwischen 45-65% zu erwarten. Die fehlenden Daten erh\\u00f6hen Unsicherheit erheblich.\",\n          \"concern_level\": \"high\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 7,\n        \"time_to_materialization\": \"4-8 Wochen\",\n        \"asymmetry_reasoning\": \"Der Markt fokussiert auf Nvidia-Risiken und \\u00fcbersieht AVGOs eigene Earnings-Katalysatoren sowie Insider-Cluster-Signale. Die Diskrepanz zwischen GAAP und Non-GAAP EPS verschleiert die operative St\\u00e4rke im AI-Networking-Segment. Sieben Insider-K\\u00e4ufe in 14 Tagen sind ein statistisch signifikantes Signal, das kurzfristig oft zu Underreaction f\\u00fchrt.\",\n        \"catalyst\": \"AVGO n\\u00e4chster Earnings-Report (voraussichtlich Q2 2026) mit AI-Networking-Segment-Guidance als prim\\u00e4rer Katalysator; sekund\\u00e4r Nvidia-Earnings-Reaktion als Proxy-Sentiment-Treiber\",\n        \"bear_case\": \"Parabolic AI-Valuations bereits 2028-Gewinne einpreisend \\u2014 jede Guidance-Entt\\u00e4uschung oder Nvidia-Schw\\u00e4che l\\u00f6st multiple Compression aus, GAAP-KGV ~84x bietet kein Puffer\",\n        \"macro_assessment\": \"Neutrales Makroumfeld (Kurve +48bp, Fed Funds 3.64%) ist weder Gegenwind noch R\\u00fcckenwind. Die 10Y-Rendite bei 4.32% belastet hochmultiple Wachstumstitel moderat \\u2014 bei einem KGV-Expansion-Trade ist dies ein strukturelles Hindernis, aber kein Deal-Breaker. Solange keine Rezessionssignale, bleibt der Technologie-Sektor grunds\\u00e4tzlich supportiert.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.48,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLK\",\n        \"rel_strength\": 0.0319\n      },\n      \"final_score\": 0.0791,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 5.0947,\n        \"annualized_roi\": null,\n        \"dte\": 17\n      },\n      \"trade_score\": {\n        \"total\": 62,\n        \"grade\": \"BUY \\ud83d\\udfe1\",\n        \"grade_short\": \"BUY\",\n        \"components\": {\n          \"signal_quality\": 21.9,\n          \"options_quality\": 30.0,\n          \"risk_deductions\": -10.0,\n          \"context_bonus\": 20.0\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=6/Surprise=5), guter ROI (87%), g\\u00fcnstige IV (31%) | Risiken: hohes Bear-Risiko (7/10)\",\n        \"best_argument_for\": \"Der Markt fokussiert auf Nvidia-Risiken und \\u00fcbersieht AVGOs eigene Earnings-Katalysatoren sowie Insider-Cluster-Signale. Die Diskrepanz zwischen GAAP und Non-GAAP EPS verschleiert die operative St\\u00e4rke im AI-Networking-Segment. Sieben Insider-K\\u00e4ufe in 14 Tagen sind ein statistisch signifikantes Signal, das kurzfristig oft zu Underreaction f\\u00fchrt.\",\n        \"best_argument_against\": \"Der Headline 'Parabolic Semiconductor Rally Is Pricing In 2028 Already' ist ein massives Warnsignal: AVGO bei $429.92 handelt m\\u00f6glicherweise bereits weit \\u00fcber fairen Wert f\\u00fcr 2026-Fundamentaldaten. Wenn der Markt 2028-Gewinne diskontiert, ist das Aufw\\u00e4rtspotenzial strukturell begrenzt und Entt\\u00e4uschungsrisiko bei jedem Katalysator erheblich.\"\n      },\n      \"trade_rank\": 1,\n      \"exit_rules\": {\n        \"entry_cost\": 25.45,\n        \"take_profit_pct\": 50,\n        \"take_profit_price\": 38.17,\n        \"full_profit_pct\": 100,\n        \"full_profit_price\": 50.9,\n        \"stop_loss_pct\": -40,\n        \"stop_loss_price\": 15.27,\n        \"time_exit_dte_remaining\": 8,\n        \"time_exit_date\": \"2026-05-21\",\n        \"time_exit_min_profit_pct\": 20\n      }\n    }\n  ]\n}"
  },
  {
    "path": "outputs/daily_reports/2026-05-11.md",
    "content": "# Adaptive Asymmetry-Scanner – 2026-05-11\n\n**Generiert:** 2026-05-11 16:19 UTC\n**Trade-Vorschläge:** 1\n\n---\n## 1. AVGO – LONG_CALL\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.0791`  \n**IV-Rank:** 31.1  \n**Trade-Score:** 62/100 — BUY 🟡  \n\n### Asymmetry-Analyse\n- **Impact:** 6/10\n- **Surprise:** 5/10\n- **Mismatch-Score:** 3.987\n- **Z-Score (48h):** 0.403\n- **48h-Move:** 0.0107\n- **EPS-Drift:** 0.0 (noise)\n\n**Asymmetry-Reasoning:**  \n> Der Markt fokussiert auf Nvidia-Risiken und übersieht AVGOs eigene Earnings-Katalysatoren sowie Insider-Cluster-Signale. Die Diskrepanz zwischen GAAP und Non-GAAP EPS verschleiert die operative Stärke im AI-Networking-Segment. Sieben Insider-Käufe in 14 Tagen sind ein statistisch signifikantes Signal, das kurzfristig oft zu Underreaction führt.\n\n**Katalysator:** AVGO nächster Earnings-Report (voraussichtlich Q2 2026) mit AI-Networking-Segment-Guidance als primärer Katalysator; sekundär Nvidia-Earnings-Reaktion als Proxy-Sentiment-Treiber  \n**Time-to-Materialization:** 4-8 Wochen  \n\n### Bear Case\n> Parabolic AI-Valuations bereits 2028-Gewinne einpreisend — jede Guidance-Enttäuschung oder Nvidia-Schwäche löst multiple Compression aus, GAAP-KGV ~84x bietet kein Puffer  \n**Severity:** 7/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 67.0% (10,000 Pfade)\n- **Target-Preis:** $471.51\n- **Aktueller Preis:** $429.92\n- **σ:** 0.0288\n- **α (Signal-Drift):** 0.00261\n\n### Options-Vorschlag\n- **Expiry:** 2026-05-29 (17 DTE)\n- **Strike:** $420.00\n- **Bid/Ask:** $24.35 / $25.45\n- **Impl. Vol.:** 51.3%\n- **Open Interest:** 1,406\n- **Bid-Ask-Ratio:** 4.32%\n\n### 🚪 Exit-Regeln\n- **Entry-Kosten:** $25.45 pro Kontrakt\n- **Take-Profit:** bei $38.17 (+50%) → Hälfte schliessen\n- **Full-Profit:** bei $50.90 (+100%) → Rest schliessen\n- **Stop-Loss:** bei $15.27 (-40%) → Gesamte Position liquidieren\n- **Time-Exit:** ab 2026-05-21 (8 DTE Rest) — schliessen wenn Gewinn < +20%\n\n---\n## Modell-Gewichte (aktuell)\n- Impact: `0.35`\n- Mismatch: `0.45`\n- EPS-Drift: `0.20`\n\n_Automatisch generiert durch Adaptive Asymmetry-Scanner v8.2_"
  },
  {
    "path": "outputs/daily_reports/2026-05-12.json",
    "content": "{\n  \"date\": \"2026-05-12\",\n  \"proposals\": [\n    {\n      \"ticker\": \"GOOG\",\n      \"strategy\": \"LONG_CALL\",\n      \"iv_rank\": 82.7,\n      \"iv_gate_applied\": false,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-07-17\",\n        \"strike\": 400.0,\n        \"bid\": 13.5,\n        \"ask\": 13.7,\n        \"open_interest\": 4373,\n        \"implied_vol\": 0.3355779333496094,\n        \"spread_ratio\": 0.0146,\n        \"dte\": 65\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 0.867,\n        \"roi_net\": 0.6113,\n        \"spread_pct\": 0.0146,\n        \"vega_loss\": 0.2265,\n        \"delta\": 0.3901,\n        \"iv_drop_assumed\": 0.15,\n        \"cost_basis\": 13.7,\n        \"is_spread\": false,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.12,\n        \"dte\": 65\n      },\n      \"dte_tier\": \"Mid-Term\",\n      \"annualized_roi\": 13.5672,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Short-Term\",\n          \"dte\": 16,\n          \"option\": {\n            \"expiry\": \"2026-05-29\",\n            \"strike\": 390.0,\n            \"bid\": 7.0,\n            \"ask\": 7.3,\n            \"open_interest\": 2441,\n            \"implied_vol\": 0.3424748370361328,\n            \"spread_ratio\": 0.0411,\n            \"dte\": 16\n          },\n          \"roi\": {\n            \"roi_gross\": 1.5903,\n            \"roi_net\": 1.1518,\n            \"spread_pct\": 0.0411,\n            \"vega_loss\": 0.3563,\n            \"delta\": 0.3812,\n            \"iv_drop_assumed\": 0.25,\n            \"cost_basis\": 7.3,\n            \"is_spread\": false,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.15,\n            \"dte\": 16\n          },\n          \"annualized_roi\": 39087995.9955,\n          \"strategy\": \"LONG_CALL\"\n        },\n        {\n          \"tier\": \"Mid-Term\",\n          \"dte\": 65,\n          \"option\": {\n            \"expiry\": \"2026-07-17\",\n            \"strike\": 400.0,\n            \"bid\": 13.5,\n            \"ask\": 13.7,\n            \"open_interest\": 4373,\n            \"implied_vol\": 0.3355779333496094,\n            \"spread_ratio\": 0.0146,\n            \"dte\": 65\n          },\n          \"roi\": {\n            \"roi_gross\": 0.867,\n            \"roi_net\": 0.6113,\n            \"spread_pct\": 0.0146,\n            \"vega_loss\": 0.2265,\n            \"delta\": 0.3901,\n            \"iv_drop_assumed\": 0.15,\n            \"cost_basis\": 13.7,\n            \"is_spread\": false,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.12,\n            \"dte\": 65\n          },\n          \"annualized_roi\": 13.5672,\n          \"strategy\": \"LONG_CALL\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"mismatch\": 0.516,\n        \"z_score\": 0.897,\n        \"sigma_30d\": 0.0241,\n        \"price_move_48h\": 0.0216,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"weak\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.6302\n      },\n      \"simulation\": {\n        \"current_price\": 380.66,\n        \"target_price\": 411.11,\n        \"hit_rate\": 0.7384,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0191,\n        \"alpha\": 0.00292\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Die Isomorphic-Finanzierung von $2.1B ist ein Moonshot-Investment in einem hochspekulativen Bereich. AI-Drug-Discovery hat bislang kaum kommerziell skalierbare Ergebnisse geliefert, und der Zeitrahmen bis zur Monetarisierung liegt weit jenseits eines 2-6-Monats-Optionshorizonts. Der Markt hat dieses Kapital bereits teilweise eingepreist \\u2014 der Kurs steht bereits nahe 52-Wochen-Hoch, was das Upside-Potential f\\u00fcr Optionsk\\u00e4ufer drastisch einschr\\u00e4nkt.\",\n          \"argument_2\": \"GOOG ist in den letzten 48 Stunden bereits um -2,2% gefallen, obwohl die Isomorphic-Meldung positiv war. Dies deutet darauf hin, dass der Markt den Katalysator bereits absorbiert hat oder ihn negativ interpretiert (Kapitalallokation weg vom Core-Business). Ein 52-Wochen-Hoch kombiniert mit negativer Kursreaktion auf positive News ist ein klassisches 'Sell-the-News'-Muster und warnt vor weiterem Abw\\u00e4rtsdruck.\",\n          \"argument_3\": \"Der Makro-Kontext ist unklar (FRED nicht erreichbar), was strukturelle Risiken wie ein rezessives Umfeld oder restriktive Zinspolitik nicht ausschlie\\u00dft. Communication Services als Sektor ist besonders zinssensitiv, und Alphabet ist eines der drei Unternehmen, die laut News 70% der S&P-500-Wachstumserwartungen 2026 tragen \\u2014 ein hochkonzentriertes Exposure, das bei Makro-Entt\\u00e4uschung zu \\u00fcberproportionalen Kursverlusten f\\u00fchren kann.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein MC wurde durchgef\\u00fchrt, 0% Hit-Rate ist daher nicht aussagekr\\u00e4ftig und kein statistisches Signal. Die fehlende Simulation ist ein Datenl\\u00fccken-Problem, kein inhaltliches. Bei historischer GOOG-Volatilit\\u00e4t (annualisiert ca. 25-30%) w\\u00e4re eine 30-Tage-Aufw\\u00e4rtsbewegung mit konservativer Target-Definition realistisch bei 40-55% Hit-Rate \\u2014 der Abwesenheit von MC-Daten ist mit erh\\u00f6hter Skepsis zu begegnen.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Isomorphic-Deal wird prim\\u00e4r als Kostenfaktor wahrgenommen, nicht als Plattformstrategie, die Googles AI-Kompetenz in Life Sciences verankert. Insider-Cluster-K\\u00e4ufe unmittelbar nach der Meldung signalisieren, dass das Management den Kursr\\u00fcckgang als ungerechtfertigte \\u00dcberreaktion einsch\\u00e4tzt. Der Markt fokussiert auf kurzfristige Kapitalallokation, ignoriert aber den strukturellen Optionswert eines Portfolios aus AI-Moonshots.\",\n        \"catalyst\": \"Q2 2026 Earnings (voraussichtlich Juli 2026) mit Guidance zu Isomorphic-Integration und Cloud-AI-Umsatzwachstum als Validierungspunkt f\\u00fcr die strukturelle AI-Plattformthese.\",\n        \"bear_case\": \"GOOG handelt nahe 52-Wochen-Hoch mit negativer Kursreaktion auf positive Nachrichten \\u2014 klassisches Ersch\\u00f6pfungsmuster. Jede Makro-Verschlechterung oder Entt\\u00e4uschung bei Core-Werbeums\\u00e4tzen w\\u00fcrde den Isomorphic-Optionswert sofort diskontieren.\",\n        \"macro_assessment\": \"Makro-Daten nicht verf\\u00fcgbar (FRED offline). Ohne Zinsdaten und Kurvenstruktur ist eine pr\\u00e4zise Einsch\\u00e4tzung nicht m\\u00f6glich. Vorsicht geboten: Communication Services sind zinssensitiv, und GOOGs Stellung als S&P-Wachstumstreiber erh\\u00f6ht das systemische Risiko bei einem Makro-Schock. Neutral-bis-skeptisch.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"recessionary\",\n        \"macro_context\": {\n          \"yield_curve\": null,\n          \"regime\": \"recessionary\"\n        },\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLC\",\n        \"rel_strength\": 0.2737\n      },\n      \"final_score\": 0.1726,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 0.9405,\n        \"annualized_roi\": null,\n        \"dte\": 65\n      },\n      \"trade_score\": {\n        \"total\": 61,\n        \"grade\": \"BUY \\ud83d\\udfe1\",\n        \"grade_short\": \"BUY\",\n        \"components\": {\n          \"signal_quality\": 17.9,\n          \"options_quality\": 30.0,\n          \"risk_deductions\": -2.0,\n          \"context_bonus\": 15.0\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=5/Surprise=4), guter ROI (61%), positive Sektor-Relative-St\\u00e4rke\",\n        \"best_argument_for\": \"Der Isomorphic-Deal wird prim\\u00e4r als Kostenfaktor wahrgenommen, nicht als Plattformstrategie, die Googles AI-Kompetenz in Life Sciences verankert. Insider-Cluster-K\\u00e4ufe unmittelbar nach der Meldung signalisieren, dass das Management den Kursr\\u00fcckgang als ungerechtfertigte \\u00dcberreaktion einsch\\u00e4tzt. Der Markt fokussiert auf kurzfristige Kapitalallokation, ignoriert aber den strukturellen Optionswert eines Portfolios aus AI-Moonshots.\",\n        \"best_argument_against\": \"Die Isomorphic-Finanzierung von $2.1B ist ein Moonshot-Investment in einem hochspekulativen Bereich. AI-Drug-Discovery hat bislang kaum kommerziell skalierbare Ergebnisse geliefert, und der Zeitrahmen bis zur Monetarisierung liegt weit jenseits eines 2-6-Monats-Optionshorizonts. Der Markt hat dieses Kapital bereits teilweise eingepreist \\u2014 der Kurs steht bereits nahe 52-Wochen-Hoch, was das Upside-Potential f\\u00fcr Optionsk\\u00e4ufer drastisch einschr\\u00e4nkt.\"\n      },\n      \"trade_rank\": 1,\n      \"exit_rules\": {\n        \"entry_cost\": 13.7,\n        \"take_profit_pct\": 50,\n        \"take_profit_price\": 20.55,\n        \"full_profit_pct\": 100,\n        \"full_profit_price\": 27.4,\n        \"stop_loss_pct\": -40,\n        \"stop_loss_price\": 8.22,\n        \"time_exit_dte_remaining\": 32,\n        \"time_exit_date\": \"2026-06-15\",\n        \"time_exit_min_profit_pct\": 20\n      }\n    },\n    {\n      \"ticker\": \"BMY\",\n      \"strategy\": \"LONG_CALL\",\n      \"iv_rank\": 55.8,\n      \"iv_gate_applied\": false,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-07-17\",\n        \"strike\": 57.5,\n        \"bid\": 2.19,\n        \"ask\": 2.28,\n        \"open_interest\": 920,\n        \"implied_vol\": 0.26099371826171874,\n        \"spread_ratio\": 0.0395,\n        \"dte\": 65\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 0.9743,\n        \"roi_net\": 0.8186,\n        \"spread_pct\": 0.0395,\n        \"vega_loss\": 0.0768,\n        \"delta\": 0.4872,\n        \"iv_drop_assumed\": 0.07,\n        \"cost_basis\": 2.28,\n        \"is_spread\": false,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.12,\n        \"dte\": 65\n      },\n      \"dte_tier\": \"Mid-Term\",\n      \"annualized_roi\": 27.7425,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Mid-Term\",\n          \"dte\": 65,\n          \"option\": {\n            \"expiry\": \"2026-07-17\",\n            \"strike\": 57.5,\n            \"bid\": 2.19,\n            \"ask\": 2.28,\n            \"open_interest\": 920,\n            \"implied_vol\": 0.26099371826171874,\n            \"spread_ratio\": 0.0395,\n            \"dte\": 65\n          },\n          \"roi\": {\n            \"roi_gross\": 0.9743,\n            \"roi_net\": 0.8186,\n            \"spread_pct\": 0.0395,\n            \"vega_loss\": 0.0768,\n            \"delta\": 0.4872,\n            \"iv_drop_assumed\": 0.07,\n            \"cost_basis\": 2.28,\n            \"is_spread\": false,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.12,\n            \"dte\": 65\n          },\n          \"annualized_roi\": 27.7425,\n          \"strategy\": \"LONG_CALL\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 3.17,\n        \"z_score\": 0.566,\n        \"sigma_30d\": 0.0182,\n        \"price_move_48h\": 0.0103,\n        \"eps_drift\": 0.0084,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.5554\n      },\n      \"simulation\": {\n        \"current_price\": 56.95,\n        \"target_price\": 61.51,\n        \"hit_rate\": 0.6598,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0171,\n        \"alpha\": 0.00208\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Der $15.2B Hengrui-Deal ist gr\\u00f6\\u00dftenteils milestone-basiert und kein sofortiger Cash-Zufluss. Der Gro\\u00dfteil der Zahlungen h\\u00e4ngt von klinischen Entwicklungserfolgen ab, die \\u00fcber 5-10 Jahre verteilt sind. Early-Stage-Pipeline bedeutet hohes Scheitern-Risiko (historisch >90% Ausfallrate in Phase I/II), und der Markt k\\u00f6nnte die tats\\u00e4chliche Wahrscheinlichkeitsgewichtung bereits korrekt vorgenommen haben.\",\n          \"argument_2\": \"BMY tr\\u00e4gt eine erhebliche Schuldenlast aus fr\\u00fcheren Akquisitionen (Celgene, MyoKardia) und steht vor patent-bedingten Umsatzausf\\u00e4llen bei Schl\\u00fcsselprodukten wie Revlimid und Opdivo in den kommenden Jahren 2026-2028. Der Hengrui-Deal adressiert dieses strukturelle Problem kurzfristig nicht, und der operative Cash-Flow-Druck k\\u00f6nnte dominanter sein als die Pipeline-Neuigkeit.\",\n          \"argument_3\": \"Die EPS-Abweichung zwischen yfinance ($6.15) und SEC EDGAR ($3.54) betr\\u00e4gt faktisch ~73% (nicht 0.8% wie angegeben) \\u2014 ein massives Warnsignal f\\u00fcr Datenqualit\\u00e4t. Dieser Widerspruch k\\u00f6nnte auf au\\u00dferordentliche Posten, Goodwill-Abschreibungen oder adjustierte vs. GAAP-Zahlen hindeuten und macht eine fundamentale Bewertung erheblich unsicherer.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Hit-Rate 0% ist hier schlicht das Resultat eines nicht durchgef\\u00fchrten Monte-Carlo-Laufs (0 Pfade), nicht eines negativen Signals. Die Zahl ist bedeutungslos und kann weder als bullish noch bearish interpretiert werden. F\\u00fcr BMY mit typischer Healthcare-Volatilit\\u00e4t (IV ~25-35%) w\\u00e4ren bei einem 30-Tage-Horizont realistische Hit-Raten je nach Strike-Wahl zwischen 40-70% zu erwarten.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt fokussiert sich auf kurzfristige Patent-Cliff-Risiken und Schuldenlasten, w\\u00e4hrend der strukturelle Pipeline-Aufbau durch Hengrui erst in 12-24 Monaten in Analystenmodellen auftaucht. Sechs Insider-K\\u00e4ufe im Cluster deuten auf informierten Optimismus hin, der \\u00fcber den \\u00f6ffentlichen Deal hinausgeht. Die Kombination aus chinesischer Produktionsskalierung und BMS-Vertrieb schafft eine Asymmetrie, die kurzfristige Modelle strukturell untersch\\u00e4tzen.\",\n        \"catalyst\": \"Erste klinische Datenpunkte zu Hengrui-Partnerschafts-Assets in H2 2026 sowie potenziell positive Phase-III-Readouts bei bestehenden BMY-Pipeline-Kandidaten (z.B. milvexian), die das Repricing beschleunigen k\\u00f6nnten.\",\n        \"bear_case\": \"Patent-Erosion bei Revlimid/Opdivo trifft den freien Cashflow 2026-2028 strukturell, und der Hengrui-Deal liefert keine kurzfristige Kompensation \\u2014 milestone-abh\\u00e4ngige Zahlungsstruktur bedeutet, dass der $15.2B-Headline realistisch mit 10-15% Wahrscheinlichkeitsgewichtung bewertet werden muss.\",\n        \"macro_assessment\": \"FRED-Daten nicht verf\\u00fcgbar, was die Zinseinsch\\u00e4tzung erschwert. Healthcare gilt in unsicheren Makro-Umfeldern als defensiver Sektor, was BMY bei einer m\\u00f6glichen wirtschaftlichen Verlangsamung 2026 relative St\\u00e4rke verleihen k\\u00f6nnte. Allerdings sind h\\u00f6here Kapitalkosten f\\u00fcr pharmazeutische M&A und Lizenz-Deals generell belastend \\u2014 die Hengrui-Dealstruktur k\\u00f6nnte unter h\\u00f6herem Zinsdruck weniger attraktiv sein als bei Niedrigzins.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"recessionary\",\n        \"macro_context\": {\n          \"yield_curve\": null,\n          \"regime\": \"recessionary\"\n        },\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLV\",\n        \"rel_strength\": -0.0088\n      },\n      \"final_score\": 0.0806,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 1.2594,\n        \"annualized_roi\": null,\n        \"dte\": 65\n      },\n      \"trade_score\": {\n        \"total\": 55,\n        \"grade\": \"WATCH \\ud83d\\udfe0\",\n        \"grade_short\": \"WATCH\",\n        \"components\": {\n          \"signal_quality\": 21.9,\n          \"options_quality\": 28.0,\n          \"risk_deductions\": 0.0,\n          \"context_bonus\": 5.0\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=6/Surprise=5), guter ROI (82%)\",\n        \"best_argument_for\": \"Der Markt fokussiert sich auf kurzfristige Patent-Cliff-Risiken und Schuldenlasten, w\\u00e4hrend der strukturelle Pipeline-Aufbau durch Hengrui erst in 12-24 Monaten in Analystenmodellen auftaucht. Sechs Insider-K\\u00e4ufe im Cluster deuten auf informierten Optimismus hin, der \\u00fcber den \\u00f6ffentlichen Deal hinausgeht. Die Kombination aus chinesischer Produktionsskalierung und BMS-Vertrieb schafft eine Asymmetrie, die kurzfristige Modelle strukturell untersch\\u00e4tzen.\",\n        \"best_argument_against\": \"Der $15.2B Hengrui-Deal ist gr\\u00f6\\u00dftenteils milestone-basiert und kein sofortiger Cash-Zufluss. Der Gro\\u00dfteil der Zahlungen h\\u00e4ngt von klinischen Entwicklungserfolgen ab, die \\u00fcber 5-10 Jahre verteilt sind. Early-Stage-Pipeline bedeutet hohes Scheitern-Risiko (historisch >90% Ausfallrate in Phase I/II), und der Markt k\\u00f6nnte die tats\\u00e4chliche Wahrscheinlichkeitsgewichtung bereits korrekt vorgenommen haben.\"\n      },\n      \"trade_rank\": 3,\n      \"exit_rules\": {\n        \"entry_cost\": 2.28,\n        \"take_profit_pct\": 50,\n        \"take_profit_price\": 3.42,\n        \"full_profit_pct\": 100,\n        \"full_profit_price\": 4.56,\n        \"stop_loss_pct\": -40,\n        \"stop_loss_price\": 1.37,\n        \"time_exit_dte_remaining\": 32,\n        \"time_exit_date\": \"2026-06-15\",\n        \"time_exit_min_profit_pct\": 20\n      }\n    },\n    {\n      \"ticker\": \"CVX\",\n      \"strategy\": \"LONG_CALL\",\n      \"iv_rank\": 56.4,\n      \"iv_gate_applied\": false,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-05-29\",\n        \"strike\": 190.0,\n        \"bid\": 2.35,\n        \"ask\": 2.54,\n        \"open_interest\": 989,\n        \"implied_vol\": 0.2386550744628906,\n        \"spread_ratio\": 0.0748,\n        \"dte\": 16\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 2.16,\n        \"roi_net\": 1.8445,\n        \"spread_pct\": 0.0748,\n        \"vega_loss\": 0.1659,\n        \"delta\": 0.3675,\n        \"iv_drop_assumed\": 0.12,\n        \"cost_basis\": 2.54,\n        \"is_spread\": false,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.15,\n        \"dte\": 16\n      },\n      \"dte_tier\": \"Short-Term\",\n      \"annualized_roi\": 22751522428.2279,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Short-Term\",\n          \"dte\": 16,\n          \"option\": {\n            \"expiry\": \"2026-05-29\",\n            \"strike\": 190.0,\n            \"bid\": 2.35,\n            \"ask\": 2.54,\n            \"open_interest\": 989,\n            \"implied_vol\": 0.2386550744628906,\n            \"spread_ratio\": 0.0748,\n            \"dte\": 16\n          },\n          \"roi\": {\n            \"roi_gross\": 2.16,\n            \"roi_net\": 1.8445,\n            \"spread_pct\": 0.0748,\n            \"vega_loss\": 0.1659,\n            \"delta\": 0.3675,\n            \"iv_drop_assumed\": 0.12,\n            \"cost_basis\": 2.54,\n            \"is_spread\": false,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.15,\n            \"dte\": 16\n          },\n          \"annualized_roi\": 22751522428.2279,\n          \"strategy\": \"LONG_CALL\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"mismatch\": 1.513,\n        \"z_score\": 0.697,\n        \"sigma_30d\": 0.0176,\n        \"price_move_48h\": 0.0123,\n        \"eps_drift\": 0.0157,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"weak\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.51\n      },\n      \"simulation\": {\n        \"current_price\": 186.58,\n        \"target_price\": 201.51,\n        \"hit_rate\": 0.6128,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0153,\n        \"alpha\": 0.00232\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Der \\u00d6lpreis ist bereits durch Iran-Spannungen gestiegen, was bedeutet, dass ein erheblicher Teil des geopolitischen Risikoaufschlags bereits eingepreist sein d\\u00fcrfte. CVX notiert bei $186.58 nach einem +1.2% Move in 48h \\u2014 der Markt hat das Katalysator-Szenario bereits teilweise absorbiert. Ein De-Eskalationssignal (Verhandlungen, Sanktionslockerung) k\\u00f6nnte den \\u00d6lpreis schnell 5-8% korrigieren lassen und CVX \\u00fcberproportional belasten.\",\n          \"argument_2\": \"Die EPS-Abweichung zwischen yfinance ($12.09) und SEC EDGAR ($5.84) betr\\u00e4gt faktisch \\u00fcber 100% \\u2014 nicht die gemeldeten 1.6% \\u2014 was auf ernsthafte Datenqualit\\u00e4tsprobleme hinweist. Eine derartige Divergenz deutet auf unterschiedliche Berechnungsgrundlagen (z.B. verw\\u00e4ssertes vs. adjustiertes EPS) hin und macht die Bewertungsgrundlage f\\u00fcr den Trade \\u00e4u\\u00dferst fragw\\u00fcrdig. Trades auf Basis korrumpierter Fundamentaldaten tragen ein inh\\u00e4rentes Modellrisiko.\",\n          \"argument_3\": \"Der Energiesektor leidet 2026 unter strukturellem Gegenwind durch beschleunigte Energiewende-Politik und m\\u00f6gliche Nachfrageschw\\u00e4che bei globaler Wachstumsverlangsamung. Gleichzeitig deuten Inflations\\u00e4ngste laut News auf ein Zinsumfeld hin, das Risk-Assets allgemein unter Druck setzt \\u2014 steigende Kapitalkosten belasten kapitalintensive Energieunternehmen wie CVX strukturell. Die 6 Insider-K\\u00e4ufe k\\u00f6nnten auch opportunistisches Dip-Buying nach einem bereits schwachen Q1 2026 sein, kein Forward-Signal.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Der Quick MC wurde nicht durchgef\\u00fchrt (0 Pfade), was bedeutet keinerlei statistische Validierung des Trades existiert. Bei einer fehlenden Hit-Rate-Berechnung ist das Concern-Level automatisch hoch, da keine probabilistische Absicherung der Bullish-These vorliegt. Die Abwesenheit von MC-Daten ist kein neutrales Signal \\u2014 sie ist ein Warnsignal f\\u00fcr Datenqualit\\u00e4t oder Systemfehler.\",\n          \"concern_level\": \"high\"\n        },\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"4-8 Wochen\",\n        \"asymmetry_reasoning\": \"Der Markt untersch\\u00e4tzt m\\u00f6glicherweise die Nachhaltigkeit des Iran-Risikoaufschlags, da geopolitische Krisen 2026 l\\u00e4nger eskaliert bleiben als historisch \\u00fcblich. Sechs simultane Insider-K\\u00e4ufe innerhalb von 14 Tagen sind ein seltenes Cluster-Signal mit statistisch positiver Vorhersagekraft. Die AI-Datencenter-Nachfrage nach Energie schafft einen neuen strukturellen Nachfragetreiber, der im Konsensmodell noch nicht vollst\\u00e4ndig ber\\u00fccksichtigt ist.\",\n        \"catalyst\": \"Eskalation Iran-Spannungen treibt Brent Crude \\u00fcber $90/bbl + AI-Datencenter-Energienachfrage-Ank\\u00fcndigungen Q2 2026\",\n        \"bear_case\": \"Geopolitische De-Eskalation oder OPEC+-Angebotsausweitung kollabiert \\u00d6lpreis, EPS-Datenbasis ist unzuverl\\u00e4ssig, globale Wachstumsverlangsamung dr\\u00fcckt Energienachfrage.\",\n        \"macro_assessment\": \"FRED-Daten nicht verf\\u00fcgbar, was die Makroeinsch\\u00e4tzung erheblich einschr\\u00e4nkt. Aus den News ergibt sich ein Bild von Inflations\\u00e4ngsten kombiniert mit geopolitischen Risiken \\u2014 ein stagflation\\u00e4res Umfeld, das Energie-Commodities kurzfristig st\\u00fctzt, aber Real-Asset-Bewertungen langfristig belastet. Die Zinsunsicherheit 2026 mahnt zur Vorsicht bei kapitalintensiven Sektoren.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"recessionary\",\n        \"macro_context\": {\n          \"yield_curve\": null,\n          \"regime\": \"recessionary\"\n        },\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLE\",\n        \"rel_strength\": -0.0465\n      },\n      \"final_score\": 0.1726,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 11.5281,\n        \"annualized_roi\": null,\n        \"dte\": 16\n      },\n      \"trade_score\": {\n        \"total\": 48,\n        \"grade\": \"WATCH \\ud83d\\udfe0\",\n        \"grade_short\": \"WATCH\",\n        \"components\": {\n          \"signal_quality\": 17.9,\n          \"options_quality\": 25.0,\n          \"risk_deductions\": 0.0,\n          \"context_bonus\": 5.0\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=5/Surprise=4), guter ROI (184%) | Risiken: Sektor underperformt Markt\",\n        \"best_argument_for\": \"Der Markt untersch\\u00e4tzt m\\u00f6glicherweise die Nachhaltigkeit des Iran-Risikoaufschlags, da geopolitische Krisen 2026 l\\u00e4nger eskaliert bleiben als historisch \\u00fcblich. Sechs simultane Insider-K\\u00e4ufe innerhalb von 14 Tagen sind ein seltenes Cluster-Signal mit statistisch positiver Vorhersagekraft. Die AI-Datencenter-Nachfrage nach Energie schafft einen neuen strukturellen Nachfragetreiber, der im Konsensmodell noch nicht vollst\\u00e4ndig ber\\u00fccksichtigt ist.\",\n        \"best_argument_against\": \"Der \\u00d6lpreis ist bereits durch Iran-Spannungen gestiegen, was bedeutet, dass ein erheblicher Teil des geopolitischen Risikoaufschlags bereits eingepreist sein d\\u00fcrfte. CVX notiert bei $186.58 nach einem +1.2% Move in 48h \\u2014 der Markt hat das Katalysator-Szenario bereits teilweise absorbiert. Ein De-Eskalationssignal (Verhandlungen, Sanktionslockerung) k\\u00f6nnte den \\u00d6lpreis schnell 5-8% korrigieren lassen und CVX \\u00fcberproportional belasten.\"\n      },\n      \"trade_rank\": 4,\n      \"exit_rules\": {\n        \"entry_cost\": 2.54,\n        \"take_profit_pct\": 50,\n        \"take_profit_price\": 3.81,\n        \"full_profit_pct\": 100,\n        \"full_profit_price\": 5.08,\n        \"stop_loss_pct\": -40,\n        \"stop_loss_price\": 1.52,\n        \"time_exit_dte_remaining\": 8,\n        \"time_exit_date\": \"2026-05-21\",\n        \"time_exit_min_profit_pct\": 20\n      }\n    }\n  ]\n}"
  },
  {
    "path": "outputs/daily_reports/2026-05-12.md",
    "content": "# Adaptive Asymmetry-Scanner – 2026-05-12\n\n**Generiert:** 2026-05-12 17:13 UTC\n**Trade-Vorschläge:** 3\n\n---\n## 1. GOOG – LONG_CALL\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.1726`  \n**IV-Rank:** 82.7  \n**Trade-Score:** 61/100 — BUY 🟡  \n\n### Asymmetry-Analyse\n- **Impact:** 5/10\n- **Surprise:** 4/10\n- **Mismatch-Score:** 0.516\n- **Z-Score (48h):** 0.897\n- **48h-Move:** 0.0216\n- **EPS-Drift:** 0.0 (noise)\n\n**Asymmetry-Reasoning:**  \n> Der Isomorphic-Deal wird primär als Kostenfaktor wahrgenommen, nicht als Plattformstrategie, die Googles AI-Kompetenz in Life Sciences verankert. Insider-Cluster-Käufe unmittelbar nach der Meldung signalisieren, dass das Management den Kursrückgang als ungerechtfertigte Überreaktion einschätzt. Der Markt fokussiert auf kurzfristige Kapitalallokation, ignoriert aber den strukturellen Optionswert eines Portfolios aus AI-Moonshots.\n\n**Katalysator:** Q2 2026 Earnings (voraussichtlich Juli 2026) mit Guidance zu Isomorphic-Integration und Cloud-AI-Umsatzwachstum als Validierungspunkt für die strukturelle AI-Plattformthese.  \n**Time-to-Materialization:** 2-3 Monate  \n\n### Bear Case\n> GOOG handelt nahe 52-Wochen-Hoch mit negativer Kursreaktion auf positive Nachrichten — klassisches Erschöpfungsmuster. Jede Makro-Verschlechterung oder Enttäuschung bei Core-Werbeumsätzen würde den Isomorphic-Optionswert sofort diskontieren.  \n**Severity:** 6/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 73.8% (10,000 Pfade)\n- **Target-Preis:** $411.11\n- **Aktueller Preis:** $380.66\n- **σ:** 0.0191\n- **α (Signal-Drift):** 0.00292\n\n### Options-Vorschlag\n- **Expiry:** 2026-07-17 (65 DTE)\n- **Strike:** $400.00\n- **Bid/Ask:** $13.50 / $13.70\n- **Impl. Vol.:** 33.6%\n- **Open Interest:** 4,373\n- **Bid-Ask-Ratio:** 1.46%\n\n### 🚪 Exit-Regeln\n- **Entry-Kosten:** $13.70 pro Kontrakt\n- **Take-Profit:** bei $20.55 (+50%) → Hälfte schliessen\n- **Full-Profit:** bei $27.40 (+100%) → Rest schliessen\n- **Stop-Loss:** bei $8.22 (-40%) → Gesamte Position liquidieren\n- **Time-Exit:** ab 2026-06-15 (32 DTE Rest) — schliessen wenn Gewinn < +20%\n\n---\n## 2. BMY – LONG_CALL\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.0806`  \n**IV-Rank:** 55.8  \n**Trade-Score:** 55/100 — WATCH 🟠  \n\n### Asymmetry-Analyse\n- **Impact:** 6/10\n- **Surprise:** 5/10\n- **Mismatch-Score:** 3.17\n- **Z-Score (48h):** 0.566\n- **48h-Move:** 0.0103\n- **EPS-Drift:** 0.0084 (noise)\n\n**Asymmetry-Reasoning:**  \n> Der Markt fokussiert sich auf kurzfristige Patent-Cliff-Risiken und Schuldenlasten, während der strukturelle Pipeline-Aufbau durch Hengrui erst in 12-24 Monaten in Analystenmodellen auftaucht. Sechs Insider-Käufe im Cluster deuten auf informierten Optimismus hin, der über den öffentlichen Deal hinausgeht. Die Kombination aus chinesischer Produktionsskalierung und BMS-Vertrieb schafft eine Asymmetrie, die kurzfristige Modelle strukturell unterschätzen.\n\n**Katalysator:** Erste klinische Datenpunkte zu Hengrui-Partnerschafts-Assets in H2 2026 sowie potenziell positive Phase-III-Readouts bei bestehenden BMY-Pipeline-Kandidaten (z.B. milvexian), die das Repricing beschleunigen könnten.  \n**Time-to-Materialization:** 2-3 Monate  \n\n### Bear Case\n> Patent-Erosion bei Revlimid/Opdivo trifft den freien Cashflow 2026-2028 strukturell, und der Hengrui-Deal liefert keine kurzfristige Kompensation — milestone-abhängige Zahlungsstruktur bedeutet, dass der $15.2B-Headline realistisch mit 10-15% Wahrscheinlichkeitsgewichtung bewertet werden muss.  \n**Severity:** 6/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 66.0% (10,000 Pfade)\n- **Target-Preis:** $61.51\n- **Aktueller Preis:** $56.95\n- **σ:** 0.0171\n- **α (Signal-Drift):** 0.00208\n\n### Options-Vorschlag\n- **Expiry:** 2026-07-17 (65 DTE)\n- **Strike:** $57.50\n- **Bid/Ask:** $2.19 / $2.28\n- **Impl. Vol.:** 26.1%\n- **Open Interest:** 920\n- **Bid-Ask-Ratio:** 3.95%\n\n### 🚪 Exit-Regeln\n- **Entry-Kosten:** $2.28 pro Kontrakt\n- **Take-Profit:** bei $3.42 (+50%) → Hälfte schliessen\n- **Full-Profit:** bei $4.56 (+100%) → Rest schliessen\n- **Stop-Loss:** bei $1.37 (-40%) → Gesamte Position liquidieren\n- **Time-Exit:** ab 2026-06-15 (32 DTE Rest) — schliessen wenn Gewinn < +20%\n\n---\n## 3. CVX – LONG_CALL\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.1726`  \n**IV-Rank:** 56.4  \n**Trade-Score:** 48/100 — WATCH 🟠  \n\n### Asymmetry-Analyse\n- **Impact:** 5/10\n- **Surprise:** 4/10\n- **Mismatch-Score:** 1.513\n- **Z-Score (48h):** 0.697\n- **48h-Move:** 0.0123\n- **EPS-Drift:** 0.0157 (noise)\n\n**Asymmetry-Reasoning:**  \n> Der Markt unterschätzt möglicherweise die Nachhaltigkeit des Iran-Risikoaufschlags, da geopolitische Krisen 2026 länger eskaliert bleiben als historisch üblich. Sechs simultane Insider-Käufe innerhalb von 14 Tagen sind ein seltenes Cluster-Signal mit statistisch positiver Vorhersagekraft. Die AI-Datencenter-Nachfrage nach Energie schafft einen neuen strukturellen Nachfragetreiber, der im Konsensmodell noch nicht vollständig berücksichtigt ist.\n\n**Katalysator:** Eskalation Iran-Spannungen treibt Brent Crude über $90/bbl + AI-Datencenter-Energienachfrage-Ankündigungen Q2 2026  \n**Time-to-Materialization:** 4-8 Wochen  \n\n### Bear Case\n> Geopolitische De-Eskalation oder OPEC+-Angebotsausweitung kollabiert Ölpreis, EPS-Datenbasis ist unzuverlässig, globale Wachstumsverlangsamung drückt Energienachfrage.  \n**Severity:** 6/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 61.3% (10,000 Pfade)\n- **Target-Preis:** $201.51\n- **Aktueller Preis:** $186.58\n- **σ:** 0.0153\n- **α (Signal-Drift):** 0.00232\n\n### Options-Vorschlag\n- **Expiry:** 2026-05-29 (16 DTE)\n- **Strike:** $190.00\n- **Bid/Ask:** $2.35 / $2.54\n- **Impl. Vol.:** 23.9%\n- **Open Interest:** 989\n- **Bid-Ask-Ratio:** 7.48%\n\n### 🚪 Exit-Regeln\n- **Entry-Kosten:** $2.54 pro Kontrakt\n- **Take-Profit:** bei $3.81 (+50%) → Hälfte schliessen\n- **Full-Profit:** bei $5.08 (+100%) → Rest schliessen\n- **Stop-Loss:** bei $1.52 (-40%) → Gesamte Position liquidieren\n- **Time-Exit:** ab 2026-05-21 (8 DTE Rest) — schliessen wenn Gewinn < +20%\n\n---\n## Modell-Gewichte (aktuell)\n- Impact: `0.35`\n- Mismatch: `0.45`\n- EPS-Drift: `0.20`\n\n_Automatisch generiert durch Adaptive Asymmetry-Scanner v8.2_"
  },
  {
    "path": "outputs/daily_reports/2026-05-13.json",
    "content": "{\n  \"date\": \"2026-05-13\",\n  \"proposals\": [\n    {\n      \"ticker\": \"META\",\n      \"strategy\": \"LONG_PUT\",\n      \"iv_rank\": 48.0,\n      \"iv_gate_applied\": false,\n      \"direction\": \"BEARISH\",\n      \"option\": {\n        \"expiry\": \"2026-05-29\",\n        \"strike\": 600.0,\n        \"bid\": 11.9,\n        \"ask\": 12.5,\n        \"open_interest\": 1285,\n        \"implied_vol\": 0.3248053359985351,\n        \"spread_ratio\": 0.048,\n        \"dte\": 15\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 2.336,\n        \"roi_net\": 2.1781,\n        \"spread_pct\": 0.048,\n        \"vega_loss\": 0.062,\n        \"delta\": 0.5996,\n        \"iv_drop_assumed\": 0.05,\n        \"cost_basis\": 12.5,\n        \"is_spread\": false,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.15,\n        \"dte\": 15\n      },\n      \"dte_tier\": \"Short-Term\",\n      \"annualized_roi\": 1657336082110.0369,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Short-Term\",\n          \"dte\": 15,\n          \"option\": {\n            \"expiry\": \"2026-05-29\",\n            \"strike\": 600.0,\n            \"bid\": 11.9,\n            \"ask\": 12.5,\n            \"open_interest\": 1285,\n            \"implied_vol\": 0.3248053359985351,\n            \"spread_ratio\": 0.048,\n            \"dte\": 15\n          },\n          \"roi\": {\n            \"roi_gross\": 2.336,\n            \"roi_net\": 2.1781,\n            \"spread_pct\": 0.048,\n            \"vega_loss\": 0.062,\n            \"delta\": 0.5996,\n            \"iv_drop_assumed\": 0.05,\n            \"cost_basis\": 12.5,\n            \"is_spread\": false,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.15,\n            \"dte\": 15\n          },\n          \"annualized_roi\": 1657336082110.0369,\n          \"strategy\": \"LONG_PUT\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 4,\n        \"surprise\": 5,\n        \"mismatch\": 2.19,\n        \"z_score\": 0.362,\n        \"sigma_30d\": 0.03,\n        \"price_move_48h\": 0.0109,\n        \"eps_drift\": 0.0004,\n        \"bin_impact\": \"low\",\n        \"bin_mismatch\": \"weak\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.525\n      },\n      \"simulation\": {\n        \"current_price\": 608.73,\n        \"target_price\": 657.43,\n        \"hit_rate\": 0.5988,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0235,\n        \"alpha\": 0.00073\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Der interne Mitarbeiterprotest gegen Mouse-Tracking ist ein weicher, schwer quantifizierbarer Katalysator. Interne Proteste bei Meta haben historisch selten zu regulatorischen Ma\\u00dfnahmen gef\\u00fchrt, die materielle finanzielle Auswirkungen hatten. Der Optionsmarkt d\\u00fcrfte dieses Risiko bewusst niedrig gewichten, da es keine direkte beh\\u00f6rdliche Einleitung gibt und das Signal eher PR-sensitiv als regulatorisch-bindend ist.\",\n          \"argument_2\": \"Die EPS-Abweichung zwischen yfinance (36.19) und SEC EDGAR (27.49) ist mit \\u00fcber 30% dramatisch und weist auf erhebliche Datenunsicherheit hin. Diese Diskrepanz deutet m\\u00f6glicherweise auf unterschiedliche Berechnungsbasen hin, macht aber jede Bewertungsmodellierung unzuverl\\u00e4ssig. Ein Trade auf Basis fraglicher EPS-Daten erh\\u00f6ht das Modellrisiko erheblich.\",\n          \"argument_3\": \"Der Aktienkurs von $608.73 impliziert ein hohes Bewertungsniveau, und ein bearishes Signal durch Regulatory Risk trifft auf einen Markt, der META mit Premium-Multiples bewertet. Sollte das Regulierungsrisiko aus dem Protest eskalieren (EU AI Act, FTC-Schritte), k\\u00f6nnte eine schnelle Multiple-Kompression einsetzen. Gleichzeitig schw\\u00e4cht das Insider-Kaufcluster (4 K\\u00e4ufe in 14 Tagen) die bearishe These erheblich.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"0% Hit-Rate bedeutet, dass kein Quick MC durchgef\\u00fchrt wurde \\u2014 es gibt keine statistische Validierung der Kursrichtung. Bei einem Titel wie META mit impliziter Volatilit\\u00e4t von typischerweise 25-35% w\\u00e4re eine 30d-Simulation mit klarem Richtungssignal methodisch notwendig. Das Fehlen jeglicher MC-Daten erh\\u00f6ht die Unsicherheit und erlaubt keine Aussage \\u00fcber Trefferwahrscheinlichkeit.\",\n          \"concern_level\": \"high\"\n        },\n        \"impact\": 4,\n        \"surprise\": 5,\n        \"direction\": \"BEARISH\",\n        \"bear_case_severity\": 5,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt untersch\\u00e4tzt, dass interner Protest bei Tech-Unternehmen als Fr\\u00fchindikator f\\u00fcr regulatorische Eskalation dienen kann, insbesondere im EU-Kontext. Insider-K\\u00e4ufe konterkarieren zwar das Signal, signalisieren aber auch, dass das Management selbst keine unmittelbare materielle Bedrohung sieht. Das eigentliche Risiko liegt in der medialen Verst\\u00e4rkung des Protests, die externe Regulatoren aktivieren k\\u00f6nnte.\",\n        \"catalyst\": \"Regulatorische Einleitung durch EU-Datenschutzbeh\\u00f6rden oder FTC basierend auf Mitarbeiter-Whistleblowing zum Mouse-Tracking-Tool\",\n        \"bear_case\": \"Vier Insider-K\\u00e4ufe innerhalb von 14 Tagen sind ein starkes kontr\\u00e4res Signal und deuten darauf hin, dass das Management das Regulatory Risk als begrenzt einsch\\u00e4tzt \\u2014 dies widerlegt die bearishe These strukturell.\",\n        \"macro_assessment\": \"Das neutrale Makro-Umfeld (flache Kurve, Fed Funds bei 3.64%) bietet weder R\\u00fccken- noch Gegenwind. Bei einem neutralen Regime ist das idiosynkratische Risiko (Regulierung) der dominante Faktor, allerdings reicht das vorliegende Signal nicht f\\u00fcr ein Impact >6, da strukturelle Klarheit fehlt.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.46,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLC\",\n        \"rel_strength\": -0.0186\n      },\n      \"final_score\": 0.3336,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 14.5207,\n        \"annualized_roi\": null,\n        \"dte\": 15\n      },\n      \"trade_score\": {\n        \"total\": 58,\n        \"grade\": \"WATCH \\ud83d\\udfe0\",\n        \"grade_short\": \"WATCH\",\n        \"components\": {\n          \"signal_quality\": 17.9,\n          \"options_quality\": 30.0,\n          \"risk_deductions\": 0.0,\n          \"context_bonus\": 10.0\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=4/Surprise=5), guter ROI (218%)\",\n        \"best_argument_for\": \"Der Markt untersch\\u00e4tzt, dass interner Protest bei Tech-Unternehmen als Fr\\u00fchindikator f\\u00fcr regulatorische Eskalation dienen kann, insbesondere im EU-Kontext. Insider-K\\u00e4ufe konterkarieren zwar das Signal, signalisieren aber auch, dass das Management selbst keine unmittelbare materielle Bedrohung sieht. Das eigentliche Risiko liegt in der medialen Verst\\u00e4rkung des Protests, die externe Regulatoren aktivieren k\\u00f6nnte.\",\n        \"best_argument_against\": \"Der interne Mitarbeiterprotest gegen Mouse-Tracking ist ein weicher, schwer quantifizierbarer Katalysator. Interne Proteste bei Meta haben historisch selten zu regulatorischen Ma\\u00dfnahmen gef\\u00fchrt, die materielle finanzielle Auswirkungen hatten. Der Optionsmarkt d\\u00fcrfte dieses Risiko bewusst niedrig gewichten, da es keine direkte beh\\u00f6rdliche Einleitung gibt und das Signal eher PR-sensitiv als regulatorisch-bindend ist.\"\n      },\n      \"trade_rank\": 1,\n      \"exit_rules\": {\n        \"entry_cost\": 12.5,\n        \"take_profit_pct\": 50,\n        \"take_profit_price\": 18.75,\n        \"full_profit_pct\": 100,\n        \"full_profit_price\": 25.0,\n        \"stop_loss_pct\": -40,\n        \"stop_loss_price\": 7.5,\n        \"time_exit_dte_remaining\": 7,\n        \"time_exit_date\": \"2026-05-22\",\n        \"time_exit_min_profit_pct\": 20\n      }\n    }\n  ]\n}"
  },
  {
    "path": "outputs/daily_reports/2026-05-13.md",
    "content": "# Adaptive Asymmetry-Scanner – 2026-05-13\n\n**Generiert:** 2026-05-13 16:11 UTC\n**Trade-Vorschläge:** 1\n\n---\n## 1. META – LONG_PUT\n\n**Richtung:** BEARISH  \n**FinalScore:** `0.3336`  \n**IV-Rank:** 48.0  \n**Trade-Score:** 58/100 — WATCH 🟠  \n\n### Asymmetry-Analyse\n- **Impact:** 4/10\n- **Surprise:** 5/10\n- **Mismatch-Score:** 2.19\n- **Z-Score (48h):** 0.362\n- **48h-Move:** 0.0109\n- **EPS-Drift:** 0.0004 (noise)\n\n**Asymmetry-Reasoning:**  \n> Der Markt unterschätzt, dass interner Protest bei Tech-Unternehmen als Frühindikator für regulatorische Eskalation dienen kann, insbesondere im EU-Kontext. Insider-Käufe konterkarieren zwar das Signal, signalisieren aber auch, dass das Management selbst keine unmittelbare materielle Bedrohung sieht. Das eigentliche Risiko liegt in der medialen Verstärkung des Protests, die externe Regulatoren aktivieren könnte.\n\n**Katalysator:** Regulatorische Einleitung durch EU-Datenschutzbehörden oder FTC basierend auf Mitarbeiter-Whistleblowing zum Mouse-Tracking-Tool  \n**Time-to-Materialization:** 2-3 Monate  \n\n### Bear Case\n> Vier Insider-Käufe innerhalb von 14 Tagen sind ein starkes konträres Signal und deuten darauf hin, dass das Management das Regulatory Risk als begrenzt einschätzt — dies widerlegt die bearishe These strukturell.  \n**Severity:** 5/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 59.9% (10,000 Pfade)\n- **Target-Preis:** $657.43\n- **Aktueller Preis:** $608.73\n- **σ:** 0.0235\n- **α (Signal-Drift):** 0.00073\n\n### Options-Vorschlag\n- **Expiry:** 2026-05-29 (15 DTE)\n- **Strike:** $600.00\n- **Bid/Ask:** $11.90 / $12.50\n- **Impl. Vol.:** 32.5%\n- **Open Interest:** 1,285\n- **Bid-Ask-Ratio:** 4.80%\n\n### 🚪 Exit-Regeln\n- **Entry-Kosten:** $12.50 pro Kontrakt\n- **Take-Profit:** bei $18.75 (+50%) → Hälfte schliessen\n- **Full-Profit:** bei $25.00 (+100%) → Rest schliessen\n- **Stop-Loss:** bei $7.50 (-40%) → Gesamte Position liquidieren\n- **Time-Exit:** ab 2026-05-22 (7 DTE Rest) — schliessen wenn Gewinn < +20%\n\n---\n## Modell-Gewichte (aktuell)\n- Impact: `0.35`\n- Mismatch: `0.45`\n- EPS-Drift: `0.20`\n\n_Automatisch generiert durch Adaptive Asymmetry-Scanner v8.2_"
  },
  {
    "path": "outputs/daily_reports/2026-05-14.json",
    "content": "{\n  \"date\": \"2026-05-14\",\n  \"proposals\": [\n    {\n      \"ticker\": \"CDNS\",\n      \"strategy\": \"LONG_CALL\",\n      \"iv_rank\": 43.8,\n      \"iv_gate_applied\": false,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-07-17\",\n        \"strike\": 350.0,\n        \"bid\": 27.9,\n        \"ask\": 28.9,\n        \"open_interest\": 155,\n        \"implied_vol\": 0.4162,\n        \"spread_ratio\": 0.0346,\n        \"dte\": 63,\n        \"delta\": 0.5811,\n        \"data_source\": \"tradier\"\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 0.6137,\n        \"roi_net\": 0.5278,\n        \"spread_pct\": 0.0346,\n        \"vega_loss\": 0.0167,\n        \"delta\": 0.5811,\n        \"iv_drop_assumed\": 0.02,\n        \"cost_basis\": 28.9,\n        \"is_spread\": false,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.12,\n        \"dte\": 63\n      },\n      \"dte_tier\": \"Mid-Term\",\n      \"annualized_roi\": 9.99,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Mid-Term\",\n          \"dte\": 63,\n          \"option\": {\n            \"expiry\": \"2026-07-17\",\n            \"strike\": 350.0,\n            \"bid\": 27.9,\n            \"ask\": 28.9,\n            \"open_interest\": 155,\n            \"implied_vol\": 0.4162,\n            \"spread_ratio\": 0.0346,\n            \"dte\": 63,\n            \"delta\": 0.5811,\n            \"data_source\": \"tradier\"\n          },\n          \"roi\": {\n            \"roi_gross\": 0.6137,\n            \"roi_net\": 0.5278,\n            \"spread_pct\": 0.0346,\n            \"vega_loss\": 0.0167,\n            \"delta\": 0.5811,\n            \"iv_drop_assumed\": 0.02,\n            \"cost_basis\": 28.9,\n            \"is_spread\": false,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.12,\n            \"dte\": 63\n          },\n          \"annualized_roi\": 9.99,\n          \"strategy\": \"LONG_CALL\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 4,\n        \"surprise\": 5,\n        \"mismatch\": 1.684,\n        \"z_score\": 0.463,\n        \"sigma_30d\": 0.0277,\n        \"price_move_48h\": 0.0128,\n        \"eps_drift\": 0.0023,\n        \"bin_impact\": \"low\",\n        \"bin_mismatch\": \"weak\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.6032\n      },\n      \"simulation\": {\n        \"current_price\": 354.55,\n        \"target_price\": 385.07,\n        \"hit_rate\": 0.6602,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0257,\n        \"alpha\": 0.00174\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Die Aeva-LiDAR-Lizenz ist ein Nischen-Katalysator mit unklarem finanziellen Materialit\\u00e4tsgrad. CDNS generiert den Gro\\u00dfteil seines Umsatzes aus EDA-Software und IP-Lizenzierung f\\u00fcr Halbleiterdesign \\u2014 der Beitrag eines einzelnen Robotics/LiDAR-Vertrags zum 4-Milliarden-Dollar-Jahresumsatz ist h\\u00f6chstwahrscheinlich marginal und rechtfertigt keine Neubewertung des Gesamtunternehmens. Der Markt hat dies m\\u00f6glicherweise nicht '\\u00fcbersehen', sondern bewusst als nicht materiell eingestuft.\",\n          \"argument_2\": \"Der EPS-Datenpunkt zeigt eine signifikante Divergenz zwischen yfinance (9.38) und SEC EDGAR (4.30) \\u2014 trotz der angegebenen 0.2% Abweichungsangabe, die offensichtlich falsch ist. Diese Diskrepanz von \\u00fcber 100% deutet auf methodische Unterschiede (GAAP vs. Non-GAAP, TTM vs. annual) hin und macht jede auf EPS-Basis beruhende Bewertungsanalyse unzuverl\\u00e4ssig. CDNS handelt auf GAAP-Basis bei ~$354 mit einem KGV von \\u00fcber 80x \\u2014 bei flacher Zinskurve und 4.32% 10Y-Rendite ist das erhebliches Bewertungsrisiko.\",\n          \"argument_3\": \"Das Cluster-Insider-Kaufsignal (8 K\\u00e4ufe in 14 Tagen) klingt positiv, muss aber kritisch hinterfragt werden: Insider-K\\u00e4ufe in Tech-Unternehmen erfolgen oft im Rahmen von vorher festgelegten 10b5-1-Pl\\u00e4nen und sind kein echtes \\u00dcberzeugungssignal. Gleichzeitig ist die 48h-Preisbewegung von -1.3% trotz positiver Newsflow-Lage ein schwaches relatives Signal \\u2014 der Markt absorbiert den Katalysator offensichtlich nicht bullish.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein Quick MC wurde durchgef\\u00fchrt, daher ist die 0%-Hit-Rate nicht als Modellaussage interpretierbar \\u2014 sie ist schlicht ein Datenmangel. Eine fehlende Simulation kann weder als bullishes noch bearishes Signal gewertet werden. Der Concern liegt darin, dass ohne MC-Validierung keine probabilistische Basis f\\u00fcr die Kurszieleinsch\\u00e4tzung existiert.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 4,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt preist CDNS prim\\u00e4r als EDA-Kerngesch\\u00e4ft und ignoriert strukturell wachsende Adjacencies wie Robotics-IP-Lizenzierung. Der Aeva-Deal signalisiert eine Plattformausweitung, deren Multiplikatoreffekt (weitere LiDAR/Autonomie-Kunden) noch nicht im Konsensmodell abgebildet ist. Insider-Cluster-K\\u00e4ufe erh\\u00f6hen die Konviktionsbasis, ohne dass institutionelle Neubewertung bereits stattgefunden hat.\",\n        \"catalyst\": \"Aeva 4D LiDAR-Lizenzabkommen als Eintritt in Robotics/Autonomie-IP-Monetarisierung, potenziell Q2-2026-Earnings-Best\\u00e4tigung weiterer Design-Wins in diesem Segment\",\n        \"bear_case\": \"CDNS handelt auf GAAP-Basis mit >80x KGV bei einem 10Y-Yield von 4.32% \\u2014 jede Entt\\u00e4uschung im Kerngesch\\u00e4ft oder Margendruck durch R&D-Ausweitung in neue Segmente kann eine multiple Kompression ausl\\u00f6sen, die jeden Katalysatorgewinn \\u00fcberlagert.\",\n        \"macro_assessment\": \"Das neutrale Makro-Regime mit flacher Zinskurve (0.48%) und moderatem Zinsniveau (3.64% Fed Funds) ist kein aktiver Gegenwind, aber auch kein R\\u00fcckenwind f\\u00fcr hochbewertete Growth-Tech. Bei 4.32% 10Y ist der Diskontierungsdruck auf lange Duration-Cashflows real \\u2014 CDNS als hochmultiples EDA-Unternehmen ist gegen\\u00fcber Zins\\u00fcberraschungen nach oben anf\\u00e4llig. Neutral-Makro rechtfertigt moderat-bullishe Positionierung nur bei klarer fundamentaler \\u00dcberzeugung.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.48,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLK\",\n        \"rel_strength\": -0.0331\n      },\n      \"final_score\": 0.3573,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 0.8378,\n        \"annualized_roi\": null,\n        \"dte\": 63\n      },\n      \"trade_score\": {\n        \"total\": 54,\n        \"grade\": \"WATCH \\ud83d\\udfe0\",\n        \"grade_short\": \"WATCH\",\n        \"components\": {\n          \"signal_quality\": 17.9,\n          \"options_quality\": 26.5,\n          \"risk_deductions\": 0.0,\n          \"context_bonus\": 10.0\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=4/Surprise=5), guter ROI (53%) | Risiken: Sektor underperformt Markt\",\n        \"best_argument_for\": \"Der Markt preist CDNS prim\\u00e4r als EDA-Kerngesch\\u00e4ft und ignoriert strukturell wachsende Adjacencies wie Robotics-IP-Lizenzierung. Der Aeva-Deal signalisiert eine Plattformausweitung, deren Multiplikatoreffekt (weitere LiDAR/Autonomie-Kunden) noch nicht im Konsensmodell abgebildet ist. Insider-Cluster-K\\u00e4ufe erh\\u00f6hen die Konviktionsbasis, ohne dass institutionelle Neubewertung bereits stattgefunden hat.\",\n        \"best_argument_against\": \"Die Aeva-LiDAR-Lizenz ist ein Nischen-Katalysator mit unklarem finanziellen Materialit\\u00e4tsgrad. CDNS generiert den Gro\\u00dfteil seines Umsatzes aus EDA-Software und IP-Lizenzierung f\\u00fcr Halbleiterdesign \\u2014 der Beitrag eines einzelnen Robotics/LiDAR-Vertrags zum 4-Milliarden-Dollar-Jahresumsatz ist h\\u00f6chstwahrscheinlich marginal und rechtfertigt keine Neubewertung des Gesamtunternehmens. Der Markt hat dies m\\u00f6glicherweise nicht '\\u00fcbersehen', sondern bewusst als nicht materiell eingestuft.\"\n      },\n      \"trade_rank\": 1,\n      \"exit_rules\": {\n        \"entry_cost\": 28.9,\n        \"take_profit_pct\": 50,\n        \"take_profit_price\": 43.35,\n        \"full_profit_pct\": 100,\n        \"full_profit_price\": 57.8,\n        \"stop_loss_pct\": -40,\n        \"stop_loss_price\": 17.34,\n        \"time_exit_dte_remaining\": 31,\n        \"time_exit_date\": \"2026-06-16\",\n        \"time_exit_min_profit_pct\": 20\n      }\n    },\n    {\n      \"ticker\": \"AKAM\",\n      \"strategy\": \"LONG_CALL\",\n      \"iv_rank\": 83.4,\n      \"iv_gate_applied\": false,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-08-21\",\n        \"strike\": 155.0,\n        \"bid\": 23.0,\n        \"ask\": 25.1,\n        \"open_interest\": 814,\n        \"implied_vol\": 0.6025,\n        \"spread_ratio\": 0.0837,\n        \"dte\": 98,\n        \"delta\": 0.6268,\n        \"data_source\": \"tradier\"\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 0.5709,\n        \"roi_net\": 0.2882,\n        \"spread_pct\": 0.0837,\n        \"vega_loss\": 0.1153,\n        \"delta\": 0.6268,\n        \"iv_drop_assumed\": 0.15,\n        \"cost_basis\": 25.1,\n        \"is_spread\": false,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.12,\n        \"dte\": 98\n      },\n      \"dte_tier\": \"Mid-Term\",\n      \"annualized_roi\": 1.5682,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Mid-Term\",\n          \"dte\": 98,\n          \"option\": {\n            \"expiry\": \"2026-08-21\",\n            \"strike\": 155.0,\n            \"bid\": 23.0,\n            \"ask\": 25.1,\n            \"open_interest\": 814,\n            \"implied_vol\": 0.6025,\n            \"spread_ratio\": 0.0837,\n            \"dte\": 98,\n            \"delta\": 0.6268,\n            \"data_source\": \"tradier\"\n          },\n          \"roi\": {\n            \"roi_gross\": 0.5709,\n            \"roi_net\": 0.2882,\n            \"spread_pct\": 0.0837,\n            \"vega_loss\": 0.1153,\n            \"delta\": 0.6268,\n            \"iv_drop_assumed\": 0.15,\n            \"cost_basis\": 25.1,\n            \"is_spread\": false,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.12,\n            \"dte\": 98\n          },\n          \"annualized_roi\": 1.5682,\n          \"strategy\": \"LONG_CALL\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 6,\n        \"mismatch\": 4.033,\n        \"z_score\": 0.193,\n        \"sigma_30d\": 0.0647,\n        \"price_move_48h\": 0.0125,\n        \"eps_drift\": 0.0777,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"relevant\",\n        \"quick_mc_hit_rate\": 0.5456\n      },\n      \"simulation\": {\n        \"current_price\": 161.14,\n        \"target_price\": 184.0,\n        \"hit_rate\": 0.5576,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0423,\n        \"alpha\": 0.00055\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"AKAM hat gerade ein 26-Jahres-Hoch markiert \\u2013 ein klassisches Momentum-\\u00dcberschie\\u00dfen-Signal. Bei solchen extremen historischen Hochs ist die Wahrscheinlichkeit eines Mean-Reversion-Ereignisses erh\\u00f6ht, da viele langfristige Inhaber in Gewinne hineinverkaufen und Short-Seller aktiv werden. Das Signal ist m\\u00f6glicherweise bereits vollst\\u00e4ndig eingepreist, wodurch weiteres Upside-Potenzial begrenzt ist.\",\n          \"argument_2\": \"Die EPS-Abweichung zwischen yfinance (7.24) und SEC EDGAR (3.19) ist mit ~127% extrem hoch und deutet auf erhebliche Datenqualit\\u00e4tsprobleme hin. Wenn der 'wahre' EPS n\\u00e4her an 3.19 liegt, w\\u00e4re AKAM auf dem aktuellen Kursniveau deutlich teurer bewertet als angenommen \\u2013 das KGV w\\u00fcrde sich nahezu verdoppeln. Diese Unsicherheit untergr\\u00e4bt jede fundamentale Bewertungsgrundlage f\\u00fcr den Trade.\",\n          \"argument_3\": \"Der Haiku-Prescreening nennt 'Chip-St\\u00e4rke als Katalysator' f\\u00fcr AKAM \\u2013 doch AKAM ist ein CDN/Edge-Computing-Unternehmen, kein Chip-Hersteller. Die Korrelation mit dem Chip-Sektor-Rally ist opportunistisch und nicht strukturell. Sobald der breite Tech-Optimismus nachl\\u00e4sst, verliert AKAM diesen externen Treiber, da keine direkten fundamentalen Verbindungen zu Halbleitern bestehen.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"0% Hit-Rate bedeutet, dass kein Quick-MC durchgef\\u00fchrt wurde \\u2013 keine statistische Grundlage vorhanden. Bei AKAM auf einem 26-Jahres-Hoch mit erh\\u00f6hter impliziter Volatilit\\u00e4t w\\u00e4re eine realistische Hit-Rate f\\u00fcr BULLISH-Szenarien auf 30 Tage eher bei 45-55% zu erwarten. Die fehlende MC-Statistik erh\\u00f6ht die Unsicherheit erheblich und macht eine quantitative Risikoabsch\\u00e4tzung unm\\u00f6glich.\",\n          \"concern_level\": \"high\"\n        },\n        \"impact\": 5,\n        \"surprise\": 6,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 7,\n        \"time_to_materialization\": \"4-8 Wochen\",\n        \"asymmetry_reasoning\": \"Der Markt k\\u00f6nnte das Insider-Cluster-Kaufsignal (7 K\\u00e4ufer in 14 Tagen) noch nicht vollst\\u00e4ndig eingepreist haben, da solche koordinierten Insider-Aktivit\\u00e4ten statistisch auf nicht-\\u00f6ffentliche positive Entwicklungen hindeuten. Gleichzeitig besteht das Risiko eines schnellen R\\u00fcckzugs nach dem 26-Jahres-Hoch. Die EPS-Datenunsicherheit bleibt ein strukturelles Risiko.\",\n        \"catalyst\": \"Insider-Cluster-Kaufsignal (7 Insider in 14 Tagen) kombiniert mit potenziellem Q2-2026-Earnings-Upside durch Edge-Computing-Nachfragetrend\",\n        \"bear_case\": \"Extreme EPS-Datendiskrepanz (yfinance vs. SEC EDGAR ~127%) deutet auf \\u00fcberh\\u00f6hte Konsenserwartungen hin; ein Earnings-Miss k\\u00f6nnte vom 26-Jahres-Hoch aus einen scharfen Kursr\\u00fcckgang ausl\\u00f6sen.\",\n        \"macro_assessment\": \"Flache Zinskurve (0.48%) signalisiert eine neutrale Makrolage ohne klaren R\\u00fccken- oder Gegenwind. Fed Funds Rate bei 3.64% und 10Y bei 4.32% belasten Technologie-Bewertungen moderat. Das neutrale Regime erlaubt eine vorsichtig bullishe Einsch\\u00e4tzung, aber das erh\\u00f6hte Bewertungsniveau auf dem 26-Jahres-Hoch reduziert die Sicherheitsmarge erheblich.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.48,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLK\",\n        \"rel_strength\": 0.0593\n      },\n      \"final_score\": 0.102,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 0.2941,\n        \"annualized_roi\": 1.5682,\n        \"dte\": 98\n      },\n      \"trade_score\": {\n        \"total\": 54,\n        \"grade\": \"WATCH \\ud83d\\udfe0\",\n        \"grade_short\": \"WATCH\",\n        \"components\": {\n          \"signal_quality\": 21.9,\n          \"options_quality\": 24.4,\n          \"risk_deductions\": -12.0,\n          \"context_bonus\": 20.0\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=5/Surprise=6), guter ROI (29%), positive Sektor-Relative-St\\u00e4rke | Risiken: hohes Bear-Risiko (7/10)\",\n        \"best_argument_for\": \"Der Markt k\\u00f6nnte das Insider-Cluster-Kaufsignal (7 K\\u00e4ufer in 14 Tagen) noch nicht vollst\\u00e4ndig eingepreist haben, da solche koordinierten Insider-Aktivit\\u00e4ten statistisch auf nicht-\\u00f6ffentliche positive Entwicklungen hindeuten. Gleichzeitig besteht das Risiko eines schnellen R\\u00fcckzugs nach dem 26-Jahres-Hoch. Die EPS-Datenunsicherheit bleibt ein strukturelles Risiko.\",\n        \"best_argument_against\": \"AKAM hat gerade ein 26-Jahres-Hoch markiert \\u2013 ein klassisches Momentum-\\u00dcberschie\\u00dfen-Signal. Bei solchen extremen historischen Hochs ist die Wahrscheinlichkeit eines Mean-Reversion-Ereignisses erh\\u00f6ht, da viele langfristige Inhaber in Gewinne hineinverkaufen und Short-Seller aktiv werden. Das Signal ist m\\u00f6glicherweise bereits vollst\\u00e4ndig eingepreist, wodurch weiteres Upside-Potenzial begrenzt ist.\"\n      },\n      \"trade_rank\": 2,\n      \"exit_rules\": {\n        \"entry_cost\": 25.1,\n        \"take_profit_pct\": 50,\n        \"take_profit_price\": 37.65,\n        \"full_profit_pct\": 100,\n        \"full_profit_price\": 50.2,\n        \"stop_loss_pct\": -40,\n        \"stop_loss_price\": 15.06,\n        \"time_exit_dte_remaining\": 49,\n        \"time_exit_date\": \"2026-07-03\",\n        \"time_exit_min_profit_pct\": 20\n      }\n    },\n    {\n      \"ticker\": \"ALB\",\n      \"strategy\": \"LONG_CALL\",\n      \"iv_rank\": 78.5,\n      \"iv_gate_applied\": false,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-07-17\",\n        \"strike\": 195.0,\n        \"bid\": 24.05,\n        \"ask\": 26.7,\n        \"open_interest\": 165,\n        \"implied_vol\": 0.6418,\n        \"spread_ratio\": 0.0993,\n        \"dte\": 63,\n        \"delta\": 0.6103,\n        \"data_source\": \"tradier\"\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 0.5863,\n        \"roi_net\": 0.2713,\n        \"spread_pct\": 0.0993,\n        \"vega_loss\": 0.1165,\n        \"delta\": 0.6103,\n        \"iv_drop_assumed\": 0.15,\n        \"cost_basis\": 26.7,\n        \"is_spread\": false,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.12,\n        \"dte\": 63\n      },\n      \"dte_tier\": \"Mid-Term\",\n      \"annualized_roi\": 3.0177,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Mid-Term\",\n          \"dte\": 63,\n          \"option\": {\n            \"expiry\": \"2026-07-17\",\n            \"strike\": 195.0,\n            \"bid\": 24.05,\n            \"ask\": 26.7,\n            \"open_interest\": 165,\n            \"implied_vol\": 0.6418,\n            \"spread_ratio\": 0.0993,\n            \"dte\": 63,\n            \"delta\": 0.6103,\n            \"data_source\": \"tradier\"\n          },\n          \"roi\": {\n            \"roi_gross\": 0.5863,\n            \"roi_net\": 0.2713,\n            \"spread_pct\": 0.0993,\n            \"vega_loss\": 0.1165,\n            \"delta\": 0.6103,\n            \"iv_drop_assumed\": 0.15,\n            \"cost_basis\": 26.7,\n            \"is_spread\": false,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.12,\n            \"dte\": 63\n          },\n          \"annualized_roi\": 3.0177,\n          \"strategy\": \"LONG_CALL\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"mismatch\": 3.818,\n        \"z_score\": 0.236,\n        \"sigma_30d\": 0.0416,\n        \"price_move_48h\": 0.0098,\n        \"eps_drift\": 0.0234,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.557\n      },\n      \"simulation\": {\n        \"current_price\": 200.94,\n        \"target_price\": 226.59,\n        \"hit_rate\": 0.5588,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0381,\n        \"alpha\": 0.00045\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"ALB hat bereits eine 238,1%-Rallye hinter sich, was auf eine erhebliche \\u00dcberbewertung hinweist. Selbst wenn der Pentagon-Katalysator real ist, k\\u00f6nnte dieser nach einer solch extremen Kursbewegung bereits vollst\\u00e4ndig eingepreist sein \\u2013 'Buy the rumor, sell the news' ist bei Rohstoffwerten mit politisch getriebenen Narrativen besonders virulent. Die aktuelle Bewertung l\\u00e4sst wenig Sicherheitsmarge f\\u00fcr Entt\\u00e4uschungen.\",\n          \"argument_2\": \"Der EPS-Widerspruch zwischen yfinance (+10,95) und SEC EDGAR (-3,34) ist ein schwerwiegendes Datenqualit\\u00e4tsproblem. Ein negatives GAAP-EPS bei gleichzeitig stark gestiegener Aktie deutet auf eine fundamentale Schw\\u00e4che, die durch bereinigte Zahlen \\u00fcberdeckt wird. Lithiumpreise sind strukturell volatil und k\\u00f6nnen binnen weniger Monate kollabieren, wie 2023-2025 mehrfach demonstriert wurde.\",\n          \"argument_3\": \"Der Pentagon-Deadline-Katalysator (< 8 Monate) ist politisch getrieben und damit hochgradig unsicher. Regulatorische und geopolitische Katalysatoren in diesem Bereich scheitern regelm\\u00e4\\u00dfig an Umsetzungsverz\\u00f6gerungen, Kongressblockaden oder Verhandlungsergebnissen, die Marktalternativen bevorzugen. ALB ist zudem in einem zyklischen Sektor, der bei neutralem Makro keine strukturelle Unterst\\u00fctzung erh\\u00e4lt.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein MC durchgef\\u00fchrt (0 Pfade). Bei einem Titel mit dieser Volatilit\\u00e4t und dem extremen Ein-Jahres-Anstieg ist das Fehlen einer MC-Statistik ein erhebliches Warnsignal \\u2013 es l\\u00e4sst sich keine quantitative Aussage \\u00fcber Trefferquoten machen. Concern bleibt hoch, da keine Modell-Validierung vorliegt.\",\n          \"concern_level\": \"high\"\n        },\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 7,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Insider-Cluster-K\\u00e4ufe (7 in 14 Tagen) bei einem bereits stark gestiegenen Titel signalisieren, dass Insides einen weiteren Anstieg erwarten, der \\u00f6ffentlich noch nicht vollst\\u00e4ndig diskontiert ist. Der Pentagon-Katalysator hat eine harte Deadline, was den Druck auf politische Entscheidungen erh\\u00f6ht und ALB als Nutznie\\u00dfer positioniert. Die EPS-Divergenz schreckt institutionelle K\\u00e4ufer ab, was eine partielle Underreaction trotz positiver Signallage erzeugt.\",\n        \"catalyst\": \"Pentagon-Frist zur Reduktion der Abh\\u00e4ngigkeit von chinesischen Seltenen Erden (<8 Monate) kombiniert mit Insider-Cluster-Kaufsignal\",\n        \"bear_case\": \"238%-Rallye in 12 Monaten bei negativem GAAP-EPS macht ALB anf\\u00e4llig f\\u00fcr aggressive Gewinnmitnahmen; politische Katalysatoren scheitern oft an Umsetzungsverz\\u00f6gerungen\",\n        \"macro_assessment\": \"Flache Zinskurve (+0,48%) und neutrale Fed-Politik (3,64%) liefern weder R\\u00fccken- noch Gegenwind. Bei neutralem Makro k\\u00f6nnen Einzelaktien-Katalysatoren wirken, jedoch fehlt der expansive R\\u00fcckenwind, der zyklische Rohstoffwerte \\u00fcberproportional befl\\u00fcgelt. Impact-Bewertung bleibt konservativ.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.48,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLB\",\n        \"rel_strength\": 0.0541\n      },\n      \"final_score\": 0.083,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 0.4306,\n        \"annualized_roi\": 3.0177,\n        \"dte\": 63\n      },\n      \"trade_score\": {\n        \"total\": 48,\n        \"grade\": \"WATCH \\ud83d\\udfe0\",\n        \"grade_short\": \"WATCH\",\n        \"components\": {\n          \"signal_quality\": 17.9,\n          \"options_quality\": 22.1,\n          \"risk_deductions\": -12.0,\n          \"context_bonus\": 20.0\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=5/Surprise=4), guter ROI (27%), positive Sektor-Relative-St\\u00e4rke | Risiken: hohes Bear-Risiko (7/10)\",\n        \"best_argument_for\": \"Insider-Cluster-K\\u00e4ufe (7 in 14 Tagen) bei einem bereits stark gestiegenen Titel signalisieren, dass Insides einen weiteren Anstieg erwarten, der \\u00f6ffentlich noch nicht vollst\\u00e4ndig diskontiert ist. Der Pentagon-Katalysator hat eine harte Deadline, was den Druck auf politische Entscheidungen erh\\u00f6ht und ALB als Nutznie\\u00dfer positioniert. Die EPS-Divergenz schreckt institutionelle K\\u00e4ufer ab, was eine partielle Underreaction trotz positiver Signallage erzeugt.\",\n        \"best_argument_against\": \"ALB hat bereits eine 238,1%-Rallye hinter sich, was auf eine erhebliche \\u00dcberbewertung hinweist. Selbst wenn der Pentagon-Katalysator real ist, k\\u00f6nnte dieser nach einer solch extremen Kursbewegung bereits vollst\\u00e4ndig eingepreist sein \\u2013 'Buy the rumor, sell the news' ist bei Rohstoffwerten mit politisch getriebenen Narrativen besonders virulent. Die aktuelle Bewertung l\\u00e4sst wenig Sicherheitsmarge f\\u00fcr Entt\\u00e4uschungen.\"\n      },\n      \"trade_rank\": 3,\n      \"exit_rules\": {\n        \"entry_cost\": 26.7,\n        \"take_profit_pct\": 50,\n        \"take_profit_price\": 40.05,\n        \"full_profit_pct\": 100,\n        \"full_profit_price\": 53.4,\n        \"stop_loss_pct\": -40,\n        \"stop_loss_price\": 16.02,\n        \"time_exit_dte_remaining\": 31,\n        \"time_exit_date\": \"2026-06-16\",\n        \"time_exit_min_profit_pct\": 20\n      }\n    }\n  ]\n}"
  },
  {
    "path": "outputs/daily_reports/2026-05-14.md",
    "content": "# Adaptive Asymmetry-Scanner – 2026-05-14\n\n**Generiert:** 2026-05-14 07:57 UTC\n**Trade-Vorschläge:** 3\n\n---\n## 1. CDNS – LONG_CALL\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.3573`  \n**IV-Rank:** 43.8  \n**Trade-Score:** 54/100 — WATCH 🟠  \n\n### Asymmetry-Analyse\n- **Impact:** 4/10\n- **Surprise:** 5/10\n- **Mismatch-Score:** 1.684\n- **Z-Score (48h):** 0.463\n- **48h-Move:** 0.0128\n- **EPS-Drift:** 0.0023 (noise)\n\n**Asymmetry-Reasoning:**  \n> Der Markt preist CDNS primär als EDA-Kerngeschäft und ignoriert strukturell wachsende Adjacencies wie Robotics-IP-Lizenzierung. Der Aeva-Deal signalisiert eine Plattformausweitung, deren Multiplikatoreffekt (weitere LiDAR/Autonomie-Kunden) noch nicht im Konsensmodell abgebildet ist. Insider-Cluster-Käufe erhöhen die Konviktionsbasis, ohne dass institutionelle Neubewertung bereits stattgefunden hat.\n\n**Katalysator:** Aeva 4D LiDAR-Lizenzabkommen als Eintritt in Robotics/Autonomie-IP-Monetarisierung, potenziell Q2-2026-Earnings-Bestätigung weiterer Design-Wins in diesem Segment  \n**Time-to-Materialization:** 2-3 Monate  \n\n### Bear Case\n> CDNS handelt auf GAAP-Basis mit >80x KGV bei einem 10Y-Yield von 4.32% — jede Enttäuschung im Kerngeschäft oder Margendruck durch R&D-Ausweitung in neue Segmente kann eine multiple Kompression auslösen, die jeden Katalysatorgewinn überlagert.  \n**Severity:** 6/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 66.0% (10,000 Pfade)\n- **Target-Preis:** $385.07\n- **Aktueller Preis:** $354.55\n- **σ:** 0.0257\n- **α (Signal-Drift):** 0.00174\n\n### Options-Vorschlag\n- **Expiry:** 2026-07-17 (63 DTE)\n- **Strike:** $350.00\n- **Bid/Ask:** $27.90 / $28.90\n- **Impl. Vol.:** 41.6%\n- **Open Interest:** 155\n- **Bid-Ask-Ratio:** 3.46%\n\n### 🚪 Exit-Regeln\n- **Entry-Kosten:** $28.90 pro Kontrakt\n- **Take-Profit:** bei $43.35 (+50%) → Hälfte schliessen\n- **Full-Profit:** bei $57.80 (+100%) → Rest schliessen\n- **Stop-Loss:** bei $17.34 (-40%) → Gesamte Position liquidieren\n- **Time-Exit:** ab 2026-06-16 (31 DTE Rest) — schliessen wenn Gewinn < +20%\n\n---\n## 2. AKAM – LONG_CALL\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.1020`  \n**IV-Rank:** 83.4  \n**Trade-Score:** 54/100 — WATCH 🟠  \n\n### Asymmetry-Analyse\n- **Impact:** 5/10\n- **Surprise:** 6/10\n- **Mismatch-Score:** 4.033\n- **Z-Score (48h):** 0.193\n- **48h-Move:** 0.0125\n- **EPS-Drift:** 0.0777 (relevant)\n\n**Asymmetry-Reasoning:**  \n> Der Markt könnte das Insider-Cluster-Kaufsignal (7 Käufer in 14 Tagen) noch nicht vollständig eingepreist haben, da solche koordinierten Insider-Aktivitäten statistisch auf nicht-öffentliche positive Entwicklungen hindeuten. Gleichzeitig besteht das Risiko eines schnellen Rückzugs nach dem 26-Jahres-Hoch. Die EPS-Datenunsicherheit bleibt ein strukturelles Risiko.\n\n**Katalysator:** Insider-Cluster-Kaufsignal (7 Insider in 14 Tagen) kombiniert mit potenziellem Q2-2026-Earnings-Upside durch Edge-Computing-Nachfragetrend  \n**Time-to-Materialization:** 4-8 Wochen  \n\n### Bear Case\n> Extreme EPS-Datendiskrepanz (yfinance vs. SEC EDGAR ~127%) deutet auf überhöhte Konsenserwartungen hin; ein Earnings-Miss könnte vom 26-Jahres-Hoch aus einen scharfen Kursrückgang auslösen.  \n**Severity:** 7/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 55.8% (10,000 Pfade)\n- **Target-Preis:** $184.00\n- **Aktueller Preis:** $161.14\n- **σ:** 0.0423\n- **α (Signal-Drift):** 0.00055\n\n### Options-Vorschlag\n- **Expiry:** 2026-08-21 (98 DTE)\n- **Strike:** $155.00\n- **Bid/Ask:** $23.00 / $25.10\n- **Impl. Vol.:** 60.2%\n- **Open Interest:** 814\n- **Bid-Ask-Ratio:** 8.37%\n\n### 🚪 Exit-Regeln\n- **Entry-Kosten:** $25.10 pro Kontrakt\n- **Take-Profit:** bei $37.65 (+50%) → Hälfte schliessen\n- **Full-Profit:** bei $50.20 (+100%) → Rest schliessen\n- **Stop-Loss:** bei $15.06 (-40%) → Gesamte Position liquidieren\n- **Time-Exit:** ab 2026-07-03 (49 DTE Rest) — schliessen wenn Gewinn < +20%\n\n---\n## 3. ALB – LONG_CALL\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.0830`  \n**IV-Rank:** 78.5  \n**Trade-Score:** 48/100 — WATCH 🟠  \n\n### Asymmetry-Analyse\n- **Impact:** 5/10\n- **Surprise:** 4/10\n- **Mismatch-Score:** 3.818\n- **Z-Score (48h):** 0.236\n- **48h-Move:** 0.0098\n- **EPS-Drift:** 0.0234 (noise)\n\n**Asymmetry-Reasoning:**  \n> Insider-Cluster-Käufe (7 in 14 Tagen) bei einem bereits stark gestiegenen Titel signalisieren, dass Insides einen weiteren Anstieg erwarten, der öffentlich noch nicht vollständig diskontiert ist. Der Pentagon-Katalysator hat eine harte Deadline, was den Druck auf politische Entscheidungen erhöht und ALB als Nutznießer positioniert. Die EPS-Divergenz schreckt institutionelle Käufer ab, was eine partielle Underreaction trotz positiver Signallage erzeugt.\n\n**Katalysator:** Pentagon-Frist zur Reduktion der Abhängigkeit von chinesischen Seltenen Erden (<8 Monate) kombiniert mit Insider-Cluster-Kaufsignal  \n**Time-to-Materialization:** 2-3 Monate  \n\n### Bear Case\n> 238%-Rallye in 12 Monaten bei negativem GAAP-EPS macht ALB anfällig für aggressive Gewinnmitnahmen; politische Katalysatoren scheitern oft an Umsetzungsverzögerungen  \n**Severity:** 7/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 55.9% (10,000 Pfade)\n- **Target-Preis:** $226.59\n- **Aktueller Preis:** $200.94\n- **σ:** 0.0381\n- **α (Signal-Drift):** 0.00045\n\n### Options-Vorschlag\n- **Expiry:** 2026-07-17 (63 DTE)\n- **Strike:** $195.00\n- **Bid/Ask:** $24.05 / $26.70\n- **Impl. Vol.:** 64.2%\n- **Open Interest:** 165\n- **Bid-Ask-Ratio:** 9.93%\n\n### 🚪 Exit-Regeln\n- **Entry-Kosten:** $26.70 pro Kontrakt\n- **Take-Profit:** bei $40.05 (+50%) → Hälfte schliessen\n- **Full-Profit:** bei $53.40 (+100%) → Rest schliessen\n- **Stop-Loss:** bei $16.02 (-40%) → Gesamte Position liquidieren\n- **Time-Exit:** ab 2026-06-16 (31 DTE Rest) — schliessen wenn Gewinn < +20%\n\n---\n## Modell-Gewichte (aktuell)\n- Impact: `0.35`\n- Mismatch: `0.45`\n- EPS-Drift: `0.20`\n\n_Automatisch generiert durch Adaptive Asymmetry-Scanner v8.2_"
  },
  {
    "path": "outputs/daily_reports/2026-05-17.json",
    "content": "{\n  \"date\": \"2026-05-17\",\n  \"proposals\": [\n    {\n      \"ticker\": \"BKR\",\n      \"strategy\": \"LONG_CALL\",\n      \"iv_rank\": 54.1,\n      \"iv_gate_applied\": false,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-06-18\",\n        \"strike\": 65.0,\n        \"bid\": 2.4,\n        \"ask\": 2.65,\n        \"open_interest\": 1776,\n        \"implied_vol\": 0.359,\n        \"spread_ratio\": 0.0943,\n        \"dte\": 31,\n        \"delta\": 0.4872,\n        \"data_source\": \"tradier\"\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 0.9431,\n        \"roi_net\": 0.6336,\n        \"spread_pct\": 0.0943,\n        \"vega_loss\": 0.1208,\n        \"delta\": 0.4872,\n        \"iv_drop_assumed\": 0.12,\n        \"cost_basis\": 2.65,\n        \"is_spread\": false,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.15,\n        \"dte\": 31\n      },\n      \"dte_tier\": \"Short-Term\",\n      \"annualized_roi\": 9.99,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Short-Term\",\n          \"dte\": 31,\n          \"option\": {\n            \"expiry\": \"2026-06-18\",\n            \"strike\": 65.0,\n            \"bid\": 2.4,\n            \"ask\": 2.65,\n            \"open_interest\": 1776,\n            \"implied_vol\": 0.359,\n            \"spread_ratio\": 0.0943,\n            \"dte\": 31,\n            \"delta\": 0.4872,\n            \"data_source\": \"tradier\"\n          },\n          \"roi\": {\n            \"roi_gross\": 0.9431,\n            \"roi_net\": 0.6336,\n            \"spread_pct\": 0.0943,\n            \"vega_loss\": 0.1208,\n            \"delta\": 0.4872,\n            \"iv_drop_assumed\": 0.12,\n            \"cost_basis\": 2.65,\n            \"is_spread\": false,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.15,\n            \"dte\": 31\n          },\n          \"annualized_roi\": 9.99,\n          \"strategy\": \"LONG_CALL\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"mismatch\": 2.74,\n        \"z_score\": 0.452,\n        \"sigma_30d\": 0.0214,\n        \"price_move_48h\": 0.0097,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"weak\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.6604\n      },\n      \"simulation\": {\n        \"current_price\": 64.12,\n        \"target_price\": 69.25,\n        \"hit_rate\": 0.75,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0209,\n        \"alpha\": 0.0031\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Der Rig-Count-Anstieg ist ein zyklisches, nicht strukturelles Signal: Historisch folgen \\u00d6lfelddienstleister wie BKR mit erheblicher Verz\\u00f6gerung auf Rig-Count-Gewinne, da Vertragsabschl\\u00fcsse und Mobilisierungskosten die Margenausweitung 2-4 Quartale verz\\u00f6gern. Ein 'New Strong Sell'-Rating vom 15.05.2026 deutet darauf hin, dass professionelle Analysten den Zyklus m\\u00f6glicherweise bereits als \\u00fcberhitzt einstufen.\",\n          \"argument_2\": \"\\u00d6lpreisanstiege im Jahr 2026 sind fundamental fragil: Ein \\u00d6lpreisr\\u00fcckgang durch nachlassende OPEC+-Disziplin, steigende US-Shale-Produktion oder globale Nachfrageschw\\u00e4che (insbesondere China-Verlangsamung) w\\u00fcrde den Rig-Count-Katalysator sofort zunichte machen. BKR bei $64.12 impliziert bereits eine Premium-Bewertung f\\u00fcr den Energiesektor, sodass das Upside bei einer \\u00d6lpreisnormalisierung stark begrenzt ist.\",\n          \"argument_3\": \"Der Insider-Kauf-Cluster (7 K\\u00e4ufe in 14 Tagen) klingt bullish, ist aber ohne Kontext zu Kaufvolumen, -preis und Insider-Hierarchie wertlos. Wenn die K\\u00e4ufe \\u00fcberwiegend von niedrigrangigen Insidern in kleinen St\\u00fcckzahlen stammen, ist das Signal statistisch insignifikant. Zudem k\\u00f6nnte der 48h-Preisr\\u00fcckgang von -1.0% trotz positiver News ein Warnsignal sein, dass das Smart Money bereits verkauft.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Die 0% Hit-Rate ist nicht inhaltlich interpretierbar, da kein Quick MC durchgef\\u00fchrt wurde. Das Fehlen der Simulation ist selbst ein Datenproblem und reduziert die statistische Confidence erheblich \\u2014 ohne MC-Basis kann keine Wahrscheinlichkeitsaussage zur Kurszielreichung getroffen werden.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt preist den Rig-Count-Anstieg als kurzfristiges Rauschen ein, untersch\\u00e4tzt jedoch die strukturelle Margenverbesserung durch h\\u00f6here Serviceraten in einem nachfragestarken Zyklus. Der Insider-Cluster von 7 K\\u00e4ufern signalisiert Insider-Konfidenz in den kommenden Quartalsbericht als konkreten Katalysator. Das gleichzeitige Strong-Sell-Rating erzeugt eine k\\u00fcnstliche Diskrepanz, die eine Underreaction auf positive Fundamentaldaten beg\\u00fcnstigt.\",\n        \"catalyst\": \"N\\u00e4chster Quartalsbericht Q2-2026 mit potenziellem Margenanstieg durch h\\u00f6here Rig-Activity und Servicepreise; Insider-Cluster deutet auf Management-Konfidenz in Zahlen hin\",\n        \"bear_case\": \"Ein R\\u00fcckgang des \\u00d6lpreises unter die Break-Even-Schwelle f\\u00fcr neue Bohrprojekte w\\u00fcrde den Rig-Count-Anstieg reversieren und BKR als zyklischen Underperformer exponieren, w\\u00e4hrend die aktuelle Bewertung kaum Puffer bietet.\",\n        \"macro_assessment\": \"Das neutrale Makro-Regime mit flacher Kurve (0.50%) und Fed Funds bei 3.64% ist f\\u00fcr Energieservices ambivalent: Keine Rezessionswarnung, aber auch kein expansiver R\\u00fcckenwind. Die 10Y bei 4.32% erh\\u00f6ht den Discount-Faktor f\\u00fcr kapitalintensive Sektoren leicht. Insgesamt kein Makro-Veto, aber auch keine makro-basierte Verst\\u00e4rkung des bullishen Signals.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.5,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLE\",\n        \"rel_strength\": 0.0675\n      },\n      \"final_score\": 0.1859,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 2.0439,\n        \"annualized_roi\": null,\n        \"dte\": 31\n      },\n      \"trade_score\": {\n        \"total\": 65,\n        \"grade\": \"BUY \\ud83d\\udfe1\",\n        \"grade_short\": \"BUY\",\n        \"components\": {\n          \"signal_quality\": 17.9,\n          \"options_quality\": 27.0,\n          \"risk_deductions\": 0.0,\n          \"context_bonus\": 20.0\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=5/Surprise=4), guter ROI (63%), positive Sektor-Relative-St\\u00e4rke\",\n        \"best_argument_for\": \"Der Markt preist den Rig-Count-Anstieg als kurzfristiges Rauschen ein, untersch\\u00e4tzt jedoch die strukturelle Margenverbesserung durch h\\u00f6here Serviceraten in einem nachfragestarken Zyklus. Der Insider-Cluster von 7 K\\u00e4ufern signalisiert Insider-Konfidenz in den kommenden Quartalsbericht als konkreten Katalysator. Das gleichzeitige Strong-Sell-Rating erzeugt eine k\\u00fcnstliche Diskrepanz, die eine Underreaction auf positive Fundamentaldaten beg\\u00fcnstigt.\",\n        \"best_argument_against\": \"Der Rig-Count-Anstieg ist ein zyklisches, nicht strukturelles Signal: Historisch folgen \\u00d6lfelddienstleister wie BKR mit erheblicher Verz\\u00f6gerung auf Rig-Count-Gewinne, da Vertragsabschl\\u00fcsse und Mobilisierungskosten die Margenausweitung 2-4 Quartale verz\\u00f6gern. Ein 'New Strong Sell'-Rating vom 15.05.2026 deutet darauf hin, dass professionelle Analysten den Zyklus m\\u00f6glicherweise bereits als \\u00fcberhitzt einstufen.\"\n      },\n      \"trade_rank\": 1,\n      \"exit_rules\": {\n        \"entry_cost\": 2.65,\n        \"take_profit_pct\": 50,\n        \"take_profit_price\": 3.97,\n        \"full_profit_pct\": 100,\n        \"full_profit_price\": 5.3,\n        \"stop_loss_pct\": -40,\n        \"stop_loss_price\": 1.59,\n        \"time_exit_dte_remaining\": 15,\n        \"time_exit_date\": \"2026-06-03\",\n        \"time_exit_min_profit_pct\": 20\n      }\n    },\n    {\n      \"ticker\": \"CARR\",\n      \"strategy\": \"LONG_CALL\",\n      \"iv_rank\": 56.6,\n      \"iv_gate_applied\": false,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-09-18\",\n        \"strike\": 62.5,\n        \"bid\": 6.8,\n        \"ask\": 7.4,\n        \"open_interest\": 376,\n        \"implied_vol\": 0.3788,\n        \"spread_ratio\": 0.0811,\n        \"dte\": 123,\n        \"delta\": 0.6201,\n        \"data_source\": \"tradier\"\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 0.4332,\n        \"roi_net\": 0.2193,\n        \"spread_pct\": 0.0811,\n        \"vega_loss\": 0.0518,\n        \"delta\": 0.6201,\n        \"iv_drop_assumed\": 0.07,\n        \"cost_basis\": 7.4,\n        \"is_spread\": false,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.12,\n        \"dte\": 123\n      },\n      \"dte_tier\": \"Mid-Term\",\n      \"annualized_roi\": 0.8011,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Mid-Term\",\n          \"dte\": 123,\n          \"option\": {\n            \"expiry\": \"2026-09-18\",\n            \"strike\": 62.5,\n            \"bid\": 6.8,\n            \"ask\": 7.4,\n            \"open_interest\": 376,\n            \"implied_vol\": 0.3788,\n            \"spread_ratio\": 0.0811,\n            \"dte\": 123,\n            \"delta\": 0.6201,\n            \"data_source\": \"tradier\"\n          },\n          \"roi\": {\n            \"roi_gross\": 0.4332,\n            \"roi_net\": 0.2193,\n            \"spread_pct\": 0.0811,\n            \"vega_loss\": 0.0518,\n            \"delta\": 0.6201,\n            \"iv_drop_assumed\": 0.07,\n            \"cost_basis\": 7.4,\n            \"is_spread\": false,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.12,\n            \"dte\": 123\n          },\n          \"annualized_roi\": 0.8011,\n          \"strategy\": \"LONG_CALL\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"mismatch\": 2.109,\n        \"z_score\": 0.578,\n        \"sigma_30d\": 0.0309,\n        \"price_move_48h\": 0.0178,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"weak\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.6398\n      },\n      \"simulation\": {\n        \"current_price\": 64.67,\n        \"target_price\": 69.84,\n        \"hit_rate\": 0.7222,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0237,\n        \"alpha\": 0.00239\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Die AI Data Center Cooling-Story ist bereits ein weitverbreitetes Narrativ im Markt \\u2013 zahlreiche Analysten und Medien haben CARR in diesem Kontext positioniert, was bedeutet, dass der strukturelle Tailwind m\\u00f6glicherweise bereits erheblich in der Bewertung ber\\u00fccksichtigt ist. Bei einem KGV von ~20x (Kurs $64.67 / EPS $3.20) ist keine klassische Unterbewertung erkennbar, und ein bereits eingepreister Katalysator liefert selten weiteres Alpha.\",\n          \"argument_2\": \"Die massive EPS-Diskrepanz zwischen yfinance ($3.20) und SEC EDGAR ($1.50) ist ein ernstes Datenzuverl\\u00e4ssigkeitsproblem. Sollte das SEC-EPS das korrektere Bild widerspiegeln, handelt die Aktie auf Basis bereinigter Earnings bei einem KGV von ~43x \\u2013 eine Bewertung, die f\\u00fcr einen Industrials-Titel erhebliches Downside-Risiko birgt, falls Wachstumserwartungen verfehlt werden.\",\n          \"argument_3\": \"CARR ist ein Industrials-Unternehmen mit erheblicher Exposition gegen\\u00fcber dem globalen HVAC-Markt und Bauwirtschaft, die bei Zinsniveaus von 4.32% (10Y) weiterhin unter Druck steht. Der Wohnungsbau und kommerzielle Bau-Sektor zeigen strukturelle Schw\\u00e4che, was das Kerngesch\\u00e4ft belasten k\\u00f6nnte und den positiven Effekt aus dem Data-Center-Segment kompensieren d\\u00fcrfte.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Quick MC wurde nicht durchgef\\u00fchrt (0 Pfade), daher ist die 0%-Hit-Rate technisch bedeutungslos und kein echtes statistisches Signal. Die fehlenden MC-Daten reduzieren die quantitative Absicherung der Analyse erheblich \\u2013 die Bewertung muss ohne probabilistische Pfadanalyse erfolgen, was die Unsicherheit erh\\u00f6ht.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt bewertet CARR prim\\u00e4r als klassischen HVAC-Hersteller, untersch\\u00e4tzt aber die Margenpotenziale im hochmargigen Hyperscaler-Cooling-Segment. Insider-Cluster-K\\u00e4ufe innerhalb von 14 Tagen signalisieren informiertes Kapital, das vor Hyperscaler-Guidance-Events positioniert. Die strukturelle DC-Expansion ist ein mehrj\\u00e4hriger Trend, der in der Konsenssch\\u00e4tzung noch nicht vollst\\u00e4ndig reflektiert ist.\",\n        \"catalyst\": \"Hyperscaler Q2/Q3 2026 Guidance-Updates zu Data Center Capex und m\\u00f6gliche CARR-Auftragsank\\u00fcndigungen f\\u00fcr Cooling-Infrastruktur\",\n        \"bear_case\": \"EPS-Diskrepanz (yfinance $3.20 vs. SEC $1.50) deutet auf m\\u00f6gliche Bewertungs\\u00fcberdehnung hin; falls bereinigtes EPS ma\\u00dfgeblich ist, ist CARR fundamental teuer und anf\\u00e4llig f\\u00fcr Entt\\u00e4uschungen\",\n        \"macro_assessment\": \"Neutrales Makro-Umfeld (Kurve +0.50%, Fed Funds 3.64%) liefert weder signifikanten R\\u00fccken- noch Gegenwind. F\\u00fcr Industrials leicht positiv, da keine Rezessionssignale vorliegen, aber das anhaltend hohe Zinsniveau belastet das Kerngesch\\u00e4ft (Bau/HVAC) weiterhin moderat. Data-Center-Exposition mildert dieses Risiko partiell.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.5,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLI\",\n        \"rel_strength\": 0.1197\n      },\n      \"final_score\": 0.1859,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 0.1783,\n        \"annualized_roi\": 0.8011,\n        \"dte\": 123\n      },\n      \"trade_score\": {\n        \"total\": 57,\n        \"grade\": \"WATCH \\ud83d\\udfe0\",\n        \"grade_short\": \"WATCH\",\n        \"components\": {\n          \"signal_quality\": 17.9,\n          \"options_quality\": 19.5,\n          \"risk_deductions\": 0.0,\n          \"context_bonus\": 20.0\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=5/Surprise=4), guter ROI (22%), positive Sektor-Relative-St\\u00e4rke\",\n        \"best_argument_for\": \"Der Markt bewertet CARR prim\\u00e4r als klassischen HVAC-Hersteller, untersch\\u00e4tzt aber die Margenpotenziale im hochmargigen Hyperscaler-Cooling-Segment. Insider-Cluster-K\\u00e4ufe innerhalb von 14 Tagen signalisieren informiertes Kapital, das vor Hyperscaler-Guidance-Events positioniert. Die strukturelle DC-Expansion ist ein mehrj\\u00e4hriger Trend, der in der Konsenssch\\u00e4tzung noch nicht vollst\\u00e4ndig reflektiert ist.\",\n        \"best_argument_against\": \"Die AI Data Center Cooling-Story ist bereits ein weitverbreitetes Narrativ im Markt \\u2013 zahlreiche Analysten und Medien haben CARR in diesem Kontext positioniert, was bedeutet, dass der strukturelle Tailwind m\\u00f6glicherweise bereits erheblich in der Bewertung ber\\u00fccksichtigt ist. Bei einem KGV von ~20x (Kurs $64.67 / EPS $3.20) ist keine klassische Unterbewertung erkennbar, und ein bereits eingepreister Katalysator liefert selten weiteres Alpha.\"\n      },\n      \"trade_rank\": 2,\n      \"exit_rules\": {\n        \"entry_cost\": 7.4,\n        \"take_profit_pct\": 50,\n        \"take_profit_price\": 11.1,\n        \"full_profit_pct\": 100,\n        \"full_profit_price\": 14.8,\n        \"stop_loss_pct\": -40,\n        \"stop_loss_price\": 4.44,\n        \"time_exit_dte_remaining\": 61,\n        \"time_exit_date\": \"2026-07-19\",\n        \"time_exit_min_profit_pct\": 20\n      }\n    },\n    {\n      \"ticker\": \"ABNB\",\n      \"strategy\": \"LONG_CALL\",\n      \"iv_rank\": 15.3,\n      \"iv_gate_applied\": false,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-08-21\",\n        \"strike\": 140.0,\n        \"bid\": 7.55,\n        \"ask\": 7.9,\n        \"open_interest\": 467,\n        \"implied_vol\": 0.366,\n        \"spread_ratio\": 0.0443,\n        \"dte\": 95,\n        \"delta\": 0.4505,\n        \"data_source\": \"tradier\"\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 0.6062,\n        \"roi_net\": 0.493,\n        \"spread_pct\": 0.0443,\n        \"vega_loss\": 0.0246,\n        \"delta\": 0.4505,\n        \"iv_drop_assumed\": 0.02,\n        \"cost_basis\": 7.9,\n        \"is_spread\": false,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.12,\n        \"dte\": 95\n      },\n      \"dte_tier\": \"Mid-Term\",\n      \"annualized_roi\": 3.664,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Mid-Term\",\n          \"dte\": 95,\n          \"option\": {\n            \"expiry\": \"2026-08-21\",\n            \"strike\": 140.0,\n            \"bid\": 7.55,\n            \"ask\": 7.9,\n            \"open_interest\": 467,\n            \"implied_vol\": 0.366,\n            \"spread_ratio\": 0.0443,\n            \"dte\": 95,\n            \"delta\": 0.4505,\n            \"data_source\": \"tradier\"\n          },\n          \"roi\": {\n            \"roi_gross\": 0.6062,\n            \"roi_net\": 0.493,\n            \"spread_pct\": 0.0443,\n            \"vega_loss\": 0.0246,\n            \"delta\": 0.4505,\n            \"iv_drop_assumed\": 0.02,\n            \"cost_basis\": 7.9,\n            \"is_spread\": false,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.12,\n            \"dte\": 95\n          },\n          \"annualized_roi\": 3.664,\n          \"strategy\": \"LONG_CALL\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"mismatch\": 0.997,\n        \"z_score\": 0.801,\n        \"sigma_30d\": 0.0167,\n        \"price_move_48h\": 0.0134,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"weak\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.5136\n      },\n      \"simulation\": {\n        \"current_price\": 132.85,\n        \"target_price\": 143.48,\n        \"hit_rate\": 0.609,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.02,\n        \"alpha\": 0.00164\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Die AOC-Kritikwelle adressiert ein strukturelles politisches Risiko, das nicht als tempor\\u00e4rer Noise abgetan werden sollte. Regulatorischer Gegenwind durch Mietrechtsversch\\u00e4rfungen, Kurzzeitvermietungsverbote in st\\u00e4dtischen Gebieten und politischer Druck auf Plattform\\u00f6konomie k\\u00f6nnten das Wachstumsmodell von ABNB in Kernm\\u00e4rkten (USA, EU) mittelfristig besch\\u00e4digen. Der Markt preist m\\u00f6glicherweise Regulierungsrisiken strukturell ein, nicht nur \\u00fcber.\",\n          \"argument_2\": \"Der Q1-Beat und die Analysten-Upgrades sind ein klassischer 'Buy the news, sell the fact'-Kontext. Nach einem positiven Quartalsergebnis tendieren Aktien ohne klaren Forward-Katalysator zur Konsolidierung. ABNB hat in den letzten 48h bereits -1,3% verloren, was auf eine Ersch\\u00f6pfung des Post-Earnings-Impulses hindeutet. Die angehobenen Analyst-Outlooks sind bereits im Kurs reflektiert.\",\n          \"argument_3\": \"Die EPS-Abweichung zwischen yfinance (6.04) und SEC EDGAR (4.05) ist erheblich und deutet auf potenzielle Datenkonfusion hin \\u2014 m\\u00f6glicherweise GAAP vs. Non-GAAP. Falls der Markt auf Basis von \\u00fcberh\\u00f6hten Non-GAAP-Zahlen bewertet, besteht ein Bewertungsrisiko bei strikter GAAP-Betrachtung. Consumer Cyclicals sind zudem bei flacher Zinskurve anf\\u00e4llig, da diskretion\\u00e4re Konsumausgaben f\\u00fcr Reisen konjunktursensitiv bleiben.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein Quick MC wurde durchgef\\u00fchrt (0 Pfade), daher ist die 0%-Hit-Rate nicht aussagekr\\u00e4ftig und kann weder best\\u00e4tigt noch widerlegt werden. Dies reduziert die statistische Grundlage der Analyse erheblich und erh\\u00f6ht die Unsicherheit bei der Positionsbewertung.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"4-8 Wochen\",\n        \"asymmetry_reasoning\": \"Der Markt \\u00fcbergewichtet das politische AOC-Narrativ als fundamentales Risiko, obwohl Regulierungs\\u00e4ngste f\\u00fcr ABNB strukturell bekannt und historisch meist nicht in disruptive Policy umgesetzt wurden. Vier Insider-K\\u00e4ufe in 14 Tagen signalisieren, dass Interne den Abverkauf als \\u00fcbertrieben werten. Die flache Zinskurve im neutralen Makro-Regime d\\u00e4mpft den Gegenwind und l\\u00e4sst Einzelaktien-Alpha durch Earnings-Recovery zu.\",\n        \"catalyst\": \"Sommerbuchungs-Saison 2026 als operativer Umsatzkatalysator kombiniert mit m\\u00f6glichem n\\u00e4chsten Earnings-Report (Q2 2026), der die angehobenen Analyst-Outlooks best\\u00e4tigen oder \\u00fcbertreffen k\\u00f6nnte.\",\n        \"bear_case\": \"Regulatorische Eskalation in US-Kernst\\u00e4dten sowie anhaltender politischer Druck k\\u00f6nnten Wachstumsprojektionen f\\u00fcr die Plattform dr\\u00fccken und institutionelle Investoren zur Rotation aus Consumer Cyclicals veranlassen.\",\n        \"macro_assessment\": \"Das neutrale Makro-Regime mit flacher Zinskurve (0,50%) und Fed Funds Rate bei 3,64% ist weder klar bullish noch bearish f\\u00fcr ABNB. Reise-Nachfrage bleibt bei positiver Realwachstumsdynamik intakt, jedoch sind Consumer Cyclicals bei einer m\\u00f6glichen Abk\\u00fchlung des Konsums anf\\u00e4llig. Kein signifikanter Makro-R\\u00fcckenwind f\\u00fcr eine aggressive Bullish-Position.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.5,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLY\",\n        \"rel_strength\": -0.0214\n      },\n      \"final_score\": 0.1859,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 0.5189,\n        \"annualized_roi\": 3.664,\n        \"dte\": 95\n      },\n      \"trade_score\": {\n        \"total\": 54,\n        \"grade\": \"WATCH \\ud83d\\udfe0\",\n        \"grade_short\": \"WATCH\",\n        \"components\": {\n          \"signal_quality\": 17.9,\n          \"options_quality\": 26.5,\n          \"risk_deductions\": 0.0,\n          \"context_bonus\": 10.0\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=5/Surprise=4), guter ROI (49%), g\\u00fcnstige IV (15%)\",\n        \"best_argument_for\": \"Der Markt \\u00fcbergewichtet das politische AOC-Narrativ als fundamentales Risiko, obwohl Regulierungs\\u00e4ngste f\\u00fcr ABNB strukturell bekannt und historisch meist nicht in disruptive Policy umgesetzt wurden. Vier Insider-K\\u00e4ufe in 14 Tagen signalisieren, dass Interne den Abverkauf als \\u00fcbertrieben werten. Die flache Zinskurve im neutralen Makro-Regime d\\u00e4mpft den Gegenwind und l\\u00e4sst Einzelaktien-Alpha durch Earnings-Recovery zu.\",\n        \"best_argument_against\": \"Die AOC-Kritikwelle adressiert ein strukturelles politisches Risiko, das nicht als tempor\\u00e4rer Noise abgetan werden sollte. Regulatorischer Gegenwind durch Mietrechtsversch\\u00e4rfungen, Kurzzeitvermietungsverbote in st\\u00e4dtischen Gebieten und politischer Druck auf Plattform\\u00f6konomie k\\u00f6nnten das Wachstumsmodell von ABNB in Kernm\\u00e4rkten (USA, EU) mittelfristig besch\\u00e4digen. Der Markt preist m\\u00f6glicherweise Regulierungsrisiken strukturell ein, nicht nur \\u00fcber.\"\n      },\n      \"trade_rank\": 3,\n      \"exit_rules\": {\n        \"entry_cost\": 7.9,\n        \"take_profit_pct\": 50,\n        \"take_profit_price\": 11.85,\n        \"full_profit_pct\": 100,\n        \"full_profit_price\": 15.8,\n        \"stop_loss_pct\": -40,\n        \"stop_loss_price\": 4.74,\n        \"time_exit_dte_remaining\": 47,\n        \"time_exit_date\": \"2026-07-05\",\n        \"time_exit_min_profit_pct\": 20\n      }\n    },\n    {\n      \"ticker\": \"BMY\",\n      \"strategy\": \"LONG_CALL\",\n      \"iv_rank\": 49.3,\n      \"iv_gate_applied\": false,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-06-05\",\n        \"strike\": 56.0,\n        \"bid\": 2.0,\n        \"ask\": 2.14,\n        \"open_interest\": 993,\n        \"implied_vol\": 0.2743,\n        \"spread_ratio\": 0.0654,\n        \"dte\": 18,\n        \"delta\": 0.6297,\n        \"data_source\": \"tradier\"\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 1.3418,\n        \"roi_net\": 1.1802,\n        \"spread_pct\": 0.0654,\n        \"vega_loss\": 0.0307,\n        \"delta\": 0.6297,\n        \"iv_drop_assumed\": 0.05,\n        \"cost_basis\": 2.14,\n        \"is_spread\": false,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.15,\n        \"dte\": 18\n      },\n      \"dte_tier\": \"Short-Term\",\n      \"annualized_roi\": 9.99,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Short-Term\",\n          \"dte\": 18,\n          \"option\": {\n            \"expiry\": \"2026-06-05\",\n            \"strike\": 56.0,\n            \"bid\": 2.0,\n            \"ask\": 2.14,\n            \"open_interest\": 993,\n            \"implied_vol\": 0.2743,\n            \"spread_ratio\": 0.0654,\n            \"dte\": 18,\n            \"delta\": 0.6297,\n            \"data_source\": \"tradier\"\n          },\n          \"roi\": {\n            \"roi_gross\": 1.3418,\n            \"roi_net\": 1.1802,\n            \"spread_pct\": 0.0654,\n            \"vega_loss\": 0.0307,\n            \"delta\": 0.6297,\n            \"iv_drop_assumed\": 0.05,\n            \"cost_basis\": 2.14,\n            \"is_spread\": false,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.15,\n            \"dte\": 18\n          },\n          \"annualized_roi\": 9.99,\n          \"strategy\": \"LONG_CALL\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"mismatch\": 3.347,\n        \"z_score\": 0.331,\n        \"sigma_30d\": 0.0171,\n        \"price_move_48h\": 0.0057,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.5524\n      },\n      \"simulation\": {\n        \"current_price\": 57.0,\n        \"target_price\": 61.56,\n        \"hit_rate\": 0.6684,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0166,\n        \"alpha\": 0.00236\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"BMY tr\\u00e4gt eine erhebliche Schuldenlast aus der Celgene-Akquisition, und die Pipeline-Diversifizierung durch China-Kollaborationen birgt regulatorische und geopolitische Risiken. US-China-Spannungen k\\u00f6nnten Technologietransfers und klinische Datenpakete verz\\u00f6gern oder blockieren, was die vermeintliche strukturelle St\\u00e4rke ad absurdum f\\u00fchrt.\",\n          \"argument_2\": \"Der EPS-Konflikt zwischen yfinance (6.17) und SEC EDGAR (3.57) ist erheblich \\u2014 eine Abweichung von ~73% deutet auf GAAP- vs. Non-GAAP-Verzerrungen hin. Das wahre Ertragspotenzial ist unklar, und wenn der Markt auf SEC-konforme Zahlen umstellt, ist Kurskorrekturpotenzial nach unten vorhanden.\",\n          \"argument_3\": \"Die Carboplatin/Nivolumab Phase-II-Studie in metastasiertem TNBC zeigt keinen gesicherten \\u00dcberlebensvorteil gegen\\u00fcber Konkurrenzprodukten (Keytruda). Selbst bei positivem Ausgang ist der inkrementelle Marktanteil begrenzt, und der Katalysator k\\u00f6nnte durch bestehende Checkpoint-Inhibitor-Konkurrenz bereits vollst\\u00e4ndig eingepreist sein.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"MC wurde nicht durchgef\\u00fchrt (0 Pfade). Bei einer Healthcare-Aktie mit strukturellen Katalysatoren wie Insider-Cluster und China-Pipeline ist das Fehlen einer MC-Validierung problematisch. Bei typischer BMY-Volatilit\\u00e4t (IV ~25-30%) w\\u00e4re eine 30d Hit-Rate f\\u00fcr moderate Aufw\\u00e4rtsbewegungen (~5%) historisch bei 45-55% realistisch. Der fehlende MC kann weder best\\u00e4tigen noch widerlegen.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 5,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt hat den Insider-Cluster-Kauf von 6 Personen in 14 Tagen noch nicht vollst\\u00e4ndig eingepreist, da derartige koordinierte Insiderk\\u00e4ufe statistisch signifikant f\\u00fcr positive Erwartungen der Unternehmensf\\u00fchrung sind. Die China-Kollaboration wird als geopolitisches Risiko wahrgenommen, obwohl sie Pipeline-Diversifizierung und Kostenreduktion bedeutet. Cendakimab-Marktprognosen 2026-2034 deuten auf untersch\\u00e4tzte Umsatzpotenziale hin.\",\n        \"catalyst\": \"Positive Phase-II-Daten zur Carboplatin/Nivolumab-Studie in TNBC oder erste Meilensteinzahlungen aus der China-Drug-Development-Kollaboration innerhalb Q3 2026\",\n        \"bear_case\": \"Geopolitische Eskalation im US-China-Verh\\u00e4ltnis k\\u00f6nnte die Kollaboration gef\\u00e4hrden, w\\u00e4hrend gleichzeitig der EPS-Konflikt zwischen GAAP und Non-GAAP-Zahlen bei Neubeurteilung durch Analysten Abwertungspotenzial schafft.\",\n        \"macro_assessment\": \"Das neutrale Makroumfeld (flache Kurve +0.50%, Fed Funds 3.64%) ist f\\u00fcr BMY als defensiven Healthcare-Titel moderat positiv. Kein signifikanter R\\u00fccken- oder Gegenwind. Das Zinsumfeld belastet BMIs Schuldendienst leicht, ist aber nicht kritisch. Neutral-Regime erlaubt strukturellen Katalysatoren, sich zu entfalten, ohne durch Makro-Gegenwind \\u00fcberlagert zu werden.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.5,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLV\",\n        \"rel_strength\": -0.0291\n      },\n      \"final_score\": 0.0848,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 6.5567,\n        \"annualized_roi\": null,\n        \"dte\": 18\n      },\n      \"trade_score\": {\n        \"total\": 53,\n        \"grade\": \"WATCH \\ud83d\\udfe0\",\n        \"grade_short\": \"WATCH\",\n        \"components\": {\n          \"signal_quality\": 17.9,\n          \"options_quality\": 25.0,\n          \"risk_deductions\": 0.0,\n          \"context_bonus\": 10.0\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=5/Surprise=4), guter ROI (118%)\",\n        \"best_argument_for\": \"Der Markt hat den Insider-Cluster-Kauf von 6 Personen in 14 Tagen noch nicht vollst\\u00e4ndig eingepreist, da derartige koordinierte Insiderk\\u00e4ufe statistisch signifikant f\\u00fcr positive Erwartungen der Unternehmensf\\u00fchrung sind. Die China-Kollaboration wird als geopolitisches Risiko wahrgenommen, obwohl sie Pipeline-Diversifizierung und Kostenreduktion bedeutet. Cendakimab-Marktprognosen 2026-2034 deuten auf untersch\\u00e4tzte Umsatzpotenziale hin.\",\n        \"best_argument_against\": \"BMY tr\\u00e4gt eine erhebliche Schuldenlast aus der Celgene-Akquisition, und die Pipeline-Diversifizierung durch China-Kollaborationen birgt regulatorische und geopolitische Risiken. US-China-Spannungen k\\u00f6nnten Technologietransfers und klinische Datenpakete verz\\u00f6gern oder blockieren, was die vermeintliche strukturelle St\\u00e4rke ad absurdum f\\u00fchrt.\"\n      },\n      \"trade_rank\": 4,\n      \"exit_rules\": {\n        \"entry_cost\": 2.14,\n        \"take_profit_pct\": 50,\n        \"take_profit_price\": 3.21,\n        \"full_profit_pct\": 100,\n        \"full_profit_price\": 4.28,\n        \"stop_loss_pct\": -40,\n        \"stop_loss_price\": 1.28,\n        \"time_exit_dte_remaining\": 9,\n        \"time_exit_date\": \"2026-05-27\",\n        \"time_exit_min_profit_pct\": 20\n      }\n    },\n    {\n      \"ticker\": \"CVX\",\n      \"strategy\": \"LONG_CALL\",\n      \"iv_rank\": 46.4,\n      \"iv_gate_applied\": false,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-08-21\",\n        \"strike\": 190.0,\n        \"bid\": 10.8,\n        \"ask\": 12.0,\n        \"open_interest\": 345,\n        \"implied_vol\": 0.3161,\n        \"spread_ratio\": 0.1,\n        \"dte\": 95,\n        \"delta\": 0.5012,\n        \"data_source\": \"tradier\"\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 0.6386,\n        \"roi_net\": 0.4183,\n        \"spread_pct\": 0.1,\n        \"vega_loss\": 0.0204,\n        \"delta\": 0.5012,\n        \"iv_drop_assumed\": 0.02,\n        \"cost_basis\": 12.0,\n        \"is_spread\": false,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.12,\n        \"dte\": 95\n      },\n      \"dte_tier\": \"Mid-Term\",\n      \"annualized_roi\": 2.8292,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Mid-Term\",\n          \"dte\": 95,\n          \"option\": {\n            \"expiry\": \"2026-08-21\",\n            \"strike\": 190.0,\n            \"bid\": 10.8,\n            \"ask\": 12.0,\n            \"open_interest\": 345,\n            \"implied_vol\": 0.3161,\n            \"spread_ratio\": 0.1,\n            \"dte\": 95,\n            \"delta\": 0.5012,\n            \"data_source\": \"tradier\"\n          },\n          \"roi\": {\n            \"roi_gross\": 0.6386,\n            \"roi_net\": 0.4183,\n            \"spread_pct\": 0.1,\n            \"vega_loss\": 0.0204,\n            \"delta\": 0.5012,\n            \"iv_drop_assumed\": 0.02,\n            \"cost_basis\": 12.0,\n            \"is_spread\": false,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.12,\n            \"dte\": 95\n          },\n          \"annualized_roi\": 2.8292,\n          \"strategy\": \"LONG_CALL\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"mismatch\": 3.948,\n        \"z_score\": 0.21,\n        \"sigma_30d\": 0.0176,\n        \"price_move_48h\": 0.0037,\n        \"eps_drift\": 0.0035,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.5448\n      },\n      \"simulation\": {\n        \"current_price\": 191.1,\n        \"target_price\": 206.39,\n        \"hit_rate\": 0.6692,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0152,\n        \"alpha\": 0.00244\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Der Energiesektor steht unter erheblichem strukturellem Gegenwind durch die globale Energiewende und potenzielle Nachfrageschw\\u00e4che. Bei einem Fed Funds Rate von 3.64% und moderatem Wachstumsumfeld bleibt der \\u00d6lpreis anf\\u00e4llig f\\u00fcr Korrekturen, da OPEC+-\\u00dcberproduktion und schwache chinesische Nachfrage den WTI-Preis belasten k\\u00f6nnen \\u2014 CVX's Gewinne sind direkt an den Roh\\u00f6lpreis gebunden.\",\n          \"argument_2\": \"Die EPS-Diskrepanz zwischen yfinance (12.17) und SEC EDGAR (5.75) ist erheblich und signalisiert ernste Datenqualit\\u00e4tsprobleme. Eine solche Abweichung von \\u00fcber 50% deutet m\\u00f6glicherweise auf unterschiedliche Berechnungsgrundlagen (adjusted vs. GAAP) hin und macht eine verl\\u00e4ssliche fundamentale Bewertung nahezu unm\\u00f6glich \\u2014 das P/E-Verh\\u00e4ltnis und jede darauf basierende These ist damit fragw\\u00fcrdig.\",\n          \"argument_3\": \"Der Hinweis auf Trump-bezogene Energiek\\u00e4ufe in den News ist ein politisches Signal, kein fundamentales. Regulatory Tailwinds durch politische Pr\\u00e4ferenzen sind kurzlebig und nicht nachhaltig \\u2014 sie k\\u00f6nnen sich bei politischen Kurs\\u00e4nderungen oder Wahlergebnissen 2026/2027 schnell umkehren. Der 'Katalysator' ist damit strukturell schwach und nicht im Gewinn modellierbar.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"0% Hit-Rate bedeutet kein MC wurde durchgef\\u00fchrt \\u2014 keine statistische Validierung verf\\u00fcgbar. Dies erh\\u00f6ht die Unsicherheit erheblich, da keine quantitative Pfadanalyse die These st\\u00fctzt. Einsch\\u00e4tzung muss rein qualitativ erfolgen, was die Zuverl\\u00e4ssigkeit der Bewertung mindert.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Insider-Cluster aus 6 K\\u00e4ufern in 14 Tagen ist ein statistisch seltenes Signal, das Markteilnehmer oft untersch\\u00e4tzen, da es mit politischem L\\u00e4rm \\u00fcberlagert wird. Der Berkshire-R\\u00fcckzug aus Hyperscalern zugunsten von Energy signalisiert eine institutionelle Neubewertung des Sektors, die noch nicht vollst\\u00e4ndig eingepreist scheint. Das Biofuel-Profitabilit\\u00e4tssignal der US-Raffinerien erg\\u00e4nzt den strukturellen Repricing-Narrativ f\\u00fcr integrierte Majors wie CVX.\",\n        \"catalyst\": \"Institutionelle Sektorrrotation (Berkshire-Signal) kombiniert mit Insider-Cluster-K\\u00e4ufen als Best\\u00e4tigung eines bevorstehenden Q2-2026 Earnings Beats\",\n        \"bear_case\": \"\\u00d6lpreiskorrektur durch OPEC+-\\u00dcberproduktion oder schwache China-Nachfrage w\\u00fcrde CVX's Gewinne direkt komprimieren und die bullische These vollst\\u00e4ndig entwerten \\u2014 politische Tailwinds sch\\u00fctzen nicht vor Commodity-Risiken.\",\n        \"macro_assessment\": \"Neutrale Makrolage mit flacher Zinskurve (0.50%) und Fed Rate von 3.64% ist f\\u00fcr Energietitel moderat konstruktiv \\u2014 keine Rezessionsgefahr, aber auch kein starker R\\u00fcckenwind. Das Umfeld erlaubt moderate Bullen-Positionierung, rechtfertigt jedoch keine aggressiven Calls.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.5,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLE\",\n        \"rel_strength\": -0.0451\n      },\n      \"final_score\": 0.0848,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 0.4403,\n        \"annualized_roi\": 2.8292,\n        \"dte\": 95\n      },\n      \"trade_score\": {\n        \"total\": 51,\n        \"grade\": \"WATCH \\ud83d\\udfe0\",\n        \"grade_short\": \"WATCH\",\n        \"components\": {\n          \"signal_quality\": 17.9,\n          \"options_quality\": 23.5,\n          \"risk_deductions\": 0.0,\n          \"context_bonus\": 10.0\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=5/Surprise=4), guter ROI (42%) | Risiken: Sektor underperformt Markt\",\n        \"best_argument_for\": \"Insider-Cluster aus 6 K\\u00e4ufern in 14 Tagen ist ein statistisch seltenes Signal, das Markteilnehmer oft untersch\\u00e4tzen, da es mit politischem L\\u00e4rm \\u00fcberlagert wird. Der Berkshire-R\\u00fcckzug aus Hyperscalern zugunsten von Energy signalisiert eine institutionelle Neubewertung des Sektors, die noch nicht vollst\\u00e4ndig eingepreist scheint. Das Biofuel-Profitabilit\\u00e4tssignal der US-Raffinerien erg\\u00e4nzt den strukturellen Repricing-Narrativ f\\u00fcr integrierte Majors wie CVX.\",\n        \"best_argument_against\": \"Der Energiesektor steht unter erheblichem strukturellem Gegenwind durch die globale Energiewende und potenzielle Nachfrageschw\\u00e4che. Bei einem Fed Funds Rate von 3.64% und moderatem Wachstumsumfeld bleibt der \\u00d6lpreis anf\\u00e4llig f\\u00fcr Korrekturen, da OPEC+-\\u00dcberproduktion und schwache chinesische Nachfrage den WTI-Preis belasten k\\u00f6nnen \\u2014 CVX's Gewinne sind direkt an den Roh\\u00f6lpreis gebunden.\"\n      },\n      \"trade_rank\": 5,\n      \"exit_rules\": {\n        \"entry_cost\": 12.0,\n        \"take_profit_pct\": 50,\n        \"take_profit_price\": 18.0,\n        \"full_profit_pct\": 100,\n        \"full_profit_price\": 24.0,\n        \"stop_loss_pct\": -40,\n        \"stop_loss_price\": 7.2,\n        \"time_exit_dte_remaining\": 47,\n        \"time_exit_date\": \"2026-07-05\",\n        \"time_exit_min_profit_pct\": 20\n      }\n    }\n  ]\n}"
  },
  {
    "path": "outputs/daily_reports/2026-05-17.md",
    "content": "# Adaptive Asymmetry-Scanner – 2026-05-17\n\n**Generiert:** 2026-05-17 06:57 UTC\n**Trade-Vorschläge:** 5\n\n---\n## 1. BKR – LONG_CALL\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.1859`  \n**IV-Rank:** 54.1  \n**Trade-Score:** 65/100 — BUY 🟡  \n\n### Asymmetry-Analyse\n- **Impact:** 5/10\n- **Surprise:** 4/10\n- **Mismatch-Score:** 2.74\n- **Z-Score (48h):** 0.452\n- **48h-Move:** 0.0097\n- **EPS-Drift:** 0.0 (noise)\n\n**Asymmetry-Reasoning:**  \n> Der Markt preist den Rig-Count-Anstieg als kurzfristiges Rauschen ein, unterschätzt jedoch die strukturelle Margenverbesserung durch höhere Serviceraten in einem nachfragestarken Zyklus. Der Insider-Cluster von 7 Käufern signalisiert Insider-Konfidenz in den kommenden Quartalsbericht als konkreten Katalysator. Das gleichzeitige Strong-Sell-Rating erzeugt eine künstliche Diskrepanz, die eine Underreaction auf positive Fundamentaldaten begünstigt.\n\n**Katalysator:** Nächster Quartalsbericht Q2-2026 mit potenziellem Margenanstieg durch höhere Rig-Activity und Servicepreise; Insider-Cluster deutet auf Management-Konfidenz in Zahlen hin  \n**Time-to-Materialization:** 2-3 Monate  \n\n### Bear Case\n> Ein Rückgang des Ölpreises unter die Break-Even-Schwelle für neue Bohrprojekte würde den Rig-Count-Anstieg reversieren und BKR als zyklischen Underperformer exponieren, während die aktuelle Bewertung kaum Puffer bietet.  \n**Severity:** 6/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 75.0% (10,000 Pfade)\n- **Target-Preis:** $69.25\n- **Aktueller Preis:** $64.12\n- **σ:** 0.0209\n- **α (Signal-Drift):** 0.00310\n\n### Options-Vorschlag\n- **Expiry:** 2026-06-18 (31 DTE)\n- **Strike:** $65.00\n- **Bid/Ask:** $2.40 / $2.65\n- **Impl. Vol.:** 35.9%\n- **Open Interest:** 1,776\n- **Bid-Ask-Ratio:** 9.43%\n\n### 🚪 Exit-Regeln\n- **Entry-Kosten:** $2.65 pro Kontrakt\n- **Take-Profit:** bei $3.97 (+50%) → Hälfte schliessen\n- **Full-Profit:** bei $5.30 (+100%) → Rest schliessen\n- **Stop-Loss:** bei $1.59 (-40%) → Gesamte Position liquidieren\n- **Time-Exit:** ab 2026-06-03 (15 DTE Rest) — schliessen wenn Gewinn < +20%\n\n---\n## 2. CARR – LONG_CALL\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.1859`  \n**IV-Rank:** 56.6  \n**Trade-Score:** 57/100 — WATCH 🟠  \n\n### Asymmetry-Analyse\n- **Impact:** 5/10\n- **Surprise:** 4/10\n- **Mismatch-Score:** 2.109\n- **Z-Score (48h):** 0.578\n- **48h-Move:** 0.0178\n- **EPS-Drift:** 0.0 (noise)\n\n**Asymmetry-Reasoning:**  \n> Der Markt bewertet CARR primär als klassischen HVAC-Hersteller, unterschätzt aber die Margenpotenziale im hochmargigen Hyperscaler-Cooling-Segment. Insider-Cluster-Käufe innerhalb von 14 Tagen signalisieren informiertes Kapital, das vor Hyperscaler-Guidance-Events positioniert. Die strukturelle DC-Expansion ist ein mehrjähriger Trend, der in der Konsensschätzung noch nicht vollständig reflektiert ist.\n\n**Katalysator:** Hyperscaler Q2/Q3 2026 Guidance-Updates zu Data Center Capex und mögliche CARR-Auftragsankündigungen für Cooling-Infrastruktur  \n**Time-to-Materialization:** 2-3 Monate  \n\n### Bear Case\n> EPS-Diskrepanz (yfinance $3.20 vs. SEC $1.50) deutet auf mögliche Bewertungsüberdehnung hin; falls bereinigtes EPS maßgeblich ist, ist CARR fundamental teuer und anfällig für Enttäuschungen  \n**Severity:** 6/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 72.2% (10,000 Pfade)\n- **Target-Preis:** $69.84\n- **Aktueller Preis:** $64.67\n- **σ:** 0.0237\n- **α (Signal-Drift):** 0.00239\n\n### Options-Vorschlag\n- **Expiry:** 2026-09-18 (123 DTE)\n- **Strike:** $62.50\n- **Bid/Ask:** $6.80 / $7.40\n- **Impl. Vol.:** 37.9%\n- **Open Interest:** 376\n- **Bid-Ask-Ratio:** 8.11%\n\n### 🚪 Exit-Regeln\n- **Entry-Kosten:** $7.40 pro Kontrakt\n- **Take-Profit:** bei $11.10 (+50%) → Hälfte schliessen\n- **Full-Profit:** bei $14.80 (+100%) → Rest schliessen\n- **Stop-Loss:** bei $4.44 (-40%) → Gesamte Position liquidieren\n- **Time-Exit:** ab 2026-07-19 (61 DTE Rest) — schliessen wenn Gewinn < +20%\n\n---\n## 3. ABNB – LONG_CALL\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.1859`  \n**IV-Rank:** 15.3  \n**Trade-Score:** 54/100 — WATCH 🟠  \n\n### Asymmetry-Analyse\n- **Impact:** 5/10\n- **Surprise:** 4/10\n- **Mismatch-Score:** 0.997\n- **Z-Score (48h):** 0.801\n- **48h-Move:** 0.0134\n- **EPS-Drift:** 0.0 (noise)\n\n**Asymmetry-Reasoning:**  \n> Der Markt übergewichtet das politische AOC-Narrativ als fundamentales Risiko, obwohl Regulierungsängste für ABNB strukturell bekannt und historisch meist nicht in disruptive Policy umgesetzt wurden. Vier Insider-Käufe in 14 Tagen signalisieren, dass Interne den Abverkauf als übertrieben werten. Die flache Zinskurve im neutralen Makro-Regime dämpft den Gegenwind und lässt Einzelaktien-Alpha durch Earnings-Recovery zu.\n\n**Katalysator:** Sommerbuchungs-Saison 2026 als operativer Umsatzkatalysator kombiniert mit möglichem nächsten Earnings-Report (Q2 2026), der die angehobenen Analyst-Outlooks bestätigen oder übertreffen könnte.  \n**Time-to-Materialization:** 4-8 Wochen  \n\n### Bear Case\n> Regulatorische Eskalation in US-Kernstädten sowie anhaltender politischer Druck könnten Wachstumsprojektionen für die Plattform drücken und institutionelle Investoren zur Rotation aus Consumer Cyclicals veranlassen.  \n**Severity:** 6/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 60.9% (10,000 Pfade)\n- **Target-Preis:** $143.48\n- **Aktueller Preis:** $132.85\n- **σ:** 0.0200\n- **α (Signal-Drift):** 0.00164\n\n### Options-Vorschlag\n- **Expiry:** 2026-08-21 (95 DTE)\n- **Strike:** $140.00\n- **Bid/Ask:** $7.55 / $7.90\n- **Impl. Vol.:** 36.6%\n- **Open Interest:** 467\n- **Bid-Ask-Ratio:** 4.43%\n\n### 🚪 Exit-Regeln\n- **Entry-Kosten:** $7.90 pro Kontrakt\n- **Take-Profit:** bei $11.85 (+50%) → Hälfte schliessen\n- **Full-Profit:** bei $15.80 (+100%) → Rest schliessen\n- **Stop-Loss:** bei $4.74 (-40%) → Gesamte Position liquidieren\n- **Time-Exit:** ab 2026-07-05 (47 DTE Rest) — schliessen wenn Gewinn < +20%\n\n---\n## 4. BMY – LONG_CALL\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.0848`  \n**IV-Rank:** 49.3  \n**Trade-Score:** 53/100 — WATCH 🟠  \n\n### Asymmetry-Analyse\n- **Impact:** 5/10\n- **Surprise:** 4/10\n- **Mismatch-Score:** 3.347\n- **Z-Score (48h):** 0.331\n- **48h-Move:** 0.0057\n- **EPS-Drift:** 0.0 (noise)\n\n**Asymmetry-Reasoning:**  \n> Der Markt hat den Insider-Cluster-Kauf von 6 Personen in 14 Tagen noch nicht vollständig eingepreist, da derartige koordinierte Insiderkäufe statistisch signifikant für positive Erwartungen der Unternehmensführung sind. Die China-Kollaboration wird als geopolitisches Risiko wahrgenommen, obwohl sie Pipeline-Diversifizierung und Kostenreduktion bedeutet. Cendakimab-Marktprognosen 2026-2034 deuten auf unterschätzte Umsatzpotenziale hin.\n\n**Katalysator:** Positive Phase-II-Daten zur Carboplatin/Nivolumab-Studie in TNBC oder erste Meilensteinzahlungen aus der China-Drug-Development-Kollaboration innerhalb Q3 2026  \n**Time-to-Materialization:** 2-3 Monate  \n\n### Bear Case\n> Geopolitische Eskalation im US-China-Verhältnis könnte die Kollaboration gefährden, während gleichzeitig der EPS-Konflikt zwischen GAAP und Non-GAAP-Zahlen bei Neubeurteilung durch Analysten Abwertungspotenzial schafft.  \n**Severity:** 5/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 66.8% (10,000 Pfade)\n- **Target-Preis:** $61.56\n- **Aktueller Preis:** $57.00\n- **σ:** 0.0166\n- **α (Signal-Drift):** 0.00236\n\n### Options-Vorschlag\n- **Expiry:** 2026-06-05 (18 DTE)\n- **Strike:** $56.00\n- **Bid/Ask:** $2.00 / $2.14\n- **Impl. Vol.:** 27.4%\n- **Open Interest:** 993\n- **Bid-Ask-Ratio:** 6.54%\n\n### 🚪 Exit-Regeln\n- **Entry-Kosten:** $2.14 pro Kontrakt\n- **Take-Profit:** bei $3.21 (+50%) → Hälfte schliessen\n- **Full-Profit:** bei $4.28 (+100%) → Rest schliessen\n- **Stop-Loss:** bei $1.28 (-40%) → Gesamte Position liquidieren\n- **Time-Exit:** ab 2026-05-27 (9 DTE Rest) — schliessen wenn Gewinn < +20%\n\n---\n## 5. CVX – LONG_CALL\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.0848`  \n**IV-Rank:** 46.4  \n**Trade-Score:** 51/100 — WATCH 🟠  \n\n### Asymmetry-Analyse\n- **Impact:** 5/10\n- **Surprise:** 4/10\n- **Mismatch-Score:** 3.948\n- **Z-Score (48h):** 0.21\n- **48h-Move:** 0.0037\n- **EPS-Drift:** 0.0035 (noise)\n\n**Asymmetry-Reasoning:**  \n> Insider-Cluster aus 6 Käufern in 14 Tagen ist ein statistisch seltenes Signal, das Markteilnehmer oft unterschätzen, da es mit politischem Lärm überlagert wird. Der Berkshire-Rückzug aus Hyperscalern zugunsten von Energy signalisiert eine institutionelle Neubewertung des Sektors, die noch nicht vollständig eingepreist scheint. Das Biofuel-Profitabilitätssignal der US-Raffinerien ergänzt den strukturellen Repricing-Narrativ für integrierte Majors wie CVX.\n\n**Katalysator:** Institutionelle Sektorrrotation (Berkshire-Signal) kombiniert mit Insider-Cluster-Käufen als Bestätigung eines bevorstehenden Q2-2026 Earnings Beats  \n**Time-to-Materialization:** 2-3 Monate  \n\n### Bear Case\n> Ölpreiskorrektur durch OPEC+-Überproduktion oder schwache China-Nachfrage würde CVX's Gewinne direkt komprimieren und die bullische These vollständig entwerten — politische Tailwinds schützen nicht vor Commodity-Risiken.  \n**Severity:** 6/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 66.9% (10,000 Pfade)\n- **Target-Preis:** $206.39\n- **Aktueller Preis:** $191.10\n- **σ:** 0.0152\n- **α (Signal-Drift):** 0.00244\n\n### Options-Vorschlag\n- **Expiry:** 2026-08-21 (95 DTE)\n- **Strike:** $190.00\n- **Bid/Ask:** $10.80 / $12.00\n- **Impl. Vol.:** 31.6%\n- **Open Interest:** 345\n- **Bid-Ask-Ratio:** 10.00%\n\n### 🚪 Exit-Regeln\n- **Entry-Kosten:** $12.00 pro Kontrakt\n- **Take-Profit:** bei $18.00 (+50%) → Hälfte schliessen\n- **Full-Profit:** bei $24.00 (+100%) → Rest schliessen\n- **Stop-Loss:** bei $7.20 (-40%) → Gesamte Position liquidieren\n- **Time-Exit:** ab 2026-07-05 (47 DTE Rest) — schliessen wenn Gewinn < +20%\n\n---\n## Modell-Gewichte (aktuell)\n- Impact: `0.35`\n- Mismatch: `0.45`\n- EPS-Drift: `0.20`\n\n_Automatisch generiert durch Adaptive Asymmetry-Scanner v8.2_"
  },
  {
    "path": "outputs/daily_reports/2026-05-18.json",
    "content": "{\n  \"date\": \"2026-05-18\",\n  \"proposals\": [\n    {\n      \"ticker\": \"GOOG\",\n      \"strategy\": \"LONG_CALL\",\n      \"iv_rank\": 82.2,\n      \"iv_gate_applied\": false,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-06-05\",\n        \"strike\": 390.0,\n        \"bid\": 15.95,\n        \"ask\": 16.5,\n        \"open_interest\": 2638,\n        \"implied_vol\": 0.3381,\n        \"spread_ratio\": 0.0333,\n        \"dte\": 17,\n        \"delta\": 0.6324,\n        \"data_source\": \"tradier\"\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 1.22,\n        \"roi_net\": 0.9861,\n        \"spread_pct\": 0.0333,\n        \"vega_loss\": 0.1672,\n        \"delta\": 0.6324,\n        \"iv_drop_assumed\": 0.25,\n        \"cost_basis\": 16.5,\n        \"is_spread\": false,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.15,\n        \"dte\": 17\n      },\n      \"dte_tier\": \"Short-Term\",\n      \"annualized_roi\": 9.99,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Short-Term\",\n          \"dte\": 17,\n          \"option\": {\n            \"expiry\": \"2026-06-05\",\n            \"strike\": 390.0,\n            \"bid\": 15.95,\n            \"ask\": 16.5,\n            \"open_interest\": 2638,\n            \"implied_vol\": 0.3381,\n            \"spread_ratio\": 0.0333,\n            \"dte\": 17,\n            \"delta\": 0.6324,\n            \"data_source\": \"tradier\"\n          },\n          \"roi\": {\n            \"roi_gross\": 1.22,\n            \"roi_net\": 0.9861,\n            \"spread_pct\": 0.0333,\n            \"vega_loss\": 0.1672,\n            \"delta\": 0.6324,\n            \"iv_drop_assumed\": 0.25,\n            \"cost_basis\": 16.5,\n            \"is_spread\": false,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.15,\n            \"dte\": 17\n          },\n          \"annualized_roi\": 9.99,\n          \"strategy\": \"LONG_CALL\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 2.854,\n        \"z_score\": 0.629,\n        \"sigma_30d\": 0.0228,\n        \"price_move_48h\": 0.0143,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"weak\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.6768\n      },\n      \"simulation\": {\n        \"current_price\": 397.92,\n        \"target_price\": 429.75,\n        \"hit_rate\": 0.75,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.019,\n        \"alpha\": 0.00344\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Die Berkshire-Meldung ist bereits in den Schlagzeilen und damit potenziell vollst\\u00e4ndig eingepreist. Wenn Buffetts Nachfolger den Stake verdreifacht hat, ist dies ein \\u00f6ffentlich bekanntes 13F/13G-Filing \\u2014 institutionelle Algorithmen haben diesen Catalysator bereits am Tag der Ver\\u00f6ffentlichung verarbeitet. Die -1,4% in den letzten 48h deuten darauf hin, dass der Markt die News eher abverkauft als nachgekauft hat.\",\n          \"argument_2\": \"GOOG handelt bei ~$397,92, was einem KGV von ca. 27-30x auf dem SEC-EDGAR-EPS von 13,10 entspricht \\u2014 f\\u00fcr ein Unternehmen mit verlangsamtem Werbe-Kerngesch\\u00e4ft und massivem KI-Investitionsdruck (CapEx-Eskalation 2026). Der AI-Infrastruktur-Wettbewerb von Microsoft/OpenAI, Meta und Amazon bedroht Googles Suchmonopol strukturell. Die I/O-Konferenz als Katalysator k\\u00f6nnte eine klassische 'Buy the rumor, sell the news'-Situation sein.\",\n          \"argument_3\": \"Der EPS-Spread zwischen yfinance (14,45) und SEC EDGAR (13,10) betr\\u00e4gt zwar formal 0%, die absoluten Werte weichen aber um ~10% ab \\u2014 das ist ein Datenqualit\\u00e4tsproblem. Zudem fehlt ein Monte Carlo komplett (Hit-Rate 0 Pfade), was bedeutet, dass keine quantitative Absicherung der Bullish-These vorliegt. Das Cluster-Insider-Signal (3 K\\u00e4ufe in 14 Tagen) ist bei einem Mega-Cap wie GOOG routinem\\u00e4\\u00dfig und hat niedrigen Signalwert.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Der MC wurde schlicht nicht ausgef\\u00fchrt (0 Pfade), daher ist die 0%-Hit-Rate kein inhaltliches Signal, sondern ein Datenfehler. Ohne MC-Basis fehlt jede statistische Validierung der Preisziel-These. Dies erh\\u00f6ht die Unsicherheit erheblich.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt hat Berkshires Stake-Verdreifachung m\\u00f6glicherweise als reines Momentum-Signal abgetan, ohne die langfristige Value-Implikation eines qualit\\u00e4tsfokussierten Gro\\u00dfinvestors zu reprisen. Der I/O-Katalysator 2026 k\\u00f6nnte Alphabets KI-Monetarisierungsfortschritte erstmals konkret quantifizieren und Sch\\u00e4tzungsrevisionen ausl\\u00f6sen. Insider-Cluster plus institutionelle Neubewertung schaffen eine m\\u00f6gliche Doppelkatalyse innerhalb des 2-3-Monats-Fensters.\",\n        \"catalyst\": \"Google I/O 2026 Konferenz (KI-Monetarisierung, Gemini-Updates) kombiniert mit nachlaufender institutioneller Repricing-Welle nach Berkshires publiziertem Stake-Aufbau\",\n        \"bear_case\": \"Die Berkshire-News ist bereits eingepreist und der I/O-Event produziert einen klassischen 'Sell the news'-Effekt bei gleichzeitig entt\\u00e4uschenden Werbeumsatz-Zahlen Q2/2026 durch KI-Suchsubstitution.\",\n        \"macro_assessment\": \"Neutrale Makrolage (flache Kurve +0,50%, Fed Funds 3,64%) bietet weder R\\u00fccken- noch Gegenwind. Bei 4,32% 10Y-Rendite ist das KGV von ~30x f\\u00fcr GOOG moderat vertretbar, aber nicht attraktiv g\\u00fcnstig. Das Umfeld unterst\\u00fctzt selektive Mega-Cap-Positionen ohne besonderen Hebel.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.5,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLC\",\n        \"rel_strength\": 0.3694\n      },\n      \"final_score\": 0.1855,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 5.8006,\n        \"annualized_roi\": null,\n        \"dte\": 17\n      },\n      \"trade_score\": {\n        \"total\": 70,\n        \"grade\": \"BUY \\ud83d\\udfe1\",\n        \"grade_short\": \"BUY\",\n        \"components\": {\n          \"signal_quality\": 21.9,\n          \"options_quality\": 30.0,\n          \"risk_deductions\": -2.0,\n          \"context_bonus\": 20.0\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=6/Surprise=5), guter ROI (99%), positive Sektor-Relative-St\\u00e4rke\",\n        \"best_argument_for\": \"Der Markt hat Berkshires Stake-Verdreifachung m\\u00f6glicherweise als reines Momentum-Signal abgetan, ohne die langfristige Value-Implikation eines qualit\\u00e4tsfokussierten Gro\\u00dfinvestors zu reprisen. Der I/O-Katalysator 2026 k\\u00f6nnte Alphabets KI-Monetarisierungsfortschritte erstmals konkret quantifizieren und Sch\\u00e4tzungsrevisionen ausl\\u00f6sen. Insider-Cluster plus institutionelle Neubewertung schaffen eine m\\u00f6gliche Doppelkatalyse innerhalb des 2-3-Monats-Fensters.\",\n        \"best_argument_against\": \"Die Berkshire-Meldung ist bereits in den Schlagzeilen und damit potenziell vollst\\u00e4ndig eingepreist. Wenn Buffetts Nachfolger den Stake verdreifacht hat, ist dies ein \\u00f6ffentlich bekanntes 13F/13G-Filing \\u2014 institutionelle Algorithmen haben diesen Catalysator bereits am Tag der Ver\\u00f6ffentlichung verarbeitet. Die -1,4% in den letzten 48h deuten darauf hin, dass der Markt die News eher abverkauft als nachgekauft hat.\"\n      },\n      \"trade_rank\": 1,\n      \"exit_rules\": {\n        \"entry_cost\": 16.5,\n        \"take_profit_pct\": 50,\n        \"take_profit_price\": 24.75,\n        \"full_profit_pct\": 100,\n        \"full_profit_price\": 33.0,\n        \"stop_loss_pct\": -40,\n        \"stop_loss_price\": 9.9,\n        \"time_exit_dte_remaining\": 8,\n        \"time_exit_date\": \"2026-05-28\",\n        \"time_exit_min_profit_pct\": 20\n      }\n    },\n    {\n      \"ticker\": \"META\",\n      \"strategy\": \"LONG_CALL\",\n      \"iv_rank\": 46.3,\n      \"iv_gate_applied\": false,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-06-05\",\n        \"strike\": 600.0,\n        \"bid\": 22.05,\n        \"ask\": 22.65,\n        \"open_interest\": 514,\n        \"implied_vol\": 0.3185,\n        \"spread_ratio\": 0.0265,\n        \"dte\": 17,\n        \"delta\": 0.6015,\n        \"data_source\": \"tradier\"\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 1.2944,\n        \"roi_net\": 1.2057,\n        \"spread_pct\": 0.0265,\n        \"vega_loss\": 0.0357,\n        \"delta\": 0.6015,\n        \"iv_drop_assumed\": 0.05,\n        \"cost_basis\": 22.65,\n        \"is_spread\": false,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.15,\n        \"dte\": 17\n      },\n      \"dte_tier\": \"Short-Term\",\n      \"annualized_roi\": 9.99,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Short-Term\",\n          \"dte\": 17,\n          \"option\": {\n            \"expiry\": \"2026-06-05\",\n            \"strike\": 600.0,\n            \"bid\": 22.05,\n            \"ask\": 22.65,\n            \"open_interest\": 514,\n            \"implied_vol\": 0.3185,\n            \"spread_ratio\": 0.0265,\n            \"dte\": 17,\n            \"delta\": 0.6015,\n            \"data_source\": \"tradier\"\n          },\n          \"roi\": {\n            \"roi_gross\": 1.2944,\n            \"roi_net\": 1.2057,\n            \"spread_pct\": 0.0265,\n            \"vega_loss\": 0.0357,\n            \"delta\": 0.6015,\n            \"iv_drop_assumed\": 0.05,\n            \"cost_basis\": 22.65,\n            \"is_spread\": false,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.15,\n            \"dte\": 17\n          },\n          \"annualized_roi\": 9.99,\n          \"strategy\": \"LONG_CALL\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 5.241,\n        \"z_score\": 0.152,\n        \"sigma_30d\": 0.0257,\n        \"price_move_48h\": 0.0039,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.5288\n      },\n      \"simulation\": {\n        \"current_price\": 609.3,\n        \"target_price\": 658.04,\n        \"hit_rate\": 0.62,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0236,\n        \"alpha\": 0.00097\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Die 8.000 Stellenk\\u00fcrzungen signalisieren zwar Effizienz, doch der massive AI-Capex-Push (Rechenzentren, Modelltraining) k\\u00f6nnte die eingesparten Personalkosten deutlich \\u00fcbersteigen. Der Markt k\\u00f6nnte die operativen Kosteneinsparungen bereits vollst\\u00e4ndig eingepreist haben, w\\u00e4hrend der ROI der AI-Investitionen auf Jahressicht unklar bleibt und den EPS-Leverage verz\\u00f6gert.\",\n          \"argument_2\": \"Die EPS-Diskrepanz zwischen yfinance ($36.16) und SEC EDGAR ($27.52) ist auff\\u00e4llig und deutet auf m\\u00f6gliche Normalisierungseffekte oder Einmalposten hin. Wenn das 'wahre' operative EPS n\\u00e4her an $27.52 liegt, ist META bei $609 mit einem KGV von ~22x bewertet \\u2014 f\\u00fcr eine Aktie mit steigendem Capex-Profil kein billiges Schn\\u00e4ppchen mehr.\",\n          \"argument_3\": \"Der Werbemarktzyklus bleibt ein kritisches Risiko: Verlangsamung der Digitalwerbung bei Rezessionszeichen, zunehmende Regulierungsdichte in der EU sowie Konkurrenz durch TikTok und YouTube Shorts setzen das Revenue-Wachstum unter Druck. Ein Schw\\u00e4cheln der Ad-Einnahmen im Q2/Q3 2026 w\\u00fcrde den Restrukturierungs-Narrativ sofort \\u00fcberlagern.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Der Quick MC wurde nicht durchgef\\u00fchrt (0 Pfade), daher ist die 0%-Angabe kein inhaltliches Signal, sondern ein technisches Datenloch. F\\u00fcr eine Aktie mit ~30% historischer Volatilit\\u00e4t und einem laufenden Restrukturierungsnarrativ w\\u00e4re eine realistische 30d-Hit-Rate f\\u00fcr eine moderate Aufw\\u00e4rtsbewegung im Bereich 45-60% zu erwarten. Keine verwertbare statistische Aussage m\\u00f6glich.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt fixiert sich auf den negativen Headline-Effekt der Stellenk\\u00fcrzungen und \\u00fcbersieht die strukturelle Operating-Leverage-Verbesserung. Insider-Cluster-K\\u00e4ufe bei 4 Personen innerhalb von 14 Tagen sind ein statistisch seltenes Signal, das informierten Optimismus auf Management-Ebene reflektiert. Der eigentliche Katalysator \\u2014 verbesserte Margen durch Effizienz bei gleichzeitig skalierendem AI-Umsatz \\u2014 wird erst mit dem n\\u00e4chsten Earnings-Print sichtbar.\",\n        \"catalyst\": \"Q2 2026 Earnings-Report mit verbesserter Operating Margin durch Headcount-Reduktion und AI-Monetarisierung (Advantage+ Ads, Llama-Integration)\",\n        \"bear_case\": \"Massiver AI-Capex \\u00fcbersteigt Personalkosteneinsparungen und dr\\u00fcckt Free Cash Flow, w\\u00e4hrend ein Schw\\u00e4cheln des Digitalwerbemarkts im Sommer 2026 das gesamte Restrukturierungs-Narrativ untergr\\u00e4bt.\",\n        \"macro_assessment\": \"Das neutrale Makroumfeld (flache Kurve, Fed Funds bei 3.64%) ist f\\u00fcr META moderat unterst\\u00fctzend: Keine invertierte Kurve die Rezessionsangst ausl\\u00f6st, aber auch kein expansiver R\\u00fcckenwind. Bei 4.32% 10Y-Rendite bleibt der Diskontierungsdruck auf Growth-Aktien sp\\u00fcrbar, begrenzt jedoch das Upside nicht strukturell. Neutral-Makro ist f\\u00fcr einen idiosynkratischen Restrukturierungs-Trade ausreichend.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.5,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLC\",\n        \"rel_strength\": 0.0493\n      },\n      \"final_score\": 0.0842,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 7.0924,\n        \"annualized_roi\": null,\n        \"dte\": 17\n      },\n      \"trade_score\": {\n        \"total\": 70,\n        \"grade\": \"BUY \\ud83d\\udfe1\",\n        \"grade_short\": \"BUY\",\n        \"components\": {\n          \"signal_quality\": 21.9,\n          \"options_quality\": 28.0,\n          \"risk_deductions\": 0.0,\n          \"context_bonus\": 20.0\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=6/Surprise=5), guter ROI (121%), positive Sektor-Relative-St\\u00e4rke\",\n        \"best_argument_for\": \"Der Markt fixiert sich auf den negativen Headline-Effekt der Stellenk\\u00fcrzungen und \\u00fcbersieht die strukturelle Operating-Leverage-Verbesserung. Insider-Cluster-K\\u00e4ufe bei 4 Personen innerhalb von 14 Tagen sind ein statistisch seltenes Signal, das informierten Optimismus auf Management-Ebene reflektiert. Der eigentliche Katalysator \\u2014 verbesserte Margen durch Effizienz bei gleichzeitig skalierendem AI-Umsatz \\u2014 wird erst mit dem n\\u00e4chsten Earnings-Print sichtbar.\",\n        \"best_argument_against\": \"Die 8.000 Stellenk\\u00fcrzungen signalisieren zwar Effizienz, doch der massive AI-Capex-Push (Rechenzentren, Modelltraining) k\\u00f6nnte die eingesparten Personalkosten deutlich \\u00fcbersteigen. Der Markt k\\u00f6nnte die operativen Kosteneinsparungen bereits vollst\\u00e4ndig eingepreist haben, w\\u00e4hrend der ROI der AI-Investitionen auf Jahressicht unklar bleibt und den EPS-Leverage verz\\u00f6gert.\"\n      },\n      \"trade_rank\": 2,\n      \"exit_rules\": {\n        \"entry_cost\": 22.65,\n        \"take_profit_pct\": 50,\n        \"take_profit_price\": 33.97,\n        \"full_profit_pct\": 100,\n        \"full_profit_price\": 45.3,\n        \"stop_loss_pct\": -40,\n        \"stop_loss_price\": 13.59,\n        \"time_exit_dte_remaining\": 8,\n        \"time_exit_date\": \"2026-05-28\",\n        \"time_exit_min_profit_pct\": 20\n      }\n    },\n    {\n      \"ticker\": \"AMD\",\n      \"strategy\": \"LONG_CALL\",\n      \"iv_rank\": 81.5,\n      \"iv_gate_applied\": false,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-06-05\",\n        \"strike\": 420.0,\n        \"bid\": 23.0,\n        \"ask\": 23.85,\n        \"open_interest\": 448,\n        \"implied_vol\": 0.6912,\n        \"spread_ratio\": 0.0356,\n        \"dte\": 17,\n        \"delta\": 0.5541,\n        \"data_source\": \"tradier\"\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 1.3886,\n        \"roi_net\": 1.0584,\n        \"spread_pct\": 0.0356,\n        \"vega_loss\": 0.2589,\n        \"delta\": 0.5541,\n        \"iv_drop_assumed\": 0.25,\n        \"cost_basis\": 23.85,\n        \"is_spread\": false,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.15,\n        \"dte\": 17\n      },\n      \"dte_tier\": \"Short-Term\",\n      \"annualized_roi\": 9.99,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Short-Term\",\n          \"dte\": 17,\n          \"option\": {\n            \"expiry\": \"2026-06-05\",\n            \"strike\": 420.0,\n            \"bid\": 23.0,\n            \"ask\": 23.85,\n            \"open_interest\": 448,\n            \"implied_vol\": 0.6912,\n            \"spread_ratio\": 0.0356,\n            \"dte\": 17,\n            \"delta\": 0.5541,\n            \"data_source\": \"tradier\"\n          },\n          \"roi\": {\n            \"roi_gross\": 1.3886,\n            \"roi_net\": 1.0584,\n            \"spread_pct\": 0.0356,\n            \"vega_loss\": 0.2589,\n            \"delta\": 0.5541,\n            \"iv_drop_assumed\": 0.25,\n            \"cost_basis\": 23.85,\n            \"is_spread\": false,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.15,\n            \"dte\": 17\n          },\n          \"annualized_roi\": 9.99,\n          \"strategy\": \"LONG_CALL\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 4,\n        \"mismatch\": 1.241,\n        \"z_score\": 0.952,\n        \"sigma_30d\": 0.0505,\n        \"price_move_48h\": 0.048,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"weak\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.5434\n      },\n      \"simulation\": {\n        \"current_price\": 415.07,\n        \"target_price\": 474.84,\n        \"hit_rate\": 0.5536,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0429,\n        \"alpha\": 0.00049\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Der Citi-Analyst setzt das Kursziel auf $460 und beh\\u00e4lt dennoch ein 'Neutral'-Rating \\u2014 dies ist ein klassisches Warnsignal. Der Markt hat die CPU-Boom-Narrative bereits weitgehend eingepreist, wie der aktuelle Kurs von $415 bei einem P/E von \\u00fcber 30x zeigt. Die -4,8% Bewegung in 48h deutet darauf hin, dass der Katalysator (Citi PT-Erh\\u00f6hung) bereits zum Selloff-Ausl\\u00f6ser wurde, nicht zum Kursanstieg.\",\n          \"argument_2\": \"Die massive EPS-Diskrepanz zwischen yfinance ($12,95) und SEC EDGAR ($3,01) ist ein erhebliches Datenqualit\\u00e4ts-Risiko. Wenn die SEC-Zahl die normalisierte operative Realit\\u00e4t widerspiegelt, ist AMD bei $415 auf Basis echter GAAP-Earnings mit einem KGV von \\u00fcber 138x bewertet \\u2014 eine Bewertung, die bei jedem Makro-Schock oder Wachstumsentt\\u00e4uschung massiv komprimieren kann.\",\n          \"argument_3\": \"Der agentic CPU-Boom ist ein narrativer Katalysator, der bereits von mindestens zwei Analysten (Citi, weitere PT-Erh\\u00f6hungen) kommuniziert wurde. Wenn das Signal bekannt ist, ist es eingepreist. Gleichzeitig gewinnt Intel trotz Verlusten PT-Erh\\u00f6hungen \\u2014 das signalisiert Sektor-Rotation-Risiko, bei dem Kapital aus AMD in g\\u00fcnstigere Intel-Positionen rotiert.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Die 0% Hit-Rate durch fehlenden MC-Lauf ist uninformativ, nicht bearish per se. Bei einer impliziten Volatilit\\u00e4t von AMD (historisch 45-60%) w\\u00e4re eine Hit-Rate von 55-70% f\\u00fcr Bullish-Ziele +10% in 30d realistisch. Keine MC-Daten bedeuten erh\\u00f6hte Modellunsicherheit \\u2014 Concern-Level wird auf medium gesetzt.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt untersch\\u00e4tzt das Cluster-Insider-Kaufsignal (4 Insider in 14 Tagen), das bei AMD historisch ein starkes Vorl\\u00e4ufersignal f\\u00fcr strukturelle Neubewertungen darstellt. Das 'Neutral'-Rating bei gleichzeitiger PT-Erh\\u00f6hung auf $460 erzeugt eine Analyst-Inkongruenz, die institutionelle K\\u00e4ufer oft erst verz\\u00f6gert aktiviert. Die -4,8% Reaktion auf positive Nachrichten deutet auf kurzfristigen Verkaufsdruck ohne fundamentalen Abbau der Wachstumsthese hin.\",\n        \"catalyst\": \"AMD Q2 2026 Earnings mit GPU/CPU Data-Center-Revenue-Beat + konkrete Agentic-AI-Designwins bei Hyperscalern als Best\\u00e4tigung der $132Mrd-CPU-Markt-These\",\n        \"bear_case\": \"EPS-Diskrepanz (GAAP $3,01 vs. non-GAAP $12,95) enth\\u00fcllt massive Stock-Based-Compensation-Last; bei Multiples-Kompression in einem Risk-Off-Szenario f\\u00e4llt AMD \\u00fcberproportional, da die Bewertung vollst\\u00e4ndig auf zuk\\u00fcnftigem Wachstum basiert.\",\n        \"macro_assessment\": \"Das neutrale Makro-Regime (Kurve +0,50%, Fed Funds 3,64%) ist f\\u00fcr AMD ein moderater R\\u00fcckenwind: Keine Rezessionsgefahr dr\\u00fcckt Risk-On-Sentiment, aber die flache Kurve signalisiert kein Wachstumsboom-Umfeld. Growth-Aktien wie AMD profitieren von stabilen Zinsen, sind aber anf\\u00e4llig bei erneuten Zinsanstiegen. Gesamteinsch\\u00e4tzung: Makro neutral-bis-leicht-positiv f\\u00fcr diese Position.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.5,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLK\",\n        \"rel_strength\": 0.7591\n      },\n      \"final_score\": 0.1855,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 6.2259,\n        \"annualized_roi\": null,\n        \"dte\": 17\n      },\n      \"trade_score\": {\n        \"total\": 64,\n        \"grade\": \"BUY \\ud83d\\udfe1\",\n        \"grade_short\": \"BUY\",\n        \"components\": {\n          \"signal_quality\": 19.6,\n          \"options_quality\": 26.5,\n          \"risk_deductions\": -2.0,\n          \"context_bonus\": 20.0\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=6/Surprise=4), guter ROI (106%), positive Sektor-Relative-St\\u00e4rke\",\n        \"best_argument_for\": \"Der Markt untersch\\u00e4tzt das Cluster-Insider-Kaufsignal (4 Insider in 14 Tagen), das bei AMD historisch ein starkes Vorl\\u00e4ufersignal f\\u00fcr strukturelle Neubewertungen darstellt. Das 'Neutral'-Rating bei gleichzeitiger PT-Erh\\u00f6hung auf $460 erzeugt eine Analyst-Inkongruenz, die institutionelle K\\u00e4ufer oft erst verz\\u00f6gert aktiviert. Die -4,8% Reaktion auf positive Nachrichten deutet auf kurzfristigen Verkaufsdruck ohne fundamentalen Abbau der Wachstumsthese hin.\",\n        \"best_argument_against\": \"Der Citi-Analyst setzt das Kursziel auf $460 und beh\\u00e4lt dennoch ein 'Neutral'-Rating \\u2014 dies ist ein klassisches Warnsignal. Der Markt hat die CPU-Boom-Narrative bereits weitgehend eingepreist, wie der aktuelle Kurs von $415 bei einem P/E von \\u00fcber 30x zeigt. Die -4,8% Bewegung in 48h deutet darauf hin, dass der Katalysator (Citi PT-Erh\\u00f6hung) bereits zum Selloff-Ausl\\u00f6ser wurde, nicht zum Kursanstieg.\"\n      },\n      \"trade_rank\": 3,\n      \"exit_rules\": {\n        \"entry_cost\": 23.85,\n        \"take_profit_pct\": 50,\n        \"take_profit_price\": 35.78,\n        \"full_profit_pct\": 100,\n        \"full_profit_price\": 47.7,\n        \"stop_loss_pct\": -40,\n        \"stop_loss_price\": 14.31,\n        \"time_exit_dte_remaining\": 8,\n        \"time_exit_date\": \"2026-05-28\",\n        \"time_exit_min_profit_pct\": 20\n      }\n    },\n    {\n      \"ticker\": \"ABNB\",\n      \"strategy\": \"LONG_CALL\",\n      \"iv_rank\": 8.6,\n      \"iv_gate_applied\": false,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-06-05\",\n        \"strike\": 139.0,\n        \"bid\": 2.27,\n        \"ask\": 2.51,\n        \"open_interest\": 153,\n        \"implied_vol\": 0.3333,\n        \"spread_ratio\": 0.0956,\n        \"dte\": 17,\n        \"delta\": 0.3792,\n        \"data_source\": \"tradier\"\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 1.6271,\n        \"roi_net\": 1.3648,\n        \"spread_pct\": 0.0956,\n        \"vega_loss\": 0.0711,\n        \"delta\": 0.3792,\n        \"iv_drop_assumed\": 0.05,\n        \"cost_basis\": 2.51,\n        \"is_spread\": false,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.15,\n        \"dte\": 17\n      },\n      \"dte_tier\": \"Short-Term\",\n      \"annualized_roi\": 9.99,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Short-Term\",\n          \"dte\": 17,\n          \"option\": {\n            \"expiry\": \"2026-06-05\",\n            \"strike\": 139.0,\n            \"bid\": 2.27,\n            \"ask\": 2.51,\n            \"open_interest\": 153,\n            \"implied_vol\": 0.3333,\n            \"spread_ratio\": 0.0956,\n            \"dte\": 17,\n            \"delta\": 0.3792,\n            \"data_source\": \"tradier\"\n          },\n          \"roi\": {\n            \"roi_gross\": 1.6271,\n            \"roi_net\": 1.3648,\n            \"spread_pct\": 0.0956,\n            \"vega_loss\": 0.0711,\n            \"delta\": 0.3792,\n            \"iv_drop_assumed\": 0.05,\n            \"cost_basis\": 2.51,\n            \"is_spread\": false,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.15,\n            \"dte\": 17\n          },\n          \"annualized_roi\": 9.99,\n          \"strategy\": \"LONG_CALL\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"mismatch\": 4.731,\n        \"z_score\": 0.054,\n        \"sigma_30d\": 0.0168,\n        \"price_move_48h\": 0.0009,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.561\n      },\n      \"simulation\": {\n        \"current_price\": 134.71,\n        \"target_price\": 145.48,\n        \"hit_rate\": 0.6688,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.02,\n        \"alpha\": 0.00188\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Der Q1-Beat und die Analyst-Upgrades sind bereits vollst\\u00e4ndig eingepreist. ABNB notiert bei $134.71, und die positiven Earnings-Reaktionen d\\u00fcrften im Kurs reflektiert sein. Ein klassischer 'Buy the rumor, sell the news'-Effekt bedeutet, dass das Call-Asymmetrie-Argument substanziell geschw\\u00e4cht ist, da der Markt forward-looking agiert und zuk\\u00fcnftige Guidance-Events bereits antizipiert.\",\n          \"argument_2\": \"Regulatorisches Risiko ist massiv und strukturell untersch\\u00e4tzt: Die AOC-Kritik bez\\u00fcglich Verdr\\u00e4ngungseffekten durch Airbnb ist symptomatisch f\\u00fcr wachsenden politischen Druck auf Kurzzeitvermietungsplattformen weltweit. Mehrere St\\u00e4dte und L\\u00e4nder versch\\u00e4rfen 2026 ihre Regulierungen, was sowohl die Angebotsseite als auch das Wachstum in Kernm\\u00e4rkten fundamental bedroht. Dieser regulatorische Gegenwind ist schwer quantifizierbar, aber sehr real.\",\n          \"argument_3\": \"Das EPS-Divergenz-Signal zwischen yfinance ($6.04) und SEC EDGAR ($4.05) deutet auf signifikante Qualit\\u00e4tsunterschiede in den Earnings-Daten hin \\u2014 m\\u00f6glicherweise Non-GAAP-Bereinigungen, die die operative Realit\\u00e4t verschleiern. Bei einem Consumer-Cyclical-Titel in einem neutralen Makro-Umfeld mit flacher Zinskurve (0.50%) und einem Fed-Rate von 3.64% bleibt der Kostendruck auf diskretion\\u00e4res Reisen erh\\u00f6ht, was Revisionsrisiken f\\u00fcr H2 2026 schafft.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"0% Hit-Rate bedeutet, dass kein Quick MC durchgef\\u00fchrt wurde \\u2014 keine statistisch valide Grundlage f\\u00fcr Wahrscheinlichkeitsaussagen. Die Abwesenheit der MC-Daten erh\\u00f6ht die Unsicherheit erheblich und verhindert eine quantitative Validierung des Upside-Potenzials. Ohne MC-Ergebnisse muss st\\u00e4rker auf qualitative Faktoren und Red-Team-Argumente gewichtet werden.\",\n          \"concern_level\": \"high\"\n        },\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Insider-Cluster (4 K\\u00e4ufe in 14 Tagen) signalisiert echtes Conviction von innen heraus, was der Markt oft zu langsam einpreist. Die AI-Coding-Effizienz (60%) ist ein struktureller Margenvorteil, der in DCF-Modellen noch nicht vollst\\u00e4ndig reflektiert sein d\\u00fcrfte. Das n\\u00e4chste Guidance-Event bietet einen konkreten Katalysator f\\u00fcr eine Neubewertung.\",\n        \"catalyst\": \"N\\u00e4chstes Guidance-Event / Q2 2026 Earnings mit AI-Margin-Expansion-Best\\u00e4tigung\",\n        \"bear_case\": \"Regulatorischer Druck auf Kurzzeitvermietungen w\\u00e4chst politisch und legislativ weltweit, was das Angebotsmodell strukturell bedroht und Wachstumsrevisionen f\\u00fcr 2026/2027 erzwingen k\\u00f6nnte.\",\n        \"macro_assessment\": \"Neutrale Makrolage (Kurve +0.50%, Fed 3.64%) liefert weder strukturellen R\\u00fccken- noch Gegenwind. Consumer Cyclicals sind bei diesem Zinsniveau moderat belastet \\u2014 Reisebudgets bleiben unter Druck, aber Rezessionssignal fehlt. Insgesamt kein Makro-Veto, aber erh\\u00f6hte Skepsis gegen\\u00fcber aggressiven Upside-Zielen ist angebracht.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.5,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLY\",\n        \"rel_strength\": -0.0069\n      },\n      \"final_score\": 0.0842,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 8.0282,\n        \"annualized_roi\": null,\n        \"dte\": 17\n      },\n      \"trade_score\": {\n        \"total\": 51,\n        \"grade\": \"WATCH \\ud83d\\udfe0\",\n        \"grade_short\": \"WATCH\",\n        \"components\": {\n          \"signal_quality\": 17.9,\n          \"options_quality\": 23.5,\n          \"risk_deductions\": 0.0,\n          \"context_bonus\": 10.0\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=5/Surprise=4), guter ROI (136%), g\\u00fcnstige IV (9%)\",\n        \"best_argument_for\": \"Der Insider-Cluster (4 K\\u00e4ufe in 14 Tagen) signalisiert echtes Conviction von innen heraus, was der Markt oft zu langsam einpreist. Die AI-Coding-Effizienz (60%) ist ein struktureller Margenvorteil, der in DCF-Modellen noch nicht vollst\\u00e4ndig reflektiert sein d\\u00fcrfte. Das n\\u00e4chste Guidance-Event bietet einen konkreten Katalysator f\\u00fcr eine Neubewertung.\",\n        \"best_argument_against\": \"Der Q1-Beat und die Analyst-Upgrades sind bereits vollst\\u00e4ndig eingepreist. ABNB notiert bei $134.71, und die positiven Earnings-Reaktionen d\\u00fcrften im Kurs reflektiert sein. Ein klassischer 'Buy the rumor, sell the news'-Effekt bedeutet, dass das Call-Asymmetrie-Argument substanziell geschw\\u00e4cht ist, da der Markt forward-looking agiert und zuk\\u00fcnftige Guidance-Events bereits antizipiert.\"\n      },\n      \"trade_rank\": 5,\n      \"exit_rules\": {\n        \"entry_cost\": 2.51,\n        \"take_profit_pct\": 50,\n        \"take_profit_price\": 3.76,\n        \"full_profit_pct\": 100,\n        \"full_profit_price\": 5.02,\n        \"stop_loss_pct\": -40,\n        \"stop_loss_price\": 1.51,\n        \"time_exit_dte_remaining\": 8,\n        \"time_exit_date\": \"2026-05-28\",\n        \"time_exit_min_profit_pct\": 20\n      }\n    }\n  ]\n}"
  },
  {
    "path": "outputs/daily_reports/2026-05-18.md",
    "content": "# Adaptive Asymmetry-Scanner – 2026-05-18\n\n**Generiert:** 2026-05-18 16:49 UTC\n**Trade-Vorschläge:** 4\n\n---\n## 1. GOOG – LONG_CALL\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.1855`  \n**IV-Rank:** 82.2  \n**Trade-Score:** 70/100 — BUY 🟡  \n\n### Asymmetry-Analyse\n- **Impact:** 6/10\n- **Surprise:** 5/10\n- **Mismatch-Score:** 2.854\n- **Z-Score (48h):** 0.629\n- **48h-Move:** 0.0143\n- **EPS-Drift:** 0.0 (noise)\n\n**Asymmetry-Reasoning:**  \n> Der Markt hat Berkshires Stake-Verdreifachung möglicherweise als reines Momentum-Signal abgetan, ohne die langfristige Value-Implikation eines qualitätsfokussierten Großinvestors zu reprisen. Der I/O-Katalysator 2026 könnte Alphabets KI-Monetarisierungsfortschritte erstmals konkret quantifizieren und Schätzungsrevisionen auslösen. Insider-Cluster plus institutionelle Neubewertung schaffen eine mögliche Doppelkatalyse innerhalb des 2-3-Monats-Fensters.\n\n**Katalysator:** Google I/O 2026 Konferenz (KI-Monetarisierung, Gemini-Updates) kombiniert mit nachlaufender institutioneller Repricing-Welle nach Berkshires publiziertem Stake-Aufbau  \n**Time-to-Materialization:** 2-3 Monate  \n\n### Bear Case\n> Die Berkshire-News ist bereits eingepreist und der I/O-Event produziert einen klassischen 'Sell the news'-Effekt bei gleichzeitig enttäuschenden Werbeumsatz-Zahlen Q2/2026 durch KI-Suchsubstitution.  \n**Severity:** 6/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 75.0% (10,000 Pfade)\n- **Target-Preis:** $429.75\n- **Aktueller Preis:** $397.92\n- **σ:** 0.0190\n- **α (Signal-Drift):** 0.00344\n\n### Options-Vorschlag\n- **Expiry:** 2026-06-05 (17 DTE)\n- **Strike:** $390.00\n- **Bid/Ask:** $15.95 / $16.50\n- **Impl. Vol.:** 33.8%\n- **Open Interest:** 2,638\n- **Bid-Ask-Ratio:** 3.33%\n\n### 🚪 Exit-Regeln\n- **Entry-Kosten:** $16.50 pro Kontrakt\n- **Take-Profit:** bei $24.75 (+50%) → Hälfte schliessen\n- **Full-Profit:** bei $33.00 (+100%) → Rest schliessen\n- **Stop-Loss:** bei $9.90 (-40%) → Gesamte Position liquidieren\n- **Time-Exit:** ab 2026-05-28 (8 DTE Rest) — schliessen wenn Gewinn < +20%\n\n---\n## 2. META – LONG_CALL\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.0842`  \n**IV-Rank:** 46.3  \n**Trade-Score:** 70/100 — BUY 🟡  \n\n### Asymmetry-Analyse\n- **Impact:** 6/10\n- **Surprise:** 5/10\n- **Mismatch-Score:** 5.241\n- **Z-Score (48h):** 0.152\n- **48h-Move:** 0.0039\n- **EPS-Drift:** 0.0 (noise)\n\n**Asymmetry-Reasoning:**  \n> Der Markt fixiert sich auf den negativen Headline-Effekt der Stellenkürzungen und übersieht die strukturelle Operating-Leverage-Verbesserung. Insider-Cluster-Käufe bei 4 Personen innerhalb von 14 Tagen sind ein statistisch seltenes Signal, das informierten Optimismus auf Management-Ebene reflektiert. Der eigentliche Katalysator — verbesserte Margen durch Effizienz bei gleichzeitig skalierendem AI-Umsatz — wird erst mit dem nächsten Earnings-Print sichtbar.\n\n**Katalysator:** Q2 2026 Earnings-Report mit verbesserter Operating Margin durch Headcount-Reduktion und AI-Monetarisierung (Advantage+ Ads, Llama-Integration)  \n**Time-to-Materialization:** 2-3 Monate  \n\n### Bear Case\n> Massiver AI-Capex übersteigt Personalkosteneinsparungen und drückt Free Cash Flow, während ein Schwächeln des Digitalwerbemarkts im Sommer 2026 das gesamte Restrukturierungs-Narrativ untergräbt.  \n**Severity:** 6/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 62.0% (10,000 Pfade)\n- **Target-Preis:** $658.04\n- **Aktueller Preis:** $609.30\n- **σ:** 0.0236\n- **α (Signal-Drift):** 0.00097\n\n### Options-Vorschlag\n- **Expiry:** 2026-06-05 (17 DTE)\n- **Strike:** $600.00\n- **Bid/Ask:** $22.05 / $22.65\n- **Impl. Vol.:** 31.9%\n- **Open Interest:** 514\n- **Bid-Ask-Ratio:** 2.65%\n\n### 🚪 Exit-Regeln\n- **Entry-Kosten:** $22.65 pro Kontrakt\n- **Take-Profit:** bei $33.97 (+50%) → Hälfte schliessen\n- **Full-Profit:** bei $45.30 (+100%) → Rest schliessen\n- **Stop-Loss:** bei $13.59 (-40%) → Gesamte Position liquidieren\n- **Time-Exit:** ab 2026-05-28 (8 DTE Rest) — schliessen wenn Gewinn < +20%\n\n---\n## 3. AMD – LONG_CALL\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.1855`  \n**IV-Rank:** 81.5  \n**Trade-Score:** 64/100 — BUY 🟡  \n\n### Asymmetry-Analyse\n- **Impact:** 6/10\n- **Surprise:** 4/10\n- **Mismatch-Score:** 1.241\n- **Z-Score (48h):** 0.952\n- **48h-Move:** 0.048\n- **EPS-Drift:** 0.0 (noise)\n\n**Asymmetry-Reasoning:**  \n> Der Markt unterschätzt das Cluster-Insider-Kaufsignal (4 Insider in 14 Tagen), das bei AMD historisch ein starkes Vorläufersignal für strukturelle Neubewertungen darstellt. Das 'Neutral'-Rating bei gleichzeitiger PT-Erhöhung auf $460 erzeugt eine Analyst-Inkongruenz, die institutionelle Käufer oft erst verzögert aktiviert. Die -4,8% Reaktion auf positive Nachrichten deutet auf kurzfristigen Verkaufsdruck ohne fundamentalen Abbau der Wachstumsthese hin.\n\n**Katalysator:** AMD Q2 2026 Earnings mit GPU/CPU Data-Center-Revenue-Beat + konkrete Agentic-AI-Designwins bei Hyperscalern als Bestätigung der $132Mrd-CPU-Markt-These  \n**Time-to-Materialization:** 2-3 Monate  \n\n### Bear Case\n> EPS-Diskrepanz (GAAP $3,01 vs. non-GAAP $12,95) enthüllt massive Stock-Based-Compensation-Last; bei Multiples-Kompression in einem Risk-Off-Szenario fällt AMD überproportional, da die Bewertung vollständig auf zukünftigem Wachstum basiert.  \n**Severity:** 6/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 55.4% (10,000 Pfade)\n- **Target-Preis:** $474.84\n- **Aktueller Preis:** $415.07\n- **σ:** 0.0429\n- **α (Signal-Drift):** 0.00049\n\n### Options-Vorschlag\n- **Expiry:** 2026-06-05 (17 DTE)\n- **Strike:** $420.00\n- **Bid/Ask:** $23.00 / $23.85\n- **Impl. Vol.:** 69.1%\n- **Open Interest:** 448\n- **Bid-Ask-Ratio:** 3.56%\n\n### 🚪 Exit-Regeln\n- **Entry-Kosten:** $23.85 pro Kontrakt\n- **Take-Profit:** bei $35.78 (+50%) → Hälfte schliessen\n- **Full-Profit:** bei $47.70 (+100%) → Rest schliessen\n- **Stop-Loss:** bei $14.31 (-40%) → Gesamte Position liquidieren\n- **Time-Exit:** ab 2026-05-28 (8 DTE Rest) — schliessen wenn Gewinn < +20%\n\n---\n## 4. ABNB – LONG_CALL\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.0842`  \n**IV-Rank:** 8.6  \n**Trade-Score:** 51/100 — WATCH 🟠  \n\n### Asymmetry-Analyse\n- **Impact:** 5/10\n- **Surprise:** 4/10\n- **Mismatch-Score:** 4.731\n- **Z-Score (48h):** 0.054\n- **48h-Move:** 0.0009\n- **EPS-Drift:** 0.0 (noise)\n\n**Asymmetry-Reasoning:**  \n> Der Insider-Cluster (4 Käufe in 14 Tagen) signalisiert echtes Conviction von innen heraus, was der Markt oft zu langsam einpreist. Die AI-Coding-Effizienz (60%) ist ein struktureller Margenvorteil, der in DCF-Modellen noch nicht vollständig reflektiert sein dürfte. Das nächste Guidance-Event bietet einen konkreten Katalysator für eine Neubewertung.\n\n**Katalysator:** Nächstes Guidance-Event / Q2 2026 Earnings mit AI-Margin-Expansion-Bestätigung  \n**Time-to-Materialization:** 2-3 Monate  \n\n### Bear Case\n> Regulatorischer Druck auf Kurzzeitvermietungen wächst politisch und legislativ weltweit, was das Angebotsmodell strukturell bedroht und Wachstumsrevisionen für 2026/2027 erzwingen könnte.  \n**Severity:** 6/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 66.9% (10,000 Pfade)\n- **Target-Preis:** $145.48\n- **Aktueller Preis:** $134.71\n- **σ:** 0.0200\n- **α (Signal-Drift):** 0.00188\n\n### Options-Vorschlag\n- **Expiry:** 2026-06-05 (17 DTE)\n- **Strike:** $139.00\n- **Bid/Ask:** $2.27 / $2.51\n- **Impl. Vol.:** 33.3%\n- **Open Interest:** 153\n- **Bid-Ask-Ratio:** 9.56%\n\n### 🚪 Exit-Regeln\n- **Entry-Kosten:** $2.51 pro Kontrakt\n- **Take-Profit:** bei $3.76 (+50%) → Hälfte schliessen\n- **Full-Profit:** bei $5.02 (+100%) → Rest schliessen\n- **Stop-Loss:** bei $1.51 (-40%) → Gesamte Position liquidieren\n- **Time-Exit:** ab 2026-05-28 (8 DTE Rest) — schliessen wenn Gewinn < +20%\n\n---\n## Modell-Gewichte (aktuell)\n- Impact: `0.35`\n- Mismatch: `0.45`\n- EPS-Drift: `0.20`\n\n_Automatisch generiert durch Adaptive Asymmetry-Scanner v8.2_"
  },
  {
    "path": "outputs/daily_reports/2026-05-19.json",
    "content": "{\n  \"date\": \"2026-05-19\",\n  \"proposals\": [\n    {\n      \"ticker\": \"GOOGL\",\n      \"strategy\": \"BULL_CALL_SPREAD\",\n      \"iv_rank\": 84.0,\n      \"iv_gate_applied\": true,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-08-21\",\n        \"strike\": 390.0,\n        \"bid\": 29.45,\n        \"ask\": 30.55,\n        \"open_interest\": 6240,\n        \"implied_vol\": 0.3645,\n        \"spread_ratio\": 0.036,\n        \"dte\": 93,\n        \"delta\": 0.5666,\n        \"data_source\": \"tradier\",\n        \"spread_leg\": {\n          \"strike\": 430.0,\n          \"bid\": 14.4,\n          \"ask\": 15.2\n        },\n        \"net_debit\": 16.15\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 0.5487,\n        \"roi_net\": 0.2287,\n        \"spread_pct\": 0.036,\n        \"vega_loss\": 0.248,\n        \"theta_daily\": -0.153,\n        \"theta_daily_pct\": 0.0095,\n        \"delta\": 0.4533,\n        \"breakeven\": 406.15,\n        \"breakeven_pct\": 0.0448,\n        \"iv_drop_assumed\": 0.14075999999999997,\n        \"iv_drop_base\": 0.18,\n        \"catalyst_type\": \"EARNINGS\",\n        \"cost_basis\": 16.15,\n        \"mc_weight\": 0.629,\n        \"is_spread\": true,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.12,\n        \"dte\": 93\n      },\n      \"dte_tier\": \"Mid-Term\",\n      \"annualized_roi\": 1.2441,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Mid-Term\",\n          \"dte\": 93,\n          \"option\": {\n            \"expiry\": \"2026-08-21\",\n            \"strike\": 390.0,\n            \"bid\": 29.45,\n            \"ask\": 30.55,\n            \"open_interest\": 6240,\n            \"implied_vol\": 0.3645,\n            \"spread_ratio\": 0.036,\n            \"dte\": 93,\n            \"delta\": 0.5666,\n            \"data_source\": \"tradier\",\n            \"spread_leg\": {\n              \"strike\": 430.0,\n              \"bid\": 14.4,\n              \"ask\": 15.2\n            },\n            \"net_debit\": 16.15\n          },\n          \"roi\": {\n            \"roi_gross\": 0.5487,\n            \"roi_net\": 0.2287,\n            \"spread_pct\": 0.036,\n            \"vega_loss\": 0.248,\n            \"theta_daily\": -0.153,\n            \"theta_daily_pct\": 0.0095,\n            \"delta\": 0.4533,\n            \"breakeven\": 406.15,\n            \"breakeven_pct\": 0.0448,\n            \"iv_drop_assumed\": 0.14075999999999997,\n            \"iv_drop_base\": 0.18,\n            \"catalyst_type\": \"EARNINGS\",\n            \"cost_basis\": 16.15,\n            \"mc_weight\": 0.629,\n            \"is_spread\": true,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.12,\n            \"dte\": 93\n          },\n          \"annualized_roi\": 1.2441,\n          \"strategy\": \"BULL_CALL_SPREAD\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"mismatch\": 2.731,\n        \"z_score\": 0.454,\n        \"sigma_30d\": 0.0227,\n        \"price_move_48h\": 0.0103,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"weak\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.6286\n      },\n      \"simulation\": {\n        \"current_price\": 388.72,\n        \"target_price\": 419.82,\n        \"hit_rate\": 0.7272,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0193,\n        \"alpha\": 0.00295\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"GOOGL ist mit einer Marktkapitalisierung von $4.7 Billion eines der meistbeobachteten Unternehmen der Welt. Die Google I/O-Ank\\u00fcndigungen zu Gemini 3.5 und Smart Glasses sind \\u00f6ffentliche Events, die von hunderten institutionellen Analysten in Echtzeit verarbeitet werden. Es ist \\u00e4u\\u00dferst unwahrscheinlich, dass ein strukturelles Repricing-Signal hier einen echten Informationsvorsprung gegen\\u00fcber dem Markt bietet \\u2014 der Kursr\\u00fcckgang von -1.0% in 48h deutet eher darauf hin, dass der Markt die Ank\\u00fcndigungen als 'meet expectations' eingestuft hat, nicht als strukturellen Durchbruch.\",\n          \"argument_2\": \"Der AI-Wettbewerb intensiviert sich massiv: OpenAI, Anthropic, Meta und Apple dr\\u00e4ngen gleichzeitig in den Smart-Glasses- und Foundation-Model-Markt. Die Pricing-Strategie von Google bei AI-Modellen kann schnell zu einem Margendruck f\\u00fchren, wenn Wettbewerber Preise unterbieten. Zudem sind Smart Glasses bisher ein schwieriges Consumer-Segment \\u2014 Apple und Meta haben hier erhebliche Ressourcen und \\u00d6kosystem-Vorteile, was GOOGLs Marktanteilsgewinn fraglich macht.\",\n          \"argument_3\": \"Der Dealer-Gamma-Effekt (Call-OI 5,729 vs. Put-OI 3,070) zeigt eine klare Long-Schieflage im Options-Markt. Dies bedeutet, dass Dealer bei Kursanstieg Long-Exposure abbauen m\\u00fcssen (negative Gamma-Hedging), was Aufw\\u00e4rtsbewegungen strukturell d\\u00e4mpft. Insider-K\\u00e4ufe sind zwar ein positives Signal, aber in einem Mega-Cap wie GOOGL oft Routine-Kompensationsprogramme und kein verl\\u00e4sslicher Timing-Indikator f\\u00fcr kurzfristige Kursgewinne.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Die 0% Hit-Rate basiert auf keinem durchgef\\u00fchrten MC-Lauf (0 Pfade), ist also kein statistisches Ergebnis sondern ein Datenfehler. F\\u00fcr GOOGL mit historischer IV um 25-30% und einem 2-6 Monats-Horizont w\\u00e4re eine realistische MC Hit-Rate f\\u00fcr moderate Bullish-Ziele (z.B. +10-15%) bei etwa 40-55% anzusetzen. Die fehlenden Daten erh\\u00f6hen die Unsicherheit erheblich.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 5,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"catalyst_confidence\": 5,\n        \"asymmetry_reasoning\": \"Der Markt hat die kombinierte Wirkung aus aggressiver Gemini-3.5-Preisgestaltung und Smart-Glasses-\\u00d6kosystem noch nicht vollst\\u00e4ndig eingepreist, da post-I/O-Sell-offs bei Mega-Caps systematisch \\u00dcberreaktionen erzeugen. Insider-Cluster-K\\u00e4ufe liefern ein zus\\u00e4tzliches, wenn auch schwaches Timing-Signal. Das expansive Makro-Umfeld reduziert den Diskontierungsdruck auf Wachstumsbewertungen und beg\\u00fcnstigt strukturelle Re-Ratings.\",\n        \"catalyst\": \"Monetarisierung von Gemini 3.5 in Google Cloud/Workspace mit konkreten Enterprise-Deal-Ank\\u00fcndigungen im Q2 2026 Earnings (Juli 2026) sowie erste Smart-Glasses-Verkaufszahlen\",\n        \"bear_case\": \"AI-Preiskampf komprimiert Cloud-Margen, w\\u00e4hrend Smart-Glasses-Hardware-Investitionen den Free Cash Flow belasten \\u2014 gleichzeitig d\\u00e4mpft der Dealer-Gamma-Effekt technische Ausbr\\u00fcche strukturell\",\n        \"macro_assessment\": \"Das expansive Makro-Umfeld (steile Kurve +0.54%, Fed Funds 3.64%) beg\\u00fcnstigt Long-Positionen in Wachstumswerten grunds\\u00e4tzlich. VIX-Contango (16.7\\u219221.0) signalisiert jedoch steigende erwartete Volatilit\\u00e4t in 3 Monaten, was auf einen Spread (Bull Call Spread) gegen\\u00fcber nackten Calls hinweist, um IV-Kostenanstieg zu begrenzen. Insgesamt neutraler bis leicht positiver R\\u00fcckenwind.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.54,\n          \"regime\": \"expansive\"\n        },\n        \"mc_hit_rate\": 0.0,\n        \"is_mega_cap\": true,\n        \"market_cap\": 4709515526144,\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLC\",\n        \"rel_strength\": 0.3072\n      },\n      \"final_score\": 0.1792,\n      \"mc_hit_rate\": 0.6286,\n      \"time_to_maturation\": \"2-3 Monate\",\n      \"sector\": \"Communication Services\",\n      \"catalyst_type\": \"EARNINGS\",\n      \"implied_move_pct\": 15.0,\n      \"model_move_pct\": 8.0,\n      \"edge_vs_implied\": -7.0,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 0.2459,\n        \"annualized_roi\": 1.2441,\n        \"dte\": 93\n      },\n      \"trade_score\": {\n        \"total\": 54,\n        \"grade\": \"WATCH \\ud83d\\udfe0\",\n        \"grade_short\": \"WATCH\",\n        \"components\": {\n          \"signal_quality\": 17.9,\n          \"options_quality\": 17.6,\n          \"risk_deductions\": -2.0,\n          \"context_bonus\": 20.0,\n          \"roi_penalty\": 0.0,\n          \"edge_pts\": -6.0,\n          \"macro_sensitivity\": 0.5\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=5/Surprise=4), guter ROI (23%), positive Sektor-Relative-St\\u00e4rke | Risiken: Kein IV-Edge: Model +8.0% \\u2264 Markt \\u00b115.0% (bereits eingepreist)\",\n        \"best_argument_for\": \"Der Markt hat die kombinierte Wirkung aus aggressiver Gemini-3.5-Preisgestaltung und Smart-Glasses-\\u00d6kosystem noch nicht vollst\\u00e4ndig eingepreist, da post-I/O-Sell-offs bei Mega-Caps systematisch \\u00dcberreaktionen erzeugen. Insider-Cluster-K\\u00e4ufe liefern ein zus\\u00e4tzliches, wenn auch schwaches Timing-Signal. Das expansive Makro-Umfeld reduziert den Diskontierungsdruck auf Wachstumsbewertungen und beg\\u00fcnstigt strukturelle Re-Ratings.\",\n        \"best_argument_against\": \"GOOGL ist mit einer Marktkapitalisierung von $4.7 Billion eines der meistbeobachteten Unternehmen der Welt. Die Google I/O-Ank\\u00fcndigungen zu Gemini 3.5 und Smart Glasses sind \\u00f6ffentliche Events, die von hunderten institutionellen Analysten in Echtzeit verarbeitet werden. Es ist \\u00e4u\\u00dferst unwahrscheinlich, dass ein strukturelles Repricing-Signal hier einen echten Informationsvorsprung gegen\\u00fcber dem Markt bietet \\u2014 der Kursr\\u00fcckgang von -1.0% in 48h deutet eher darauf hin, dass der Markt die Ank\\u00fcndigungen als 'meet expectations' eingestuft hat, nicht als strukturellen Durchbruch.\"\n      },\n      \"trade_rank\": 1,\n      \"exit_rules\": {\n        \"entry_cost\": 16.15,\n        \"take_profit_pct\": 50,\n        \"take_profit_price\": 24.22,\n        \"full_profit_pct\": 100,\n        \"full_profit_price\": 32.3,\n        \"stop_loss_pct\": -40,\n        \"stop_loss_price\": 9.69,\n        \"time_exit_dte_remaining\": 46,\n        \"time_exit_date\": \"2026-07-06\",\n        \"time_exit_min_profit_pct\": 20\n      }\n    }\n  ]\n}"
  },
  {
    "path": "outputs/daily_reports/2026-05-19.md",
    "content": "# Adaptive Asymmetry-Scanner – 2026-05-19\n\n**Generiert:** 2026-05-19 19:10 UTC\n**Trade-Vorschläge:** 1\n\n---\n## 1. GOOGL – BULL_CALL_SPREAD\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.1792`  \n**IV-Rank:** 84.0  \n**Trade-Score:** 54/100 — WATCH 🟠  \n\n### Asymmetry-Analyse\n- **Impact:** 5/10\n- **Surprise:** 4/10\n- **Mismatch-Score:** 2.731\n- **Z-Score (48h):** 0.454\n- **48h-Move:** 0.0103\n- **EPS-Drift:** 0.0 (noise)\n\n**Asymmetry-Reasoning:**  \n> Der Markt hat die kombinierte Wirkung aus aggressiver Gemini-3.5-Preisgestaltung und Smart-Glasses-Ökosystem noch nicht vollständig eingepreist, da post-I/O-Sell-offs bei Mega-Caps systematisch Überreaktionen erzeugen. Insider-Cluster-Käufe liefern ein zusätzliches, wenn auch schwaches Timing-Signal. Das expansive Makro-Umfeld reduziert den Diskontierungsdruck auf Wachstumsbewertungen und begünstigt strukturelle Re-Ratings.\n\n**Katalysator:** Monetarisierung von Gemini 3.5 in Google Cloud/Workspace mit konkreten Enterprise-Deal-Ankündigungen im Q2 2026 Earnings (Juli 2026) sowie erste Smart-Glasses-Verkaufszahlen  \n**Time-to-Materialization:** 2-3 Monate  \n\n### Bear Case\n> AI-Preiskampf komprimiert Cloud-Margen, während Smart-Glasses-Hardware-Investitionen den Free Cash Flow belasten — gleichzeitig dämpft der Dealer-Gamma-Effekt technische Ausbrüche strukturell  \n**Severity:** 5/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 72.7% (10,000 Pfade)\n- **Target-Preis:** $419.82\n- **Aktueller Preis:** $388.72\n- **σ:** 0.0193\n- **α (Signal-Drift):** 0.00295\n\n### Options-Vorschlag\n- **Expiry:** 2026-08-21 (93 DTE)\n- **Strike:** $390.00\n- **Bid/Ask:** $29.45 / $30.55\n- **Impl. Vol.:** 36.4%\n- **Open Interest:** 6,240\n- **Bid-Ask-Ratio:** 3.60%\n\n- **Short Strike:** $430.00  \n- **Short Bid/Ask:** $14.40 / $15.20\n- **Net Debit:** $16.15\n\n### 🚪 Exit-Regeln\n- **Entry-Kosten:** $16.15 pro Kontrakt\n- **Take-Profit:** bei $24.22 (+50%) → Hälfte schliessen\n- **Full-Profit:** bei $32.30 (+100%) → Rest schliessen\n- **Stop-Loss:** bei $9.69 (-40%) → Gesamte Position liquidieren\n- **Time-Exit:** ab 2026-07-06 (46 DTE Rest) — schliessen wenn Gewinn < +20%\n\n---\n## Modell-Gewichte (aktuell)\n- Impact: `0.35`\n- Mismatch: `0.45`\n- EPS-Drift: `0.20`\n\n_Automatisch generiert durch Adaptive Asymmetry-Scanner v8.2_"
  },
  {
    "path": "outputs/daily_reports/2026-05-20.json",
    "content": "{\n  \"date\": \"2026-05-20\",\n  \"proposals\": [\n    {\n      \"ticker\": \"DDOG\",\n      \"strategy\": \"BULL_CALL_SPREAD\",\n      \"iv_rank\": 81.9,\n      \"iv_gate_applied\": true,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-08-21\",\n        \"strike\": 210.0,\n        \"bid\": 28.15,\n        \"ask\": 28.9,\n        \"open_interest\": 285,\n        \"implied_vol\": 0.6211,\n        \"spread_ratio\": 0.026,\n        \"dte\": 92,\n        \"delta\": 0.5946,\n        \"data_source\": \"tradier\",\n        \"spread_leg\": {\n          \"strike\": 230.0,\n          \"bid\": 19.85,\n          \"ask\": 21.25\n        },\n        \"net_debit\": 9.05\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 1.0771,\n        \"roi_net\": 0.6267,\n        \"spread_pct\": 0.026,\n        \"vega_loss\": 0.3985,\n        \"theta_daily\": -0.1408,\n        \"theta_daily_pct\": 0.0156,\n        \"delta\": 0.4757,\n        \"breakeven\": 219.05,\n        \"breakeven_pct\": 0.0336,\n        \"iv_drop_assumed\": 0.13915349999999999,\n        \"iv_drop_base\": 0.18,\n        \"catalyst_type\": \"EARNINGS\",\n        \"cost_basis\": 9.05,\n        \"mc_weight\": 0.643,\n        \"is_spread\": true,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.12,\n        \"dte\": 92\n      },\n      \"dte_tier\": \"Mid-Term\",\n      \"annualized_roi\": 5.8919,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Mid-Term\",\n          \"dte\": 92,\n          \"option\": {\n            \"expiry\": \"2026-08-21\",\n            \"strike\": 210.0,\n            \"bid\": 28.15,\n            \"ask\": 28.9,\n            \"open_interest\": 285,\n            \"implied_vol\": 0.6211,\n            \"spread_ratio\": 0.026,\n            \"dte\": 92,\n            \"delta\": 0.5946,\n            \"data_source\": \"tradier\",\n            \"spread_leg\": {\n              \"strike\": 230.0,\n              \"bid\": 19.85,\n              \"ask\": 21.25\n            },\n            \"net_debit\": 9.05\n          },\n          \"roi\": {\n            \"roi_gross\": 1.0771,\n            \"roi_net\": 0.6267,\n            \"spread_pct\": 0.026,\n            \"vega_loss\": 0.3985,\n            \"theta_daily\": -0.1408,\n            \"theta_daily_pct\": 0.0156,\n            \"delta\": 0.4757,\n            \"breakeven\": 219.05,\n            \"breakeven_pct\": 0.0336,\n            \"iv_drop_assumed\": 0.13915349999999999,\n            \"iv_drop_base\": 0.18,\n            \"catalyst_type\": \"EARNINGS\",\n            \"cost_basis\": 9.05,\n            \"mc_weight\": 0.643,\n            \"is_spread\": true,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.12,\n            \"dte\": 92\n          },\n          \"annualized_roi\": 5.8919,\n          \"strategy\": \"BULL_CALL_SPREAD\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 3.112,\n        \"z_score\": 0.578,\n        \"sigma_30d\": 0.0597,\n        \"price_move_48h\": 0.0345,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.6432\n      },\n      \"simulation\": {\n        \"current_price\": 211.93,\n        \"target_price\": 243.79,\n        \"hit_rate\": 0.6786,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0448,\n        \"alpha\": 0.00381\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"DDOG notiert bereits bei einer Marktkapitalisierung von $75 Mrd. bei einem EPS von nur $2.84, was einem KGV von ~74 entspricht. Die Aktie hat in den letzten 48h bereits +3,4% zugelegt, was darauf hindeutet, dass der Integrations-Katalysator (Cloudflare/Claude) zumindest partiell eingepreist ist. Ein Gro\\u00dfteil des kurzfristigen Upside-Potenzials k\\u00f6nnte bereits absorbiert sein.\",\n          \"argument_2\": \"Die genannten Katalysatoren \\u2013 datadog-serverless-compat 0.15.0 und Claude Managed Agents auf Cloudflare \\u2013 sind \\u00f6ffentlich verf\\u00fcgbare Informationen aus dem Open-Source- und Partner-\\u00d6kosystem. Diese Integrations-News sind f\\u00fcr institutionelle Analysten mit dedizierter Cloud/AI-Coverage sofort sichtbar. Der behauptete 'langsame Markt' bei der Verarbeitung ist bei einem stark gecoverten Growth-Tech-Titel mit erheblicher institutioneller Aufmerksamkeit skeptisch zu betrachten.\",\n          \"argument_3\": \"Das Dealer-Gamma-Signal zeigt Call-OI (436) dominierend \\u00fcber Put-OI (251) ATM. Dies bedeutet, dass Dealer bei steigenden Kursen short Gamma sind und aktiv hedgen m\\u00fcssen \\u2013 was Aufw\\u00e4rtsbewegungen d\\u00e4mpft. Kombiniert mit einer bereits aufgelaufenen 3,4%-Bewegung in 48h und einer VIX-Contango-Struktur (Markt erwartet sinkende Vol) besteht das Risiko eines Vol-Crush nach dem n\\u00e4chsten Event-Fenster, das Long-Options-Strategien benachteiligt.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein Quick MC durchgef\\u00fchrt (0 Pfade). Die fehlende Simulation reduziert die quantitative Unterst\\u00fctzung erheblich. Bei DDOG mit historisch hoher Volatilit\\u00e4t (~45-55% annualisiert) w\\u00e4re eine Hit-Rate von 0% unrealistisch \\u2014 der fehlende MC ist ein Datenl\\u00fccken-Problem, keine echte Aussage \\u00fcber die Pfad-Wahrscheinlichkeit. Das Fehlen des MC erh\\u00f6ht die Unsicherheit und erfordert konservativere Impact-Bewertung.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 5,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"catalyst_confidence\": 5,\n        \"asymmetry_reasoning\": \"Der Markt bewertet Ecosystem-Integrationen wie Cloudflare/Claude-Agents als inkrementelle News, ohne den kumulativen Netzwerkeffekt f\\u00fcr DDAGs AI-Observability-Plattform vollst\\u00e4ndig zu diskontieren. Cluster-Insider-K\\u00e4ufe (6 Personen in 14 Tagen) signalisieren intern gesteigertes Conviction, das \\u00f6ffentlich noch nicht reflektiert ist. Das expansive Makro-Umfeld und steile Zinskurve beg\\u00fcnstigen Growth-Multiples zus\\u00e4tzlich.\",\n        \"catalyst\": \"Kumulativer AI-Observability-Plattform-Ausbau durch Cloudflare/Claude-Agent-Integration und Serverless-Compat-Expansion, validiert durch Cluster-Insider-K\\u00e4ufe vor dem n\\u00e4chsten Earnings-Zyklus Q2 2026\",\n        \"bear_case\": \"\\u00d6ffentliche Integrations-News sind bei einem stark gecoverten Growth-Titel schnell eingepreist; das KGV von ~74 l\\u00e4sst wenig Puffer f\\u00fcr Entt\\u00e4uschungen, und das Call-dominante Dealer-Gamma-Profil d\\u00e4mpft strukturell kurzfristige Aufw\\u00e4rtsbewegungen.\",\n        \"macro_assessment\": \"Das expansive Makro-Umfeld (Zinskurve +0.54%, Fed Funds 3.64%) beg\\u00fcnstigt High-Multiple-Growth-Titel wie DDOG. Die VIX-Contango-Struktur (slope +31%) signalisiert, dass kurzfristige Volatilit\\u00e4t als \\u00fcberbewertet gilt \\u2014 dies reduziert das IV-Crush-Risiko f\\u00fcr mittelfristige Long-Strategien auf 2-3 Monate. Insgesamt konstruktives Umfeld, das bullische Struktursignale moderat verst\\u00e4rkt.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.54,\n          \"regime\": \"expansive\"\n        },\n        \"mc_hit_rate\": 0.0,\n        \"is_mega_cap\": false,\n        \"market_cap\": 75438637056,\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLK\",\n        \"rel_strength\": 0.4773\n      },\n      \"final_score\": 0.0785,\n      \"mc_hit_rate\": 0.6432,\n      \"time_to_maturation\": \"2-3 Monate\",\n      \"sector\": \"Technology\",\n      \"catalyst_type\": \"EARNINGS\",\n      \"implied_move_pct\": 25.6,\n      \"model_move_pct\": 15.03,\n      \"edge_vs_implied\": -10.56,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 0.6812,\n        \"annualized_roi\": null,\n        \"dte\": 92\n      },\n      \"trade_score\": {\n        \"total\": 61,\n        \"grade\": \"BUY \\ud83d\\udfe1\",\n        \"grade_short\": \"BUY\",\n        \"components\": {\n          \"signal_quality\": 21.9,\n          \"options_quality\": 20.5,\n          \"risk_deductions\": -2.0,\n          \"context_bonus\": 21.0,\n          \"roi_penalty\": 0.0,\n          \"edge_pts\": -6.0,\n          \"macro_sensitivity\": 0.6\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=6/Surprise=5), guter ROI (63%), positive Sektor-Relative-St\\u00e4rke | Risiken: Kein IV-Edge: Model +15.0% \\u2264 Markt \\u00b125.6% (bereits eingepreist)\",\n        \"best_argument_for\": \"Der Markt bewertet Ecosystem-Integrationen wie Cloudflare/Claude-Agents als inkrementelle News, ohne den kumulativen Netzwerkeffekt f\\u00fcr DDAGs AI-Observability-Plattform vollst\\u00e4ndig zu diskontieren. Cluster-Insider-K\\u00e4ufe (6 Personen in 14 Tagen) signalisieren intern gesteigertes Conviction, das \\u00f6ffentlich noch nicht reflektiert ist. Das expansive Makro-Umfeld und steile Zinskurve beg\\u00fcnstigen Growth-Multiples zus\\u00e4tzlich.\",\n        \"best_argument_against\": \"DDOG notiert bereits bei einer Marktkapitalisierung von $75 Mrd. bei einem EPS von nur $2.84, was einem KGV von ~74 entspricht. Die Aktie hat in den letzten 48h bereits +3,4% zugelegt, was darauf hindeutet, dass der Integrations-Katalysator (Cloudflare/Claude) zumindest partiell eingepreist ist. Ein Gro\\u00dfteil des kurzfristigen Upside-Potenzials k\\u00f6nnte bereits absorbiert sein.\"\n      },\n      \"trade_rank\": 1,\n      \"exit_rules\": {\n        \"entry_cost\": 9.05,\n        \"take_profit_pct\": 50,\n        \"take_profit_price\": 13.58,\n        \"full_profit_pct\": 100,\n        \"full_profit_price\": 18.1,\n        \"stop_loss_pct\": -40,\n        \"stop_loss_price\": 5.43,\n        \"time_exit_dte_remaining\": 46,\n        \"time_exit_date\": \"2026-07-06\",\n        \"time_exit_min_profit_pct\": 20\n      }\n    },\n    {\n      \"ticker\": \"COIN\",\n      \"strategy\": \"LONG_CALL\",\n      \"iv_rank\": 32.5,\n      \"iv_gate_applied\": false,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-08-21\",\n        \"strike\": 200.0,\n        \"bid\": 25.5,\n        \"ask\": 26.75,\n        \"open_interest\": 1667,\n        \"implied_vol\": 0.7097,\n        \"spread_ratio\": 0.0467,\n        \"dte\": 92,\n        \"delta\": 0.5548,\n        \"data_source\": \"tradier\"\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 0.3289,\n        \"roi_net\": 0.2123,\n        \"spread_pct\": 0.0467,\n        \"vega_loss\": 0.0232,\n        \"theta_daily\": -0.1495,\n        \"theta_daily_pct\": 0.0056,\n        \"delta\": 0.5548,\n        \"breakeven\": 226.75,\n        \"breakeven_pct\": 0.1658,\n        \"iv_drop_assumed\": 0.022525,\n        \"iv_drop_base\": 0.04,\n        \"catalyst_type\": \"INSIDER\",\n        \"cost_basis\": 26.75,\n        \"mc_weight\": 0.528,\n        \"is_spread\": false,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.12,\n        \"dte\": 92\n      },\n      \"dte_tier\": \"Mid-Term\",\n      \"annualized_roi\": 1.1464,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Mid-Term\",\n          \"dte\": 92,\n          \"option\": {\n            \"expiry\": \"2026-08-21\",\n            \"strike\": 200.0,\n            \"bid\": 25.5,\n            \"ask\": 26.75,\n            \"open_interest\": 1667,\n            \"implied_vol\": 0.7097,\n            \"spread_ratio\": 0.0467,\n            \"dte\": 92,\n            \"delta\": 0.5548,\n            \"data_source\": \"tradier\"\n          },\n          \"roi\": {\n            \"roi_gross\": 0.3289,\n            \"roi_net\": 0.2123,\n            \"spread_pct\": 0.0467,\n            \"vega_loss\": 0.0232,\n            \"theta_daily\": -0.1495,\n            \"theta_daily_pct\": 0.0056,\n            \"delta\": 0.5548,\n            \"breakeven\": 226.75,\n            \"breakeven_pct\": 0.1658,\n            \"iv_drop_assumed\": 0.022525,\n            \"iv_drop_base\": 0.04,\n            \"catalyst_type\": \"INSIDER\",\n            \"cost_basis\": 26.75,\n            \"mc_weight\": 0.528,\n            \"is_spread\": false,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.12,\n            \"dte\": 92\n          },\n          \"annualized_roi\": 1.1464,\n          \"strategy\": \"LONG_CALL\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"mismatch\": 3.719,\n        \"z_score\": 0.256,\n        \"sigma_30d\": 0.0395,\n        \"price_move_48h\": 0.0101,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.5276\n      },\n      \"simulation\": {\n        \"current_price\": 194.5,\n        \"target_price\": 224.56,\n        \"hit_rate\": 0.522,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0461,\n        \"alpha\": -0.00012\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"COIN ist extrem zyklisch und direkt an Krypto-Marktbewegungen gekoppelt. Ein Altseason-Narrativ basierend auf HYPE/Hyperliquid-Sentiment ist h\\u00f6chst spekulativ \\u2014 solche Katalysatoren sind notorisch kurzlebig und k\\u00f6nnen sich innerhalb von Tagen umkehren. Der Markt hat in der Vergangenheit wiederholt gezeigt, dass Altseason-Erwartungen oft vorzeitig eingepreist werden und dann entt\\u00e4uschen.\",\n          \"argument_2\": \"Die EPS-Divergenz zwischen yfinance ($4.99) und SEC EDGAR ($2.73) deutet auf signifikante Datenqualit\\u00e4tsprobleme hin. Trotz 0% Abweichungsangabe sind diese Zahlen faktisch stark unterschiedlich \\u2014 das untergr\\u00e4bt die fundamentale Bewertungsbasis erheblich. Zudem ist COIN bei $194.50 mit einem KGV auf SEC-Basis von ca. 71x hoch bewertet, was bei einer Krypto-Korrektur zu massivem Multiple-Compression f\\u00fchren kann.\",\n          \"argument_3\": \"Der Insider-Kauf-Cluster (6 Insider in 14 Tagen) k\\u00f6nnte tr\\u00fcgerisch sein: Bei Krypto-Firmen folgen Insider oft strukturierten Verg\\u00fctungspl\\u00e4nen (RSU-K\\u00e4ufe, vorprogrammierte 10b5-1-Pl\\u00e4ne), die kein echtes Conviction-Signal darstellen. Gleichzeitig ist die 48h-Preisbewegung von -1.0% trotz positiver Nachrichten schwach \\u2014 m\\u00f6glicherweise absorbiert der Markt bereits Verkaufsdruck institutioneller Halter.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Quick MC wurde nicht durchgef\\u00fchrt (0 Pfade), daher ist die 0% Hit-Rate kein inhaltliches Signal, sondern ein technisches Fehlerresultat. Bei COIN mit einer historischen 30-Tage-Volatilit\\u00e4t von typischerweise 50-80% annualisiert w\\u00e4re eine realistische Hit-Rate f\\u00fcr einen moderaten Bull-Case (z.B. +10-15% Strike) bei 35-50% zu erwarten. Die fehlende MC-Daten erh\\u00f6hen die Unsicherheit, bedeuten aber nicht zwingend ein Veto.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"4-8 Wochen\",\n        \"catalyst_confidence\": 4,\n        \"asymmetry_reasoning\": \"Der Markt preist das Altseason-Narrativ noch nicht vollst\\u00e4ndig ein, da COIN trotz positiver Krypto-Signale leicht gefallen ist \\u2014 eine typische Verz\\u00f6gerung bei Sentiment-Shifts. Der Insider-Cluster von 6 K\\u00e4ufern in 14 Tagen liefert ein zus\\u00e4tzliches, nicht vollst\\u00e4ndig eingepreistes Signal f\\u00fcr interne Zuversicht. Das expansive Makroumfeld mit steiler Zinskurve beg\\u00fcnstigt Risk-On-Assets wie COIN strukturell \\u00fcber 4-8 Wochen.\",\n        \"catalyst\": \"Altseason-Rallye getrieben durch Hyperliquid/HYPE-Momentum und breiten Sentiment-Shift im Krypto-\\u00d6kosystem, kombiniert mit Insider-Kauf-Cluster als Conviction-Signal\",\n        \"bear_case\": \"Krypto-Sentiment dreht schnell: Eine Bitcoin-Korrektur oder regulatorische Negativnachrichten k\\u00f6nnen COIN \\u00fcberproportional treffen. Bei einem KGV von ~71x (SEC-Basis) gibt es kaum fundamentalen Sicherheitspuffer, und das Altseason-Narrativ k\\u00f6nnte bereits eingepreist sein.\",\n        \"macro_assessment\": \"Das expansive Makroumfeld (steile Kurve +0.54%, Fed Funds 3.64%) ist grunds\\u00e4tzlich g\\u00fcnstig f\\u00fcr Risk-On-Assets wie COIN. Der VIX-Contango (16\\u219220.9) signalisiert erwarteten Vol-Anstieg auf 3-Monatssicht \\u2014 Long-Vol-Strategien sind weniger riskant als \\u00fcblich, aber Spreads bleiben sinnvoll um COIN-spezifisches Vol-Risiko zu begrenzen. Makro st\\u00fctzt das Bullish-Bias, kompensiert aber nicht das hohe idiosynkratische Krypto-Risiko.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.54,\n          \"regime\": \"expansive\"\n        },\n        \"mc_hit_rate\": 0.0,\n        \"is_mega_cap\": false,\n        \"market_cap\": 51243118592,\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLF\",\n        \"rel_strength\": 0.0818\n      },\n      \"final_score\": 0.0785,\n      \"mc_hit_rate\": 0.5276,\n      \"time_to_maturation\": \"4-8 Wochen\",\n      \"sector\": \"Financial Services\",\n      \"catalyst_type\": \"INSIDER\",\n      \"implied_move_pct\": 29.07,\n      \"model_move_pct\": 15.46,\n      \"edge_vs_implied\": -13.62,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 0.2308,\n        \"annualized_roi\": 1.1464,\n        \"dte\": 92\n      },\n      \"trade_score\": {\n        \"total\": 60,\n        \"grade\": \"BUY \\ud83d\\udfe1\",\n        \"grade_short\": \"BUY\",\n        \"components\": {\n          \"signal_quality\": 17.9,\n          \"options_quality\": 17.0,\n          \"risk_deductions\": 0.0,\n          \"context_bonus\": 25.0,\n          \"roi_penalty\": 0.0,\n          \"edge_pts\": -6.0,\n          \"macro_sensitivity\": 1.0\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=5/Surprise=4), guter ROI (21%), g\\u00fcnstige IV (32%) | Risiken: Kein IV-Edge: Model +15.5% \\u2264 Markt \\u00b129.1% (bereits eingepreist)\",\n        \"best_argument_for\": \"Der Markt preist das Altseason-Narrativ noch nicht vollst\\u00e4ndig ein, da COIN trotz positiver Krypto-Signale leicht gefallen ist \\u2014 eine typische Verz\\u00f6gerung bei Sentiment-Shifts. Der Insider-Cluster von 6 K\\u00e4ufern in 14 Tagen liefert ein zus\\u00e4tzliches, nicht vollst\\u00e4ndig eingepreistes Signal f\\u00fcr interne Zuversicht. Das expansive Makroumfeld mit steiler Zinskurve beg\\u00fcnstigt Risk-On-Assets wie COIN strukturell \\u00fcber 4-8 Wochen.\",\n        \"best_argument_against\": \"COIN ist extrem zyklisch und direkt an Krypto-Marktbewegungen gekoppelt. Ein Altseason-Narrativ basierend auf HYPE/Hyperliquid-Sentiment ist h\\u00f6chst spekulativ \\u2014 solche Katalysatoren sind notorisch kurzlebig und k\\u00f6nnen sich innerhalb von Tagen umkehren. Der Markt hat in der Vergangenheit wiederholt gezeigt, dass Altseason-Erwartungen oft vorzeitig eingepreist werden und dann entt\\u00e4uschen.\"\n      },\n      \"trade_rank\": 2,\n      \"exit_rules\": {\n        \"entry_cost\": 26.75,\n        \"take_profit_pct\": 50,\n        \"take_profit_price\": 40.12,\n        \"full_profit_pct\": 100,\n        \"full_profit_price\": 53.5,\n        \"stop_loss_pct\": -40,\n        \"stop_loss_price\": 16.05,\n        \"time_exit_dte_remaining\": 46,\n        \"time_exit_date\": \"2026-07-06\",\n        \"time_exit_min_profit_pct\": 20\n      }\n    },\n    {\n      \"ticker\": \"GOOG\",\n      \"strategy\": \"BULL_CALL_SPREAD\",\n      \"iv_rank\": 81.2,\n      \"iv_gate_applied\": true,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-08-21\",\n        \"strike\": 380.0,\n        \"bid\": 29.6,\n        \"ask\": 30.3,\n        \"open_interest\": 1278,\n        \"implied_vol\": 0.3499,\n        \"spread_ratio\": 0.0231,\n        \"dte\": 92,\n        \"delta\": 0.5777,\n        \"data_source\": \"tradier\",\n        \"spread_leg\": {\n          \"strike\": 420.0,\n          \"bid\": 14.05,\n          \"ask\": 14.45\n        },\n        \"net_debit\": 16.25\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 0.5557,\n        \"roi_net\": 0.2828,\n        \"spread_pct\": 0.0231,\n        \"vega_loss\": 0.2267,\n        \"theta_daily\": -0.1445,\n        \"theta_daily_pct\": 0.0089,\n        \"delta\": 0.4622,\n        \"breakeven\": 396.25,\n        \"breakeven_pct\": 0.0379,\n        \"iv_drop_assumed\": 0.138618,\n        \"iv_drop_base\": 0.18,\n        \"catalyst_type\": \"EARNINGS\",\n        \"cost_basis\": 16.25,\n        \"mc_weight\": 0.64,\n        \"is_spread\": true,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.12,\n        \"dte\": 92\n      },\n      \"dte_tier\": \"Mid-Term\",\n      \"annualized_roi\": 1.686,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Mid-Term\",\n          \"dte\": 92,\n          \"option\": {\n            \"expiry\": \"2026-08-21\",\n            \"strike\": 380.0,\n            \"bid\": 29.6,\n            \"ask\": 30.3,\n            \"open_interest\": 1278,\n            \"implied_vol\": 0.3499,\n            \"spread_ratio\": 0.0231,\n            \"dte\": 92,\n            \"delta\": 0.5777,\n            \"data_source\": \"tradier\",\n            \"spread_leg\": {\n              \"strike\": 420.0,\n              \"bid\": 14.05,\n              \"ask\": 14.45\n            },\n            \"net_debit\": 16.25\n          },\n          \"roi\": {\n            \"roi_gross\": 0.5557,\n            \"roi_net\": 0.2828,\n            \"spread_pct\": 0.0231,\n            \"vega_loss\": 0.2267,\n            \"theta_daily\": -0.1445,\n            \"theta_daily_pct\": 0.0089,\n            \"delta\": 0.4622,\n            \"breakeven\": 396.25,\n            \"breakeven_pct\": 0.0379,\n            \"iv_drop_assumed\": 0.138618,\n            \"iv_drop_base\": 0.18,\n            \"catalyst_type\": \"EARNINGS\",\n            \"cost_basis\": 16.25,\n            \"mc_weight\": 0.64,\n            \"is_spread\": true,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.12,\n            \"dte\": 92\n          },\n          \"annualized_roi\": 1.686,\n          \"strategy\": \"BULL_CALL_SPREAD\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"mismatch\": 0.207,\n        \"z_score\": 0.959,\n        \"sigma_30d\": 0.0223,\n        \"price_move_48h\": 0.0214,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"weak\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.6398\n      },\n      \"simulation\": {\n        \"current_price\": 381.78,\n        \"target_price\": 412.32,\n        \"hit_rate\": 0.736,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.019,\n        \"alpha\": 0.00287\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Berkshire/Abel-Pivot als Signal ist schwach: Die Positionierung eines Value-Fonds in einem AI-Tech-Titel ist keine nicht-\\u00f6ffentliche Information und wird bei einem $4.6T Mega-Cap innerhalb von Minuten eingepreist. Der Kurs reagierte bereits \\u2013 die -2.1% in 48h zeigen, dass kein nachhaltiger Kaufdruck entstanden ist, obwohl die News bekannt wurden.\",\n          \"argument_2\": \"Googles Kerngesch\\u00e4ft Search steht unter strukturellem Druck durch AI-Disruption (ChatGPT, Perplexity, eigene AI-Overviews kannibalisieren Click-Rates). Die Google I/O 2026 AI Showcase war ein bekannter Termin \\u2013 BofA's $430 Kursziel nach dem Event deutet auf Katalysator-Already-Priced-In hin. IV-Crush nach dem Showcase-Event kann Long-Optionen erheblich sch\\u00e4digen.\",\n          \"argument_3\": \"Die UK Union-Ablehnung signalisiert potenzielle regulatorische und arbeitsrechtliche Risiken in Europa. Antitrust-Verfahren gegen Google laufen in mehreren Jurisdiktionen parallel (EU, DOJ), und ein negatives Urteil im 2-6 Monats-Horizont k\\u00f6nnte das Search-Monopol strukturell gef\\u00e4hrden und Milliarden an Strafzahlungen ausl\\u00f6sen.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"0% Hit-Rate ist nicht interpretierbar da kein MC durchgef\\u00fchrt wurde \\u2013 keine statistischen R\\u00fcckschl\\u00fcsse m\\u00f6glich. Die fehlende Simulation erh\\u00f6ht die Unsicherheit bei der Positionssizing-Entscheidung erheblich.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"catalyst_confidence\": 5,\n        \"asymmetry_reasoning\": \"Der Berkshire-Abel-Pivot signalisiert institutionelle Neubewertung von GOOG als AI-Infrastruktur-Titel, nicht mehr nur als Werbe-Plattform. Insider-Cluster-K\\u00e4ufe innerhalb von 14 Tagen bei gleichzeitigem Kursr\\u00fcckgang von -2.1% deuten auf informierten Akkumulationsdruck hin. Das expansive Makroumfeld mit steiler Kurve beg\\u00fcnstigt Wachstumstitel, was die strukturelle Underreaction gegen\\u00fcber dem I/O-Showcase-Momentum verst\\u00e4rkt.\",\n        \"catalyst\": \"BofA $430 Kursziel nach I/O 2026 AI Showcase kombiniert mit Berkshire-Einstieg als Katalysator f\\u00fcr institutionelle Neubewertung im Q3 2026 Earnings-Zyklus\",\n        \"bear_case\": \"AI-Overviews kannibalisieren Search-Click-Rates strukturell, w\\u00e4hrend laufende DOJ/EU-Antitrust-Urteile im 2-6 Monats-Horizont materialisieren k\\u00f6nnten und die gesamte Bull-Thesis eines stabilen Monopol-Cashflows gef\\u00e4hrden.\",\n        \"macro_assessment\": \"Expansives Umfeld mit steiler Kurve (+0.54%) und Fed Funds bei 3.64% beg\\u00fcnstigt Growth/Tech-Positionen. VIX Contango deutet auf sinkende implizite Volatilit\\u00e4t hin, was Long-Calls mittelfristig unterst\\u00fctzt. Der 10Y bei 4.32% ist tolerierbar f\\u00fcr High-Multiple-Titel, jedoch begrenzt dies den Bewertungsexpansionsspielraum bei einem bereits $4.6T Mega-Cap.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.54,\n          \"regime\": \"expansive\"\n        },\n        \"mc_hit_rate\": 0.0,\n        \"is_mega_cap\": true,\n        \"market_cap\": 4624465002496,\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLC\",\n        \"rel_strength\": 0.2564\n      },\n      \"final_score\": 0.1774,\n      \"mc_hit_rate\": 0.6398,\n      \"time_to_maturation\": \"2-3 Monate\",\n      \"sector\": \"Communication Services\",\n      \"catalyst_type\": \"EARNINGS\",\n      \"implied_move_pct\": 14.48,\n      \"model_move_pct\": 8.0,\n      \"edge_vs_implied\": -6.49,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 0.3074,\n        \"annualized_roi\": 1.686,\n        \"dte\": 92\n      },\n      \"trade_score\": {\n        \"total\": 56,\n        \"grade\": \"WATCH \\ud83d\\udfe0\",\n        \"grade_short\": \"WATCH\",\n        \"components\": {\n          \"signal_quality\": 17.9,\n          \"options_quality\": 19.6,\n          \"risk_deductions\": -2.0,\n          \"context_bonus\": 20.0,\n          \"roi_penalty\": 0.0,\n          \"edge_pts\": -6.0,\n          \"macro_sensitivity\": 0.5\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=5/Surprise=4), guter ROI (28%), positive Sektor-Relative-St\\u00e4rke | Risiken: Kein IV-Edge: Model +8.0% \\u2264 Markt \\u00b114.5% (bereits eingepreist)\",\n        \"best_argument_for\": \"Der Berkshire-Abel-Pivot signalisiert institutionelle Neubewertung von GOOG als AI-Infrastruktur-Titel, nicht mehr nur als Werbe-Plattform. Insider-Cluster-K\\u00e4ufe innerhalb von 14 Tagen bei gleichzeitigem Kursr\\u00fcckgang von -2.1% deuten auf informierten Akkumulationsdruck hin. Das expansive Makroumfeld mit steiler Kurve beg\\u00fcnstigt Wachstumstitel, was die strukturelle Underreaction gegen\\u00fcber dem I/O-Showcase-Momentum verst\\u00e4rkt.\",\n        \"best_argument_against\": \"Berkshire/Abel-Pivot als Signal ist schwach: Die Positionierung eines Value-Fonds in einem AI-Tech-Titel ist keine nicht-\\u00f6ffentliche Information und wird bei einem $4.6T Mega-Cap innerhalb von Minuten eingepreist. Der Kurs reagierte bereits \\u2013 die -2.1% in 48h zeigen, dass kein nachhaltiger Kaufdruck entstanden ist, obwohl die News bekannt wurden.\"\n      },\n      \"trade_rank\": 3,\n      \"exit_rules\": {\n        \"entry_cost\": 16.25,\n        \"take_profit_pct\": 50,\n        \"take_profit_price\": 24.38,\n        \"full_profit_pct\": 100,\n        \"full_profit_price\": 32.5,\n        \"stop_loss_pct\": -40,\n        \"stop_loss_price\": 9.75,\n        \"time_exit_dte_remaining\": 46,\n        \"time_exit_date\": \"2026-07-06\",\n        \"time_exit_min_profit_pct\": 20\n      }\n    },\n    {\n      \"ticker\": \"CSCO\",\n      \"strategy\": \"BULL_CALL_SPREAD\",\n      \"iv_rank\": 81.1,\n      \"iv_gate_applied\": true,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-08-21\",\n        \"strike\": 115.0,\n        \"bid\": 9.55,\n        \"ask\": 9.8,\n        \"open_interest\": 331,\n        \"implied_vol\": 0.3921,\n        \"spread_ratio\": 0.0255,\n        \"dte\": 92,\n        \"delta\": 0.563,\n        \"data_source\": \"tradier\",\n        \"spread_leg\": {\n          \"strike\": 125.0,\n          \"bid\": 5.55,\n          \"ask\": 5.8\n        },\n        \"net_debit\": 4.25\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 0.6896,\n        \"roi_net\": 0.3452,\n        \"spread_pct\": 0.0255,\n        \"vega_loss\": 0.2934,\n        \"theta_daily\": -0.0489,\n        \"theta_daily_pct\": 0.0115,\n        \"delta\": 0.4504,\n        \"breakeven\": 119.25,\n        \"breakeven_pct\": 0.0335,\n        \"iv_drop_assumed\": 0.13854149999999998,\n        \"iv_drop_base\": 0.18,\n        \"catalyst_type\": \"EARNINGS\",\n        \"cost_basis\": 4.25,\n        \"mc_weight\": 0.705,\n        \"is_spread\": true,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.12,\n        \"dte\": 92\n      },\n      \"dte_tier\": \"Mid-Term\",\n      \"annualized_roi\": 2.243,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Mid-Term\",\n          \"dte\": 92,\n          \"option\": {\n            \"expiry\": \"2026-08-21\",\n            \"strike\": 115.0,\n            \"bid\": 9.55,\n            \"ask\": 9.8,\n            \"open_interest\": 331,\n            \"implied_vol\": 0.3921,\n            \"spread_ratio\": 0.0255,\n            \"dte\": 92,\n            \"delta\": 0.563,\n            \"data_source\": \"tradier\",\n            \"spread_leg\": {\n              \"strike\": 125.0,\n              \"bid\": 5.55,\n              \"ask\": 5.8\n            },\n            \"net_debit\": 4.25\n          },\n          \"roi\": {\n            \"roi_gross\": 0.6896,\n            \"roi_net\": 0.3452,\n            \"spread_pct\": 0.0255,\n            \"vega_loss\": 0.2934,\n            \"theta_daily\": -0.0489,\n            \"theta_daily_pct\": 0.0115,\n            \"delta\": 0.4504,\n            \"breakeven\": 119.25,\n            \"breakeven_pct\": 0.0335,\n            \"iv_drop_assumed\": 0.13854149999999998,\n            \"iv_drop_base\": 0.18,\n            \"catalyst_type\": \"EARNINGS\",\n            \"cost_basis\": 4.25,\n            \"mc_weight\": 0.705,\n            \"is_spread\": true,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.12,\n            \"dte\": 92\n          },\n          \"annualized_roi\": 2.243,\n          \"strategy\": \"BULL_CALL_SPREAD\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"mismatch\": 0.613,\n        \"z_score\": 0.877,\n        \"sigma_30d\": 0.0273,\n        \"price_move_48h\": 0.0239,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"weak\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.705\n      },\n      \"simulation\": {\n        \"current_price\": 115.39,\n        \"target_price\": 124.62,\n        \"hit_rate\": 0.75,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0226,\n        \"alpha\": 0.00425\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"CSCO ist ein Mega-Cap mit $455 Mrd. Marktkapitalisierung und extremer Informationseffizienz. Der EANTC 2026 VXLAN/EVPN Testbericht ist eine \\u00f6ffentliche, branchenweit zug\\u00e4ngliche Validierung \\u2014 institutionelle Netzwerk-Analysten haben dieses Ergebnis binnen Minuten eingepreist. Ein technisches Benchmark-Zertifikat erzeugt bei Cisco keinen nachhaltigen Informationsvorsprung, da Wettbewerber wie Arista, Juniper und HPE regelm\\u00e4\\u00dfig \\u00e4hnliche Tests durchlaufen.\",\n          \"argument_2\": \"Die aktuellen News zeigen einen breiten Markt-Sell-off mit Bond-Yields auf 19-Jahres-Hochs. Dieser makro\\u00f6konomische Gegenwind bei einem defensiven Netzwerk-Player wie Cisco bedeutet, dass trotz steil positiver Zinskurve die kurzfristige Marktdynamik bullische Einzel-Signale \\u00fcberlagern kann. Die -2.4% Bewegung in 48h deutet darauf hin, dass CSCO im Sog des Gesamtmarkts abverkauft wird, unabh\\u00e4ngig von den fundamentalen Katalysatoren.\",\n          \"argument_3\": \"Der EPS-Widerspruch zwischen yfinance (4.75) und SEC EDGAR (3.0) ist substanziell und deutet auf erhebliche Unsicherheit in der Datenbasis hin. Zudem betr\\u00e4gt die Quick-MC Hit-Rate 0%, was auf fehlende Modell-Validierung hindeutet. Die Dealer-Gamma-Konstellation mit dominierender Call-OI k\\u00f6nnte Aufw\\u00e4rtsbewegungen mechanisch d\\u00e4mpfen, und ein m\\u00f6glicher IV-Crush nach Q2-Earnings w\\u00fcrde Long-Options-Positionen stark belasten.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Die 0% Hit-Rate resultiert aus keiner Berechnung (kein MC durchgef\\u00fchrt), nicht aus einem negativen Ergebnis \\u2014 daher statistisch nicht verwertbar. Die fehlende MC-Statistik erh\\u00f6ht die Unsicherheit, eliminiert aber kein strukturelles Signal. Bei CSCO mit historischer Volatilit\\u00e4t von ca. 20-25% sind 30d-Bewegungen von 5-10% realistische Szenarien, was bei einem moderaten Kursziel eine Hit-Rate von 40-55% erwarten lie\\u00dfe.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"4-8 Wochen\",\n        \"catalyst_confidence\": 5,\n        \"asymmetry_reasoning\": \"Der Markt fokussiert sich auf den makro\\u00f6konomischen Sell-off und \\u00fcbersieht das Cluster-Signal aus 8 Insider-K\\u00e4ufen kombiniert mit der EANTC-Validierung kurz vor Q2-Earnings. Cisco Live 2026 und die Automation Anywhere AI-Partnerschaft schaffen einen narrativen Rahmen, der institutionelle Aufmerksamkeit auf das AI-Networking-Exposure lenken k\\u00f6nnte. Das expansive Makroregime mit positiver Zinskurve beg\\u00fcnstigt eine Neubewertung defensiver Tech-Werte sobald der Bond-Yield-Schock abklingt.\",\n        \"catalyst\": \"Q2-Earnings CSCO (ca. Juni 2026) kombiniert mit Cisco Live 2026 Momentum und 8-Insider-Kauf-Cluster als Vorl\\u00e4ufer-Signal\",\n        \"bear_case\": \"Breiter Markt-Sell-off durch Bond-Yield-Schock auf 19-Jahres-Hoch \\u00fcberlagert alle fundamentalen Einzelsignale; IV-Crush nach Earnings vernichtet Long-Options-Wert\",\n        \"macro_assessment\": \"Expansives Umfeld mit positiver Zinskurve (+0.54%) und Fed Funds Rate 3.64% beg\\u00fcnstigt grunds\\u00e4tzlich Long-Positionen. Allerdings konterkariert der aktuelle Bond-Yield-getriebene Sell-off kurzfristig diesen Rahmen. VIX Contango deutet auf sinkende Volatilit\\u00e4t in 3 Monaten \\u2014 Spreads gegen\\u00fcber nackten Calls bevorzugen um Event-Vol-Crush nach Earnings abzufedern.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.54,\n          \"regime\": \"expansive\"\n        },\n        \"mc_hit_rate\": 0.0,\n        \"is_mega_cap\": true,\n        \"market_cap\": 455778172928,\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLK\",\n        \"rel_strength\": 0.1844\n      },\n      \"final_score\": 0.1774,\n      \"mc_hit_rate\": 0.705,\n      \"time_to_maturation\": \"4-8 Wochen\",\n      \"sector\": \"Technology\",\n      \"catalyst_type\": \"EARNINGS\",\n      \"implied_move_pct\": 15.95,\n      \"model_move_pct\": 8.0,\n      \"edge_vs_implied\": -7.95,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 0.3752,\n        \"annualized_roi\": 2.243,\n        \"dte\": 92\n      },\n      \"trade_score\": {\n        \"total\": 55,\n        \"grade\": \"WATCH \\ud83d\\udfe0\",\n        \"grade_short\": \"WATCH\",\n        \"components\": {\n          \"signal_quality\": 17.9,\n          \"options_quality\": 18.4,\n          \"risk_deductions\": -2.0,\n          \"context_bonus\": 21.0,\n          \"roi_penalty\": 0.0,\n          \"edge_pts\": -6.0,\n          \"macro_sensitivity\": 0.6\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=5/Surprise=4), guter ROI (35%), positive Sektor-Relative-St\\u00e4rke | Risiken: Kein IV-Edge: Model +8.0% \\u2264 Markt \\u00b115.9% (bereits eingepreist)\",\n        \"best_argument_for\": \"Der Markt fokussiert sich auf den makro\\u00f6konomischen Sell-off und \\u00fcbersieht das Cluster-Signal aus 8 Insider-K\\u00e4ufen kombiniert mit der EANTC-Validierung kurz vor Q2-Earnings. Cisco Live 2026 und die Automation Anywhere AI-Partnerschaft schaffen einen narrativen Rahmen, der institutionelle Aufmerksamkeit auf das AI-Networking-Exposure lenken k\\u00f6nnte. Das expansive Makroregime mit positiver Zinskurve beg\\u00fcnstigt eine Neubewertung defensiver Tech-Werte sobald der Bond-Yield-Schock abklingt.\",\n        \"best_argument_against\": \"CSCO ist ein Mega-Cap mit $455 Mrd. Marktkapitalisierung und extremer Informationseffizienz. Der EANTC 2026 VXLAN/EVPN Testbericht ist eine \\u00f6ffentliche, branchenweit zug\\u00e4ngliche Validierung \\u2014 institutionelle Netzwerk-Analysten haben dieses Ergebnis binnen Minuten eingepreist. Ein technisches Benchmark-Zertifikat erzeugt bei Cisco keinen nachhaltigen Informationsvorsprung, da Wettbewerber wie Arista, Juniper und HPE regelm\\u00e4\\u00dfig \\u00e4hnliche Tests durchlaufen.\"\n      },\n      \"trade_rank\": 4,\n      \"exit_rules\": {\n        \"entry_cost\": 4.25,\n        \"take_profit_pct\": 50,\n        \"take_profit_price\": 6.38,\n        \"full_profit_pct\": 100,\n        \"full_profit_price\": 8.5,\n        \"stop_loss_pct\": -40,\n        \"stop_loss_price\": 2.55,\n        \"time_exit_dte_remaining\": 46,\n        \"time_exit_date\": \"2026-07-06\",\n        \"time_exit_min_profit_pct\": 20\n      }\n    },\n    {\n      \"ticker\": \"MO\",\n      \"strategy\": \"BULL_CALL_SPREAD\",\n      \"iv_rank\": 83.3,\n      \"iv_gate_applied\": true,\n      \"direction\": \"BULLISH\",\n      \"option\": {\n        \"expiry\": \"2026-09-18\",\n        \"strike\": 70.0,\n        \"bid\": 5.8,\n        \"ask\": 6.1,\n        \"open_interest\": 3388,\n        \"implied_vol\": 0.2647,\n        \"spread_ratio\": 0.0492,\n        \"dte\": 120,\n        \"delta\": 0.6461,\n        \"data_source\": \"tradier\",\n        \"spread_leg\": {\n          \"strike\": 77.5,\n          \"bid\": 2.31,\n          \"ask\": 2.44\n        },\n        \"net_debit\": 3.79\n      },\n      \"roi_analysis\": {\n        \"roi_gross\": 0.4342,\n        \"roi_net\": 0.3024,\n        \"spread_pct\": 0.0492,\n        \"vega_loss\": 0.0335,\n        \"theta_daily\": -0.017,\n        \"theta_daily_pct\": 0.0045,\n        \"delta\": 0.5169,\n        \"breakeven\": 73.79,\n        \"breakeven_pct\": -0.0022,\n        \"iv_drop_assumed\": 0.031160999999999998,\n        \"iv_drop_base\": 0.04,\n        \"catalyst_type\": \"INSIDER\",\n        \"cost_basis\": 3.79,\n        \"mc_weight\": 0.538,\n        \"is_spread\": true,\n        \"passes_roi_gate\": true,\n        \"min_roi_threshold\": 0.12,\n        \"dte\": 120\n      },\n      \"dte_tier\": \"Mid-Term\",\n      \"annualized_roi\": 1.2336,\n      \"all_tiers_tried\": [\n        {\n          \"tier\": \"Mid-Term\",\n          \"dte\": 120,\n          \"option\": {\n            \"expiry\": \"2026-09-18\",\n            \"strike\": 70.0,\n            \"bid\": 5.8,\n            \"ask\": 6.1,\n            \"open_interest\": 3388,\n            \"implied_vol\": 0.2647,\n            \"spread_ratio\": 0.0492,\n            \"dte\": 120,\n            \"delta\": 0.6461,\n            \"data_source\": \"tradier\",\n            \"spread_leg\": {\n              \"strike\": 77.5,\n              \"bid\": 2.31,\n              \"ask\": 2.44\n            },\n            \"net_debit\": 3.79\n          },\n          \"roi\": {\n            \"roi_gross\": 0.4342,\n            \"roi_net\": 0.3024,\n            \"spread_pct\": 0.0492,\n            \"vega_loss\": 0.0335,\n            \"theta_daily\": -0.017,\n            \"theta_daily_pct\": 0.0045,\n            \"delta\": 0.5169,\n            \"breakeven\": 73.79,\n            \"breakeven_pct\": -0.0022,\n            \"iv_drop_assumed\": 0.031160999999999998,\n            \"iv_drop_base\": 0.04,\n            \"catalyst_type\": \"INSIDER\",\n            \"cost_basis\": 3.79,\n            \"mc_weight\": 0.538,\n            \"is_spread\": true,\n            \"passes_roi_gate\": true,\n            \"min_roi_threshold\": 0.12,\n            \"dte\": 120\n          },\n          \"annualized_roi\": 1.2336,\n          \"strategy\": \"BULL_CALL_SPREAD\"\n        }\n      ],\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"mismatch\": 1.549,\n        \"z_score\": 0.69,\n        \"sigma_30d\": 0.018,\n        \"price_move_48h\": 0.0125,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"weak\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.5378\n      },\n      \"simulation\": {\n        \"current_price\": 73.95,\n        \"target_price\": 79.87,\n        \"hit_rate\": 0.6576,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.015,\n        \"alpha\": 0.00279\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Altria ist ein strukturell schrumpfendes Gesch\\u00e4ft: Zigarettenvolumina sinken seit Jahren systematisch, und regulatorische Versch\\u00e4rfungen (Menthol-Verbote, Nikotinreduzierungsregeln) k\\u00f6nnten den R\\u00fcckgang beschleunigen. Das 'Regulatory/Tax-Umfeld-Shift'-Narrativ ist zweischneidig \\u2014 ein ung\\u00fcnstiger Policy-Shift k\\u00f6nnte den gesamten Sektor belasten, nicht st\\u00fctzen.\",\n          \"argument_2\": \"Der Barclays-Analyst hat sein Price-Target-Upgrade bereits ver\\u00f6ffentlicht und ist \\u00f6ffentlich zug\\u00e4nglich. Bei einer Marktkapitalisierung von $123,5 Mrd. wird diese Information innerhalb von Stunden von institutionellen Desks eingepreist. Das Catalyst-Signal ist damit m\\u00f6glicherweise bereits vollst\\u00e4ndig verarbeitet, und die +1,2% Preisbewegung in den letzten 48h deutet darauf hin, dass der Markt bereits reagiert hat.\",\n          \"argument_3\": \"Die Dealer-Gamma-Struktur zeigt eine Call-OI-Dominanz (2.094 zu 314), was bedeutet, dass Market-Maker bei steigenden Kursen short Gamma sind und Delta-Hedging Aufw\\u00e4rtsbewegungen aktiv d\\u00e4mpft. Gleichzeitig ist MO ein hochdividendengetriebener Titel mit 5,7% Dividendenrendite \\u2014 ein gro\\u00dfer Teil des erwarteten Returns ist bereits als Dividende eingepreist, was das Aufw\\u00e4rtspotenzial f\\u00fcr Options-Strategien begrenzt.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein MC durchgef\\u00fchrt \\u2014 0% Hit-Rate ist technisch bedingt (kein Modell-Run), nicht inhaltlich aussagekr\\u00e4ftig. Angesichts der historischen Volatilit\\u00e4t von MO (~18-22% annualisiert) und dem expansiven Makro-Umfeld w\\u00e4re eine realistische 30-Tage Hit-Rate f\\u00fcr moderate Aufw\\u00e4rtsbewegungen von +5-8% bei ca. 40-55% zu erwarten. Fehlende MC-Daten reduzieren die quantitative Absicherung dieser Analyse erheblich.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 5,\n        \"time_to_materialization\": \"4-8 Wochen\",\n        \"catalyst_confidence\": 5,\n        \"asymmetry_reasoning\": \"Der Markt hat das Barclays-Upgrade m\\u00f6glicherweise als punktuelles Ereignis bewertet, ohne das potenzielle Portfolio-Rebalancing in Defensive-Dividendentiteln einzupreisen, das bei einem Zinsumfeld-Shift folgen k\\u00f6nnte. Das Insider-Cluster-Kaufsignal (8 Insider in 14 Tagen) liefert einen unabh\\u00e4ngigen, nicht-\\u00f6ffentlichen Indikator f\\u00fcr innerbetrieblich wahrgenommene Unterbewertung. Das Zusammentreffen von Dividendennarrativen, Sektor-Re-Rating und Insider-K\\u00e4ufen schafft eine kumulative Informationsdichte, die der Markt bisher nicht vollst\\u00e4ndig aggregiert hat.\",\n        \"catalyst\": \"Barclays Sektor-Re-Rating kombiniert mit Insider-Cluster-K\\u00e4ufen (8 Transaktionen in 14 Tagen) und m\\u00f6glichem Portfolio-Rebalancing institutioneller Anleger in hochdividendenstarke Consumer-Defensive-Titel im Zuge eines Regulatory/Tax-Umfeld-Shifts bis Ende Q3 2026.\",\n        \"bear_case\": \"Strukturell schrumpfende Zigarettenvolumina und m\\u00f6gliche regulatorische Versch\\u00e4rfungen (Menthol-Verbote, FDA-Nikotinregeln) k\\u00f6nnten das Sektor-Re-Rating-Narrativ rasch zunichte machen; zudem ist das Barclays-Upgrade als \\u00f6ffentliche Information weitgehend eingepreist.\",\n        \"macro_assessment\": \"Das expansive Makro-Umfeld (steile Kurve +0,54%, Fed Funds bei 3,64%) beg\\u00fcnstigt grunds\\u00e4tzlich Long-Positionen, jedoch profitiert MO als Consumer-Defensive-Titel prim\\u00e4r in Risk-off-Phasen. Im expansiven Regime tendieren Investoren zu Wachstumstiteln, was den Kapitalzufluss in Hochdividenden-Defensivtitel strukturell begrenzt. Der VIX-Contango spricht gegen Long-Vol-Strategien \\u2014 ein Bull-Call-Spread w\\u00e4re sinnvoller als ein nackter Long-Call.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.54,\n          \"regime\": \"expansive\"\n        },\n        \"mc_hit_rate\": 0.0,\n        \"is_mega_cap\": false,\n        \"market_cap\": 123488452608,\n        \"direction_conflict\": false\n      },\n      \"sector_momentum\": {\n        \"etf\": \"XLP\",\n        \"rel_strength\": 0.0753\n      },\n      \"final_score\": 0.1774,\n      \"mc_hit_rate\": 0.5378,\n      \"time_to_maturation\": \"4-8 Wochen\",\n      \"sector\": \"Consumer Defensive\",\n      \"catalyst_type\": \"INSIDER\",\n      \"implied_move_pct\": 11.83,\n      \"model_move_pct\": 8.01,\n      \"edge_vs_implied\": -3.83,\n      \"time_value_efficiency\": {\n        \"roi_per_day_pct\": 0.252,\n        \"annualized_roi\": 1.2336,\n        \"dte\": 120\n      },\n      \"trade_score\": {\n        \"total\": 54,\n        \"grade\": \"WATCH \\ud83d\\udfe0\",\n        \"grade_short\": \"WATCH\",\n        \"components\": {\n          \"signal_quality\": 17.9,\n          \"options_quality\": 20.3,\n          \"risk_deductions\": -2.0,\n          \"context_bonus\": 17.5,\n          \"roi_penalty\": 0.0,\n          \"edge_pts\": -6.0,\n          \"macro_sensitivity\": 0.25\n        },\n        \"reasoning\": \"St\\u00e4rken: solides Signal (Impact=5/Surprise=4), guter ROI (30%), positive Sektor-Relative-St\\u00e4rke | Risiken: Kein IV-Edge: Model +8.0% \\u2264 Markt \\u00b111.8% (bereits eingepreist), Makro expansiv aber Sektor-Korrelation gering (25%)\",\n        \"best_argument_for\": \"Der Markt hat das Barclays-Upgrade m\\u00f6glicherweise als punktuelles Ereignis bewertet, ohne das potenzielle Portfolio-Rebalancing in Defensive-Dividendentiteln einzupreisen, das bei einem Zinsumfeld-Shift folgen k\\u00f6nnte. Das Insider-Cluster-Kaufsignal (8 Insider in 14 Tagen) liefert einen unabh\\u00e4ngigen, nicht-\\u00f6ffentlichen Indikator f\\u00fcr innerbetrieblich wahrgenommene Unterbewertung. Das Zusammentreffen von Dividendennarrativen, Sektor-Re-Rating und Insider-K\\u00e4ufen schafft eine kumulative Informationsdichte, die der Markt bisher nicht vollst\\u00e4ndig aggregiert hat.\",\n        \"best_argument_against\": \"Altria ist ein strukturell schrumpfendes Gesch\\u00e4ft: Zigarettenvolumina sinken seit Jahren systematisch, und regulatorische Versch\\u00e4rfungen (Menthol-Verbote, Nikotinreduzierungsregeln) k\\u00f6nnten den R\\u00fcckgang beschleunigen. Das 'Regulatory/Tax-Umfeld-Shift'-Narrativ ist zweischneidig \\u2014 ein ung\\u00fcnstiger Policy-Shift k\\u00f6nnte den gesamten Sektor belasten, nicht st\\u00fctzen.\"\n      },\n      \"trade_rank\": 5,\n      \"exit_rules\": {\n        \"entry_cost\": 3.79,\n        \"take_profit_pct\": 50,\n        \"take_profit_price\": 5.69,\n        \"full_profit_pct\": 100,\n        \"full_profit_price\": 7.58,\n        \"stop_loss_pct\": -40,\n        \"stop_loss_price\": 2.27,\n        \"time_exit_dte_remaining\": 60,\n        \"time_exit_date\": \"2026-07-20\",\n        \"time_exit_min_profit_pct\": 20\n      }\n    }\n  ]\n}"
  },
  {
    "path": "outputs/daily_reports/2026-05-20.md",
    "content": "# Adaptive Asymmetry-Scanner – 2026-05-20\n\n**Generiert:** 2026-05-20 16:55 UTC\n**Trade-Vorschläge:** 5\n\n---\n## 1. DDOG – BULL_CALL_SPREAD\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.0785`  \n**IV-Rank:** 81.9  \n**Trade-Score:** 61/100 — BUY 🟡  \n\n### Asymmetry-Analyse\n- **Impact:** 6/10\n- **Surprise:** 5/10\n- **Mismatch-Score:** 3.112\n- **Z-Score (48h):** 0.578\n- **48h-Move:** 0.0345\n- **EPS-Drift:** 0.0 (noise)\n\n**Asymmetry-Reasoning:**  \n> Der Markt bewertet Ecosystem-Integrationen wie Cloudflare/Claude-Agents als inkrementelle News, ohne den kumulativen Netzwerkeffekt für DDAGs AI-Observability-Plattform vollständig zu diskontieren. Cluster-Insider-Käufe (6 Personen in 14 Tagen) signalisieren intern gesteigertes Conviction, das öffentlich noch nicht reflektiert ist. Das expansive Makro-Umfeld und steile Zinskurve begünstigen Growth-Multiples zusätzlich.\n\n**Katalysator:** Kumulativer AI-Observability-Plattform-Ausbau durch Cloudflare/Claude-Agent-Integration und Serverless-Compat-Expansion, validiert durch Cluster-Insider-Käufe vor dem nächsten Earnings-Zyklus Q2 2026  \n**Time-to-Materialization:** 2-3 Monate  \n\n### Bear Case\n> Öffentliche Integrations-News sind bei einem stark gecoverten Growth-Titel schnell eingepreist; das KGV von ~74 lässt wenig Puffer für Enttäuschungen, und das Call-dominante Dealer-Gamma-Profil dämpft strukturell kurzfristige Aufwärtsbewegungen.  \n**Severity:** 5/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 67.9% (10,000 Pfade)\n- **Target-Preis:** $243.79\n- **Aktueller Preis:** $211.93\n- **σ:** 0.0448\n- **α (Signal-Drift):** 0.00381\n\n### Options-Vorschlag\n- **Expiry:** 2026-08-21 (92 DTE)\n- **Strike:** $210.00\n- **Bid/Ask:** $28.15 / $28.90\n- **Impl. Vol.:** 62.1%\n- **Open Interest:** 285\n- **Bid-Ask-Ratio:** 2.60%\n\n- **Short Strike:** $230.00  \n- **Short Bid/Ask:** $19.85 / $21.25\n- **Net Debit:** $9.05\n\n### 🚪 Exit-Regeln\n- **Entry-Kosten:** $9.05 pro Kontrakt\n- **Take-Profit:** bei $13.58 (+50%) → Hälfte schliessen\n- **Full-Profit:** bei $18.10 (+100%) → Rest schliessen\n- **Stop-Loss:** bei $5.43 (-40%) → Gesamte Position liquidieren\n- **Time-Exit:** ab 2026-07-06 (46 DTE Rest) — schliessen wenn Gewinn < +20%\n\n---\n## 2. COIN – LONG_CALL\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.0785`  \n**IV-Rank:** 32.5  \n**Trade-Score:** 60/100 — BUY 🟡  \n\n### Asymmetry-Analyse\n- **Impact:** 5/10\n- **Surprise:** 4/10\n- **Mismatch-Score:** 3.719\n- **Z-Score (48h):** 0.256\n- **48h-Move:** 0.0101\n- **EPS-Drift:** 0.0 (noise)\n\n**Asymmetry-Reasoning:**  \n> Der Markt preist das Altseason-Narrativ noch nicht vollständig ein, da COIN trotz positiver Krypto-Signale leicht gefallen ist — eine typische Verzögerung bei Sentiment-Shifts. Der Insider-Cluster von 6 Käufern in 14 Tagen liefert ein zusätzliches, nicht vollständig eingepreistes Signal für interne Zuversicht. Das expansive Makroumfeld mit steiler Zinskurve begünstigt Risk-On-Assets wie COIN strukturell über 4-8 Wochen.\n\n**Katalysator:** Altseason-Rallye getrieben durch Hyperliquid/HYPE-Momentum und breiten Sentiment-Shift im Krypto-Ökosystem, kombiniert mit Insider-Kauf-Cluster als Conviction-Signal  \n**Time-to-Materialization:** 4-8 Wochen  \n\n### Bear Case\n> Krypto-Sentiment dreht schnell: Eine Bitcoin-Korrektur oder regulatorische Negativnachrichten können COIN überproportional treffen. Bei einem KGV von ~71x (SEC-Basis) gibt es kaum fundamentalen Sicherheitspuffer, und das Altseason-Narrativ könnte bereits eingepreist sein.  \n**Severity:** 6/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 52.2% (10,000 Pfade)\n- **Target-Preis:** $224.56\n- **Aktueller Preis:** $194.50\n- **σ:** 0.0461\n- **α (Signal-Drift):** -0.00012\n\n### Options-Vorschlag\n- **Expiry:** 2026-08-21 (92 DTE)\n- **Strike:** $200.00\n- **Bid/Ask:** $25.50 / $26.75\n- **Impl. Vol.:** 71.0%\n- **Open Interest:** 1,667\n- **Bid-Ask-Ratio:** 4.67%\n\n### 🚪 Exit-Regeln\n- **Entry-Kosten:** $26.75 pro Kontrakt\n- **Take-Profit:** bei $40.12 (+50%) → Hälfte schliessen\n- **Full-Profit:** bei $53.50 (+100%) → Rest schliessen\n- **Stop-Loss:** bei $16.05 (-40%) → Gesamte Position liquidieren\n- **Time-Exit:** ab 2026-07-06 (46 DTE Rest) — schliessen wenn Gewinn < +20%\n\n---\n## 3. GOOG – BULL_CALL_SPREAD\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.1774`  \n**IV-Rank:** 81.2  \n**Trade-Score:** 56/100 — WATCH 🟠  \n\n### Asymmetry-Analyse\n- **Impact:** 5/10\n- **Surprise:** 4/10\n- **Mismatch-Score:** 0.207\n- **Z-Score (48h):** 0.959\n- **48h-Move:** 0.0214\n- **EPS-Drift:** 0.0 (noise)\n\n**Asymmetry-Reasoning:**  \n> Der Berkshire-Abel-Pivot signalisiert institutionelle Neubewertung von GOOG als AI-Infrastruktur-Titel, nicht mehr nur als Werbe-Plattform. Insider-Cluster-Käufe innerhalb von 14 Tagen bei gleichzeitigem Kursrückgang von -2.1% deuten auf informierten Akkumulationsdruck hin. Das expansive Makroumfeld mit steiler Kurve begünstigt Wachstumstitel, was die strukturelle Underreaction gegenüber dem I/O-Showcase-Momentum verstärkt.\n\n**Katalysator:** BofA $430 Kursziel nach I/O 2026 AI Showcase kombiniert mit Berkshire-Einstieg als Katalysator für institutionelle Neubewertung im Q3 2026 Earnings-Zyklus  \n**Time-to-Materialization:** 2-3 Monate  \n\n### Bear Case\n> AI-Overviews kannibalisieren Search-Click-Rates strukturell, während laufende DOJ/EU-Antitrust-Urteile im 2-6 Monats-Horizont materialisieren könnten und die gesamte Bull-Thesis eines stabilen Monopol-Cashflows gefährden.  \n**Severity:** 6/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 73.6% (10,000 Pfade)\n- **Target-Preis:** $412.32\n- **Aktueller Preis:** $381.78\n- **σ:** 0.0190\n- **α (Signal-Drift):** 0.00287\n\n### Options-Vorschlag\n- **Expiry:** 2026-08-21 (92 DTE)\n- **Strike:** $380.00\n- **Bid/Ask:** $29.60 / $30.30\n- **Impl. Vol.:** 35.0%\n- **Open Interest:** 1,278\n- **Bid-Ask-Ratio:** 2.31%\n\n- **Short Strike:** $420.00  \n- **Short Bid/Ask:** $14.05 / $14.45\n- **Net Debit:** $16.25\n\n### 🚪 Exit-Regeln\n- **Entry-Kosten:** $16.25 pro Kontrakt\n- **Take-Profit:** bei $24.38 (+50%) → Hälfte schliessen\n- **Full-Profit:** bei $32.50 (+100%) → Rest schliessen\n- **Stop-Loss:** bei $9.75 (-40%) → Gesamte Position liquidieren\n- **Time-Exit:** ab 2026-07-06 (46 DTE Rest) — schliessen wenn Gewinn < +20%\n\n---\n## 4. CSCO – BULL_CALL_SPREAD\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.1774`  \n**IV-Rank:** 81.1  \n**Trade-Score:** 55/100 — WATCH 🟠  \n\n### Asymmetry-Analyse\n- **Impact:** 5/10\n- **Surprise:** 4/10\n- **Mismatch-Score:** 0.613\n- **Z-Score (48h):** 0.877\n- **48h-Move:** 0.0239\n- **EPS-Drift:** 0.0 (noise)\n\n**Asymmetry-Reasoning:**  \n> Der Markt fokussiert sich auf den makroökonomischen Sell-off und übersieht das Cluster-Signal aus 8 Insider-Käufen kombiniert mit der EANTC-Validierung kurz vor Q2-Earnings. Cisco Live 2026 und die Automation Anywhere AI-Partnerschaft schaffen einen narrativen Rahmen, der institutionelle Aufmerksamkeit auf das AI-Networking-Exposure lenken könnte. Das expansive Makroregime mit positiver Zinskurve begünstigt eine Neubewertung defensiver Tech-Werte sobald der Bond-Yield-Schock abklingt.\n\n**Katalysator:** Q2-Earnings CSCO (ca. Juni 2026) kombiniert mit Cisco Live 2026 Momentum und 8-Insider-Kauf-Cluster als Vorläufer-Signal  \n**Time-to-Materialization:** 4-8 Wochen  \n\n### Bear Case\n> Breiter Markt-Sell-off durch Bond-Yield-Schock auf 19-Jahres-Hoch überlagert alle fundamentalen Einzelsignale; IV-Crush nach Earnings vernichtet Long-Options-Wert  \n**Severity:** 6/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 75.0% (10,000 Pfade)\n- **Target-Preis:** $124.62\n- **Aktueller Preis:** $115.39\n- **σ:** 0.0226\n- **α (Signal-Drift):** 0.00425\n\n### Options-Vorschlag\n- **Expiry:** 2026-08-21 (92 DTE)\n- **Strike:** $115.00\n- **Bid/Ask:** $9.55 / $9.80\n- **Impl. Vol.:** 39.2%\n- **Open Interest:** 331\n- **Bid-Ask-Ratio:** 2.55%\n\n- **Short Strike:** $125.00  \n- **Short Bid/Ask:** $5.55 / $5.80\n- **Net Debit:** $4.25\n\n### 🚪 Exit-Regeln\n- **Entry-Kosten:** $4.25 pro Kontrakt\n- **Take-Profit:** bei $6.38 (+50%) → Hälfte schliessen\n- **Full-Profit:** bei $8.50 (+100%) → Rest schliessen\n- **Stop-Loss:** bei $2.55 (-40%) → Gesamte Position liquidieren\n- **Time-Exit:** ab 2026-07-06 (46 DTE Rest) — schliessen wenn Gewinn < +20%\n\n---\n## 5. MO – BULL_CALL_SPREAD\n\n**Richtung:** BULLISH  \n**FinalScore:** `0.1774`  \n**IV-Rank:** 83.3  \n**Trade-Score:** 54/100 — WATCH 🟠  \n\n### Asymmetry-Analyse\n- **Impact:** 5/10\n- **Surprise:** 4/10\n- **Mismatch-Score:** 1.549\n- **Z-Score (48h):** 0.69\n- **48h-Move:** 0.0125\n- **EPS-Drift:** 0.0 (noise)\n\n**Asymmetry-Reasoning:**  \n> Der Markt hat das Barclays-Upgrade möglicherweise als punktuelles Ereignis bewertet, ohne das potenzielle Portfolio-Rebalancing in Defensive-Dividendentiteln einzupreisen, das bei einem Zinsumfeld-Shift folgen könnte. Das Insider-Cluster-Kaufsignal (8 Insider in 14 Tagen) liefert einen unabhängigen, nicht-öffentlichen Indikator für innerbetrieblich wahrgenommene Unterbewertung. Das Zusammentreffen von Dividendennarrativen, Sektor-Re-Rating und Insider-Käufen schafft eine kumulative Informationsdichte, die der Markt bisher nicht vollständig aggregiert hat.\n\n**Katalysator:** Barclays Sektor-Re-Rating kombiniert mit Insider-Cluster-Käufen (8 Transaktionen in 14 Tagen) und möglichem Portfolio-Rebalancing institutioneller Anleger in hochdividendenstarke Consumer-Defensive-Titel im Zuge eines Regulatory/Tax-Umfeld-Shifts bis Ende Q3 2026.  \n**Time-to-Materialization:** 4-8 Wochen  \n\n### Bear Case\n> Strukturell schrumpfende Zigarettenvolumina und mögliche regulatorische Verschärfungen (Menthol-Verbote, FDA-Nikotinregeln) könnten das Sektor-Re-Rating-Narrativ rasch zunichte machen; zudem ist das Barclays-Upgrade als öffentliche Information weitgehend eingepreist.  \n**Severity:** 5/10\n\n### Monte-Carlo Simulation\n- **Hit-Rate:** 65.8% (10,000 Pfade)\n- **Target-Preis:** $79.87\n- **Aktueller Preis:** $73.95\n- **σ:** 0.0150\n- **α (Signal-Drift):** 0.00279\n\n### Options-Vorschlag\n- **Expiry:** 2026-09-18 (120 DTE)\n- **Strike:** $70.00\n- **Bid/Ask:** $5.80 / $6.10\n- **Impl. Vol.:** 26.5%\n- **Open Interest:** 3,388\n- **Bid-Ask-Ratio:** 4.92%\n\n- **Short Strike:** $77.50  \n- **Short Bid/Ask:** $2.31 / $2.44\n- **Net Debit:** $3.79\n\n### 🚪 Exit-Regeln\n- **Entry-Kosten:** $3.79 pro Kontrakt\n- **Take-Profit:** bei $5.69 (+50%) → Hälfte schliessen\n- **Full-Profit:** bei $7.58 (+100%) → Rest schliessen\n- **Stop-Loss:** bei $2.27 (-40%) → Gesamte Position liquidieren\n- **Time-Exit:** ab 2026-07-20 (60 DTE Rest) — schliessen wenn Gewinn < +20%\n\n---\n## Modell-Gewichte (aktuell)\n- Impact: `0.35`\n- Mismatch: `0.45`\n- EPS-Drift: `0.20`\n\n_Automatisch generiert durch Adaptive Asymmetry-Scanner v8.2_"
  },
  {
    "path": "outputs/history.json",
    "content": "{\n  \"feature_stats\": {\n    \"impact\": {\n      \"low\": {\n        \"count\": 377,\n        \"avg_return\": 0.598737\n      },\n      \"mid\": {\n        \"count\": 1808,\n        \"avg_return\": 0.048283\n      },\n      \"high\": {\n        \"count\": 97,\n        \"avg_return\": -0.145227\n      }\n    },\n    \"mismatch\": {\n      \"weak\": {\n        \"count\": 631,\n        \"avg_return\": 0.294668\n      },\n      \"good\": {\n        \"count\": 1555,\n        \"avg_return\": 0.075911\n      },\n      \"strong\": {\n        \"count\": 96,\n        \"avg_return\": -0.05246\n      }\n    },\n    \"eps_drift\": {\n      \"noise\": {\n        \"count\": 2239,\n        \"avg_return\": 0.132584\n      },\n      \"relevant\": {\n        \"count\": 14,\n        \"avg_return\": 0.212756\n      },\n      \"massive\": {\n        \"count\": 29,\n        \"avg_return\": -0.031752\n      }\n    }\n  },\n  \"active_trades\": [\n    {\n      \"ticker\": \"LLY\",\n      \"entry_date\": \"2026-04-11\",\n      \"features\": {\n        \"impact\": 8,\n        \"surprise\": 6,\n        \"mismatch\": 4.595,\n        \"z_score\": 0.681,\n        \"sigma_30d\": 0.0213,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"high\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\"\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-08-21\",\n        \"strike\": 980.0,\n        \"bid\": 74.0,\n        \"ask\": 77.3,\n        \"last\": 85.4,\n        \"open_interest\": 255,\n        \"implied_vol\": 0.41737948348999016,\n        \"spread_ratio\": 0.0427,\n        \"dte\": 131\n      },\n      \"outcome\": null,\n      \"last_price\": 1007.775,\n      \"current_return\": 0.0899\n    },\n    {\n      \"ticker\": \"META\",\n      \"entry_date\": \"2026-04-11\",\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 7,\n        \"mismatch\": 0.733,\n        \"z_score\": 1.053,\n        \"sigma_30d\": 0.027,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"weak\",\n        \"bin_eps_drift\": \"noise\"\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-08-21\",\n        \"strike\": 700.0,\n        \"bid\": 33.0,\n        \"ask\": 33.4,\n        \"last\": 33.35,\n        \"open_interest\": 2204,\n        \"implied_vol\": 0.390203851928711,\n        \"spread_ratio\": 0.012,\n        \"dte\": 131\n      },\n      \"outcome\": null,\n      \"last_price\": 604.525,\n      \"current_return\": -0.5195\n    },\n    {\n      \"ticker\": \"MRK\",\n      \"entry_date\": \"2026-04-11\",\n      \"features\": {\n        \"impact\": 7,\n        \"surprise\": 6,\n        \"mismatch\": 2.158,\n        \"z_score\": 0.968,\n        \"sigma_30d\": 0.0148,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"weak\",\n        \"bin_eps_drift\": \"noise\"\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-09-18\",\n        \"strike\": 130.0,\n        \"bid\": 6.0,\n        \"ask\": 6.2,\n        \"last\": 6.05,\n        \"open_interest\": 2663,\n        \"implied_vol\": 0.2979196185302734,\n        \"spread_ratio\": 0.0323,\n        \"dte\": 159\n      },\n      \"outcome\": null,\n      \"last_price\": 113.12,\n      \"current_return\": -0.5983\n    },\n    {\n      \"ticker\": \"AAPL\",\n      \"entry_date\": \"2026-04-11\",\n      \"features\": {\n        \"impact\": 4,\n        \"surprise\": 3,\n        \"mismatch\": 1.665,\n        \"z_score\": 0.467,\n        \"sigma_30d\": 0.0131,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"low\",\n        \"bin_mismatch\": \"weak\",\n        \"bin_eps_drift\": \"noise\"\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-08-21\",\n        \"strike\": 280.0,\n        \"bid\": 9.5,\n        \"ask\": 9.75,\n        \"last\": 9.5,\n        \"open_interest\": 5543,\n        \"implied_vol\": 0.2744518356323242,\n        \"spread_ratio\": 0.0256,\n        \"dte\": 131\n      },\n      \"outcome\": null,\n      \"last_price\": 300.545,\n      \"current_return\": 2.1211\n    },\n    {\n      \"ticker\": \"UNH\",\n      \"entry_date\": \"2026-04-11\",\n      \"features\": {\n        \"impact\": 4,\n        \"surprise\": 2,\n        \"mismatch\": 2.854,\n        \"z_score\": 0.229,\n        \"sigma_30d\": 0.0235,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"low\",\n        \"bin_mismatch\": \"weak\",\n        \"bin_eps_drift\": \"noise\"\n      },\n      \"strategy\": \"LONG_PUT\",\n      \"option\": {\n        \"expiry\": \"2026-08-21\",\n        \"strike\": 310.0,\n        \"bid\": 26.5,\n        \"ask\": 26.85,\n        \"last\": 25.8,\n        \"open_interest\": 1218,\n        \"implied_vol\": 0.3238287832641601,\n        \"spread_ratio\": 0.013,\n        \"dte\": 131\n      },\n      \"outcome\": null,\n      \"last_price\": 384.65,\n      \"current_return\": -0.8421\n    },\n    {\n      \"ticker\": \"LLY\",\n      \"entry_date\": \"2026-04-11\",\n      \"features\": {\n        \"impact\": 8,\n        \"surprise\": 5,\n        \"mismatch\": 4.595,\n        \"z_score\": 0.681,\n        \"sigma_30d\": 0.0213,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"high\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\"\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-08-21\",\n        \"strike\": 980.0,\n        \"bid\": 74.0,\n        \"ask\": 77.3,\n        \"last\": 85.4,\n        \"open_interest\": 255,\n        \"implied_vol\": 0.41737948348999016,\n        \"spread_ratio\": 0.0427,\n        \"dte\": 131\n      },\n      \"outcome\": null,\n      \"last_price\": 1007.775,\n      \"current_return\": 0.0899\n    },\n    {\n      \"ticker\": \"UNH\",\n      \"entry_date\": \"2026-04-11\",\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 3,\n        \"mismatch\": 3.854,\n        \"z_score\": 0.229,\n        \"sigma_30d\": 0.0235,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\"\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-08-21\",\n        \"strike\": 330.0,\n        \"bid\": 14.85,\n        \"ask\": 15.55,\n        \"last\": 15.05,\n        \"open_interest\": 2715,\n        \"implied_vol\": 0.3467472552490234,\n        \"spread_ratio\": 0.045,\n        \"dte\": 131\n      },\n      \"outcome\": null,\n      \"last_price\": 384.65,\n      \"current_return\": 3.1844\n    },\n    {\n      \"ticker\": \"META\",\n      \"entry_date\": \"2026-04-11\",\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 7,\n        \"mismatch\": 0.733,\n        \"z_score\": 1.053,\n        \"sigma_30d\": 0.027,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"weak\",\n        \"bin_eps_drift\": \"noise\"\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-08-21\",\n        \"strike\": 700.0,\n        \"bid\": 33.0,\n        \"ask\": 33.4,\n        \"last\": 33.35,\n        \"open_interest\": 2204,\n        \"implied_vol\": 0.390203851928711,\n        \"spread_ratio\": 0.012,\n        \"dte\": 131\n      },\n      \"outcome\": null,\n      \"last_price\": 604.525,\n      \"current_return\": -0.5195\n    },\n    {\n      \"ticker\": \"MRK\",\n      \"entry_date\": \"2026-04-11\",\n      \"features\": {\n        \"impact\": 7,\n        \"surprise\": 5,\n        \"mismatch\": 2.158,\n        \"z_score\": 0.968,\n        \"sigma_30d\": 0.0148,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"weak\",\n        \"bin_eps_drift\": \"noise\"\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-09-18\",\n        \"strike\": 130.0,\n        \"bid\": 6.0,\n        \"ask\": 6.2,\n        \"last\": 6.05,\n        \"open_interest\": 2663,\n        \"implied_vol\": 0.2979196185302734,\n        \"spread_ratio\": 0.0323,\n        \"dte\": 159\n      },\n      \"outcome\": null,\n      \"last_price\": 113.115,\n      \"current_return\": -0.5983\n    },\n    {\n      \"ticker\": \"AAPL\",\n      \"entry_date\": \"2026-04-11\",\n      \"features\": {\n        \"impact\": 4,\n        \"surprise\": 2,\n        \"mismatch\": 1.665,\n        \"z_score\": 0.467,\n        \"sigma_30d\": 0.0131,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"low\",\n        \"bin_mismatch\": \"weak\",\n        \"bin_eps_drift\": \"noise\"\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-08-21\",\n        \"strike\": 280.0,\n        \"bid\": 9.5,\n        \"ask\": 9.75,\n        \"last\": 9.5,\n        \"open_interest\": 5543,\n        \"implied_vol\": 0.2744518356323242,\n        \"spread_ratio\": 0.0256,\n        \"dte\": 131\n      },\n      \"outcome\": null,\n      \"last_price\": 300.545,\n      \"current_return\": 2.1211\n    },\n    {\n      \"ticker\": \"TSLA\",\n      \"entry_date\": \"2026-04-11\",\n      \"features\": {\n        \"impact\": 4,\n        \"surprise\": 3,\n        \"mismatch\": 0.459,\n        \"z_score\": 0.708,\n        \"sigma_30d\": 0.0235,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"low\",\n        \"bin_mismatch\": \"weak\",\n        \"bin_eps_drift\": \"noise\"\n      },\n      \"strategy\": \"LONG_PUT\",\n      \"option\": {\n        \"expiry\": \"2026-08-21\",\n        \"strike\": 350.0,\n        \"bid\": 36.45,\n        \"ask\": 36.7,\n        \"last\": 37.62,\n        \"open_interest\": 3942,\n        \"implied_vol\": 0.4310969976806641,\n        \"spread_ratio\": 0.0068,\n        \"dte\": 131\n      },\n      \"outcome\": null,\n      \"last_price\": 413.0401,\n      \"current_return\": -0.6485\n    },\n    {\n      \"ticker\": \"LLY\",\n      \"entry_date\": \"2026-04-11\",\n      \"features\": {\n        \"impact\": 4,\n        \"surprise\": 2,\n        \"mismatch\": 0.595,\n        \"z_score\": 0.681,\n        \"sigma_30d\": 0.0213,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"low\",\n        \"bin_mismatch\": \"weak\",\n        \"bin_eps_drift\": \"noise\"\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-08-21\",\n        \"strike\": 980.0,\n        \"bid\": 74.0,\n        \"ask\": 77.3,\n        \"last\": 85.4,\n        \"open_interest\": 255,\n        \"implied_vol\": 0.41737948348999016,\n        \"spread_ratio\": 0.0427,\n        \"dte\": 131\n      },\n      \"outcome\": null,\n      \"last_price\": 1007.775,\n      \"current_return\": 0.0899\n    },\n    {\n      \"ticker\": \"LLY\",\n      \"entry_date\": \"2026-04-11\",\n      \"features\": {\n        \"impact\": 4,\n        \"surprise\": 3,\n        \"mismatch\": 0.595,\n        \"z_score\": 0.681,\n        \"sigma_30d\": 0.0213,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"low\",\n        \"bin_mismatch\": \"weak\",\n        \"bin_eps_drift\": \"noise\"\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-08-21\",\n        \"strike\": 980.0,\n        \"bid\": 74.0,\n        \"ask\": 77.3,\n        \"last\": 85.4,\n        \"open_interest\": 255,\n        \"implied_vol\": 0.41737948348999016,\n        \"spread_ratio\": 0.0427,\n        \"dte\": 131\n      },\n      \"outcome\": null,\n      \"last_price\": 1007.775,\n      \"current_return\": 0.0899\n    },\n    {\n      \"ticker\": \"LLY\",\n      \"entry_date\": \"2026-04-11\",\n      \"features\": {\n        \"impact\": 4,\n        \"surprise\": 3,\n        \"mismatch\": 0.595,\n        \"z_score\": 0.681,\n        \"sigma_30d\": 0.0213,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"low\",\n        \"bin_mismatch\": \"weak\",\n        \"bin_eps_drift\": \"noise\"\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-08-21\",\n        \"strike\": 980.0,\n        \"bid\": 74.0,\n        \"ask\": 77.3,\n        \"last\": 85.4,\n        \"open_interest\": 255,\n        \"implied_vol\": 0.41737948348999016,\n        \"spread_ratio\": 0.0427,\n        \"dte\": 131\n      },\n      \"outcome\": null,\n      \"last_price\": 1007.775,\n      \"current_return\": 0.0899\n    },\n    {\n      \"ticker\": \"ON\",\n      \"entry_date\": \"2026-04-12\",\n      \"features\": {\n        \"impact\": 3,\n        \"surprise\": 2,\n        \"mismatch\": 2.408,\n        \"z_score\": 0.118,\n        \"sigma_30d\": 0.0334,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"low\",\n        \"bin_mismatch\": \"weak\",\n        \"bin_eps_drift\": \"noise\"\n      },\n      \"strategy\": \"BULL_CALL_SPREAD\",\n      \"option\": {\n        \"expiry\": \"2026-09-18\",\n        \"strike\": 70.0,\n        \"bid\": 9.15,\n        \"ask\": 10.0,\n        \"last\": 10.0,\n        \"open_interest\": 811,\n        \"implied_vol\": 0.5621381677246093,\n        \"spread_ratio\": 0.085,\n        \"dte\": 158,\n        \"spread_leg\": {\n          \"strike\": 75.0,\n          \"bid\": 6.85,\n          \"ask\": 7.8\n        }\n      },\n      \"simulation\": {\n        \"hit_rate\": 1.0,\n        \"n_paths\": 10000,\n        \"n_days\": 120,\n        \"target_price\": 75.52,\n        \"current_price\": 68.65,\n        \"sigma_adj\": 0.0434,\n        \"sector\": \"Technology\",\n        \"ttm\": \"2-3 Monate\",\n        \"vix\": 19.23\n      },\n      \"deep_analysis\": {\n        \"ticker\": \"ON\",\n        \"impact\": 3,\n        \"surprise\": 2,\n        \"mispricing_logic\": \"Der Ticker ON (ON Semiconductor) hat keinen direkten Bezug zu den Kodak-Headlines \\u2013 hier liegt ein Datenfehler in der Vorselektion vor. ON Semiconductor ist ein EV/Industrial-Chips-Unternehmen. Der massive Gap zwischen Forward EPS (4.04) und Konsens (2.32) deutet auf Sch\\u00e4tzungsdivergenz hin, vermutlich durch Zyklus-Unsicherheit im Auto-Halbleitermarkt. Der Markt diskontiert EV-Verlangsamung und China-Exposure zu stark, ignoriert aber strukturelle SiC-Dominanz.\",\n        \"catalyst\": \"N\\u00e4chster Earnings-Call (ca. Q3 2025, Oktober) mit potenziellem EPS-Beat bei Lagerabbau-Normalisierung und SiC-Design-Win-Announcements von OEM-Partnern.\",\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"bear_case\": \"China-EV-Nachfrage bleibt schwach, US-Z\\u00f6lle treffen Lieferketten, SiC-Konkurrenz durch STMicro/Wolfspeed beschleunigt sich. Konsens-EPS von 2.32 k\\u00f6nnte die Realit\\u00e4t besser abbilden als Forward-4.04-Sch\\u00e4tzungen.\",\n        \"bear_case_severity\": 7,\n        \"direction\": \"BULLISH\"\n      },\n      \"outcome\": null,\n      \"last_price\": 110.61,\n      \"current_return\": 3.31\n    },\n    {\n      \"ticker\": \"ABT\",\n      \"entry_date\": \"2026-04-15\",\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 6.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0122,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.97\n      },\n      \"strategy\": \"BULL_CALL_SPREAD\",\n      \"option\": {\n        \"expiry\": \"2026-08-21\",\n        \"strike\": 115.0,\n        \"bid\": 2.25,\n        \"ask\": 2.3,\n        \"open_interest\": 980,\n        \"implied_vol\": 0.27899890930175775,\n        \"spread_ratio\": 0.0217,\n        \"dte\": 127,\n        \"spread_leg\": {\n          \"strike\": 125.0,\n          \"bid\": 0.75,\n          \"ask\": 0.8\n        },\n        \"net_debit\": 1.55\n      },\n      \"simulation\": {\n        \"hit_rate\": 0.97,\n        \"stderr\": 0.0017,\n        \"n_paths\": 10000,\n        \"n_days\": 120,\n        \"days_to_expiry\": 120,\n        \"target_price\": 111.51,\n        \"current_price\": 101.37,\n        \"sigma_adj\": 0.0109,\n        \"sector\": \"Healthcare\",\n        \"ema200\": {},\n        \"macd\": {\n          \"macd\": -2.3205,\n          \"signal\": -2.4092,\n          \"histogram\": 0.0887,\n          \"momentum_score\": 0.3513,\n          \"data_available\": true\n        }\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Die Exact Sciences Akquisition ist ein massiver Deal, der erhebliche Integrationsrisiken, Goodwill-Belastungen und m\\u00f6gliche Verw\\u00e4sserung mit sich bringt. Strategische M&A-Transaktionen dieser Gr\\u00f6\\u00dfenordnung f\\u00fchren h\\u00e4ufig zu kurzfristigen Kursdr\\u00fccken, da der Markt Integrationskomplexit\\u00e4t und Kapitalbedarf negativ einpreist. Der Haiku nennt dies 'strukturell ver\\u00e4ndert', was auch negativ interpretiert werden kann.\",\n          \"argument_2\": \"EPS-Abweichung zwischen yfinance (6.11) und SEC EDGAR (3.73) betr\\u00e4gt faktisch ~38% \\u2013 die angegebenen 0.3% sind offensichtlich falsch. Diese massive Diskrepanz deutet auf accounting adjustments, Non-GAAP vs. GAAP Unterschiede oder Datenfehler hin. Bei einem GAAP-EPS von 3.73 bei einem Kurs von $101.48 ergibt sich ein KGV von ~27x, was f\\u00fcr ein defensives Healthcare-Unternehmen in einem \\u00dcbergangsumfeld sportlich ist.\",\n          \"argument_3\": \"Jim Cramers explizite Skepsis ('Give us a couple of reasons on the call') signalisiert, dass der Markt vor dem Q1 Earnings Call erh\\u00f6hte Beweislast fordert. Der Kurs hat sich nur +0.7% in 48h bewegt trotz positiver Nachrichten (Insider-K\\u00e4ufe, Cramer-Coverage) \\u2013 das deutet auf schwaches Momentum und fehlende institutionelle \\u00dcberzeugung hin.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein Monte Carlo durchgef\\u00fchrt (0 Pfade). Ohne statistische Basis ist jede Hit-Rate-Aussage unm\\u00f6glich. Bei einem Healthcare Blue-Chip mit ~20-25% impliziter Volatilit\\u00e4t w\\u00e4re eine realistische 30d-Trefferquote f\\u00fcr einen gerichteten Trade bei 50-65%. Die fehlenden Daten erh\\u00f6hen die Unsicherheit erheblich \\u2013 Bewertung muss rein fundamental erfolgen.\",\n          \"concern_level\": \"high\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt scheint die Kombination aus Insider-Cluster-K\\u00e4ufen (US$3.1M in 14 Tagen) und strategischer Portfolio-Neuausrichtung durch Exact Sciences noch nicht vollst\\u00e4ndig bepreist zu haben, da Integrationsrisiken die unmittelbare Reaktion d\\u00e4mpfen. Q1 Earnings Call ist der n\\u00e4chste Katalysator, der Klarheit \\u00fcber Synergiepotenziale und Guidance bringen kann. Das 'Oversold Blue Chip'-Narrativ deutet auf technische Unterperformance relativ zu Fundamentals hin, die sich mittelfristig normalisieren k\\u00f6nnte.\",\n        \"catalyst\": \"Q1 Earnings Call mit konkreten Aussagen zur Exact Sciences Integration, Synergieerwartungen und Guidance-Best\\u00e4tigung\",\n        \"bear_case\": \"Massive EPS-Diskrepanz (GAAP ~3.73 vs. Non-GAAP ~6.11) bedeutet das echte KGV ist ~27x \\u2013 bei Integrationskosten aus der Akquisition k\\u00f6nnte Guidance gesenkt werden, was bei einem bereits 'zu beweisenden' Kurs erheblichen Drawdown ausl\\u00f6st.\",\n        \"macro_assessment\": \"Neutrales Makro-Umfeld (flache Kurve, Fed bei 3.64%) ist f\\u00fcr defensive Healthcare-Werte wie ABT tendenziell supportiv, da Anleger bei Unsicherheit in Quality-Defensives rotieren. Kein signifikanter Gegenwind, aber auch kein starker R\\u00fcckenwind \\u2013 der Trade steht und f\\u00e4llt mit dem unternehmenseigenen Katalysator.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.5,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day\": 0.005524,\n        \"roi_per_day_pct\": 0.5524,\n        \"annualized_roi\": 3.6077,\n        \"efficiency_label\": \"high\",\n        \"dte\": 127\n      },\n      \"outcome\": null,\n      \"last_price\": 87.89,\n      \"current_return\": -0.133\n    },\n    {\n      \"ticker\": \"META\",\n      \"entry_date\": \"2026-04-15\",\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 6.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0275,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.97\n      },\n      \"strategy\": \"BULL_CALL_SPREAD\",\n      \"option\": {\n        \"expiry\": \"2026-05-08\",\n        \"strike\": 750.0,\n        \"bid\": 7.15,\n        \"ask\": 7.4,\n        \"open_interest\": 788,\n        \"implied_vol\": 0.4421137332153321,\n        \"spread_ratio\": 0.0338,\n        \"dte\": 22,\n        \"spread_leg\": {\n          \"strike\": 825.0,\n          \"bid\": 1.61,\n          \"ask\": 1.72\n        },\n        \"net_debit\": 5.79\n      },\n      \"simulation\": {\n        \"hit_rate\": 0.97,\n        \"stderr\": 0.0017,\n        \"n_paths\": 10000,\n        \"n_days\": 120,\n        \"days_to_expiry\": 120,\n        \"target_price\": 741.08,\n        \"current_price\": 673.71,\n        \"sigma_adj\": 0.033,\n        \"sector\": \"Communication Services\",\n        \"ema200\": {},\n        \"macd\": {\n          \"macd\": 6.023,\n          \"signal\": -7.3448,\n          \"histogram\": 13.3678,\n          \"momentum_score\": 1.0,\n          \"data_available\": true\n        }\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Preis bereits +6.1% in 48h gestiegen \\u2014 der Broadcom-Deal und Insider-K\\u00e4ufe sind weitgehend eingepreist. Bei $673 Marktkapitalisierung von ~1.7 Billionen USD fehlt der Hebel f\\u00fcr weiteren kurzfristigen Anstieg; der Katalysator ist verbrannt.\",\n          \"argument_2\": \"EPS-Abweichung zwischen yfinance ($35.62) und SEC EDGAR ($23.48) ist mit faktisch ~52% Diskrepanz massiv \\u2014 nicht 0.2% wie angegeben. Das deutet auf unterschiedliche Berechnungsbasen (TTM vs. GAAP) hin und macht die Fundamentalbewertung unsicher. KGV auf SEC-Basis liegt bei ~28.7, was bei flacher Kurve ambitioniert ist.\",\n          \"argument_3\": \"Der Broadcom-Deal ist strukturell positiv, aber AI-Infrastruktur-Investitionen dr\\u00fccken kurzfristig auf die Margen (Capex-Zyklus). META hat bereits signifikant in Reality Labs und AI investiert \\u2014 der Markt k\\u00f6nnte die CapEx-Eskalation als Belastung f\\u00fcr FCF in 2-3 Quartalen einpreisen, besonders bei stabilen aber nicht fallenden Zinsen.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"0% Hit-Rate bedeutet kein MC wurde durchgef\\u00fchrt, nicht dass die Wahrscheinlichkeit null ist. Ohne MC-Daten fehlt eine statistische Basis f\\u00fcr die Zielbewertung. Bei historischer 30d-Volatilit\\u00e4t von META (~30-35% annualisiert) w\\u00e4re eine Hit-Rate von 55-65% f\\u00fcr einen moderaten Upside-Move realistisch. Die fehlende Simulation erh\\u00f6ht die Unsicherheit der Einsch\\u00e4tzung.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 5,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Broadcom-Chip-Deal signalisiert langfristige AI-Infrastruktur-Unabh\\u00e4ngigkeit, die der Markt erst in zuk\\u00fcnftigen Margin-Verbesserungen vollst\\u00e4ndig einpreisen wird. Insider-Cluster-K\\u00e4ufe von 4 Personen innerhalb 14 Tagen suggerieren Insider-\\u00dcberzeugung jenseits der unmittelbaren News-Reaktion. Die 48h-Reaktion (+6.1%) adressiert die Oberfl\\u00e4che des Deals, untersch\\u00e4tzt aber die strategische Bedeutung f\\u00fcr METAs AI-Cost-Struktur in 2026.\",\n        \"catalyst\": \"Multi-Jahres AI-Chip-Partnerschaft mit Broadcom zur Reduktion von NVIDIA-Abh\\u00e4ngigkeit + Insider-Cluster-K\\u00e4ufe als Konfidenz-Signal vor Q2-Earnings\",\n        \"bear_case\": \"Kurzfristiger Katalysator bereits vollst\\u00e4ndig eingepreist nach +6.1% Move; CapEx-Eskalation durch AI-Infrastruktur belastet FCF in den n\\u00e4chsten 2 Quartalen und k\\u00f6nnte den Markt entt\\u00e4uschen.\",\n        \"macro_assessment\": \"Neutrales Makro-Umfeld mit flacher Zinskurve (0.50%) und Fed Funds bei 3.64% liefert keinen signifikanten R\\u00fccken- oder Gegenwind. F\\u00fcr ein Large-Cap-Qualit\\u00e4tsunternehmen mit strukturellem AI-Wachstum ist dies ein akzeptables Umfeld. Kein Rezessions-Veto erforderlich, aber die Bewertung bleibt anspruchsvoll bei ~$673.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.5,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day\": 0.046677,\n        \"roi_per_day_pct\": 4.6677,\n        \"annualized_roi\": 123203.6706,\n        \"efficiency_label\": \"high\",\n        \"dte\": 22\n      },\n      \"outcome\": null,\n      \"last_price\": 604.53,\n      \"current_return\": -0.1027\n    },\n    {\n      \"ticker\": \"CDNS\",\n      \"entry_date\": \"2026-04-15\",\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 6.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0248,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.97\n      },\n      \"strategy\": \"BULL_CALL_SPREAD\",\n      \"option\": {\n        \"expiry\": \"2026-09-18\",\n        \"strike\": 310.0,\n        \"bid\": 35.4,\n        \"ask\": 37.7,\n        \"open_interest\": 1664,\n        \"implied_vol\": 0.4931691308593751,\n        \"spread_ratio\": 0.061,\n        \"dte\": 155,\n        \"spread_leg\": {\n          \"strike\": 340.0,\n          \"bid\": 22.3,\n          \"ask\": 25.3\n        },\n        \"net_debit\": 15.4\n      },\n      \"simulation\": {\n        \"hit_rate\": 0.97,\n        \"stderr\": 0.0017,\n        \"n_paths\": 10000,\n        \"n_days\": 120,\n        \"days_to_expiry\": 120,\n        \"target_price\": 336.79,\n        \"current_price\": 306.17,\n        \"sigma_adj\": 0.0322,\n        \"sector\": \"Technology\",\n        \"ema200\": {},\n        \"macd\": {\n          \"macd\": -0.3606,\n          \"signal\": -3.1853,\n          \"histogram\": 2.8247,\n          \"momentum_score\": 1.0,\n          \"data_available\": true\n        }\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Katalysator bereits eingepreist: +6.4% in 48h nach den Ank\\u00fcndigungen bedeutet, dass der Markt das NVIDIA- und Google-Partnerschaftssignal bereits stark eingepreist hat. CDNS handelt bei ~32x Sales und ~65x Forward EPS \\u2014 eine Pr\\u00e4mie, die wenig Fehlertoleranz l\\u00e4sst.\",\n          \"argument_2\": \"EPS-Diskrepanz als Datenqualit\\u00e4ts-Warnung: yfinance EPS 9.44 vs. SEC EDGAR EPS 4.06 \\u2014 eine Abweichung von \\u00fcber 100% deutet auf unterschiedliche Berechnungsbasen hin (GAAP vs. Non-GAAP). Das signalisiert, dass die 'echten' fundamentalen Zahlen deutlich schw\\u00e4cher sind als die kommunizierten, was die Bewertung bei einer Neubewertung riskant macht.\",\n          \"argument_3\": \"Partnership-Announcements ohne kurzfristigen Revenue-Impact: Cadence/NVIDIA-Kooperationen im AI-Bereich sind strategisch langfristig relevant, aber EDA-Software-Zyklen sind lang. Robotics-AI und ChipStack-AI sind fr\\u00fche Stadien ohne materialisierbaren Earnings-Beitrag in 2-6 Monaten \\u2014 das Risiko eines 'Show Me'-Moments auf dem n\\u00e4chsten Earnings Call ist real.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein Quick MC durchgef\\u00fchrt (0 Pfade). Bei CDNS historischer 30d-Volatilit\\u00e4t von ca. 25-30% annualisiert w\\u00e4re eine Hit-Rate von 0% schlicht ein technisches Daten-Fehler-Signal, nicht aussagekr\\u00e4ftig. Die fehlende MC-Statistik erh\\u00f6ht Unsicherheit, reduziert aber nicht automatisch die Signalqualit\\u00e4t der fundamentalen Katalysatoren.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Trotz +6.4% Move ist die strukturelle Verschiebung \\u2014 Cadence als AI-nativer EDA-Player mit Google Cloud und NVIDIA als Plattformpartner \\u2014 noch nicht vollst\\u00e4ndig in der Neubewertung angekommen. 8 Insider-K\\u00e4ufe im 14-Tage-Cluster sind ein starkes Signal mit historisch positiver Forward-Performance. Der Markt behandelt dies noch als Partnerschafts-PR statt als Gesch\\u00e4ftsmodell-Transformation, die Q2/Q3-Guidance-Erh\\u00f6hungen begr\\u00fcnden k\\u00f6nnte.\",\n        \"catalyst\": \"CadenceLIVE Silicon Valley 2026 Ank\\u00fcndigungen: ChipStack AI Super Agent auf Google Cloud + NVIDIA-Erweiterung auf AI-Robotics \\u2014 kombiniert mit Cluster-Insider-K\\u00e4ufen als Vertrauenssignal f\\u00fcr bevorstehende positive Guidance\",\n        \"bear_case\": \"Nach +6.4% ist das unmittelbare Risiko-Ertrags-Verh\\u00e4ltnis f\\u00fcr neue Positionen ung\\u00fcnstig. GAAP EPS von 4.06 impliziert ein KGV von ~75x \\u2014 bei jeder Entt\\u00e4uschung auf dem n\\u00e4chsten Earnings Call (typischerweise Juli) droht ein IV-Crush und Bewertungskompression zur\\u00fcck zur Peer-Gruppe.\",\n        \"macro_assessment\": \"Neutrale Makrolage (flache Kurve 0.5%, Fed Funds 3.64%) ist kein aktiver Gegenwind f\\u00fcr ein High-Quality-Tech-Unternehmen wie CDNS. Die Zinsnormalisierung beg\\u00fcnstigt selektiv profitable Tech mit AI-Exposure. Kein makro\\u00f6konomisches Veto gegen die BULLISH-These, aber auch kein struktureller R\\u00fcckenwind \\u2014 die Story muss sich durch Earnings beweisen.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.5,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day\": 0.001554,\n        \"roi_per_day_pct\": 0.1554,\n        \"annualized_roi\": 0.6621,\n        \"efficiency_label\": \"low\",\n        \"dte\": 155\n      },\n      \"outcome\": null,\n      \"last_price\": 348.16,\n      \"current_return\": 0.1371\n    },\n    {\n      \"ticker\": \"AVGO\",\n      \"entry_date\": \"2026-04-15\",\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 4,\n        \"mismatch\": 6.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0278,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.97\n      },\n      \"strategy\": \"BULL_CALL_SPREAD\",\n      \"option\": {\n        \"expiry\": \"2026-05-08\",\n        \"strike\": 390.0,\n        \"bid\": 20.2,\n        \"ask\": 20.9,\n        \"open_interest\": 845,\n        \"implied_vol\": 0.46271289245605474,\n        \"spread_ratio\": 0.0335,\n        \"dte\": 22,\n        \"spread_leg\": {\n          \"strike\": 430.0,\n          \"bid\": 5.15,\n          \"ask\": 5.85\n        },\n        \"net_debit\": 15.75\n      },\n      \"simulation\": {\n        \"hit_rate\": 0.97,\n        \"stderr\": 0.0017,\n        \"n_paths\": 10000,\n        \"n_days\": 120,\n        \"days_to_expiry\": 120,\n        \"target_price\": 434.03,\n        \"current_price\": 394.57,\n        \"sigma_adj\": 0.0361,\n        \"sector\": \"Technology\",\n        \"ema200\": {},\n        \"macd\": {\n          \"macd\": 14.6955,\n          \"signal\": 5.6457,\n          \"histogram\": 9.0498,\n          \"momentum_score\": 1.0,\n          \"data_available\": true\n        }\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Katalysator bereits eingepreist: Die +3.9% Bewegung in 48h und die Haiku-Meldung \\u00fcber den Meta-Deal suggerieren, dass der Markt diese Information bereits absorbiert hat. Multi-Year-Deals mit Meta sind nicht neu f\\u00fcr AVGO \\u2013 das Unternehmen hat seit Jahren enge Kundenbeziehungen zu Hyperscalern. Der marginale Informationsgehalt f\\u00fcr mittelfristige Kursphantasie ist begrenzt.\",\n          \"argument_2\": \"EPS-Diskrepanz als Warnsignal: Die massive Differenz zwischen yfinance EPS (17.99) und SEC EDGAR EPS (5.13) \\u2013 trotz angeblich nur 0.2% Abweichung, was rechnerisch nicht stimmt \\u2013 deutet auf erhebliche Datenunsicherheit hin. Entweder handelt es sich um adjusted vs. GAAP, oder die Datenbasis ist fehlerhaft. Bei P/E-Bewertungen auf Basis falscher EPS-Zahlen k\\u00f6nnten Options-Strategien auf falschen Fundamentaldaten beruhen.\",\n          \"argument_3\": \"Bewertungsniveau und AI-Hype-Risiko: AVGO bei ~$395 handelt auf einem sehr hohen Bewertungsmultiple. Wenn AI-Investitionszyklen sich verlangsamen oder Hyperscaler-CapEx-Guidance entt\\u00e4uscht (historisch h\\u00e4ufig nach gro\\u00dfen Ank\\u00fcndigungen), kann die Aktie schnell 20-30% korrigieren. Insider-K\\u00e4ufe bei 7 Personen k\\u00f6nnen auch als Pflicht\\u00fcbung nach Aktienprogramm-Grants interpretiert werden, nicht als echtes bullishes Conviction-Signal.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein MC durchgef\\u00fchrt \\u2013 0% Hit-Rate bedeutet Datenmangel, nicht Nullwahrscheinlichkeit. Bei AVGOs historischer 30d-Volatilit\\u00e4t von ~35-45% annualisiert w\\u00e4re eine realistische Hit-Rate f\\u00fcr einen moderaten Bullish-Move (5-10%) bei 30d im Bereich 45-60%. Die fehlende MC-Simulation ist ein methodisches Gap, erh\\u00f6ht Unsicherheit aber vetot den Trade nicht.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt reagiert m\\u00f6glicherweise nicht vollst\\u00e4ndig auf die strukturelle Natur eines Multi-Year-Deals mit Meta, der Revenuepredictability und Kapazit\\u00e4tsauslastung f\\u00fcr mehrere Quartale sichert. Zus\\u00e4tzlich kann das Cluster-Signal von 7 Insider-K\\u00e4ufen auf Wissen \\u00fcber bevorstehende starke Quartalszahlen hindeuten, das noch nicht im Kurs reflektiert ist. Allerdings ist der Informationsvorteil bei einem bereits +3.9% gestiegenen Kurs begrenzt.\",\n        \"catalyst\": \"Meta-Broadcom Multi-Year AI Chip Deal + Earnings Release (n\\u00e4chste Quartalsberichte mit erh\\u00f6hter Revenue-Visibility durch Hyperscaler-Vertr\\u00e4ge)\",\n        \"bear_case\": \"Der Kurs hat die News bereits mit +3.9% eingepreist; bei Entt\\u00e4uschung \\u00fcber Marge oder Guidance beim n\\u00e4chsten Earnings droht IV-Crush und Trendumkehr in einem von hohen Erwartungen gepr\\u00e4gten AI-Sektor.\",\n        \"macro_assessment\": \"Neutrales Makroumfeld (flache Kurve, Fed bei 3.64%) ist weder Gegen- noch R\\u00fcckenwind. Technology-Sektor profitiert von stabilen bis leicht sinkenden Zinsen; das Umfeld unterst\\u00fctzt Capex-Investitionen bei Hyperscalern. Kein struktureller Makro-Veto, aber auch kein starker Tail-Wind. Impact-Score bleibt moderat.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.5,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day\": 0.0357,\n        \"roi_per_day_pct\": 3.57,\n        \"annualized_roi\": 15013.8605,\n        \"efficiency_label\": \"high\",\n        \"dte\": 22\n      },\n      \"outcome\": null,\n      \"last_price\": 418.465,\n      \"current_return\": 0.0606\n    },\n    {\n      \"ticker\": \"FISV\",\n      \"entry_date\": \"2026-04-15\",\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 6,\n        \"mismatch\": 5.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0198,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.97\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-05-08\",\n        \"strike\": 60.0,\n        \"bid\": 4.9,\n        \"ask\": 5.1,\n        \"open_interest\": 187,\n        \"implied_vol\": 0.6796907031250001,\n        \"spread_ratio\": 0.0392,\n        \"dte\": 22\n      },\n      \"simulation\": {\n        \"hit_rate\": 0.97,\n        \"stderr\": 0.0017,\n        \"n_paths\": 10000,\n        \"n_days\": 120,\n        \"days_to_expiry\": 120,\n        \"target_price\": 67.61,\n        \"current_price\": 61.47,\n        \"sigma_adj\": 0.0198,\n        \"sector\": \"default\",\n        \"ema200\": {},\n        \"macd\": {\n          \"macd\": -0.1433,\n          \"signal\": -0.9054,\n          \"histogram\": 0.7621,\n          \"momentum_score\": 1.0,\n          \"data_available\": true\n        }\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Avalara-Akquisition ist bereits bekannt und im Kurs eingepreist: Der +4.8% Move in 48h deutet darauf hin, dass der Markt das M&A-Event bereits verarbeitet hat. Klassischer 'Buy the rumor, sell the news'-Effekt bei Fintech-Akquisitionen, die oft Integrations-Komplexit\\u00e4t und kurzfristige Margenkompression mit sich bringen.\",\n          \"argument_2\": \"EPS = 0.0 (yfinance) und None (SEC EDGAR) ist ein massives Datenproblem. Ein Unternehmen mit $61.58-Kurs und keinen ausgewiesenen Gewinnen deutet entweder auf fehlerhafte Datenlage oder auf massive Restrukturierungskosten durch die Avalara-\\u00dcbernahme hin. Ohne valide Fundamentaldaten ist eine Bewertung hochspekulativ.\",\n          \"argument_3\": \"Bewertungsrisiko nach Rebound: Der Haiku-Hinweis auf 'Rebound in Share Price Performance' kombiniert mit der Bewertungsfrage impliziert, dass FISV m\\u00f6glicherweise von einem niedrigeren Niveau stark gestiegen ist und jetzt \\u00fcberbewertet gehandelt wird \\u2014 gerade bei Fintech mit Integrationsrisiken ist ein Mean-Reversion-Szenario realistisch.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Hit-Rate 0% ist nicht realistisch interpretierbar \\u2014 kein MC wurde durchgef\\u00fchrt. Dies bedeutet keine statistische Validierung des Signals. Die fehlende MC-Basis erh\\u00f6ht die Unsicherheit erheblich und erlaubt keine quantitative Absicherung der Preis-These.\",\n          \"concern_level\": \"high\"\n        },\n        \"impact\": 5,\n        \"surprise\": 6,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Das Cluster-Insider-Kaufsignal (9 Insider in 14 Tagen) ist ein statistisch relevantes Underreaction-Signal, da Insider-Cluster bei Fintech-M&A typischerweise Confidence in die Integrations-Roadmap signalisieren. Der Markt fokussiert sich kurzfristig auf Integrationsrisiken und EPS-Verw\\u00e4sserung, untersch\\u00e4tzt aber m\\u00f6glicherweise den strategischen Wert der Tax-Automation-Integration in Clover. Da Haiku eine neutrale Kategorie (n/a) zuweist und der Sektor unbekannt bleibt, ist die Bullish-Einsch\\u00e4tzung prim\\u00e4r durch das Insider-Signal getrieben, nicht durch fundamentale \\u00dcberzeugung.\",\n        \"catalyst\": \"9 Insider-K\\u00e4ufe als Cluster-Signal innerhalb 14 Tagen, kombiniert mit Avalara-Integration in Clover-Plattform als strategischer Umsatz-Multiplikator\",\n        \"bear_case\": \"EPS-Datenl\\u00fccke und m\\u00f6gliche Margenkompression durch Akquisitionskosten; +4.8% Kursanstieg hat m\\u00f6glicherweise das Upside bereits vorweggenommen\",\n        \"macro_assessment\": \"Neutrales Makro-Umfeld (flache Kurve 0.50%, Fed Funds 3.64%) ist weder starker R\\u00fccken- noch Gegenwind f\\u00fcr FISV. Fintech-Payment-Unternehmen sind zinssensitiver als der Markt, aber bei flacher Kurve reduziert sich dieser Gegenwind. Neutral gewichteter Makro-Effekt rechtfertigt keine Auf- oder Abwertung des Signals.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.5,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day\": 0.024477,\n        \"roi_per_day_pct\": 2.4477,\n        \"annualized_roi\": 1269.9183,\n        \"efficiency_label\": \"high\",\n        \"dte\": 22\n      },\n      \"outcome\": null,\n      \"last_price\": 56.33,\n      \"current_return\": -0.0836\n    },\n    {\n      \"ticker\": \"AMZN\",\n      \"entry_date\": \"2026-04-15\",\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 6.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0209,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.97\n      },\n      \"strategy\": \"BULL_CALL_SPREAD\",\n      \"option\": {\n        \"expiry\": \"2026-05-08\",\n        \"strike\": 260.0,\n        \"bid\": 6.5,\n        \"ask\": 6.6,\n        \"open_interest\": 39153,\n        \"implied_vol\": 0.4401911450195312,\n        \"spread_ratio\": 0.0152,\n        \"dte\": 22,\n        \"spread_leg\": {\n          \"strike\": 285.0,\n          \"bid\": 1.5,\n          \"ask\": 1.66\n        },\n        \"net_debit\": 5.1\n      },\n      \"simulation\": {\n        \"hit_rate\": 0.97,\n        \"stderr\": 0.0017,\n        \"n_paths\": 10000,\n        \"n_days\": 120,\n        \"days_to_expiry\": 120,\n        \"target_price\": 273.35,\n        \"current_price\": 248.5,\n        \"sigma_adj\": 0.0209,\n        \"sector\": \"Consumer Cyclical\",\n        \"ema200\": {},\n        \"macd\": {\n          \"macd\": 8.1626,\n          \"signal\": 3.4128,\n          \"histogram\": 4.7498,\n          \"momentum_score\": 1.0,\n          \"data_available\": true\n        }\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Bewertungsstress: AMZN handelt bei ~$248 mit einem P/E von ~26x auf SEC-Basis (EPS $7.17 statt der m\\u00f6glicherweise bereinigten $9.40). Bei 4.25% risikofreiem Zinssatz ist das Earnings-Yield von ~3.8% kaum attraktiv gegen\\u00fcber Treasuries \\u2014 klassische 'TINA ist tot'-Falle f\\u00fcr Consumer Cyclicals.\",\n          \"argument_2\": \"Katalysator bereits eingepreist: AMZN ist seit Jahresbeginn bereits massiv outperformed, und die +3.6% der letzten 48h zeigen, dass DTCC-Deal und Globalstar-News teilweise schon in den Kurs geflossen sind. Der strukturelle AWS-Gewinn durch DTCC ist ein Multi-Jahr-Rollout 'bis Dekade-Ende' \\u2014 kein kurzfristiger Earnings-Treiber f\\u00fcr einen 2-6-Monats-Horizont.\",\n          \"argument_3\": \"Reputations- und Regulierungsrisiko: Der Arbeitsunfall-Vorfall in Oregon (Arbeiter stirbt auf Lagerhaus-Boden, Kollegen m\\u00fcssen weitermachen) kann regulatorische Eskalation, NGO-Druck und politische Angriffe ausl\\u00f6sen. Im aktuellen populistischen Klima ist AMZN ein politisches Ziel \\u2014 Strafz\\u00f6lle, Kartellrecht und Arbeitnehmerrechts-Gesetzgebung k\\u00f6nnten als Katalysatoren f\\u00fcr Underperformance dienen.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"0% Hit-Rate bedeutet kein MC durchgef\\u00fchrt \\u2014 keine statistische Validierung m\\u00f6glich. Dies ist ein signifikantes Informationsloch. Gegeben AMZN's historischer 30-Tage-Volatilit\\u00e4t (~25-30% annualisiert, ~7-9% auf 30 Tage) w\\u00e4re eine realistische Bullish-Hit-Rate bei moderatem Upside-Target ca. 50-60%. Die fehlende MC-Analyse verhindert quantitative Positionsvalidierung.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 5,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der DTCC-AWS-Deal ist strukturell bedeutsam, da er Finanzmarkt-Infrastruktur in die Cloud verlagert und AWS als kritische Systeminfrastruktur zementiert \\u2014 dies reduziert Churn-Risiko und erh\\u00f6ht Switching Costs dauerhaft. F\\u00fcnf Insider-K\\u00e4ufe im Cluster-Muster innerhalb von 14 Tagen signalisieren, dass Informierte den aktuellen Kurs als unterbewertet einstufen. Der Markt reagiert zu kurzfristig auf den 'bis Dekade-Ende'-Horizont, \\u00fcbersieht aber den sofortigen Reputationsgewinn f\\u00fcr AWS im Enterprise-Segment.\",\n        \"catalyst\": \"DTCC-AWS Cloud-Migration Deal + Insider-Cluster-K\\u00e4ufe + Q2/Q3 AWS Wachstumsbeschleunigung durch Enterprise-Vertragsabschl\\u00fcsse\",\n        \"bear_case\": \"Hohe Bewertung bei flacher Zinskurve und 4.25% 10Y-Yield macht den Earnings-Yield unattraktiv; kurzfristige +3.6%-Bewegung hat Teile des News-Flows bereits eingepreist, und regulatorische/reputationale Risiken durch Arbeitsrechtsvorf\\u00e4lle k\\u00f6nnten politischen Gegenwind erzeugen.\",\n        \"macro_assessment\": \"Neutrales Makroumfeld (Kurve +50bp, Fed Funds 3.64%) ist kein aktiver Gegenwind f\\u00fcr AMZN, aber auch kein R\\u00fcckenwind. Die flache Kurve signalisiert \\u00dcbergangsphase \\u2014 kein Rezessionsrisiko, aber auch keine expansive Liquidit\\u00e4tsflut. Consumer Cyclical-Sektor leidet bei hohen Realzinsen durch Konsumdruck. AWS als struktureller Cloud-Gewinner ist jedoch zinssensitivit\\u00e4tsneutraler als der Retail-Arm, was das Signal partiell isoliert vom Makrorisiko.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.5,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day\": 0.042582,\n        \"roi_per_day_pct\": 4.2582,\n        \"annualized_roi\": 57941.5264,\n        \"efficiency_label\": \"high\",\n        \"dte\": 22\n      },\n      \"outcome\": null,\n      \"last_price\": 262.81,\n      \"current_return\": 0.0576\n    },\n    {\n      \"ticker\": \"AMD\",\n      \"entry_date\": \"2026-04-15\",\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 4,\n        \"mismatch\": 6.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0316,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.97\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-05-08\",\n        \"strike\": 255.0,\n        \"bid\": 16.4,\n        \"ask\": 16.75,\n        \"open_interest\": 1187,\n        \"implied_vol\": 0.5706219696044923,\n        \"spread_ratio\": 0.0209,\n        \"dte\": 22\n      },\n      \"simulation\": {\n        \"hit_rate\": 0.97,\n        \"stderr\": 0.0017,\n        \"n_paths\": 10000,\n        \"n_days\": 120,\n        \"days_to_expiry\": 120,\n        \"target_price\": 283.93,\n        \"current_price\": 258.12,\n        \"sigma_adj\": 0.041,\n        \"sector\": \"Technology\",\n        \"ema200\": {},\n        \"macd\": {\n          \"macd\": 12.1507,\n          \"signal\": 6.8137,\n          \"histogram\": 5.337,\n          \"momentum_score\": 1.0,\n          \"data_available\": true\n        }\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"MI450-Hype bereits eingepreist: AMD hat in 48h +4,6% zugelegt, was stark darauf hindeutet, dass der Markt den MI450-Katalysator bereits vorwegnimmt. Mediencoverage ('Could Change Everything') signalisiert Retail-Euphorie, kein unentdecktes Alpha. Optionen d\\u00fcrften erh\\u00f6hte IV aufweisen \\u2014 IV-Crush nach Launch-Event ist das wahrscheinlichste Szenario.\",\n          \"argument_2\": \"EPS-Diskrepanz als Warnsignal: yfinance meldet 10,83 EPS vs. SEC EDGAR 2,60 EPS \\u2014 eine massive Abweichung, die trotz '0% Abweichung'-Flag nicht erkl\\u00e4rt wird. Dies deutet auf Non-GAAP vs. GAAP-Konfusion hin und macht fundamentale Bewertungsaussagen unzuverl\\u00e4ssig. AMD k\\u00f6nnte auf GAAP-Basis deutlich teurer sein als kommuniziert.\",\n          \"argument_3\": \"Wettbewerbsdruck von NVIDIA bleibt strukturell: NVIDIA dominiert den AI-Accelerator-Markt mit CUDA-\\u00d6kosystem-Lock-in. AMDs MI-Serie hat historisch Lieferprobleme, Software-Stack-Defizite und geringere Hyperscaler-Adoption gezeigt. Ein MI450-Launch ohne starke Pre-Order-Ank\\u00fcndigungen von Tier-1-Clouds ist spekulativ. Zudem signalisieren fallende Seagate/Amkor-Aktien m\\u00f6glichen Sektor-Gegenwind im Halbleiterbereich.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"MC nicht durchgef\\u00fchrt \\u2014 0% Hit-Rate bedeutet fehlende Simulation, nicht 0% Erfolgswahrscheinlichkeit. Ohne MC-Daten ist eine statistische Validierung unm\\u00f6glich. Bei AMDs historischer 30-Tage-Volatilit\\u00e4t von ~45-55% annualisiert w\\u00e4re eine realistische Hit-Rate f\\u00fcr moderate Preisbewegungen bei 50-65% zu erwarten. Die fehlenden Daten erh\\u00f6hen die Unsicherheit erheblich.\",\n          \"concern_level\": \"high\"\n        },\n        \"impact\": 6,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt hat den MI450-Launch oberfl\\u00e4chlich eingepreist, aber die Earnings-Impact-Dynamik bei tats\\u00e4chlichen Hyperscaler-Adoptionsank\\u00fcndigungen (Q2/Q3 Guidance-Erh\\u00f6hungen) k\\u00f6nnte untersch\\u00e4tzt werden. Cluster-Insider-K\\u00e4ufe von 4 Personen innerhalb 14 Tagen sind statistisch signifikant und deuten auf nicht-\\u00f6ffentliches Vertrauen in nahe Katalysatoren hin. Die EPS-Diskrepanz (GAAP vs. Non-GAAP) verzerrt jedoch die Bewertungsgrundlage und limitiert das klare Asymmetrie-Signal.\",\n        \"catalyst\": \"MI450-Chip-Launch mit m\\u00f6glichen Hyperscaler-Adoptionsank\\u00fcndigungen (Microsoft Azure, Google Cloud, Meta) sowie Q2-Earnings-Guidance-Erh\\u00f6hung basierend auf AI-Accelerator-Nachfrage\",\n        \"bear_case\": \"IV-Crush nach MI450-Launch-Event bei bereits +4,6% Vorwegnahme, kombiniert mit NVIDIA's strukturellem CUDA-Moat und m\\u00f6glichem Lieferketten-/Software-Stack-Entt\\u00e4uschungsrisiko \\u2014 klassisches 'Buy the rumor, sell the news'-Muster in einem Markt mit erh\\u00f6hten Erwartungen\",\n        \"macro_assessment\": \"Neutrales Makro-Umfeld (flache Kurve 0,5%, Fed Funds 3,64%) ist f\\u00fcr AMD weder R\\u00fccken- noch Gegenwind. Technologie-/AI-Sektor profitiert von stabilem Zinsumfeld ohne Rezessionsdruck. Allerdings bleibt AMD als High-Beta-Tech-Aktie anf\\u00e4llig f\\u00fcr Risk-Off-Bewegungen, falls Zinssenkungserwartungen entt\\u00e4uscht werden. Insgesamt akzeptables Makro-Fenster f\\u00fcr mittelfristige Bullish-Positionen mit moderatem Conviction-Level.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.5,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day\": 0.03555,\n        \"roi_per_day_pct\": 3.555,\n        \"annualized_roi\": 14559.9988,\n        \"efficiency_label\": \"high\",\n        \"dte\": 22\n      },\n      \"outcome\": null,\n      \"last_price\": 445.155,\n      \"current_return\": 0.7246\n    },\n    {\n      \"ticker\": \"AMAT\",\n      \"entry_date\": \"2026-04-15\",\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"mismatch\": 5.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0344,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.97\n      },\n      \"strategy\": \"BULL_CALL_SPREAD\",\n      \"option\": {\n        \"expiry\": \"2026-05-08\",\n        \"strike\": 390.0,\n        \"bid\": 23.7,\n        \"ask\": 25.35,\n        \"open_interest\": 172,\n        \"implied_vol\": 0.5571333349609376,\n        \"spread_ratio\": 0.0651,\n        \"dte\": 22,\n        \"spread_leg\": {\n          \"strike\": 430.0,\n          \"bid\": 7.2,\n          \"ask\": 10.05\n        },\n        \"net_debit\": 18.15\n      },\n      \"simulation\": {\n        \"hit_rate\": 0.97,\n        \"stderr\": 0.0017,\n        \"n_paths\": 10000,\n        \"n_days\": 120,\n        \"days_to_expiry\": 120,\n        \"target_price\": 433.69,\n        \"current_price\": 394.26,\n        \"sigma_adj\": 0.0448,\n        \"sector\": \"Technology\",\n        \"ema200\": {},\n        \"macd\": {\n          \"macd\": 12.4673,\n          \"signal\": 7.7758,\n          \"histogram\": 4.6915,\n          \"momentum_score\": 1.0,\n          \"data_available\": true\n        }\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Tariff-Risiko und Supply-Chain-Gegenwind: Die News berichten explizit, dass Fertigungsunternehmen mit Lieferkettenproblemen und verz\\u00f6gerten Zollr\\u00fcckerstattungen konfrontiert sind \\u2013 AMAT als stark importabh\\u00e4ngiger Halbleiterausr\\u00fcster ist direkt exponiert. China-Exportbeschr\\u00e4nkungen (AMAT erzielt ~25-30% Umsatz in China) bleiben ein strukturelles Risiko.\",\n          \"argument_2\": \"2nm-Tool-Ank\\u00fcndigung bereits eingepreist: Der Markt hat die AMAT-Technologief\\u00fchrerschaft in Advanced Nodes l\\u00e4ngst diskontiert. Bei einem KGV von ~28x (Preis $394 / EPS $14) und einem f\\u00fcr Semikap-Equipment-Zyklus-Top typischen Bewertungsniveau ist der Durchbruch kein 'Surprise'-Faktor mehr. Der Aktionismus rund um AI/HPC-Chips wurde 2023-2024 intensiv gehandelt.\",\n          \"argument_3\": \"EPS-Diskrepanz als Datensignal: Die Abweichung zwischen yfinance-EPS ($14.01) und SEC EDGAR-EPS ($9.73) ist erheblich (~44% Differenz) und deutet auf unterschiedliche Berechnungsbasen hin (m\\u00f6glicherweise Non-GAAP vs. GAAP). Eine Bewertung auf Basis des h\\u00f6heren Non-GAAP-EPS w\\u00fcrde das tats\\u00e4chliche Bewertungsniveau deutlich untersch\\u00e4tzen.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Quick MC nicht durchgef\\u00fchrt (0 Pfade) \\u2013 keine statistisch belastbare Hit-Rate verf\\u00fcgbar. Bei AMAT's historischer 30d-Volatilit\\u00e4t von ~35-40% annualisiert (impliziert ~10% 30d-Sigma) w\\u00e4re eine bullishe Hit-Rate von 55-65% realistisch, nicht mehr. Die fehlende MC-Statistik erh\\u00f6ht die Unsicherheit der Modellbewertung.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt reagiert auf das 2nm-Tool-Rollout moderat, da der Semikap-Zyklus-Peak-Narrativ und China-Risiken die Aufmerksamkeit dominieren. Insider-Cluster-K\\u00e4ufe (3 in 14 Tagen) sind ein statistisch signifikantes Signal, das vom Markt bei aktuell flachem Tape untergewichtet wird. Die eigentliche Asymmetrie liegt im Timing: Sollte TSMC/Samsung 2nm-Capex-Guidance nach oben revidieren, ist AMAT als prim\\u00e4rer Ausr\\u00fcster der direkte Nutznie\\u00dfer.\",\n        \"catalyst\": \"2nm-Chip-Fertigungstools f\\u00fcr AI/HPC + Insider-Cluster-K\\u00e4ufe + potenziell positive Capex-Guidance von TSMC/Samsung in Q2-Earnings\",\n        \"bear_case\": \"China-Exportbeschr\\u00e4nkungen eskalieren und/oder Tariff-bedingte Supply-Chain-Verz\\u00f6gerungen treffen AMAT's Umsatzrealisierung in H2 2025, w\\u00e4hrend das Bewertungsniveau (KGV 28x GAAP oder ~40x auf Non-GAAP-bereinigter Basis) wenig Puffer bietet.\",\n        \"macro_assessment\": \"Neutrales Makro-Umfeld (flache Kurve, Fed bei 3.64%) gibt keinen klaren Gegenwind, st\\u00fctzt aber auch nicht stark. F\\u00fcr ein kapitalintensives, zyklisches Unternehmen wie AMAT ist die flache Kurve ein 'wait-and-see' Signal \\u2013 keine Rezessionsgefahr, aber auch kein expansiver R\\u00fcckenwind. Moderate Positionsgr\\u00f6\\u00dfe gerechtfertigt.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.5,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day\": 0.02405,\n        \"roi_per_day_pct\": 2.405,\n        \"annualized_roi\": 1147.0454,\n        \"efficiency_label\": \"high\",\n        \"dte\": 22\n      },\n      \"outcome\": null,\n      \"last_price\": 424.12,\n      \"current_return\": 0.0757\n    },\n    {\n      \"ticker\": \"CTVA\",\n      \"entry_date\": \"2026-04-15\",\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"mismatch\": 5.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0149,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.97\n      },\n      \"strategy\": \"BULL_CALL_SPREAD\",\n      \"option\": {\n        \"expiry\": \"2026-05-15\",\n        \"strike\": 80.0,\n        \"bid\": 3.7,\n        \"ask\": 4.1,\n        \"open_interest\": 383,\n        \"implied_vol\": 0.36255520263671875,\n        \"spread_ratio\": 0.0976,\n        \"dte\": 29,\n        \"spread_leg\": {\n          \"strike\": 90.0,\n          \"bid\": 0.3,\n          \"ask\": 0.8\n        },\n        \"net_debit\": 3.8\n      },\n      \"simulation\": {\n        \"hit_rate\": 0.97,\n        \"stderr\": 0.0017,\n        \"n_paths\": 10000,\n        \"n_days\": 120,\n        \"days_to_expiry\": 120,\n        \"target_price\": 89.45,\n        \"current_price\": 81.32,\n        \"sigma_adj\": 0.0164,\n        \"sector\": \"Basic Materials\",\n        \"ema200\": {},\n        \"macd\": {\n          \"macd\": 1.3359,\n          \"signal\": 1.7096,\n          \"histogram\": -0.3737,\n          \"momentum_score\": -1.0,\n          \"data_available\": true\n        }\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Bewertungsrisiko nach 40% Rally: Der Artikel 'Is Corteva Still Reasonable After A 40% One-Year Share Price Rally?' signalisiert, dass die Aktie m\\u00f6glicherweise bereits fair bis \\u00fcberbewertet ist. Bei einem KGV auf Basis des bereinigten EPS von ~4.05 ergibt sich ein P/E von ~20x \\u2014 f\\u00fcr ein agrochemisches Unternehmen mit zyklischem Exposure durchaus ambitioniert. Das Alpha k\\u00f6nnte bereits verbraucht sein.\",\n          \"argument_2\": \"Management-Disruption als Risiko: Die Aufspaltung in zwei separate Einheiten (Crop Protection unter neuem CEO Kissam ab Juni 2026 und eine 'Advanced Seed and Genetics'-Gesellschaft) erzeugt erhebliche operative Unsicherheit. Spin-Off-Transitionen binden Management-Kapazit\\u00e4ten, verursachen Restrukturierungskosten und k\\u00f6nnen zu Kundenunsicherheit f\\u00fchren. Die 2-6 Monats-Periode ist genau das Fenster maximaler Disruption.\",\n          \"argument_3\": \"EPS-Divergenz und Datenqualit\\u00e4t: Die Diskrepanz zwischen yfinance EPS (4.05) und SEC EDGAR EPS (1.75) ist erheblich (2.3x Faktor) und deutet auf erhebliche Non-GAAP-Adjustierungen hin. Ohne Kenntnis der genauen Zusammensetzung ist unklar, wie nachhaltig die Ertragskraft ist. Zus\\u00e4tzlich der -2.6% Preisr\\u00fcckgang in 48h trotz positiver Insider-K\\u00e4ufe zeigt, dass der Markt die Restrukturierungs-News skeptisch aufnimmt.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Monte Carlo nicht durchgef\\u00fchrt (0 Pfade). Bei CTVA mit historischer Volatilit\\u00e4t im Bereich 25-35% f\\u00fcr einen Agrochemie-Titel w\\u00e4ren in einem 30-Tage-Fenster normalerweise ca. 40-60% Aufw\\u00e4rtspfade realistisch. Der fehlende MC-Check liefert keine verwertbare statistische Grundlage \\u2014 Vorsicht geboten.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"6 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt verarbeitet die Aufspaltungs-Ank\\u00fcndigung kurzfristig negativ (Unsicherheits-Discount), untersch\\u00e4tzt dabei m\\u00f6glicherweise den Sum-of-Parts-Value der zwei entstehenden fokussierten Unternehmen. Insider-Cluster-K\\u00e4ufe (4 Insider in 14 Tagen) trotz laufendem Preisr\\u00fcckgang signalisieren Insider\\u00fcberzeugung, dass der Markt \\u00fcberreagiert. Jedoch ist die Haiku-Einsch\\u00e4tzung 'n/a' zutreffend: Das Signal ist strategisch aber ohne klaren Short-Term-Katalysator, was einen Impact >6 nicht rechtfertigt.\",\n        \"catalyst\": \"Q1 2026 Earnings Report als erster Beweis f\\u00fcr operative Stabilit\\u00e4t w\\u00e4hrend der Restrukturierung; anschlie\\u00dfend konkrete Kapitalmarkt-Kommunikation zum Spin-Off-Timeline und Bewertungsrahmen beider Einheiten\",\n        \"bear_case\": \"Nach einer 40% Jahresrally mit laufendem Restrukturierungsrisiko und ambitionierter Bewertung k\\u00f6nnte der Q1-Earnings-Report bei jeder Guidance-Entt\\u00e4uschung einen erheblichen De-Rating-Effekt ausl\\u00f6sen \\u2014 typisches 'Sell the restructuring news'-Muster in zyklischen Sektoren.\",\n        \"macro_assessment\": \"Neutrales Makro-Umfeld (flache Kurve, Fed Funds bei 3.64%) ist f\\u00fcr CTVA nicht besonders unterst\\u00fctzend: Agrochemie profitiert wenig von Zinssenkungserwartungen, und ein schw\\u00e4cherer Agrar-Commodity-Zyklus (Mais, Soja) k\\u00f6nnte Saatgut/Crop-Protection-Nachfrage d\\u00e4mpfen. Keine signifikante Makro-Einschr\\u00e4nkung, aber auch kein struktureller R\\u00fcckenwind.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.5,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day\": 0.026362,\n        \"roi_per_day_pct\": 2.6362,\n        \"annualized_roi\": 1269.6656,\n        \"efficiency_label\": \"high\",\n        \"dte\": 29\n      },\n      \"outcome\": null,\n      \"last_price\": 78.66,\n      \"current_return\": -0.0327\n    },\n    {\n      \"ticker\": \"ORCL\",\n      \"entry_date\": \"2026-04-16\",\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 6.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0366,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.97\n      },\n      \"strategy\": \"BULL_CALL_SPREAD\",\n      \"option\": {\n        \"expiry\": \"2026-05-08\",\n        \"strike\": 175.0,\n        \"bid\": 10.7,\n        \"ask\": 11.1,\n        \"open_interest\": 1445,\n        \"implied_vol\": 0.5363815893554689,\n        \"spread_ratio\": 0.036,\n        \"dte\": 21,\n        \"spread_leg\": {\n          \"strike\": 195.0,\n          \"bid\": 3.5,\n          \"ask\": 3.85\n        },\n        \"net_debit\": 7.6\n      },\n      \"simulation\": {\n        \"hit_rate\": 0.97,\n        \"stderr\": 0.0017,\n        \"n_paths\": 10000,\n        \"n_days\": 120,\n        \"days_to_expiry\": 120,\n        \"target_price\": 195.54,\n        \"current_price\": 177.76,\n        \"sigma_adj\": 0.0476,\n        \"sector\": \"Technology\",\n        \"ema200\": {},\n        \"macd\": {\n          \"macd\": 2.9543,\n          \"signal\": -1.0516,\n          \"histogram\": 4.0059,\n          \"momentum_score\": 1.0,\n          \"data_available\": true\n        }\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Der Kurs ist bereits +9.1% in 48h gestiegen \\u2014 der AWS-Deal ist damit weitgehend eingepreist. Bei einer Forward-P/E von ~30x und einem EPS-Discrepancy zwischen yfinance ($7.97) und SEC EDGAR ($5.81) von 37% besteht erhebliches \\u00dcberbewertungsrisiko. Anleger, die jetzt einsteigen, kaufen nach dem Move.\",\n          \"argument_2\": \"EPS-Abweichung von 37% zwischen yfinance und SEC EDGAR ist ein erhebliches Datenqualit\\u00e4tsproblem. Basiert die Bewertung auf Non-GAAP-Adjustments, die das tats\\u00e4chliche GAAP-Ergebnis massiv \\u00fcberzeichnen? ORCL hat historisch aggressive Aktienr\\u00fcckk\\u00e4ufe und M&A-Amortisierung, was GAAP-EPS strukturell dr\\u00fcckt \\u2014 die 'fundamentale St\\u00e4rke' des Deals k\\u00f6nnte optisch besser wirken als sie ist.\",\n          \"argument_3\": \"Cloud-Partnerschaften mit AWS sind grunds\\u00e4tzlich zweischneidig: Oracle konkurriert direkt mit AWS in der Cloud-Datenbank-Infrastruktur. Eine tiefere AWS-Integration k\\u00f6nnte Oracle-eigene Cloud-Migrationsbem\\u00fchungen (OCI) kannibalisieren und langfristig die Marge von OCI unter Druck setzen. Der 'strategische Deal' k\\u00f6nnte ein Zugest\\u00e4ndnis an AWS-Marktmacht sein.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein MC durchgef\\u00fchrt (0 Pfade) \\u2014 keine statistische Validierung m\\u00f6glich. Bei einem Kurs von $177.72 nach +9.1% in 48h und typischer 30-Tage-Volatilit\\u00e4t von ORCL (~25-30% annualisiert) w\\u00e4re eine Momentum-Fortsetzung zwar plausibel, aber ohne MC-Daten bleibt das Confidence-Level niedrig. Die fehlende Simulation ist ein Datenmangel, kein Signal.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt hat zwar mit +9.1% reagiert, aber die strukturelle Bedeutung des AWS-Deals f\\u00fcr ORCLs AI-Infrastruktur-Positionierung (Oracle Database auf Multi-Cloud-Plattformen) k\\u00f6nnte noch nicht vollst\\u00e4ndig in den Konsenssch\\u00e4tzungen reflektiert sein. Insider-Cluster-K\\u00e4ufe von 6 Personen in 14 Tagen signalisieren Insider-Conviction jenseits des einmaligen News-Events. Allerdings weiche ich von einer st\\u00e4rkeren Bewertung ab, weil der +9.1%-Move erheblich von der urspr\\u00fcnglichen Underreaction wegfrisst.\",\n        \"catalyst\": \"Amazon AWS Cloud Deal \\u2014 strategische Multi-Cloud-Partnerschaft f\\u00fcr Oracle Database Services auf AWS-Infrastruktur, kombiniert mit AI/GPU-Nachfragesog f\\u00fcr Oracle Cloud Infrastructure (OCI)\",\n        \"bear_case\": \"Mit +9.1% bereits bewegt und Forward-P/E ~30x auf fragw\\u00fcrdiger Non-GAAP-Basis ist der Einstieg nach dem Move asymmetrisch ung\\u00fcnstig; ein schwaches n\\u00e4chstes Quartal oder Makro-Schock k\\u00f6nnte den gesamten Gain revidieren.\",\n        \"macro_assessment\": \"Expansives Umfeld mit steiler Zinskurve (+0.53%) und Fed Funds bei 3.64% ist konstruktiv f\\u00fcr Tech-Largecaps. Niedrigere Refinanzierungskosten beg\\u00fcnstigen ORCLs schuldenfinanzierte Buyback-Strategie. Das Makro-R\\u00fcckenwind-Argument st\\u00fctzt eine moderate BULLISH-Positionierung, aber rechtfertigt keine aggressive \\u00dcbergewichtung nach dem Kurssprung.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.53,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day\": 0.030714,\n        \"roi_per_day_pct\": 3.0714,\n        \"annualized_roi\": 5716.014,\n        \"efficiency_label\": \"high\",\n        \"dte\": 21\n      },\n      \"outcome\": null,\n      \"last_price\": 184.055,\n      \"current_return\": 0.0354\n    },\n    {\n      \"ticker\": \"HOOD\",\n      \"entry_date\": \"2026-04-17\",\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 6.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0424,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.6696\n      },\n      \"strategy\": \"BULL_CALL_SPREAD\",\n      \"option\": {\n        \"expiry\": \"2026-05-15\",\n        \"strike\": 100.0,\n        \"bid\": 4.5,\n        \"ask\": 4.65,\n        \"open_interest\": 13184,\n        \"implied_vol\": 0.7180203979492188,\n        \"spread_ratio\": 0.0323,\n        \"dte\": 27,\n        \"spread_leg\": {\n          \"strike\": 110.0,\n          \"bid\": 2.22,\n          \"ask\": 2.36\n        },\n        \"net_debit\": 2.43\n      },\n      \"simulation\": {\n        \"current_price\": 92.36,\n        \"target_price\": 99.75,\n        \"hit_rate\": 0.8047,\n        \"n_paths\": 10000,\n        \"days\": 120,\n        \"sigma\": 0.0458,\n        \"alpha\": 0.0005\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Bewertungsrisiko nach +5.9% in 48h: HOOD notiert bei $92.36 und hat sich in kurzer Zeit stark verteuert. Bei einem KGV, das f\\u00fcr ein Retail-Brokergesch\\u00e4ft mit hoher Zyklizit\\u00e4t und regulatorischer Unsicherheit bereits hoch erscheint, ist ein Gro\\u00dfteil des PDT-Rule-Katalysators m\\u00f6glicherweise bereits eingepreist. Der Markt hat schnell reagiert, was die Asymmetrie f\\u00fcr neue Einsteiger erheblich reduziert.\",\n          \"argument_2\": \"Schwab-Konkurrenz als struktureller Gegenwind: Die News vom 16. April zeigt explizit, dass Schwab seinen Crypto-Push ausweitet. Mit ihrem Vertriebsnetz, institutionellem Vertrauen und tieferen Taschen kann Schwab das Retail-Brokerage-Segment aggressiv angreifen. Die PDT-Regel\\u00e4nderung \\u00f6ffnet den Markt f\\u00fcr HOOD \\u2014 aber auch f\\u00fcr Schwab, Fidelity und andere etablierte Player, was den Wettbewerbsvorteil von HOOD relativiert.\",\n          \"argument_3\": \"EPS-Diskrepanz und Datenunsicherheit: Es gibt eine L\\u00fccke zwischen yfinance-EPS ($2.69) und SEC EDGAR-EPS ($2.05), die auf m\\u00f6gliche Adjustierungen oder Nicht-GAAP-Elemente hinweist. HOODs Gesch\\u00e4ftsmodell ist stark abh\\u00e4ngig von Payment for Order Flow (PFOF), Market-Making-Umgebungen und Retail-Trading-Aktivit\\u00e4t \\u2014 alles hochzyklische Einnahmen, die bei Market-Stress rasch einbrechen. Die fundamentale Qualit\\u00e4t der Gewinne ist fragw\\u00fcrdig.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"0% Hit-Rate bedeutet, dass kein Quick-MC durchgef\\u00fchrt wurde \\u2014 keine statistische Validierung verf\\u00fcgbar. Dies ist ein signifikanter blinder Fleck. Gegeben HOODs historischer Volatilit\\u00e4t (typisch 50-80% annualisiert) w\\u00e4re ein 30-Tage-Ziel-Hit bei moderaten Zielen normalerweise mit 50-70% Wahrscheinlichkeit erreichbar. Die fehlende Statistik erh\\u00f6ht die Unsicherheit, ist aber kein Veto-Grund.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Die SEC-Aufhebung der PDT-Rule ist ein echter struktureller Katalysator, der HOODs Zielgruppe (Retail-Daytrader) direkt vergr\\u00f6\\u00dfert und die regulatorische Einstiegsh\\u00fcrde senkt \\u2014 der Markt hat zwar reagiert (+5.9%), aber das volle strukturelle Potenzial (mehr aktive Trader, h\\u00f6here PFOF-Einnahmen, neue Konten) braucht 2-3 Monate zur Materialisierung in den Quartalszahlen. Vier Insider-K\\u00e4ufe als Cluster-Signal deuten darauf hin, dass das Management die Kursbewegung als unvollst\\u00e4ndig einpreisend betrachtet.\",\n        \"catalyst\": \"SEC-Abschaffung der Pattern-Day-Trader-Equity-Rule senkt die Einstiegsh\\u00fcrde f\\u00fcr Retail-Daytrader, was HOODs Kernzielgruppe strukturell vergr\\u00f6\\u00dfert und mittelfristig zu h\\u00f6heren Konto\\u00f6ffnungen, Handelsvolumen und PFOF-Einnahmen f\\u00fchrt.\",\n        \"bear_case\": \"Schwab, Fidelity und andere etablierte Broker profitieren von derselben Regel\\u00e4nderung und k\\u00f6nnen mit tieferen Taschen und breiterem Vertriebsnetz aggressiv in HOODs Kernmarkt vordringen, w\\u00e4hrend der Wettbewerbsdruck auf Margen dr\\u00fcckt.\",\n        \"macro_assessment\": \"Expansives Makroumfeld mit steiler Zinskurve (+0.54%) und moderater Fed Funds Rate (3.64%) beg\\u00fcnstigt Retail-Trading-Aktivit\\u00e4t und Risk-On-Sentiment \\u2014 positiv f\\u00fcr HOOD. H\\u00f6here Zinsen erh\\u00f6hen zudem den Cash-Sweep-Ertrag (ein wachsender Ertragsbestandteil von HOOD). Das Makro-Umfeld unterst\\u00fctzt das bullishe Signal, reduziert aber nicht die idiosynkratischen Bewertungs- und Wettbewerbsrisiken.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.54,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 0.6233,\n        \"annualized_roi\": null,\n        \"dte\": 27\n      },\n      \"outcome\": null,\n      \"last_price\": 75.73,\n      \"current_return\": -0.1801\n    },\n    {\n      \"ticker\": \"SCHW\",\n      \"entry_date\": \"2026-04-17\",\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 6.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0184,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.5654\n      },\n      \"strategy\": \"BULL_CALL_SPREAD\",\n      \"option\": {\n        \"expiry\": \"2026-05-15\",\n        \"strike\": 95.0,\n        \"bid\": 1.79,\n        \"ask\": 1.88,\n        \"open_interest\": 3138,\n        \"implied_vol\": 0.2866282275390625,\n        \"spread_ratio\": 0.0479,\n        \"dte\": 27,\n        \"spread_leg\": {\n          \"strike\": 105.0,\n          \"bid\": 0.16,\n          \"ask\": 0.25\n        },\n        \"net_debit\": 1.72\n      },\n      \"simulation\": {\n        \"current_price\": 92.64,\n        \"target_price\": 100.05,\n        \"hit_rate\": 0.8812,\n        \"n_paths\": 10000,\n        \"days\": 120,\n        \"sigma\": 0.0164,\n        \"alpha\": 0.00223\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Der -7.8%-Kursr\\u00fcckgang in 48h trotz positiver News (Dual PT-Erh\\u00f6hungen, Record Revenues) deutet auf erheblichen Verkaufsdruck hin, m\\u00f6glicherweise ausgel\\u00f6st durch Robinhood-Konkurrenz im Crypto-Segment \\u2013 der Markt k\\u00f6nnte bereits eingepreist haben, dass SCHW im Crypto-Wettbewerb strukturell benachteiligt ist.\",\n          \"argument_2\": \"Schwabs Kerngesch\\u00e4ft (Brokerage, Zinsertr\\u00e4ge aus Cash-Sweeps) steht unter Druck, wenn Zinsen weiter sinken: Bei Fed Funds Rate 3.64% und m\\u00f6glichen weiteren Cuts schrumpft die Net Interest Margin, die ~40-50% des Umsatzes ausmacht \\u2013 der Crypto-Launch kann diesen strukturellen Gegenwind kaum kompensieren.\",\n          \"argument_3\": \"EPS-Divergenz (yfinance 6.95 vs. SEC EDGAR 4.65) ist erheblich und fragw\\u00fcrdig \\u2013 wenn die 'echte' Ertragsbasis n\\u00e4her an 4.65 liegt, ist SCHW bei ~92$ auf Basis adjustierter Zahlen deutlich teurer bewertet als kommuniziert, was institutionelle Investoren m\\u00f6glicherweise bereits erkannt haben und aussteigen.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"0% Hit-Rate bedeutet kein MC durchgef\\u00fchrt \\u2013 keine statistischen Prognose-Informationen verf\\u00fcgbar. Dies erh\\u00f6ht Unsicherheit, bedeutet aber nicht per se Negativsignal. Angesichts der historischen Volatilit\\u00e4t bei Finanzwerten und dem scharfen 48h-Drop erscheint eine Erholung auf 30d-Basis plausibel, aber ohne quantitative Untermauerung bleibt die Konfidenz niedrig.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"4-8 Wochen\",\n        \"asymmetry_reasoning\": \"Der Markt \\u00fcberreagiert auf Robinhood-Konkurrenzangst und vernachl\\u00e4ssigt das Cluster-Insider-Kaufsignal (5 Insider in 14 Tagen) sowie Dual Price Target-Erh\\u00f6hungen von Tier-1-Banken, was auf fundamentale Unterbewertung hindeutet. Der -7.8%-Drop erscheint \\u00fcberproportional zur tats\\u00e4chlichen Bedrohung durch den Crypto-Launch von Robinhood. Die SEC-Regel\\u00e4nderung beg\\u00fcnstigt SCHW strukturell ebenso und er\\u00f6ffnet eine neue Umsatzkategorie mit vergleichsweise niedrigem Marginalaufwand.\",\n        \"catalyst\": \"SCHW-eigener Crypto-Trading-Launch (SEC-Regel\\u00e4nderung) + Insider-Cluster-K\\u00e4ufe als Kontraindikator zum Kursr\\u00fcckgang + m\\u00f6gliche Q2-Earnings-\\u00dcberraschung auf Basis Record-Revenue-Trend\",\n        \"bear_case\": \"Signifikanter R\\u00fcckgang der Net Interest Income bei weiteren Fed-Cuts trifft Kerngesch\\u00e4ft st\\u00e4rker als Crypto-Gewinne kompensieren k\\u00f6nnen; EPS-Diskrepanz signalisiert m\\u00f6gliche Qualit\\u00e4tsprobleme bei den Earnings\",\n        \"macro_assessment\": \"Expansives Makro-Umfeld (steile Kurve +0.54%, moderate Fed Funds Rate 3.64%) beg\\u00fcnstigt grunds\\u00e4tzlich Finanzwerte und Long-Positionen. Allerdings ist f\\u00fcr SCHW spezifisch zu beachten, dass bei weiter sinkenden Kurzfristzinsen (Fed-Cuts-Erwartungen) die Cash-Sweep-Ertr\\u00e4ge leiden \\u2013 das Makro ist supportiv f\\u00fcr den Sektor, aber nicht uneingeschr\\u00e4nkt f\\u00fcr SCHWs Ertragsmodell.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.54,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 3.9511,\n        \"annualized_roi\": null,\n        \"dte\": 27\n      },\n      \"outcome\": null,\n      \"last_price\": 90.55,\n      \"current_return\": -0.0226\n    },\n    {\n      \"ticker\": \"HOOD\",\n      \"entry_date\": \"2026-04-20\",\n      \"features\": {\n        \"impact\": 7,\n        \"surprise\": 6,\n        \"mismatch\": 7.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0414,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"strong\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.6506\n      },\n      \"strategy\": \"BULL_CALL_SPREAD\",\n      \"option\": {\n        \"expiry\": \"2026-05-15\",\n        \"strike\": 100.0,\n        \"bid\": 3.4,\n        \"ask\": 3.5,\n        \"open_interest\": 13428,\n        \"implied_vol\": 0.7319362744140624,\n        \"spread_ratio\": 0.0286,\n        \"dte\": 24,\n        \"spread_leg\": {\n          \"strike\": 110.0,\n          \"bid\": 1.53,\n          \"ask\": 1.59\n        },\n        \"net_debit\": 1.97\n      },\n      \"simulation\": {\n        \"current_price\": 89.94,\n        \"target_price\": 97.14,\n        \"hit_rate\": 0.8011,\n        \"n_paths\": 10000,\n        \"days\": 120,\n        \"sigma\": 0.0454,\n        \"alpha\": 0.00031\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Bewertungs-Risiko: Bei $89.94 und einem EPS von ~$2.05-2.69 handelt HOOD auf einem KGV von 33-44x \\u2014 eine Premium-Bewertung, die bereits viel Wachstum einpreist. Eine SEC-Regel\\u00e4nderung, die 'die Schleusen \\u00f6ffnet', ist m\\u00f6glicherweise bereits durch den +3.6% Move in 48h und das Mizuho-Upgrade auf $115 weitgehend diskontiert.\",\n          \"argument_2\": \"Regulatorisches Risiko ist zweischneidig: Dieselbe SEC, die Pattern-Day-Trader-Regeln lockert, kann in einem anderen politischen Klima neue restriktive Ma\\u00dfnahmen einf\\u00fchren. HOOD hat eine Geschichte mit regulatorischen Strafen (FINRA, SEC Settlement 2021). Retailbroker sind strukturell exponiert gegen\\u00fcber regulatorischer Unsicherheit \\u2014 ein zuk\\u00fcnftiger Gegenwind k\\u00f6nnte diesen Katalysator umkehren.\",\n          \"argument_3\": \"Monetarisierungs-Unsicherheit: HOOD's Revenue ist stark von Payment-for-Order-Flow (PFOF) abh\\u00e4ngig, das in Europa bereits verboten ist und in den USA unter Beobachtung steht. Zudem h\\u00e4ngt der Umsatz stark von Marktvolatilit\\u00e4t und Retail-Aktivit\\u00e4t ab \\u2014 in einem ruhigeren Marktumfeld (VIX unter 15) kollabiert das Trading-Volumen \\u00fcberproportional.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"MC nicht durchgef\\u00fchrt (0 Pfade). Bei HOOD mit historischer Volatilit\\u00e4t von ~70-80% annualisiert ist keine statistische Einsch\\u00e4tzung m\\u00f6glich. Die fehlende MC-Simulation ist ein Datenl\\u00fccke, erh\\u00f6ht aber nicht das fundamentale Risiko des Setups. Concern-Level bleibt medium da Richtungssignal durch andere Quellen (Insider, Analyst-Upgrade) gest\\u00fctzt wird.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 7,\n        \"surprise\": 6,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 5,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt hat die strukturelle Tragweite der PDT-Regel\\u00e4nderung noch nicht vollst\\u00e4ndig eingepreist: Eine Lockerung w\\u00fcrde Millionen von Retail-Konten mit unter $25k aus der Pattern-Day-Trader-Beschr\\u00e4nkung befreien und direkt HOOD's Kernzielgruppe freischalten. Das Cluster-Insider-Kaufsignal (4 Insider in 14 Tagen) deutet darauf hin, dass interne Akteure die Gesch\\u00e4ftschance h\\u00f6her bewerten als der aktuelle Kurs reflektiert. Mizuho's Upgrade auf $115 gibt ~28% Upside und kommt von einer typischerweise konservativen Institution.\",\n        \"catalyst\": \"SEC Pattern-Day-Trader-Regelreform: Lockerung der $25k-Mindestkapitalanforderung w\\u00fcrde HOOD's adressierbaren Markt signifikant erweitern und Trading-Volumen sowie PFOF-Revenues strukturell steigern.\",\n        \"bear_case\": \"Valuation bereits gestreckt bei 33-44x KGV, +3.6% in 48h k\\u00f6nnte den Katalysator kurzfristig \\u00fcberdiskontieren, und PFOF-Abh\\u00e4ngigkeit bleibt ein strukturelles Risiko bei zuk\\u00fcnftigen Regulierungs\\u00e4nderungen.\",\n        \"macro_assessment\": \"Expansives Makro-Umfeld mit steiler Zinskurve (+0.55%) und Fed Funds bei 3.64% beg\\u00fcnstigt Retail-Broker strukturell: H\\u00f6here Zinsen auf Cash-Best\\u00e4nde st\\u00e4rken NIM-Komponenten, und Risk-On-Umfeld treibt Retail-Engagement. HOOD profitiert \\u00fcberproportional von expansivem Regime. Makro-Kontext st\\u00fctzt BULLISH-Signal klar.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.55,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 0.7008,\n        \"annualized_roi\": null,\n        \"dte\": 24\n      },\n      \"outcome\": null,\n      \"last_price\": 75.73,\n      \"current_return\": -0.158\n    },\n    {\n      \"ticker\": \"ON\",\n      \"entry_date\": \"2026-04-20\",\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 6,\n        \"mismatch\": 5.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0378,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.8334\n      },\n      \"strategy\": \"BULL_CALL_SPREAD\",\n      \"option\": {\n        \"expiry\": \"2026-05-15\",\n        \"strike\": 85.0,\n        \"bid\": 5.4,\n        \"ask\": 5.75,\n        \"open_interest\": 3117,\n        \"implied_vol\": 0.631839619140625,\n        \"spread_ratio\": 0.0609,\n        \"dte\": 24,\n        \"spread_leg\": {\n          \"strike\": 95.0,\n          \"bid\": 2.14,\n          \"ask\": 2.39\n        },\n        \"net_debit\": 3.61\n      },\n      \"simulation\": {\n        \"current_price\": 84.63,\n        \"target_price\": 91.4,\n        \"hit_rate\": 0.97,\n        \"n_paths\": 10000,\n        \"days\": 120,\n        \"sigma\": 0.0306,\n        \"alpha\": 0.00615\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"ON Semiconductor (onsemi) ist prim\\u00e4r ein Automotive/Industrial-Halbleiter-Lieferant (SiC, IGBT), NICHT ein Lithium-Batterie- oder Energy-Storage-Hersteller. Die Haiku-Pr\\u00e4misse 'Lithium-Engpass + Energy Storage Boom' trifft das Gesch\\u00e4ftsmodell nur indirekt \\u00fcber Leistungshalbleiter \\u2013 das ist ein fundamentales Narrativ-Mismatch, das die Signalqualit\\u00e4t massiv schw\\u00e4cht.\",\n          \"argument_2\": \"EV-Slowdown ist explizit benannt und ON's gr\\u00f6\\u00dfter Wachstumstreiber (SiC f\\u00fcr EVs) leidet darunter direkt. ON hat in den letzten Quartalen Guidance-Cuts bei Automotive SiC gemacht. Der +5.9% Move in 48h k\\u00f6nnte eine Bear-Market-Rally in einem strukturell geschw\\u00e4chten Segment sein \\u2013 Momentum ohne fundamentale Revision nach oben.\",\n          \"argument_3\": \"Insider-Cluster-K\\u00e4ufe bei Halbleiter-Unternehmen sind oft opportunistisch nach Kursr\\u00fcckg\\u00e4ngen und kein verl\\u00e4sslicher Forward-Indikator. Der Kurs bei $84.63 impliziert ein KGV von ~21x auf annualisiertes EPS \\u2013 bei verlangsamtem Wachstum und US/China-Geopolitik-Risiken f\\u00fcr die Lieferkette ist das keine billige Bewertung. Zudem: EPS-Diskrepanz zwischen yfinance ($4.05) und SEC EDGAR ($0.29) deutet auf massive Bilanzierungs- oder Periodenunterschiede hin.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein MC durchgef\\u00fchrt \\u2013 0 Pfade verf\\u00fcgbar. Kein statistischer R\\u00fcckenwind auswertbar. Bei einer 48h-Bewegung von +5.9% und fehlender MC-Validierung ist das Signal rein news-getrieben ohne quantitative Best\\u00e4tigung. Concern: Die EPS-Abweichung (yfinance $4.05 vs. SEC $0.29) ist extrem verd\\u00e4chtig und k\\u00f6nnte auf fehlerhafte Datenbasis im Modell hinweisen.\",\n          \"concern_level\": \"high\"\n        },\n        \"impact\": 5,\n        \"surprise\": 6,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt k\\u00f6nnte die indirekte Benefizierung von ON durch Energy-Storage-Boom (Leistungshalbleiter f\\u00fcr Wechselrichter/BMS) noch nicht vollst\\u00e4ndig eingepreist haben, da das EV-Slowdown-Narrativ dominiert. Insider-Cluster-K\\u00e4ufe (9 in 14 Tagen) signalisieren Management-Zuversicht bei aktuellem Kursniveau. Allerdings weicht meine Bewertung von der Haiku-Einsch\\u00e4tzung ab: ON ist kein Batterie-Produzent, sondern Profiteur via Leistungselektronik \\u2013 das ist eine schw\\u00e4chere, mittelbare Kausalit\\u00e4t.\",\n        \"catalyst\": \"Q-Earnings mit \\u00fcberraschend starker Energy-Storage/Industrial-Power-Guidance als Offset zum EV-Slowdown + m\\u00f6gliche Erh\\u00f6hung US-Produktionssubventionen f\\u00fcr Leistungshalbleiter in domestischer Energieinfrastruktur\",\n        \"bear_case\": \"ON's Kerngesch\\u00e4ft Automotive SiC leidet unter EV-Marktschw\\u00e4che; Energy-Storage-Exposure ist indirekt und margenschw\\u00e4cher; der +5.9% Move k\\u00f6nnte bereits das gesamte kurzfristige Upside absorbiert haben vor dem n\\u00e4chsten Earnings-Katalysator.\",\n        \"macro_assessment\": \"Expansives Makro-Umfeld (steile Kurve +0.55%, Fed Funds 3.64%) beg\\u00fcnstigt grunds\\u00e4tzlich zyklische Technologie/Halbleiter-Positionen. Die Kombination aus niedrigeren Finanzierungskosten und staatlichen Subventionen f\\u00fcr US-Energieinfrastruktur schafft einen strukturellen R\\u00fcckenwind f\\u00fcr ON's Industrial-Power-Segment. Makro ist supportiv, d\\u00e4mpft aber nicht die unternehmensspezifischen Risiken im EV-Segment.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.55,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 1.0621,\n        \"annualized_roi\": null,\n        \"dte\": 24\n      },\n      \"outcome\": null,\n      \"last_price\": 110.61,\n      \"current_return\": 0.307\n    },\n    {\n      \"ticker\": \"TSLA\",\n      \"entry_date\": \"2026-04-20\",\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 7,\n        \"mismatch\": 6.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0273,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.6218\n      },\n      \"strategy\": \"BULL_CALL_SPREAD\",\n      \"option\": {\n        \"expiry\": \"2026-05-15\",\n        \"strike\": 400.0,\n        \"bid\": 16.65,\n        \"ask\": 16.75,\n        \"open_interest\": 15649,\n        \"implied_vol\": 0.4828848098754883,\n        \"spread_ratio\": 0.006,\n        \"dte\": 24,\n        \"spread_leg\": {\n          \"strike\": 440.0,\n          \"bid\": 5.4,\n          \"ask\": 5.5\n        },\n        \"net_debit\": 11.35\n      },\n      \"simulation\": {\n        \"current_price\": 392.02,\n        \"target_price\": 423.39,\n        \"hit_rate\": 0.7014,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0262,\n        \"alpha\": 0.00187\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"TSLA ist bereits mit einem astronomischen KGV (>100x) bewertet \\u2014 die 'Terafab AI-Chip'-Story ist spekulativ und k\\u00f6nnte lediglich ein narrativer Ablenkungsversuch sein, um die Aufmerksamkeit vom Kerngesch\\u00e4ft abzulenken, das unter Margendruck, sinkenden Marktanteilen in China und zunehmender EV-Konkurrenz leidet. Der Markt hat solche TSLA-Versprechungen wiederholt \\u00fcberbewertet.\",\n          \"argument_2\": \"TSLA ist das Schlusslicht der 'Magnificent 7' Rally \\u2014 das deutet auf relative Schw\\u00e4che und institutionelle Skepsis hin. Bevorstehende Earnings mit expliziter Erwartung 'tangible progress' bei FSD/Autonomie (Morgan Stanley) schaffen ein erhebliches Entt\\u00e4uschungsrisiko: Wenn der Katalysator nicht liefert, droht ein starker IV-Crush plus fundamentaler Sell-off.\",\n          \"argument_3\": \"EPS-Diskrepanz zwischen yfinance ($2.75) und SEC EDGAR ($1.08) \\u2014 ein Faktor von ~2.5x \\u2014 ist ein erhebliches Datenkonfidenz-Problem. Bei TSLA mit seiner komplexen Bilanzierung (Regulatory Credits, FSD-Deferred Revenue, Energie-Segment) ist unklar, welche Zahl die operative Realit\\u00e4t besser abbildet. Dies erschwert jede rationale Fundamentalbewertung erheblich.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"0% Hit-Rate bedeutet kein MC wurde durchgef\\u00fchrt \\u2014 keine statistische Basis vorhanden. Bei TSLA mit historischer 30-Tage-Volatilit\\u00e4t von ~45-60% annualisiert w\\u00e4re ein bullisches MC-Ziel in 30 Tagen realistisch zwischen 45-55% Hit-Rate. Die fehlende MC-Analyse ist ein Datenl\\u00fccken-Problem, nicht per se b\\u00e4risch, aber es fehlt quantitative St\\u00fctzung f\\u00fcr die Richtungsthese.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 7,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 7,\n        \"time_to_materialization\": \"4-8 Wochen\",\n        \"asymmetry_reasoning\": \"Der Markt unterreagiert m\\u00f6glicherweise auf das Terafab AI-Chip-Signal, weil TSLA-Bullishness aktuell out-of-favor ist (Schlusslicht Mag7) und AI-Hardware-Narrativ erst in die Valuation-Modelle sickern muss. Das 6-Insider-Cluster-Kaufsignal innerhalb 14 Tagen ist statistisch ungew\\u00f6hnlich und deutet auf informierten Optimismus vor Earnings hin. Haiku-Einsch\\u00e4tzung wird best\\u00e4tigt: Die neue AI-Chip-Kategorie k\\u00f6nnte tats\\u00e4chlich die Margin-Debatte neu framen \\u2014 allerdings bleibt das Risiko hoch, da TSLA-Narrative oft entt\\u00e4uschen.\",\n        \"catalyst\": \"TSLA Earnings-Report mit konkreten Terafab AI-Chip-Meilensteinen und FSD-Skalierungsfortschritt; Insider-Cluster-K\\u00e4ufe als vorauseilender Informationsindikator\",\n        \"bear_case\": \"TSLA liefert bei Earnings erneut nur vage Versprechen ohne quantifizierbare AI-Chip-Revenue-Timeline \\u2014 IV-Crush post-Earnings kombiniert mit fundamentalem Entt\\u00e4uschungs-Sell-off bei weiterhin komprimierter Auto-Marge. Relative Schw\\u00e4che vs. Mag7-Peers verst\\u00e4rkt institutionelle Abgaben.\",\n        \"macro_assessment\": \"Steile Zinskurve (+0.55%) und expansives Fed-Regime (3.64% Funds Rate) beg\\u00fcnstigen grunds\\u00e4tzlich Growth/Momentum-Namen wie TSLA. Das makro\\u00f6konomische Umfeld ist kein Gegenwind \\u2014 im Gegenteil, fallende Real-Zinsen st\\u00fctzen hochbewertete Wachstumsaktien. Allerdings bleibt TSLA prim\\u00e4r ein idiosynkratisches Story-Risk, weniger ein Makro-Trade. Der Makro-R\\u00fcckenwind ist vorhanden, aber nicht der dominante Treiber.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.55,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 2.3404,\n        \"annualized_roi\": null,\n        \"dte\": 24\n      },\n      \"outcome\": null,\n      \"last_price\": 413.0901,\n      \"current_return\": 0.0537\n    },\n    {\n      \"ticker\": \"AMZN\",\n      \"entry_date\": \"2026-04-21\",\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 4,\n        \"mismatch\": 6.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0207,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.6888\n      },\n      \"strategy\": \"BULL_CALL_SPREAD\",\n      \"option\": {\n        \"expiry\": \"2026-05-15\",\n        \"strike\": 260.0,\n        \"bid\": 7.8,\n        \"ask\": 7.95,\n        \"open_interest\": 40568,\n        \"implied_vol\": 0.4288387194824219,\n        \"spread_ratio\": 0.0189,\n        \"dte\": 23,\n        \"spread_leg\": {\n          \"strike\": 285.0,\n          \"bid\": 1.92,\n          \"ask\": 2.0\n        },\n        \"net_debit\": 6.03\n      },\n      \"simulation\": {\n        \"current_price\": 252.57,\n        \"target_price\": 272.78,\n        \"hit_rate\": 0.795,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0208,\n        \"alpha\": 0.00321\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Die KI-Deals mit Anthropic und OpenAI sind bereits weitgehend bekannt und k\\u00f6nnten vollst\\u00e4ndig eingepreist sein. AMZN notiert bei $252.57, was einem sehr hohen Bewertungsniveau entspricht. Die $5B-Anthropic-Investition ist kein neues Signal \\u2013 sie wurde bereits \\u00fcber mehrere Tranchen kommuniziert. Der Markt hat diese Partnerschaft seit 2023 verfolgt; ein erneuter 'Deal-Announcement' d\\u00fcrfte kaum frisches Alpha generieren, wenn Sell-Side-Analysten wie BofA die Preisziele bereits vor Earnings anpassen.\",\n          \"argument_2\": \"Das Weight-Loss-Segment (Amazon vs. Eli Lilly/Novo Nordisk) ist ein hochspekulativer Narrativ ohne konkreten Umsatzbeitrag auf 2-6 Monate. Amazon hat keine zugelassenen GLP-1-Produkte und agiert allenfalls als Distributor \\u00fcber PillPack. Dieser Narrativ lenkt von den eigentlichen Risiken ab: Gegenwind im Advertising-Segment falls Konsum schw\\u00e4chelt, AWS-Margendruck durch hohe Capex-Investitionen in KI-Infrastruktur, und steigender Wettbewerb durch Microsoft Azure und Google Cloud. Custom AI Chips (Trainium/Inferentia) brauchen 12-24 Monate bis zur skalierten Monetarisierung.\",\n          \"argument_3\": \"Der Insider-Cluster (5 K\\u00e4ufe in 14 Tagen) klingt bullisch, ist aber bei AMZN-Insidern oft plan-gesteuertes Kaufen (10b5-1 Pl\\u00e4ne) ohne direkten Signal-Wert. Zudem: Die EPS-Diskrepanz zwischen yfinance ($9.43) und SEC EDGAR ($7.17) ist mit 31% au\\u00dfergew\\u00f6hnlich hoch \\u2013 dies deutet auf m\\u00f6gliche Non-GAAP vs. GAAP-Unterschiede oder Berechnungsfehler hin, die die fundamentale Bewertungsbasis unzuverl\\u00e4ssig machen. Ein KGV auf Basis von $7.17 EPS bei $252.57 liegt bei ~35x \\u2013 ambitioniert vor einem Earnings-Event mit hohen Erwartungen.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"0% Hit-Rate bedeutet schlicht kein MC wurde durchgef\\u00fchrt \\u2013 keine statistischen Daten verf\\u00fcgbar. Dies ist neutral zu werten, reduziert aber die Modellsicherheit erheblich. Ohne MC-Simulation kann keine quantitative Wahrscheinlichkeitsaussage \\u00fcber Zielpreisniveaus gemacht werden. Das Fehlen dieser Metrik erh\\u00f6ht die Abh\\u00e4ngigkeit von qualitativer Analyse.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 5,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt untersch\\u00e4tzt m\\u00f6glicherweise die strukturelle Beschleunigung bei AWS durch propriet\\u00e4re AI-Chip-Entwicklung (Trainium2/Inferentia3), die Margen langfristig verbessern kann ohne Abh\\u00e4ngigkeit von NVIDIA-Lieferketten. Die Anthropic-Partnerschaft schafft einen Moat im Enterprise-KI-Segment, der noch nicht vollst\\u00e4ndig in Konsenssch\\u00e4tzungen reflektiert ist. Earnings in den n\\u00e4chsten Wochen k\\u00f6nnten als Katalysator wirken, wenn AWS-Wachstum \\u00fcber 20% YoY und verbesserte operative Margen gezeigt werden. Das expansive Makro-Umfeld mit steiler Zinskurve beg\\u00fcnstigt Growth-Rotation, was AMZN als Large-Cap-Growth-Titel strukturell bevorzugt. Die BofA-Zielpreisanpassung vor Earnings signalisiert, dass Analysten ihre Modelle nach oben revidieren \\u2013 dies ist ein klassisches Pre-Earnings-Revision-Signal.\",\n        \"catalyst\": \"Q1/Q2 Earnings-Report mit AWS-Wachstumszahlen und operativer Margenentwicklung; Konkretisierung der Monetarisierung von Custom AI Chips (Trainium2) auf dem AWS Summit oder Investor Day\",\n        \"bear_case\": \"Hohe Capex-Investitionen in KI-Infrastruktur k\\u00f6nnten FCF kurzfristig belasten und bei entt\\u00e4uschenden AWS-Zahlen einen scharfen Selloff ausl\\u00f6sen. Bei aktuell hohen Erwartungen (KGV ~35x auf GAAP-Basis) ist das Risiko eines 'Sell the News' nach Earnings erheblich.\",\n        \"macro_assessment\": \"Das Makro-Umfeld ist klar supportiv: Zinskurve mit +0.54% (10Y-2Y) zeigt expansives Regime, Fed Funds Rate bei 3.64% deutet auf moderaten Zinsdruck ohne Rezessionsangst. F\\u00fcr AMZN als zinssensibler Growth-Titel mit hohem Duration-Risiko ist dieses Umfeld g\\u00fcnstig. Consumer Cyclical profitiert von stabilem Konsumklima, und AWS als B2B-Cloud-Anbieter ist weniger direkt abh\\u00e4ngig von Consumer-Spending. Das Umfeld rechtfertigt eine bullische Positionierung mit struktureller \\u00dcberzeugung, aber kein aggressives Leveraged-Exposure vor Earnings.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.54,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 2.9704,\n        \"annualized_roi\": null,\n        \"dte\": 23\n      },\n      \"outcome\": null,\n      \"last_price\": 262.81,\n      \"current_return\": 0.0405\n    },\n    {\n      \"ticker\": \"AMAT\",\n      \"entry_date\": \"2026-04-21\",\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 6.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.032,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.6716\n      },\n      \"strategy\": \"BULL_CALL_SPREAD\",\n      \"option\": {\n        \"expiry\": \"2026-05-15\",\n        \"strike\": 390.0,\n        \"bid\": 27.8,\n        \"ask\": 29.85,\n        \"open_interest\": 1394,\n        \"implied_vol\": 0.6517368811035158,\n        \"spread_ratio\": 0.0687,\n        \"dte\": 23,\n        \"spread_leg\": {\n          \"strike\": 430.0,\n          \"bid\": 12.1,\n          \"ask\": 13.3\n        },\n        \"net_debit\": 17.75\n      },\n      \"simulation\": {\n        \"current_price\": 395.09,\n        \"target_price\": 426.7,\n        \"hit_rate\": 0.7378,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0306,\n        \"alpha\": 0.00219\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"AMAT handelt in einem Halbleiterequipment-Sektor, der stark von Kapitalausgaben der Chipfabrikanten abh\\u00e4ngt. Die aktuelle Unsicherheit rund um US-Exportkontrollen gegen\\u00fcber China (insbesondere f\\u00fcr advanced semiconductor equipment) stellt ein erhebliches Risiko dar: AMAT generiert ca. 25-30% seines Umsatzes in China. Weitere Versch\\u00e4rfungen der BIS-Exportregeln k\\u00f6nnten diesen Umsatzstrom massiv beschneiden und Konsenssch\\u00e4tzungen nach unten zwingen.\",\n          \"argument_2\": \"Die Axcelis-Veeco Merger-News betrifft Wettbewerber, nicht AMAT direkt. Der Haiku-Prescreening klassifiziert das Signal als 'n/a', was auf fehlende direkte Relevanz f\\u00fcr AMAT hindeutet. Ein konsolidierter Konkurrent k\\u00f6nnte mittelfristig st\\u00e4rker in Ion-Implant und Deposition-Segmenten konkurrieren, in denen AMAT bereits unter Margendruck steht. Das Signal ist damit eher neutral bis leicht negativ, nicht bullish.\",\n          \"argument_3\": \"Die EPS-Diskrepanz zwischen yfinance (14.07) und SEC EDGAR (9.75) ist erheblich \\u2014 eine Differenz von ~44%, auch wenn die Abweichung als 0% angegeben wird (m\\u00f6glicherweise unterschiedliche Perioden oder adjusted vs. GAAP). Dieses Datenkonsistenzproblem untergr\\u00e4bt die Fundamentalanalyse erheblich. Ist AMAT auf Basis des GAAP-EPS von 9.75 mit einem KGV von ~40x bewertet, erscheint die Aktie bei $395 deutlich \\u00fcberteuert f\\u00fcr ein zyklisches Unternehmen in einem potenziell abschw\\u00e4chenden Equipment-Spending-Zyklus.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein Quick MC wurde durchgef\\u00fchrt (0 Pfade), daher ist eine statistische Validierung nicht m\\u00f6glich. Die 0% Hit-Rate ist kein inhaltliches Signal, sondern ein Datenartefakt \\u2014 sie bedeutet weder bullish noch bearish. Das Fehlen dieser Kennzahl erh\\u00f6ht die Unsicherheit der Bewertung und erfordert erh\\u00f6hte Vorsicht.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt k\\u00f6nnte die strategische Tiefe der Advantest-AMAT-Partnerschaft auf der EPIC Platform untersch\\u00e4tzen. Diese Kooperation verbindet Front-End-Fertigung mit Back-End-Testing und signalisiert, dass AMAT sein \\u00d6kosystem in Richtung integrierter L\\u00f6sungen ausbaut \\u2014 ein strukturelles Differenzierungsmerkmal gegen\\u00fcber reinen Equipment-Anbietern. Das Cluster-Signal aus 3 Insider-K\\u00e4ufen innerhalb von 14 Tagen ist statistisch bedeutsam: Insider mit non-public-knowledge kaufen typischerweise dann, wenn sie glauben, die Aktie sei signifikant unterbewertet. Die leichte 48h-Kursschw\\u00e4che (-0.6%) bei gleichzeitig positiven strategischen News deutet auf eine kurzfristige Marktreaktion hin, die die langfristige strategische Signalwirkung ignoriert. Das expansive Makroumfeld mit steiler Zinskurve und moderaten Fed Funds Rates beg\\u00fcnstigt Capex-intensive Industrien wie Halbleiterfertigung strukturell.\",\n        \"catalyst\": \"Fortschritt auf der EPIC Platform / AMAT Q-Earnings mit Guidance-Update zu Advantest-Partnerschaft und m\\u00f6gliche R\\u00fccknahme von Exportbeschr\\u00e4nkungen gegen\\u00fcber China oder neue Kapitalzusagen von TSMC/Samsung f\\u00fcr 2025-2026 Fab-Expansionen\",\n        \"bear_case\": \"Versch\\u00e4rfte US-Exportkontrollen f\\u00fcr Halbleiterequipment nach China k\\u00f6nnten 25-30% des Umsatzes gef\\u00e4hrden und Gewinnsch\\u00e4tzungen massiv unter Konsens dr\\u00fccken \\u2014 bei einem KGV von 40x auf GAAP-Basis w\\u00e4re das Downside-Potenzial erheblich.\",\n        \"macro_assessment\": \"Das expansive Makroumfeld mit positiver Zinskurve (+0.54%) und moderaten Zinsen (Fed Funds 3.64%) ist strukturell positiv f\\u00fcr AMAT: Halbleiterunternehmen investieren bei sinkenden Kapitalkosten und stabiler Nachfrage aggressiver in Fertigungskapazit\\u00e4ten. Die aktuelle Konstellation beg\\u00fcnstigt mittelfristige Long-Positionen in Equipment-Aktien, sofern das Chinaexport-Risiko nicht eskaliert.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.54,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 1.0726,\n        \"annualized_roi\": null,\n        \"dte\": 23\n      },\n      \"outcome\": null,\n      \"last_price\": 424.12,\n      \"current_return\": 0.0735\n    },\n    {\n      \"ticker\": \"AAPL\",\n      \"entry_date\": \"2026-04-21\",\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 7,\n        \"mismatch\": 6.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0139,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.5958\n      },\n      \"strategy\": \"BEAR_PUT_SPREAD\",\n      \"option\": {\n        \"expiry\": \"2026-05-15\",\n        \"strike\": 270.0,\n        \"bid\": 10.1,\n        \"ask\": 10.25,\n        \"open_interest\": 14313,\n        \"implied_vol\": 0.29706513488769526,\n        \"spread_ratio\": 0.0146,\n        \"dte\": 23,\n        \"spread_leg\": {\n          \"strike\": 295.0,\n          \"bid\": 27.8,\n          \"ask\": 30.6\n        },\n        \"net_debit\": -17.55\n      },\n      \"simulation\": {\n        \"current_price\": 266.33,\n        \"target_price\": 287.64,\n        \"hit_rate\": 0.748,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0135,\n        \"alpha\": 0.00281\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Der CEO-Wechsel von Tim Cook ist das destruktivste Signal f\\u00fcr AAPL auf mittelfristige Sicht. Cook ist seit \\u00fcber einem Jahrzehnt das Gesicht von Apple und verantwortlich f\\u00fcr die massive Supply-Chain-Optimierung sowie die Services-Transformation. Ein F\\u00fchrungswechsel bei einem Unternehmen dieser Gr\\u00f6\\u00dfenordnung schafft typischerweise 6-18 Monate strategische Unsicherheit: Welche Produktpriorit\\u00e4ten \\u00e4ndert sich? Bleibt die Capital-Return-Politik (Buybacks, Dividenden) bestehen? Der Markt hat solche Transitionsphasen historisch mit erh\\u00f6hter Volatilit\\u00e4t und Kursabschl\\u00e4gen quittiert.\",\n          \"argument_2\": \"AAPL handelt bei $266 mit einem Forward-KGV von ca. 28-30x \\u2014 eine Premium-Bewertung, die wenig Spielraum f\\u00fcr Entt\\u00e4uschungen l\\u00e4sst. Bei einem EPS von ~$9.37 (yfinance) ist die Bewertung bereits auf kontinuierliches Wachstum eingepreist. Der China-Markt bleibt strukturell unter Druck durch Huawei-Konkurrenz und potenzielle Regulierungsrisiken, und die Tariff-Unsicherheit (Trump's Kommentar zu Zollerstattungen) belastet die globale Supply-Chain von Apple direkt, da ein Gro\\u00dfteil der Produktion in Asien angesiedelt ist.\",\n          \"argument_3\": \"Der Insider-Cluster-Kauf von 6 Personen in 14 Tagen klingt bullish, ist aber im Kontext des CEO-Wechsels ambivalent zu interpretieren. Es k\\u00f6nnte sich um vorher geplante 10b5-1-Plan-K\\u00e4ufe handeln, die kein genuines Conviction-Signal darstellen. Gleichzeitig deutet der Hinweis 'stock breakout is in trouble' und die -1.4% Bewegung in 48h darauf hin, dass der technische Aufw\\u00e4rtstrend bricht \\u2014 ein bearishes technisches Muster kombiniert mit fundamentaler F\\u00fchrungsunsicherheit ist eine gef\\u00e4hrliche Kombination f\\u00fcr Long-Positionen auf 2-6 Monate.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Der Quick MC wurde nicht durchgef\\u00fchrt (0 Pfade), daher ist die 0% Hit-Rate technisch nicht interpretierbar \\u2014 sie bedeutet schlicht keine Datenverf\\u00fcgbarkeit, nicht zwingend eine bearishe Prognose. Ohne MC-Daten fehlt eine quantitative St\\u00fctze f\\u00fcr jede Richtungseinsch\\u00e4tzung. Dies erh\\u00f6ht die Unsicherheit der Gesamtbewertung erheblich.\",\n          \"concern_level\": \"high\"\n        },\n        \"impact\": 6,\n        \"surprise\": 7,\n        \"direction\": \"BEARISH\",\n        \"bear_case_severity\": 7,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt untersch\\u00e4tzt typischerweise die strukturelle Unsicherheit nach CEO-Wechseln bei Mega-Caps, weil der initiale 'smooth transition'-Narrativ beruhigend wirkt. Apple hat zwar einen Nachfolger designiert, aber der neue CEO muss seine strategische Vision f\\u00fcr KI, Vision Pro und China erst unter Beweis stellen \\u2014 dieser Beweiszeitraum dauert Quartale, nicht Wochen. Der Insider-Kauf-Cluster wird bullish interpretiert, k\\u00f6nnte aber systematische Plan-K\\u00e4ufe ohne echte Conviction widerspiegeln. Gleichzeitig ist die Morgan Stanley 'Urgent Message' ein Hinweis darauf, dass institutionelle Investoren nerv\\u00f6s werden \\u2014 solche Signale materialisieren sich oft erst mit Verz\\u00f6gerung in der Price Action. Der negative technische Druck (-1.4% bei brechendem Breakout) kombiniert mit der F\\u00fchrungsunsicherheit schafft eine asymmetrische Downside-Risk-Situation.\",\n        \"catalyst\": \"Erster Earnings Call unter neuer CEO-F\\u00fchrung bzw. Investorentag mit strategischer Neuausrichtung \\u2014 erwartet Q3/Q4 2025\",\n        \"bear_case\": \"Das expansive Makro-Umfeld (steile Zinskurve, Fed Funds bei 3.64%) beg\\u00fcnstigt grunds\\u00e4tzlich Long-Positionen in Technologietiteln, und Apple bleibt durch massive Buybacks ($90B+ Programm) fundamental gest\\u00fctzt. Ein reibungsloser CEO-\\u00dcbergang und starke iPhone-17-Nachfrage k\\u00f6nnten den Druck schnell neutralisieren.\",\n        \"macro_assessment\": \"Das makro\\u00f6konomische Umfeld ist expansiv (10Y-2Y Spread +0.54%, Fed Funds bei 3.64%), was grunds\\u00e4tzlich Large-Cap-Tech beg\\u00fcnstigt. Dieser R\\u00fcckenwind mildert das bearishe Signal ab, reicht aber nicht aus, um die idiosynkratische CEO-Unsicherheit zu \\u00fcberkompensieren. Apple-spezifische Risiken (China, Tariffs, F\\u00fchrungswechsel) dominieren in diesem Fall den Makro-Tailwind.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.54,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 3.0357,\n        \"annualized_roi\": null,\n        \"dte\": 23\n      },\n      \"outcome\": null,\n      \"last_price\": 300.58,\n      \"current_return\": 0.1286\n    },\n    {\n      \"ticker\": \"ALB\",\n      \"entry_date\": \"2026-04-21\",\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 6,\n        \"mismatch\": 5.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0421,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.6994\n      },\n      \"strategy\": \"BULL_CALL_SPREAD\",\n      \"option\": {\n        \"expiry\": \"2026-05-15\",\n        \"strike\": 200.0,\n        \"bid\": 11.6,\n        \"ask\": 12.5,\n        \"open_interest\": 908,\n        \"implied_vol\": 0.667239655761719,\n        \"spread_ratio\": 0.072,\n        \"dte\": 23,\n        \"spread_leg\": {\n          \"strike\": 220.0,\n          \"bid\": 5.3,\n          \"ask\": 5.9\n        },\n        \"net_debit\": 7.2\n      },\n      \"simulation\": {\n        \"current_price\": 196.53,\n        \"target_price\": 212.25,\n        \"hit_rate\": 0.7656,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0404,\n        \"alpha\": 0.00219\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Der Lithiumpreis befindet sich in einem strukturellen \\u00dcberangebot-Zyklus, der durch chinesische Produzenten (Ganfeng, Tianqi) massiv versch\\u00e4rft wird. Trotz der BESS-Nachfrageschicht ist das Angebotswachstum aus neuen australischen und s\\u00fcdamerikanischen Projekten so stark, dass der Spotpreis f\\u00fcr Lithiumkarbonat 2024-2025 auf Mehrjahrestiefs gefallen ist. ALB's Margen sind direkt an diesen Preis gekoppelt, und selbst erh\\u00f6hte BESS-Nachfrage k\\u00f6nnte das strukturelle \\u00dcberangebot nicht schnell genug absorbieren, um die Ertragslage kurzfristig zu verbessern.\",\n          \"argument_2\": \"Die EPS-Diskrepanz zwischen yfinance (+8.83) und SEC EDGAR (-5.77) ist ein kritisches Warnsignal f\\u00fcr die Datenqualit\\u00e4t. Eine negative EPS-Zahl im SEC-Filing deutet auf tats\\u00e4chliche GAAP-Verluste hin, w\\u00e4hrend die yfinance-Zahl m\\u00f6glicherweise bereinigte oder normalisierte Gewinne widerspiegelt. Ein Unternehmen, das auf GAAP-Basis Verluste schreibt, w\\u00e4hrend der Rohstoffpreis auf dem Tiefpunkt ist, hat erhebliches Downside-Risiko. Der Baird-Downgrade unterstreicht diese fundamentale Schw\\u00e4che. Insider-K\\u00e4ufe allein k\\u00f6nnen dieses strukturelle Ertragsproblem nicht \\u00fcberkompensieren.\",\n          \"argument_3\": \"Der Katalysator 'BESS macht diesen den letzten zyklischen Lithiumzyklus' ist ein narrativer Bullish-Case, der strukturell bereits seit 2023 diskutiert wird und damit weitgehend eingepreist sein d\\u00fcrfte. Solche Paradigmenwechsel-Narrative neigen dazu, die tats\\u00e4chliche Transition-Timeline erheblich zu untersch\\u00e4tzen. Zus\\u00e4tzlich besteht ein erhebliches politisches Risiko: US-Subventionen f\\u00fcr Energiespeicher (IRA) k\\u00f6nnten bei einem Regierungswechsel oder Haushaltsproblemen reduziert werden, was die BESS-Nachfrageprognosen stark after w\\u00fcrde.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein Monte Carlo durchgef\\u00fchrt \\u2014 0% Hit-Rate ist hier als 'nicht berechnet' zu interpretieren, nicht als echtes Ergebnis. Bei einem Preis von $196.53 und der historischen Volatilit\\u00e4t von ALB (typischerweise 50-70% annualisiert f\\u00fcr Rohstoffwerte) w\\u00e4re eine 30-Tage-Prognose methodisch sehr unsicher. Die fehlende MC-Statistik erh\\u00f6ht die Gesamtunsicherheit des Signals erheblich.\",\n          \"concern_level\": \"high\"\n        },\n        \"impact\": 5,\n        \"surprise\": 6,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 7,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt k\\u00f6nnte die strukturelle Nachfrageverlagerung von EV (zyklisch, verlangsamt) zu BESS (regulatorisch gest\\u00fctzt, weniger zyklisch) noch nicht vollst\\u00e4ndig in den Bewertungsmodellen reflektieren, da die meisten Sell-Side-Modelle ALB weiterhin prim\\u00e4r als EV-Lithium-Proxy modellieren. Das Cluster-Insider-Kaufsignal (7 Insider in 14 Tagen) ist statistisch signifikant und deutet auf Insiderwissen \\u00fcber eine positive Entwicklung hin, die dem Markt noch nicht bekannt ist \\u2014 m\\u00f6glicherweise bessere-als-erwartete Q-Zahlen oder ein Vertragsbeschluss. Der expansive Makro-Kontext (steile Zinskurve +0.54%, Fed Funds bei 3.64%) beg\\u00fcnstigt kapitalintensive Rohstoff- und Industrie-Transformationsplays, da niedrigere Finanzierungskosten die Projekt-\\u00d6konomie verbessern. Dennoch bleibt das GAAP-EPS-Problem (-5.77 laut SEC) das zentrale Risiko, das jede Bullish-Position limitiert.\",\n        \"catalyst\": \"Earnings-\\u00dcberraschung Q2/Q3 durch BESS-Vertragsabschl\\u00fcsse + m\\u00f6gliche Lithiumpreis-Bodenbildung durch chinesische Produktionskostendruck\",\n        \"bear_case\": \"Strukturelles Lithium-\\u00dcberangebot h\\u00e4lt l\\u00e4nger an als BESS-Nachfrage kompensieren kann; GAAP-Verluste (-5.77 EPS) deuten auf fundamentale Margenschw\\u00e4che, die selbst optimistische BESS-Szenarien nicht kurzfristig heilen.\",\n        \"macro_assessment\": \"Das expansive Makroumfeld (steile Zinskurve, moderate Fed Funds Rate von 3.64%) ist grunds\\u00e4tzlich konstruktiv f\\u00fcr Rohstoff- und Industriewerte mit mittelfristigem Wachstumspotenzial. F\\u00fcr ALB spezifisch bedeutet dies: g\\u00fcnstigere Kapitalkosten f\\u00fcr neue Minen-/Raffinationsprojekte und eine risikofreudige Marktstimmung, die Transformations-Narrativen (EV\\u2192BESS) mehr Kredit gibt. Der Makro-Kontext ist supportiv, kann aber das firmenspezifische \\u00dcberangebots-Problem im Lithiummarkt nicht \\u00fcberwinden.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.54,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 0.9209,\n        \"annualized_roi\": null,\n        \"dte\": 23\n      },\n      \"outcome\": null,\n      \"last_price\": 169.21,\n      \"current_return\": -0.139\n    },\n    {\n      \"ticker\": \"BAC\",\n      \"entry_date\": \"2026-04-21\",\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 6.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0139,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.598\n      },\n      \"strategy\": \"BULL_CALL_SPREAD\",\n      \"option\": {\n        \"expiry\": \"2026-07-17\",\n        \"strike\": 52.5,\n        \"bid\": 3.4,\n        \"ask\": 3.5,\n        \"open_interest\": 9085,\n        \"implied_vol\": 0.2919992675781249,\n        \"spread_ratio\": 0.0286,\n        \"dte\": 86,\n        \"spread_leg\": {\n          \"strike\": 57.5,\n          \"bid\": 1.13,\n          \"ask\": 1.17\n        },\n        \"net_debit\": 2.37\n      },\n      \"simulation\": {\n        \"current_price\": 53.55,\n        \"target_price\": 57.84,\n        \"hit_rate\": 0.7286,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0141,\n        \"alpha\": 0.00269\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Das AI-Margin-Expansion-Narrativ ist f\\u00fcr Gro\\u00dfbanken bereits weitgehend bekannt und d\\u00fcrfte eingepreist sein. BAC handelt bei einem KGV von ~10-11x (53.55/5.04), was f\\u00fcr eine Gro\\u00dfbank im expansiven Zinsumfeld bereits ambitioniert ist. Analysten haben AI-Effizienzgewinne bei Banken seit mindestens 18 Monaten thematisiert \\u2014 der Markt hat reichlich Zeit gehabt, dieses Signal zu antizipieren. Ein 'structural_change'-Label rechtfertigt keine Underreaction-Pr\\u00e4mie, wenn der Katalysator im Mainstreambewusstsein angekommen ist.\",\n          \"argument_2\": \"Banken sind im aktuellen Umfeld anf\\u00e4llig f\\u00fcr Kreditqualit\\u00e4tsverschlechterung: Trotz steiler Zinskurve (+0.54%) bleibt die absolute Zinslast auf Konsumenten hoch (Fed Funds 3.64%). Kreditkarten- und Verbraucherkredit-NPLs steigen branchenweit. BAC hat ein erhebliches Verbraucher-Kreditbuch, und eine potenzielle Rezessionsdrehung w\\u00fcrde R\\u00fcckstellungen massiv erh\\u00f6hen und die Margenerweiterung durch AI vollst\\u00e4ndig negieren. Der Markt preist aktuell ein Soft-Landing ein \\u2014 jede Abweichung trifft BAC \\u00fcberproportional.\",\n          \"argument_3\": \"Die -0.8% Preisbewegung in 48 Stunden bei positivem Newsflow (Insider-K\\u00e4ufe, AI-Artikel) ist ein schwaches technisches Warnsignal. Der Markt reagiert nicht positiv auf bullishe Nachrichten \\u2014 das deutet auf latenten Verkaufsdruck hin. Zudem fehlt ein Quick-MC-Ergebnis (0 Pfade), was die statistische Grundlage f\\u00fcr einen mittelfristigen Options-Trade erheblich schw\\u00e4cht. Ohne belastbare Preisverteilung ist jede Impact-Sch\\u00e4tzung spekulativ.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Der MC wurde nicht durchgef\\u00fchrt (0 Pfade), daher ist die 0%-Hit-Rate kein inhaltliches Signal sondern ein technischer Ausfall. F\\u00fcr BAC mit historischer annualisierter Volatilit\\u00e4t von ~25-30% w\\u00e4re bei einem 2-6-Monats-Horizont eine realistische Hit-Rate von 50-65% f\\u00fcr ein moderates Bullish-Ziel (~5-8% Aufw\\u00e4rtsbewegung) zu erwarten. Das Fehlen jeder MC-Statistik senkt die Datenkonfidenz erheblich und verhindert eine robuste Risikosch\\u00e4tzung.\",\n          \"concern_level\": \"high\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 5,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt untersch\\u00e4tzt m\\u00f6glicherweise die Geschwindigkeit, mit der BAC AI-gest\\u00fctzte Effizienzgewinne in den NII und Non-Interest-Income konvertiert \\u2014 insbesondere bei Back-Office-Automatisierung und personalisierten Cross-Selling-Modellen. Das Anthropic-Mythos-Signal (europ\\u00e4ische Banken) deutet auf branchenweite Adoption hin, die BAC durch fr\\u00fche Investitionen bevorzugt. Das Cluster-Insider-Kaufsignal (5 K\\u00e4ufer in 14 Tagen) ist ein statistisch signifikantes Signal f\\u00fcr Insider-\\u00dcberzeugung, das der Markt in der kurzfristigen Kursschw\\u00e4che ignoriert. Das expansive Makro-Regime mit steiler Zinskurve beg\\u00fcnstigt NII-Expansion bei BAC's gro\\u00dfem variabel-verzinstem Kreditbuch direkt. Die Kombination aus AI-Operationalisierung, Insider-Zuversicht und Makro-R\\u00fcckenwind schafft eine moderate asymmetrische Gelegenheit, die in der aktuellen Kursschw\\u00e4che unterbewertet erscheint.\",\n        \"catalyst\": \"Q2 2026 Earnings (voraussichtlich Juli 2026): Erstmalige quantifizierte Disclosure von AI-bedingten Kosteneinsparungen und Margeverbesserungen im Net Interest Margin / Efficiency Ratio-Reporting\",\n        \"bear_case\": \"Kreditqualit\\u00e4tsverschlechterung im Verbrauchersegment bei anhaltend hohen Realzinsen erzwingt erh\\u00f6hte R\\u00fcckstellungen und \\u00fcberlagert jegliche AI-Effizienzgewinne; der Kurs reagiert bereits schwach auf positive News.\",\n        \"macro_assessment\": \"Das expansive Makro-Umfeld (steile Kurve +0.54%, Fed Funds 3.64%) ist strukturell positiv f\\u00fcr BAC: Banken profitieren direkt von NII-Expansion bei steiler Kurve. Der moderate Zinssatz reduziert systemischen Stress. Risiko bleibt eine unerwartete Rezessionsdrehung oder Fed-Policy-Fehler, der die Konsumkreditqualit\\u00e4t verschlechtert. Netto ist das Makro ein moderater R\\u00fcckenwind, der bullishe Einzelsignale st\\u00fctzt ohne sie zu garantieren.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.54,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 0.6174,\n        \"annualized_roi\": null,\n        \"dte\": 86\n      },\n      \"outcome\": null,\n      \"last_price\": 51.295,\n      \"current_return\": -0.0421\n    },\n    {\n      \"ticker\": \"BIIB\",\n      \"entry_date\": \"2026-04-21\",\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 6.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0201,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.7718\n      },\n      \"strategy\": \"BULL_CALL_SPREAD\",\n      \"option\": {\n        \"expiry\": \"2026-07-17\",\n        \"strike\": 200.0,\n        \"bid\": 7.9,\n        \"ask\": 8.5,\n        \"open_interest\": 654,\n        \"implied_vol\": 0.3726869372558594,\n        \"spread_ratio\": 0.0706,\n        \"dte\": 86,\n        \"spread_leg\": {\n          \"strike\": 220.0,\n          \"bid\": 2.15,\n          \"ask\": 3.0\n        },\n        \"net_debit\": 6.35\n      },\n      \"simulation\": {\n        \"current_price\": 186.77,\n        \"target_price\": 201.71,\n        \"hit_rate\": 0.85,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0205,\n        \"alpha\": 0.00438\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"BIIB hat fundamentale strukturelle Probleme: Die Pipeline ist stark auf wenige Alzheimer-Medikamente (Leqembi) konzentriert, die commercial ramp entt\\u00e4uschend verl\\u00e4uft. Die News \\u00fcber 'Amyloid Setback' in den letzten 48h deutet auf weiteren negativen Druck im Alzheimer-Segment hin. Leqembi-Ums\\u00e4tze verfehlen Konsenserwartungen konsistent, was das Core Business belastet. Die EPS-Abweichung zwischen yfinance (15.83) und SEC EDGAR (8.78) ist extrem auff\\u00e4llig und k\\u00f6nnte auf erhebliche non-recurring items hinweisen, die die tats\\u00e4chliche Ertragskraft verzerren.\",\n          \"argument_2\": \"Der Felzartamab-China-Deal ist ein stark lokaler Katalysator mit erheblichen Risiken: Geopolitische Spannungen zwischen USA und China machen Biotech-Deals in China besonders anf\\u00e4llig f\\u00fcr regulatorische Blockaden oder Einschr\\u00e4nkungen. Der Deal k\\u00f6nnte bereits im +5.4% 48h-Move vollst\\u00e4ndig eingepreist sein. Zudem ist der China-Pharmamarkt f\\u00fcr ausl\\u00e4ndische Unternehmen zunehmend schwierig navigierbar (lokale Konkurrenz, Preiskontrolle). Die Marktreaktion von +5.4% k\\u00f6nnte bereits die maximale rationale Repricing-Bewegung darstellen.\",\n          \"argument_3\": \"Ein Artikel 'BIIB: 3 Reasons to Avoid BIIB' erschien gleichzeitig mit der positiven News \\u2014 dies ist ein starkes kontraindikatives Signal, dass fundamentale Analysten das Chance/Risiko-Profil negativ bewerten. BIIB handelt bereits nach einem signifikanten Downturn und der operative Cashflow wird durch steigende R&D-Kosten und r\\u00fcckl\\u00e4ufige Kernums\\u00e4tze (Spinal Muscular Atrophy-Segment verliert Marktanteile) belastet. Das Insider-Cluster-Kaufsignal kann auch als Desperation-Buying gewertet werden wenn Execs den Kurs st\\u00fctzen wollen.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Quick MC wurde nicht durchgef\\u00fchrt, daher keine statistische Validierung verf\\u00fcgbar. Bei einer 48h-Bewegung von +5.4% ist das aktuelle Momentum ber\\u00fccksichtigenswert, jedoch ohne MC-Daten kann keine Hit-Rate-Einsch\\u00e4tzung gemacht werden. Die fehlende MC-Statistik reduziert das Confidence-Level erheblich und erfordert konservativere Annahmen.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"4-8 Wochen\",\n        \"asymmetry_reasoning\": \"Der Markt k\\u00f6nnte den Felzartamab-China-Deal und das Insider-Cluster-Kaufsignal (7 K\\u00e4ufer in 14 Tagen) als Kombinations-Signal untersch\\u00e4tzen. Q3-Earnings als konkreter Bin\\u00e4r-Katalysator in 10-60 Tagen k\\u00f6nnte bei positivem \\u00dcberraschungspotenzial weitere Repricing-Bewegungen ausl\\u00f6sen, da BIIB nach jahrelanger Underperformance niedrig bewertet ist. Expansives Makroumfeld mit steiler Zinskurve (+0.54%) beg\\u00fcnstigt Risk-On in Healthcare-Wachstumswerten. Allerdings ist die EPS-Diskrepanz ein erhebliches Risiko das die Asymmetrie begrenzt \\u2014 reales EPS k\\u00f6nnte n\\u00e4her an 8.78 (EDGAR) als 15.83 (yfinance) liegen, was das fundamentale Bild deutlich verschlechtert.\",\n        \"catalyst\": \"Q3-Earnings innerhalb 10-60 Tage kombiniert mit Felzartamab-China-Deal-Synergien und Insider-Cluster-Kaufsignal (7 K\\u00e4ufer/14 Tage)\",\n        \"bear_case\": \"Leqembi commercial ramp bleibt entt\\u00e4uschend, China-Deal wird durch Geopolitik blockiert, und die massive EPS-Diskrepanz (SEC EDGAR vs. yfinance) deutet auf verzerrte Earning Power hin \\u2014 reales Kurs-Gewinn-Verh\\u00e4ltnis deutlich ung\\u00fcnstiger als auf den ersten Blick\",\n        \"macro_assessment\": \"Expansives Makroumfeld (Zinskurve +0.54%, Fed Funds bei 3.64%) ist generell unterst\\u00fctzend f\\u00fcr BULLISH-Einzelaktien-Signale im Healthcare-Sektor. Die Kombination aus nicht-inversierter Kurve und moderatem Zinsniveau erlaubt Risikopr\\u00e4mien f\\u00fcr Biotech. Kein wesentlicher makro\\u00f6konomischer Gegenwind identifiziert \\u2014 Makro-Kontext best\\u00e4tigt die BULLISH-Direction der Haiku-Einsch\\u00e4tzung.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.54,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 0.3608,\n        \"annualized_roi\": 2.1488,\n        \"dte\": 86\n      },\n      \"outcome\": null,\n      \"last_price\": 187.4,\n      \"current_return\": 0.0034\n    },\n    {\n      \"ticker\": \"BBWI\",\n      \"entry_date\": \"2026-04-21\",\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 6.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.041,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.6728\n      },\n      \"strategy\": \"BEAR_PUT_SPREAD\",\n      \"option\": {\n        \"expiry\": \"2026-05-15\",\n        \"strike\": 20.0,\n        \"bid\": 0.9,\n        \"ask\": 1.0,\n        \"open_interest\": 864,\n        \"implied_vol\": 0.56055126953125,\n        \"spread_ratio\": 0.1,\n        \"dte\": 23,\n        \"spread_leg\": {\n          \"strike\": 22.5,\n          \"bid\": 2.25,\n          \"ask\": 2.45\n        },\n        \"net_debit\": -1.25\n      },\n      \"simulation\": {\n        \"current_price\": 20.57,\n        \"target_price\": 22.22,\n        \"hit_rate\": 0.7172,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0407,\n        \"alpha\": 0.00123\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Die Schlie\\u00dfung von 92 Filialen ist kein Restrukturierungserfolg, sondern ein Zeichen struktureller Nachfrageschw\\u00e4che im station\\u00e4ren Einzelhandel. Bath & Body Works k\\u00e4mpft mit einem s\\u00e4kularen Trend weg vom Mallformat, steigendem Wettbewerb durch DTC-Marken und E-Commerce sowie einer Kundenbasis, die preissensitiv auf das aktuelle inflation\\u00e4re Umfeld reagiert. Weitere Writedowns auf das Filialnetz, Mietverbindlichkeiten und Lagerbest\\u00e4nde sind wahrscheinlich, und der Markt k\\u00f6nnte diese Cascading Effects noch deutlich untersch\\u00e4tzen.\",\n          \"argument_2\": \"Der laufende Rechtsstreit (Kuehn Law ermutigt Investoren zur Kontaktaufnahme) deutet auf potenzielle Securities-Class-Action hin, die h\\u00e4ufig mit Verdacht auf unzureichende Offenlegung operativer Probleme verkn\\u00fcpft ist. Solche Verfahren binden Management-Kapazit\\u00e4t, erh\\u00f6hen D&O-Versicherungskosten und k\\u00f6nnen bei negativem Ausgang zu erheblichen Einmalbelastungen f\\u00fchren. Gleichzeitig schrecken sie institutionelle Investoren ab, die Compliance-Anforderungen unterliegen.\",\n          \"argument_3\": \"Die 48h-Preisbewegung von +5,9% in Kombination mit 8 Insider-K\\u00e4ufen klingt bullisch, k\\u00f6nnte aber eine klassische Bullenfalle sein. Insider-K\\u00e4ufe bei Restrukturierungen sind oft signalarm (Pflichtprogramm, kleine Volumen, Optionsaus\\u00fcbungen), und ein kurzzeitiger Pop nach negativen Nachrichten ('dead cat bounce') ist im Einzelhandelssektor gut dokumentiert. Consumer Cyclicals sind in der aktuellen Phase mit hoher Zinslast bei den Konsumenten anf\\u00e4llig f\\u00fcr Umsatzentt\\u00e4uschungen.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"0% Hit-Rate bedeutet, dass kein Quick-MC durchgef\\u00fchrt wurde \\u2014 keine statistische Basis f\\u00fcr eine 30-Tage-Prognose vorhanden. Dies erh\\u00f6ht die Unsicherheit erheblich. Da kein Modell lief, k\\u00f6nnen weder Pfade noch Wahrscheinlichkeiten validiert werden. Das Fehlen dieser Statistik ist an sich ein mittleres Warnsignal.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BEARISH\",\n        \"bear_case_severity\": 7,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Die Haiku-Einsch\\u00e4tzung ist BEARISH und ich stimme dieser Richtung zu, auch wenn Insider-K\\u00e4ufe oberfl\\u00e4chlich bullisch erscheinen. Der Markt hat die 92-Store-Schlie\\u00dfungen m\\u00f6glicherweise noch nicht vollst\\u00e4ndig in die zuk\\u00fcnftigen Earnings-Sch\\u00e4tzungen eingepreist, da die Auswirkungen auf Umsatz, Leasing-Verbindlichkeiten und Marge erst in den kommenden Quartalen vollst\\u00e4ndig sichtbar werden. Der kurzfristige Pop von +5,9% erscheint durch selektive News-Interpretation getrieben, nicht durch fundamentale Verbesserung. Die Kombination aus strukturellem Filialr\\u00fcckgang, laufendem Rechtsstreit und einem Consumer-Cyclical-Name in einem Umfeld erh\\u00f6hter Verbraucherverschuldung schafft eine asymmetrische Risikolage nach unten. Selbst das expansive Makroumfeld \\u00e4ndert nichts daran, dass BBWI ein firmenspezifisches Strukturproblem hat, das sektorale Tailwinds \\u00fcberw\\u00e4ltigen d\\u00fcrfte.\",\n        \"catalyst\": \"N\\u00e4chste Quartalsergebnisse mit voraussichtlicher Guidance-Senkung und weiteren Restrukturierungskosten aus den 92 Store-Schlie\\u00dfungen\",\n        \"bear_case\": \"Das st\\u00e4rkste Gegenargument ist das expansive Makroumfeld mit steiler Zinskurve und niedrigem Fed Funds Rate, das Consumer-Discretionary-Namen strukturell beg\\u00fcnstigt. Zudem k\\u00f6nnte die Insider-Kaufwelle auf echtes Management-Vertrauen in eine Turnaround-Story hinweisen, und die Store-Schlie\\u00dfungen k\\u00f6nnten mittelfristig die Profitabilit\\u00e4t verbessern.\",\n        \"macro_assessment\": \"Das Makroumfeld (expansive Zinskurve +0,54%, Fed Funds bei 3,64%) ist grunds\\u00e4tzlich supportiv f\\u00fcr Long-Positionen in Consumer Cyclicals. Dieser Tailwind mildert den Bear Case ab, reicht aber nicht aus, um firmenspezifische Strukturprobleme wie Filialschlie\\u00dfungen im dreistelligen Bereich, Rechtsstreitigkeiten und s\\u00e4kularen Mallformat-Verfall zu \\u00fcberlagern. BBWI ist ein Einzelunternehmensproblem im Mantel eines g\\u00fcnstigen Makros.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.54,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 2.2709,\n        \"annualized_roi\": null,\n        \"dte\": 23\n      },\n      \"outcome\": null,\n      \"last_price\": 16.665,\n      \"current_return\": -0.1898\n    },\n    {\n      \"ticker\": \"AEP\",\n      \"entry_date\": \"2026-04-21\",\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 6,\n        \"mismatch\": 5.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.01,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.6648\n      },\n      \"strategy\": \"BULL_CALL_SPREAD\",\n      \"option\": {\n        \"expiry\": \"2026-05-15\",\n        \"strike\": 130.0,\n        \"bid\": 4.9,\n        \"ask\": 5.4,\n        \"open_interest\": 1438,\n        \"implied_vol\": 0.2788158056640625,\n        \"spread_ratio\": 0.0926,\n        \"dte\": 23,\n        \"spread_leg\": {\n          \"strike\": 145.0,\n          \"bid\": 0.15,\n          \"ask\": 0.45\n        },\n        \"net_debit\": 5.25\n      },\n      \"simulation\": {\n        \"current_price\": 132.94,\n        \"target_price\": 143.58,\n        \"hit_rate\": 0.8378,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0117,\n        \"alpha\": 0.00338\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Morgan Stanley hat das Price Target auf $136 gesenkt, obwohl der aktuelle Kurs bei $132.94 liegt \\u2014 das impliziert nur noch ~2.3% Upside zum MS-Target. Diese minimale Marge ist f\\u00fcr einen 2-6 Monats-Options-Trade v\\u00f6llig unzureichend, da Theta-Decay und Transaktionskosten diesen schmalen Puffer rasch aufzehren. Die Kombination 'Overweight-Rating beibehalten, aber Target senken' signalisiert intern zunehmende Skepsis des Analysten trotz formell bullischer Haltung.\",\n          \"argument_2\": \"Utilities sind ein defensiver Sektor, der zwar im expansiven Makro-Umfeld nicht kategorisch benachteiligt wird, aber typischerweise underperformt wenn Zinsen hoch bleiben (4.25% 10Y Treasury). AEP ist ein kapitalintensives Unternehmen mit hoher Schuldenlast; steigende oder persistente Realzinsen erh\\u00f6hen die Kapitalkosten direkt und dr\\u00fccken auf die Bewertungsmultiples (Utility-DCF ist zinssensibler als fast jeder andere Sektor). Bei 4.25% 10Y ist das Dividenden-Rendite-Argument f\\u00fcr AEP deutlich schw\\u00e4cher als in Niedrigzinsumgebungen.\",\n          \"argument_3\": \"Der neue Analyst-Initiator (Truist, Buy, $148 Target) k\\u00f6nnte einen typischen 'Initiierungsboost' erzeugen, der rasch wieder abflacht. Solche Initiierungen sind oft bereits eingepreist bevor Retailinvestoren reagieren k\\u00f6nnen, und das Momentum verpufft innerhalb von 2-4 Wochen. Der Cluster-Insider-Kauf muss ebenfalls kritisch gesehen werden: Bei Utilities k\\u00f6nnen Insider-K\\u00e4ufe auch regulatorisch motiviert oder durch Compain-Programme bedingt sein, ohne zwingend auf nicht-\\u00f6ffentliche positive Informationen hinzuweisen.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"0% Hit-Rate bedeutet kein MC wurde durchgef\\u00fchrt \\u2014 es existiert schlicht keine statistische Grundlage aus dem Modell. Dies ist eine neutrale Feststellung (kein Datenpunkt vorhanden), nicht ein negatives Signal per se. Das erh\\u00f6ht jedoch die Unsicherheit erheblich, da wir uns ausschlie\\u00dflich auf qualitative Signale st\\u00fctzen m\\u00fcssen. Concern-Level wird entsprechend auf medium gesetzt.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 5,\n        \"surprise\": 6,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 5,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt scheint die Kombination aus Truist-Initiierung ($148 Target, +11.3% Upside) und Insider-Cluster-K\\u00e4ufen noch nicht vollst\\u00e4ndig eingepreist zu haben, da die 48h-Preisbewegung mit -0.5% leicht negativ bleibt. Dies deutet darauf hin, dass die bullischen Katalysatoren entweder ignoriert oder durch die MS-Targetsenkung neutralisiert wurden. Die asymmetrische Gelegenheit liegt darin, dass bei einer KI-Power-Nachfrage-Story (vgl. Bloom Energy Erw\\u00e4hnung im Kontext) auch AEP als Infrastruktur-Utility von steigendem Strombedarf profitieren k\\u00f6nnte \\u2014 ein struktureller Wachstumstreiber, der im aktuellen Narrative noch unterbewertet scheint. Das Upside-Ziel von $148 (Truist) vs. aktuellem Kurs $132.94 bietet mit ~11% einen f\\u00fcr einen Utility-Trade \\u00fcberdurchschnittlichen potenziellen Return, der die Optionspr\\u00e4mie rechtfertigen k\\u00f6nnte.\",\n        \"catalyst\": \"Truist-Initiierung mit $148 Buy-Rating kombiniert mit 3-fach Insider-Cluster-Kauf als Vertrauenssignal; m\\u00f6gliche Positionierung als AI-Power-Infrastruktur-Benefiziar\",\n        \"bear_case\": \"Morgan Stanleys Targetsenkung auf $136 bei nur ~2.3% Upside und der persistente 10Y-Zins von 4.25% limitieren das strukturelle Kurspotenzial f\\u00fcr einen kapitalintensiven Utility erheblich; IV-Crush nach Initiierungsphase wahrscheinlich\",\n        \"macro_assessment\": \"Das expansive Makroumfeld (Zinskurve +0.54%, Fed Funds 3.64%) ist grunds\\u00e4tzlich supportiv f\\u00fcr Risk-Assets. F\\u00fcr Utilities ist es jedoch ambivalent: Zwar beg\\u00fcnstigt die steilere Kurve keine Rezessionsangst, aber der absolute 10Y-Level von 4.25% bleibt ein struktureller Gegenwind f\\u00fcr zinssensitive, hochverschuldete Utilities wie AEP. Das Makro ist damit neutral bis leicht negativ f\\u00fcr AEP, nicht klar positiv.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.54,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 3.9635,\n        \"annualized_roi\": null,\n        \"dte\": 23\n      },\n      \"outcome\": null,\n      \"last_price\": 129.2,\n      \"current_return\": -0.0281\n    },\n    {\n      \"ticker\": \"ABNB\",\n      \"entry_date\": \"2026-04-22\",\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 6.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0218,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.7058\n      },\n      \"strategy\": \"BULL_CALL_SPREAD\",\n      \"option\": {\n        \"expiry\": \"2026-05-15\",\n        \"strike\": 145.0,\n        \"bid\": 7.25,\n        \"ask\": 7.7,\n        \"open_interest\": 1652,\n        \"implied_vol\": 0.5218553674316406,\n        \"spread_ratio\": 0.0584,\n        \"dte\": 22,\n        \"spread_leg\": {\n          \"strike\": 160.0,\n          \"bid\": 1.99,\n          \"ask\": 2.39\n        },\n        \"net_debit\": 5.71\n      },\n      \"simulation\": {\n        \"current_price\": 144.58,\n        \"target_price\": 156.15,\n        \"hit_rate\": 0.8032,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0201,\n        \"alpha\": 0.0034\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Der Wells Fargo Upgrade auf $178 ist ein klassischer Sell-the-News-Katalysator: Analyst-Upgrades nach bereits eingepreisten positiven Entwicklungen f\\u00fchren statistisch h\\u00e4ufig zu kurzfristiger Outperformance, gefolgt von Mean-Reversion. ABNB notiert bei $144.58 und hat bereits eine starke Erholung hinter sich \\u2014 das 'Inflection Point'-Narrativ k\\u00f6nnte bereits vollst\\u00e4ndig repriced sein, besonders wenn institutionelle Investoren die Upgrade-Welle als Ausstiegsgelegenheit nutzen.\",\n          \"argument_2\": \"Die EPS-Abweichung zwischen yfinance ($5.80) und SEC EDGAR ($4.03) betr\\u00e4gt in absoluten Zahlen ~44% \\u2014 die 0.2%-Angabe erscheint methodisch fragw\\u00fcrdig und deutet auf unterschiedliche Berechnungsgrundlagen (GAAP vs. Non-GAAP, annualisiert vs. TTM) hin. Dies untergr\\u00e4bt das fundamentale Bewertungsfundament erheblich: Bei einem KGV von ~25x (auf Basis $5.80) wirkt ABNB moderat bewertet, auf SEC EDGAR-Basis ($4.03) liegt das KGV bei ~36x \\u2014 f\\u00fcr ein Consumer Cyclical in einem noch unsicheren Reise-Nachfrage-Umfeld eine ambitionierte Bewertung.\",\n          \"argument_3\": \"Ein wichtiger Executive (EMEA-bezogen) wurde von OpenAI abgeworben, was auf Talent-Drain hinweist und gleichzeitig bedeutet, dass ein zentraler Wachstumstreiber f\\u00fcr Europa m\\u00f6glicherweise geschw\\u00e4cht wird. Der EMEA-Markt ist f\\u00fcr Airbnbs internationales Wachstum kritisch \\u2014 der Verlust von Schl\\u00fcsselpersonal in dieser Region just zum Zeitpunkt eines postulierten 'Inflection Points' ist ein echtes operatives Risiko, das im bullishen Narrativ systematisch untersch\\u00e4tzt wird.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"0% Hit-Rate bedeutet, dass kein Monte Carlo durchgef\\u00fchrt wurde \\u2014 es liegen keine statistischen Pfad-Simulationen vor. Dies ist keine inhaltliche Aussage \\u00fcber die Trefferwahrscheinlichkeit, sondern ein Datenmangel. Bei ABNB mit historischer 30d-Volatilit\\u00e4t von ca. 30-40% annualisiert w\\u00e4re eine realistische Hit-Rate f\\u00fcr moderate Aufw\\u00e4rtsbewegungen (~10-15%) im Bereich 45-60% zu erwarten. Die fehlende MC-Statistik erh\\u00f6ht die Unsicherheit der Bewertung.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 5,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt hat auf den Wells Fargo Upgrade mit nur +0.7% in 48h reagiert \\u2014 f\\u00fcr einen Overweight-Call mit $178 Target (23% Upside) ist dies auff\\u00e4llig verhalten und deutet auf institutionelle Skepsis hin, die m\\u00f6glicherweise nicht fundamental begr\\u00fcndet ist. Das strukturelle Signal liegt in der Margenverbesserung durch das Subscriptions-Wachstum (7x), welches in den Headline-Metriken unterrepr\\u00e4sentiert ist und erst in kommenden Quartalen vollst\\u00e4ndig in die Earnings-Sch\\u00e4tzungen einflie\\u00dfen d\\u00fcrfte. Vier Insider-K\\u00e4ufe innerhalb von 14 Tagen verst\\u00e4rken die Asymmetrie: Insider kaufen selten koordiniert ohne konkrete positive Sicht auf die n\\u00e4chsten 1-2 Quartale. Das expansive Makro-Umfeld (steile Kurve, Fed Funds bei 3.64%) beg\\u00fcnstigt Consumer Cyclicals strukturell, da Reisebudgets bei sinkenden Realzinsen tendenziell steigen. Die Kombination aus Analyst-Upgrade, Insider-Cluster und verstecktem Margin-Signal bei moderater Marktreaktion schafft eine klassische Underreaction-Situation.\",\n        \"catalyst\": \"Q2/Q3 2025 Earnings-\\u00dcberraschung durch Subscription-Margin-Expansion und EMEA-Wachstumsdaten; m\\u00f6gliche Forward-Guidance-Anhebung im n\\u00e4chsten Earnings Call\",\n        \"bear_case\": \"EPS-Diskrepanz (GAAP $4.03 vs. Non-GAAP $5.80) l\\u00e4sst das KGV auf GAAP-Basis bei ~36x erscheinen \\u2014 f\\u00fcr Consumer Cyclical in einem verlangsamenden globalen Reisemarkt m\\u00f6glicherweise nicht nachhaltig. Talent-Verlust im EMEA-Bereich ist ein echtes operatives Risiko.\",\n        \"macro_assessment\": \"Das expansive Makro-Umfeld (10Y-2Y Spread +0.52%, Fed Funds 3.64%, keine invertierte Kurve) ist klar konstruktiv f\\u00fcr Consumer Cyclicals wie ABNB. Sinkende Zinsen reduzieren den Diskontierungsfaktor f\\u00fcr Wachstumsaktien und beg\\u00fcnstigen discretionary spending. Das Regime-Signal 'Expansiv' st\\u00e4rkt das bullishe Einzelaktien-Signal und rechtfertigt eine h\\u00f6here Gewichtung des strukturellen Margin-Signals.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.52,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 1.9068,\n        \"annualized_roi\": null,\n        \"dte\": 22\n      },\n      \"outcome\": null,\n      \"last_price\": 134.29,\n      \"current_return\": -0.0712\n    },\n    {\n      \"ticker\": \"BBWI\",\n      \"entry_date\": \"2026-04-22\",\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 7,\n        \"mismatch\": 6.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0407,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.6724\n      },\n      \"strategy\": \"BEAR_PUT_SPREAD\",\n      \"option\": {\n        \"expiry\": \"2026-05-15\",\n        \"strike\": 20.0,\n        \"bid\": 0.95,\n        \"ask\": 1.05,\n        \"open_interest\": 865,\n        \"implied_vol\": 0.561527822265625,\n        \"spread_ratio\": 0.0952,\n        \"dte\": 22,\n        \"spread_leg\": {\n          \"strike\": 22.5,\n          \"bid\": 2.4,\n          \"ask\": 2.6\n        },\n        \"net_debit\": -1.35\n      },\n      \"simulation\": {\n        \"current_price\": 20.33,\n        \"target_price\": 21.96,\n        \"hit_rate\": 0.7386,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0407,\n        \"alpha\": 0.00163\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Die Schlie\\u00dfung von 92 Stores ist kein positives Restrukturierungssignal, sondern ein Indikator f\\u00fcr strukturellen Nachfrager\\u00fcckgang im Consumer-Cyclical-Segment. Bath & Body Works k\\u00e4mpft mit sinkender Foot-Traffic in Malls, steigendem Wettbewerb durch E-Commerce und einer Verbraucherbasis, die bei diskretion\\u00e4ren Ausgaben zunehmend zur\\u00fcckhaltend ist. Der Markt k\\u00f6nnte das Ausma\\u00df des strukturellen Wandels tats\\u00e4chlich bereits korrekt einpreisen, und die BEARISH-These ist daher nicht zwingend eine Underreaction, sondern eine korrekte Bewertung.\",\n          \"argument_2\": \"Die Kuehn Law-Meldung deutet auf m\\u00f6gliche Sammelklagen oder Investoren-Rechtsstreitigkeiten hin \\u2014 dies ist ein erhebliches juristisches Tail-Risk, das EPS-Sch\\u00e4tzungen und Managementkapazit\\u00e4ten belasten kann. Gleichzeitig ist der EPS von ~2.87-3.11 bei einem Kurs von $20.33 zwar optisch g\\u00fcnstig (KGV ~6-7x), aber rechtliche Belastungen und weitere Store-Schlie\\u00dfungskosten (Abfindungen, Mietaufl\\u00f6sungen, Inventory-Abschreibungen) k\\u00f6nnten die realisierten Gewinne erheblich unter Konsenserwartungen dr\\u00fccken.\",\n          \"argument_3\": \"Insider-K\\u00e4ufe in einem Cluster sind oft ein contrarian bullisches Signal, k\\u00f6nnen aber auch 'Catching a Falling Knife' bedeuten \\u2014 besonders wenn das Management die Tiefe der operativen Probleme kennt aber \\u00f6ffentlich optimistisch kommuniziert. Insider kaufen h\\u00e4ufig, um Vertrauen zu signalisieren, selbst wenn das Unternehmen fundamental unter Druck steht. Bei einem -2.7% Move in 48h und einer Nachrichtenlage bestehend aus Store-Schlie\\u00dfungen und Klagen ist die Wahrscheinlichkeit eines anhaltenden Abw\\u00e4rtstrends nicht vernachl\\u00e4ssigbar.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"0% Hit-Rate bedeutet kein Monte-Carlo wurde durchgef\\u00fchrt \\u2014 damit fehlen statistische Grundlagen f\\u00fcr eine Wahrscheinlichkeitsbewertung. Bei BBWI mit historisch hoher Volatilit\\u00e4t (~35-45% IV f\\u00fcr Consumer-Cyclical-Retailer unter Druck) w\\u00e4re eine belastbare MC-Simulation essenziell. Das Fehlen der Daten erh\\u00f6ht die Unsicherheit, senkt aber nicht notwendigerweise die Signifikanz der qualitativen Signale. Concern ist daher medium-high.\",\n          \"concern_level\": \"high\"\n        },\n        \"impact\": 6,\n        \"surprise\": 7,\n        \"direction\": \"BEARISH\",\n        \"bear_case_severity\": 7,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Das Haiku-Prescreening sieht eine bullische Underreaction (Transformations-Risiko ist underpriced). Ich weiche zur BEARISH-Seite ab, weil die Kombination aus 92 Store-Schlie\\u00dfungen, laufenden Investorenklagen und -2.7% Kursbewegung in 48h eher auf eine unvollst\\u00e4ndig eingepreiste strukturelle Verschlechterung hindeutet als auf eine missverstandene Restrukturierungs-Opportunity. Der Markt mag das Ausma\\u00df der operativen Belastung (Mietaufl\\u00f6sungskosten, Working Capital Stress, Brand-Erosion) noch nicht vollst\\u00e4ndig reflektiert haben \\u2014 aber BULLISH zu werden setzt voraus, dass die Store-Schlie\\u00dfungen tats\\u00e4chlich zu Margin-Expansion f\\u00fchren, was bei Mall-Retailern historisch selten innerhalb von 2-3 Quartalen eintritt. Insider-K\\u00e4ufe reduzieren das extreme Tail-Risk, \\u00e4ndern aber nicht die mittelfristige Fundamentaldynamik.\",\n        \"catalyst\": \"N\\u00e4chste Quartalsergebnisse mit Guidance-Update zu Store-Portfolio und Kosteneinsparungen sowie m\\u00f6gliche Entwicklungen in der Kuehn Law Investorenklage\",\n        \"bear_case\": \"Weitere Store-Schlie\\u00dfungen \\u00fcber 92 hinaus bei gleichzeitig steigenden Restrukturierungskosten und rechtlichen Verbindlichkeiten k\\u00f6nnten EPS-Konsenssch\\u00e4tzungen um 20-30% verfehlen lassen, was bei einem bereits auf niedrigem Niveau gehandelten Titel weiteren signifikanten Druck generiert.\",\n        \"macro_assessment\": \"Das expansive Makro-Umfeld (steile Kurve, Fed Funds bei 3.64%) ist prinzipiell positiv f\\u00fcr Consumer-Cyclicals und w\\u00fcrde normalerweise bullische Signale beg\\u00fcnstigen. Dennoch ist BBWI spezifisch mit idiosynkratischen Risiken belastet \\u2014 die Makro-Tailwinds mildern das Downside, eliminieren es aber nicht. Der Sektor profitiert weniger als erwartet, wenn strukturelle Marktanteilsverluste (an E-Commerce, Specialty-Konkurrenten) dominieren.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.52,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 1.9986,\n        \"annualized_roi\": null,\n        \"dte\": 22\n      },\n      \"outcome\": null,\n      \"last_price\": 16.665,\n      \"current_return\": -0.1803\n    },\n    {\n      \"ticker\": \"AMD\",\n      \"entry_date\": \"2026-04-22\",\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 6.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0321,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.7984\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-05-08\",\n        \"strike\": 292.5,\n        \"bid\": 22.5,\n        \"ask\": 23.2,\n        \"open_interest\": 1041,\n        \"implied_vol\": 0.6864045031738282,\n        \"spread_ratio\": 0.0302,\n        \"dte\": 15\n      },\n      \"simulation\": {\n        \"current_price\": 301.1,\n        \"target_price\": 325.19,\n        \"hit_rate\": 0.85,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0377,\n        \"alpha\": 0.0051\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"AMD bei $301 nach einem +9.9% Anstieg in 48h ist ein klassisches Momentum-Overshoot-Risiko. Der Kursanstieg wurde prim\\u00e4r durch AI-Chip-Sentiment getrieben, nicht durch fundamentale \\u00dcberraschungen bei AMD selbst. Solche reflexiven Rallyes in hochfliegenden Halbleiteraktien werden oft innerhalb von 2-4 Wochen zu 50-60% revertiert, wenn der Katalysator (Micron-News, Google-Chips) als sektorales, nicht AMD-spezifisches Signal erkannt wird.\",\n          \"argument_2\": \"Die EPS-Diskrepanz ist ein kritisches Warnsignal: yfinance zeigt EPS 10.97 gegen\\u00fcber SEC EDGAR 2.62 \\u2014 das ist ein Faktor von ~4x. Selbst wenn die Abweichung formal als 0% deklariert wird (m\\u00f6glicherweise durch unterschiedliche Berechnungszeitr\\u00e4ume), deutet diese massive Differenz auf Dateninkonsistenz hin. Bei einem KGV-basierten Bullish-Case auf AMD schafft das erhebliche Unsicherheit \\u00fcber die tats\\u00e4chliche fundamentale Bewertung. Ein AMD auf Basis von KGV 27x (SEC-Zahlen) ist weit teurer als eines auf Basis von KGV 27x (yfinance-Zahlen).\",\n          \"argument_3\": \"Ein Artikel titelt explizit 'Nvidia vs. AMD: One Is a Generational Buy \\u2014 The Other Is a Trap' \\u2014 in einem Marktumfeld, in dem Google neue AI-Chips ank\\u00fcndigt und Nvidia dominiert, k\\u00f6nnte AMD strukturell verdr\\u00e4ngt werden. AMD hat im AI-Accelerator-Markt trotz MI300-Hype keine signifikanten Marktanteile von Nvidia gewonnen. Gleichzeitig erh\\u00f6ht Googles TPU-Expansion den Druck, da Hyperscaler zunehmend eigene Chips entwickeln, was das TAM f\\u00fcr AMD direkt reduziert.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein MC durchgef\\u00fchrt (0 Pfade). Bei einer historischen AMD-Volatilit\\u00e4t von ~55-65% annualisiert und einem Kurs von $301 nach +9.9% in 48h ist kein MC-Ergebnis nicht gleichbedeutend mit einer schlechten Signal-Qualit\\u00e4t, sondern schlicht fehlende Datenbasis. Das Fehlen des MC-Outputs reduziert die statistische Konfidenz erheblich \\u2014 wir k\\u00f6nnen keine Aussage \\u00fcber Pfad-Wahrscheinlichkeiten machen.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Nach dem initialen +9.9%-Anstieg k\\u00f6nnte der Markt die strukturelle Repositionierung von Institutionellen untersch\\u00e4tzen, die AMD als Nvidia-Hedge kaufen. Der Q2-Earnings-Katalysator k\\u00f6nnte MI300-Nachfragezahlen liefern, die \\u00fcber den Konsenserwartungen liegen, da Data-Center-Kunden zunehmend dual-source-Strategien verfolgen. Die Makrolage mit steil positiver Zinskurve (+0.52%) und moderatem Fed Funds Rate von 3.64% beg\\u00fcnstigt Risiko-Assets und speziell kapitalintensive Wachstumssektoren wie Halbleiter. Jedoch ist das kurzfristige Momentum bereits stark eingepreist, sodass die echte Asymmetrie erst nach einem m\\u00f6glichen Post-Rally-Pullback entsteht.\",\n        \"catalyst\": \"Q2 2025 Earnings mit MI300/MI350 Data-Center-Revenue-Beat und erh\\u00f6htem Guidance als prim\\u00e4rer Katalysator; sekund\\u00e4r m\\u00f6gliche Partnerschaftsank\\u00fcndigungen mit Hyperscalern als Nvidia-Alternative.\",\n        \"bear_case\": \"AMD verliert strukturell AI-Accelerator-Marktanteile an Nvidia (CUDA-\\u00d6kosystem-Lock-in) und eigene Hyperscaler-Chips (Google TPU, AWS Trainium). Bei einem Sentiment-Reversal k\\u00f6nnte der Kurs schnell 20-25% korrigieren.\",\n        \"macro_assessment\": \"Das expansive Makroumfeld (Kurve +0.52%, Fed Rate 3.64%, kein rezessiver Stress) ist grunds\\u00e4tzlich supportiv f\\u00fcr Halbleiter-Longs mit 2-6 Monaten Horizont. Niedrigere Kapitalkosten beg\\u00fcnstigen Wachstumsbewertungen, und das Risk-on-Umfeld f\\u00f6rdert institutionelle Allokation in AI-Themen. Kein struktureller Makro-Gegenwind erkennbar.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.52,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 3.5853,\n        \"annualized_roi\": null,\n        \"dte\": 15\n      },\n      \"outcome\": null,\n      \"last_price\": 445.26,\n      \"current_return\": 0.4788\n    },\n    {\n      \"ticker\": \"APA\",\n      \"entry_date\": \"2026-04-22\",\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 6.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0325,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.85\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-07-17\",\n        \"strike\": 40.0,\n        \"bid\": 3.1,\n        \"ask\": 3.2,\n        \"open_interest\": 1564,\n        \"implied_vol\": 0.5293015820312501,\n        \"spread_ratio\": 0.0313,\n        \"dte\": 85\n      },\n      \"simulation\": {\n        \"current_price\": 38.16,\n        \"target_price\": 41.22,\n        \"hit_rate\": 0.85,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0296,\n        \"alpha\": 0.00684\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"APA ist ein \\u00d6lproduzent mit hoher Abh\\u00e4ngigkeit vom Roh\\u00f6lpreis, der aktuell von geopolitischer Unsicherheit (Iran/USA-Ceasefire) getrieben wird. Dieser Katalysator ist extrem kurzlebig und bin\\u00e4r: Kommt eine Einigung vor dem 22. April zustande, kollabiert der \\u00d6lpreis-Aufschlag und APA verliert den gesamten +5,9%-Gain der letzten 48h wieder. Der Trade ist damit ein direktes Wetten auf Scheitern diplomatischer Verhandlungen.\",\n          \"argument_2\": \"Truist Securities hat APA bei 'Hold' belassen und das Kursziel nur marginal auf $39 erh\\u00f6ht \\u2014 das entspricht einem Upside von weniger als 2% vom aktuellen Kurs. Ein Analyst-Konsensus ohne Bull-Upgrade bei gleichzeitig bereits realisiertem +5,9%-Move signalisiert, dass der Markt den Iran-Risiko-Aufschlag m\\u00f6glicherweise bereits vollst\\u00e4ndig eingepreist hat. F\\u00fcr eine mittelfristige Options-Position (2-6 Monate) fehlt ein struktureller Bewertungsanker oberhalb des aktuellen Niveaus.\",\n          \"argument_3\": \"APA hat strukturelle Fundamentalprobleme: Die EPS-Abweichung zwischen yfinance ($3.83) und SEC EDGAR ($4.17) deutet auf Dateninkonsistenzen hin, und das KGV auf Basis des SEC-EPS liegt bereits bei ~9x \\u2014 g\\u00fcnstig bewertet, aber Energy-Sektor wird trotz Makro-R\\u00fcckenwind chronisch mit Discounts gehandelt. Hinzu kommt die OPEC+-\\u00dcberproduktionsgefahr sowie ein m\\u00f6gliches US-Iran-Deal-Szenario, das den \\u00d6lmarkt mit Angebotsdruck \\u00fcberfluten k\\u00f6nnte.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Der Quick MC liefert 0% Hit-Rate bei 0 Pfaden \\u2014 das bedeutet schlicht, dass kein MC berechnet wurde, nicht dass die Wahrscheinlichkeit null ist. Dies ist ein Datenproblem, keine echte statistische Aussage. F\\u00fcr APA mit historischer Energie-Sektor-Volatilit\\u00e4t (typisch 35-50% annualisiert) w\\u00e4re eine realistische 30-Tage-Treffrate f\\u00fcr einen moderaten Upside-Move von 5-10% bei ca. 40-55% zu erwarten. Die fehlenden MC-Daten erh\\u00f6hen die Unsicherheit erheblich.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"4-8 Wochen\",\n        \"asymmetry_reasoning\": \"Das Cluster-Insider-Kaufsignal (8 Insider in 14 Tagen) ist statistisch signifikant und deutet darauf hin, dass Management entweder einen \\u00d6lpreis-Anstieg antizipiert oder die Aktie auf aktuellen Niveaus fundamental attraktiv bewertet. Der Markt hat dieses Signal m\\u00f6glicherweise untergewichtet, weil es im Rauschen der Sektor-Rotation und geopolitischen Nachrichten unterging. Gleichzeitig befindet sich der Makro-Kontext mit steiler Zinskurve (+0.52%) und expansivem Regime in einem f\\u00fcr Energie-Werte historisch g\\u00fcnstigen Umfeld, was R\\u00fcckenwind f\\u00fcr realwirtschaftlich sensible Sektoren liefert. Die Iran-Ceasefire-Unsicherheit bis 22. April schafft einen bin\\u00e4ren Volatilit\\u00e4tskatalysator, der bei Eskalation APA und den Energiesektor \\u00fcberproportional beg\\u00fcnstigen w\\u00fcrde, w\\u00e4hrend das Downside durch bereits g\\u00fcnstige Bewertung (~9x EPS) begrenzt erscheint.\",\n        \"catalyst\": \"Iran-USA-Ceasefire-Deadline 22. April: Scheitern der Verhandlungen \\u2192 \\u00d6lpreis-Spike \\u2192 APA Earnings-Revision nach oben; sekund\\u00e4r: 8-Insider-Cluster-Kauf als Fr\\u00fchindikator f\\u00fcr positive Guidance\",\n        \"bear_case\": \"Diplomatische Einigung zwischen USA und Iran vor dem 22. April f\\u00fchrt zu \\u00d6lpreis-Normalisierung, der gesamte Geopolitik-Aufschlag der letzten 48h (+5,9%) wird abgebaut, Truist-Hold ohne strukturelles Kurszielupside best\\u00e4tigt begrenzte Upside-Fantasie.\",\n        \"macro_assessment\": \"Das expansive Makroumfeld mit positiver Zinskurve (+0.52%) und Fed Funds bei 3.64% ist f\\u00fcr Energie-Aktien wie APA grunds\\u00e4tzlich konstruktiv: H\\u00f6heres Wachstumsumfeld st\\u00fctzt \\u00d6l-Nachfrage, keine unmittelbare Rezessionsgefahr dr\\u00fcckt auf Industriemetalle/Energie. Die 10Y-Rendite bei 4.25% ist f\\u00fcr Real-Asset-Sektoren neutral bis leicht negativ (h\\u00f6here Diskontierungss\\u00e4tze), aber APA's niedriges KGV macht die Aktie zinssensitiv in vergleichsweise geringem Ma\\u00dfe. Insgesamt beg\\u00fcnstigt der Makro-Kontext den Bullish-Case moderat.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.52,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 0.3636,\n        \"annualized_roi\": 2.179,\n        \"dte\": 85\n      },\n      \"outcome\": null,\n      \"last_price\": 39.735,\n      \"current_return\": 0.0413\n    },\n    {\n      \"ticker\": \"AVGO\",\n      \"entry_date\": \"2026-04-22\",\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 6.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0278,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.763\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-05-08\",\n        \"strike\": 420.0,\n        \"bid\": 16.8,\n        \"ask\": 17.55,\n        \"open_interest\": 1274,\n        \"implied_vol\": 0.5000660345458985,\n        \"spread_ratio\": 0.0427,\n        \"dte\": 15\n      },\n      \"simulation\": {\n        \"current_price\": 418.56,\n        \"target_price\": 452.05,\n        \"hit_rate\": 0.839,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0287,\n        \"alpha\": 0.00431\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Der +4,9% Preisanstieg in 48 Stunden deutet darauf hin, dass der Sektor-Spillover aus dem Micron/AMD-Momentum bereits vollst\\u00e4ndig eingepreist sein k\\u00f6nnte. AVGO hat keine eigene fundamentale Nachricht geliefert, die diesen Move rechtfertigt \\u2014 es handelt sich um ein reines Sympathy-Trade-Muster. Bei Earnings-Erwartungen ohne klaren Katalysator besteht hohes IV-Crush-Risiko nach dem n\\u00e4chsten Event.\",\n          \"argument_2\": \"Die EPS-Diskrepanz zwischen yfinance (18,11) und SEC EDGAR (5,12) ist gravierend und signalisiert potenziell aggressive Non-GAAP-Adjustierungen. Ein KGV basierend auf Non-GAAP-Zahlen w\\u00e4re erheblich \\u00fcberteuert gegen\\u00fcber GAAP-Realit\\u00e4t. Bei einem Preis von $418,56 k\\u00f6nnte das tats\\u00e4chliche GAAP-Multiple weit jenseits vern\\u00fcnftiger Bewertungsniveaus liegen, was Downside-Risiken bei Sektorkorrekturen erh\\u00f6ht.\",\n          \"argument_3\": \"Googles neue AI-Chips (TPU/Axion) stellen einen direkten strukturellen Gegenwind f\\u00fcr AVGO dar, da Google zu den gr\\u00f6\\u00dften Custom-ASIC-Kunden von Broadcom geh\\u00f6rt. Wenn Google st\\u00e4rker auf eigene Chip-Entwicklung setzt, reduziert sich AVGOs Hyperscaler-Revenue-Basis langfristig. Dieser Trend zur Vertikal-Integration bei den gro\\u00dfen Cloud-Playern (Google, Meta, Amazon) bedroht das Custom-Silicon-Segment, das aktuell ein wesentlicher Wachstumstreiber ist.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Die 0% Hit-Rate ist schlicht auf fehlende Monte-Carlo-Ausf\\u00fchrung zur\\u00fcckzuf\\u00fchren, nicht auf ein negatives Signal. Ohne Datenbasis keine statistisch verl\\u00e4ssliche Aussage m\\u00f6glich. Bei historischer AVGO-Volatilit\\u00e4t (typisch 30-40% annualisiert) w\\u00e4re ein 30-Tage-Kursziel mit >65% Hit-Rate bei moderater Aufw\\u00e4rtsbewegung realistisch. Das Fehlen der MC-Daten reduziert die Konfidenz erheblich, ist aber kein direktes Warnsignal f\\u00fcr Overoptimismus.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 5,\n        \"time_to_materialization\": \"4-8 Wochen\",\n        \"asymmetry_reasoning\": \"Der Markt hat den Sektor-Spillover von Micron und AMD korrekt auf AVGO \\u00fcbertragen, jedoch m\\u00f6glicherweise das Cluster-Signal von 7 Insider-K\\u00e4ufen innerhalb von 14 Tagen untergewichtet. Insider-K\\u00e4ufe in dieser Gr\\u00f6\\u00dfenordnung kurz vor einem potenziellen Earnings-Katalysator sind statistisch signifikant und deuten auf Confidence im Management hin. Das expansive Makroumfeld mit steiler Zinskurve (+0,52%) beg\\u00fcnstigt weiter Technologie-Long-Positionen. Gleichzeitig bleibt AVGOs Positionierung im Custom-ASIC-Markt f\\u00fcr Hyperscaler strukturell intact, trotz des Google-Chip-Narrativs, da Google-Broadcom-Partnerschaft mehrj\\u00e4hrig vertraglich gebunden ist. Der aktuelle Move k\\u00f6nnte erst der Anfang einer Neubewertung des AI-Supply-Knappheits-Themas sein.\",\n        \"catalyst\": \"AVGO Earnings + Management Guidance zu Custom-ASIC-Bookings und AI-Accelerator-Revenue (n\\u00e4chste 4-6 Wochen)\",\n        \"bear_case\": \"Googles zunehmende Eigenentwicklung bei AI-Chips k\\u00f6nnte mittelfristig den gr\\u00f6\\u00dften Custom-Silicon-Kunden von AVGO reduzieren, gleichzeitig ist der aktuelle Preisanstieg m\\u00f6glicherweise bereits reine Sympathy-Momentum ohne eigenst\\u00e4ndige fundamentale Unterst\\u00fctzung.\",\n        \"macro_assessment\": \"Das makro\\u00f6konomische Umfeld ist klar bullish: Fed Funds Rate bei 3,64% mit positiver Zinskurve (+0,52% 10Y-2Y) signalisiert expansives Regime ohne unmittelbaren Rezessionsdruck. Dies beg\\u00fcnstigt Growth/Technology-Positionen auf 2-6 Monats-Horizont. Die 10Y-Rendite von 4,25% ist zwar nicht trivial f\\u00fcr Bewertungsmultiples, aber bei steiler Kurve kein dominantes Risiko. Geopolitische Entspannung (Iran-Ceasefire-Headline) reduziert kurzfristigen Risk-Off-Druck zus\\u00e4tzlich.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.52,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 5.5547,\n        \"annualized_roi\": null,\n        \"dte\": 15\n      },\n      \"outcome\": null,\n      \"last_price\": 418.33,\n      \"current_return\": -0.0005\n    },\n    {\n      \"ticker\": \"ADI\",\n      \"entry_date\": \"2026-04-22\",\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 6.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.023,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.85\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-09-18\",\n        \"strike\": 390.0,\n        \"bid\": 35.5,\n        \"ask\": 37.4,\n        \"open_interest\": 218,\n        \"implied_vol\": 0.42355923126220707,\n        \"spread_ratio\": 0.0508,\n        \"dte\": 148\n      },\n      \"simulation\": {\n        \"current_price\": 380.43,\n        \"target_price\": 410.86,\n        \"hit_rate\": 0.85,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0198,\n        \"alpha\": 0.00615\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"ADI hat nach einem starken mehrmonatigen Kursanstieg eine potenziell \\u00fcberstreckte Bewertung erreicht. Der Artikel 'Assessing Analog Devices (ADI) Valuation After A Strong Multi-Month Share Price Run' deutet darauf hin, dass der Markt bereits erhebliche Erwartungen an eine Chip-Zyklus-Beschleunigung eingepreist hat. Ein KGV auf Basis des bereinigten EPS von ~13,15 erscheint zwar moderat, doch bei $380 je Aktie und dem EPS-Gap zwischen yfinance (13,15) und SEC EDGAR (5,48) besteht erhebliche Unsicherheit \\u00fcber die tats\\u00e4chliche Earnings-Qualit\\u00e4t.\",\n          \"argument_2\": \"Die EPS-Diskrepanz zwischen yfinance ($13,15) und SEC EDGAR ($5,48) ist erheblich und nicht trivial. Ein Faktor von ~2,4x zwischen den beiden Quellen deutet auf m\\u00f6gliche non-GAAP Adjustierungen hin, die die tats\\u00e4chliche fundamentale St\\u00e4rke des Unternehmens verschleiern k\\u00f6nnten. Optionsstrategien, die auf hohen Earnings-\\u00dcberraschungen basieren, tragen das Risiko eines IV-Crush nach dem n\\u00e4chsten Earnings-Event, insbesondere wenn die non-GAAP Zahlen bereits optimistisch adjustiert sind.\",\n          \"argument_3\": \"Das Chip-Zyklus-Narrativ ist zwar plausibel, aber der Halbleitersektor (insbesondere Analog/Mixed-Signal wie ADI) reagiert typischerweise mit 3-6 Monaten Verz\\u00f6gerung auf industrielle Nachfrageimpulse. Die Insider-K\\u00e4ufe sind ein positives Signal, k\\u00f6nnten aber auch schlicht auf Aktienoptionsprogramme zur\\u00fcckzuf\\u00fchren sein. Zudem ist ADI stark im Industriesegment exponiert, das im aktuellen PMI-Umfeld (schwacher globaler Industrie-PMI) weiterhin unter Druck stehen k\\u00f6nnte, trotz steiler Zinskurve.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Der Quick MC wurde nicht durchgef\\u00fchrt (0 Pfade), daher ist die 0%-Hit-Rate kein inhaltliches Signal, sondern ein technisches Artefakt. Ohne MC-Daten kann keine statistische Validierung der Upside-Pfade erfolgen. Die fehlenden Daten erh\\u00f6hen die Modell-Unsicherheit erheblich und erfordern manuelle Einsch\\u00e4tzung: Bei ADIs historischer 30-Tage-Volatilit\\u00e4t von ~25-30% annualisiert w\\u00e4re eine realistische Hit-Rate f\\u00fcr einen moderaten Upside-Move (~5-8%) typischerweise zwischen 40-55%.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 5,\n        \"time_to_materialization\": \"4-8 Wochen\",\n        \"asymmetry_reasoning\": \"Der Markt k\\u00f6nnte die Geschwindigkeit einer Chip-Zyklus-Erholung bei ADI untersch\\u00e4tzen, da analog-/mixed-signal-Halbleiter typischerweise sp\\u00e4ter in den Zyklus einsteigen, aber dann l\\u00e4nger outperformen als digitale Pendants. Das Cluster-Signal von 7 Insider-K\\u00e4ufen innerhalb von 14 Tagen ist statistisch bedeutsam und deutet auf Insiderwissen \\u00fcber bevorstehende positive Entwicklungen hin. Der aktuelle Makrokontext (steile Kurve, expansives Regime, Fed Funds bei 3,64%) beg\\u00fcnstigt kapitalintensive Industrieunternehmen wie ADI, deren Kunden (Automotive, Industrial) bei g\\u00fcnstigeren Finanzierungskonditionen mehr investieren. Die Underreaction k\\u00f6nnte darin bestehen, dass Markteilnehmer ADI noch immer mit dem zyklischen Tief-Narrativ des Industriesegments 2023-2024 betrachten, obwohl die Destocking-Phase weitgehend abgeschlossen sein d\\u00fcrfte.\",\n        \"catalyst\": \"N\\u00e4chstes ADI Earnings-Event (Q-Bericht) mit potenziellem positiven Guidance-Update zur Chip-Zyklus-Erholung im Industriesegment und m\\u00f6gliche Erh\\u00f6hung der Jahresprognose\",\n        \"bear_case\": \"Die Bewertung nach dem starken Kursanstieg l\\u00e4sst wenig Spielraum f\\u00fcr Entt\\u00e4uschungen; die EPS-Diskrepanz zwischen GAAP und non-GAAP erh\\u00f6ht das Risiko negativer Earnings-\\u00dcberraschungen auf GAAP-Basis, und ein schwacher globaler Industrie-PMI k\\u00f6nnte das Erholungsnarrativ im Industriesegment vorerst bremsen.\",\n        \"macro_assessment\": \"Das aktuelle Makroumfeld ist klar supportiv: Eine steile Kurve (+0,52%) signalisiert expansive Bedingungen, und die Fed Funds Rate bei 3,64% deutet auf eine akkommodative Geldpolitik hin, die Investitionen in industrielle Endm\\u00e4rkte beg\\u00fcnstigt \\u2014 ADIs Kernmarkt. Dies st\\u00fctzt das bullische Signal moderat, ohne es zu einem Hoch\\u00fcberzeugungsfall zu machen.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.52,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 0.1639,\n        \"annualized_roi\": 0.7083,\n        \"dte\": 148\n      },\n      \"outcome\": null,\n      \"last_price\": 389.66,\n      \"current_return\": 0.0243\n    },\n    {\n      \"ticker\": \"AMAT\",\n      \"entry_date\": \"2026-04-22\",\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 6.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0321,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.6624\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-05-08\",\n        \"strike\": 400.0,\n        \"bid\": 20.35,\n        \"ask\": 22.6,\n        \"open_interest\": 394,\n        \"implied_vol\": 0.5696454168701173,\n        \"spread_ratio\": 0.0996,\n        \"dte\": 15\n      },\n      \"simulation\": {\n        \"current_price\": 399.21,\n        \"target_price\": 431.15,\n        \"hit_rate\": 0.7454,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0305,\n        \"alpha\": 0.00219\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Die Bewertung von AMAT erscheint bereits gestretcht ('Valuation Looks Stretched' laut Headline). Bei einem KGV, das historische Hochs reflektiert, ist das Aufw\\u00e4rtspotenzial begrenzt und das Downside-Risiko bei negativen Katalysatoren erheblich. Jede Entt\\u00e4uschung beim n\\u00e4chsten Earnings-Guidance k\\u00f6nnte zu einem signifikanten Multiple-Compression f\\u00fchren, da Wachstumserwartungen bereits eingepreist sind.\",\n          \"argument_2\": \"China-Exportrestriktionen stellen ein ernstes strukturelles Risiko dar. Microns Lobbying beim US-Kongress f\\u00fcr h\\u00e4rtere Chip-Tool-Verkaufsverbote an chinesische Wettbewerber zeigt, dass regulatorische Versch\\u00e4rfungen unmittelbar bevorstehen k\\u00f6nnten. China repr\\u00e4sentiert typischerweise 25-30% von AMATs Umsatz \\u2014 ein weiteres Exportkontrollpaket w\\u00fcrde direkt auf die Guidance dr\\u00fccken und k\\u00f6nnte das Signal vollst\\u00e4ndig zerst\\u00f6ren.\",\n          \"argument_3\": \"Die EPS-Diskrepanz zwischen yfinance (14.07) und SEC EDGAR (9.75) ist erheblich und deutet auf potenzielle Datenqualit\\u00e4tsprobleme hin. Eine solche Divergenz von ~44% zwischen den Quellen ist ungew\\u00f6hnlich und k\\u00f6nnte auf unterschiedliche Berechnungsbasen (GAAP vs. Non-GAAP) hinweisen. Anleger, die auf dem h\\u00f6heren Non-GAAP-EPS aufbauen, k\\u00f6nnten bei GAAP-basierten Bewertungsvergleichen deutlich zu optimistisch positioniert sein.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"0% Hit-Rate ist nicht aussagekr\\u00e4ftig, da kein Quick MC durchgef\\u00fchrt wurde \\u2014 die Statistik ist schlicht nicht verf\\u00fcgbar. Bei einem Semiconductor-Equipment-Titel mit typischer 30-Tage-Volatilit\\u00e4t von 25-35% annualisiert w\\u00e4re eine realistische Hit-Rate f\\u00fcr bullishe 30d-Pfade bei neutralem Signal rund 45-55%. Die fehlende MC-Statistik erh\\u00f6ht die Unsicherheit, ist aber kein direktes Warnsignal.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 7,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt d\\u00fcrfte die Kombination aus Insider-Cluster-K\\u00e4ufen (3 Insider in 14 Tagen) und der strategischen Vertiefung der Chip-Test-Links noch nicht vollst\\u00e4ndig eingepreist haben. Die Test-Integration positioniert AMAT in einem wachsenden Segment jenseits reiner Deposition/Etch-Abh\\u00e4ngigkeit, was eine strukturelle Margendiversifikation darstellt. Gleichzeitig k\\u00f6nnte der China-Gegenwind bereits \\u00fcbergewichtet sein \\u2014 wenn h\\u00e4rtere US-Exportkontrollen kommen, trifft dies alle Semiconductor-Equipment-Wettbewerber gleicherma\\u00dfen, und AMAT hat historisch schneller umgestellt. Das expansive Makro-Umfeld mit steiler Zinskurve beg\\u00fcnstigt Capex-intensive Sektoren wie Semiconductor Equipment, da g\\u00fcnstigere Finanzierungsbedingungen f\\u00fcr Chip-Fabs die Investitionsbereitschaft erh\\u00f6hen. Der n\\u00e4chste Earnings-Catalyst (Guidance) ist der kritische Moment, der bei positiver \\u00dcberraschung Momentum-K\\u00e4ufer anziehen d\\u00fcrfte.\",\n        \"catalyst\": \"AMAT Earnings Guidance (n\\u00e4chstes Quartal) \\u2014 insbesondere Aussagen zum China-Exposure, Test-Segment-Wachstum und WFE-Marktanteil\",\n        \"bear_case\": \"Eskalation der US-China Chip-Tool-Exportrestriktionen durch Congress-Legislation (Micron-Lobbying) k\\u00f6nnte direkt 25-30% des AMAT-Umsatzes gef\\u00e4hrden und zu einer erheblichen Guidance-Revision f\\u00fchren, die alle bullishen Signale \\u00fcberlagert.\",\n        \"macro_assessment\": \"Das expansive Makro-Umfeld (Zinskurve +0.52%, Fed Funds 3.64%) ist grunds\\u00e4tzlich positiv f\\u00fcr AMAT als Capex-sensitiven Technologietitel. Eine steile Kurvensignalisiert Wachstumserwartungen, die Halbleiter-Investitionszyklen beg\\u00fcnstigen. Der Gegenwind kommt nicht vom Makro, sondern von geopolitischen/regulatorischen Faktoren \\u2014 was das Signal selektiv st\\u00e4rkt, da makro\\u00f6konomisch getriebene Korrekturen derzeit weniger wahrscheinlich sind.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.52,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 2.8853,\n        \"annualized_roi\": null,\n        \"dte\": 15\n      },\n      \"outcome\": null,\n      \"last_price\": 424.05,\n      \"current_return\": 0.0622\n    },\n    {\n      \"ticker\": \"AVGO\",\n      \"entry_date\": \"2026-04-23\",\n      \"features\": {\n        \"impact\": 7,\n        \"surprise\": 6,\n        \"mismatch\": 7.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0273,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"strong\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.7832\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-05-08\",\n        \"strike\": 430.0,\n        \"bid\": 14.65,\n        \"ask\": 15.4,\n        \"open_interest\": 2361,\n        \"implied_vol\": 0.4484308087158203,\n        \"spread_ratio\": 0.0487,\n        \"dte\": 14\n      },\n      \"simulation\": {\n        \"current_price\": 428.69,\n        \"target_price\": 462.99,\n        \"hit_rate\": 0.85,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0288,\n        \"alpha\": 0.00479\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Der +6.5% Kursanstieg in 48 Stunden deutet stark darauf hin, dass der Markt die Meta-Partnerschaft bereits weitgehend eingepreist hat. Bei einem Unternehmen mit einer Marktkapitalisierung von \\u00fcber 200 Milliarden USD bewegt eine einzelne Partnerschaftsank\\u00fcndigung den Kurs so signifikant, dass das Upside f\\u00fcr Options-Trader auf 2-6 Monate erheblich reduziert ist. Wer jetzt long geht, kauft nach dem Event, nicht davor \\u2014 klassischer IV-Crush-Risk bei erh\\u00f6hter impliziter Volatilit\\u00e4t nach der Ank\\u00fcndigung.\",\n          \"argument_2\": \"Die EPS-Diskrepanz zwischen yfinance ($18.12) und SEC EDGAR ($5.15) ist massiv und beunruhigend. Eine Abweichung von \\u00fcber 250% in den zugrundeliegenden Zahlen \\u2014 obwohl als 0.8% Abweichung ausgewiesen, was methodisch fragw\\u00fcrdig erscheint \\u2014 deutet auf erhebliche Unterschiede in der Berechnung hin (m\\u00f6glicherweise GAAP vs. Non-GAAP). Dies erschwert eine fundierte Bewertung der tats\\u00e4chlichen Ertragskraft erheblich und erh\\u00f6ht das Risiko, dass die Aktie auf absoluter Bewertungsbasis bereits zu hoch bewertet ist.\",\n          \"argument_3\": \"TSMC's Kommentar zu ASML-Ausr\\u00fcstung als 'zu teuer' signalisiert potenzielle Kostendruck-Dynamiken in der gesamten Halbleiter-Lieferkette. Broadcom ist als Fabless-Unternehmen auf TSMC als Fertigungspartner angewiesen. Steigende Fertigungskosten oder Kapazit\\u00e4tsengp\\u00e4sse bei TSMC k\\u00f6nnten AVGOs Margen komprimieren und die Revenue-Realisierung aus der Meta-Partnerschaft verz\\u00f6gern oder verteuern \\u2014 ein systemisches Risiko, das die bullishe These untergr\\u00e4bt.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Der Quick MC wurde nicht durchgef\\u00fchrt (0 Pfade), was bedeutet, dass keine statistisch valide Hit-Rate vorliegt. Bei einer bereits realisierten 48h-Bewegung von +6.5% ist die historische Volatilit\\u00e4t aktuell erh\\u00f6ht. Ohne MC-Daten kann keine quantitative Wahrscheinlichkeitseinsch\\u00e4tzung f\\u00fcr weitere Aufw\\u00e4rtsbewegungen gemacht werden \\u2014 dies erh\\u00f6ht die Unsicherheit des Setups erheblich.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 7,\n        \"surprise\": 6,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 5,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Trotz des initialen +6.5%-Anstiegs untersch\\u00e4tzt der Markt typischerweise die Multijahres-Revenue-Visibilit\\u00e4t von strukturellen AI-Infrastrukturvertr\\u00e4gen. Ein Multi-Year-Deal mit Meta schafft recurring revenue streams, die sich \\u00fcber mehrere Quartale materialisieren \\u2014 die volle Umsatzwirkung wird erst in Q2-Q3 2025 in den Earnings sichtbar sein. Der Cluster-Kauf von 7 Insidern innerhalb von 14 Tagen ist ein starkes Konfidenz-Signal des Managements, das \\u00fcber die \\u00f6ffentliche Ank\\u00fcndigung hinausgeht und auf weitere positive Entwicklungen hindeutet. Das Makro-Umfeld mit steiler Zinskurve und expansivem Regime beg\\u00fcnstigt strukturelle Tech-Growth-Stories mit konkreter Earnings-Sichtbarkeit gegen\\u00fcber spekulativen AI-Namen. AVGO kombiniert Halbleiter-Hardware mit Software-Revenue aus VMware, was die Multiple-Expansion-Story nachhaltiger macht als reine Chip-Plays.\",\n        \"catalyst\": \"Q1/Q2 2025 Earnings-Calls mit erstmaliger quantitativer Offenlegung der Meta-Partnership-Volumina und AI ASIC-Revenue-Guidance\",\n        \"bear_case\": \"Der Kursanstieg von +6.5% in 48 Stunden hat bereits einen erheblichen Teil des \\u00dcberraschungseffekts eingepreist; erh\\u00f6hte IV macht Optionsk\\u00e4ufe teurer und IV-Crush nach dem n\\u00e4chsten Earnings-Event k\\u00f6nnte Long-Options-Positionen auch bei richtiger Richtung unrentabel machen.\",\n        \"macro_assessment\": \"Das expansive Makro-Umfeld mit einer steilen Zinskurve (+0.51% 10Y-2Y) und einer Fed Funds Rate von 3.64% \\u2014 deutlich unter dem 10Y Treasury-Level \\u2014 ist g\\u00fcnstig f\\u00fcr kapitalintensive AI-Infrastrukturinvestitionen und beg\\u00fcnstigt AVGO's Position als Pick-and-Shovel-Lieferant. Das Zinsumfeld reduziert den Diskontierungsdruck auf langfristige Cash Flows und st\\u00fctzt hohe Tech-Multiples strukturell.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.51,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 6.9686,\n        \"annualized_roi\": null,\n        \"dte\": 14\n      },\n      \"outcome\": null,\n      \"last_price\": 418.33,\n      \"current_return\": -0.0242\n    },\n    {\n      \"ticker\": \"BKR\",\n      \"entry_date\": \"2026-04-23\",\n      \"features\": {\n        \"impact\": 7,\n        \"surprise\": 6,\n        \"mismatch\": 7.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0224,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"strong\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.8124\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-05-15\",\n        \"strike\": 65.0,\n        \"bid\": 2.25,\n        \"ask\": 2.45,\n        \"open_interest\": 3818,\n        \"implied_vol\": 0.42407802490234375,\n        \"spread_ratio\": 0.0816,\n        \"dte\": 21\n      },\n      \"simulation\": {\n        \"current_price\": 64.33,\n        \"target_price\": 69.48,\n        \"hit_rate\": 0.85,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0206,\n        \"alpha\": 0.00508\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Der Kurs ist bereits +6,9% in 48 Stunden gestiegen, was darauf hindeutet, dass ein erheblicher Teil des Earnings-Katalysators und der geopolitischen Pr\\u00e4mie bereits eingepreist ist. Earnings-getriebene Trades nach einem solchen Pre-Run haben eine statistisch deutlich schlechtere Risk/Reward-Asymmetrie, da Market Maker die Implied Volatility bereits hochgesetzt haben d\\u00fcrften \\u2014 IV-Crush nach dem Report ist wahrscheinlich.\",\n          \"argument_2\": \"Oilfield Services sind stark zyklisch und abh\\u00e4ngig vom Capex-Willen der gro\\u00dfen \\u00d6lkonzerne. Bei einem Fed Funds Rate von 3,64% und gestiegenen Kapitalkosten k\\u00f6nnten Exploration-Budgets f\\u00fcr 2026/2027 unter Druck geraten, insbesondere wenn der \\u00d6lpreis nachgibt. Ein Iran-Konflikt kann kurzfristig \\u00d6lpreise treiben, aber Deepwater-Projekte haben Planungshorizonte von 5-10 Jahren \\u2014 der Iran-Tailwind ist kein direkter Near-Term-Umsatztreiber f\\u00fcr BKR.\",\n          \"argument_3\": \"Die EPS-Abweichung zwischen yfinance (2,84) und SEC EDGAR (2,60) ist mit ~9% nicht zu vernachl\\u00e4ssigen, auch wenn das System 0% ausweist. Dateninkonsistenzen bei Earnings-Daten erh\\u00f6hen das Risiko einer Fehlbewertung des fundamentalen Ausgangspunkts. Zudem ist ein Cluster von 7 Insider-K\\u00e4ufen zwar bullish, aber Insider kennen die Fundamentaldaten \\u2014 wenn diese bereits im Preis sind, ist das Signal schw\\u00e4cher als es erscheint.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein MC wurde durchgef\\u00fchrt (0 Pfade), daher ist die 0%-Hit-Rate nicht interpretierbar und bedeutet schlicht fehlende Datenverf\\u00fcgbarkeit. Dies erh\\u00f6ht die Unsicherheit bei der Einsch\\u00e4tzung des Pfadrisikos, da keine quantitative Validierung des Bull-Case vorliegt. Das Fehlen des MC-Outputs ist ein Datenl\\u00fccken-Risiko, kein fundamentales Warnsignal per se.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 7,\n        \"surprise\": 6,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 5,\n        \"time_to_materialization\": \"4-8 Wochen\",\n        \"asymmetry_reasoning\": \"Baker Hughes profitiert strukturell von zwei gleichzeitigen Trends: dem Iran-Konflikt als geopolitischem \\u00d6lpreis-Treiber und dem s\\u00e4kularen Wachstum im Deepwater/Unconventional-Segment. Die 7 Insider-K\\u00e4ufe innerhalb von 14 Tagen sind ein ungew\\u00f6hnlich starkes Cluster-Signal, das auf nicht-\\u00f6ffentliche Zuversicht hinsichtlich des heutigen Earnings-Reports hindeutet. Der Markt hat BKR historisch als reinen \\u00d6lpreis-Proxy bewertet und untersch\\u00e4tzt die wachsende technologiegetriebene Komponente (digitale Integration, LNG-Equipment). Das expansive Makroumfeld mit steiler Kurve (+0,51%) beg\\u00fcnstigt Capex-intensive Sektoren und senkt die Diskontrate f\\u00fcr l\\u00e4nger laufende Projektpipelines. Trotz des +6,9%-Runs besteht Upside-Potenzial, wenn Earnings heute einen Guidance-Upgrade liefern \\u2014 die strukturellen Tailwinds sind f\\u00fcr 2-6 Monate noch nicht vollst\\u00e4ndig diskontiert.\",\n        \"catalyst\": \"Earnings-Report 23. April 2026 mit potenziellem Guidance-Upgrade + 7-Insider-Cluster-Buy als Vorl\\u00e4ufer-Signal + Iran-Konflikt-\\u00d6lpreis-Pr\\u00e4mie f\\u00fcr Oilfield-Services-Nachfrage\",\n        \"bear_case\": \"Der +6,9% Pre-Earnings-Run hat den kurzfristigen Katalysator weitgehend eingepreist; IV-Crush nach dem Report k\\u00f6nnte Optionspositionen trotz korrekter Richtung belasten, und ein entt\\u00e4uschendes Guidance k\\u00f6nnte den Kurs trotz struktureller St\\u00e4rke schnell korrigieren lassen.\",\n        \"macro_assessment\": \"Das expansive Makroumfeld (Kurve +0,51%, Fed Funds 3,64%) ist konstruktiv f\\u00fcr BKR: Kapitalkosten sind moderat, \\u00d6lkonzerne haben Spielraum f\\u00fcr Exploration-Capex, und Long-Positionen werden vom Makroregime unterst\\u00fctzt. Das Zinsumfeld beg\\u00fcnstigt zyklische Werte mit Earnings-Momentum \\u2014 kein struktureller Makro-Gegenwind erkennbar.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.51,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 3.7705,\n        \"annualized_roi\": null,\n        \"dte\": 21\n      },\n      \"outcome\": null,\n      \"last_price\": 67.01,\n      \"current_return\": 0.0417\n    },\n    {\n      \"ticker\": \"BA\",\n      \"entry_date\": \"2026-04-23\",\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 6.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0256,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.6776\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-05-08\",\n        \"strike\": 235.0,\n        \"bid\": 5.5,\n        \"ask\": 5.95,\n        \"open_interest\": 566,\n        \"implied_vol\": 0.3259344750976562,\n        \"spread_ratio\": 0.0756,\n        \"dte\": 14\n      },\n      \"simulation\": {\n        \"current_price\": 234.03,\n        \"target_price\": 252.75,\n        \"hit_rate\": 0.768,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0218,\n        \"alpha\": 0.00301\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Boeing hat in den letzten 24 Monaten massive strukturelle Probleme angeh\\u00e4uft: 737 MAX Qualit\\u00e4tsm\\u00e4ngel, FAA-Produktionsbeschr\\u00e4nkungen, Streikfolgen und ein Netto-Schuldenberg von \\u00fcber $50 Mrd. Das EPS von $4.38 (yfinance) vs. $2.52 (SEC EDGAR) zeigt eine erhebliche Diskrepanz, die auf adjustierte vs. GAAP-Zahlen hindeutet \\u2014 ein klassisches Warnsignal f\\u00fcr oberfl\\u00e4chlichen Optimismus. Die Produktionsstabilisierung ist noch keine Produktionsnormalisierung, und jedes neue Qualit\\u00e4tsproblem kann erneut FAA-Eingriffe ausl\\u00f6sen.\",\n          \"argument_2\": \"Der Kurs hat bereits +6.9% in 48 Stunden zugelegt \\u2014 ein erheblicher Teil des Katalysators (Morgan Stanley PT-Erh\\u00f6hung auf $250, Iran-Tension Defense-Narrativ) ist damit m\\u00f6glicherweise bereits eingepreist. Morgan Stanley hat lediglich 'Equal-Weight' beibehalten, also KEIN Upgrade \\u2014 das ist ein verhaltenes Signal, kein starkes Buy-Signal. Das verbleibende Upside von $234 auf $250 betr\\u00e4gt nur ~6.8%, was f\\u00fcr eine 2-6-Monats-Optionsstrategie nach Pr\\u00e4mie kaum ausreicht.\",\n          \"argument_3\": \"Das geopolitische Iran-Spannungs-Narrativ ist \\u00e4u\\u00dferst fl\\u00fcchtig als Katalysator. Sollten Friedensverhandlungen Fortschritte machen (was aktuelle News-Headlines bereits andeuten: 'Iran Peace Efforts Stall'), k\\u00f6nnte der Defense-Premium schnell wieder abgebaut werden. Zudem ist Boeing ein Commercial-Aviation-Unternehmen mit nur ca. 30% Defense-Umsatzanteil \\u2014 der Hebel auf Geopolitik ist begrenzt, w\\u00e4hrend die Commercial-Seite weiterhin unter Lieferkettenstress und Ramp-up-Unsicherheit leidet.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Der Quick MC wurde nicht durchgef\\u00fchrt (0 Pfade), daher ist die 0% Hit-Rate nicht interpretierbar und liefert keinen statistischen Mehrwert. Bei BA mit historischer 30d-Volatilit\\u00e4t von ca. 30-35% annualisiert w\\u00e4re eine realistische Hit-Rate f\\u00fcr ein moderates Bullish-Target (z.B. $250 in 30 Tagen) bei ca. 35-45% zu erwarten \\u2014 der fehlende MC ist ein Datenl\\u00fccken-Risiko, kein Signal.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt preist Boeing aktuell prim\\u00e4r auf kurzfristige Momentum-Signale (Insider-Cluster-K\\u00e4ufe, Defense-Narrativ, PT-Erh\\u00f6hung), reagiert aber m\\u00f6glicherweise noch nicht vollst\\u00e4ndig auf die strukturelle Stabilisierungsthese: Sollte die FAA die 737 MAX Produktionsrate tats\\u00e4chlich von 38 auf 42-47 pro Monat freigeben, w\\u00fcrde dies einen \\u00fcberproportionalen Free-Cash-Flow-Hebel erzeugen, da die Fixkosten-Degression bei h\\u00f6heren St\\u00fcckzahlen erheblich ist. Insider-Cluster-K\\u00e4ufe (5 Personen in 14 Tagen) sind historisch ein robusteres Signal als Einzelk\\u00e4ufe, da sie Informationsasymmetrie im Management suggerieren. Das expansive Makro-Umfeld mit steiler Zinskurve beg\\u00fcnstigt kapitalintensive Industriewerte wie Boeing, da Refinanzierungsrisiken sinken und Airline-Investitionsbereitschaft steigt. Dennoch bleibt das Risk/Reward nach dem +6.9% Gap begrenzt.\",\n        \"catalyst\": \"FAA-Produktionsfreigabe f\\u00fcr 737 MAX Rate-Erh\\u00f6hung + Defense-Contract-Pipeline (Iran-Kontext) + Q2-Earnings als Best\\u00e4tigungsmoment f\\u00fcr Production Stabilization\",\n        \"bear_case\": \"Boeing ist nach +6.9% Kursanstieg in 48h kurzfristig \\u00fcberkauft, Morgan Stanley hat kein Upgrade sondern nur ein moderates PT-Anhebung ausgegeben, und strukturelle Qualit\\u00e4ts- und Schuldenrisiken bleiben real \\u2014 ein erneuter FAA-Eingriff oder Qualit\\u00e4tszwischenfall w\\u00fcrde das gesamte Stabilisierungsnarrativ sofort kollabieren lassen.\",\n        \"macro_assessment\": \"Das expansive Makro-Umfeld (Zinskurve +0.51%, Fed Funds bei 3.64%) ist grunds\\u00e4tzlich konstruktiv f\\u00fcr Boeing: Sinkende Refinanzierungskosten auf dem $50 Mrd.-Schuldenberg, steigende Airline-Capex-Bereitschaft und Risk-on-Sentiment beg\\u00fcnstigen Industrials. Das Umfeld unterst\\u00fctzt die Bullish-These, liefert aber keinen eigenst\\u00e4ndigen Katalysator \\u2014 es reduziert vielmehr das Tail-Risk auf der Makroseite.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.51,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 9.5036,\n        \"annualized_roi\": null,\n        \"dte\": 14\n      },\n      \"outcome\": null,\n      \"last_price\": 221.58,\n      \"current_return\": -0.0532\n    },\n    {\n      \"ticker\": \"AXP\",\n      \"entry_date\": \"2026-04-23\",\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 6.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0147,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.5014\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-07-17\",\n        \"strike\": 320.0,\n        \"bid\": 22.15,\n        \"ask\": 23.75,\n        \"open_interest\": 149,\n        \"implied_vol\": 0.3645083081054688,\n        \"spread_ratio\": 0.0674,\n        \"dte\": 84\n      },\n      \"simulation\": {\n        \"current_price\": 323.6,\n        \"target_price\": 349.49,\n        \"hit_rate\": 0.6308,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0176,\n        \"alpha\": 0.00163\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Der Q1-Beat und die Guidance-Best\\u00e4tigung sind bereits bekannt und eingepreist. AXP notiert nach dem Earnings-Release bei $323.60 mit einer 48h-Bewegung von -2.1%, was darauf hindeutet, dass der Markt die positiven Zahlen bereits absorbiert hat und m\\u00f6glicherweise eine 'Buy the rumor, sell the news'-Dynamik greift. Ein Katalysator, der bereits vollst\\u00e4ndig kommuniziert wurde, bietet kaum noch Asymmetrie f\\u00fcr Optionsstrategien auf 2-6 Monate.\",\n          \"argument_2\": \"Die Divergenz zwischen yfinance-EPS ($20.11) und SEC EDGAR-EPS ($15.38) ist erheblich und beunruhigend. Diese Diskrepanz von rund 31% deutet auf unterschiedliche Berechnungsbasen hin (m\\u00f6glicherweise adjusted vs. GAAP), was die fundamentale Bewertung erschwert und das Risiko birgt, dass die 'echten' Gewinne deutlich schw\\u00e4cher sind als kommuniziert. Anleger, die auf adjustierte Zahlen setzen, k\\u00f6nnten auf GAAP-Basis negativ \\u00fcberrascht werden.\",\n          \"argument_3\": \"Das makro\\u00f6konomische Umfeld birgt trotz steiler Zinskurve strukturelle Risiken f\\u00fcr AXP: Steigende Kreditausfallraten im Consumer-Bereich (auch im Premium-Segment), geopolitische Spannungen (US-Iran, Handelskonflikte) sowie ein m\\u00f6glicher R\\u00fcckgang des Luxus-Konsums bei anhaltend hohen Zinsen k\\u00f6nnten das Premium-Kartenportfolio st\\u00e4rker belasten als der CEO-Kommentar suggeriert. Die CEO-Aussage zu Gaspreisen klingt nach Investor-Relations-Spin und adressiert nicht das systemische Kreditrisikoumfeld.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Der Monte Carlo wurde nicht durchgef\\u00fchrt (0 Pfade), daher ist die 0%-Hit-Rate kein Signal, sondern ein Datenfehler. Ohne MC-Statistik kann keine quantitative Validierung der Preiszielwahrscheinlichkeit erfolgen. Bei einer historischen 30-Tage-Volatilit\\u00e4t von AXP (~25-30% annualisiert) w\\u00e4ren realistische Hit-Rates f\\u00fcr moderate Kursziele (5-10% Upside) typischerweise im Bereich 45-65%, was weder alarm- noch besorgniserregend w\\u00e4re.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 5,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt reagiert typischerweise verz\\u00f6gert auf strukturelle Signale wie Insider-Cluster-K\\u00e4ufe kombiniert mit Earnings-Beats. Vier Insider-K\\u00e4ufe innerhalb von 14 Tagen nach einem Q1-Beat signalisieren, dass informierte Akteure die aktuelle Schw\\u00e4che (-2.1%) als Kaufgelegenheit sehen, nicht als Beginn einer Abw\\u00e4rtsbewegung. Die Guidance-Best\\u00e4tigung bei Full-Year-EPS reduziert das Downside-Risiko strukturell, w\\u00e4hrend der Premium-Portfolio-Fokus (Luxusausgaben) AXP vom Massenmarkt-Kreditrisiko isoliert. Das expansive Makro-Umfeld mit steiler Zinskurve beg\\u00fcnstigt Finanzwerte, da h\\u00f6here Nettozinsmargen und ges\\u00fcndere Kreditvergabe m\\u00f6glich werden. Der Markt untersch\\u00e4tzt m\\u00f6glicherweise die Persistenz der Luxusausgaben-Resilienz und preist zu viel makro\\u00f6konomischen Gegenwind in die mittelfristige Guidance ein.\",\n        \"catalyst\": \"Q2 2026 Earnings (ca. Juli 2026) mit potenziellem Guidance-Upgrade bei anhaltend starken Luxusausgaben und stabilen Kreditausfallraten im Premium-Segment\",\n        \"bear_case\": \"Katalysator bereits vollst\\u00e4ndig eingepreist: AXP fiel trotz Earnings-Beat um 2.1%, was auf eine Ersch\\u00f6pfung der positiven \\u00dcberraschungseffekte hindeutet. Zudem bleibt die EPS-Diskrepanz zwischen adjustierten und GAAP-Zahlen ein latentes Risiko f\\u00fcr eine negative Neubewertung.\",\n        \"macro_assessment\": \"Das Makro-Umfeld ist mit einer steilen Zinskurve (+0.51%) und einer Fed Funds Rate von 3.64% strukturell unterst\\u00fctzend f\\u00fcr AXP. Finanztitel profitieren von einer normalisierten Kurve, da Kreditvergabe und Nettozinsmargen verbessert werden. Kein rezessiver Gegenwind erkennbar, der ein fundamentales Veto rechtfertigen w\\u00fcrde. Geopolitische Risiken (US-Iran) bleiben ein tail risk, sind aber f\\u00fcr AXPs Premium-Konsumentengesch\\u00e4ft nur indirekt relevant.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.51,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 0.5442,\n        \"annualized_roi\": 4.1333,\n        \"dte\": 84\n      },\n      \"outcome\": null,\n      \"last_price\": 309.78,\n      \"current_return\": -0.0427\n    },\n    {\n      \"ticker\": \"ANET\",\n      \"entry_date\": \"2026-04-23\",\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 4,\n        \"mismatch\": 6.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0341,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.7366\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-07-17\",\n        \"strike\": 185.0,\n        \"bid\": 14.85,\n        \"ask\": 15.9,\n        \"open_interest\": 538,\n        \"implied_vol\": 0.5667157586669922,\n        \"spread_ratio\": 0.066,\n        \"dte\": 84\n      },\n      \"simulation\": {\n        \"current_price\": 175.62,\n        \"target_price\": 189.67,\n        \"hit_rate\": 0.8054,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0325,\n        \"alpha\": 0.00359\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Der Google-Virgo-Tailwind ist bereits vollst\\u00e4ndig eingepreist: ANET notiert auf 52-Wochen-Hoch, die News sind breit in den Mainstream-Medien (Jim Cramer, mehrere Artikel) angekommen. Wenn selbst Jim Cramer ANET als 'pers\\u00f6nlichen Favoriten' bezeichnet, ist das typischerweise ein Kontr\\u00e4rindikator \\u2014 die Retail-Welle hat den Kurs bereits getrieben, das informierte Smart Money d\\u00fcrfte bereits positioniert sein. Der Katalysator 'Google Capex Guide' in 30-60 Tagen birgt erhebliches 'Buy the Rumor, Sell the News'-Risiko.\",\n          \"argument_2\": \"Bewertungsrisiko bei einem Netzwerk-Hardware-Unternehmen: ANET handelt auf historisch hohen Multiples in einem Segment, das zunehmend von Konkurrenz (Cisco auf 52-Woche-Hoch, Broadcom Custom-Silicon, Jniper) und Margin-Druck durch Hyperscaler-Eigenentwicklungen bedroht wird. Google selbst baut propriet\\u00e4re Netzwerk-Chips, was langfristig Aristas Marktanteil bei eben dem Kunden erodieren k\\u00f6nnte, der gerade als Treiber kommuniziert wird. Die Konzentration auf wenige Hyperscaler als Gro\\u00dfkunden erh\\u00f6ht das Klumpenrisiko massiv.\",\n          \"argument_3\": \"Die EPS-Abweichung zwischen yfinance (4.29) und SEC EDGAR (2.75) ist erheblich und deutet auf Dateninkonsistenz hin \\u2014 m\\u00f6glicherweise GAAP vs. Non-GAAP-Verwischung. Das Quick MC lieferte 0% Hit-Rate (kein Modell durchgef\\u00fchrt), was die quantitative Fundierung des Signals untergr\\u00e4bt. Insider-K\\u00e4ufe als 'Cluster-Signal' sind bei Tech-Unternehmen oft auf Aktien-Kompensationsprogramme zur\\u00fcckzuf\\u00fchren und kein zuverl\\u00e4ssiger Direktional-Indikator.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein MC wurde durchgef\\u00fchrt (0 Pfade). Damit fehlt jede quantitative Basis f\\u00fcr die Hit-Rate-Bewertung. Bei einem Titel auf 52-Wochen-Hoch mit bereits bekannten Katalysatoren w\\u00e4re eine moderate Hit-Rate von 55-65% realistisch \\u2014 aber keine Datenbasis vorhanden. Das erh\\u00f6ht die Unsicherheit der Gesamtbewertung.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"4-8 Wochen\",\n        \"asymmetry_reasoning\": \"Trotz medialer Aufmerksamkeit k\\u00f6nnte der Markt das strukturelle Ausma\\u00df des Google-Virgo-Shifts untersch\\u00e4tzen: Es geht nicht nur um einen einzelnen Capex-Zyklus, sondern um einen mehrj\\u00e4hrigen Umbau der AI-Infrastruktur, bei dem Arista als De-facto-Standard f\\u00fcr Hyperscaler-Netzwerke profitiert. Die Optionsvolatilit\\u00e4t k\\u00f6nnte die Sprungdynamik nach einem positiven Google-Earnings-Guide tats\\u00e4chlich noch nicht vollst\\u00e4ndig abgebildet haben, falls der Markt den Kursanstieg als bereits 'ausreichend' einpreist. Insider-Cluster-K\\u00e4ufe innerhalb von 14 Tagen sind \\u2014 EPS-Datenunsicherheit hin oder nicht \\u2014 ein substanzielles Signal, das auf Informationsvorsprung hindeutet. Das expansive Makroumfeld mit steiler Kurve beg\\u00fcnstigt Wachstums- und Capex-intensive Technologie-Werte strukturell. Allerdings ist das \\u00dcberraschungspotenzial begrenzt, da Virgo-News bereits Mainstream sind \\u2014 echte Asymmetrie entsteht nur bei einem quantitativ \\u00fcberraschenden Capex-Uplift im Google-Guide.\",\n        \"catalyst\": \"Google Q2 Earnings / Capex-Guidance in 30-60 Tagen: Konkreter Ausblick auf AI-Datacenter-Investitionsvolumen und explizite Erw\\u00e4hnung von Netzwerk-Infrastrukturpartnern k\\u00f6nnte ANET-Sch\\u00e4tzungen nach oben treiben.\",\n        \"bear_case\": \"Buy-the-Rumor-Sell-the-News-Dynamik: Die Google-Virgo-Story ist bereits vollst\\u00e4ndig in den Medien und im Kurs (52-Wochen-Hoch) \\u2014 ein Google-Guide, der die hohen Erwartungen nicht \\u00fcbertrifft, k\\u00f6nnte zu einem scharfen R\\u00fccksetzer f\\u00fchren, verst\\u00e4rkt durch \\u00fcberdehnte Positioning auf der Long-Seite.\",\n        \"macro_assessment\": \"Das Makro-Umfeld ist klar unterst\\u00fctzend: Steile Zinskurve (+0.51%), Fed Funds Rate bei 3.64% mit weiteren Senkungspotenzial, expansives Regime. Dies beg\\u00fcnstigt Capex-intensive Technologie-Investments der Hyperscaler und damit ANET als Infrastrukturanbieter. Kein makro\\u00f6konomischer Gegenwind erkennbar, der das fundamentale Signal \\u00fcberlagern w\\u00fcrde.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.51,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 0.317,\n        \"annualized_roi\": 1.7896,\n        \"dte\": 84\n      },\n      \"outcome\": null,\n      \"last_price\": 140.895,\n      \"current_return\": -0.1977\n    },\n    {\n      \"ticker\": \"BX\",\n      \"entry_date\": \"2026-04-23\",\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 6.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0274,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.5094\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-07-17\",\n        \"strike\": 120.0,\n        \"bid\": 10.1,\n        \"ask\": 10.45,\n        \"open_interest\": 1675,\n        \"implied_vol\": 0.4165097412109374,\n        \"spread_ratio\": 0.0335,\n        \"dte\": 84\n      },\n      \"simulation\": {\n        \"current_price\": 122.34,\n        \"target_price\": 132.13,\n        \"hit_rate\": 0.6016,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0233,\n        \"alpha\": 0.0007\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Die 48h-Preisbewegung von -5.2% signalisiert, dass der Markt trotz positiver Q1-Earnings aktiv Risiko abbaut. Das deutet darauf hin, dass entweder die Earnings-Qualit\\u00e4t (z.B. unrealisierte Bewertungsgewinne in illiquiden Portfolios) angezweifelt wird oder dass der BDC-Sektor-Gegenwind als strukturelles Problem f\\u00fcr Blackstones Fundraising-Pipeline interpretiert wird.\",\n          \"argument_2\": \"Die eklatante EPS-Abweichung zwischen yfinance (7.65) und SEC EDGAR (3.87) ist ein erhebliches Datenkvalit\\u00e4tsproblem. Wenn die relevante GAAP-EPS laut SEC nur 3.87 betr\\u00e4gt, ist das Earnings-Beat-Narrativ m\\u00f6glicherweise auf Distributable Earnings oder Non-GAAP-Metriken basiert, die bei steigenden Risikopr\\u00e4mien im alternatives-Sektor schnell kollabieren k\\u00f6nnen.\",\n          \"argument_3\": \"Der BDC-Markt-Gegenwind (Blackstone zahlt 850M$ Bond-Pr\\u00e4mie trotz Turbulenzen) deutet auf erh\\u00f6hte Refinanzierungskosten und komprimierende Spreads hin. Bei einem AUM von 1.3T$ ist die Marginalit\\u00e4t neuer Kapitalzufl\\u00fcsse sinkend, und Retail-Investoren in BX-Vehikeln (BREIT, BCRED) k\\u00f6nnten bei anhaltender Sektor-Schw\\u00e4che R\\u00fccknahmen erh\\u00f6hen.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"0% Hit-Rate bedeutet, dass kein Quick MC durchgef\\u00fchrt wurde \\u2014 keine statistische Validierung m\\u00f6glich. Dies ist ein erheblicher blinder Fleck: Bei einer 48h-Bewegung von -5.2% und dem aktuellen Momentum fehlt jede probabilistische Absch\\u00e4tzung des Aufw\\u00e4rtspotenzials. Die Abwesenheit dieser Daten erh\\u00f6ht die Unsicherheit, rechtfertigt aber keinen Trade-Ausschluss allein.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt bestraft BX wegen BDC-Sektor-Contagion, obwohl Blackstone als GP fundamental anders positioniert ist als BDCs. Das Insider-Cluster-Signal (6 K\\u00e4ufe in 14 Tagen) kombiniert mit Rekord-AUM suggeriert, dass das Sell-off \\u00fcberproportional ist. Das expansive Makroumfeld mit steiler Kurve beg\\u00fcnstigt re-pricing von Alternatives-Managern auf einem 2-3 Monats-Horizont.\",\n        \"catalyst\": \"Q2 2026 Earnings mit weiterem AUM-Wachstum und potenzieller Ank\\u00fcndigung neuer Fundraising-Vehikel \\u2014 erwartet ca. Juli 2026\",\n        \"bear_case\": \"Anhaltende Retail-R\\u00fccknahmen aus BREIT/BCRED k\\u00f6nnten Fee-Revenue belasten und das AUM-Wachstums-Narrativ untergraben, w\\u00e4hrend die Bond-Emission zu h\\u00f6heren Kosten die Marge im Kreditgesch\\u00e4ft komprimiert.\",\n        \"macro_assessment\": \"Die steile Zinskurve (+0.51%) und Fed Funds Rate von 3.64% sind strukturell positiv f\\u00fcr Alternatives-Manager: h\\u00f6here Renditeerwartungen treiben institutionelle Allokationen in Private Credit und Real Assets. Das expansive Regime st\\u00fctzt das BULLISH-Urteil, reduziert aber nicht die idiosynkratischen BDC-Sektor-Risiken.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.51,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 0.4886,\n        \"annualized_roi\": 3.4558,\n        \"dte\": 84\n      },\n      \"outcome\": null,\n      \"last_price\": 116.68,\n      \"current_return\": -0.0463\n    },\n    {\n      \"ticker\": \"DVA\",\n      \"entry_date\": \"2026-04-23\",\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 6,\n        \"mismatch\": 5.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0156,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.7608\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-07-17\",\n        \"strike\": 160.0,\n        \"bid\": 9.7,\n        \"ask\": 10.5,\n        \"open_interest\": 1505,\n        \"implied_vol\": 0.4100400793457031,\n        \"spread_ratio\": 0.0762,\n        \"dte\": 84\n      },\n      \"simulation\": {\n        \"current_price\": 155.96,\n        \"target_price\": 168.44,\n        \"hit_rate\": 0.828,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0267,\n        \"alpha\": 0.00411\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Der Xeltis-Katalysator betrifft ein Fremdunternehmen (Xeltis), nicht DaVita direkt. DVA ist prim\\u00e4r ein Dialyse-Dienstleister (Kliniken), kein Ger\\u00e4tehersteller \\u2014 ein CE-Mark f\\u00fcr ein Konkurrenzprodukt oder ein Partnerprodukt, das DVAs bestehende Infrastruktur unter Druck setzen k\\u00f6nnte, w\\u00e4re eher negativ. Der direkte kausale Link zwischen Xeltis-Zulassung und DVA-Kursanstieg ist analytisch fragw\\u00fcrdig und m\\u00f6glicherweise ein Fehler im Prescreening.\",\n          \"argument_2\": \"Der Kursanstieg von +3.9% in 48h deutet darauf hin, dass der Markt den Catalyst bereits teilweise eingepreist hat. Bei einem IV-sensitiven Optionshandel im Bereich 2-6 Monate besteht erhebliches IV-Crush-Risiko nach dem n\\u00e4chsten Earnings oder nach dem FDA-Katalysator \\u2014 der erwartete Move ist wom\\u00f6glich bereits im Preis, und Calls werden durch sinkende implizite Volatilit\\u00e4t nach dem Event wertlos.\",\n          \"argument_3\": \"Der EPS-Konflikt zwischen yfinance (16.40) und SEC EDGAR (9.51) ist signifikant, auch wenn die ausgewiesene Abweichung mit 0% falsch kalkuliert erscheint. Eine solche Diskrepanz kann auf adjustierte vs. GAAP-Zahlen hinweisen und untergr\\u00e4bt die Bewertungsgrundlage. DVA operiert zudem in einem regulatorisch stark belasteten Umfeld (CMS-Erstattungsk\\u00fcrzungen, ESRD-Politikrisiken), was mittelfristige fundamentale Upside limitiert.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein MC durchgef\\u00fchrt (0 Pfade). Eine Hit-Rate von 0% ist nicht inhaltlich aussagekr\\u00e4ftig \\u2014 es fehlen schlicht Daten. Das Signal kann weder statistisch best\\u00e4tigt noch verworfen werden. Concern ist moderat, da das Fehlen des MC-Filters keine Filterfunktion aus\\u00fcbt.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 5,\n        \"surprise\": 6,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt untersch\\u00e4tzt m\\u00f6glicherweise das Insider-Cluster-Signal (7 K\\u00e4ufe in 14 Tagen), das auf informierten Flow hindeutet. Der Xeltis CE-Mark er\\u00f6ffnet DVA als Klinikbetreiber potenziell Zugang zu \\u00fcberlegener Technologie, was Margenvorteile bringen k\\u00f6nnte. Das expansive Makroumfeld unterst\\u00fctzt Healthcare-Longs strukturell.\",\n        \"catalyst\": \"Xeltis CE-Mark f\\u00fcr aXess H\\u00e4modialyse-Konduit kombiniert mit Insider-Cluster-K\\u00e4ufen als Signal f\\u00fcr erwarteten positiven Newsflow bis Q3 2026\",\n        \"bear_case\": \"DVA ist Dienstleister, kein Ger\\u00e4tehersteller \\u2014 Xeltis-Zulassung hat keinen direkten P&L-Impact und der +3.9%-Move k\\u00f6nnte bereits den gesamten \\u00dcberraschungseffekt absorbiert haben.\",\n        \"macro_assessment\": \"Steile Zinskurve (+0.51%) und Fed Funds Rate bei 3.64% signalisieren expansives Umfeld. Healthcare-Sektor profitiert moderat von sinkenden Finanzierungskosten. Kein makro\\u00f6konomischer Gegenwind f\\u00fcr mittelfristige Long-Positionen erkennbar \\u2014 das Regime unterst\\u00fctzt den Trade.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.51,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 0.4805,\n        \"annualized_roi\": 3.3632,\n        \"dte\": 84\n      },\n      \"outcome\": null,\n      \"last_price\": 197.01,\n      \"current_return\": 0.2632\n    },\n    {\n      \"ticker\": \"T\",\n      \"entry_date\": \"2026-04-23\",\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 6.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0158,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.652\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-05-08\",\n        \"strike\": 26.0,\n        \"bid\": 0.89,\n        \"ask\": 0.98,\n        \"open_interest\": 272,\n        \"implied_vol\": 0.28125718749999995,\n        \"spread_ratio\": 0.0918,\n        \"dte\": 14\n      },\n      \"simulation\": {\n        \"current_price\": 26.68,\n        \"target_price\": 28.81,\n        \"hit_rate\": 0.7936,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0146,\n        \"alpha\": 0.00311\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"AT&T tr\\u00e4gt eine massive Schuldenlast von \\u00fcber 130 Mrd. USD, die trotz Fiber-Wachstum die freien Cashflows erheblich unter Druck setzt. In einem Umfeld mit Fed Funds Rate von 3.64% bleiben Refinanzierungskosten hoch, was strukturelle Margenpotenziale systematisch auffrisst und das Upside f\\u00fcr Aktion\\u00e4re begrenzt.\",\n          \"argument_2\": \"Scotiabank hat das Kursziel gerade erst auf $31 GESENKT \\u2013 trotz 'Sector Perform'-Rating. Dies signalisiert, dass selbst Bullen die Erwartungen nach unten korrigieren. Ein gesenktes Kursziel bei gleichzeitigem Kursanstieg von +2.8% in 48h riecht nach einem bereits eingepreisten Kurzfrist-Bounce, nicht nach nachhaltigem strukturellen Aufw\\u00e4rtstrend.\",\n          \"argument_3\": \"Das Fiber-Expansion-Narrativ ist in der Telekombranche seit Jahren bekannt und von Analysten intensiv beobachtet. Die Convergence-Strategie ist kein Geheimnis \\u2013 sie wird in jedem Earnings-Call kommuniziert. Das Risiko eines IV-Crush nach dem Q1-Earnings-Event ist erheblich: Optionspr\\u00e4mien werden vor dem Katalysator aufgebl\\u00e4ht und kollabieren danach unabh\\u00e4ngig vom Ergebnis.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein Quick MC wurde durchgef\\u00fchrt (0 Pfade), daher ist die 0%-Hit-Rate nicht aussagekr\\u00e4ftig \\u2013 sie reflektiert fehlende Simulation, nicht ein negatives Signal. Die Abwesenheit statistischer Validierung erh\\u00f6ht die Unsicherheit und sollte als mittleres Warnsignal gewertet werden.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 5,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt bewertet AT&T prim\\u00e4r als Schulden-Story und \\u00fcbersieht die operative Hebelwirkung beschleunigter Fiber-Penetration auf EBITDA-Margen ab 2H 2026. Cluster-Insider-K\\u00e4ufe von 8 Personen binnen 14 Tagen signalisieren Insider\\u00fcberzeugung, die \\u00f6ffentlich noch nicht vollst\\u00e4ndig in Konsenssch\\u00e4tzungen eingeflossen ist. Die Kombination aus expansivem Makro-Umfeld und struktureller Margin-Verbesserung schafft einen asymmetrischen Einstiegspunkt.\",\n        \"catalyst\": \"Q2 2026 Earnings mit erh\\u00f6hter 2H-Guidance durch Fiber-Subscriber-Wachstum und Convergence-Bundle-Margen \\u00fcber Konsenserwartung\",\n        \"bear_case\": \"Hohe Schuldenlast begrenzt Aktion\\u00e4rs-Upside strukturell; Scotiabank-Kurszielsenkung signalisiert ged\\u00e4mpfte Erwartungen selbst bullischer Analysten\",\n        \"macro_assessment\": \"Expansives Makro-Umfeld mit steiler Zinskurve (+0.51%) und moderatem Fed Funds Rate (3.64%) beg\\u00fcnstigt Long-Positionen in zinssensitiven High-Yield-Sektoren wie Telekom. AT&T profitiert von stabilen Finanzierungsbedingungen f\\u00fcr Fiber-CapEx und attraktiver Dividendenrendite im aktuellen Zinsumfeld.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.51,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 9.2136,\n        \"annualized_roi\": null,\n        \"dte\": 14\n      },\n      \"outcome\": null,\n      \"last_price\": 24.965,\n      \"current_return\": -0.0643\n    },\n    {\n      \"ticker\": \"EQT\",\n      \"entry_date\": \"2026-04-23\",\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 6,\n        \"mismatch\": 5.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0187,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.683\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-05-08\",\n        \"strike\": 59.0,\n        \"bid\": 1.85,\n        \"ask\": 1.99,\n        \"open_interest\": 153,\n        \"implied_vol\": 0.3667055517578125,\n        \"spread_ratio\": 0.0704,\n        \"dte\": 14\n      },\n      \"simulation\": {\n        \"current_price\": 59.36,\n        \"target_price\": 64.11,\n        \"hit_rate\": 0.7866,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0203,\n        \"alpha\": 0.00328\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Der M&A-Katalysator (NIIF/Sprng Energy) betrifft prim\\u00e4r ein indisches Infrastrukturunternehmen und EQTs Beteiligung daran ist unklar und spekulativ. Die Verbindung zwischen NIIF's Sprng-Energy-Akquisition und EQT Corp (US Erdgas) ist inhaltlich fraglich \\u2014 es k\\u00f6nnte sich um eine Verwechslung mit EQT AB (schwedische Private-Equity-Gesellschaft) handeln, was die Datenbasis des Signals fundamental besch\\u00e4digt.\",\n          \"argument_2\": \"EQT ist als US-Erdgasproduzent stark von Naturgaspreisen abh\\u00e4ngig. Nach dem +4,1% Anstieg in 48 Stunden k\\u00f6nnte ein erheblicher Teil des Katalysators bereits eingepreist sein. Zudem ist EQT bei aktuellen Gaspreisen (~$3/MMBtu) nur moderat profitabel, und ein R\\u00fcckgang der Erdgaspreise durch milde Sommer-Nachfrage oder hohe Lagerbest\\u00e4nde k\\u00f6nnte den fundamentalen R\\u00fcckenwind neutralisieren.\",\n          \"argument_3\": \"Die 6 Insider-K\\u00e4ufe innerhalb von 14 Tagen sind ein positives Signal, jedoch muss beachtet werden, dass EQT-Insider in der Vergangenheit bei volatilen Energiepreisen oft antizyklisch kauften, ohne dass kurzfristige Kursgewinne folgten. Der Cluster-Kauf k\\u00f6nnte auch auf Optionsaus\\u00fcbungen oder Compensation-Plans zur\\u00fcckgehen und w\\u00e4re damit kein echtes Conviction-Signal.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Die 0% Hit-Rate resultiert aus einem nicht durchgef\\u00fchrten Monte-Carlo-Lauf und ist daher inhaltsleer \\u2014 sie kann weder als bullish noch bearish interpretiert werden. Das Fehlen dieser Statistik erh\\u00f6ht die Unsicherheit, ist aber kein negatives Signal per se.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 5,\n        \"surprise\": 6,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt hat das Insider-Cluster-Signal und den FCF-Rekord m\\u00f6glicherweise noch nicht vollst\\u00e4ndig bewertet, da Energieaktien bei steilen Zinskurven selektiv bevorzugt werden. Die M&A-Verbindung ist spekulativ, aber Recordkassenzufl\\u00fcsse und operative Outperformance schaffen fundamentale Unterst\\u00fctzung. Sollte die NIIF-Verbindung sich als valide herausstellen, existiert ein uneingepreister Katalysator.\",\n        \"catalyst\": \"Q1 Record Free Cash Flow + 6-facher Insider-Kauf-Cluster als Conviction-Signal f\\u00fcr organisches Wachstum; potenzieller M&A-Katalysator in 60-90 Tagen\",\n        \"bear_case\": \"Verwechslungsrisiko EQT Corp vs. EQT AB beim M&A-Signal; Erdgaspreissensitivit\\u00e4t und bereits +4,1% eingepreiste Bewegung reduzieren asymmetrisches Aufw\\u00e4rtspotenzial\",\n        \"macro_assessment\": \"Expansives Makroumfeld mit steiler Zinskurve (+0,51%) und Fed Funds Rate bei 3,64% beg\\u00fcnstigt Energieproduzenten mit starkem FCF-Profil. EQT profitiert von niedrigeren Finanzierungskosten und stabiler Industrienachfrage. Kein makro\\u00f6konomischer Gegenwind erkennbar.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.51,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 8.035,\n        \"annualized_roi\": null,\n        \"dte\": 14\n      },\n      \"outcome\": null,\n      \"last_price\": 58.18,\n      \"current_return\": -0.0199\n    },\n    {\n      \"ticker\": \"AMAT\",\n      \"entry_date\": \"2026-04-24\",\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 6.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0296,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.6546\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-05-15\",\n        \"strike\": 430.0,\n        \"bid\": 21.8,\n        \"ask\": 23.35,\n        \"open_interest\": 1721,\n        \"implied_vol\": 0.6723665576171877,\n        \"spread_ratio\": 0.0664,\n        \"dte\": 20\n      },\n      \"simulation\": {\n        \"current_price\": 418.81,\n        \"target_price\": 452.31,\n        \"hit_rate\": 0.748,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0305,\n        \"alpha\": 0.00219\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Die Headline 'Chip stocks just added $3 trillion in market value \\u2014 but are the most overextended in decades' deutet auf eine bereits erhebliche \\u00dcberbewertung im Sektor hin. AMAT hat in 48h bereits +3.8% zugelegt, was bedeutet, dass ein erheblicher Teil des Katalysator-Potenzials durch Intel-Beat und Samsung-Streik bereits eingepreist ist. Ein Nachz\\u00fcgler-Einstieg nach einem so starken Sympathy-Rally erh\\u00f6ht das Risiko eines Mean-Reversion-Trades erheblich.\",\n          \"argument_2\": \"Die EPS-Diskrepanz zwischen yfinance (14.07) und SEC EDGAR (9.73) ist ein erhebliches Warnsignal zur Datenqualit\\u00e4t. Eine Differenz von ~44% zwischen den Quellen kann auf unterschiedliche Berechnungsgrundlagen (GAAP vs. Non-GAAP) hinweisen, macht aber eine fundamentale Bewertung unzuverl\\u00e4ssig. Falls die SEC-GAAP-Zahl die relevante ist, ist die Bewertung auf Basis von Non-GAAP-EPS deutlich aggressiver als es scheint.\",\n          \"argument_3\": \"Der Samsung-Streik als positiver Katalysator f\\u00fcr AMAT ist ein kurzfristiger, unsicherer Effekt: Streiks werden typischerweise beigelegt, und der resultierende Nachfrageimpuls ist tempor\\u00e4r und bereits in der Presse diskutiert. Struktureller Gegenwind durch US-Exportbeschr\\u00e4nkungen f\\u00fcr Semiconductor-Equipment nach China bleibt ein erhebliches Risiko f\\u00fcr AMAT's Umsatzbasis, das durch kurzfristige Sympathy-Moves \\u00fcberdeckt, aber nicht beseitigt wird.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Der Quick MC wurde nicht durchgef\\u00fchrt (0 Pfade), daher ist die 0% Hit-Rate nicht als Modellsignal zu interpretieren, sondern als Datenl\\u00fccke. Bei einer 48h-Bewegung von +3.8% und einer typischen 30-Tage-Volatilit\\u00e4t f\\u00fcr AMAT von ~35-40% annualisiert w\\u00e4re eine Hit-Rate von 55-65% f\\u00fcr ein bullisches Szenario realistisch. Das Fehlen der MC-Daten reduziert die statistische Konfidenz erheblich.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"4-8 Wochen\",\n        \"asymmetry_reasoning\": \"Der Markt hat den Compound-Effekt aus Intel-Beat und Samsung-Produktionsausfall auf AMAT's Auftragseingang noch nicht vollst\\u00e4ndig in eine Guidance-Revision eingepreist. Insider-Cluster-K\\u00e4ufe innerhalb von 14 Tagen signalisieren informiertes Kapital, das vor einem potenziellen Earnings-Catalyst positioniert. Die expansive Makrolage mit steiler Kurve reduziert den Diskontierungsdruck auf Wachstumswerte und st\\u00fctzt eine weitere Neubewertung.\",\n        \"catalyst\": \"AMAT-Earnings-Guidance-Revision Q2/Q3 2026 getrieben durch Intel-Kapex-Erh\\u00f6hung und Samsung-Nachholbedarf nach Streikunterbrechung\",\n        \"bear_case\": \"Sektor-\\u00dcberdehnung nach $3T Rally kombiniert mit China-Exportrestriktionen f\\u00fcr Semiconductor-Equipment k\\u00f6nnte AMAT-Umsatzwachstum strukturell deckeln und den aktuellen Kursanstieg als reine Sentiment-Rally entlarven.\",\n        \"macro_assessment\": \"Das expansive Makroumfeld mit positiver 10Y-2Y-Kurve (+0.51%) und Fed Funds Rate bei 3.64% beg\\u00fcnstigt kapitalintensive Technologiewerte wie AMAT. Die Kombination aus sinkenden Finanzierungskosten f\\u00fcr Chipfabriken und steigender AI-getriebener Nachfrage nach Semiconductor-Equipment schafft ein strukturell positives Umfeld f\\u00fcr den Trade auf dem Analysedatum 24.04.2026.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.51,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 1.996,\n        \"annualized_roi\": null,\n        \"dte\": 20\n      },\n      \"outcome\": null,\n      \"last_price\": 423.95,\n      \"current_return\": 0.0123\n    },\n    {\n      \"ticker\": \"ANET\",\n      \"entry_date\": \"2026-04-24\",\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 6.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0336,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.7564\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-05-15\",\n        \"strike\": 180.0,\n        \"bid\": 11.75,\n        \"ask\": 12.55,\n        \"open_interest\": 2562,\n        \"implied_vol\": 0.7146024633789063,\n        \"spread_ratio\": 0.0637,\n        \"dte\": 20\n      },\n      \"simulation\": {\n        \"current_price\": 179.31,\n        \"target_price\": 193.65,\n        \"hit_rate\": 0.823,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0327,\n        \"alpha\": 0.00396\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"ANET handelt auf einem erheblichen Bewertungspremium im Vergleich zu Sektor-Peers. Die 'AI-Infrastruktur-Buzz'-Schlagzeile in den News deutet darauf hin, dass der Markt den AI-Tailwind bereits aktiv diskutiert und preist \\u2014 ein klassisches Signal f\\u00fcr 'Catalyst already priced in'. Wenn Investoren bereits aktiv die Trillion-Dollar-Migration thematisieren, ist das \\u00dcberraschungspotenzial nach oben begrenzt, w\\u00e4hrend das Downside-Risiko bei Entt\\u00e4uschung asymmetrisch gro\\u00df ist.\",\n          \"argument_2\": \"Die EPS-Diskrepanz zwischen yfinance (4.31) und SEC EDGAR (2.74) ist erheblich und betr\\u00e4gt rechnerisch ~57% \\u2014 das ist keine kleine Abweichung, auch wenn das System '0.0% Abweichung' meldet, was auf einen Berechnungsfehler im System hindeutet. Eine solche Datenunsicherheit untergr\\u00e4bt die fundamentale Bewertungsgrundlage erheblich. Wenn der 'wahre' EPS n\\u00e4her an 2.74 liegt, ist das KGV deutlich h\\u00f6her als erwartet und das Bewertungsrisiko entsprechend gr\\u00f6\\u00dfer.\",\n          \"argument_3\": \"Insider-Cluster-K\\u00e4ufe sind zwar positiv, aber in einem Umfeld, wo AI-Infrastruktur-Themen medial \\u00fcberhitzt sind, kann dies auch als Marketing-Signal interpretiert werden. Zudem ist ANET stark von wenigen Hyperscaler-Kunden abh\\u00e4ngig (Meta, Microsoft, Google) \\u2014 eine Verlangsamung der CapEx-Ausgaben dieser Kunden oder eine Verschiebung zu In-House-L\\u00f6sungen w\\u00fcrde das Wachstum unmittelbar treffen und ist bei aktuell hohen Multiplikatoren besonders gef\\u00e4hrlich.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Quick MC wurde nicht durchgef\\u00fchrt (0 Pfade), daher ist die 0%-Hit-Rate ein Datenl\\u00fccken-Artefakt und nicht interpretierbar. Ohne MC-Basis kann keine statistische Unterst\\u00fctzung f\\u00fcr das Signal abgeleitet werden \\u2014 dies erh\\u00f6ht die Unsicherheit der Gesamtbewertung.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt diskutiert AI-Infrastruktur breit, untersch\\u00e4tzt aber ARISTAs spezifischen Architektur-Vorteil bei 400G/800G-Ethernet gegen\\u00fcber InfiniBand in skalierbaren Cluster-Deployments. Insider-Cluster-K\\u00e4ufe signalisieren Insider-Zuversicht vor dem n\\u00e4chsten Earnings-Zyklus, was institutionelle Repositionierung ausl\\u00f6sen kann. Das expansive Makro-Umfeld mit steiler Kurve beg\\u00fcnstigt Growth-Risikobereitschaft und reduziert den Diskontierungsdruck auf zuk\\u00fcnftige Cashflows.\",\n        \"catalyst\": \"Q2 2026 Earnings-Report mit konkreten Hyperscaler-CapEx-Commitments und potenzielle Design-Win-Ank\\u00fcndigungen f\\u00fcr AI-Fabric-Architektur bei Tier-1-Cloud-Kunden\",\n        \"bear_case\": \"Bewertungspremium ist bereits f\\u00fcr einen erheblichen Teil des AI-Netzwerk-Wachstums eingepreist; eine Verlangsamung der Hyperscaler-CapEx oder Markts\\u00e4ttigung bei Ethernet-Switching w\\u00fcrde multiple Kontraktion bei gleichzeitig fallendem EPS-Wachstum ausl\\u00f6sen.\",\n        \"macro_assessment\": \"Das expansive Makro-Umfeld mit steiler Zinskurve (+0.51%) und moderater Fed Funds Rate (3.64%) beg\\u00fcnstigt ANET als Growth-Titel: niedrigerer Diskontierungsdruck, risikofreudige Institutionelle und fortlaufende Unternehmens-CapEx-Ausgaben st\\u00fctzen das Infrastruktur-Nachfrageprofil. Kein signifikanter Makro-Gegenwind identifizierbar.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.51,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 2.1195,\n        \"annualized_roi\": null,\n        \"dte\": 20\n      },\n      \"outcome\": null,\n      \"last_price\": 140.895,\n      \"current_return\": -0.2142\n    },\n    {\n      \"ticker\": \"BX\",\n      \"entry_date\": \"2026-04-24\",\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 6.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0257,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.5166\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-05-15\",\n        \"strike\": 125.0,\n        \"bid\": 3.15,\n        \"ask\": 3.4,\n        \"open_interest\": 1133,\n        \"implied_vol\": 0.39465937377929694,\n        \"spread_ratio\": 0.0735,\n        \"dte\": 20\n      },\n      \"simulation\": {\n        \"current_price\": 122.12,\n        \"target_price\": 131.89,\n        \"hit_rate\": 0.5948,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0233,\n        \"alpha\": 0.00072\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Die -6% Preisbewegung in 48h trotz Earnings-Beat und Oppenheimer-PT-Erh\\u00f6hung signalisiert, dass der Markt das 'Discount-Narrativ' bereits kritisch bewertet. Der Artikel \\u00fcber Versicherer, die an Private-Credit-Fonds verleihen, aus denen Investoren gleichzeitig aussteigen, deutet auf systemische Liquidit\\u00e4tsspannungen im Kerngesch\\u00e4ft von Blackstone hin \\u2014 ein strukturelles Risiko, das den AUM-Wachstumstrend gef\\u00e4hrden kann.\",\n          \"argument_2\": \"Der EPS-Diskrepanz zwischen yfinance ($7.65) und SEC EDGAR ($3.90) ist erheblich und deutet auf unterschiedliche Berechnungsgrundlagen hin (m\\u00f6glicherweise Distributable Earnings vs. GAAP). Diese Unklarheit erschwert eine seri\\u00f6se Bewertung der Ertragskraft und k\\u00f6nnte bei weiterer Analyse zu einer Neubewertung der vermeintlichen Unterbewertung f\\u00fchren. Anleger, die auf falschen EPS-Daten modellieren, setzen sich einem Daten-Qualit\\u00e4tsrisiko aus.\",\n          \"argument_3\": \"Blackstone ist als Alternative Asset Manager stark abh\\u00e4ngig von Deal-Flow, Carry-Realisierungen und Kapitalzufl\\u00fcssen von institutionellen Anlegern. Bei einem Fed Funds Rate von noch immer 3.64% bleiben risikolose Renditen attraktiv, was den Druck auf Fundraising aufrechterh\\u00e4lt. Zudem sind Private-Equity-Exit-Multiples in einem noch elevated-Rate-Umfeld komprimiert, was Carry-Einnahmen auf 2-6 Monate strukturell begrenzt.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein Quick MC wurde durchgef\\u00fchrt (0 Pfade), daher ist die 0%-Hit-Rate nicht interpretierbar als Modellsignal, sondern als technischer Ausfall. Eine Bewertung der statistischen Robustheit ist damit nicht m\\u00f6glich, was die Datenkonfidenz senkt.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 5,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt hat den -6%-Selloff m\\u00f6glicherweise \\u00fcberreagiert auf kurzfristige Liquidit\\u00e4tssorgen im Private-Credit-Segment, w\\u00e4hrend die strukturelle AUM-Wachstumsstory und das AI-Infrastructure-Engagement l\\u00e4ngerfristig positiv wirken. Sechs Insider-K\\u00e4ufe im Cluster sind ein starkes Conviction-Signal, das oft Underreactions bei fundamentaler St\\u00e4rke anzeigt. Das expansive Makro-Umfeld mit steiler Kurve beg\\u00fcnstigt risikotragende Assetklassen und damit Blackstones Kerngesch\\u00e4ft.\",\n        \"catalyst\": \"Oppenheimer PT-Erh\\u00f6hung auf $156 kombiniert mit Insider-Cluster-K\\u00e4ufen nach Q1-2026-Earnings-Beat und Record-AUM-Meldung als Ausl\\u00f6ser f\\u00fcr Neubewertung der vermeintlichen Unterbewertung\",\n        \"bear_case\": \"Systemische Liquidit\\u00e4tsspannungen im Private-Credit-Markt (Versicherer verleihen an Fonds, aus denen Investoren aussteigen) k\\u00f6nnten AUM-Wachstum und Carry-Realisierungen auf 2-6 Monate strukturell belasten\",\n        \"macro_assessment\": \"Das expansive Umfeld mit +0.51% Steilheit der Kurve und Fed Funds Rate bei 3.64% ist grunds\\u00e4tzlich f\\u00f6rderlich f\\u00fcr Blackstones Gesch\\u00e4ftsmodell. Risikopr\\u00e4mien k\\u00f6nnen sich ausweiten, Dealflow sollte sich graduell erholen. Das Makro unterst\\u00fctzt die bullishe These, d\\u00e4mpft aber die \\u00dcberzeugung nicht vollst\\u00e4ndig angesichts noch immer restriktiver absoluter Zinsniveaus.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.51,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 4.9515,\n        \"annualized_roi\": null,\n        \"dte\": 20\n      },\n      \"outcome\": null,\n      \"last_price\": 116.68,\n      \"current_return\": -0.0445\n    },\n    {\n      \"ticker\": \"AMD\",\n      \"entry_date\": \"2026-04-24\",\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 6.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0375,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.7988\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-05-15\",\n        \"strike\": 350.0,\n        \"bid\": 25.4,\n        \"ask\": 26.15,\n        \"open_interest\": 6615,\n        \"implied_vol\": 0.7811301184082031,\n        \"spread_ratio\": 0.0287,\n        \"dte\": 20\n      },\n      \"simulation\": {\n        \"current_price\": 348.1,\n        \"target_price\": 375.94,\n        \"hit_rate\": 0.85,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0392,\n        \"alpha\": 0.00554\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"AMD ist bereits +14,7% in 48 Stunden gestiegen und handelt bei $348 \\u2014 der Intel-Katalysator ist weitgehend eingepreist. Ein 'CPU-Boom'-Signal von einem direkten Konkurrenten ist kein struktureller Vorteil f\\u00fcr AMD, sondern hebt lediglich die gesamte Branche an. Wer jetzt AMD-Calls kauft, zahlt explodierte Implied Volatility nach dem Spike, was den IV-Crush nach dem n\\u00e4chsten Earnings-Event zum gravierenden Risiko macht.\",\n          \"argument_2\": \"Die EPS-Diskrepanz zwischen yfinance ($11.01) und SEC EDGAR ($2.60) ist hochgradig besorgniserregend und deutet auf inkonsistente Datenbasis hin. Entweder handelt es sich um adjusted vs. GAAP-Verwirrung oder um einen Datenfehler \\u2014 beides untergr\\u00e4bt die Verl\\u00e4sslichkeit der fundamentalen Bewertungsgrundlage dieses Trades erheblich. Bei einem Kurs von $348 und einem GAAP-EPS von $2.60 ergibt sich ein KGV von ~134x, was bei jeglicher Wachstumsentt\\u00e4uschung massives Downside-Potenzial bedeutet.\",\n          \"argument_3\": \"Der Humanoid-Robot- und AI-Chip-Hype k\\u00f6nnte sich als \\u00fcberdehnter Sektor-Narrative entpuppen. ARM Holdings konkurriert direkt im CPU-Markt, und das Aufkommen von Custom Silicon (Apple, AWS, Microsoft) reduziert den adressierbaren Markt f\\u00fcr AMD langfristig strukturell. Ein Cluster-Insider-Kauf klingt positiv, aber 4 K\\u00e4ufe in 14 Tagen bei einem $100Mrd+-Unternehmen sind angesichts des Kursanstiegs m\\u00f6glicherweise bereits durch routine-basierte Kaufprogramme erkl\\u00e4rbar.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Die 0% Hit-Rate ist nicht aussagekr\\u00e4ftig, da kein Quick MC durchgef\\u00fchrt wurde. Bei einer 48h-Bewegung von +14,7% und einer damit implizit sehr hohen realisierten Volatilit\\u00e4t w\\u00e4re eine 30-Tage-Fortsetzung ohne R\\u00fccksetzer statistisch unwahrscheinlich. Das Fehlen der MC-Daten verhindert eine quantitative Validierung \\u2014 dies erh\\u00f6ht die Unsicherheit, ist aber kein direktes Veto-Signal.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 7,\n        \"time_to_materialization\": \"4-8 Wochen\",\n        \"asymmetry_reasoning\": \"Der Markt hat den Intel-Spillover-Effekt auf AMD teilweise eingepreist, aber die strukturelle Nachfrageverbesserung im CPU/GPU-Segment f\\u00fcr Rechenzentren \\u00fcber mehrere Quartale hinweg noch nicht vollst\\u00e4ndig reflektiert. Das Insider-Cluster-Signal deutet auf informierten Optimismus vor dem n\\u00e4chsten Earnings-Event hin. Die Asymmetrie liegt in kurz laufenden Optionen mit Strike leicht oberhalb des aktuellen Kurses, sofern die IV nach dem ersten Spike wieder etwas abk\\u00fchlt.\",\n        \"catalyst\": \"AMD Q2 2026 Earnings-Guidance: Best\\u00e4tigung erh\\u00f6hter CPU/GPU-Nachfrage im Rechenzentrumsbereich nach Intel-Signal \\u2014 erwartet in ~6-8 Wochen\",\n        \"bear_case\": \"IV-Crush nach Earnings bei \\u00fcberh\\u00f6htem Einstiegspreis nach +14,7% Spike; GAAP-KGV von ~134x l\\u00e4sst wenig Sicherheitsmarge bei Entt\\u00e4uschung\",\n        \"macro_assessment\": \"Das expansive Makroumfeld mit steiler Zinskurve (+0,51%) und Fed Funds Rate bei 3,64% ist grunds\\u00e4tzlich g\\u00fcnstig f\\u00fcr wachstumsstarke Tech-Werte. Long-Positionen in AMD sind makroseitig nicht kontraindiziert. Allerdings bleibt das absolute Bewertungsniveau bei GAAP-Metriken ein eigenst\\u00e4ndiges Risiko unabh\\u00e4ngig vom Zinsumfeld.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.51,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 2.2635,\n        \"annualized_roi\": null,\n        \"dte\": 20\n      },\n      \"outcome\": null,\n      \"last_price\": 444.975,\n      \"current_return\": 0.2783\n    },\n    {\n      \"ticker\": \"ALB\",\n      \"entry_date\": \"2026-04-24\",\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"mismatch\": 5.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0423,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.6756\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-12-18\",\n        \"strike\": 200.0,\n        \"bid\": 32.6,\n        \"ask\": 33.95,\n        \"open_interest\": 256,\n        \"implied_vol\": 0.6387060055541992,\n        \"spread_ratio\": 0.0398,\n        \"dte\": 237\n      },\n      \"simulation\": {\n        \"current_price\": 186.94,\n        \"target_price\": 201.9,\n        \"hit_rate\": 0.7418,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0396,\n        \"alpha\": 0.00179\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Die fundamentale EPS-Diskrepanz zwischen yfinance (+9.11) und SEC EDGAR (-5.76) ist ein erhebliches Warnsignal bez\\u00fcglich Datenqualit\\u00e4t. Ein negatives SEC-EPS deutet auf reale Verluste hin, w\\u00e4hrend der positive yfinance-Wert m\\u00f6glicherweise adjustierte/non-GAAP-Zahlen reflektiert. Diese Divergenz macht eine faire Bewertung des Unternehmens zum aktuellen Kursniveau \\u00e4u\\u00dferst schwierig.\",\n          \"argument_2\": \"Lithiumpreise befinden sich seit 2023 in einem strukturellen B\\u00e4renmarkt durch massives \\u00dcberangebot aus chinesischer Produktion und schw\\u00e4cherer EV-Nachfrage als erwartet. Der RBC Price-Target-Anstieg auf $245 (+31% zum aktuellen Kurs) k\\u00f6nnte bereits vollst\\u00e4ndig eingepreist sein, da Analysten-Upgrades bei Rohstoffaktien typischerweise nachlaufende Indikatoren sind. Ein entt\\u00e4uschendes Q1-Earnings oder schwacher Ausblick w\\u00fcrde den Trade sofort zerst\\u00f6ren.\",\n          \"argument_3\": \"Die 48h-Preisbewegung von -3.7% trotz positivem Analysten-Upgrade zeigt, dass der Markt dem bullishen Narrativ nicht folgt \\u2014 ein klares Warnsignal f\\u00fcr strukturellen Verkaufsdruck. Insider-K\\u00e4ufe in Lithium-Unternehmen sind oft Value-Traps, da Management-Insiders die Zyklusbodenfindung regelm\\u00e4\\u00dfig zu fr\\u00fch antizipieren. Ohne konkreten Lithiumpreis-Recovery-Katalysator bleibt der Gegenwind strukturell.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"0% Hit-Rate ist technisch nicht aussagekr\\u00e4ftig, da kein MC durchgef\\u00fchrt wurde \\u2014 die Abwesenheit von Daten bedeutet weder Best\\u00e4tigung noch Widerlegung. Bei einer 48h-Bewegung von -3.7% und hoher Rohstoffvolatilit\\u00e4t w\\u00e4re eine realistische 30-Tage Hit-Rate f\\u00fcr Bullish-Szenarien wahrscheinlich zwischen 35-50%, was moderate Skepsis rechtfertigt.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 7,\n        \"time_to_materialization\": \"4-8 Wochen\",\n        \"asymmetry_reasoning\": \"Der Markt unterreagiert m\\u00f6glicherweise auf das Cluster-Insider-Kaufsignal (7 K\\u00e4ufer in 14 Tagen), da der strukturelle Lithium-B\\u00e4renmarkt den Nachrichtenwert \\u00fcberlagert. Das bevorstehende Q1-Earnings bildet einen bin\\u00e4ren Katalysator mit echter Aufw\\u00e4rts-Asymmetrie falls Lithiumpreise sich stabilisiert haben. RBC-Upgrade auf $245 gibt institutionelles Deckungsfeuer f\\u00fcr Re-Rating.\",\n        \"catalyst\": \"Q1-2026 Earnings-Release ALB mit Lithiumpreis-Guidance und potenzieller Margen-Erholung\",\n        \"bear_case\": \"Strukturelles Lithium-\\u00dcberangebot aus China h\\u00e4lt Preise gedr\\u00fcckt, SEC-GAAP-EPS negativ deutet auf fundamentale Ertragsschw\\u00e4che, -3.7% Preisreaktion trotz Upgrade signalisiert Verteilungsphase.\",\n        \"macro_assessment\": \"Die steile Zinskurve (+0.51%) und Fed Funds Rate von 3.64% unterst\\u00fctzen grunds\\u00e4tzlich zyklische Rohstoffaktien in einem expansiven Regime. Allerdings ist ALB als Lithium-Pure-Play st\\u00e4rker von Commoditypreisen als vom Makrozyklus abh\\u00e4ngig, weshalb der positive Makrokontext nur bedingt das sektorspezifische \\u00dcberangebot-Problem kompensiert.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.51,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 0.0546,\n        \"annualized_roi\": 0.206,\n        \"dte\": 237\n      },\n      \"outcome\": null,\n      \"last_price\": 169.285,\n      \"current_return\": -0.0944\n    },\n    {\n      \"ticker\": \"BKR\",\n      \"entry_date\": \"2026-04-27\",\n      \"features\": {\n        \"impact\": 7,\n        \"surprise\": 6,\n        \"mismatch\": 7.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0251,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"strong\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.85\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-05-15\",\n        \"strike\": 70.0,\n        \"bid\": 1.75,\n        \"ask\": 1.9,\n        \"open_interest\": 3488,\n        \"implied_vol\": 0.3813538427734374,\n        \"spread_ratio\": 0.0789,\n        \"dte\": 17\n      },\n      \"simulation\": {\n        \"current_price\": 68.81,\n        \"target_price\": 74.32,\n        \"hit_rate\": 0.85,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0212,\n        \"alpha\": 0.00603\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Der Kurs ist bereits um +6,8% in 48 Stunden gestiegen, was stark darauf hindeutet, dass der Markt den Hormuz-Katalysator bereits eingepreist hat. Ein Einstieg nach einem solchen Move birgt erhebliches Mean-Reversion-Risiko, insbesondere wenn die geopolitische Pr\\u00e4mie sich als tempor\\u00e4r oder \\u00fcbertrieben erweist. Optionsk\\u00e4ufer zahlen nach einem solchen Spike deutlich erh\\u00f6hte Implied Volatility (IV-Crush-Risiko post-Catalyst).\",\n          \"argument_2\": \"Die Stra\\u00dfe von Hormuz als Investment-Thesis ist strukturell fragil: Geopolitische Krisen deeskalieren h\\u00e4ufig schneller als erwartet, und jede Nachricht \\u00fcber Verhandlungen oder \\u00d6ffnung der Meerenge w\\u00fcrde die geopolitische Pr\\u00e4mie sofort aufl\\u00f6sen. BKR als Oilfield-Services-Unternehmen profitiert prim\\u00e4r von Bohraktivit\\u00e4t, nicht direkt von \\u00d6lpreispr\\u00e4mien \\u2014 der direkte Transmissionsmechanismus vom Hormuz-Risiko zu BKR-Earnings ist schw\\u00e4cher als bei integrierten \\u00d6lkonzernen.\",\n          \"argument_3\": \"Der CFO-Kommentar zur Hormuz-Blockade bis H2 2026 k\\u00f6nnte als Forward Guidance-Signal missverstanden werden. Baker Hughes hat keine operative Kontrolle \\u00fcber geopolitische Entwicklungen, und wenn sich diese Aussage als \\u00fcbertrieben pessimistisch erweist oder der Markt sie als Risiko-Framing (nicht als Upside-Catalyst) interpretiert, k\\u00f6nnte die Aktie korrigieren. Zudem sind 7 Insider-K\\u00e4ufe zwar positiv, aber der absolute Dollarwert der Transaktionen ist aus den vorliegenden Daten nicht ersichtlich.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein Monte Carlo durchgef\\u00fchrt \\u2014 0% Hit-Rate ist technisch bedeutungslos und nicht als bearisches Signal zu werten. Die fehlende Statistik erh\\u00f6ht die Unsicherheit der quantitativen Absicherung erheblich. Ohne MC-Daten muss die Bewertung st\\u00e4rker auf fundamentale und qualitative Signale gest\\u00fctzt werden, was die Datenconfidence reduziert.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 7,\n        \"surprise\": 6,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 5,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt hat zwar kurzfristig reagiert, untersch\\u00e4tzt aber die strukturelle Neubewertung von BKR als Benefiziar prolongierter Middle-East-Disruption im IET-Segment. Record-IET-Orders und starke EBITDA-Entwicklung liefern fundamentale Unterst\\u00fctzung jenseits der rein geopolitischen Pr\\u00e4mie. Insider-Cluster-K\\u00e4ufe signalisieren, dass das Management die aktuelle Bewertung als attraktiv erachtet, was eine nachhaltige Underreaction impliziert.\",\n        \"catalyst\": \"CFO-Guidance zur anhaltenden Hormuz-Disruption bis H2 2026 kombiniert mit Record-IET-Orders aus Q1 2026 und 7-facher Insider-Akkumulation als strukturelles Repricing-Signal\",\n        \"bear_case\": \"Geopolitische Deeskalation am Persischen Golf w\\u00fcrde die Hormuz-Pr\\u00e4mie sofort aufl\\u00f6sen; nach +6,8% in 48h ist erhebliche IV bereits eingepreist, was Optionsstrategien verteuert und IV-Crush-Risiko bei weiterer Entspannung schafft.\",\n        \"macro_assessment\": \"Das expansive Makroumfeld mit steiler Zinskurve (+0,53%) und Fed Funds Rate von 3,64% beg\\u00fcnstigt kapitalintensive Industriesektoren wie Oilfield Services. Die 10Y-Rate von 4,25% ist moderat und dr\\u00fcckt nicht auf die Bewertung von zyklischen Wachstumswerten. Gesamtbewertung: Makro-R\\u00fcckenwind unterst\\u00fctzt die bullische These und kompensiert teilweise das Risiko der bereits erfolgten Kursbewegung.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.53,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 6.1235,\n        \"annualized_roi\": null,\n        \"dte\": 17\n      },\n      \"outcome\": null,\n      \"last_price\": 67.0,\n      \"current_return\": -0.0263\n    },\n    {\n      \"ticker\": \"CMCSA\",\n      \"entry_date\": \"2026-04-27\",\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 6.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0295,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.644\n      },\n      \"strategy\": \"LONG_PUT\",\n      \"option\": {\n        \"expiry\": \"2026-05-15\",\n        \"strike\": 28.5,\n        \"bid\": 1.19,\n        \"ask\": 1.32,\n        \"open_interest\": 138,\n        \"implied_vol\": 0.36817038085937503,\n        \"spread_ratio\": 0.0985,\n        \"dte\": 17\n      },\n      \"simulation\": {\n        \"current_price\": 27.77,\n        \"target_price\": 29.99,\n        \"hit_rate\": 0.7392,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0215,\n        \"alpha\": 0.00267\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"FCC-Regulierungsdruck ist strukturell und nicht kurzfristig l\\u00f6sbar: Die Trump-FCC verfolgt aktiv neue Wege, TV-Networks zu belasten, was Comcasts Kerngesch\\u00e4ft (NBCUniversal, Broadcast) direkt trifft. Diese regulatorische Unsicherheit kann die Bewertungsmultiples dauerhaft komprimieren und ist kein einmaliges Event.\",\n          \"argument_2\": \"Peacock verliert weiterhin massiv Geld (-432 Mio USD) und skaliert nicht profitabel. In einem Umfeld mit steigendem Streaming-Wettbewerb (Disney+, Netflix, Max) fehlt Peacock die kritische Content-Masse. Ohne klaren Weg zur Profitabilit\\u00e4t belastet der Streamingarm die Gesamtmargen nachhaltig.\",\n          \"argument_3\": \"Der -12,1% Preisr\\u00fcckgang in 48h deutet auf erheblichen fundamentalen Schock hin (vermutlich schlechte Earnings oder Guidance-Cut). Insider-K\\u00e4ufe k\\u00f6nnen ein Catching-Falling-Knife-Signal sein \\u2014 Management glaubt an die Aktie, aber der Markt preist strukturellen Verfall ein. Der EPS-Gap zwischen yfinance (3,84) und SEC EDGAR (5,10) deutet zudem auf Qualit\\u00e4tsprobleme bei den Gewinndaten hin.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Die 0% Hit-Rate ist bei einem bereits -12,1% gefallenen Titel ohne MC-Simulation nicht aussagekr\\u00e4ftig. Da kein Quick MC durchgef\\u00fchrt wurde, fehlt die statistische Basis f\\u00fcr eine Wahrscheinlichkeitsaussage. Der fehlende MC erh\\u00f6ht die Datelunsicherheit erheblich \\u2014 keine Warnung wegen \\u00dcberkalibrierung, aber Confidence sinkt.\",\n          \"concern_level\": \"high\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BEARISH\",\n        \"bear_case_severity\": 7,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt hat den -12,1%-Drop m\\u00f6glicherweise als \\u00fcberverkauft eingestuft, w\\u00e4hrend strukturelle Faktoren (FCC-Druck, Peacock-Verluste, Kabelkundenschwund) dauerhaft wirken. Insider-K\\u00e4ufe erzeugen ein bullisches Gegensignal, das kurzfristig stabilisiert, aber die fundamentalen Probleme nicht l\\u00f6st. Das Risiko liegt in einer weiteren Neubewertung der Multiples bei anhaltend schwachen Streaming-Metriken im Q2-2026-Ergebnis.\",\n        \"catalyst\": \"Q2-2026-Earnings mit Peacock-Verlustentwicklung und FCC-Regulierungsank\\u00fcndigungen bis Juli 2026\",\n        \"bear_case\": \"Struktureller Kabelkunden-Exodus kombiniert mit Peacock-Verlusten und FCC-Druck kann die FCF-Generation nachhaltig komprimieren, was weitere Multiple-Kontraktion erzwingt \\u2014 Insider-K\\u00e4ufe reichen nicht aus, um diesen Trend umzukehren.\",\n        \"macro_assessment\": \"Das expansive Makro-Umfeld (steile Kurve +0,53%, Fed Funds 3,64%) ist grunds\\u00e4tzlich positiv f\\u00fcr Leverage-intensive Unternehmen wie Comcast. Allerdings \\u00fcberlagern sektorspezifische Strukturrisiken (Regulierung, Streaming-Burn) den makro-tailwind, weshalb das bullische Makro-Signal hier nur begrenzte Unterst\\u00fctzung bietet.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.53,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 1.73,\n        \"annualized_roi\": null,\n        \"dte\": 17\n      },\n      \"outcome\": null,\n      \"last_price\": 25.125,\n      \"current_return\": -0.0952\n    },\n    {\n      \"ticker\": \"BKR\",\n      \"entry_date\": \"2026-04-28\",\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 6.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.025,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.8364\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-05-15\",\n        \"strike\": 70.0,\n        \"bid\": 1.6,\n        \"ask\": 1.75,\n        \"open_interest\": 3504,\n        \"implied_vol\": 0.3706117626953125,\n        \"spread_ratio\": 0.0857,\n        \"dte\": 16\n      },\n      \"simulation\": {\n        \"current_price\": 68.87,\n        \"target_price\": 74.38,\n        \"hit_rate\": 0.85,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0211,\n        \"alpha\": 0.00541\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Baker Hughes notiert laut News auf dem h\\u00f6chsten Stand seit 2014 \\u2014 das Signal ist m\\u00f6glicherweise bereits vollst\\u00e4ndig eingepreist. Ein Kurs auf 12-Jahres-High impliziert, dass Marktakteure die Qatar-Expansion und die ESG-Story bereits antizipiert haben; das Upside-Potenzial f\\u00fcr weitere 2-6 Monate ist entsprechend komprimiert, w\\u00e4hrend das Downside-Risiko asymmetrisch zunimmt.\",\n          \"argument_2\": \"Der Energiesektor steht 2026 unter erheblichem strukturellem Gegenwind durch beschleunigte Energiewende-Regulierung und potenzielle LNG-Preisschw\\u00e4che. Die Meldung selbst erw\\u00e4hnt 'LNG disruptions' im Qatar-Kontext \\u2014 falls die Expansion verz\\u00f6gert wird oder globale LNG-Nachfrage durch milde Winter bzw. Rezession in Europa entt\\u00e4uscht, bricht der Capex-Shift-Thesis die Grundlage weg.\",\n          \"argument_3\": \"Der EPS-Wert zwischen yfinance (2.787) und SEC EDGAR (3.13) zeigt eine nennenswerte Diskrepanz von ~12%, die bei 0% ausgewiesen wird \\u2014 das ist statistisch nicht korrekt und deutet auf Datenqualit\\u00e4tsprobleme hin. Diese Unsicherheit in den Gewinnzahlen erschwert eine zuverl\\u00e4ssige Bewertung des Fair Values erheblich.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein MC durchgef\\u00fchrt \\u2014 0 Pfade bedeuten keine statistische Absicherung. Bei einem Titel mit -0.2% 48h-Bewegung und Energy-Sektor-Volatilit\\u00e4t (typisch 25-35% annualisiert) w\\u00e4re eine Hit-Rate von 55-65% f\\u00fcr ein moderates Bullish-Szenario realistisch. Die fehlende MC-Simulation ist ein Datenl\\u00fccken-Warnsignal, das die Konfidenz reduziert.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt preist die GHG-Reduktion als PR-Event ein, nicht als strukturellen Capex-Shift-Indikator f\\u00fcr zuk\\u00fcnftige Margenverbesserung. Das Qatar-North-Field-Signal ist wegen LNG-Disruptions kurzfristig negativ gelesen worden, obwohl der langfristige Auftragsbestand steigt. Sieben Insider-K\\u00e4ufe innerhalb von 14 Tagen zeigen ungew\\u00f6hnliches Conviction-Level trotz 12-Jahres-Hoch.\",\n        \"catalyst\": \"Qatar North Field Expansion: offizielle Capex-Vergabe-Ank\\u00fcndigung und Q2 2026 Earnings mit erh\\u00f6htem Auftragseingang als konkrete Best\\u00e4tigung des Capex-Shift-Thesis\",\n        \"bear_case\": \"BKR auf 12-Jahres-Hoch \\u2014 Katalysatoren sind m\\u00f6glicherweise bereits vollst\\u00e4ndig eingepreist; jede Entt\\u00e4uschung beim LNG-Auftragsvolumen oder bei den Q2-Margen kann zu einer scharfen Korrektur f\\u00fchren.\",\n        \"macro_assessment\": \"Die steile Zinskurve (+0.57%) und Fed Funds Rate von 3.64% schaffen ein expansives Umfeld, das Capex-intensive Industriewerte wie BKR beg\\u00fcnstigt. Moderate Zinsen reduzieren den Diskontierungsdruck auf langfristige Projektcashflows. Das Makro-Regime ist konsistent mit einer BULLISH-Einsch\\u00e4tzung, allerdings d\\u00e4mpft die bereits hohe Bewertung (12-Jahres-Hoch) das erwartete Alpha.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.57,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 7.0575,\n        \"annualized_roi\": null,\n        \"dte\": 16\n      },\n      \"outcome\": null,\n      \"last_price\": 67.0,\n      \"current_return\": -0.0272\n    },\n    {\n      \"ticker\": \"AVGO\",\n      \"entry_date\": \"2026-04-28\",\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 6.0,\n        \"z_score\": 0.0,\n        \"sigma_30d\": 0.0284,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.6978\n      },\n      \"strategy\": \"LONG_PUT\",\n      \"option\": {\n        \"expiry\": \"2026-05-15\",\n        \"strike\": 390.0,\n        \"bid\": 12.6,\n        \"ask\": 12.9,\n        \"open_interest\": 3081,\n        \"implied_vol\": 0.44690494506835937,\n        \"spread_ratio\": 0.0233,\n        \"dte\": 16\n      },\n      \"simulation\": {\n        \"current_price\": 396.38,\n        \"target_price\": 428.09,\n        \"hit_rate\": 0.7818,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.029,\n        \"alpha\": 0.00313\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Das OpenAI-Stumble-Signal ist ein klassischer sektorweiter Narrative-Schock: Wenn der wichtigste AI-Endkunde schw\\u00e4chelt, leidet AVGO als Key Supplier direkt. Die 48h-Bewegung von -6.4% zeigt, dass der Markt bereits aggressiv repriced \\u2014 ein weiterer R\\u00fcckgang auf 2-6 Monate ist wahrscheinlich, wenn sich die OpenAI-Kapex-Verlangsamung konkretisiert und in AVGO-Guidance sichtbar wird.\",\n          \"argument_2\": \"Die EPS-Diskrepanz zwischen yfinance (18.12) und SEC EDGAR (5.12) ist alarmierend. Ein Faktor-3.5-Unterschied deutet entweder auf GAAP/Non-GAAP-Verw\\u00e4sserung oder Datenfehler hin. Falls der echte EPS-Wert n\\u00e4her an 5.12 liegt, ist AVGO bei $396 mit einem KGV von ~77x massiv \\u00fcberbewertet \\u2014 jeder AI-Narrative-Crack macht diese Bewertung unhaltbar.\",\n          \"argument_3\": \"Die 7 Insider-K\\u00e4ufe innerhalb 14 Tagen klingen bullish, k\\u00f6nnen aber auch strategisches Window-Dressing vor einem schw\\u00e4cheren Quartal sein. Insider kaufen oft kurz vor Earnings um Confidence zu signalisieren \\u2014 ohne Gew\\u00e4hr f\\u00fcr tats\\u00e4chliche operative St\\u00e4rke. Das Signal allein reicht nicht, um den fundamentalen Gegenwind aus dem OpenAI-\\u00d6kosystem zu kompensieren.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"0% Hit-Rate bedeutet kein MC wurde durchgef\\u00fchrt \\u2014 keine statistische Basis. Ohne MC-Daten bei einem Titel mit aktuell erh\\u00f6hter Volatilit\\u00e4t (AI-Narrative-Shock, -6.4% in 48h) ist jede Richtungsaussage auf reiner Fundamentalanalyse basierend. Die implizite Volatilit\\u00e4t d\\u00fcrfte nach dem Sell-off erh\\u00f6ht sein, was Optionsk\\u00e4ufe teurer macht und die potenzielle Asymmetrie reduziert.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BEARISH\",\n        \"bear_case_severity\": 7,\n        \"time_to_materialization\": \"4-8 Wochen\",\n        \"asymmetry_reasoning\": \"Der Markt hat den initialen Schock (-6.4%) eingepreist, aber noch nicht die fundamentale Revision des AI-Capex-Zyklus auf Quartalsbasis. Insider-K\\u00e4ufe schaffen kurzfristige Bodenbildung, die den eigentlichen Rerating-Druck verz\\u00f6gert. Erst beim n\\u00e4chsten Earnings-Call wird sichtbar, ob AVGO-Guidance die OpenAI-Verlangsamung reflektiert.\",\n        \"catalyst\": \"AVGO Earnings-Guidance Q3/2026 \\u2014 explizite Kommentare zu Custom-AI-Chip-Nachfrage und OpenAI-Kundenpipeline als Sentiment-Trigger\",\n        \"bear_case\": \"Expansives Makro-Umfeld und 7 Insider-K\\u00e4ufe k\\u00f6nnten kurzfristig Boden bilden; falls OpenAI-Bericht \\u00fcbertrieben war, schnelle V-Erholung m\\u00f6glich\",\n        \"macro_assessment\": \"Steile Zinskurve (+0.57%) und Fed Funds bei 3.64% sind grunds\\u00e4tzlich supportiv f\\u00fcr Growth/Tech. Jedoch: AVGO-spezifisches Revisionsrisiko \\u00fcberlagert das Makro-Tailwind kurz- bis mittelfristig. Das expansive Umfeld mildert den B\\u00e4r-Case, sch\\u00fctzt aber nicht vor sektorspezifischem AI-Narrative-Repricing.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.57,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 8.38,\n        \"annualized_roi\": null,\n        \"dte\": 16\n      },\n      \"outcome\": null,\n      \"last_price\": 418.28,\n      \"current_return\": 0.0553\n    },\n    {\n      \"ticker\": \"BA\",\n      \"entry_date\": \"2026-04-28\",\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"mismatch\": 2.448,\n        \"z_score\": 0.51,\n        \"sigma_30d\": 0.0236,\n        \"price_move_48h\": 0.012,\n        \"eps_drift\": 0.004,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"weak\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.5054\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-05-15\",\n        \"strike\": 235.0,\n        \"bid\": 4.5,\n        \"ask\": 4.7,\n        \"open_interest\": 10933,\n        \"implied_vol\": 0.3355779333496094,\n        \"spread_ratio\": 0.0426,\n        \"dte\": 16\n      },\n      \"simulation\": {\n        \"current_price\": 230.13,\n        \"target_price\": 248.54,\n        \"hit_rate\": 0.5904,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0217,\n        \"alpha\": 0.00092\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Boeing k\\u00e4mpft weiterhin mit massiven strukturellen Problemen: Qualit\\u00e4tsm\\u00e4ngel bei der 737 MAX-Produktion, anhaltende FAA-\\u00dcberwachung und ein noch nicht vollst\\u00e4ndig abgebauter Lieferr\\u00fcckstau. Das Airbus-Schw\\u00e4chesignal bedeutet nicht automatisch Boeing-St\\u00e4rke, da BAs eigene Lieferf\\u00e4higkeit und Produktionskapazit\\u00e4t der bindende Engpass ist \\u2013 nicht die Nachfrage. Ein Marktanteilsgewinn durch Airbus-Probleme ist kurzfristig kaum zu monetarisieren.\",\n          \"argument_2\": \"Der EPS-Wert zeigt eine besorgniserregende Diskrepanz: yfinance meldet 4.34, SEC EDGAR nur 2.53 \\u2013 obwohl die Abweichung mit 0.4% angegeben wird, ist der absolute Unterschied von ~72% ein massives rotes Flag bez\\u00fcglich Datenqualit\\u00e4t und Gewinn-Normalisation. Boeing hat in den letzten Jahren wiederholt Sonderabschreibungen, R\\u00fcckstellungen und nicht-GAAP-Adjustierungen verwendet, die die echte Ertragskraft verschleiern. Eine fundamentale Bewertung auf Basis dieser Kennzahlen ist daher hochgradig unsicher.\",\n          \"argument_3\": \"Insider-Cluster-K\\u00e4ufe bei Boeing sind historisch ein schwaches Signal, da das Management-Team bei BA wiederholt Aktien unter Druck gekauft hat, um Zuversicht zu signalisieren, w\\u00e4hrend gleichzeitig operative Probleme eskaliert sind. Der Copa-Airlines-Deal \\u00fcber 60 737 MAX Jets klingt positiv, ist aber im Kontext des Gesamtr\\u00fcckstands von \\u00fcber 5.000 Bestellungen marginal und d\\u00fcrfte keine kurzfristige Earnings-Revision ausl\\u00f6sen. Der Markt k\\u00f6nnte diesen Deal bereits vollst\\u00e4ndig einpreisen.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Quick MC wurde nicht durchgef\\u00fchrt (0 Pfade), daher ist die 0%-Hit-Rate keine echte statistische Aussage, sondern ein technisches Fehlen der Simulation. Eine Bewertung der Hit-Rate-Plausibilit\\u00e4t ist damit nicht m\\u00f6glich. Der Concern-Level steigt, weil keine quantitative Untermauerung der Richtungsthese vorliegt.\",\n          \"concern_level\": \"high\"\n        },\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 7,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt fokussiert auf Boeings eigene Produktionsprobleme und \\u00fcbersieht, dass Airbus-Lieferschw\\u00e4che die relative Pr\\u00e4ferenz institutioneller K\\u00e4ufer bei Airline-Neubestellungen verschieben k\\u00f6nnte. Der Copa-Deal und Insider-K\\u00e4ufe deuten auf wachsendes internes Vertrauen in eine operative Stabilisierung hin. Die -1.2%-Bewegung in 48h zeigt Unterreaktion auf potenziell positive Konkurrenz-Signale.\",\n        \"catalyst\": \"Q2 2026 Boeing Earnings mit m\\u00f6glicher positiver Auftragsrevision und Best\\u00e4tigung der Produktionsnormalisierung auf 38+ 737 MAX/Monat\",\n        \"bear_case\": \"Boeings eigene Lieferprobleme und FAA-Kapazit\\u00e4tsbeschr\\u00e4nkungen verhindern, dass das Unternehmen von Airbus-Schw\\u00e4che tats\\u00e4chlich profitiert \\u2013 Marktanteilsgewinne bleiben Papiergewinne ohne kurzfristige Cash-Flow-Wirkung.\",\n        \"macro_assessment\": \"Das expansive Makroumfeld mit steiler Kurve (+0.57%) und Fed Funds Rate bei 3.64% beg\\u00fcnstigt kapitalintensive Industrials grunds\\u00e4tzlich. Niedrigere Refinanzierungskosten entlasten Boeings hohe Schuldenlast (~45 Mrd. USD) und reduzieren den Druck auf das Working Capital. Das Regime unterst\\u00fctzt die BULLISH-These moderat, reicht aber nicht aus, um die unternehmensindividuellen Risiken vollst\\u00e4ndig zu kompensieren.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.57,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 8.1756,\n        \"annualized_roi\": null,\n        \"dte\": 16\n      },\n      \"outcome\": null,\n      \"last_price\": 221.58,\n      \"current_return\": -0.0372\n    },\n    {\n      \"ticker\": \"CCL\",\n      \"entry_date\": \"2026-04-28\",\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 6,\n        \"mismatch\": 4.424,\n        \"z_score\": 0.115,\n        \"sigma_30d\": 0.0391,\n        \"price_move_48h\": 0.0045,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.5546\n      },\n      \"strategy\": \"LONG_PUT\",\n      \"option\": {\n        \"expiry\": \"2026-05-15\",\n        \"strike\": 27.0,\n        \"bid\": 1.69,\n        \"ask\": 1.76,\n        \"open_interest\": 6908,\n        \"implied_vol\": 0.5625043750000001,\n        \"spread_ratio\": 0.0398,\n        \"dte\": 16\n      },\n      \"simulation\": {\n        \"current_price\": 26.29,\n        \"target_price\": 29.27,\n        \"hit_rate\": 0.574,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0339,\n        \"alpha\": 0.00068\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Der Insider-Verkauf von USD 15 Mio. ist ein klares Warnsignal: Wenn Unternehmensinsider in gr\\u00f6\\u00dferem Umfang Aktien ver\\u00e4u\\u00dfern, w\\u00e4hrend der Kurs bereits 25% gefallen ist, deutet dies auf Informationsvorsprung bez\\u00fcglich zuk\\u00fcnftiger Gesch\\u00e4ftsentwicklung hin. Gerade im konsumzyklischen Sektor, wo das diskretion\\u00e4re Ausgabenverhalten der Verbraucher stark von Konjunkturerwartungen abh\\u00e4ngt, kann ein Insider-Verkauf in dieser Gr\\u00f6\\u00dfenordnung strukturelle Probleme signalisieren, die noch nicht vollst\\u00e4ndig im Kurs reflektiert sind.\",\n          \"argument_2\": \"Der 25%-Kursr\\u00fcckgang innerhalb eines Monats legt nahe, dass entweder ein fundamentales Problem (z.B. Buchungsr\\u00fcckgang, steigende Treibstoffkosten, Kapazit\\u00e4ts\\u00fcberhang) oder ein massiver Sentiment-Wandel stattgefunden hat. In einem solchen Momentum-Umfeld ist 'Catching the Falling Knife' hochriskant: Technische Unterst\\u00fctzungsniveaus wurden m\\u00f6glicherweise gebrochen, Margin-Calls verst\\u00e4rken den Verkaufsdruck, und die Gegenbewegung von +0,5% in 48h ist statistisch insignifikant und kein verl\\u00e4ssliches Boden-Signal.\",\n          \"argument_3\": \"CCL als Consumer-Cyclical-Unternehmen tr\\u00e4gt erhebliche Treibstoffkosten-Risiken (der News-Kommentar zu 'Near-Term Fuel Risks' best\\u00e4tigt dies) sowie W\\u00e4hrungsrisiken bei einem global operierenden Gesch\\u00e4ftsmodell. Die EPS-Abweichung zwischen yfinance (2,598) und SEC EDGAR (2,27) von ca. 14% ist besorgniserregend bez\\u00fcglich Datenqualit\\u00e4t und m\\u00f6glicher Earnings-Quality-Probleme. Zudem ist der Kreuzfahrtsektor strukturell zinssensitiv wegen hoher Verschuldung \\u2014 trotz aktuellem expansivem Umfeld k\\u00f6nnte jede Verschlechterung der Kreditkonditionen CCL \\u00fcberproportional treffen.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein MC wurde durchgef\\u00fchrt (0 Pfade), daher ist die 0%-Hit-Rate uninformativ und nicht als Signal zu interpretieren. Bei einem Titel mit 25% Monatsverlust und erh\\u00f6hter impliziter Volatilit\\u00e4t w\\u00e4re ein MC-Ergebnis jedoch kritisch f\\u00fcr die Einsch\\u00e4tzung des Risk/Reward-Profils. Das Fehlen der Simulation erh\\u00f6ht die Unsicherheit erheblich.\",\n          \"concern_level\": \"high\"\n        },\n        \"impact\": 5,\n        \"surprise\": 6,\n        \"direction\": \"BEARISH\",\n        \"bear_case_severity\": 7,\n        \"time_to_materialization\": \"4-8 Wochen\",\n        \"asymmetry_reasoning\": \"Der Markt ist zwischen Bull-Run-Narrativ und Insider-Hesitancy gespalten, was eine klare Underreaction auf die negativen Signale erzeugt. Der Cluster aus Insider-Verk\\u00e4ufen und Treibstoffrisiken ist noch nicht vollst\\u00e4ndig eingepreist. Put-Optionen profitieren von erh\\u00f6hter IV nach dem 25%-R\\u00fcckgang asymmetrisch, falls weitere Katalysatoren entt\\u00e4uschen.\",\n        \"catalyst\": \"N\\u00e4chstes Earnings-Release oder Guidance-Update f\\u00fcr FY2026/FY2027, das Treibstoffkosten-Belastung und Buchungstrends konkretisiert \\u2014 erwartet Q2 2026.\",\n        \"bear_case\": \"Zwei Insider kaufen gleichzeitig Aktien (Cluster-Buy-Signal), was dem Bearish-Case direkt widerspricht und auf eine m\\u00f6gliche \\u00dcberreaktion des Marktes sowie eine Stabilisierung des Kurses auf aktuellem Niveau hindeutet.\",\n        \"macro_assessment\": \"Das expansive Makro-Umfeld (steile Kurve +0,57%, Fed Funds 3,64%) beg\\u00fcnstigt grunds\\u00e4tzlich Consumer-Cyclicals und Long-Positionen. Allerdings ist CCL-spezifisch der Bearish-Case durch Insider-Verk\\u00e4ufe und Treibstoffrisiken stark genug, um das makro-positive Umfeld zu kontern. Die Haiku-Einsch\\u00e4tzung (BEARISH via Puts) bleibt trotz Makro-R\\u00fcckenwind g\\u00fcltig, da unternehmensspezifische strukturelle Risiken dominieren.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.57,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 3.0094,\n        \"annualized_roi\": null,\n        \"dte\": 16\n      },\n      \"outcome\": null,\n      \"last_price\": 25.8251,\n      \"current_return\": -0.0177\n    },\n    {\n      \"ticker\": \"AMAT\",\n      \"entry_date\": \"2026-04-28\",\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 5.619,\n        \"z_score\": 0.076,\n        \"sigma_30d\": 0.0309,\n        \"price_move_48h\": 0.0024,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.75\n      },\n      \"strategy\": \"LONG_PUT\",\n      \"option\": {\n        \"expiry\": \"2026-05-15\",\n        \"strike\": 380.0,\n        \"bid\": 20.0,\n        \"ask\": 21.2,\n        \"open_interest\": 1624,\n        \"implied_vol\": 0.6688875885009766,\n        \"spread_ratio\": 0.0566,\n        \"dte\": 16\n      },\n      \"simulation\": {\n        \"current_price\": 384.81,\n        \"target_price\": 424.77,\n        \"hit_rate\": 0.75,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.031,\n        \"alpha\": 0.00528\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Die US-Exportbeschr\\u00e4nkungen gegen Hua Hong und andere chinesische Chipmaker treffen AMAT direkt im Kerngesch\\u00e4ft. China macht historisch 25-30% des AMAT-Umsatzes aus, und jede weitere Versch\\u00e4rfung der Restriktionen kann Auftragsbest\\u00e4nde signifikant schrumpfen lassen. Der Markt hat dieses strukturelle Risiko m\\u00f6glicherweise noch nicht vollst\\u00e4ndig eingepreist, was eine weitere Abw\\u00e4rtsbewegung trotz positivem Makro wahrscheinlich macht.\",\n          \"argument_2\": \"Der breite Semiconductor Sell-Off, der den S&P 500 und Nasdaq belastet, deutet auf sektorweiten Gegenwind hin. AMAT als Capital-Equipment-Anbieter ist doppelt exponiert: erstens \\u00fcber das China-Risiko, zweitens \\u00fcber die Investitionszyklen der Chipmaker, die bei unsicherem Nachfrageausblick ihre CapEx-Budgets k\\u00fcrzen k\\u00f6nnten. Insider-K\\u00e4ufe reichen erfahrungsgem\\u00e4\\u00df nicht aus, um sektorweiten Abverkauf aufzufangen.\",\n          \"argument_3\": \"Die EPS-Diskrepanz zwischen yfinance (14.07) und SEC EDGAR (9.76) ist erheblich und deutet auf m\\u00f6gliche Normalisierungseffekte oder Non-GAAP-Anpassungen hin, die die fundamentale Bewertung verzerren. Bei einem Kurs von $384.81 liegt das KGV je nach Datenbasis zwischen ca. 27 und 39 \\u2014 bei regulatorischem Gegenwind und einem m\\u00f6glichen CapEx-Zyklus-R\\u00fcckgang ist die Aktie keinesfalls g\\u00fcnstig bewertet.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein Monte Carlo wurde durchgef\\u00fchrt (0 Pfade), daher ist die 0%-Hit-Rate nicht interpretierbar und liefert keinerlei statistische Basis f\\u00fcr die Entscheidung. Die fehlende Simulation erh\\u00f6ht die Modell-Unsicherheit erheblich und erfordert h\\u00f6here Vorsicht bei der Richtungsbewertung.\",\n          \"concern_level\": \"high\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BEARISH\",\n        \"bear_case_severity\": 7,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt fokussiert kurzfristig auf Insider-K\\u00e4ufe und den bullishen B.-Riley-Kommentar, untersch\\u00e4tzt aber das strukturelle China-Exportrisiko, das in 2-3 Monaten in Auftragsr\\u00fcckg\\u00e4ngen sichtbar wird. Die Haiku-Einsch\\u00e4tzung bewertet das Signal als katalytisch-neutral, doch die Richtung ist BEARISH, weil Exportbeschr\\u00e4nkungen Umsatzbeitr\\u00e4ge dauerhaft kappen. Sektorweiter Sell-Off und regulatorische Eskalation \\u00fcberlagern das expansive Makroumfeld f\\u00fcr equipment-lastige Semis.\",\n        \"catalyst\": \"Weitere US-Exportbeschr\\u00e4nkungen gegen chinesische Chipmaker (Hua Hong) mit direktem Auftragsr\\u00fcckgang bei AMAT im n\\u00e4chsten Earnings-Zyklus (Q2/Q3 2026)\",\n        \"bear_case\": \"China-Exposure von ca. 25-30% des Umsatzes trifft auf eskalierende Exportkontrollen, w\\u00e4hrend sektorweiter CapEx-Pessimismus den Orderbuchaufbau hemmt und die Bewertung auf GAAP-Basis mit KGV ~39 wenig Sicherheitsmarge bietet.\",\n        \"macro_assessment\": \"Das expansive Makroumfeld (steile Kurve, Fed Funds bei 3.64%) ist grunds\\u00e4tzlich positiv f\\u00fcr Long-Positionen, federt aber das spezifische regulatorische Risiko f\\u00fcr AMAT nicht ab. Geopolitisch getriebene Umsatzausf\\u00e4lle sind makro-unabh\\u00e4ngig und dominieren den mittelfristigen Ausblick f\\u00fcr China-exponierte Halbleiterausr\\u00fcster.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.57,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 5.18,\n        \"annualized_roi\": null,\n        \"dte\": 16\n      },\n      \"outcome\": null,\n      \"last_price\": 423.95,\n      \"current_return\": 0.1017\n    },\n    {\n      \"ticker\": \"BKR\",\n      \"entry_date\": \"2026-04-29\",\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 2.339,\n        \"z_score\": 0.732,\n        \"sigma_30d\": 0.0252,\n        \"price_move_48h\": 0.0184,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"weak\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.6906\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-05-15\",\n        \"strike\": 70.0,\n        \"bid\": 1.6,\n        \"ask\": 1.65,\n        \"open_interest\": 3344,\n        \"implied_vol\": 0.35986968261718744,\n        \"spread_ratio\": 0.0303,\n        \"dte\": 15\n      },\n      \"simulation\": {\n        \"current_price\": 68.81,\n        \"target_price\": 74.31,\n        \"hit_rate\": 0.75,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0211,\n        \"alpha\": 0.0037\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Der Energiesektor steht unter erheblichem Gegenwind durch volatile \\u00d6lpreise und geopolitische Unsicherheiten im Nahen Osten. BKR selbst berichtet von Disruptions in Middle East Operations im Q1 2026, was darauf hindeutet, dass ein strukturell wichtiger Markt bereits unter Druck steht. Ein weiterer R\\u00fcckgang der Energiepreise k\\u00f6nnte Capex-Budgets gro\\u00dfer \\u00d6lproduzenten belasten und BKRs Auftragseingang in H2 2026 empfindlich treffen.\",\n          \"argument_2\": \"Das Jefferies-Kursziel von $80 liegt bei einem aktuellen Preis von $68.81 und damit bereits rund 16% im Upside \\u2014 was bedeutet, dass ein Gro\\u00dfteil der positiven Neubewertung durch die PT-Erh\\u00f6hung und den Q1-Beat m\\u00f6glicherweise bereits eingepreist ist. Die 48h-Preisbewegung von -1.8% trotz positiver Nachrichten (Inauguration, PT-Erh\\u00f6hung, Q1-Beat) signalisiert, dass der Markt diese Katalysatoren bereits absorbiert hat und kein weiterer Impuls unmittelbar bevorsteht. Dies ist ein klassisches 'Buy the News, Sell the Fact'-Muster.\",\n          \"argument_3\": \"Die EPS-Abweichung zwischen yfinance ($2.79) und SEC EDGAR ($3.13) betr\\u00e4gt zwar laut Angabe 0%, arithmetisch jedoch ca. 12.3% \\u2014 ein erheblicher Unterschied, der Zweifel an der Datenqualit\\u00e4t weckt. Wenn die h\\u00f6here SEC-Zahl adjustierte Einmaleffekte enth\\u00e4lt (z.B. Ver\\u00e4u\\u00dferungsgewinne, Restrukturierungseffekte), k\\u00f6nnte das operative EPS-Bild weniger rosig sein als dargestellt. Investoren k\\u00f6nnten diesen Unterschied im n\\u00e4chsten Quartal als Entt\\u00e4uschung wahrnehmen.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein Quick MC wurde durchgef\\u00fchrt, daher ist 0% schlicht ein technisches Artefakt und keine inhaltliche Aussage. Die fehlende Simulation schr\\u00e4nkt die quantitative Absicherung der Thesis ein. Angesichts historischer Volatilit\\u00e4t im Energiesektor (~25-35% annualisiert f\\u00fcr OFS-Titel) w\\u00e4re eine 30d-Hit-Rate von 55-65% realistisch \\u2014 das fehlende Modell ist kein positives oder negatives Signal, aber eine Datenl\\u00fccke.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 5,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt reagierte trotz drei simultaner positiver Katalysatoren mit -1.8%, was auf initiale \\u00dcberreaktion auf Makro-Energiesorgen hindeutet. Der Cluster aus 7 Insider-K\\u00e4ufen in 14 Tagen ist ein seltenes Signal mit hoher Glaubw\\u00fcrdigkeit, da Insider selten koordiniert ohne Information kaufen. Das neue Subsea-Facility st\\u00e4rkt BKRs Wettbewerbsposition im North Sea strukturell \\u00fcber mehrere Jahre.\",\n        \"catalyst\": \"Jefferies PT-Erh\\u00f6hung auf $80 kombiniert mit 7-Insider-Kaufcluster und Subsea-Facility-Inauguration als struktureller Wachstumstreiber f\\u00fcr North Sea Backlog 2026-2027\",\n        \"bear_case\": \"\\u00d6lpreisr\\u00fcckgang unter $65/Barrel k\\u00f6nnte Capex-K\\u00fcrzungen bei europ\\u00e4ischen und nahost-Kunden ausl\\u00f6sen und den Q2/Q3 2026 Auftragseingang substanziell unter Konsenserwartungen dr\\u00fccken.\",\n        \"macro_assessment\": \"Das expansive Makroumfeld mit steiler Zinskurve (+0.52%) und Fed Funds bei 3.64% beg\\u00fcnstigt kapitalintensive Industrietitel wie BKR. Energieunternehmen profitieren von stabilen Finanzierungskosten f\\u00fcr Gro\\u00dfprojekte. Der Makrokontext unterst\\u00fctzt die Bullish-These, gibt jedoch keine Absicherung gegen sektorspezifischen \\u00d6lpreisrisiken.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.52,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 8.5613,\n        \"annualized_roi\": null,\n        \"dte\": 15\n      },\n      \"outcome\": null,\n      \"last_price\": 67.0,\n      \"current_return\": -0.0263\n    },\n    {\n      \"ticker\": \"APD\",\n      \"entry_date\": \"2026-04-29\",\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 3.923,\n        \"z_score\": 0.415,\n        \"sigma_30d\": 0.0127,\n        \"price_move_48h\": 0.0053,\n        \"eps_drift\": 0.0137,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.588\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-09-18\",\n        \"strike\": 320.0,\n        \"bid\": 14.9,\n        \"ask\": 16.5,\n        \"open_interest\": 193,\n        \"implied_vol\": 0.3064644549560547,\n        \"spread_ratio\": 0.097,\n        \"dte\": 141\n      },\n      \"simulation\": {\n        \"current_price\": 303.87,\n        \"target_price\": 328.18,\n        \"hit_rate\": 0.6838,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0184,\n        \"alpha\": 0.00244\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Die EPS-Divergenz zwischen yfinance (14.13) und SEC EDGAR (-1.48) ist ein gravierendes Datenproblem. Ein negatives SEC-EPS w\\u00fcrde auf erhebliche Sonderbelastungen oder Restrukturierungskosten hindeuten und macht fundamentale Bewertungsaussagen unzuverl\\u00e4ssig. Bei KGV-Analysen k\\u00f6nnte APD bei echter Verlustlage massiv \\u00fcberbewertet sein.\",\n          \"argument_2\": \"Der Samsung-Fab-Vertrag in S\\u00fcdkorea ist bereits via offizielle Pressemitteilung und News-Coverage publiziert worden \\u2014 der positive Katalysator ist damit \\u00f6ffentlich bekannt und d\\u00fcrfte bereits eingepreist sein. Industrial-Gas-Vertr\\u00e4ge sind zudem langfristig strukturell, generieren aber kurzfristig kaum Kurs-Momentum, da der Revenue-Impact erst \\u00fcber Jahre sichtbar wird. Mittelfristige Optionsstrategien (2-6 Monate) profitieren nur bedingt.\",\n          \"argument_3\": \"APD operiert im Basic Materials / Industrial Gases Sektor, der stark von Energiepreisen, Rohstoffkosten und globaler Industrienachfrage abh\\u00e4ngt. Bei einer m\\u00f6glichen Verlangsamung der Halbleiter-Kapitalausgaben (CAPEX-Zyklen bei Samsung k\\u00f6nnen verschoben werden) sowie geopolitischen Risiken auf der koreanischen Halbinsel k\\u00f6nnte der Vertragswert und die Liefersicherheit in Frage gestellt werden. Die +0.5% 48h-Bewegung suggeriert bereits eine ged\\u00e4mpfte Marktreaktion.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein MC durchgef\\u00fchrt \\u2014 0% Hit-Rate ist nicht interpretierbar als Signal, sondern als Datenl\\u00fccke. Ohne Monte-Carlo-Basis ist eine statistische Absicherung der Kurszielprognose nicht m\\u00f6glich. Das erh\\u00f6ht die Unsicherheit, disqualifiziert den Trade aber nicht automatisch.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 5,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt reagiert ged\\u00e4mpft, weil Industrial-Gas-Vertr\\u00e4ge als langweilig und langsam geltend eingestuft werden, obwohl sie stabile Cashflows sichern. Der 8-fache Insider-Cluster-Kauf innerhalb von 14 Tagen ist ein starkes, aber von Retail oft ignoriertes strukturelles Signal. Das expansive Makro-Umfeld mit steiler Zinskurve beg\\u00fcnstigt Capital-Intensive-Industrials zus\\u00e4tzlich.\",\n        \"catalyst\": \"Offizieller Vertragsabschluss und Revenue-Guidance-Anhebung im n\\u00e4chsten Earnings-Call (Q2 2026) aufgrund des Samsung-Fab-Deals und weiterer Semiconductor-Gas-Vertr\\u00e4ge\",\n        \"bear_case\": \"EPS-Diskrepanz zwischen Datenbankquellen deutet auf m\\u00f6gliche Bilanzrisiken hin; falls das SEC-EPS von -1.48 die reale operative Lage widerspiegelt, ist APD bei $303.87 fundamental erheblich \\u00fcberbewertet und jede Kursrally w\\u00e4re auf d\\u00fcnnem Fundament gebaut.\",\n        \"macro_assessment\": \"Das expansive Makro-Umfeld mit steiler Zinskurve (+0.52%) und moderatem Fed Funds Rate (3.64%) beg\\u00fcnstigt kapitalintensive Industrials wie APD. Long-Positionen in Basic Materials sind in diesem Regime historisch solide unterst\\u00fctzt, da Industrienachfrage und Kreditverf\\u00fcgbarkeit positiv korrelieren.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.52,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 0.2923,\n        \"annualized_roi\": 1.4431,\n        \"dte\": 141\n      },\n      \"outcome\": null,\n      \"last_price\": 285.88,\n      \"current_return\": -0.0592\n    },\n    {\n      \"ticker\": \"BA\",\n      \"entry_date\": \"2026-04-29\",\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"mismatch\": 3.474,\n        \"z_score\": 0.305,\n        \"sigma_30d\": 0.0242,\n        \"price_move_48h\": 0.0074,\n        \"eps_drift\": 0.0079,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.505\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-05-15\",\n        \"strike\": 220.0,\n        \"bid\": 8.05,\n        \"ask\": 8.65,\n        \"open_interest\": 5375,\n        \"implied_vol\": 0.383795224609375,\n        \"spread_ratio\": 0.0694,\n        \"dte\": 15\n      },\n      \"simulation\": {\n        \"current_price\": 222.46,\n        \"target_price\": 240.25,\n        \"hit_rate\": 0.6068,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0216,\n        \"alpha\": 0.00099\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Boeing k\\u00e4mpft weiterhin mit tiefgreifenden strukturellen Problemen: Produktionsm\\u00e4ngel, FAA-\\u00dcberwachung und anhaltende 737 Max-Zertifizierungsauflagen belasten den operativen Betrieb. Eine Bestellung von f\\u00fcnf Flugzeugen durch Scat Airlines \\u2013 eine kasachische Regionalfluggesellschaft \\u2013 ist angesichts des Auftragsbestands von \\u00fcber 5.000 Einheiten operativ bedeutungslos und kaum geeignet, die fundamentale Repricing-These zu tragen.\",\n          \"argument_2\": \"Die EPS-Diskrepanz zwischen yfinance (4.38) und SEC EDGAR (2.52) deutet auf erhebliche Datenqualit\\u00e4tsprobleme hin. Der Headline-EPS spiegelt m\\u00f6glicherweise adjustierte Werte wider, w\\u00e4hrend der SEC-Wert die tats\\u00e4chliche GAAP-Ertragslage zeigt \\u2013 ein klassisches Zeichen f\\u00fcr earnings quality risk bei Unternehmen in operativer Restrukturierung. Investoren, die auf falsche EPS-Zahlen vertrauen, untersch\\u00e4tzen die reale Bewertungsbelastung.\",\n          \"argument_3\": \"Der Artikel-Hinweis 'Investors Shouldn't Be Too Comfortable With Boeing's Earnings' signalisiert, dass institutionelle Analysten die Qualit\\u00e4t der gemeldeten Gewinne anzweifeln. Kombiniert mit einem -0.7% Preisr\\u00fcckgang in 48h trotz positiver Nachrichtenlage (Bestellung, Insider-K\\u00e4ufe) zeigt der Markt strukturelle Absorption auf h\\u00f6herem Niveau \\u2013 ein klassisches bearishes Divergenzsignal.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein MC durchgef\\u00fchrt. Eine 0%-Hit-Rate bei fehlenden Pfaden ist nicht interpretierbar \\u2013 es fehlt schlicht die Simulation. Dies reduziert die statistische Validierbarkeit erheblich und erh\\u00f6ht die Unsicherheit bei der Richtungsentscheidung.\",\n          \"concern_level\": \"high\"\n        },\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 7,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt wertet die Insider-Cluster-K\\u00e4ufe und die Scat-Airlines-Bestellung als zu klein ab, untersch\\u00e4tzt aber das Signaling-Potenzial von Insider-Aktivit\\u00e4t in einer Phase regulatorischer Normalisierung. Die EPS-Divergenz erzeugt kurzfristige Unsicherheit, die eine strukturelle Neubewertung verz\\u00f6gert. Das expansive Makro-Umfeld beg\\u00fcnstigt industrielle Long-Positionen mittelfristig.\",\n        \"catalyst\": \"Insider-Cluster-K\\u00e4ufe (5 Insider in 14 Tagen) als Vorl\\u00e4ufer einer Q2-2026-Guidance-Anhebung oder positiver FAA-Zertifizierungsfortschritte f\\u00fcr die 737 Max-Produktionshochlauf.\",\n        \"bear_case\": \"EPS-Qualit\\u00e4tsprobleme (GAAP vs. adjusted Divergenz) kombiniert mit anhaltender FAA-Aufsicht und minimaler operativer Relevanz der Scat-Bestellung k\\u00f6nnen jegliches bullishes Momentum schnell absorbieren.\",\n        \"macro_assessment\": \"Das expansive Makro-Umfeld (steile Kurve +0.52%, Fed Funds 3.64%) beg\\u00fcnstigt Industrietitel mit zyklischer Erholung. Boeing profitiert von steigenden Defense-Budgets (+2.9% global) und ziviler Luftfahrtnachfrage. Das Makro liefert R\\u00fcckenwind, allerdings reichen fundamentale Boeing-spezifische Risiken aus, um diesen Effekt teilweise zu neutralisieren.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.52,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 6.2913,\n        \"annualized_roi\": null,\n        \"dte\": 15\n      },\n      \"outcome\": null,\n      \"last_price\": 221.55,\n      \"current_return\": -0.0041\n    },\n    {\n      \"ticker\": \"AMZN\",\n      \"entry_date\": \"2026-04-30\",\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 4.184,\n        \"z_score\": 0.363,\n        \"sigma_30d\": 0.0202,\n        \"price_move_48h\": 0.0074,\n        \"eps_drift\": 0.1423,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"massive\",\n        \"quick_mc_hit_rate\": 0.5736\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-05-15\",\n        \"strike\": 260.0,\n        \"bid\": 6.8,\n        \"ask\": 6.95,\n        \"open_interest\": 36585,\n        \"implied_vol\": 0.35883209533691407,\n        \"spread_ratio\": 0.0216,\n        \"dte\": 14\n      },\n      \"simulation\": {\n        \"current_price\": 258.5,\n        \"target_price\": 279.18,\n        \"hit_rate\": 0.664,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0208,\n        \"alpha\": 0.00196\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Der AWS-Backlog von $364B ist zwar beeindruckend, aber Backlog ist keine Revenue-Garantie: Kunden k\\u00f6nnen Vertr\\u00e4ge renegotiieren, Projekte verz\\u00f6gern oder k\\u00fcrzen, insbesondere wenn Makro-Unsicherheit zunimmt. Die Umwandlungsrate von Backlog zu tats\\u00e4chlichem Revenue ist historisch variabel, und M\\u00e4rkte k\\u00f6nnten den Backlog bereits vollst\\u00e4ndig eingepreist haben, da die Zahl seit Wochen in der Presse kursiert.\",\n          \"argument_2\": \"Die EPS-Abweichung zwischen yfinance ($9.45) und SEC EDGAR ($7.17) von 14.2% ist ein erhebliches Datenkvalit\\u00e4tsproblem. Wenn der 'Beat' auf Basis der h\\u00f6heren, m\\u00f6glicherweise fehlerhaften EPS-Zahl kommuniziert wird, k\\u00f6nnte eine Korrektur der Erwartungen folgen. Zudem ist der Kurs bereits +0.7% in 48h gestiegen, was darauf hindeutet, dass die gute Nachricht teils schon eingepreist ist.\",\n          \"argument_3\": \"AMZN handelt in einem Consumer Cyclical-Sektor, der bei anhaltendem Inflationsdruck (Fed-Inflationsma\\u00df auf 2-Jahres-Hoch laut News) besonders empfindlich ist. Bei einer Fed Funds Rate von 3.64% und flacher Zinskurve sind die Kapitalkosten f\\u00fcr Amazons massive CapEx-Pl\\u00e4ne im AI/Cloud-Bereich weiterhin erh\\u00f6ht, was Margin-Expansion-Thesen unter Druck setzt.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Hit-Rate von 0% ist nicht aussagekr\\u00e4ftig, da kein Monte-Carlo-Lauf durchgef\\u00fchrt wurde. Die Abwesenheit von MC-Daten erh\\u00f6ht die Unsicherheit der quantitativen Basis erheblich und sollte als Warnsignal f\\u00fcr die Modellrobustheit gewertet werden.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 5,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt preist den $364B Backlog m\\u00f6glicherweise linear ein, untersch\\u00e4tzt aber den konvexen Margin-Effekt bei AI-getriebener Workload-Skalierung in AWS. Cluster-Insider-K\\u00e4ufe von 5 Personen innerhalb 14 Tagen signalisieren fundiertes internes Vertrauen, das \\u00fcber kurzfristige Kursreaktionen hinausgeht. Der strukturelle Shift hin zu langfristigen Cloud-Commitments reduziert Revenue-Volatilit\\u00e4t und verdient einen h\\u00f6heren Multiplikator.\",\n        \"catalyst\": \"AWS Q2-2026 Revenue Report mit Margin-Expansion durch AI-Workload-Mix und m\\u00f6gliche Erh\\u00f6hung des Jahres-CapEx-Guidance als Confidence-Signal\",\n        \"bear_case\": \"Inflationsdruck k\\u00f6nnte Fed zu erneuten Zinserh\\u00f6hungen zwingen, was Amazons CapEx-intensive AI-Strategie verteuert und Consumer-Spending-Schw\\u00e4che den Retail-Segment-Beitrag d\\u00e4mpft.\",\n        \"macro_assessment\": \"Neutral-Makro mit flacher Kurve (0.50%) ist kein Gegenwind, aber auch kein R\\u00fcckenwind. Fed Funds bei 3.64% belastet CapEx-schwere Gesch\\u00e4ftsmodelle moderat. AI-Nachfrage als struktureller Treiber \\u00fcberwiegt leicht das Zinsrisiko, sodass eine vorsichtig bullishe Haltung vertretbar bleibt.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.5,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 9.5464,\n        \"annualized_roi\": null,\n        \"dte\": 14\n      },\n      \"outcome\": null,\n      \"last_price\": 262.84,\n      \"current_return\": 0.0168\n    },\n    {\n      \"ticker\": \"APH\",\n      \"entry_date\": \"2026-04-30\",\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 4,\n        \"mismatch\": 5.664,\n        \"z_score\": 0.067,\n        \"sigma_30d\": 0.026,\n        \"price_move_48h\": 0.0017,\n        \"eps_drift\": 0.0458,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.6088\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-05-15\",\n        \"strike\": 145.0,\n        \"bid\": 5.5,\n        \"ask\": 6.1,\n        \"open_interest\": 1736,\n        \"implied_vol\": 0.45532771240234376,\n        \"spread_ratio\": 0.0984,\n        \"dte\": 14\n      },\n      \"simulation\": {\n        \"current_price\": 145.56,\n        \"target_price\": 160.26,\n        \"hit_rate\": 0.6182,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0301,\n        \"alpha\": 0.00137\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"APH hat nach starken Q1-Ergebnissen und positivem Analyst-Coverage bereits eine signifikante Neubewertung erfahren. Der AI-Infrastruktur-Narrativ ist im Halbleiter- und Connectivity-Sektor mittlerweile so weit verbreitet, dass jede positive Einsch\\u00e4tzung als bereits eingepreist gelten muss. Der Markt hat AI-Exposure-Plays seit 2024 aggressiv bewertet, und bei einem KGV, das deutlich \\u00fcber historischen Normen f\\u00fcr Industriekonglomerate liegt, ist das Aufw\\u00e4rtspotenzial begrenzt.\",\n          \"argument_2\": \"Die EPS-Abweichung zwischen yfinance (5.19) und SEC EDGAR (3.33) betr\\u00e4gt faktisch \\u00fcber 55% \\u2014 die angegebene 4.6% ist rechnerisch falsch. Diese massive Diskrepanz in den Gewinnzahlen untergr\\u00e4bt die Datenqualit\\u00e4t erheblich. Wenn das EDGAR-EPS korrekt ist, liegt das tats\\u00e4chliche KGV deutlich h\\u00f6her als vom Markt angenommen, was die Bewertung fundamental in Frage stellt.\",\n          \"argument_3\": \"Cluster-Insider-K\\u00e4ufe sind ein ambivalentes Signal: Sie k\\u00f6nnen echte \\u00dcberzeugung widerspiegeln, aber auch koordiniertes Signal-Sending sein. Bei einem Kurs von $145.56 und einem bereits etablierten Post-Earnings-Anstieg besteht die Gefahr, dass kurzfristige Optionspositionen von IV-Crush getroffen werden \\u2014 die implizite Volatilit\\u00e4t d\\u00fcrfte nach dem Earnings Call signifikant gefallen sein, was Long-Optionen strukturell benachteiligt.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein MC durchgef\\u00fchrt \\u2014 0% Hit-Rate bedeutet keine Modell-Evidenz, nicht 0% Erfolgswahrscheinlichkeit. Die Abwesenheit des MC-Modells ist neutral, jedoch kann keine statistische Validierung des Targets erfolgen. Concern liegt darin, dass ohne quantitative Pfad-Analyse die Risiko-Reward-Sch\\u00e4tzung rein qualitativ bleibt.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt bewertet APH prim\\u00e4r als diversifizierten Connector-Hersteller, untersch\\u00e4tzt aber die strukturelle Margenausweitung durch AI-Datacenter-spezifische Produkte mit h\\u00f6herem ASP. Insider-Cluster-K\\u00e4ufe nach Earnings deuten auf Management\\u00fcberzeugung hin, die \\u00fcber das kommunizierte Guidance-Niveau hinausgeht. Die EPS-Diskrepanz verunsichert kurzfristige Algo-Trader, schafft aber Einstiegsgelegenheit f\\u00fcr fundamentale Investoren.\",\n        \"catalyst\": \"Analyst-Upgrades mit explizitem AI-Infrastructure-Target-Erh\\u00f6hung und n\\u00e4chste Quartals-Guidance Q2 2026\",\n        \"bear_case\": \"Massi EPS-Datendivergenz (EDGAR vs. yfinance) signalisiert m\\u00f6gliche Accounting-Komplexit\\u00e4t; bei Kl\\u00e4rung zugunsten des niedrigeren EDGAR-Werts droht Bewertungskorrektur von 15-20%.\",\n        \"macro_assessment\": \"Flache Zinskurve bei 0.50% und Fed Funds Rate von 3.64% repr\\u00e4sentiert ein neutrales Makroumfeld ohne klaren R\\u00fcckenwind. F\\u00fcr AI-Infrastruktur-Plays ist dieses Umfeld akzeptabel, da Capex-Ausgaben von Hyperscalern zinsunempfindlicher sind als konsumgetriebene Sektoren. Kein signifikanter makro\\u00f6konomischer Gegenwind, aber auch kein expansiver Boost.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.5,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 7.5014,\n        \"annualized_roi\": null,\n        \"dte\": 14\n      },\n      \"outcome\": null,\n      \"last_price\": 121.485,\n      \"current_return\": -0.1654\n    },\n    {\n      \"ticker\": \"AMAT\",\n      \"entry_date\": \"2026-05-04\",\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 3.244,\n        \"z_score\": 0.551,\n        \"sigma_30d\": 0.0308,\n        \"price_move_48h\": 0.017,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.75\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-07-17\",\n        \"strike\": 380.0,\n        \"bid\": 47.7,\n        \"ask\": 49.85,\n        \"open_interest\": 803,\n        \"implied_vol\": 0.6332739309692383,\n        \"spread_ratio\": 0.0431,\n        \"dte\": 73\n      },\n      \"simulation\": {\n        \"current_price\": 390.23,\n        \"target_price\": 430.77,\n        \"hit_rate\": 0.75,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.031,\n        \"alpha\": 0.00535\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"China-Risiko ist strukturell und akut: Chinesische Semiconductor-Equipment-Anbieter gewinnen trotz US-Sanktionen Marktanteile, was AMAT's wichtigen China-Umsatzanteil (historisch ~25-30% der Revenues) mittel- bis langfristig erodiert. Weitere Exportrestriktionen durch das US-Handelsministerium k\\u00f6nnten 2026 versch\\u00e4rft werden und direkten Umsatzdruck erzeugen, bevor die NEXX-Akquisition ihre Ertr\\u00e4ge entfaltet.\",\n          \"argument_2\": \"Die NEXX-Akquisition tr\\u00e4gt das klassische M&A-Integrationsrisiko: Advanced Packaging ist ein kompetitives Feld mit Lam Research und ASML als starke Konkurrenten. Integrationskosten, Margin-Dilution in den ersten 2-3 Quartalen und die Unsicherheit \\u00fcber Synergien k\\u00f6nnten den strukturellen Aufw\\u00e4rtstrend zeitlich verz\\u00f6gern und kurzfristig als Entt\\u00e4uschungskatalysator wirken.\",\n          \"argument_3\": \"Der EPS-Datenwiderspruch ist auff\\u00e4llig: yfinance meldet 14.07 vs. SEC EDGAR 9.77 \\u2014 eine Differenz von ca. 44%, die auf Bereinigungen (Non-GAAP vs. GAAP) hindeutet. Bewertet der Markt AMAT auf Basis zu optimistischer Non-GAAP-Zahlen, ist ein Re-Rating-Risiko nach unten m\\u00f6glich, sobald GAAP-Belastungen durch Akquisitions-Amortisierungen in Q3/Q4 2026 sichtbar werden.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"MC wurde nicht durchgef\\u00fchrt (0 Pfade). Eine 0%-Hit-Rate aus einem echten MC-Run w\\u00e4re bei AMAT mit ~30% implizierter Volatilit\\u00e4t unrealistisch. Da kein Lauf stattfand, ist diese Metrik schlicht nicht verf\\u00fcgbar und kann weder positiv noch negativ gewertet werden. Das Fehlen des MC erh\\u00f6ht die Daten-Unsicherheit.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt bewertet die NEXX-Akquisition prim\\u00e4r als kurzfristigen Kostenfaktor, untersch\\u00e4tzt jedoch den strategischen Wert im wachsenden Advanced-Packaging-Segment f\\u00fcr AI-Chips. Insider-Cluster-K\\u00e4ufe signalisieren Informationsasymmetrie zugunsten des Managements bez\\u00fcglich der Integrations-Timeline. Das expansive Makro-Umfeld mit steiler Kurve und 3.64% Fed Rate beg\\u00fcnstigt Capex-intensive Halbleiter-Equipment-Nachfrage strukturell.\",\n        \"catalyst\": \"Q3 2026 Earnings-Call mit ersten quantifizierten NEXX-Synergien und Advanced-Packaging-Orderbook-Update\",\n        \"bear_case\": \"Weitere US-Exportrestriktionen gegen China k\\u00f6nnten 2026 einen Umsatzschock von 15-20% im China-Segment erzeugen und die NEXX-Upside vollst\\u00e4ndig neutralisieren.\",\n        \"macro_assessment\": \"Das expansive Umfeld (Kurve +51bp, Fed Rate 3.64%) ist grunds\\u00e4tzlich positiv f\\u00fcr Capex-Zyklen und Halbleiter-Equipment. Die moderate Zinslast erlaubt Kunden wie TSMC und Samsung erh\\u00f6hte Investitionsbudgets. Das Makro liefert keinen Gegenwind, st\\u00fctzt aber keine aggressive Positionsgr\\u00f6\\u00dfe angesichts geopolitischer Bin\\u00e4rereignisse.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.51,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 0.46,\n        \"annualized_roi\": 3.2531,\n        \"dte\": 73\n      },\n      \"outcome\": null,\n      \"last_price\": 423.905,\n      \"current_return\": 0.0863\n    },\n    {\n      \"ticker\": \"META\",\n      \"entry_date\": \"2026-05-05\",\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 5.597,\n        \"z_score\": 0.081,\n        \"sigma_30d\": 0.0304,\n        \"price_move_48h\": 0.0025,\n        \"eps_drift\": 0.0022,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.4882\n      },\n      \"strategy\": \"LONG_PUT\",\n      \"option\": {\n        \"expiry\": \"2026-05-22\",\n        \"strike\": 600.0,\n        \"bid\": 13.5,\n        \"ask\": 14.0,\n        \"open_interest\": 690,\n        \"implied_vol\": 0.2937692694091796,\n        \"spread_ratio\": 0.0357,\n        \"dte\": 16\n      },\n      \"simulation\": {\n        \"current_price\": 604.05,\n        \"target_price\": 652.38,\n        \"hit_rate\": 0.5756,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0237,\n        \"alpha\": 0.00041\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Die EU-Regulierungsdrohung rund um WhatsApp-Interoperabilit\\u00e4t ist ein strukturelles Tail-Risk mit erheblichem Margendruck-Potenzial. Sollte die EU Meta zwingen, WhatsApp f\\u00fcr Drittanbieter-KI-Chatbots zu \\u00f6ffnen, drohen nicht nur Compliance-Kosten in Milliardenh\\u00f6he, sondern auch ein Verlust der Datenschutz-Moat, die METs Werbegesch\\u00e4ftsmodell fundamental st\\u00fctzt. Das aktuelle Hearing deutet darauf hin, dass die Entscheidung zeitnah im Jahr 2026 fallen k\\u00f6nnte \\u2014 also im direkten Zeithorizont der Trade-Betrachtung.\",\n          \"argument_2\": \"Die Diskrepanz zwischen dem yfinance-EPS (36.178) und dem SEC-EDGAR-EPS (27.59) ist trotz der offiziellen 0,2%-Angabe auff\\u00e4llig gro\\u00df in absoluten Zahlen und deutet auf methodische Unterschiede hin, die die Bewertungsgrundlage verzerren k\\u00f6nnten. Hinzu kommen die im News erw\\u00e4hnten 'Governance Scrutiny'-Bedenken im Zusammenhang mit dem AI-Bond-Sale: Wenn institutionelle Investoren beginnen, Corporate-Governance-Risiken bei META st\\u00e4rker einzupreisen, kann dies zu einem strukturellen Bewertungsabschlag f\\u00fchren, der durch fundamentales Gewinnwachstum nur schwer zu kompensieren ist.\",\n          \"argument_3\": \"Die massive Capex-Frage ('$500 Billion Capex Question') f\\u00fcr BAI (Broad AI) im Jahr 2026 signalisiert, dass der Markt eine Phase intensiver Investitionen und damit potenziell sinkender freier Cashflows einpreisen muss. Insider-K\\u00e4ufe sind zwar bullish zu werten, k\\u00f6nnen aber auch Konfidenz-Signal einer Unternehmensf\\u00fchrung sein, die den eigenen Hype zu st\\u00fctzen versucht \\u2014 kein verl\\u00e4sslicher Contrarian-Indikator in einem Umfeld, in dem AI-Bewertungen zunehmend hinterfragt werden. META ist bereits 9,1% gefallen und ein Bounce ohne strukturellen Katalysator ist statistisch nicht gesichert.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Die 0% Hit-Rate ist das Ergebnis eines nicht durchgef\\u00fchrten Quick-MC \\u2014 also technisch bedeutungslos, da keine Simulation vorliegt. In Abwesenheit quantitativer Pfadanalyse ist das Signalvertrauen erheblich eingeschr\\u00e4nkt. Die -0,2%-Preisbewegung in 48h ist neutral, bietet aber keine statistische Basis f\\u00fcr Richtungsaussagen. Das Fehlen dieser Daten erh\\u00f6ht die Unsicherheit des Gesamtsetups deutlich.\",\n          \"concern_level\": \"high\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BEARISH\",\n        \"bear_case_severity\": 7,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt bewertet das EU-Regulierungsrisiko als juristisches Randthema, untersch\\u00e4tzt jedoch die operative Konsequenz bei WhatsApp-\\u00d6ffnung f\\u00fcr Metas Datenstrategie. Der AI-Bond-Sale und Governance-Fragen deuten auf Kapitalallokationsdruck hin, der in der aktuellen Multiples-Bewertung nicht vollst\\u00e4ndig reflektiert ist. Insider-K\\u00e4ufe d\\u00e4mpfen kurzfristig die Abw\\u00e4rtserwartung, k\\u00f6nnen aber den strukturellen Regulierungsdruck nicht aufheben.\",\n        \"catalyst\": \"EU-Entscheid zur WhatsApp-Interoperabilit\\u00e4tspflicht (Digital Markets Act Hearing-Ausgang, voraussichtlich Q3 2026)\",\n        \"bear_case\": \"Insider-Kaufcluster (4 K\\u00e4ufe in 14 Tagen) signalisiert echte \\u00dcberzeugung des Managements in die fundamentale Unterbewertung nach dem 9,1%-R\\u00fcckgang \\u2014 kombiniert mit weiterhin starkem AI-Monetarisierungspotenzial k\\u00f6nnte dies einen nachhaltigen Boden markieren.\",\n        \"macro_assessment\": \"Das neutrale Makro-Umfeld (flache Kurve +0,50%, Fed Funds 3,64%) liefert keinen direktionalen Bias, schr\\u00e4nkt aber den potenziellen Aufw\\u00e4rtsdruck bei zinssensitiven Tech-Multiples ein. Eine leichte Abk\\u00fchlung w\\u00e4re f\\u00fcr hoch bewertete AI-Werte wie META marginal negativ \\u2014 das Umfeld verst\\u00e4rkt das Regulierungsrisiko, ohne es abzupuffern.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.5,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 9.9056,\n        \"annualized_roi\": null,\n        \"dte\": 16\n      },\n      \"outcome\": null,\n      \"last_price\": 604.5,\n      \"current_return\": 0.0007\n    },\n    {\n      \"ticker\": \"AMD\",\n      \"entry_date\": \"2026-05-05\",\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 1.439,\n        \"z_score\": 0.912,\n        \"sigma_30d\": 0.04,\n        \"price_move_48h\": 0.0365,\n        \"eps_drift\": 0.0538,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"weak\",\n        \"bin_eps_drift\": \"relevant\",\n        \"quick_mc_hit_rate\": 0.662\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-05-22\",\n        \"strike\": 350.0,\n        \"bid\": 25.55,\n        \"ask\": 26.4,\n        \"open_interest\": 557,\n        \"implied_vol\": 0.7040434869384766,\n        \"spread_ratio\": 0.0322,\n        \"dte\": 16\n      },\n      \"simulation\": {\n        \"current_price\": 358.74,\n        \"target_price\": 406.93,\n        \"hit_rate\": 0.6836,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.04,\n        \"alpha\": 0.00407\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"AMD notiert bei $358.74 nach einem massiven Run-up und der bevorstehende Earnings-Katalysator ist bereits weitgehend eingepreist. Morgan Stanley's PT-Anhebung ist ein klassisches 'Buy the rumor'-Signal \\u2014 nach dem Event droht IV-Crush, der Long-Options-Positionen selbst bei positiver \\u00dcberraschung vernichtet. Der 48h-R\\u00fcckgang von -3.7% deutet darauf hin, dass Smart Money bereits Gewinne mitnimmt.\",\n          \"argument_2\": \"Die massive EPS-Diskrepanz zwischen yfinance ($11.22) und SEC EDGAR ($2.46) ist ein ernstes Datenzuverl\\u00e4ssigkeits-Problem. Eine 5.4% ausgewiesene Abweichung verdeckt, dass die Bewertungsgrundlage fundamental unklar ist \\u2014 bei einem KGV-basierten Ansatz kann dies die gesamte Bullish-These invalidieren, da AMD m\\u00f6glicherweise deutlich teurer ist als oberfl\\u00e4chlich erscheint.\",\n          \"argument_3\": \"AMD operiert in einem hochkompetitiven AI-Chip-Markt, in dem NVIDIA strukturelle Dominanz besitzt und Intel trotz Schw\\u00e4che als Gegenbeispiel f\\u00fcr Sektor-Volatilit\\u00e4t warnt. Die Seed-Investments in kleine AI-Startups (RadixArk, Altara) sind keine fundamentalen Revenue-Treiber f\\u00fcr 2026 \\u2014 sie signalisieren eher Diversifikationsversuche als organisches Kernwachstum und k\\u00f6nnten Analysten entt\\u00e4uschen.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein Monte Carlo verf\\u00fcgbar (0 Pfade). Bei einem Earnings-Event mit expliziter Markterwartung gro\\u00dfer Swings ist dies ein erhebliches Risiko-Einsch\\u00e4tzungsdefizit. Ohne MC-Daten kann keine statistische Hit-Rate-Validierung erfolgen \\u2014 die Abwesenheit von Daten erh\\u00f6ht die Unsicherheit erheblich und erfordert konservative Positionierung.\",\n          \"concern_level\": \"high\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 7,\n        \"time_to_materialization\": \"4-8 Wochen\",\n        \"asymmetry_reasoning\": \"Insider-Cluster-K\\u00e4ufe von 4 Personen binnen 14 Tagen signalisieren informiertes Kapital, das trotz Pre-Earnings-Nervosit\\u00e4t akkumuliert. Der Markt diskontiert kurzfristig den -3.7% R\\u00fcckgang als Risiko, untersch\\u00e4tzt aber das strukturelle AI-Infrastruktur-Exposure von AMD als NVIDIA-Alternative. Morgan Stanleys PT-Revision kombiniert mit Insider-Aktivit\\u00e4t erzeugt asymmetrisches Upside bei positivem Earnings-\\u00dcberraschungspotenzial.\",\n        \"catalyst\": \"AMD Earnings-Report Q1/Q2 2026: \\u00dcberraschung bei AI-GPU-Ums\\u00e4tzen (MI300X-Nachfolge) plus institutionelle Neubewertung durch Morgan Stanley PT-Anhebung\",\n        \"bear_case\": \"IV-Crush nach Earnings vernichtet Options-Premium selbst bei neutralem Report; EPS-Datendivergenz deutet auf fragile Bewertungsgrundlage hin\",\n        \"macro_assessment\": \"Neutrale Makrolage (Kurve +0.50%, Fed Funds 3.64%) bietet weder strukturellen R\\u00fcckenwind noch aktiven Gegenwind. Das Zinsumfeld ist f\\u00fcr Tech-Wachstumswerte tolerierbar, aber nicht f\\u00f6rderlich \\u2014 mittelfristige Bewertungsmultiplikatoren bleiben unter Druck. Kein Makro-VETO, aber auch kein Verst\\u00e4rker f\\u00fcr die Bullish-These.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.5,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 6.1456,\n        \"annualized_roi\": null,\n        \"dte\": 16\n      },\n      \"outcome\": null,\n      \"last_price\": 444.935,\n      \"current_return\": 0.2403\n    },\n    {\n      \"ticker\": \"GOOG\",\n      \"entry_date\": \"2026-05-06\",\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"mismatch\": 4.441,\n        \"z_score\": 0.112,\n        \"sigma_30d\": 0.0245,\n        \"price_move_48h\": 0.0027,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.6684\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-05-22\",\n        \"strike\": 390.0,\n        \"bid\": 11.55,\n        \"ask\": 12.35,\n        \"open_interest\": 4042,\n        \"implied_vol\": 0.31342239318847653,\n        \"spread_ratio\": 0.0648,\n        \"dte\": 15\n      },\n      \"simulation\": {\n        \"current_price\": 392.96,\n        \"target_price\": 424.4,\n        \"hit_rate\": 0.75,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0193,\n        \"alpha\": 0.00325\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Der 'Anthropic-Deal-Spillover' ist ein narrativer Proxy-Trade mit schwacher Kausalit\\u00e4t: Google ist bereits tief in Anthropic investiert, und der Markt kennt diese Partnerschaft seit 2023. Der Effekt d\\u00fcrfte l\\u00e4ngst eingepreist sein \\u2014 ein klassisches 'buy the rumor, sold the news'-Muster, das bei AI-Hype-Narrativen wiederholt zu beobachten war.\",\n          \"argument_2\": \"Googles Kerngesch\\u00e4ft (Search-Advertising) steht unter strukturellem Druck durch AI-generierte Suchergebnisse, die CPCs und Click-Through-Rates senken k\\u00f6nnten. Wenn Googles eigene KI-Produkte den Werbekanal kannibalisieren, ist die AI-Compute-These ein zweischneidiges Schwert \\u2014 Revenue-Wachstum k\\u00f6nnte trotz technologischem Fortschritt entt\\u00e4uschen.\",\n          \"argument_3\": \"Cathie Woods ARK-K\\u00e4ufe sind historisch ein schlechter Kontr\\u00e4r-Indikator und kein Alpha-Signal. Bei einem Preis von ~$393 und einem Trailing-EPS von ~$13-14 handelt GOOG mit einem KGV von ~28-30x \\u2014 nicht g\\u00fcnstig f\\u00fcr ein reifes Unternehmen in einem Umfeld mit 4.32% 10Y-Renditen, wo der Diskontierungseffekt auf High-Multiple-Namen signifikant ist.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Hit-Rate von 0% bedeutet hier schlicht 'kein MC durchgef\\u00fchrt', nicht eine echte Null-Wahrscheinlichkeit. Ohne MC-Daten fehlt die quantitative Basis f\\u00fcr eine Pfadanalyse. Das Fehlen dieser Statistik erh\\u00f6ht Unsicherheit, ist aber kein disqualifizierendes Signal per se \\u2014 die fundamentale und nachrichtenbasierte Analyse muss st\\u00e4rker gewichtet werden.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt behandelt Google prim\\u00e4r als Advertising-Unternehmen, untersch\\u00e4tzt aber den Leverage auf AI-Infrastruktur via TPU-Cloudkapazit\\u00e4t und Gemini-Monetarisierung. Insider-Cluster-K\\u00e4ufe in Kombination mit steigender AI-Compute-Nachfrage deuten auf nicht-\\u00f6ffentlich bekannte Wachstumsbeschleunigung hin. Das neutrale Makroumfeld mit flacher Kurve und moderaten Zinsen belastet High-Multiple-Namen weniger als in inversionsphasen.\",\n        \"catalyst\": \"Q2 2026 Earnings (erwarteter Termin Juli 2026) mit AI-Cloud-Revenue-Beschleunigung und m\\u00f6glicher Erh\\u00f6hung der Compute-Guidance\",\n        \"bear_case\": \"Strukturelle Kannibalisierung des Search-Ad-Gesch\\u00e4fts durch eigene KI-Produkte bei gleichzeitig hohem Capex-Druck k\\u00f6nnte Margenkompression ausl\\u00f6sen und das Multiple weiter unter Druck setzen.\",\n        \"macro_assessment\": \"Neutrale Makrolage mit flacher Zinskurve (+0.50%) und Fed Funds Rate von 3.64% ist moderat konstruktiv f\\u00fcr Growth-Aktien. Der 10Y bei 4.32% \\u00fcbt weiterhin leichten Druck auf DCF-basierte Bewertungen aus, ist aber kein dominanter Gegenwind. \\u00d6lpreisr\\u00fcckgang durch m\\u00f6gliche Nahost-Entspannung st\\u00fctzt den breiten Markt und reduziert Stagflationsrisiko \\u2014 per Saldo leicht bullisher Kontext f\\u00fcr GOOG.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.5,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 7.31,\n        \"annualized_roi\": null,\n        \"dte\": 15\n      },\n      \"outcome\": null,\n      \"last_price\": 382.09,\n      \"current_return\": -0.0277\n    },\n    {\n      \"ticker\": \"AMCR\",\n      \"entry_date\": \"2026-05-06\",\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"mismatch\": 4.506,\n        \"z_score\": 0.099,\n        \"sigma_30d\": 0.0295,\n        \"price_move_48h\": 0.0029,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.4832\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-10-16\",\n        \"strike\": 40.0,\n        \"bid\": 3.9,\n        \"ask\": 4.2,\n        \"open_interest\": 152,\n        \"implied_vol\": 0.33423517333984376,\n        \"spread_ratio\": 0.0714,\n        \"dte\": 162\n      },\n      \"simulation\": {\n        \"current_price\": 41.05,\n        \"target_price\": 44.34,\n        \"hit_rate\": 0.5866,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0226,\n        \"alpha\": 0.0008\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"AMCR ist als Verpackungsunternehmen strukturell dem Konsumg\\u00fctersektor ausgesetzt, der unter anhaltendem Margendruck durch Rohstoffkosten (Harz, Aluminium) leidet. Der Verkauf von zwei US-Produktionsanlagen an Closure Systems signalisiert m\\u00f6glicherweise einen strategischen R\\u00fcckzug aus marginschwachen Segmenten, was kurzfristig Einmalbelastungen und Restrukturierungskosten mit sich bringen kann.\",\n          \"argument_2\": \"Der EPS-Diskrepanz zwischen yfinance (4.36) und SEC EDGAR (1.33) ist ein erhebliches Datenkonfidenz-Warnsignal. Q3-Earnings matchten lediglich die Sch\\u00e4tzungen, ohne positiv zu \\u00fcberraschen \\u2014 der Revenue-Beat und die angehobene Guidance k\\u00f6nnten bereits durch die kurzfristige Preisreaktion vollst\\u00e4ndig eingepreist sein, zumal die 48h-Bewegung mit -0.3% neutral bis leicht negativ ausf\\u00e4llt, was auf fehlende \\u00dcberzeugung beim Markt hindeutet.\",\n          \"argument_3\": \"Der Consumer Cyclical Sektor ist bei einem Fed Funds Rate von 3.64% und einem 10Y Treasury von 4.32% strukturell unter Druck, da h\\u00f6here Kapitalkosten Investitionsentscheidungen bei Konsumenten und Industrie bremsen. AMCR als Zulieferer ist indirekt von Volumenr\\u00fcckg\\u00e4ngen bei Endkunden abh\\u00e4ngig; ein Cluster-Insider-Kauf allein ist kein hinreichendes Bullish-Signal, wenn das operative Momentum durch Anlagenverk\\u00e4ufe und flaches EPS-Wachstum relativiert wird.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"0% Hit-Rate resultiert aus fehlendem Quick-MC-Durchlauf, nicht aus einem negativen Modellsignal. Die Abwesenheit statistischer Evidenz erh\\u00f6ht die Unsicherheit erheblich und zwingt zu gr\\u00f6\\u00dferer Vorsicht bei der Einsch\\u00e4tzung der Upside-Wahrscheinlichkeit. Bei AMCR mit historisch moderater Volatilit\\u00e4t w\\u00e4re eine realistische Hit-Rate im Bereich 45-60% f\\u00fcr bullische Pfade \\u00fcber 30 Tage zu erwarten.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 5,\n        \"time_to_materialization\": \"4-8 Wochen\",\n        \"asymmetry_reasoning\": \"Der Markt verarbeitet Revenue-Beat und Guidance-Anhebung verz\\u00f6gert, da AMCR als Verpackungs-Utility-\\u00e4hnlicher Titel wenig Analyst-Coverage-Momentum erzeugt. Neun Insider-K\\u00e4ufe im 14-Tage-Cluster signalisieren internen Optimismus vor weiteren Katalysatoren. Der Anlagenverkauf reduziert kurzfristig Kapitalintensit\\u00e4t und k\\u00f6nnte Bilanzverbesserungen mit sich bringen.\",\n        \"catalyst\": \"Angehobene Jahresguidance Q3 2026 kombiniert mit Insider-Cluster-Kauf als vorgelagertes Signal f\\u00fcr operative Margenverbesserung\",\n        \"bear_case\": \"EPS-Diskrepanz zwischen Datensources und fehlende positive Earnings-\\u00dcberraschung deuten darauf hin, dass der Markt die Guidance-Anhebung als konservativ einsch\\u00e4tzt und weiteres Upside bereits begrenzt ist.\",\n        \"macro_assessment\": \"Neutrales Makro-Umfeld mit flacher Kurve (+0.50%) ist f\\u00fcr AMCR weder R\\u00fccken- noch Gegenwind. Bei 4.32% 10Y-Yield bleibt Dividenden-orientiertes Kapital in Anleihen konkurrenzf\\u00e4hig, was die relative Attraktivit\\u00e4t von AMCR als Yield-Titel begrenzt. Kein strukturelles Makro-Veto, aber auch kein Tailwind.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.5,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 0.1554,\n        \"annualized_roi\": 0.6584,\n        \"dte\": 162\n      },\n      \"outcome\": null,\n      \"last_price\": 37.795,\n      \"current_return\": -0.0793\n    },\n    {\n      \"ticker\": \"ALB\",\n      \"entry_date\": \"2026-05-07\",\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 6,\n        \"mismatch\": 3.886,\n        \"z_score\": 0.223,\n        \"sigma_30d\": 0.0452,\n        \"price_move_48h\": 0.0101,\n        \"eps_drift\": 0.6822,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"massive\",\n        \"quick_mc_hit_rate\": 0.5472\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-12-18\",\n        \"strike\": 200.0,\n        \"bid\": 44.5,\n        \"ask\": 47.85,\n        \"open_interest\": 264,\n        \"implied_vol\": 0.6726717303466798,\n        \"spread_ratio\": 0.07,\n        \"dte\": 224\n      },\n      \"simulation\": {\n        \"current_price\": 209.58,\n        \"target_price\": 237.0,\n        \"hit_rate\": 0.5684,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.039,\n        \"alpha\": 0.00055\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Die EPS-Daten weichen um 68,2% zwischen yfinance ($9.03) und SEC EDGAR (-$5.77) ab \\u2014 das ist eine massive Diskrepanz, die fundamentale Zweifel an der Qualit\\u00e4t der Earnings-Zahlen aufwirft. Es ist m\\u00f6glich, dass yfinance adjustierte/Non-GAAP-Zahlen zeigt, w\\u00e4hrend SEC EDGAR GAAP-Verluste reflektiert. Ein 'Blowout-Earnings' auf Basis von Non-GAAP-Zahlen bei tats\\u00e4chlichem GAAP-Verlust ist ein klassisches rotes Flag f\\u00fcr Earnings-Qualit\\u00e4t und k\\u00f6nnte den Markt bei n\\u00e4herer Analyse entt\\u00e4uschen.\",\n          \"argument_2\": \"Der Lithium-Sektor bleibt strukturell unter Druck: \\u00dcberkapazit\\u00e4ten aus chinesischer Produktion, anhaltend niedrige Lithiumpreise seit dem Peak 2022/2023 und schw\\u00e4chere EV-Nachfrage in Europa und den USA dr\\u00fccken die Margen. Ein einzelnes Quartal mit besseren Zahlen rechtfertigt noch keine nachhaltige Markt-Reoberung \\u2014 der Katalysator k\\u00f6nnte bereits vollst\\u00e4ndig im +1,0%-Move und im Pre-Market-Anstieg eingepreist sein, sodass kein weiteres Aufw\\u00e4rtspotenzial f\\u00fcr eine 2-6-Monats-Optionsstrategie verbleibt.\",\n          \"argument_3\": \"Cluster-Insider-K\\u00e4ufe klingen positiv, k\\u00f6nnen aber auch taktisches Signaling sein oder auf Antizipation interner Restrukturierungsma\\u00dfnahmen hinweisen, die kurzfristig nicht wertsch\\u00f6pfend sind. Zudem fehlt ein Quick Monte Carlo (0 Pfade), was bedeutet, dass keine statistisch fundierte Wahrscheinlichkeitsverteilung f\\u00fcr das 30-Tage-Kursziel existiert \\u2014 eine mittelfristige Optionsstrategie ohne MC-Basis ist wesentlich riskanter, da IV-Crush nach dem Earnings-Event sofort Optionspr\\u00e4mien vernichtet.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Quick MC wurde nicht durchgef\\u00fchrt (0 Pfade) \\u2014 eine Hit-Rate von 0% ist in diesem Fall nicht als Marktprognose interpretierbar, sondern zeigt einen technischen Ausfall des Vorfilters. Dies erh\\u00f6ht die Unsicherheit erheblich, da keine statistische Absicherung der Richtungsprognose vorliegt. Concern ist hoch, da eine Optionsstrategie ohne probabilistische Grundlage rein auf Sentiment und fraglichen Earnings-Zahlen basiert.\",\n          \"concern_level\": \"high\"\n        },\n        \"impact\": 5,\n        \"surprise\": 6,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 7,\n        \"time_to_materialization\": \"4-8 Wochen\",\n        \"asymmetry_reasoning\": \"Der Markt reagiert nur mit +1,0% trotz positiver Earnings-\\u00dcberraschung, m\\u00f6glicherweise weil die EPS-Diskrepanz (GAAP vs. Non-GAAP) Skepsis erzeugt. Insider-Cluster-K\\u00e4ufe sind noch nicht vollst\\u00e4ndig in institutionellen Flows eingepreist. Falls die Guidance-Phase in 45 Tagen GAAP-Profitabilit\\u00e4t best\\u00e4tigt, k\\u00f6nnte eine zweite Repricing-Welle einsetzen.\",\n        \"catalyst\": \"Q2 2026 Guidance-Update in ~45 Tagen mit potenzieller Best\\u00e4tigung von GAAP-Profitabilit\\u00e4t und Lithiumpreis-Erholung\",\n        \"bear_case\": \"GAAP-Verlust laut SEC EDGAR bei -$5.77 EPS signalisiert, dass die 'Blowout-Earnings' prim\\u00e4r auf Non-GAAP-Adjustierungen beruhen \\u2014 bei anhaltend niedrigen Lithiumpreisen und \\u00dcberkapazit\\u00e4ten droht eine Entt\\u00e4uschung in der n\\u00e4chsten Guidance-Phase.\",\n        \"macro_assessment\": \"Neutrale Makrolage (flache Kurve, Fed Funds bei 3.64%) bietet weder signifikanten R\\u00fccken- noch Gegenwind f\\u00fcr ALB. Das Zinsumfeld ist f\\u00fcr einen kapitalintensiven Rohstoff-Player wie Albemarle moderat belastend, aber nicht akut bedrohlich. Sektor-spezifische Risiken (Lithiumpreise, China-Konkurrenz) dominieren gegen\\u00fcber dem Makro-Signal.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.49,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 0.0697,\n        \"annualized_roi\": 0.2668,\n        \"dte\": 224\n      },\n      \"outcome\": null,\n      \"last_price\": 169.285,\n      \"current_return\": -0.1923\n    },\n    {\n      \"ticker\": \"ABNB\",\n      \"entry_date\": \"2026-05-08\",\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"mismatch\": 3.726,\n        \"z_score\": 0.255,\n        \"sigma_30d\": 0.0205,\n        \"price_move_48h\": 0.0052,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.5792\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-07-17\",\n        \"strike\": 140.0,\n        \"bid\": 13.55,\n        \"ask\": 14.3,\n        \"open_interest\": 793,\n        \"implied_vol\": 0.45691461059570315,\n        \"spread_ratio\": 0.0524,\n        \"dte\": 69\n      },\n      \"simulation\": {\n        \"current_price\": 145.71,\n        \"target_price\": 157.37,\n        \"hit_rate\": 0.6902,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0203,\n        \"alpha\": 0.00221\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Der KI-Code-Anteil von 60% ist prim\\u00e4r ein Effizienz-Narrativ, das bereits weitgehend eingepreist sein d\\u00fcrfte. Der Travel-Sektor handelt ABNB mit einem signifikanten Premium gegen\\u00fcber Peers \\u2014 ein KV von ~25x auf Forward-EPS l\\u00e4sst wenig Raum f\\u00fcr Entt\\u00e4uschungen, und Margin-Expansion durch KI ist bereits Konsens-Erwartung, kein Alpha-generierendes \\u00dcberraschungselement mehr.\",\n          \"argument_2\": \"Der Reise-Sektor steht unter strukturellem Gegenwind durch Konsumvorsicht: Bei Fed Funds Rate von 3.64% und Kerninflation, die den Verbraucher belastet, zeigen Leisure-Travel-Daten zunehmend Normalisierungstendenzen post-COVID-Boom. Expedia Q1 Earnings Highlights k\\u00f6nnten auf Preisdruck und sinkende Buchungsintensit\\u00e4t hindeuten, was direkt auf ABNBs Pricing-Power dr\\u00fcckt.\",\n          \"argument_3\": \"Die EPS-Divergenz zwischen yfinance (5.78) und SEC EDGAR (4.05) ist signifikant \\u2014 eine Abweichung von ~43% zwischen den Quellen signalisiert entweder au\\u00dferordentliche Ertr\\u00e4ge oder Accounting-Qualit\\u00e4tsprobleme. Kein echtes Signal ohne gekl\\u00e4rte Datengrundlage. Der Insider-Cluster-Kauf k\\u00f6nnte zudem Pflicht-Akquisitionen im Rahmen von Kompensationspaketen sein, nicht organisches Conviction-Signal.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein MC durchgef\\u00fchrt \\u2014 0% Hit-Rate ist technisches Artefakt, keine statistisch valide Aussage. Ohne Simulationsdaten fehlt jede quantitative Grundlage zur Pfad-Wahrscheinlichkeit. Concern bleibt medium, da fehlende MC-Daten keine Optimismus-Kontrolle erm\\u00f6glichen.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt untersch\\u00e4tzt die operative Hebelwirkung, wenn KI-gest\\u00fctzte Entwicklung die R&D-Kostenbasis strukturell senkt und Produktiterationszyklen beschleunigt. Insider-Cluster-K\\u00e4ufe \\u00fcber 14 Tage bei f\\u00fcnf Beteiligten erh\\u00f6hen die Signalqualit\\u00e4t gegen\\u00fcber Einzel-Transaktionen erheblich. Die Kombination aus Margin-Expansion und Summer-Travel-Katalysator 2026 ist im aktuellen Konsens noch nicht vollst\\u00e4ndig modelliert.\",\n        \"catalyst\": \"Q2 2026 Earnings Release mit KI-bedingter Margin-Expansion und Summer-Travel-Buchungsvolumen als operative Best\\u00e4tigung\",\n        \"bear_case\": \"EPS-Datendivergenz zwischen Quellen untergr\\u00e4bt die Bewertungsgrundlage; bei bereits hohem Bewertungsmultiple gen\\u00fcgt eine moderate Guidance-Verfehlung f\\u00fcr einen scharfen Kursr\\u00fcckgang von 15-20%.\",\n        \"macro_assessment\": \"Neutrales Makro-Umfeld mit flacher Kurve (0.49%) bietet weder strukturellen R\\u00fcckenwind noch aktiven Gegenwind. Fed Funds bei 3.64% belastet Consumer Cyclicals moderat \\u2014 kein Veto, aber Upside-Potenzial ist ged\\u00e4mpft. Keine Rezessionssignale, aber auch kein expansiver Tailwind.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.49,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 0.5561,\n        \"annualized_roi\": 4.573,\n        \"dte\": 69\n      },\n      \"outcome\": null,\n      \"last_price\": 134.37,\n      \"current_return\": -0.0778\n    },\n    {\n      \"ticker\": \"AVGO\",\n      \"entry_date\": \"2026-05-11\",\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 3.987,\n        \"z_score\": 0.403,\n        \"sigma_30d\": 0.0266,\n        \"price_move_48h\": 0.0107,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.6444\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-05-29\",\n        \"strike\": 420.0,\n        \"bid\": 24.35,\n        \"ask\": 25.45,\n        \"open_interest\": 1406,\n        \"implied_vol\": 0.5131274273681641,\n        \"spread_ratio\": 0.0432,\n        \"dte\": 17\n      },\n      \"simulation\": {\n        \"current_price\": 429.92,\n        \"target_price\": 471.51,\n        \"hit_rate\": 0.6704,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0288,\n        \"alpha\": 0.00261\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Der Headline 'Parabolic Semiconductor Rally Is Pricing In 2028 Already' ist ein massives Warnsignal: AVGO bei $429.92 handelt m\\u00f6glicherweise bereits weit \\u00fcber fairen Wert f\\u00fcr 2026-Fundamentaldaten. Wenn der Markt 2028-Gewinne diskontiert, ist das Aufw\\u00e4rtspotenzial strukturell begrenzt und Entt\\u00e4uschungsrisiko bei jedem Katalysator erheblich.\",\n          \"argument_2\": \"Die krasse EPS-Diskrepanz zwischen yfinance ($18.12) und SEC EDGAR ($5.12) deutet auf massive Goodwill-Amortisierungen, Akquisitionseffekte oder Non-GAAP-Adjustierungen hin. Ein KGV auf GAAP-Basis von ~84x bei einem Makroumfeld mit 4.32% 10Y-Rendite ist fundamental schwer zu rechtfertigen \\u2014 jede Zinserwartungsverschiebung nach oben dr\\u00fcckt den fairen Wert signifikant.\",\n          \"argument_3\": \"Der 'Nvidia caution into earnings'-Kontext ist ein zweischneidiges Schwert: Wenn Nvidia entt\\u00e4uscht oder Guidance schw\\u00e4cht, wird AVGO als AI-Proxy mit abgestraft \\u2014 unabh\\u00e4ngig von eigenen Fundamentaldaten. Der AI-Surge-Narrative ist ein Sentiment-getriebenes Signal, kein strukturelles, und Cluster-Insider-K\\u00e4ufe k\\u00f6nnen auch als Bodenbildung nach einem R\\u00fccksetzer interpretiert werden, nicht zwingend als bullishes Momentum-Signal.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein MC durchgef\\u00fchrt \\u2014 0% Hit-Rate bedeutet keine Datenbasis, nicht 'keine Chance'. Ohne MC-Statistik fehlt quantitative Absicherung der Upside-Wahrscheinlichkeit. Bei einem Titel mit ~35-45% impliziter Volatilit\\u00e4t (Semiconductor-Sektor) w\\u00e4ren realistische 30d-Hit-Rates auf ein definiertes Kursziel zwischen 45-65% zu erwarten. Die fehlenden Daten erh\\u00f6hen Unsicherheit erheblich.\",\n          \"concern_level\": \"high\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 7,\n        \"time_to_materialization\": \"4-8 Wochen\",\n        \"asymmetry_reasoning\": \"Der Markt fokussiert auf Nvidia-Risiken und \\u00fcbersieht AVGOs eigene Earnings-Katalysatoren sowie Insider-Cluster-Signale. Die Diskrepanz zwischen GAAP und Non-GAAP EPS verschleiert die operative St\\u00e4rke im AI-Networking-Segment. Sieben Insider-K\\u00e4ufe in 14 Tagen sind ein statistisch signifikantes Signal, das kurzfristig oft zu Underreaction f\\u00fchrt.\",\n        \"catalyst\": \"AVGO n\\u00e4chster Earnings-Report (voraussichtlich Q2 2026) mit AI-Networking-Segment-Guidance als prim\\u00e4rer Katalysator; sekund\\u00e4r Nvidia-Earnings-Reaktion als Proxy-Sentiment-Treiber\",\n        \"bear_case\": \"Parabolic AI-Valuations bereits 2028-Gewinne einpreisend \\u2014 jede Guidance-Entt\\u00e4uschung oder Nvidia-Schw\\u00e4che l\\u00f6st multiple Compression aus, GAAP-KGV ~84x bietet kein Puffer\",\n        \"macro_assessment\": \"Neutrales Makroumfeld (Kurve +48bp, Fed Funds 3.64%) ist weder Gegenwind noch R\\u00fcckenwind. Die 10Y-Rendite bei 4.32% belastet hochmultiple Wachstumstitel moderat \\u2014 bei einem KGV-Expansion-Trade ist dies ein strukturelles Hindernis, aber kein Deal-Breaker. Solange keine Rezessionssignale, bleibt der Technologie-Sektor grunds\\u00e4tzlich supportiert.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.48,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 5.0947,\n        \"annualized_roi\": null,\n        \"dte\": 17\n      },\n      \"outcome\": null,\n      \"last_price\": 418.5,\n      \"current_return\": -0.0266\n    },\n    {\n      \"ticker\": \"GOOG\",\n      \"entry_date\": \"2026-05-12\",\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"mismatch\": 0.516,\n        \"z_score\": 0.897,\n        \"sigma_30d\": 0.0241,\n        \"price_move_48h\": 0.0216,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"weak\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.6302\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-07-17\",\n        \"strike\": 400.0,\n        \"bid\": 13.5,\n        \"ask\": 13.7,\n        \"open_interest\": 4373,\n        \"implied_vol\": 0.3355779333496094,\n        \"spread_ratio\": 0.0146,\n        \"dte\": 65\n      },\n      \"simulation\": {\n        \"current_price\": 380.66,\n        \"target_price\": 411.11,\n        \"hit_rate\": 0.7384,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0191,\n        \"alpha\": 0.00292\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Die Isomorphic-Finanzierung von $2.1B ist ein Moonshot-Investment in einem hochspekulativen Bereich. AI-Drug-Discovery hat bislang kaum kommerziell skalierbare Ergebnisse geliefert, und der Zeitrahmen bis zur Monetarisierung liegt weit jenseits eines 2-6-Monats-Optionshorizonts. Der Markt hat dieses Kapital bereits teilweise eingepreist \\u2014 der Kurs steht bereits nahe 52-Wochen-Hoch, was das Upside-Potential f\\u00fcr Optionsk\\u00e4ufer drastisch einschr\\u00e4nkt.\",\n          \"argument_2\": \"GOOG ist in den letzten 48 Stunden bereits um -2,2% gefallen, obwohl die Isomorphic-Meldung positiv war. Dies deutet darauf hin, dass der Markt den Katalysator bereits absorbiert hat oder ihn negativ interpretiert (Kapitalallokation weg vom Core-Business). Ein 52-Wochen-Hoch kombiniert mit negativer Kursreaktion auf positive News ist ein klassisches 'Sell-the-News'-Muster und warnt vor weiterem Abw\\u00e4rtsdruck.\",\n          \"argument_3\": \"Der Makro-Kontext ist unklar (FRED nicht erreichbar), was strukturelle Risiken wie ein rezessives Umfeld oder restriktive Zinspolitik nicht ausschlie\\u00dft. Communication Services als Sektor ist besonders zinssensitiv, und Alphabet ist eines der drei Unternehmen, die laut News 70% der S&P-500-Wachstumserwartungen 2026 tragen \\u2014 ein hochkonzentriertes Exposure, das bei Makro-Entt\\u00e4uschung zu \\u00fcberproportionalen Kursverlusten f\\u00fchren kann.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein MC wurde durchgef\\u00fchrt, 0% Hit-Rate ist daher nicht aussagekr\\u00e4ftig und kein statistisches Signal. Die fehlende Simulation ist ein Datenl\\u00fccken-Problem, kein inhaltliches. Bei historischer GOOG-Volatilit\\u00e4t (annualisiert ca. 25-30%) w\\u00e4re eine 30-Tage-Aufw\\u00e4rtsbewegung mit konservativer Target-Definition realistisch bei 40-55% Hit-Rate \\u2014 der Abwesenheit von MC-Daten ist mit erh\\u00f6hter Skepsis zu begegnen.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Isomorphic-Deal wird prim\\u00e4r als Kostenfaktor wahrgenommen, nicht als Plattformstrategie, die Googles AI-Kompetenz in Life Sciences verankert. Insider-Cluster-K\\u00e4ufe unmittelbar nach der Meldung signalisieren, dass das Management den Kursr\\u00fcckgang als ungerechtfertigte \\u00dcberreaktion einsch\\u00e4tzt. Der Markt fokussiert auf kurzfristige Kapitalallokation, ignoriert aber den strukturellen Optionswert eines Portfolios aus AI-Moonshots.\",\n        \"catalyst\": \"Q2 2026 Earnings (voraussichtlich Juli 2026) mit Guidance zu Isomorphic-Integration und Cloud-AI-Umsatzwachstum als Validierungspunkt f\\u00fcr die strukturelle AI-Plattformthese.\",\n        \"bear_case\": \"GOOG handelt nahe 52-Wochen-Hoch mit negativer Kursreaktion auf positive Nachrichten \\u2014 klassisches Ersch\\u00f6pfungsmuster. Jede Makro-Verschlechterung oder Entt\\u00e4uschung bei Core-Werbeums\\u00e4tzen w\\u00fcrde den Isomorphic-Optionswert sofort diskontieren.\",\n        \"macro_assessment\": \"Makro-Daten nicht verf\\u00fcgbar (FRED offline). Ohne Zinsdaten und Kurvenstruktur ist eine pr\\u00e4zise Einsch\\u00e4tzung nicht m\\u00f6glich. Vorsicht geboten: Communication Services sind zinssensitiv, und GOOGs Stellung als S&P-Wachstumstreiber erh\\u00f6ht das systemische Risiko bei einem Makro-Schock. Neutral-bis-skeptisch.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"recessionary\",\n        \"macro_context\": {\n          \"yield_curve\": null,\n          \"regime\": \"recessionary\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 0.9405,\n        \"annualized_roi\": null,\n        \"dte\": 65\n      },\n      \"outcome\": null,\n      \"last_price\": 382.07,\n      \"current_return\": 0.0037\n    },\n    {\n      \"ticker\": \"BMY\",\n      \"entry_date\": \"2026-05-12\",\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 3.17,\n        \"z_score\": 0.566,\n        \"sigma_30d\": 0.0182,\n        \"price_move_48h\": 0.0103,\n        \"eps_drift\": 0.0084,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.5554\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-07-17\",\n        \"strike\": 57.5,\n        \"bid\": 2.19,\n        \"ask\": 2.28,\n        \"open_interest\": 920,\n        \"implied_vol\": 0.26099371826171874,\n        \"spread_ratio\": 0.0395,\n        \"dte\": 65\n      },\n      \"simulation\": {\n        \"current_price\": 56.95,\n        \"target_price\": 61.51,\n        \"hit_rate\": 0.6598,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0171,\n        \"alpha\": 0.00208\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Der $15.2B Hengrui-Deal ist gr\\u00f6\\u00dftenteils milestone-basiert und kein sofortiger Cash-Zufluss. Der Gro\\u00dfteil der Zahlungen h\\u00e4ngt von klinischen Entwicklungserfolgen ab, die \\u00fcber 5-10 Jahre verteilt sind. Early-Stage-Pipeline bedeutet hohes Scheitern-Risiko (historisch >90% Ausfallrate in Phase I/II), und der Markt k\\u00f6nnte die tats\\u00e4chliche Wahrscheinlichkeitsgewichtung bereits korrekt vorgenommen haben.\",\n          \"argument_2\": \"BMY tr\\u00e4gt eine erhebliche Schuldenlast aus fr\\u00fcheren Akquisitionen (Celgene, MyoKardia) und steht vor patent-bedingten Umsatzausf\\u00e4llen bei Schl\\u00fcsselprodukten wie Revlimid und Opdivo in den kommenden Jahren 2026-2028. Der Hengrui-Deal adressiert dieses strukturelle Problem kurzfristig nicht, und der operative Cash-Flow-Druck k\\u00f6nnte dominanter sein als die Pipeline-Neuigkeit.\",\n          \"argument_3\": \"Die EPS-Abweichung zwischen yfinance ($6.15) und SEC EDGAR ($3.54) betr\\u00e4gt faktisch ~73% (nicht 0.8% wie angegeben) \\u2014 ein massives Warnsignal f\\u00fcr Datenqualit\\u00e4t. Dieser Widerspruch k\\u00f6nnte auf au\\u00dferordentliche Posten, Goodwill-Abschreibungen oder adjustierte vs. GAAP-Zahlen hindeuten und macht eine fundamentale Bewertung erheblich unsicherer.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Hit-Rate 0% ist hier schlicht das Resultat eines nicht durchgef\\u00fchrten Monte-Carlo-Laufs (0 Pfade), nicht eines negativen Signals. Die Zahl ist bedeutungslos und kann weder als bullish noch bearish interpretiert werden. F\\u00fcr BMY mit typischer Healthcare-Volatilit\\u00e4t (IV ~25-35%) w\\u00e4ren bei einem 30-Tage-Horizont realistische Hit-Raten je nach Strike-Wahl zwischen 40-70% zu erwarten.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt fokussiert sich auf kurzfristige Patent-Cliff-Risiken und Schuldenlasten, w\\u00e4hrend der strukturelle Pipeline-Aufbau durch Hengrui erst in 12-24 Monaten in Analystenmodellen auftaucht. Sechs Insider-K\\u00e4ufe im Cluster deuten auf informierten Optimismus hin, der \\u00fcber den \\u00f6ffentlichen Deal hinausgeht. Die Kombination aus chinesischer Produktionsskalierung und BMS-Vertrieb schafft eine Asymmetrie, die kurzfristige Modelle strukturell untersch\\u00e4tzen.\",\n        \"catalyst\": \"Erste klinische Datenpunkte zu Hengrui-Partnerschafts-Assets in H2 2026 sowie potenziell positive Phase-III-Readouts bei bestehenden BMY-Pipeline-Kandidaten (z.B. milvexian), die das Repricing beschleunigen k\\u00f6nnten.\",\n        \"bear_case\": \"Patent-Erosion bei Revlimid/Opdivo trifft den freien Cashflow 2026-2028 strukturell, und der Hengrui-Deal liefert keine kurzfristige Kompensation \\u2014 milestone-abh\\u00e4ngige Zahlungsstruktur bedeutet, dass der $15.2B-Headline realistisch mit 10-15% Wahrscheinlichkeitsgewichtung bewertet werden muss.\",\n        \"macro_assessment\": \"FRED-Daten nicht verf\\u00fcgbar, was die Zinseinsch\\u00e4tzung erschwert. Healthcare gilt in unsicheren Makro-Umfeldern als defensiver Sektor, was BMY bei einer m\\u00f6glichen wirtschaftlichen Verlangsamung 2026 relative St\\u00e4rke verleihen k\\u00f6nnte. Allerdings sind h\\u00f6here Kapitalkosten f\\u00fcr pharmazeutische M&A und Lizenz-Deals generell belastend \\u2014 die Hengrui-Dealstruktur k\\u00f6nnte unter h\\u00f6herem Zinsdruck weniger attraktiv sein als bei Niedrigzins.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"recessionary\",\n        \"macro_context\": {\n          \"yield_curve\": null,\n          \"regime\": \"recessionary\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 1.2594,\n        \"annualized_roi\": null,\n        \"dte\": 65\n      },\n      \"outcome\": null,\n      \"last_price\": 58.33,\n      \"current_return\": 0.0242\n    },\n    {\n      \"ticker\": \"CVX\",\n      \"entry_date\": \"2026-05-12\",\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"mismatch\": 1.513,\n        \"z_score\": 0.697,\n        \"sigma_30d\": 0.0176,\n        \"price_move_48h\": 0.0123,\n        \"eps_drift\": 0.0157,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"weak\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.51\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-05-29\",\n        \"strike\": 190.0,\n        \"bid\": 2.35,\n        \"ask\": 2.54,\n        \"open_interest\": 989,\n        \"implied_vol\": 0.2386550744628906,\n        \"spread_ratio\": 0.0748,\n        \"dte\": 16\n      },\n      \"simulation\": {\n        \"current_price\": 186.58,\n        \"target_price\": 201.51,\n        \"hit_rate\": 0.6128,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0153,\n        \"alpha\": 0.00232\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Der \\u00d6lpreis ist bereits durch Iran-Spannungen gestiegen, was bedeutet, dass ein erheblicher Teil des geopolitischen Risikoaufschlags bereits eingepreist sein d\\u00fcrfte. CVX notiert bei $186.58 nach einem +1.2% Move in 48h \\u2014 der Markt hat das Katalysator-Szenario bereits teilweise absorbiert. Ein De-Eskalationssignal (Verhandlungen, Sanktionslockerung) k\\u00f6nnte den \\u00d6lpreis schnell 5-8% korrigieren lassen und CVX \\u00fcberproportional belasten.\",\n          \"argument_2\": \"Die EPS-Abweichung zwischen yfinance ($12.09) und SEC EDGAR ($5.84) betr\\u00e4gt faktisch \\u00fcber 100% \\u2014 nicht die gemeldeten 1.6% \\u2014 was auf ernsthafte Datenqualit\\u00e4tsprobleme hinweist. Eine derartige Divergenz deutet auf unterschiedliche Berechnungsgrundlagen (z.B. verw\\u00e4ssertes vs. adjustiertes EPS) hin und macht die Bewertungsgrundlage f\\u00fcr den Trade \\u00e4u\\u00dferst fragw\\u00fcrdig. Trades auf Basis korrumpierter Fundamentaldaten tragen ein inh\\u00e4rentes Modellrisiko.\",\n          \"argument_3\": \"Der Energiesektor leidet 2026 unter strukturellem Gegenwind durch beschleunigte Energiewende-Politik und m\\u00f6gliche Nachfrageschw\\u00e4che bei globaler Wachstumsverlangsamung. Gleichzeitig deuten Inflations\\u00e4ngste laut News auf ein Zinsumfeld hin, das Risk-Assets allgemein unter Druck setzt \\u2014 steigende Kapitalkosten belasten kapitalintensive Energieunternehmen wie CVX strukturell. Die 6 Insider-K\\u00e4ufe k\\u00f6nnten auch opportunistisches Dip-Buying nach einem bereits schwachen Q1 2026 sein, kein Forward-Signal.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Der Quick MC wurde nicht durchgef\\u00fchrt (0 Pfade), was bedeutet keinerlei statistische Validierung des Trades existiert. Bei einer fehlenden Hit-Rate-Berechnung ist das Concern-Level automatisch hoch, da keine probabilistische Absicherung der Bullish-These vorliegt. Die Abwesenheit von MC-Daten ist kein neutrales Signal \\u2014 sie ist ein Warnsignal f\\u00fcr Datenqualit\\u00e4t oder Systemfehler.\",\n          \"concern_level\": \"high\"\n        },\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"4-8 Wochen\",\n        \"asymmetry_reasoning\": \"Der Markt untersch\\u00e4tzt m\\u00f6glicherweise die Nachhaltigkeit des Iran-Risikoaufschlags, da geopolitische Krisen 2026 l\\u00e4nger eskaliert bleiben als historisch \\u00fcblich. Sechs simultane Insider-K\\u00e4ufe innerhalb von 14 Tagen sind ein seltenes Cluster-Signal mit statistisch positiver Vorhersagekraft. Die AI-Datencenter-Nachfrage nach Energie schafft einen neuen strukturellen Nachfragetreiber, der im Konsensmodell noch nicht vollst\\u00e4ndig ber\\u00fccksichtigt ist.\",\n        \"catalyst\": \"Eskalation Iran-Spannungen treibt Brent Crude \\u00fcber $90/bbl + AI-Datencenter-Energienachfrage-Ank\\u00fcndigungen Q2 2026\",\n        \"bear_case\": \"Geopolitische De-Eskalation oder OPEC+-Angebotsausweitung kollabiert \\u00d6lpreis, EPS-Datenbasis ist unzuverl\\u00e4ssig, globale Wachstumsverlangsamung dr\\u00fcckt Energienachfrage.\",\n        \"macro_assessment\": \"FRED-Daten nicht verf\\u00fcgbar, was die Makroeinsch\\u00e4tzung erheblich einschr\\u00e4nkt. Aus den News ergibt sich ein Bild von Inflations\\u00e4ngsten kombiniert mit geopolitischen Risiken \\u2014 ein stagflation\\u00e4res Umfeld, das Energie-Commodities kurzfristig st\\u00fctzt, aber Real-Asset-Bewertungen langfristig belastet. Die Zinsunsicherheit 2026 mahnt zur Vorsicht bei kapitalintensiven Sektoren.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"recessionary\",\n        \"macro_context\": {\n          \"yield_curve\": null,\n          \"regime\": \"recessionary\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 11.5281,\n        \"annualized_roi\": null,\n        \"dte\": 16\n      },\n      \"outcome\": null,\n      \"last_price\": 193.04,\n      \"current_return\": 0.0346\n    },\n    {\n      \"ticker\": \"META\",\n      \"entry_date\": \"2026-05-13\",\n      \"features\": {\n        \"impact\": 4,\n        \"surprise\": 5,\n        \"mismatch\": 2.19,\n        \"z_score\": 0.362,\n        \"sigma_30d\": 0.03,\n        \"price_move_48h\": 0.0109,\n        \"eps_drift\": 0.0004,\n        \"bin_impact\": \"low\",\n        \"bin_mismatch\": \"weak\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.525\n      },\n      \"strategy\": \"LONG_PUT\",\n      \"option\": {\n        \"expiry\": \"2026-05-29\",\n        \"strike\": 600.0,\n        \"bid\": 11.9,\n        \"ask\": 12.5,\n        \"open_interest\": 1285,\n        \"implied_vol\": 0.3248053359985351,\n        \"spread_ratio\": 0.048,\n        \"dte\": 15\n      },\n      \"simulation\": {\n        \"current_price\": 608.73,\n        \"target_price\": 657.43,\n        \"hit_rate\": 0.5988,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0235,\n        \"alpha\": 0.00073\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Der interne Mitarbeiterprotest gegen Mouse-Tracking ist ein weicher, schwer quantifizierbarer Katalysator. Interne Proteste bei Meta haben historisch selten zu regulatorischen Ma\\u00dfnahmen gef\\u00fchrt, die materielle finanzielle Auswirkungen hatten. Der Optionsmarkt d\\u00fcrfte dieses Risiko bewusst niedrig gewichten, da es keine direkte beh\\u00f6rdliche Einleitung gibt und das Signal eher PR-sensitiv als regulatorisch-bindend ist.\",\n          \"argument_2\": \"Die EPS-Abweichung zwischen yfinance (36.19) und SEC EDGAR (27.49) ist mit \\u00fcber 30% dramatisch und weist auf erhebliche Datenunsicherheit hin. Diese Diskrepanz deutet m\\u00f6glicherweise auf unterschiedliche Berechnungsbasen hin, macht aber jede Bewertungsmodellierung unzuverl\\u00e4ssig. Ein Trade auf Basis fraglicher EPS-Daten erh\\u00f6ht das Modellrisiko erheblich.\",\n          \"argument_3\": \"Der Aktienkurs von $608.73 impliziert ein hohes Bewertungsniveau, und ein bearishes Signal durch Regulatory Risk trifft auf einen Markt, der META mit Premium-Multiples bewertet. Sollte das Regulierungsrisiko aus dem Protest eskalieren (EU AI Act, FTC-Schritte), k\\u00f6nnte eine schnelle Multiple-Kompression einsetzen. Gleichzeitig schw\\u00e4cht das Insider-Kaufcluster (4 K\\u00e4ufe in 14 Tagen) die bearishe These erheblich.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"0% Hit-Rate bedeutet, dass kein Quick MC durchgef\\u00fchrt wurde \\u2014 es gibt keine statistische Validierung der Kursrichtung. Bei einem Titel wie META mit impliziter Volatilit\\u00e4t von typischerweise 25-35% w\\u00e4re eine 30d-Simulation mit klarem Richtungssignal methodisch notwendig. Das Fehlen jeglicher MC-Daten erh\\u00f6ht die Unsicherheit und erlaubt keine Aussage \\u00fcber Trefferwahrscheinlichkeit.\",\n          \"concern_level\": \"high\"\n        },\n        \"impact\": 4,\n        \"surprise\": 5,\n        \"direction\": \"BEARISH\",\n        \"bear_case_severity\": 5,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt untersch\\u00e4tzt, dass interner Protest bei Tech-Unternehmen als Fr\\u00fchindikator f\\u00fcr regulatorische Eskalation dienen kann, insbesondere im EU-Kontext. Insider-K\\u00e4ufe konterkarieren zwar das Signal, signalisieren aber auch, dass das Management selbst keine unmittelbare materielle Bedrohung sieht. Das eigentliche Risiko liegt in der medialen Verst\\u00e4rkung des Protests, die externe Regulatoren aktivieren k\\u00f6nnte.\",\n        \"catalyst\": \"Regulatorische Einleitung durch EU-Datenschutzbeh\\u00f6rden oder FTC basierend auf Mitarbeiter-Whistleblowing zum Mouse-Tracking-Tool\",\n        \"bear_case\": \"Vier Insider-K\\u00e4ufe innerhalb von 14 Tagen sind ein starkes kontr\\u00e4res Signal und deuten darauf hin, dass das Management das Regulatory Risk als begrenzt einsch\\u00e4tzt \\u2014 dies widerlegt die bearishe These strukturell.\",\n        \"macro_assessment\": \"Das neutrale Makro-Umfeld (flache Kurve, Fed Funds bei 3.64%) bietet weder R\\u00fccken- noch Gegenwind. Bei einem neutralen Regime ist das idiosynkratische Risiko (Regulierung) der dominante Faktor, allerdings reicht das vorliegende Signal nicht f\\u00fcr ein Impact >6, da strukturelle Klarheit fehlt.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.46,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 14.5207,\n        \"annualized_roi\": null,\n        \"dte\": 15\n      },\n      \"outcome\": null,\n      \"last_price\": 604.64,\n      \"current_return\": -0.0067\n    },\n    {\n      \"ticker\": \"BA\",\n      \"entry_date\": \"2026-05-14\",\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"mismatch\": 4.524,\n        \"z_score\": 0.095,\n        \"sigma_30d\": 0.0217,\n        \"price_move_48h\": 0.0021,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.5988\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-05-29\",\n        \"strike\": 240.0,\n        \"bid\": 7.65,\n        \"ask\": 8.1,\n        \"open_interest\": 5398,\n        \"implied_vol\": 0.3627,\n        \"spread_ratio\": 0.0556,\n        \"dte\": 14,\n        \"delta\": 0.5405,\n        \"data_source\": \"tradier\"\n      },\n      \"simulation\": {\n        \"current_price\": 240.6,\n        \"target_price\": 259.85,\n        \"hit_rate\": 0.7066,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0212,\n        \"alpha\": 0.00241\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Der 500-Jet-Deal mit China ist ein klassischer politischer Ballon: \\u00c4hnliche Deals wurden unter fr\\u00fcheren Trump-China-Gipfeln angek\\u00fcndigt und verschwanden danach in geopolitischen Verhandlungsschubladen. Boeing hat seit Jahren Lieferprobleme, Qualit\\u00e4tsm\\u00e4ngel und FAA-Einschr\\u00e4nkungen \\u2014 selbst wenn der Deal unterzeichnet wird, sind Auslieferungen in einem 2-6-Monats-Fenster strukturell nicht m\\u00f6glich.\",\n          \"argument_2\": \"Der Markt hat bereits mit der Headline-Welle reagiert: Die Aktie notiert nur -0,2% in 48h trotz massiver Berichterstattung, was darauf hindeutet, dass der Catalyst bereits im Preis ist oder von institutionellen Investoren als nicht substanziell eingestuft wird. Der Haiku-Prescreener behauptet 'Markt repriced noch nicht vollst\\u00e4ndig', aber die Preisbewegung widerspricht dieser These.\",\n          \"argument_3\": \"Boeing k\\u00e4mpft weiterhin mit strukturellen operativen Risiken: EPS-Diskrepanz zwischen yfinance (4,23) und SEC EDGAR (2,53) deutet auf Datenqualit\\u00e4tsprobleme hin, und das tats\\u00e4chliche EPS von 2,53 impliziert ein hohes KGV bei 240,60 USD. Der R\\u00fcstungs- und Luftfahrtsektor ist zudem anf\\u00e4llig f\\u00fcr Exportkontroll-Gegenma\\u00dfnahmen, falls die Iran-Kriegssituation eskaliert.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Der Quick MC liefert 0 Pfade und 0% Hit-Rate \\u2014 dies bedeutet kein Modell wurde durchgef\\u00fchrt, nicht dass die Wahrscheinlichkeit null ist. Statistisch keine Aussagekraft. Bei einer historischen 30d-Volatilit\\u00e4t von BA (~30-35% annualisiert) w\\u00e4re eine realistische Hit-Rate f\\u00fcr eine moderato bullische These im Bereich 45-60%, was weder \\u00fcberm\\u00e4\\u00dfig optimistisch noch pessimistisch w\\u00e4re. Der fehlende MC erh\\u00f6ht die Datelunsicherheit erheblich.\",\n          \"concern_level\": \"high\"\n        },\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 7,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt preist den Deal als spekulatives Ereignisrisiko, nicht als strukturellen Umsatztreiber, was bei Vertragsunterzeichnung eine Neubewertung erzwingen w\\u00fcrde. Insider-Cluster-K\\u00e4ufe von 5 Personen in 14 Tagen sind ein unabh\\u00e4ngiges Signal mit historisch positiver Trefferquote. Der geopolitische Optionswert eines sino-amerikanischen Handelsrahmens ist schwer quantifizierbar und wird von Modellen systematisch untersch\\u00e4tzt.\",\n        \"catalyst\": \"Formelle Unterzeichnung eines Rahmenvertrags f\\u00fcr 500 Boeing-Jets w\\u00e4hrend des Trump-Xi-Gipfels im Mai/Juni 2026, gefolgt von FAA-Zertifizierungsfortschritten f\\u00fcr China-Lieferungen\",\n        \"bear_case\": \"Deal bleibt eine politische Absichtserkl\\u00e4rung ohne bindende Kaufverpflichtung; operative Produktionsengp\\u00e4sse bei Boeing verhindern glaubw\\u00fcrdige Lieferpl\\u00e4ne, und IV-Crush nach dem Summit-Hype dr\\u00fcckt Optionsstrategien ins Minus\",\n        \"macro_assessment\": \"Neutral-Makro mit flacher Kurve (10Y-2Y: 0,48%) und Fed Funds bei 3,64% bietet kein direktes R\\u00fccken- oder Gegenwindprofil f\\u00fcr BA. Das Zinsumfeld beg\\u00fcnstigt kapitalintensive Industrials nicht stark, d\\u00e4mpft aber auch keine zyklische Erholung aktiv. Der Iran-Konflikt im Hintergrund ist das gr\\u00f6\\u00dfte Makro-Tail-Risk f\\u00fcr den Trade.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.48,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 8.0814,\n        \"annualized_roi\": null,\n        \"dte\": 14\n      },\n      \"outcome\": null\n    },\n    {\n      \"ticker\": \"AKAM\",\n      \"entry_date\": \"2026-05-14\",\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 6,\n        \"mismatch\": 4.033,\n        \"z_score\": 0.193,\n        \"sigma_30d\": 0.0647,\n        \"price_move_48h\": 0.0125,\n        \"eps_drift\": 0.0777,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"relevant\",\n        \"quick_mc_hit_rate\": 0.5514\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-08-21\",\n        \"strike\": 155.0,\n        \"bid\": 23.0,\n        \"ask\": 25.1,\n        \"open_interest\": 814,\n        \"implied_vol\": 0.6025,\n        \"spread_ratio\": 0.0837,\n        \"dte\": 98,\n        \"delta\": 0.6268,\n        \"data_source\": \"tradier\"\n      },\n      \"simulation\": {\n        \"current_price\": 161.14,\n        \"target_price\": 184.0,\n        \"hit_rate\": 0.5538,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0423,\n        \"alpha\": 0.00055\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"AKAM hat ein 26-Jahres-Hoch erreicht, was technisch eine extreme \\u00dcberdehnung signalisiert. Bei solchen historischen Extremen ist das Risiko eines 'Buy the news, sell the fact'-Musters sehr hoch: Der Kursanstieg k\\u00f6nnte den Katalysator bereits vollst\\u00e4ndig eingepreist haben, sodass selbst positive Earnings-\\u00dcberraschungen keine weitere Aufw\\u00e4rtsbewegung erzeugen. Mean-Reversion-Risiko ist bei Multi-Dekaden-Hochs statistisch signifikant erh\\u00f6ht.\",\n          \"argument_2\": \"Die EPS-Abweichung zwischen yfinance (7.28) und SEC EDGAR (3.19) ist mit ~128% dramatisch und deutet auf massive Diskrepanzen in der Gewinnqualit\\u00e4t hin \\u2014 m\\u00f6glicherweise durch One-Time-Items oder Non-GAAP-Adjustments verzerrt. Wenn der Markt auf GAAP-Basis bewertet und das 'wahre' EPS n\\u00e4her an 3.19 liegt, ist AKAM auf einem 26-Jahr-Hoch erheblich \\u00fcberbewertet. Diese Datenunsicherheit untergr\\u00e4bt jede fundamentale Bullish-These.\",\n          \"argument_3\": \"7 Insider-K\\u00e4ufe in 14 Tagen klingen bullish, k\\u00f6nnen aber auch als koordiniertes Signal zur Kurspflege vor einem Lock-up-Ablauf oder Sekund\\u00e4rangebot interpretiert werden. Zudem ist der Haiku-Prescreening-Katalysator vage ('m\\u00f6gliche bevorstehende Earnings oder Produkt\\u00e4nderung') \\u2014 ohne konkreten datierten Trigger ist das Signal schwach. IV-Crush nach Earnings k\\u00f6nnte Long-Options-Positionen trotz korrekter Directional-View vernichten.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein MC durchgef\\u00fchrt (0 Pfade) \\u2014 keine statistische Aussage m\\u00f6glich. Die fehlenden Daten erh\\u00f6hen die Unsicherheit erheblich. Bei einem Preis auf 26-Jahres-Hoch und einer 48h-Bewegung von nur +1.3% erscheint kurzfristige Momentum-Fortsetzung m\\u00f6glich, aber ohne MC-Baseline ist keine Hit-Rate bewertbar. Das Fehlen des MC-Runs ist an sich ein Warnsignal f\\u00fcr die Modellkonfidenz.\",\n          \"concern_level\": \"high\"\n        },\n        \"impact\": 5,\n        \"surprise\": 6,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 7,\n        \"time_to_materialization\": \"4-8 Wochen\",\n        \"asymmetry_reasoning\": \"Der Markt k\\u00f6nnte den Insider-Cluster-Kauf untersch\\u00e4tzen, da solche Signale oft erst mit Verz\\u00f6gerung in institutionellen Flows reflektiert werden. Die EPS-Diskrepanz schafft Unsicherheit, die kurzfristig Leerverk\\u00e4ufer abschreckt aber auch Bulls z\\u00f6gern l\\u00e4sst. Der spezifische Katalysator (26-Jahr-Hoch-Newsflow) k\\u00f6nnte weiteres FOMO-Momentum aus passiven ETF-Rebalancierungen ausl\\u00f6sen.\",\n        \"catalyst\": \"Spezifischer, noch nicht vollst\\u00e4ndig kommunizierter Unternehmens-Katalysator (Produktank\\u00fcndigung oder struktureller Gesch\\u00e4ftsbereichswandel) der das 26-Jahres-Hoch ausgel\\u00f6st hat, kombiniert mit Insider-Cluster-K\\u00e4ufen als Best\\u00e4tigungssignal vor Q2-2026-Earnings.\",\n        \"bear_case\": \"Extreme \\u00dcberbewertung auf 26-Jahres-Hoch bei gleichzeitig massiver EPS-Diskrepanz (GAAP vs. Non-GAAP) macht AKAM anf\\u00e4llig f\\u00fcr harten Kursr\\u00fccksetzer sobald der Katalysator vollst\\u00e4ndig eingepreist ist oder Earnings entt\\u00e4uschen \\u2014 IV-Crush nach Earnings k\\u00f6nnte Options-Positionen trotz korrekter Richtung vernichten.\",\n        \"macro_assessment\": \"Neutrales Makro-Umfeld (Kurve +0.48%, Fed bei 3.64%) liefert weder R\\u00fccken- noch Gegenwind. Die flache Kurve deutet auf \\u00dcbergangsphase hin \\u2014 Tech-Einzelwerte k\\u00f6nnen in diesem Regime alpha-generieren, aber der fehlende makro\\u00f6konomische R\\u00fcckenwind bedeutet, dass das Signal rein auf fundamentaler/katalysator-getriebener Basis stehen muss, was angesichts der EPS-Unsicherheit problematisch ist.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.48,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 0.2941,\n        \"annualized_roi\": 1.5682,\n        \"dte\": 98\n      },\n      \"outcome\": null\n    },\n    {\n      \"ticker\": \"ALB\",\n      \"entry_date\": \"2026-05-14\",\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"mismatch\": 3.818,\n        \"z_score\": 0.236,\n        \"sigma_30d\": 0.0416,\n        \"price_move_48h\": 0.0098,\n        \"eps_drift\": 0.0234,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.538\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-07-17\",\n        \"strike\": 210.0,\n        \"bid\": 18.0,\n        \"ask\": 18.8,\n        \"open_interest\": 343,\n        \"implied_vol\": 0.6297,\n        \"spread_ratio\": 0.0426,\n        \"dte\": 63,\n        \"delta\": 0.5017,\n        \"data_source\": \"tradier\"\n      },\n      \"simulation\": {\n        \"current_price\": 200.94,\n        \"target_price\": 226.59,\n        \"hit_rate\": 0.563,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0381,\n        \"alpha\": 0.00045\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Die Headline '238.1% One-Year Surge' ist ein massives Warnsignal: Ein derartiger Anstieg bedeutet, dass ein erheblicher Teil der positiven Katalysatoren \\u2013 Pentagon-Deadline, geopolitische Seltene-Erden-Narrative, Lithium-Recovery \\u2013 bereits eingepreist ist. Bei einem Kurs von ~$201 nach solch einer Rally ist das Upside-Potenzial asymmetrisch nach unten verzerrt, w\\u00e4hrend Entt\\u00e4uschungsrisiken (verfehlte Deadline, politischer R\\u00fcckzieher, keine konkreten Vertragsank\\u00fcndigungen) erheblich sind.\",\n          \"argument_2\": \"Der EPS-Konflikt zwischen yfinance (+10.95) und SEC EDGAR (-3.34) ist gravierend und deutet auf erhebliche Datenqualit\\u00e4tsprobleme hin. Ein negatives SEC-EPS w\\u00fcrde bedeuten, dass ALB trotz narrativer St\\u00e4rke fundamentale Verluste schreibt \\u2013 was bei einer Bewertung auf Basis positiver EPS-Erwartungen zu einer Neubewertung nach unten f\\u00fchren k\\u00f6nnte, sobald die tats\\u00e4chlichen Zahlen breiter kommuniziert werden.\",\n          \"argument_3\": \"Lithiumpreise bleiben strukturell unter Druck durch globales \\u00dcberangebot aus Australien und Chile sowie schwache EV-Nachfrage in China und Europa. ALBs operative Margen sind direkten Lithiumpreisen exponiert, und die Pentagon-Seltene-Erden-Narrative verdeckt, dass ALBs Kerngesch\\u00e4ft Lithium ist \\u2013 nicht kritische Erden. Der Katalysator k\\u00f6nnte damit am falschen Ticker h\\u00e4ngen und sich bei n\\u00e4herer Betrachtung als nicht-material f\\u00fcr ALBs tats\\u00e4chliche Cashflows erweisen.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein MC durchgef\\u00fchrt (0 Pfade) \\u2013 keine statistische Validierung m\\u00f6glich. Bei einem Titel mit 238% 1-Jahres-Performance und hoher IV ist das Fehlen des MC-Outputs ein Datenl\\u00fccke, die die Konfidenz senkt. Ohne Hit-Rate-Validierung muss die Bewertung rein fundamental-qualitativ erfolgen, was den concern_level erh\\u00f6ht.\",\n          \"concern_level\": \"high\"\n        },\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 7,\n        \"time_to_materialization\": \"6 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt hat den Pentagon-Katalysator partiell eingepreist, untersch\\u00e4tzt aber die Wahrscheinlichkeit konkreter Beschaffungsvertr\\u00e4ge vor der 8-Monats-Deadline im Januar 2027. Der EPS-Konflikt verunsichert institutionelle K\\u00e4ufer, was eine echte Bewertungsuntersicherheit schafft. Das Insider-Cluster-Signal (7 K\\u00e4ufe in 14 Tagen) deutet auf informierten Flow hin, der einen nicht-\\u00f6ffentlichen Katalysator antizipieren k\\u00f6nnte.\",\n        \"catalyst\": \"Pentagon-Deadline Januar 2027 f\\u00fcr Seltene-Erden-Unabh\\u00e4ngigkeit mit m\\u00f6glichen Exklusivvertr\\u00e4gen oder strategischen Reserveprogrammen, kombiniert mit Insider-Kaufcluster als Vorlaufindikator\",\n        \"bear_case\": \"ALBs Kernexposition liegt bei Lithium, nicht Seltenen Erden \\u2013 das geopolitische Narrativ trifft den falschen Ticker, und nach 238% Rally sind Entt\\u00e4uschungsrisiken erheblich h\\u00f6her als weiteres Upside.\",\n        \"macro_assessment\": \"Neutrale Zinskurve (+0.48%) und Fed Funds bei 3.64% bieten kein aktives Makro-Gegenwind-Szenario, aber auch keinen R\\u00fcckenwind. Basic Materials sind in \\u00dcbergangsphasen anf\\u00e4llig f\\u00fcr sektorspezifische Rotationen. Das neutrale Regime erlaubt die BULLISH-Einsch\\u00e4tzung, reduziert aber den Conviction-Level auf moderat.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.48,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 0.686,\n        \"annualized_roi\": null,\n        \"dte\": 63\n      },\n      \"outcome\": null\n    },\n    {\n      \"ticker\": \"CDNS\",\n      \"entry_date\": \"2026-05-14\",\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"mismatch\": 2.684,\n        \"z_score\": 0.463,\n        \"sigma_30d\": 0.0277,\n        \"price_move_48h\": 0.0128,\n        \"eps_drift\": 0.0023,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"weak\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.6004\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-07-17\",\n        \"strike\": 360.0,\n        \"bid\": 21.5,\n        \"ask\": 23.7,\n        \"open_interest\": 289,\n        \"implied_vol\": 0.3988,\n        \"spread_ratio\": 0.0928,\n        \"dte\": 63,\n        \"delta\": 0.5158,\n        \"data_source\": \"tradier\"\n      },\n      \"simulation\": {\n        \"current_price\": 354.55,\n        \"target_price\": 385.07,\n        \"hit_rate\": 0.66,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0257,\n        \"alpha\": 0.00174\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Der Aeva 4D LiDAR Licensing-Win ist prim\\u00e4r ein Erfolg f\\u00fcr Aeva Technologies, nicht f\\u00fcr Cadence Design Systems. CDNS profitiert allenfalls indirekt als EDA-Tool-Anbieter f\\u00fcr Chip-Design \\u2013 der direkte Umsatzbeitrag d\\u00fcrfte auf 2-6 Monatssicht marginal sein und rechtfertigt keine strukturelle Neubewertung. Der Markt hat die Story bereits aufgenommen (Headline-Driven), der tats\\u00e4chliche Revenue-Impact bleibt spekulativ.\",\n          \"argument_2\": \"Die EPS-Abweichung zwischen yfinance (9.38) und SEC EDGAR (4.30) ist erheblich und deutet auf Datenkonsistenzprobleme hin \\u2013 m\\u00f6glicherweise GAAP vs. Non-GAAP-Vermischung. Bei einem KGV von ~38x (auf GAAP-Basis) ist CDNS bei $354 ambitioniert bewertet. Jede Entt\\u00e4uschung bei Guidance oder Makro-Verlangsamung im EDA-Markt k\\u00f6nnte eine signifikante Neubewertung nach unten ausl\\u00f6sen.\",\n          \"argument_3\": \"Der Insider-Kauf-Cluster von 8 Personen in 14 Tagen klingt bullisch, kann aber auch durch Compensation-Plan-getriebene Options-Aus\\u00fcbungen oder verpflichtende Aktienprogramme erkl\\u00e4rt werden \\u2013 kein echtes discretionary Buying. Gleichzeitig ist die 48h-Preis\\u00adbewegung von -1.3% trotz positiver News ein schwaches Zeichen daf\\u00fcr, dass der Markt die LiDAR-Story bereits teilweise eingepreist oder schlicht als f\\u00fcr CDNS irrelevant eingestuft hat.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"0% Hit-Rate basiert auf fehlendem Quick MC \\u2013 keine Simulation durchgef\\u00fchrt. Ohne MC-Daten ist eine statistische Validierung unm\\u00f6glich. Bei CDNS historischer Volatilit\\u00e4t von ~30-35% w\\u00e4re eine realistische 30d-Hit-Rate f\\u00fcr bullische Szenarien im Bereich 45-60% zu erwarten. Die fehlenden Daten reduzieren die Modellkonfidenz erheblich.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt behandelt den LiDAR-Win als Aeva-Story und untersch\\u00e4tzt CDNS als strukturellen EDA-Profiteur des Robotik/Autonomie-Booms. Acht Insider-K\\u00e4ufe als Cluster-Signal sind statistisch ungew\\u00f6hnlich und deuten auf interne Zuversicht bez\\u00fcglich des Pipeline-Werts hin. Die negative 48h-Reaktion trotz positiver News schafft eine kurzfristige Fehlbewertung, die sich mit dem n\\u00e4chsten Earnings-Katalysator schlie\\u00dfen k\\u00f6nnte.\",\n        \"catalyst\": \"CDNS Q2 2026 Earnings mit Guidance-Update zu Robotik/Autonomie-Segment und konkreten LiDAR-Design-Win-Volumina\",\n        \"bear_case\": \"CDNS ist auf GAAP-Basis mit KGV ~80x (EPS $4.30) extrem teuer \\u2013 jede Makro-Abschw\\u00e4chung im Halbleiter-/EDA-Markt oder Guidanceentt\\u00e4uschung triggert Multiple-Compression von 20-30%.\",\n        \"macro_assessment\": \"Neutrale Zinskurve (0.48%) und Fed Funds bei 3.64% bieten weder R\\u00fccken- noch Gegenwind. Das Umfeld ist moderat konstruktiv f\\u00fcr Growth-Tech, aber CDNS hohes Multiple macht den Titel anf\\u00e4llig f\\u00fcr Rate-Surprise nach oben. Kein makro\\u00f6konomisches Veto, aber kein R\\u00fcckenwind-Bonus.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.48,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 0.7283,\n        \"annualized_roi\": null,\n        \"dte\": 63\n      },\n      \"outcome\": null\n    },\n    {\n      \"ticker\": \"BKR\",\n      \"entry_date\": \"2026-05-17\",\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"mismatch\": 2.74,\n        \"z_score\": 0.452,\n        \"sigma_30d\": 0.0214,\n        \"price_move_48h\": 0.0097,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"weak\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.6604\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-06-18\",\n        \"strike\": 65.0,\n        \"bid\": 2.4,\n        \"ask\": 2.65,\n        \"open_interest\": 1776,\n        \"implied_vol\": 0.359,\n        \"spread_ratio\": 0.0943,\n        \"dte\": 31,\n        \"delta\": 0.4872,\n        \"data_source\": \"tradier\"\n      },\n      \"simulation\": {\n        \"current_price\": 64.12,\n        \"target_price\": 69.25,\n        \"hit_rate\": 0.75,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0209,\n        \"alpha\": 0.0031\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Der Rig-Count-Anstieg ist ein zyklisches, nicht strukturelles Signal: Historisch folgen \\u00d6lfelddienstleister wie BKR mit erheblicher Verz\\u00f6gerung auf Rig-Count-Gewinne, da Vertragsabschl\\u00fcsse und Mobilisierungskosten die Margenausweitung 2-4 Quartale verz\\u00f6gern. Ein 'New Strong Sell'-Rating vom 15.05.2026 deutet darauf hin, dass professionelle Analysten den Zyklus m\\u00f6glicherweise bereits als \\u00fcberhitzt einstufen.\",\n          \"argument_2\": \"\\u00d6lpreisanstiege im Jahr 2026 sind fundamental fragil: Ein \\u00d6lpreisr\\u00fcckgang durch nachlassende OPEC+-Disziplin, steigende US-Shale-Produktion oder globale Nachfrageschw\\u00e4che (insbesondere China-Verlangsamung) w\\u00fcrde den Rig-Count-Katalysator sofort zunichte machen. BKR bei $64.12 impliziert bereits eine Premium-Bewertung f\\u00fcr den Energiesektor, sodass das Upside bei einer \\u00d6lpreisnormalisierung stark begrenzt ist.\",\n          \"argument_3\": \"Der Insider-Kauf-Cluster (7 K\\u00e4ufe in 14 Tagen) klingt bullish, ist aber ohne Kontext zu Kaufvolumen, -preis und Insider-Hierarchie wertlos. Wenn die K\\u00e4ufe \\u00fcberwiegend von niedrigrangigen Insidern in kleinen St\\u00fcckzahlen stammen, ist das Signal statistisch insignifikant. Zudem k\\u00f6nnte der 48h-Preisr\\u00fcckgang von -1.0% trotz positiver News ein Warnsignal sein, dass das Smart Money bereits verkauft.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Die 0% Hit-Rate ist nicht inhaltlich interpretierbar, da kein Quick MC durchgef\\u00fchrt wurde. Das Fehlen der Simulation ist selbst ein Datenproblem und reduziert die statistische Confidence erheblich \\u2014 ohne MC-Basis kann keine Wahrscheinlichkeitsaussage zur Kurszielreichung getroffen werden.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt preist den Rig-Count-Anstieg als kurzfristiges Rauschen ein, untersch\\u00e4tzt jedoch die strukturelle Margenverbesserung durch h\\u00f6here Serviceraten in einem nachfragestarken Zyklus. Der Insider-Cluster von 7 K\\u00e4ufern signalisiert Insider-Konfidenz in den kommenden Quartalsbericht als konkreten Katalysator. Das gleichzeitige Strong-Sell-Rating erzeugt eine k\\u00fcnstliche Diskrepanz, die eine Underreaction auf positive Fundamentaldaten beg\\u00fcnstigt.\",\n        \"catalyst\": \"N\\u00e4chster Quartalsbericht Q2-2026 mit potenziellem Margenanstieg durch h\\u00f6here Rig-Activity und Servicepreise; Insider-Cluster deutet auf Management-Konfidenz in Zahlen hin\",\n        \"bear_case\": \"Ein R\\u00fcckgang des \\u00d6lpreises unter die Break-Even-Schwelle f\\u00fcr neue Bohrprojekte w\\u00fcrde den Rig-Count-Anstieg reversieren und BKR als zyklischen Underperformer exponieren, w\\u00e4hrend die aktuelle Bewertung kaum Puffer bietet.\",\n        \"macro_assessment\": \"Das neutrale Makro-Regime mit flacher Kurve (0.50%) und Fed Funds bei 3.64% ist f\\u00fcr Energieservices ambivalent: Keine Rezessionswarnung, aber auch kein expansiver R\\u00fcckenwind. Die 10Y bei 4.32% erh\\u00f6ht den Discount-Faktor f\\u00fcr kapitalintensive Sektoren leicht. Insgesamt kein Makro-Veto, aber auch keine makro-basierte Verst\\u00e4rkung des bullishen Signals.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.5,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 2.0439,\n        \"annualized_roi\": null,\n        \"dte\": 31\n      },\n      \"outcome\": null\n    },\n    {\n      \"ticker\": \"CARR\",\n      \"entry_date\": \"2026-05-17\",\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"mismatch\": 2.109,\n        \"z_score\": 0.578,\n        \"sigma_30d\": 0.0309,\n        \"price_move_48h\": 0.0178,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"weak\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.6398\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-09-18\",\n        \"strike\": 62.5,\n        \"bid\": 6.8,\n        \"ask\": 7.4,\n        \"open_interest\": 376,\n        \"implied_vol\": 0.3788,\n        \"spread_ratio\": 0.0811,\n        \"dte\": 123,\n        \"delta\": 0.6201,\n        \"data_source\": \"tradier\"\n      },\n      \"simulation\": {\n        \"current_price\": 64.67,\n        \"target_price\": 69.84,\n        \"hit_rate\": 0.7222,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0237,\n        \"alpha\": 0.00239\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Die AI Data Center Cooling-Story ist bereits ein weitverbreitetes Narrativ im Markt \\u2013 zahlreiche Analysten und Medien haben CARR in diesem Kontext positioniert, was bedeutet, dass der strukturelle Tailwind m\\u00f6glicherweise bereits erheblich in der Bewertung ber\\u00fccksichtigt ist. Bei einem KGV von ~20x (Kurs $64.67 / EPS $3.20) ist keine klassische Unterbewertung erkennbar, und ein bereits eingepreister Katalysator liefert selten weiteres Alpha.\",\n          \"argument_2\": \"Die massive EPS-Diskrepanz zwischen yfinance ($3.20) und SEC EDGAR ($1.50) ist ein ernstes Datenzuverl\\u00e4ssigkeitsproblem. Sollte das SEC-EPS das korrektere Bild widerspiegeln, handelt die Aktie auf Basis bereinigter Earnings bei einem KGV von ~43x \\u2013 eine Bewertung, die f\\u00fcr einen Industrials-Titel erhebliches Downside-Risiko birgt, falls Wachstumserwartungen verfehlt werden.\",\n          \"argument_3\": \"CARR ist ein Industrials-Unternehmen mit erheblicher Exposition gegen\\u00fcber dem globalen HVAC-Markt und Bauwirtschaft, die bei Zinsniveaus von 4.32% (10Y) weiterhin unter Druck steht. Der Wohnungsbau und kommerzielle Bau-Sektor zeigen strukturelle Schw\\u00e4che, was das Kerngesch\\u00e4ft belasten k\\u00f6nnte und den positiven Effekt aus dem Data-Center-Segment kompensieren d\\u00fcrfte.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Quick MC wurde nicht durchgef\\u00fchrt (0 Pfade), daher ist die 0%-Hit-Rate technisch bedeutungslos und kein echtes statistisches Signal. Die fehlenden MC-Daten reduzieren die quantitative Absicherung der Analyse erheblich \\u2013 die Bewertung muss ohne probabilistische Pfadanalyse erfolgen, was die Unsicherheit erh\\u00f6ht.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt bewertet CARR prim\\u00e4r als klassischen HVAC-Hersteller, untersch\\u00e4tzt aber die Margenpotenziale im hochmargigen Hyperscaler-Cooling-Segment. Insider-Cluster-K\\u00e4ufe innerhalb von 14 Tagen signalisieren informiertes Kapital, das vor Hyperscaler-Guidance-Events positioniert. Die strukturelle DC-Expansion ist ein mehrj\\u00e4hriger Trend, der in der Konsenssch\\u00e4tzung noch nicht vollst\\u00e4ndig reflektiert ist.\",\n        \"catalyst\": \"Hyperscaler Q2/Q3 2026 Guidance-Updates zu Data Center Capex und m\\u00f6gliche CARR-Auftragsank\\u00fcndigungen f\\u00fcr Cooling-Infrastruktur\",\n        \"bear_case\": \"EPS-Diskrepanz (yfinance $3.20 vs. SEC $1.50) deutet auf m\\u00f6gliche Bewertungs\\u00fcberdehnung hin; falls bereinigtes EPS ma\\u00dfgeblich ist, ist CARR fundamental teuer und anf\\u00e4llig f\\u00fcr Entt\\u00e4uschungen\",\n        \"macro_assessment\": \"Neutrales Makro-Umfeld (Kurve +0.50%, Fed Funds 3.64%) liefert weder signifikanten R\\u00fccken- noch Gegenwind. F\\u00fcr Industrials leicht positiv, da keine Rezessionssignale vorliegen, aber das anhaltend hohe Zinsniveau belastet das Kerngesch\\u00e4ft (Bau/HVAC) weiterhin moderat. Data-Center-Exposition mildert dieses Risiko partiell.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.5,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 0.1783,\n        \"annualized_roi\": 0.8011,\n        \"dte\": 123\n      },\n      \"outcome\": null\n    },\n    {\n      \"ticker\": \"ABNB\",\n      \"entry_date\": \"2026-05-17\",\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"mismatch\": 0.997,\n        \"z_score\": 0.801,\n        \"sigma_30d\": 0.0167,\n        \"price_move_48h\": 0.0134,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"weak\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.5136\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-08-21\",\n        \"strike\": 140.0,\n        \"bid\": 7.55,\n        \"ask\": 7.9,\n        \"open_interest\": 467,\n        \"implied_vol\": 0.366,\n        \"spread_ratio\": 0.0443,\n        \"dte\": 95,\n        \"delta\": 0.4505,\n        \"data_source\": \"tradier\"\n      },\n      \"simulation\": {\n        \"current_price\": 132.85,\n        \"target_price\": 143.48,\n        \"hit_rate\": 0.609,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.02,\n        \"alpha\": 0.00164\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Die AOC-Kritikwelle adressiert ein strukturelles politisches Risiko, das nicht als tempor\\u00e4rer Noise abgetan werden sollte. Regulatorischer Gegenwind durch Mietrechtsversch\\u00e4rfungen, Kurzzeitvermietungsverbote in st\\u00e4dtischen Gebieten und politischer Druck auf Plattform\\u00f6konomie k\\u00f6nnten das Wachstumsmodell von ABNB in Kernm\\u00e4rkten (USA, EU) mittelfristig besch\\u00e4digen. Der Markt preist m\\u00f6glicherweise Regulierungsrisiken strukturell ein, nicht nur \\u00fcber.\",\n          \"argument_2\": \"Der Q1-Beat und die Analysten-Upgrades sind ein klassischer 'Buy the news, sell the fact'-Kontext. Nach einem positiven Quartalsergebnis tendieren Aktien ohne klaren Forward-Katalysator zur Konsolidierung. ABNB hat in den letzten 48h bereits -1,3% verloren, was auf eine Ersch\\u00f6pfung des Post-Earnings-Impulses hindeutet. Die angehobenen Analyst-Outlooks sind bereits im Kurs reflektiert.\",\n          \"argument_3\": \"Die EPS-Abweichung zwischen yfinance (6.04) und SEC EDGAR (4.05) ist erheblich und deutet auf potenzielle Datenkonfusion hin \\u2014 m\\u00f6glicherweise GAAP vs. Non-GAAP. Falls der Markt auf Basis von \\u00fcberh\\u00f6hten Non-GAAP-Zahlen bewertet, besteht ein Bewertungsrisiko bei strikter GAAP-Betrachtung. Consumer Cyclicals sind zudem bei flacher Zinskurve anf\\u00e4llig, da diskretion\\u00e4re Konsumausgaben f\\u00fcr Reisen konjunktursensitiv bleiben.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein Quick MC wurde durchgef\\u00fchrt (0 Pfade), daher ist die 0%-Hit-Rate nicht aussagekr\\u00e4ftig und kann weder best\\u00e4tigt noch widerlegt werden. Dies reduziert die statistische Grundlage der Analyse erheblich und erh\\u00f6ht die Unsicherheit bei der Positionsbewertung.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"4-8 Wochen\",\n        \"asymmetry_reasoning\": \"Der Markt \\u00fcbergewichtet das politische AOC-Narrativ als fundamentales Risiko, obwohl Regulierungs\\u00e4ngste f\\u00fcr ABNB strukturell bekannt und historisch meist nicht in disruptive Policy umgesetzt wurden. Vier Insider-K\\u00e4ufe in 14 Tagen signalisieren, dass Interne den Abverkauf als \\u00fcbertrieben werten. Die flache Zinskurve im neutralen Makro-Regime d\\u00e4mpft den Gegenwind und l\\u00e4sst Einzelaktien-Alpha durch Earnings-Recovery zu.\",\n        \"catalyst\": \"Sommerbuchungs-Saison 2026 als operativer Umsatzkatalysator kombiniert mit m\\u00f6glichem n\\u00e4chsten Earnings-Report (Q2 2026), der die angehobenen Analyst-Outlooks best\\u00e4tigen oder \\u00fcbertreffen k\\u00f6nnte.\",\n        \"bear_case\": \"Regulatorische Eskalation in US-Kernst\\u00e4dten sowie anhaltender politischer Druck k\\u00f6nnten Wachstumsprojektionen f\\u00fcr die Plattform dr\\u00fccken und institutionelle Investoren zur Rotation aus Consumer Cyclicals veranlassen.\",\n        \"macro_assessment\": \"Das neutrale Makro-Regime mit flacher Zinskurve (0,50%) und Fed Funds Rate bei 3,64% ist weder klar bullish noch bearish f\\u00fcr ABNB. Reise-Nachfrage bleibt bei positiver Realwachstumsdynamik intakt, jedoch sind Consumer Cyclicals bei einer m\\u00f6glichen Abk\\u00fchlung des Konsums anf\\u00e4llig. Kein signifikanter Makro-R\\u00fcckenwind f\\u00fcr eine aggressive Bullish-Position.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.5,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 0.5189,\n        \"annualized_roi\": 3.664,\n        \"dte\": 95\n      },\n      \"outcome\": null\n    },\n    {\n      \"ticker\": \"BMY\",\n      \"entry_date\": \"2026-05-17\",\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"mismatch\": 3.347,\n        \"z_score\": 0.331,\n        \"sigma_30d\": 0.0171,\n        \"price_move_48h\": 0.0057,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.5524\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-06-05\",\n        \"strike\": 56.0,\n        \"bid\": 2.0,\n        \"ask\": 2.14,\n        \"open_interest\": 993,\n        \"implied_vol\": 0.2743,\n        \"spread_ratio\": 0.0654,\n        \"dte\": 18,\n        \"delta\": 0.6297,\n        \"data_source\": \"tradier\"\n      },\n      \"simulation\": {\n        \"current_price\": 57.0,\n        \"target_price\": 61.56,\n        \"hit_rate\": 0.6684,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0166,\n        \"alpha\": 0.00236\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"BMY tr\\u00e4gt eine erhebliche Schuldenlast aus der Celgene-Akquisition, und die Pipeline-Diversifizierung durch China-Kollaborationen birgt regulatorische und geopolitische Risiken. US-China-Spannungen k\\u00f6nnten Technologietransfers und klinische Datenpakete verz\\u00f6gern oder blockieren, was die vermeintliche strukturelle St\\u00e4rke ad absurdum f\\u00fchrt.\",\n          \"argument_2\": \"Der EPS-Konflikt zwischen yfinance (6.17) und SEC EDGAR (3.57) ist erheblich \\u2014 eine Abweichung von ~73% deutet auf GAAP- vs. Non-GAAP-Verzerrungen hin. Das wahre Ertragspotenzial ist unklar, und wenn der Markt auf SEC-konforme Zahlen umstellt, ist Kurskorrekturpotenzial nach unten vorhanden.\",\n          \"argument_3\": \"Die Carboplatin/Nivolumab Phase-II-Studie in metastasiertem TNBC zeigt keinen gesicherten \\u00dcberlebensvorteil gegen\\u00fcber Konkurrenzprodukten (Keytruda). Selbst bei positivem Ausgang ist der inkrementelle Marktanteil begrenzt, und der Katalysator k\\u00f6nnte durch bestehende Checkpoint-Inhibitor-Konkurrenz bereits vollst\\u00e4ndig eingepreist sein.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"MC wurde nicht durchgef\\u00fchrt (0 Pfade). Bei einer Healthcare-Aktie mit strukturellen Katalysatoren wie Insider-Cluster und China-Pipeline ist das Fehlen einer MC-Validierung problematisch. Bei typischer BMY-Volatilit\\u00e4t (IV ~25-30%) w\\u00e4re eine 30d Hit-Rate f\\u00fcr moderate Aufw\\u00e4rtsbewegungen (~5%) historisch bei 45-55% realistisch. Der fehlende MC kann weder best\\u00e4tigen noch widerlegen.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 5,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt hat den Insider-Cluster-Kauf von 6 Personen in 14 Tagen noch nicht vollst\\u00e4ndig eingepreist, da derartige koordinierte Insiderk\\u00e4ufe statistisch signifikant f\\u00fcr positive Erwartungen der Unternehmensf\\u00fchrung sind. Die China-Kollaboration wird als geopolitisches Risiko wahrgenommen, obwohl sie Pipeline-Diversifizierung und Kostenreduktion bedeutet. Cendakimab-Marktprognosen 2026-2034 deuten auf untersch\\u00e4tzte Umsatzpotenziale hin.\",\n        \"catalyst\": \"Positive Phase-II-Daten zur Carboplatin/Nivolumab-Studie in TNBC oder erste Meilensteinzahlungen aus der China-Drug-Development-Kollaboration innerhalb Q3 2026\",\n        \"bear_case\": \"Geopolitische Eskalation im US-China-Verh\\u00e4ltnis k\\u00f6nnte die Kollaboration gef\\u00e4hrden, w\\u00e4hrend gleichzeitig der EPS-Konflikt zwischen GAAP und Non-GAAP-Zahlen bei Neubeurteilung durch Analysten Abwertungspotenzial schafft.\",\n        \"macro_assessment\": \"Das neutrale Makroumfeld (flache Kurve +0.50%, Fed Funds 3.64%) ist f\\u00fcr BMY als defensiven Healthcare-Titel moderat positiv. Kein signifikanter R\\u00fccken- oder Gegenwind. Das Zinsumfeld belastet BMIs Schuldendienst leicht, ist aber nicht kritisch. Neutral-Regime erlaubt strukturellen Katalysatoren, sich zu entfalten, ohne durch Makro-Gegenwind \\u00fcberlagert zu werden.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.5,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 6.5567,\n        \"annualized_roi\": null,\n        \"dte\": 18\n      },\n      \"outcome\": null\n    },\n    {\n      \"ticker\": \"CVX\",\n      \"entry_date\": \"2026-05-17\",\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"mismatch\": 3.948,\n        \"z_score\": 0.21,\n        \"sigma_30d\": 0.0176,\n        \"price_move_48h\": 0.0037,\n        \"eps_drift\": 0.0035,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.5448\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-08-21\",\n        \"strike\": 190.0,\n        \"bid\": 10.8,\n        \"ask\": 12.0,\n        \"open_interest\": 345,\n        \"implied_vol\": 0.3161,\n        \"spread_ratio\": 0.1,\n        \"dte\": 95,\n        \"delta\": 0.5012,\n        \"data_source\": \"tradier\"\n      },\n      \"simulation\": {\n        \"current_price\": 191.1,\n        \"target_price\": 206.39,\n        \"hit_rate\": 0.6692,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0152,\n        \"alpha\": 0.00244\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Der Energiesektor steht unter erheblichem strukturellem Gegenwind durch die globale Energiewende und potenzielle Nachfrageschw\\u00e4che. Bei einem Fed Funds Rate von 3.64% und moderatem Wachstumsumfeld bleibt der \\u00d6lpreis anf\\u00e4llig f\\u00fcr Korrekturen, da OPEC+-\\u00dcberproduktion und schwache chinesische Nachfrage den WTI-Preis belasten k\\u00f6nnen \\u2014 CVX's Gewinne sind direkt an den Roh\\u00f6lpreis gebunden.\",\n          \"argument_2\": \"Die EPS-Diskrepanz zwischen yfinance (12.17) und SEC EDGAR (5.75) ist erheblich und signalisiert ernste Datenqualit\\u00e4tsprobleme. Eine solche Abweichung von \\u00fcber 50% deutet m\\u00f6glicherweise auf unterschiedliche Berechnungsgrundlagen (adjusted vs. GAAP) hin und macht eine verl\\u00e4ssliche fundamentale Bewertung nahezu unm\\u00f6glich \\u2014 das P/E-Verh\\u00e4ltnis und jede darauf basierende These ist damit fragw\\u00fcrdig.\",\n          \"argument_3\": \"Der Hinweis auf Trump-bezogene Energiek\\u00e4ufe in den News ist ein politisches Signal, kein fundamentales. Regulatory Tailwinds durch politische Pr\\u00e4ferenzen sind kurzlebig und nicht nachhaltig \\u2014 sie k\\u00f6nnen sich bei politischen Kurs\\u00e4nderungen oder Wahlergebnissen 2026/2027 schnell umkehren. Der 'Katalysator' ist damit strukturell schwach und nicht im Gewinn modellierbar.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"0% Hit-Rate bedeutet kein MC wurde durchgef\\u00fchrt \\u2014 keine statistische Validierung verf\\u00fcgbar. Dies erh\\u00f6ht die Unsicherheit erheblich, da keine quantitative Pfadanalyse die These st\\u00fctzt. Einsch\\u00e4tzung muss rein qualitativ erfolgen, was die Zuverl\\u00e4ssigkeit der Bewertung mindert.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Insider-Cluster aus 6 K\\u00e4ufern in 14 Tagen ist ein statistisch seltenes Signal, das Markteilnehmer oft untersch\\u00e4tzen, da es mit politischem L\\u00e4rm \\u00fcberlagert wird. Der Berkshire-R\\u00fcckzug aus Hyperscalern zugunsten von Energy signalisiert eine institutionelle Neubewertung des Sektors, die noch nicht vollst\\u00e4ndig eingepreist scheint. Das Biofuel-Profitabilit\\u00e4tssignal der US-Raffinerien erg\\u00e4nzt den strukturellen Repricing-Narrativ f\\u00fcr integrierte Majors wie CVX.\",\n        \"catalyst\": \"Institutionelle Sektorrrotation (Berkshire-Signal) kombiniert mit Insider-Cluster-K\\u00e4ufen als Best\\u00e4tigung eines bevorstehenden Q2-2026 Earnings Beats\",\n        \"bear_case\": \"\\u00d6lpreiskorrektur durch OPEC+-\\u00dcberproduktion oder schwache China-Nachfrage w\\u00fcrde CVX's Gewinne direkt komprimieren und die bullische These vollst\\u00e4ndig entwerten \\u2014 politische Tailwinds sch\\u00fctzen nicht vor Commodity-Risiken.\",\n        \"macro_assessment\": \"Neutrale Makrolage mit flacher Zinskurve (0.50%) und Fed Rate von 3.64% ist f\\u00fcr Energietitel moderat konstruktiv \\u2014 keine Rezessionsgefahr, aber auch kein starker R\\u00fcckenwind. Das Umfeld erlaubt moderate Bullen-Positionierung, rechtfertigt jedoch keine aggressiven Calls.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.5,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 0.4403,\n        \"annualized_roi\": 2.8292,\n        \"dte\": 95\n      },\n      \"outcome\": null\n    },\n    {\n      \"ticker\": \"GOOG\",\n      \"entry_date\": \"2026-05-18\",\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 2.854,\n        \"z_score\": 0.629,\n        \"sigma_30d\": 0.0228,\n        \"price_move_48h\": 0.0143,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"weak\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.6768\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-06-05\",\n        \"strike\": 390.0,\n        \"bid\": 15.95,\n        \"ask\": 16.5,\n        \"open_interest\": 2638,\n        \"implied_vol\": 0.3381,\n        \"spread_ratio\": 0.0333,\n        \"dte\": 17,\n        \"delta\": 0.6324,\n        \"data_source\": \"tradier\"\n      },\n      \"simulation\": {\n        \"current_price\": 397.92,\n        \"target_price\": 429.75,\n        \"hit_rate\": 0.75,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.019,\n        \"alpha\": 0.00344\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Die Berkshire-Meldung ist bereits in den Schlagzeilen und damit potenziell vollst\\u00e4ndig eingepreist. Wenn Buffetts Nachfolger den Stake verdreifacht hat, ist dies ein \\u00f6ffentlich bekanntes 13F/13G-Filing \\u2014 institutionelle Algorithmen haben diesen Catalysator bereits am Tag der Ver\\u00f6ffentlichung verarbeitet. Die -1,4% in den letzten 48h deuten darauf hin, dass der Markt die News eher abverkauft als nachgekauft hat.\",\n          \"argument_2\": \"GOOG handelt bei ~$397,92, was einem KGV von ca. 27-30x auf dem SEC-EDGAR-EPS von 13,10 entspricht \\u2014 f\\u00fcr ein Unternehmen mit verlangsamtem Werbe-Kerngesch\\u00e4ft und massivem KI-Investitionsdruck (CapEx-Eskalation 2026). Der AI-Infrastruktur-Wettbewerb von Microsoft/OpenAI, Meta und Amazon bedroht Googles Suchmonopol strukturell. Die I/O-Konferenz als Katalysator k\\u00f6nnte eine klassische 'Buy the rumor, sell the news'-Situation sein.\",\n          \"argument_3\": \"Der EPS-Spread zwischen yfinance (14,45) und SEC EDGAR (13,10) betr\\u00e4gt zwar formal 0%, die absoluten Werte weichen aber um ~10% ab \\u2014 das ist ein Datenqualit\\u00e4tsproblem. Zudem fehlt ein Monte Carlo komplett (Hit-Rate 0 Pfade), was bedeutet, dass keine quantitative Absicherung der Bullish-These vorliegt. Das Cluster-Insider-Signal (3 K\\u00e4ufe in 14 Tagen) ist bei einem Mega-Cap wie GOOG routinem\\u00e4\\u00dfig und hat niedrigen Signalwert.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Der MC wurde schlicht nicht ausgef\\u00fchrt (0 Pfade), daher ist die 0%-Hit-Rate kein inhaltliches Signal, sondern ein Datenfehler. Ohne MC-Basis fehlt jede statistische Validierung der Preisziel-These. Dies erh\\u00f6ht die Unsicherheit erheblich.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt hat Berkshires Stake-Verdreifachung m\\u00f6glicherweise als reines Momentum-Signal abgetan, ohne die langfristige Value-Implikation eines qualit\\u00e4tsfokussierten Gro\\u00dfinvestors zu reprisen. Der I/O-Katalysator 2026 k\\u00f6nnte Alphabets KI-Monetarisierungsfortschritte erstmals konkret quantifizieren und Sch\\u00e4tzungsrevisionen ausl\\u00f6sen. Insider-Cluster plus institutionelle Neubewertung schaffen eine m\\u00f6gliche Doppelkatalyse innerhalb des 2-3-Monats-Fensters.\",\n        \"catalyst\": \"Google I/O 2026 Konferenz (KI-Monetarisierung, Gemini-Updates) kombiniert mit nachlaufender institutioneller Repricing-Welle nach Berkshires publiziertem Stake-Aufbau\",\n        \"bear_case\": \"Die Berkshire-News ist bereits eingepreist und der I/O-Event produziert einen klassischen 'Sell the news'-Effekt bei gleichzeitig entt\\u00e4uschenden Werbeumsatz-Zahlen Q2/2026 durch KI-Suchsubstitution.\",\n        \"macro_assessment\": \"Neutrale Makrolage (flache Kurve +0,50%, Fed Funds 3,64%) bietet weder R\\u00fccken- noch Gegenwind. Bei 4,32% 10Y-Rendite ist das KGV von ~30x f\\u00fcr GOOG moderat vertretbar, aber nicht attraktiv g\\u00fcnstig. Das Umfeld unterst\\u00fctzt selektive Mega-Cap-Positionen ohne besonderen Hebel.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.5,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 5.8006,\n        \"annualized_roi\": null,\n        \"dte\": 17\n      },\n      \"outcome\": null\n    },\n    {\n      \"ticker\": \"META\",\n      \"entry_date\": \"2026-05-18\",\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 5.241,\n        \"z_score\": 0.152,\n        \"sigma_30d\": 0.0257,\n        \"price_move_48h\": 0.0039,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.5288\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-06-05\",\n        \"strike\": 600.0,\n        \"bid\": 22.05,\n        \"ask\": 22.65,\n        \"open_interest\": 514,\n        \"implied_vol\": 0.3185,\n        \"spread_ratio\": 0.0265,\n        \"dte\": 17,\n        \"delta\": 0.6015,\n        \"data_source\": \"tradier\"\n      },\n      \"simulation\": {\n        \"current_price\": 609.3,\n        \"target_price\": 658.04,\n        \"hit_rate\": 0.62,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0236,\n        \"alpha\": 0.00097\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Die 8.000 Stellenk\\u00fcrzungen signalisieren zwar Effizienz, doch der massive AI-Capex-Push (Rechenzentren, Modelltraining) k\\u00f6nnte die eingesparten Personalkosten deutlich \\u00fcbersteigen. Der Markt k\\u00f6nnte die operativen Kosteneinsparungen bereits vollst\\u00e4ndig eingepreist haben, w\\u00e4hrend der ROI der AI-Investitionen auf Jahressicht unklar bleibt und den EPS-Leverage verz\\u00f6gert.\",\n          \"argument_2\": \"Die EPS-Diskrepanz zwischen yfinance ($36.16) und SEC EDGAR ($27.52) ist auff\\u00e4llig und deutet auf m\\u00f6gliche Normalisierungseffekte oder Einmalposten hin. Wenn das 'wahre' operative EPS n\\u00e4her an $27.52 liegt, ist META bei $609 mit einem KGV von ~22x bewertet \\u2014 f\\u00fcr eine Aktie mit steigendem Capex-Profil kein billiges Schn\\u00e4ppchen mehr.\",\n          \"argument_3\": \"Der Werbemarktzyklus bleibt ein kritisches Risiko: Verlangsamung der Digitalwerbung bei Rezessionszeichen, zunehmende Regulierungsdichte in der EU sowie Konkurrenz durch TikTok und YouTube Shorts setzen das Revenue-Wachstum unter Druck. Ein Schw\\u00e4cheln der Ad-Einnahmen im Q2/Q3 2026 w\\u00fcrde den Restrukturierungs-Narrativ sofort \\u00fcberlagern.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Der Quick MC wurde nicht durchgef\\u00fchrt (0 Pfade), daher ist die 0%-Angabe kein inhaltliches Signal, sondern ein technisches Datenloch. F\\u00fcr eine Aktie mit ~30% historischer Volatilit\\u00e4t und einem laufenden Restrukturierungsnarrativ w\\u00e4re eine realistische 30d-Hit-Rate f\\u00fcr eine moderate Aufw\\u00e4rtsbewegung im Bereich 45-60% zu erwarten. Keine verwertbare statistische Aussage m\\u00f6glich.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt fixiert sich auf den negativen Headline-Effekt der Stellenk\\u00fcrzungen und \\u00fcbersieht die strukturelle Operating-Leverage-Verbesserung. Insider-Cluster-K\\u00e4ufe bei 4 Personen innerhalb von 14 Tagen sind ein statistisch seltenes Signal, das informierten Optimismus auf Management-Ebene reflektiert. Der eigentliche Katalysator \\u2014 verbesserte Margen durch Effizienz bei gleichzeitig skalierendem AI-Umsatz \\u2014 wird erst mit dem n\\u00e4chsten Earnings-Print sichtbar.\",\n        \"catalyst\": \"Q2 2026 Earnings-Report mit verbesserter Operating Margin durch Headcount-Reduktion und AI-Monetarisierung (Advantage+ Ads, Llama-Integration)\",\n        \"bear_case\": \"Massiver AI-Capex \\u00fcbersteigt Personalkosteneinsparungen und dr\\u00fcckt Free Cash Flow, w\\u00e4hrend ein Schw\\u00e4cheln des Digitalwerbemarkts im Sommer 2026 das gesamte Restrukturierungs-Narrativ untergr\\u00e4bt.\",\n        \"macro_assessment\": \"Das neutrale Makroumfeld (flache Kurve, Fed Funds bei 3.64%) ist f\\u00fcr META moderat unterst\\u00fctzend: Keine invertierte Kurve die Rezessionsangst ausl\\u00f6st, aber auch kein expansiver R\\u00fcckenwind. Bei 4.32% 10Y-Rendite bleibt der Diskontierungsdruck auf Growth-Aktien sp\\u00fcrbar, begrenzt jedoch das Upside nicht strukturell. Neutral-Makro ist f\\u00fcr einen idiosynkratischen Restrukturierungs-Trade ausreichend.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.5,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 7.0924,\n        \"annualized_roi\": null,\n        \"dte\": 17\n      },\n      \"outcome\": null\n    },\n    {\n      \"ticker\": \"AMD\",\n      \"entry_date\": \"2026-05-18\",\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 4,\n        \"mismatch\": 1.241,\n        \"z_score\": 0.952,\n        \"sigma_30d\": 0.0505,\n        \"price_move_48h\": 0.048,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"weak\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.5434\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-06-05\",\n        \"strike\": 420.0,\n        \"bid\": 23.0,\n        \"ask\": 23.85,\n        \"open_interest\": 448,\n        \"implied_vol\": 0.6912,\n        \"spread_ratio\": 0.0356,\n        \"dte\": 17,\n        \"delta\": 0.5541,\n        \"data_source\": \"tradier\"\n      },\n      \"simulation\": {\n        \"current_price\": 415.07,\n        \"target_price\": 474.84,\n        \"hit_rate\": 0.5536,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0429,\n        \"alpha\": 0.00049\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Der Citi-Analyst setzt das Kursziel auf $460 und beh\\u00e4lt dennoch ein 'Neutral'-Rating \\u2014 dies ist ein klassisches Warnsignal. Der Markt hat die CPU-Boom-Narrative bereits weitgehend eingepreist, wie der aktuelle Kurs von $415 bei einem P/E von \\u00fcber 30x zeigt. Die -4,8% Bewegung in 48h deutet darauf hin, dass der Katalysator (Citi PT-Erh\\u00f6hung) bereits zum Selloff-Ausl\\u00f6ser wurde, nicht zum Kursanstieg.\",\n          \"argument_2\": \"Die massive EPS-Diskrepanz zwischen yfinance ($12,95) und SEC EDGAR ($3,01) ist ein erhebliches Datenqualit\\u00e4ts-Risiko. Wenn die SEC-Zahl die normalisierte operative Realit\\u00e4t widerspiegelt, ist AMD bei $415 auf Basis echter GAAP-Earnings mit einem KGV von \\u00fcber 138x bewertet \\u2014 eine Bewertung, die bei jedem Makro-Schock oder Wachstumsentt\\u00e4uschung massiv komprimieren kann.\",\n          \"argument_3\": \"Der agentic CPU-Boom ist ein narrativer Katalysator, der bereits von mindestens zwei Analysten (Citi, weitere PT-Erh\\u00f6hungen) kommuniziert wurde. Wenn das Signal bekannt ist, ist es eingepreist. Gleichzeitig gewinnt Intel trotz Verlusten PT-Erh\\u00f6hungen \\u2014 das signalisiert Sektor-Rotation-Risiko, bei dem Kapital aus AMD in g\\u00fcnstigere Intel-Positionen rotiert.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Die 0% Hit-Rate durch fehlenden MC-Lauf ist uninformativ, nicht bearish per se. Bei einer impliziten Volatilit\\u00e4t von AMD (historisch 45-60%) w\\u00e4re eine Hit-Rate von 55-70% f\\u00fcr Bullish-Ziele +10% in 30d realistisch. Keine MC-Daten bedeuten erh\\u00f6hte Modellunsicherheit \\u2014 Concern-Level wird auf medium gesetzt.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt untersch\\u00e4tzt das Cluster-Insider-Kaufsignal (4 Insider in 14 Tagen), das bei AMD historisch ein starkes Vorl\\u00e4ufersignal f\\u00fcr strukturelle Neubewertungen darstellt. Das 'Neutral'-Rating bei gleichzeitiger PT-Erh\\u00f6hung auf $460 erzeugt eine Analyst-Inkongruenz, die institutionelle K\\u00e4ufer oft erst verz\\u00f6gert aktiviert. Die -4,8% Reaktion auf positive Nachrichten deutet auf kurzfristigen Verkaufsdruck ohne fundamentalen Abbau der Wachstumsthese hin.\",\n        \"catalyst\": \"AMD Q2 2026 Earnings mit GPU/CPU Data-Center-Revenue-Beat + konkrete Agentic-AI-Designwins bei Hyperscalern als Best\\u00e4tigung der $132Mrd-CPU-Markt-These\",\n        \"bear_case\": \"EPS-Diskrepanz (GAAP $3,01 vs. non-GAAP $12,95) enth\\u00fcllt massive Stock-Based-Compensation-Last; bei Multiples-Kompression in einem Risk-Off-Szenario f\\u00e4llt AMD \\u00fcberproportional, da die Bewertung vollst\\u00e4ndig auf zuk\\u00fcnftigem Wachstum basiert.\",\n        \"macro_assessment\": \"Das neutrale Makro-Regime (Kurve +0,50%, Fed Funds 3,64%) ist f\\u00fcr AMD ein moderater R\\u00fcckenwind: Keine Rezessionsgefahr dr\\u00fcckt Risk-On-Sentiment, aber die flache Kurve signalisiert kein Wachstumsboom-Umfeld. Growth-Aktien wie AMD profitieren von stabilen Zinsen, sind aber anf\\u00e4llig bei erneuten Zinsanstiegen. Gesamteinsch\\u00e4tzung: Makro neutral-bis-leicht-positiv f\\u00fcr diese Position.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.5,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 6.2259,\n        \"annualized_roi\": null,\n        \"dte\": 17\n      },\n      \"outcome\": null\n    },\n    {\n      \"ticker\": \"ABNB\",\n      \"entry_date\": \"2026-05-18\",\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"mismatch\": 4.731,\n        \"z_score\": 0.054,\n        \"sigma_30d\": 0.0168,\n        \"price_move_48h\": 0.0009,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.561\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-06-05\",\n        \"strike\": 139.0,\n        \"bid\": 2.27,\n        \"ask\": 2.51,\n        \"open_interest\": 153,\n        \"implied_vol\": 0.3333,\n        \"spread_ratio\": 0.0956,\n        \"dte\": 17,\n        \"delta\": 0.3792,\n        \"data_source\": \"tradier\"\n      },\n      \"simulation\": {\n        \"current_price\": 134.71,\n        \"target_price\": 145.48,\n        \"hit_rate\": 0.6688,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.02,\n        \"alpha\": 0.00188\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Der Q1-Beat und die Analyst-Upgrades sind bereits vollst\\u00e4ndig eingepreist. ABNB notiert bei $134.71, und die positiven Earnings-Reaktionen d\\u00fcrften im Kurs reflektiert sein. Ein klassischer 'Buy the rumor, sell the news'-Effekt bedeutet, dass das Call-Asymmetrie-Argument substanziell geschw\\u00e4cht ist, da der Markt forward-looking agiert und zuk\\u00fcnftige Guidance-Events bereits antizipiert.\",\n          \"argument_2\": \"Regulatorisches Risiko ist massiv und strukturell untersch\\u00e4tzt: Die AOC-Kritik bez\\u00fcglich Verdr\\u00e4ngungseffekten durch Airbnb ist symptomatisch f\\u00fcr wachsenden politischen Druck auf Kurzzeitvermietungsplattformen weltweit. Mehrere St\\u00e4dte und L\\u00e4nder versch\\u00e4rfen 2026 ihre Regulierungen, was sowohl die Angebotsseite als auch das Wachstum in Kernm\\u00e4rkten fundamental bedroht. Dieser regulatorische Gegenwind ist schwer quantifizierbar, aber sehr real.\",\n          \"argument_3\": \"Das EPS-Divergenz-Signal zwischen yfinance ($6.04) und SEC EDGAR ($4.05) deutet auf signifikante Qualit\\u00e4tsunterschiede in den Earnings-Daten hin \\u2014 m\\u00f6glicherweise Non-GAAP-Bereinigungen, die die operative Realit\\u00e4t verschleiern. Bei einem Consumer-Cyclical-Titel in einem neutralen Makro-Umfeld mit flacher Zinskurve (0.50%) und einem Fed-Rate von 3.64% bleibt der Kostendruck auf diskretion\\u00e4res Reisen erh\\u00f6ht, was Revisionsrisiken f\\u00fcr H2 2026 schafft.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"0% Hit-Rate bedeutet, dass kein Quick MC durchgef\\u00fchrt wurde \\u2014 keine statistisch valide Grundlage f\\u00fcr Wahrscheinlichkeitsaussagen. Die Abwesenheit der MC-Daten erh\\u00f6ht die Unsicherheit erheblich und verhindert eine quantitative Validierung des Upside-Potenzials. Ohne MC-Ergebnisse muss st\\u00e4rker auf qualitative Faktoren und Red-Team-Argumente gewichtet werden.\",\n          \"concern_level\": \"high\"\n        },\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Insider-Cluster (4 K\\u00e4ufe in 14 Tagen) signalisiert echtes Conviction von innen heraus, was der Markt oft zu langsam einpreist. Die AI-Coding-Effizienz (60%) ist ein struktureller Margenvorteil, der in DCF-Modellen noch nicht vollst\\u00e4ndig reflektiert sein d\\u00fcrfte. Das n\\u00e4chste Guidance-Event bietet einen konkreten Katalysator f\\u00fcr eine Neubewertung.\",\n        \"catalyst\": \"N\\u00e4chstes Guidance-Event / Q2 2026 Earnings mit AI-Margin-Expansion-Best\\u00e4tigung\",\n        \"bear_case\": \"Regulatorischer Druck auf Kurzzeitvermietungen w\\u00e4chst politisch und legislativ weltweit, was das Angebotsmodell strukturell bedroht und Wachstumsrevisionen f\\u00fcr 2026/2027 erzwingen k\\u00f6nnte.\",\n        \"macro_assessment\": \"Neutrale Makrolage (Kurve +0.50%, Fed 3.64%) liefert weder strukturellen R\\u00fccken- noch Gegenwind. Consumer Cyclicals sind bei diesem Zinsniveau moderat belastet \\u2014 Reisebudgets bleiben unter Druck, aber Rezessionssignal fehlt. Insgesamt kein Makro-Veto, aber erh\\u00f6hte Skepsis gegen\\u00fcber aggressiven Upside-Zielen ist angebracht.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"neutral\",\n        \"macro_context\": {\n          \"yield_curve\": 0.5,\n          \"regime\": \"neutral\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 8.0282,\n        \"annualized_roi\": null,\n        \"dte\": 17\n      },\n      \"outcome\": null\n    },\n    {\n      \"ticker\": \"BIIB\",\n      \"entry_date\": \"2026-05-19\",\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 6,\n        \"mismatch\": 4.391,\n        \"z_score\": 0.122,\n        \"sigma_30d\": 0.0232,\n        \"price_move_48h\": 0.0028,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.5712\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-09-18\",\n        \"strike\": 200.0,\n        \"bid\": 13.3,\n        \"ask\": 14.4,\n        \"open_interest\": 1332,\n        \"implied_vol\": 0.3508,\n        \"spread_ratio\": 0.0764,\n        \"dte\": 121,\n        \"delta\": 0.4883,\n        \"data_source\": \"tradier\"\n      },\n      \"simulation\": {\n        \"current_price\": 192.28,\n        \"target_price\": 207.66,\n        \"hit_rate\": 0.6484,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0218,\n        \"alpha\": 0.00189\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Die Shareholder-Investigation durch SueWallSt wegen m\\u00f6glicher Securities Law Violations ist ein erhebliches rechtliches Risiko. Solche Untersuchungen k\\u00f6nnen auf undisklosed materielle negative Informationen hindeuten und das Management ablenken, was mittelfristig erheblichen Kursabw\\u00e4rtsdruck erzeugen kann.\",\n          \"argument_2\": \"Der Insider-Cluster-Kauf bezieht sich auf BIIB, aber die News zur Immunic-Ernennung von Mike Bonney betrifft prim\\u00e4r Immunic (IMUX), nicht Biogen direkt. Es besteht das Risiko einer Signal-Verwechslung: Der Katalysator (Immunic MS Trial Readout) ist kein direkter BIIB-Katalysator, sondern ein indirekter Partnerschafts-/Akquisitionshinweis \\u2014 der Markt k\\u00f6nnte diesen Link bereits eingepreist haben oder ihn nie vollst\\u00e4ndig bewerten.\",\n          \"argument_3\": \"BIIB weist eine massive EPS-Divergenz auf: yfinance meldet 16.59 vs. SEC EDGAR 9.31 \\u2014 das ist eine fundamentale Datenqualit\\u00e4ts-Warnung. Unterschiedliche EPS-Quellen bei Biotech k\\u00f6nnen auf Sonderabschreibungen, Goodwill-Korrekturen oder Restatements hindeuten, was die Bewertungsbasis erheblich unsicherer macht. Bei einem Kurs von $192 und EPS ~9.31 liegt das KGV bei ~20x, was f\\u00fcr einen stagnierenden Biotech-Player ohne klares organisches Wachstum ambitioniert erscheint.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"0% Hit-Rate bedeutet kein MC wurde durchgef\\u00fchrt \\u2014 keine Statistik verf\\u00fcgbar. Dies ist eine erhebliche Datenl\\u00fccke. Ohne MC-Validierung kann keine quantitative Wahrscheinlichkeitsaussage zur Zielerreichung gemacht werden. Die Abwesenheit des Modells erh\\u00f6ht Unsicherheit, senkt aber nicht per se den Trade-Wert, da der Katalysator qualitativ getrieben ist.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 5,\n        \"surprise\": 6,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"4-8 Wochen\",\n        \"asymmetry_reasoning\": \"Der Markt hat den Insider-Cluster-Kauf und die strategische Bonney-Ernennung noch nicht vollst\\u00e4ndig als Akquisitionssignal eingepreist. Die +0.3% Kursbewegung in 48h zeigt minimale Reaktion auf potenziell materielle M&A-Vorbereitungssignale. Ein positiver Immunic MS Trial Readout in 30-60 Tagen k\\u00f6nnte eine Partnerschaftsank\\u00fcndigung triggern.\",\n        \"catalyst\": \"Immunic MS Phase-3-Trial-Readout in 30-60 Tagen (Mai-Juli 2026) als potenzieller BIIB-Partnerschafts- oder Akquisitions-Trigger, kombiniert mit 7-Insider-Cluster-Kauf als vorausladendes Signal\",\n        \"bear_case\": \"Die laufende Securities Law Investigation durch SueWallSt k\\u00f6nnte auf nicht-\\u00f6ffentliche negative Informationen hindeuten und das bullische Momentum vollst\\u00e4ndig neutralisieren oder umkehren.\",\n        \"macro_assessment\": \"Expansives Makroumfeld mit steiler Zinskurve (+0.54%) und Fed Funds Rate bei 3.64% beg\\u00fcnstigt grunds\\u00e4tzlich Long-Positionen in Healthcare/Biotech. Niedrigere Kapitalkosten unterst\\u00fctzen M&A-Aktivit\\u00e4t und Biotech-Bewertungen. Der Makro-R\\u00fcckenwind verst\\u00e4rkt das bullische Signal moderat, kann aber das spezifische Rechtsrisiko (Shareholder Investigation) nicht kompensieren.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.54,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 0.2428,\n        \"annualized_roi\": 1.175,\n        \"dte\": 121\n      },\n      \"outcome\": null\n    },\n    {\n      \"ticker\": \"META\",\n      \"entry_date\": \"2026-05-19\",\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 3.501,\n        \"z_score\": 0.5,\n        \"sigma_30d\": 0.0234,\n        \"price_move_48h\": 0.0117,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.5294\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-06-05\",\n        \"strike\": 610.0,\n        \"bid\": 13.2,\n        \"ask\": 13.8,\n        \"open_interest\": 729,\n        \"implied_vol\": 0.3253851641845703,\n        \"spread_ratio\": 0.0435,\n        \"dte\": 16,\n        \"data_source\": \"yfinance\"\n      },\n      \"simulation\": {\n        \"current_price\": 601.29,\n        \"target_price\": 649.39,\n        \"hit_rate\": 0.6142,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0236,\n        \"alpha\": 0.00099\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Der Margin-Druck durch massive AI-Investitionen ist das Kernrisiko: 7.000 Reassignments bedeuten erh\\u00f6hte Restrukturierungskosten und operative Ineffizienzen im \\u00dcbergang. Q2-2026 Earnings k\\u00f6nnten trotz Umsatzwachstum durch h\\u00f6here CapEx und Personalkosten entt\\u00e4uschen \\u2014 der Markt hat diesen Margin-Squeeze m\\u00f6glicherweise noch nicht vollst\\u00e4ndig eingepreist, was bei einer Verfehlung zu einem schnellen Drawdown von 10-15% f\\u00fchren k\\u00f6nnte.\",\n          \"argument_2\": \"Die EPS-Diskrepanz zwischen yfinance (36.16) und SEC EDGAR (27.5) ist ein erhebliches Datenproblem. Ein bereinigtes EPS von 27.5 impliziert ein deutlich h\\u00f6heres KGV bei aktuellem Kurs von ~601 USD \\u2014 das Bewertungsniveau ist bei realistischeren Gewinnzahlen anspruchsvoller als auf den ersten Blick, was das Aufw\\u00e4rtspotenzial strukturell begrenzt und das Downside-Risiko bei negativen \\u00dcberraschungen erh\\u00f6ht.\",\n          \"argument_3\": \"Der AI-Investitions-Katalysator ist bereits weitgehend bekannt und d\\u00fcrfte teilweise eingepreist sein. Meta hat seit 2025 wiederholt \\u00fcber AI-Investments kommuniziert; Insider-K\\u00e4ufe sind oft Signale mit langer Vorlaufzeit ohne unmittelbaren Kurskatalysator. Die -1.2% in 48h trotz Insider-Cluster deutet auf mangelnde Markt\\u00fcberzeugung hin.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"0% Hit-Rate ist nicht aussagekr\\u00e4ftig \\u2014 kein Quick MC wurde durchgef\\u00fchrt, daher keine statistische Validierung m\\u00f6glich. Das Fehlen dieser Kennzahl erh\\u00f6ht die Unsicherheit, erlaubt aber keinen direkten Schluss auf Bullish oder Bearish. Concern bleibt moderat.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt interpretiert den 7.000-Reassignment-Plan prim\\u00e4r als Kostensignal, untersch\\u00e4tzt aber die langfristige Produktivit\\u00e4tshebung durch AI-fokussierte Ressourcenallokation. Insider-Cluster-K\\u00e4ufe bei vier unabh\\u00e4ngigen Insidern innerhalb 14 Tagen signalisieren Conviction nahe aktuellem Kursniveau. Das expansive Makro-Umfeld mit steiler Zinskurve beg\\u00fcnstigt strukturelle Wachstumsthesen in Capital-Heavy Tech.\",\n        \"catalyst\": \"Q2-2026 Earnings Release (~Juli 2026) mit AI-Monetarisierungsfortschritt und Margin-Guidance\",\n        \"bear_case\": \"AI-CapEx-Zyklus belastet Margen in Q2-Q3 2026 st\\u00e4rker als erwartet; bereinigtes EPS n\\u00e4her an 27.5 l\\u00e4sst Bewertung als \\u00fcberdehnt erscheinen\",\n        \"macro_assessment\": \"Expansives Makro-Umfeld mit +0.54% Kurvensteigung und Fed Funds bei 3.64% ist konstruktiv f\\u00fcr Large-Cap Tech mit AI-Wachstumsthese. Keine unmittelbaren Rezessionsrisiken sichtbar, was strukturelle Bull-Signale wie Insider-K\\u00e4ufe st\\u00e4rker gewichtet werden l\\u00e4sst.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.54,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 8.4537,\n        \"annualized_roi\": null,\n        \"dte\": 16\n      },\n      \"outcome\": null\n    },\n    {\n      \"ticker\": \"BK\",\n      \"entry_date\": \"2026-05-19\",\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"mismatch\": 3.042,\n        \"z_score\": 0.392,\n        \"sigma_30d\": 0.0113,\n        \"price_move_48h\": 0.0044,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.5584\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-06-18\",\n        \"strike\": 130.0,\n        \"bid\": 9.1,\n        \"ask\": 9.8,\n        \"open_interest\": 1321,\n        \"implied_vol\": 0.3113,\n        \"spread_ratio\": 0.0714,\n        \"dte\": 29,\n        \"delta\": 0.7354,\n        \"data_source\": \"tradier\"\n      },\n      \"simulation\": {\n        \"current_price\": 137.19,\n        \"target_price\": 148.17,\n        \"hit_rate\": 0.6902,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0141,\n        \"alpha\": 0.00261\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Der Snapdocs-Mortgage-Automation-Pivot ist strukturell schwach als Kurstreiber f\\u00fcr BK: BNY Mellon ist prim\\u00e4r ein Custody- und Asset-Servicing-Haus, kein Mortgage-Originator. Snapdocs-Integration adressiert einen Nischenbereich, der kaum materialisierbaren Revenue-Impact im Kontext eines 47-Mrd.-Dollar-Unternehmens erzeugt. Der 'hidden digital revenue pivot' aus dem Haiku-Prescreening ist schwer quantifizierbar und k\\u00f6nnte reine Narrative-Inflation ohne EPS-Relevanz sein.\",\n          \"argument_2\": \"Der Insider-Cluster-Kauf (4 Insider in 14 Tagen) ist ein oft \\u00fcberbewertetes Signal bei Gro\\u00dfbanken: BK-F\\u00fchrungskr\\u00e4fte kaufen regelm\\u00e4\\u00dfig im Rahmen von vorgeplanten 10b5-1-Pl\\u00e4nen, die keine taktische Informationsasymmetrie widerspiegeln. Zudem betr\\u00e4gt die 48h-Preisbewegung nur +0,4%, was darauf hindeutet, dass der Markt dieses Signal bereits weitgehend ignoriert oder eingepreist hat.\",\n          \"argument_3\": \"BK handelt auf Basis des SEC-EDGAR-EPS von 8,06 USD bei einem Kurs von 137,19 USD mit einem KGV von ~17x \\u2014 f\\u00fcr eine systemrelevante Custody-Bank historisch ambitioniert bewertet. Ein Zinsr\\u00fcckgang (Fed Funds aktuell 3,64%) komprimiert Net Interest Margin-Ertr\\u00e4ge weiter, w\\u00e4hrend steigende regulatorische Kapitalanforderungen (Basel III Endgame Nachwirkungen 2026) die ROE-Expansion begrenzen.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Der Quick MC wurde nicht ausgef\\u00fchrt (0 Pfade), daher ist die 0%-Hit-Rate kein inhaltliches Signal, sondern ein technisches Artefakt ohne statistische Aussagekraft. Eine realistische 30-Tage Hit-Rate f\\u00fcr einen moderaten Bullish-Move bei BK (z.B. +5-8%) l\\u00e4ge angesichts historischer Finanzsektor-Volatilit\\u00e4t von ~18-22% annualisiert bei ~40-55%, was bedeutet, dass kein Modelloptimismus vorliegt \\u2014 schlicht keine Daten.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 5,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt bewertet BNY Mellons digitale Transformationsinitiativen prim\\u00e4r als Kostenprojekte, nicht als Revenue-Katalysatoren, was eine systematische Underreaction auf Effizienzgewinne erzeugt. Insider-Cluster-K\\u00e4ufe bei Custody-Banken korrelieren historisch mit bevorstehenden positiven Kapitalallokations-Ank\\u00fcndigungen (Buybacks, Dividendenerh\\u00f6hungen). Das expansive Makro-Umfeld mit steiler Zinskurve beg\\u00fcnstigt Repricing-Effekte im Custody-Gesch\\u00e4ft, die im Konsens noch nicht vollst\\u00e4ndig modelliert sind.\",\n        \"catalyst\": \"Q2 2026 Earnings-Release (Juli 2026): Erstmalige Quantifizierung der Snapdocs-Effizienzgewinne kombiniert mit m\\u00f6glicher Guidance-Erh\\u00f6hung oder Kapitalr\\u00fcckf\\u00fchrungsank\\u00fcndigung als konkreter Repricing-Trigger.\",\n        \"bear_case\": \"Regulatorische Kapitalanforderungen unter Basel III Endgame begrenzen Kapitalr\\u00fcckf\\u00fchrungen, w\\u00e4hrend eine schnellere Fed-Lockerung die NIM-Ertr\\u00e4ge komprimiert und den strukturellen Repricing-Thesis untergr\\u00e4bt.\",\n        \"macro_assessment\": \"Die steile Zinskurve (+54bp 10Y-2Y) und Fed Funds Rate von 3,64% schaffen ein g\\u00fcnstiges NIM-Umfeld f\\u00fcr BK als Custody-Bank mit signifikanten Float-Einnahmen. Das expansive Regime reduziert Kreditrisikobedenken und unterst\\u00fctzt institutionelle Long-Allokationen in Qualit\\u00e4ts-Financials. Der Makro-Kontext ist damit moderat konstruktiv f\\u00fcr die Bullish-These, ohne sie jedoch zwingend zu machen.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.54,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 2.2803,\n        \"annualized_roi\": null,\n        \"dte\": 29\n      },\n      \"outcome\": null\n    },\n    {\n      \"ticker\": \"BMY\",\n      \"entry_date\": \"2026-05-19\",\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 3.173,\n        \"z_score\": 0.565,\n        \"sigma_30d\": 0.0168,\n        \"price_move_48h\": 0.0095,\n        \"eps_drift\": 0.0056,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.5868\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-06-05\",\n        \"strike\": 57.0,\n        \"bid\": 2.12,\n        \"ask\": 2.32,\n        \"open_interest\": 103,\n        \"implied_vol\": 0.2973,\n        \"spread_ratio\": 0.0862,\n        \"dte\": 16,\n        \"delta\": 0.6735,\n        \"data_source\": \"tradier\"\n      },\n      \"simulation\": {\n        \"current_price\": 58.21,\n        \"target_price\": 62.87,\n        \"hit_rate\": 0.7176,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0164,\n        \"alpha\": 0.00281\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Sotyktu PSA-Launch zeigt explizit eine ged\\u00e4mpfte Adoptionskurve: Rheumatologen n\\u00e4hern sich TYK2 gemessen an. Dies ist kein tempor\\u00e4res Ph\\u00e4nomen, sondern ein strukturelles Adoptionsproblem, das Q2/Q3 2026 Guidance-Cuts wahrscheinlich macht. Der Markt k\\u00f6nnte die Ramp-Kurve noch immer zu optimistisch modellieren, was bei Earnings-Entt\\u00e4uschung zu scharfen Abverk\\u00e4ufen f\\u00fchren kann.\",\n          \"argument_2\": \"Der EPS-Diskrepanz zwischen yfinance (6.17) und SEC EDGAR (3.59) ist erheblich und signalisiert m\\u00f6glicherweise adjustierte vs. GAAP-Earnings-Verwechslungen. Anleger, die auf adjustierte EPS setzen, k\\u00f6nnten bei GAAP-basierten Earnings-Berichten negativ \\u00fcberrascht werden \\u2014 insbesondere wenn hohe Abschreibungen auf Akquisitionen (z.B. Kardia, Mirati) weiterhin belasten.\",\n          \"argument_3\": \"Der Supreme Court hat Pharma-Firmen im Medicare Drug Pricing Case Certiorari verweigert. Dies bedeutet, dass die IRA-Preisverhandlungen f\\u00fcr BMY-Schl\\u00fcsselprodukte wie Eliquis und Opdivo rechtlich bindend bleiben. Dies ist ein langfristiger Revenue-Drain, der strukturell gegen die Bewertung wirkt und institutionelle Investoren zunehmend vorsichtig stimmt.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Der Quick MC wurde nicht durchgef\\u00fchrt (0 Pfade), daher ist die 0% Hit-Rate technisch bedeutungslos. Bei einer 48h-Bewegung von nur +1.0% und BMY's historischer 30-Tage-Volatilit\\u00e4t von typischerweise 15-20% annualisiert w\\u00e4re eine realistische Hit-Rate f\\u00fcr einen moderaten Zielpreis bei 55-65%. Das Fehlen der MC-Daten reduziert die statistische Fundierung dieser Analyse.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"asymmetry_reasoning\": \"Der Markt gewichtet Sotyktu-Adoptions-Entt\\u00e4uschung bereits negativ, aber der FDA-Approval f\\u00fcr Opdivo Qvantig sowie das 6-Insider-Cluster-Kaufsignal deuten auf untersch\\u00e4tzte Pipeline-Katalysatoren hin. Das expansive Makroumfeld (steile Kurve, Fed Funds 3.64%) beg\\u00fcnstigt Healthcare-Repricing, w\\u00e4hrend der Markt BMY noch immer auf IRA-Risiken diskontiert. Q3 2026 Earnings k\\u00f6nnten erste Sotyktu-PSA-Skalierungssignale liefern, die Konsensmodelle \\u00fcberraschen.\",\n        \"catalyst\": \"FDA-Approval Opdivo Qvantig + Q2/Q3 2026 Earnings-Guidance-Update zu Sotyktu PSA Ramp und m\\u00f6gliche positive Revisionen bei Rheumatologen-Adoption\",\n        \"bear_case\": \"Sotyktu PSA-Adoption bleibt strukturell schwach, Q2 2026 Earnings enthalten Revenue-Guidance-Cut, kombiniert mit anhaltenden IRA-Pricing-Dr\\u00fccken auf Eliquis \\u2014 Kursr\\u00fcckgang auf $52-54 m\\u00f6glich.\",\n        \"macro_assessment\": \"Das expansive Makroumfeld mit steiler Zinskurve (+0.54%) und moderater Fed Funds Rate (3.64%) ist grunds\\u00e4tzlich g\\u00fcnstig f\\u00fcr Long-Positionen in Healthcare. BMY profitiert als defensiver Value-Titel von fallenden Risikopr\\u00e4mien, jedoch bleibt der sektorspezifische IRA-Gegenwind ein idiosynkratisches Risiko, das makro\\u00f6konomische R\\u00fcckenwind teilweise neutralisiert.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.54,\n          \"regime\": \"expansive\"\n        },\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 7.1956,\n        \"annualized_roi\": null,\n        \"dte\": 16\n      },\n      \"outcome\": null\n    },\n    {\n      \"ticker\": \"GOOG\",\n      \"entry_date\": \"2026-05-19\",\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"mismatch\": 2.704,\n        \"z_score\": 0.459,\n        \"sigma_30d\": 0.0223,\n        \"price_move_48h\": 0.0102,\n        \"eps_drift\": 0.0008,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"weak\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.6242\n      },\n      \"strategy\": \"BULL_CALL_SPREAD\",\n      \"option\": {\n        \"expiry\": \"2026-08-21\",\n        \"strike\": 380.0,\n        \"bid\": 32.9,\n        \"ask\": 34.6,\n        \"open_interest\": 1254,\n        \"implied_vol\": 0.356,\n        \"spread_ratio\": 0.0491,\n        \"dte\": 93,\n        \"delta\": 0.6039,\n        \"data_source\": \"tradier\",\n        \"spread_leg\": {\n          \"strike\": 420.0,\n          \"bid\": 16.2,\n          \"ask\": 17.55\n        },\n        \"net_debit\": 18.4\n      },\n      \"simulation\": {\n        \"current_price\": 387.63,\n        \"target_price\": 418.64,\n        \"hit_rate\": 0.7202,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0189,\n        \"alpha\": 0.0029\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"GOOG ist ein $4.7T Mega-Cap mit extremer Informationseffizienz. Google I/O ist ein \\u00f6ffentliches Event, das institutionelle Desks seit Wochen antizipieren. Gemini 3.5 Pricing-Details werden innerhalb von Minuten von Hunderten von Sell-Side-Analysten modelliert \\u2014 ein struktureller Edge f\\u00fcr Retail-Investoren ist bei solchen \\u00f6ffentlichen Ank\\u00fcndigungen nahezu ausgeschlossen. Die -1.0% Preisbewegung in 48h deutet zudem darauf hin, dass der Markt bereits beginnt, die Euphorie zu diskontieren.\",\n          \"argument_2\": \"IV-Crush-Risiko ist erheblich: Google I/O ist ein bekanntes Katalysator-Event, was bedeutet, dass die implizite Volatilit\\u00e4t vor dem Event k\\u00fcnstlich erh\\u00f6ht war und danach kollabiert. Naked Long-Call-Positionen nach einem solchen Event sind besonders gef\\u00e4hrdet, da der Zeitwertverfall und der IV-Crush die Position gleichzeitig belasten. Die VIX-Contango-Struktur (slope +26%) signalisiert zwar sinkende Marktvolatilit\\u00e4t, aber GOOG-spezifische IV nach I/O ist bereits teilweise gecrasht.\",\n          \"argument_3\": \"Der AI-Modell-Pricing-Wettbewerb ist fundamentaler Gegenwind: Wenn Google Gemini 3.5 aggressiv preist (g\\u00fcnstig vs. Rivalen), k\\u00f6nnte dies Margin-Kompression im Cloud/AI-Segment signalisieren statt Wachstum. OpenAI, Anthropic und Meta investieren massiv \\u2014 der Markt k\\u00f6nnte Preisaggressivit\\u00e4t als Zeichen von Wettbewerbsdruck statt St\\u00e4rke interpretieren. Samsung/Google AI-Glasses gegen Meta/Apple ist ein Hardwaresegment mit unklaren Margen und langem Materialisierungshorizont.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein MC wurde durchgef\\u00fchrt (0 Pfade), daher ist 0% Hit-Rate kein Datenpunkt, sondern ein fehlendes Datenpunkt. Die Aussagekraft ist null \\u2014 weder bullisch noch bearisch. Bei GOOG mit historischer 30d-Vola von ~25-30% w\\u00e4re eine realistische Hit-Rate f\\u00fcr moderate Preisziele (5-8% Aufw\\u00e4rtsbewegung) in 30 Tagen typischerweise 35-50%, abh\\u00e4ngig vom Strike. Fehlende Statistik erh\\u00f6ht Unsicherheit erheblich.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"catalyst_confidence\": 5,\n        \"asymmetry_reasoning\": \"Der Markt hat die Gemini 3.5 Pricing-Strategie noch nicht vollst\\u00e4ndig in Cloud-Revenue-Modelle \\u00fcbersetzt, da die Detailtiefe der I/O-Ank\\u00fcndigung umfangreicher als erwartet war. Insider-Cluster-K\\u00e4ufe (3 K\\u00e4ufer in 14 Tagen) sind ein nicht-triviales Signal bei einem Mega-Cap, da diese teuer und risikoreich sind. Der AI-Glasses-Vorsto\\u00df mit Samsung er\\u00f6ffnet eine optionale Hardware-Umsatzquelle, die in aktuellen Konsenssch\\u00e4tzungen nicht modelliert ist.\",\n        \"catalyst\": \"Gemini 3.5 Adoption-Metriken und Cloud-Revenue-Beat in Q2 2026 Earnings (Juli 2026), kombiniert mit m\\u00f6glicher Aufw\\u00e4rtsrevision der AI-Segment-Margen durch g\\u00fcnstigere Inference-Kosten.\",\n        \"bear_case\": \"Aggressive AI-Modell-Preissetzung signalisiert Wettbewerbsdruck statt Marktmacht \\u2014 Margin-Kompression im Google Cloud Segment k\\u00f6nnte Konsenssch\\u00e4tzungen f\\u00fcr Q2 2026 entt\\u00e4uschen und den gesamten bullischen Narrativ umkehren.\",\n        \"macro_assessment\": \"Das expansive Makro-Umfeld (steile Kurve +0.54%, Fed Funds 3.64%) beg\\u00fcnstigt grunds\\u00e4tzlich Long-Positionen in Growth/Tech. Die VIX-Contango-Struktur ist moderat positiv f\\u00fcr gerichtete Positionen, empfiehlt aber Spreads statt nackter Calls, um residuales IV-Crush-Risiko nach I/O zu begrenzen. Bei einem $4.7T Mega-Cap ist Makro-R\\u00fcckenwind notwendig aber nicht hinreichend f\\u00fcr signifikante Outperformance.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.54,\n          \"regime\": \"expansive\"\n        },\n        \"mc_hit_rate\": 0.0,\n        \"is_mega_cap\": true,\n        \"market_cap\": 4696309760000,\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 0.1809,\n        \"annualized_roi\": 0.8407,\n        \"dte\": 93\n      },\n      \"outcome\": null\n    },\n    {\n      \"ticker\": \"GOOGL\",\n      \"entry_date\": \"2026-05-19\",\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"mismatch\": 2.731,\n        \"z_score\": 0.454,\n        \"sigma_30d\": 0.0227,\n        \"price_move_48h\": 0.0103,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"weak\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.6286\n      },\n      \"strategy\": \"BULL_CALL_SPREAD\",\n      \"option\": {\n        \"expiry\": \"2026-08-21\",\n        \"strike\": 390.0,\n        \"bid\": 29.45,\n        \"ask\": 30.55,\n        \"open_interest\": 6240,\n        \"implied_vol\": 0.3645,\n        \"spread_ratio\": 0.036,\n        \"dte\": 93,\n        \"delta\": 0.5666,\n        \"data_source\": \"tradier\",\n        \"spread_leg\": {\n          \"strike\": 430.0,\n          \"bid\": 14.4,\n          \"ask\": 15.2\n        },\n        \"net_debit\": 16.15\n      },\n      \"simulation\": {\n        \"current_price\": 388.72,\n        \"target_price\": 419.82,\n        \"hit_rate\": 0.7272,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0193,\n        \"alpha\": 0.00295\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"GOOGL ist mit einer Marktkapitalisierung von $4.7 Billion eines der meistbeobachteten Unternehmen der Welt. Die Google I/O-Ank\\u00fcndigungen zu Gemini 3.5 und Smart Glasses sind \\u00f6ffentliche Events, die von hunderten institutionellen Analysten in Echtzeit verarbeitet werden. Es ist \\u00e4u\\u00dferst unwahrscheinlich, dass ein strukturelles Repricing-Signal hier einen echten Informationsvorsprung gegen\\u00fcber dem Markt bietet \\u2014 der Kursr\\u00fcckgang von -1.0% in 48h deutet eher darauf hin, dass der Markt die Ank\\u00fcndigungen als 'meet expectations' eingestuft hat, nicht als strukturellen Durchbruch.\",\n          \"argument_2\": \"Der AI-Wettbewerb intensiviert sich massiv: OpenAI, Anthropic, Meta und Apple dr\\u00e4ngen gleichzeitig in den Smart-Glasses- und Foundation-Model-Markt. Die Pricing-Strategie von Google bei AI-Modellen kann schnell zu einem Margendruck f\\u00fchren, wenn Wettbewerber Preise unterbieten. Zudem sind Smart Glasses bisher ein schwieriges Consumer-Segment \\u2014 Apple und Meta haben hier erhebliche Ressourcen und \\u00d6kosystem-Vorteile, was GOOGLs Marktanteilsgewinn fraglich macht.\",\n          \"argument_3\": \"Der Dealer-Gamma-Effekt (Call-OI 5,729 vs. Put-OI 3,070) zeigt eine klare Long-Schieflage im Options-Markt. Dies bedeutet, dass Dealer bei Kursanstieg Long-Exposure abbauen m\\u00fcssen (negative Gamma-Hedging), was Aufw\\u00e4rtsbewegungen strukturell d\\u00e4mpft. Insider-K\\u00e4ufe sind zwar ein positives Signal, aber in einem Mega-Cap wie GOOGL oft Routine-Kompensationsprogramme und kein verl\\u00e4sslicher Timing-Indikator f\\u00fcr kurzfristige Kursgewinne.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Die 0% Hit-Rate basiert auf keinem durchgef\\u00fchrten MC-Lauf (0 Pfade), ist also kein statistisches Ergebnis sondern ein Datenfehler. F\\u00fcr GOOGL mit historischer IV um 25-30% und einem 2-6 Monats-Horizont w\\u00e4re eine realistische MC Hit-Rate f\\u00fcr moderate Bullish-Ziele (z.B. +10-15%) bei etwa 40-55% anzusetzen. Die fehlenden Daten erh\\u00f6hen die Unsicherheit erheblich.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 5,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"catalyst_confidence\": 5,\n        \"asymmetry_reasoning\": \"Der Markt hat die kombinierte Wirkung aus aggressiver Gemini-3.5-Preisgestaltung und Smart-Glasses-\\u00d6kosystem noch nicht vollst\\u00e4ndig eingepreist, da post-I/O-Sell-offs bei Mega-Caps systematisch \\u00dcberreaktionen erzeugen. Insider-Cluster-K\\u00e4ufe liefern ein zus\\u00e4tzliches, wenn auch schwaches Timing-Signal. Das expansive Makro-Umfeld reduziert den Diskontierungsdruck auf Wachstumsbewertungen und beg\\u00fcnstigt strukturelle Re-Ratings.\",\n        \"catalyst\": \"Monetarisierung von Gemini 3.5 in Google Cloud/Workspace mit konkreten Enterprise-Deal-Ank\\u00fcndigungen im Q2 2026 Earnings (Juli 2026) sowie erste Smart-Glasses-Verkaufszahlen\",\n        \"bear_case\": \"AI-Preiskampf komprimiert Cloud-Margen, w\\u00e4hrend Smart-Glasses-Hardware-Investitionen den Free Cash Flow belasten \\u2014 gleichzeitig d\\u00e4mpft der Dealer-Gamma-Effekt technische Ausbr\\u00fcche strukturell\",\n        \"macro_assessment\": \"Das expansive Makro-Umfeld (steile Kurve +0.54%, Fed Funds 3.64%) beg\\u00fcnstigt Long-Positionen in Wachstumswerten grunds\\u00e4tzlich. VIX-Contango (16.7\\u219221.0) signalisiert jedoch steigende erwartete Volatilit\\u00e4t in 3 Monaten, was auf einen Spread (Bull Call Spread) gegen\\u00fcber nackten Calls hinweist, um IV-Kostenanstieg zu begrenzen. Insgesamt neutraler bis leicht positiver R\\u00fcckenwind.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.54,\n          \"regime\": \"expansive\"\n        },\n        \"mc_hit_rate\": 0.0,\n        \"is_mega_cap\": true,\n        \"market_cap\": 4709515526144,\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 0.2459,\n        \"annualized_roi\": 1.2441,\n        \"dte\": 93\n      },\n      \"outcome\": null\n    },\n    {\n      \"ticker\": \"DDOG\",\n      \"entry_date\": \"2026-05-20\",\n      \"features\": {\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"mismatch\": 3.112,\n        \"z_score\": 0.578,\n        \"sigma_30d\": 0.0597,\n        \"price_move_48h\": 0.0345,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.6432\n      },\n      \"strategy\": \"BULL_CALL_SPREAD\",\n      \"option\": {\n        \"expiry\": \"2026-08-21\",\n        \"strike\": 210.0,\n        \"bid\": 28.15,\n        \"ask\": 28.9,\n        \"open_interest\": 285,\n        \"implied_vol\": 0.6211,\n        \"spread_ratio\": 0.026,\n        \"dte\": 92,\n        \"delta\": 0.5946,\n        \"data_source\": \"tradier\",\n        \"spread_leg\": {\n          \"strike\": 230.0,\n          \"bid\": 19.85,\n          \"ask\": 21.25\n        },\n        \"net_debit\": 9.05\n      },\n      \"simulation\": {\n        \"current_price\": 211.93,\n        \"target_price\": 243.79,\n        \"hit_rate\": 0.6786,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0448,\n        \"alpha\": 0.00381\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"DDOG notiert bereits bei einer Marktkapitalisierung von $75 Mrd. bei einem EPS von nur $2.84, was einem KGV von ~74 entspricht. Die Aktie hat in den letzten 48h bereits +3,4% zugelegt, was darauf hindeutet, dass der Integrations-Katalysator (Cloudflare/Claude) zumindest partiell eingepreist ist. Ein Gro\\u00dfteil des kurzfristigen Upside-Potenzials k\\u00f6nnte bereits absorbiert sein.\",\n          \"argument_2\": \"Die genannten Katalysatoren \\u2013 datadog-serverless-compat 0.15.0 und Claude Managed Agents auf Cloudflare \\u2013 sind \\u00f6ffentlich verf\\u00fcgbare Informationen aus dem Open-Source- und Partner-\\u00d6kosystem. Diese Integrations-News sind f\\u00fcr institutionelle Analysten mit dedizierter Cloud/AI-Coverage sofort sichtbar. Der behauptete 'langsame Markt' bei der Verarbeitung ist bei einem stark gecoverten Growth-Tech-Titel mit erheblicher institutioneller Aufmerksamkeit skeptisch zu betrachten.\",\n          \"argument_3\": \"Das Dealer-Gamma-Signal zeigt Call-OI (436) dominierend \\u00fcber Put-OI (251) ATM. Dies bedeutet, dass Dealer bei steigenden Kursen short Gamma sind und aktiv hedgen m\\u00fcssen \\u2013 was Aufw\\u00e4rtsbewegungen d\\u00e4mpft. Kombiniert mit einer bereits aufgelaufenen 3,4%-Bewegung in 48h und einer VIX-Contango-Struktur (Markt erwartet sinkende Vol) besteht das Risiko eines Vol-Crush nach dem n\\u00e4chsten Event-Fenster, das Long-Options-Strategien benachteiligt.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein Quick MC durchgef\\u00fchrt (0 Pfade). Die fehlende Simulation reduziert die quantitative Unterst\\u00fctzung erheblich. Bei DDOG mit historisch hoher Volatilit\\u00e4t (~45-55% annualisiert) w\\u00e4re eine Hit-Rate von 0% unrealistisch \\u2014 der fehlende MC ist ein Datenl\\u00fccken-Problem, keine echte Aussage \\u00fcber die Pfad-Wahrscheinlichkeit. Das Fehlen des MC erh\\u00f6ht die Unsicherheit und erfordert konservativere Impact-Bewertung.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 6,\n        \"surprise\": 5,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 5,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"catalyst_confidence\": 5,\n        \"asymmetry_reasoning\": \"Der Markt bewertet Ecosystem-Integrationen wie Cloudflare/Claude-Agents als inkrementelle News, ohne den kumulativen Netzwerkeffekt f\\u00fcr DDAGs AI-Observability-Plattform vollst\\u00e4ndig zu diskontieren. Cluster-Insider-K\\u00e4ufe (6 Personen in 14 Tagen) signalisieren intern gesteigertes Conviction, das \\u00f6ffentlich noch nicht reflektiert ist. Das expansive Makro-Umfeld und steile Zinskurve beg\\u00fcnstigen Growth-Multiples zus\\u00e4tzlich.\",\n        \"catalyst\": \"Kumulativer AI-Observability-Plattform-Ausbau durch Cloudflare/Claude-Agent-Integration und Serverless-Compat-Expansion, validiert durch Cluster-Insider-K\\u00e4ufe vor dem n\\u00e4chsten Earnings-Zyklus Q2 2026\",\n        \"bear_case\": \"\\u00d6ffentliche Integrations-News sind bei einem stark gecoverten Growth-Titel schnell eingepreist; das KGV von ~74 l\\u00e4sst wenig Puffer f\\u00fcr Entt\\u00e4uschungen, und das Call-dominante Dealer-Gamma-Profil d\\u00e4mpft strukturell kurzfristige Aufw\\u00e4rtsbewegungen.\",\n        \"macro_assessment\": \"Das expansive Makro-Umfeld (Zinskurve +0.54%, Fed Funds 3.64%) beg\\u00fcnstigt High-Multiple-Growth-Titel wie DDOG. Die VIX-Contango-Struktur (slope +31%) signalisiert, dass kurzfristige Volatilit\\u00e4t als \\u00fcberbewertet gilt \\u2014 dies reduziert das IV-Crush-Risiko f\\u00fcr mittelfristige Long-Strategien auf 2-3 Monate. Insgesamt konstruktives Umfeld, das bullische Struktursignale moderat verst\\u00e4rkt.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.54,\n          \"regime\": \"expansive\"\n        },\n        \"mc_hit_rate\": 0.0,\n        \"is_mega_cap\": false,\n        \"market_cap\": 75438637056,\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 0.6812,\n        \"annualized_roi\": null,\n        \"dte\": 92\n      },\n      \"outcome\": null\n    },\n    {\n      \"ticker\": \"COIN\",\n      \"entry_date\": \"2026-05-20\",\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"mismatch\": 3.719,\n        \"z_score\": 0.256,\n        \"sigma_30d\": 0.0395,\n        \"price_move_48h\": 0.0101,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"good\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.5276\n      },\n      \"strategy\": \"LONG_CALL\",\n      \"option\": {\n        \"expiry\": \"2026-08-21\",\n        \"strike\": 200.0,\n        \"bid\": 25.5,\n        \"ask\": 26.75,\n        \"open_interest\": 1667,\n        \"implied_vol\": 0.7097,\n        \"spread_ratio\": 0.0467,\n        \"dte\": 92,\n        \"delta\": 0.5548,\n        \"data_source\": \"tradier\"\n      },\n      \"simulation\": {\n        \"current_price\": 194.5,\n        \"target_price\": 224.56,\n        \"hit_rate\": 0.522,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0461,\n        \"alpha\": -0.00012\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"COIN ist extrem zyklisch und direkt an Krypto-Marktbewegungen gekoppelt. Ein Altseason-Narrativ basierend auf HYPE/Hyperliquid-Sentiment ist h\\u00f6chst spekulativ \\u2014 solche Katalysatoren sind notorisch kurzlebig und k\\u00f6nnen sich innerhalb von Tagen umkehren. Der Markt hat in der Vergangenheit wiederholt gezeigt, dass Altseason-Erwartungen oft vorzeitig eingepreist werden und dann entt\\u00e4uschen.\",\n          \"argument_2\": \"Die EPS-Divergenz zwischen yfinance ($4.99) und SEC EDGAR ($2.73) deutet auf signifikante Datenqualit\\u00e4tsprobleme hin. Trotz 0% Abweichungsangabe sind diese Zahlen faktisch stark unterschiedlich \\u2014 das untergr\\u00e4bt die fundamentale Bewertungsbasis erheblich. Zudem ist COIN bei $194.50 mit einem KGV auf SEC-Basis von ca. 71x hoch bewertet, was bei einer Krypto-Korrektur zu massivem Multiple-Compression f\\u00fchren kann.\",\n          \"argument_3\": \"Der Insider-Kauf-Cluster (6 Insider in 14 Tagen) k\\u00f6nnte tr\\u00fcgerisch sein: Bei Krypto-Firmen folgen Insider oft strukturierten Verg\\u00fctungspl\\u00e4nen (RSU-K\\u00e4ufe, vorprogrammierte 10b5-1-Pl\\u00e4ne), die kein echtes Conviction-Signal darstellen. Gleichzeitig ist die 48h-Preisbewegung von -1.0% trotz positiver Nachrichten schwach \\u2014 m\\u00f6glicherweise absorbiert der Markt bereits Verkaufsdruck institutioneller Halter.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Quick MC wurde nicht durchgef\\u00fchrt (0 Pfade), daher ist die 0% Hit-Rate kein inhaltliches Signal, sondern ein technisches Fehlerresultat. Bei COIN mit einer historischen 30-Tage-Volatilit\\u00e4t von typischerweise 50-80% annualisiert w\\u00e4re eine realistische Hit-Rate f\\u00fcr einen moderaten Bull-Case (z.B. +10-15% Strike) bei 35-50% zu erwarten. Die fehlende MC-Daten erh\\u00f6hen die Unsicherheit, bedeuten aber nicht zwingend ein Veto.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"4-8 Wochen\",\n        \"catalyst_confidence\": 4,\n        \"asymmetry_reasoning\": \"Der Markt preist das Altseason-Narrativ noch nicht vollst\\u00e4ndig ein, da COIN trotz positiver Krypto-Signale leicht gefallen ist \\u2014 eine typische Verz\\u00f6gerung bei Sentiment-Shifts. Der Insider-Cluster von 6 K\\u00e4ufern in 14 Tagen liefert ein zus\\u00e4tzliches, nicht vollst\\u00e4ndig eingepreistes Signal f\\u00fcr interne Zuversicht. Das expansive Makroumfeld mit steiler Zinskurve beg\\u00fcnstigt Risk-On-Assets wie COIN strukturell \\u00fcber 4-8 Wochen.\",\n        \"catalyst\": \"Altseason-Rallye getrieben durch Hyperliquid/HYPE-Momentum und breiten Sentiment-Shift im Krypto-\\u00d6kosystem, kombiniert mit Insider-Kauf-Cluster als Conviction-Signal\",\n        \"bear_case\": \"Krypto-Sentiment dreht schnell: Eine Bitcoin-Korrektur oder regulatorische Negativnachrichten k\\u00f6nnen COIN \\u00fcberproportional treffen. Bei einem KGV von ~71x (SEC-Basis) gibt es kaum fundamentalen Sicherheitspuffer, und das Altseason-Narrativ k\\u00f6nnte bereits eingepreist sein.\",\n        \"macro_assessment\": \"Das expansive Makroumfeld (steile Kurve +0.54%, Fed Funds 3.64%) ist grunds\\u00e4tzlich g\\u00fcnstig f\\u00fcr Risk-On-Assets wie COIN. Der VIX-Contango (16\\u219220.9) signalisiert erwarteten Vol-Anstieg auf 3-Monatssicht \\u2014 Long-Vol-Strategien sind weniger riskant als \\u00fcblich, aber Spreads bleiben sinnvoll um COIN-spezifisches Vol-Risiko zu begrenzen. Makro st\\u00fctzt das Bullish-Bias, kompensiert aber nicht das hohe idiosynkratische Krypto-Risiko.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.54,\n          \"regime\": \"expansive\"\n        },\n        \"mc_hit_rate\": 0.0,\n        \"is_mega_cap\": false,\n        \"market_cap\": 51243118592,\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 0.2308,\n        \"annualized_roi\": 1.1464,\n        \"dte\": 92\n      },\n      \"outcome\": null\n    },\n    {\n      \"ticker\": \"GOOG\",\n      \"entry_date\": \"2026-05-20\",\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"mismatch\": 0.207,\n        \"z_score\": 0.959,\n        \"sigma_30d\": 0.0223,\n        \"price_move_48h\": 0.0214,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"weak\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.6398\n      },\n      \"strategy\": \"BULL_CALL_SPREAD\",\n      \"option\": {\n        \"expiry\": \"2026-08-21\",\n        \"strike\": 380.0,\n        \"bid\": 29.6,\n        \"ask\": 30.3,\n        \"open_interest\": 1278,\n        \"implied_vol\": 0.3499,\n        \"spread_ratio\": 0.0231,\n        \"dte\": 92,\n        \"delta\": 0.5777,\n        \"data_source\": \"tradier\",\n        \"spread_leg\": {\n          \"strike\": 420.0,\n          \"bid\": 14.05,\n          \"ask\": 14.45\n        },\n        \"net_debit\": 16.25\n      },\n      \"simulation\": {\n        \"current_price\": 381.78,\n        \"target_price\": 412.32,\n        \"hit_rate\": 0.736,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.019,\n        \"alpha\": 0.00287\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Berkshire/Abel-Pivot als Signal ist schwach: Die Positionierung eines Value-Fonds in einem AI-Tech-Titel ist keine nicht-\\u00f6ffentliche Information und wird bei einem $4.6T Mega-Cap innerhalb von Minuten eingepreist. Der Kurs reagierte bereits \\u2013 die -2.1% in 48h zeigen, dass kein nachhaltiger Kaufdruck entstanden ist, obwohl die News bekannt wurden.\",\n          \"argument_2\": \"Googles Kerngesch\\u00e4ft Search steht unter strukturellem Druck durch AI-Disruption (ChatGPT, Perplexity, eigene AI-Overviews kannibalisieren Click-Rates). Die Google I/O 2026 AI Showcase war ein bekannter Termin \\u2013 BofA's $430 Kursziel nach dem Event deutet auf Katalysator-Already-Priced-In hin. IV-Crush nach dem Showcase-Event kann Long-Optionen erheblich sch\\u00e4digen.\",\n          \"argument_3\": \"Die UK Union-Ablehnung signalisiert potenzielle regulatorische und arbeitsrechtliche Risiken in Europa. Antitrust-Verfahren gegen Google laufen in mehreren Jurisdiktionen parallel (EU, DOJ), und ein negatives Urteil im 2-6 Monats-Horizont k\\u00f6nnte das Search-Monopol strukturell gef\\u00e4hrden und Milliarden an Strafzahlungen ausl\\u00f6sen.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"0% Hit-Rate ist nicht interpretierbar da kein MC durchgef\\u00fchrt wurde \\u2013 keine statistischen R\\u00fcckschl\\u00fcsse m\\u00f6glich. Die fehlende Simulation erh\\u00f6ht die Unsicherheit bei der Positionssizing-Entscheidung erheblich.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"2-3 Monate\",\n        \"catalyst_confidence\": 5,\n        \"asymmetry_reasoning\": \"Der Berkshire-Abel-Pivot signalisiert institutionelle Neubewertung von GOOG als AI-Infrastruktur-Titel, nicht mehr nur als Werbe-Plattform. Insider-Cluster-K\\u00e4ufe innerhalb von 14 Tagen bei gleichzeitigem Kursr\\u00fcckgang von -2.1% deuten auf informierten Akkumulationsdruck hin. Das expansive Makroumfeld mit steiler Kurve beg\\u00fcnstigt Wachstumstitel, was die strukturelle Underreaction gegen\\u00fcber dem I/O-Showcase-Momentum verst\\u00e4rkt.\",\n        \"catalyst\": \"BofA $430 Kursziel nach I/O 2026 AI Showcase kombiniert mit Berkshire-Einstieg als Katalysator f\\u00fcr institutionelle Neubewertung im Q3 2026 Earnings-Zyklus\",\n        \"bear_case\": \"AI-Overviews kannibalisieren Search-Click-Rates strukturell, w\\u00e4hrend laufende DOJ/EU-Antitrust-Urteile im 2-6 Monats-Horizont materialisieren k\\u00f6nnten und die gesamte Bull-Thesis eines stabilen Monopol-Cashflows gef\\u00e4hrden.\",\n        \"macro_assessment\": \"Expansives Umfeld mit steiler Kurve (+0.54%) und Fed Funds bei 3.64% beg\\u00fcnstigt Growth/Tech-Positionen. VIX Contango deutet auf sinkende implizite Volatilit\\u00e4t hin, was Long-Calls mittelfristig unterst\\u00fctzt. Der 10Y bei 4.32% ist tolerierbar f\\u00fcr High-Multiple-Titel, jedoch begrenzt dies den Bewertungsexpansionsspielraum bei einem bereits $4.6T Mega-Cap.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.54,\n          \"regime\": \"expansive\"\n        },\n        \"mc_hit_rate\": 0.0,\n        \"is_mega_cap\": true,\n        \"market_cap\": 4624465002496,\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 0.3074,\n        \"annualized_roi\": 1.686,\n        \"dte\": 92\n      },\n      \"outcome\": null\n    },\n    {\n      \"ticker\": \"CSCO\",\n      \"entry_date\": \"2026-05-20\",\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"mismatch\": 0.613,\n        \"z_score\": 0.877,\n        \"sigma_30d\": 0.0273,\n        \"price_move_48h\": 0.0239,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"weak\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.705\n      },\n      \"strategy\": \"BULL_CALL_SPREAD\",\n      \"option\": {\n        \"expiry\": \"2026-08-21\",\n        \"strike\": 115.0,\n        \"bid\": 9.55,\n        \"ask\": 9.8,\n        \"open_interest\": 331,\n        \"implied_vol\": 0.3921,\n        \"spread_ratio\": 0.0255,\n        \"dte\": 92,\n        \"delta\": 0.563,\n        \"data_source\": \"tradier\",\n        \"spread_leg\": {\n          \"strike\": 125.0,\n          \"bid\": 5.55,\n          \"ask\": 5.8\n        },\n        \"net_debit\": 4.25\n      },\n      \"simulation\": {\n        \"current_price\": 115.39,\n        \"target_price\": 124.62,\n        \"hit_rate\": 0.75,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.0226,\n        \"alpha\": 0.00425\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"CSCO ist ein Mega-Cap mit $455 Mrd. Marktkapitalisierung und extremer Informationseffizienz. Der EANTC 2026 VXLAN/EVPN Testbericht ist eine \\u00f6ffentliche, branchenweit zug\\u00e4ngliche Validierung \\u2014 institutionelle Netzwerk-Analysten haben dieses Ergebnis binnen Minuten eingepreist. Ein technisches Benchmark-Zertifikat erzeugt bei Cisco keinen nachhaltigen Informationsvorsprung, da Wettbewerber wie Arista, Juniper und HPE regelm\\u00e4\\u00dfig \\u00e4hnliche Tests durchlaufen.\",\n          \"argument_2\": \"Die aktuellen News zeigen einen breiten Markt-Sell-off mit Bond-Yields auf 19-Jahres-Hochs. Dieser makro\\u00f6konomische Gegenwind bei einem defensiven Netzwerk-Player wie Cisco bedeutet, dass trotz steil positiver Zinskurve die kurzfristige Marktdynamik bullische Einzel-Signale \\u00fcberlagern kann. Die -2.4% Bewegung in 48h deutet darauf hin, dass CSCO im Sog des Gesamtmarkts abverkauft wird, unabh\\u00e4ngig von den fundamentalen Katalysatoren.\",\n          \"argument_3\": \"Der EPS-Widerspruch zwischen yfinance (4.75) und SEC EDGAR (3.0) ist substanziell und deutet auf erhebliche Unsicherheit in der Datenbasis hin. Zudem betr\\u00e4gt die Quick-MC Hit-Rate 0%, was auf fehlende Modell-Validierung hindeutet. Die Dealer-Gamma-Konstellation mit dominierender Call-OI k\\u00f6nnte Aufw\\u00e4rtsbewegungen mechanisch d\\u00e4mpfen, und ein m\\u00f6glicher IV-Crush nach Q2-Earnings w\\u00fcrde Long-Options-Positionen stark belasten.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Die 0% Hit-Rate resultiert aus keiner Berechnung (kein MC durchgef\\u00fchrt), nicht aus einem negativen Ergebnis \\u2014 daher statistisch nicht verwertbar. Die fehlende MC-Statistik erh\\u00f6ht die Unsicherheit, eliminiert aber kein strukturelles Signal. Bei CSCO mit historischer Volatilit\\u00e4t von ca. 20-25% sind 30d-Bewegungen von 5-10% realistische Szenarien, was bei einem moderaten Kursziel eine Hit-Rate von 40-55% erwarten lie\\u00dfe.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 6,\n        \"time_to_materialization\": \"4-8 Wochen\",\n        \"catalyst_confidence\": 5,\n        \"asymmetry_reasoning\": \"Der Markt fokussiert sich auf den makro\\u00f6konomischen Sell-off und \\u00fcbersieht das Cluster-Signal aus 8 Insider-K\\u00e4ufen kombiniert mit der EANTC-Validierung kurz vor Q2-Earnings. Cisco Live 2026 und die Automation Anywhere AI-Partnerschaft schaffen einen narrativen Rahmen, der institutionelle Aufmerksamkeit auf das AI-Networking-Exposure lenken k\\u00f6nnte. Das expansive Makroregime mit positiver Zinskurve beg\\u00fcnstigt eine Neubewertung defensiver Tech-Werte sobald der Bond-Yield-Schock abklingt.\",\n        \"catalyst\": \"Q2-Earnings CSCO (ca. Juni 2026) kombiniert mit Cisco Live 2026 Momentum und 8-Insider-Kauf-Cluster als Vorl\\u00e4ufer-Signal\",\n        \"bear_case\": \"Breiter Markt-Sell-off durch Bond-Yield-Schock auf 19-Jahres-Hoch \\u00fcberlagert alle fundamentalen Einzelsignale; IV-Crush nach Earnings vernichtet Long-Options-Wert\",\n        \"macro_assessment\": \"Expansives Umfeld mit positiver Zinskurve (+0.54%) und Fed Funds Rate 3.64% beg\\u00fcnstigt grunds\\u00e4tzlich Long-Positionen. Allerdings konterkariert der aktuelle Bond-Yield-getriebene Sell-off kurzfristig diesen Rahmen. VIX Contango deutet auf sinkende Volatilit\\u00e4t in 3 Monaten \\u2014 Spreads gegen\\u00fcber nackten Calls bevorzugen um Event-Vol-Crush nach Earnings abzufedern.\",\n        \"data_confidence\": \"low\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.54,\n          \"regime\": \"expansive\"\n        },\n        \"mc_hit_rate\": 0.0,\n        \"is_mega_cap\": true,\n        \"market_cap\": 455778172928,\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 0.3752,\n        \"annualized_roi\": 2.243,\n        \"dte\": 92\n      },\n      \"outcome\": null\n    },\n    {\n      \"ticker\": \"MO\",\n      \"entry_date\": \"2026-05-20\",\n      \"features\": {\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"mismatch\": 1.549,\n        \"z_score\": 0.69,\n        \"sigma_30d\": 0.018,\n        \"price_move_48h\": 0.0125,\n        \"eps_drift\": 0.0,\n        \"bin_impact\": \"mid\",\n        \"bin_mismatch\": \"weak\",\n        \"bin_eps_drift\": \"noise\",\n        \"quick_mc_hit_rate\": 0.5378\n      },\n      \"strategy\": \"BULL_CALL_SPREAD\",\n      \"option\": {\n        \"expiry\": \"2026-09-18\",\n        \"strike\": 70.0,\n        \"bid\": 5.8,\n        \"ask\": 6.1,\n        \"open_interest\": 3388,\n        \"implied_vol\": 0.2647,\n        \"spread_ratio\": 0.0492,\n        \"dte\": 120,\n        \"delta\": 0.6461,\n        \"data_source\": \"tradier\",\n        \"spread_leg\": {\n          \"strike\": 77.5,\n          \"bid\": 2.31,\n          \"ask\": 2.44\n        },\n        \"net_debit\": 3.79\n      },\n      \"simulation\": {\n        \"current_price\": 73.95,\n        \"target_price\": 79.87,\n        \"hit_rate\": 0.6576,\n        \"n_paths\": 10000,\n        \"days\": 45,\n        \"sigma\": 0.015,\n        \"alpha\": 0.00279\n      },\n      \"deep_analysis\": {\n        \"red_team\": {\n          \"argument_1\": \"Altria ist ein strukturell schrumpfendes Gesch\\u00e4ft: Zigarettenvolumina sinken seit Jahren systematisch, und regulatorische Versch\\u00e4rfungen (Menthol-Verbote, Nikotinreduzierungsregeln) k\\u00f6nnten den R\\u00fcckgang beschleunigen. Das 'Regulatory/Tax-Umfeld-Shift'-Narrativ ist zweischneidig \\u2014 ein ung\\u00fcnstiger Policy-Shift k\\u00f6nnte den gesamten Sektor belasten, nicht st\\u00fctzen.\",\n          \"argument_2\": \"Der Barclays-Analyst hat sein Price-Target-Upgrade bereits ver\\u00f6ffentlicht und ist \\u00f6ffentlich zug\\u00e4nglich. Bei einer Marktkapitalisierung von $123,5 Mrd. wird diese Information innerhalb von Stunden von institutionellen Desks eingepreist. Das Catalyst-Signal ist damit m\\u00f6glicherweise bereits vollst\\u00e4ndig verarbeitet, und die +1,2% Preisbewegung in den letzten 48h deutet darauf hin, dass der Markt bereits reagiert hat.\",\n          \"argument_3\": \"Die Dealer-Gamma-Struktur zeigt eine Call-OI-Dominanz (2.094 zu 314), was bedeutet, dass Market-Maker bei steigenden Kursen short Gamma sind und Delta-Hedging Aufw\\u00e4rtsbewegungen aktiv d\\u00e4mpft. Gleichzeitig ist MO ein hochdividendengetriebener Titel mit 5,7% Dividendenrendite \\u2014 ein gro\\u00dfer Teil des erwarteten Returns ist bereits als Dividende eingepreist, was das Aufw\\u00e4rtspotenzial f\\u00fcr Options-Strategien begrenzt.\",\n          \"red_team_verdict\": \"PASSIERT\"\n        },\n        \"stats_check\": {\n          \"mc_assessment\": \"Kein MC durchgef\\u00fchrt \\u2014 0% Hit-Rate ist technisch bedingt (kein Modell-Run), nicht inhaltlich aussagekr\\u00e4ftig. Angesichts der historischen Volatilit\\u00e4t von MO (~18-22% annualisiert) und dem expansiven Makro-Umfeld w\\u00e4re eine realistische 30-Tage Hit-Rate f\\u00fcr moderate Aufw\\u00e4rtsbewegungen von +5-8% bei ca. 40-55% zu erwarten. Fehlende MC-Daten reduzieren die quantitative Absicherung dieser Analyse erheblich.\",\n          \"concern_level\": \"medium\"\n        },\n        \"impact\": 5,\n        \"surprise\": 4,\n        \"direction\": \"BULLISH\",\n        \"bear_case_severity\": 5,\n        \"time_to_materialization\": \"4-8 Wochen\",\n        \"catalyst_confidence\": 5,\n        \"asymmetry_reasoning\": \"Der Markt hat das Barclays-Upgrade m\\u00f6glicherweise als punktuelles Ereignis bewertet, ohne das potenzielle Portfolio-Rebalancing in Defensive-Dividendentiteln einzupreisen, das bei einem Zinsumfeld-Shift folgen k\\u00f6nnte. Das Insider-Cluster-Kaufsignal (8 Insider in 14 Tagen) liefert einen unabh\\u00e4ngigen, nicht-\\u00f6ffentlichen Indikator f\\u00fcr innerbetrieblich wahrgenommene Unterbewertung. Das Zusammentreffen von Dividendennarrativen, Sektor-Re-Rating und Insider-K\\u00e4ufen schafft eine kumulative Informationsdichte, die der Markt bisher nicht vollst\\u00e4ndig aggregiert hat.\",\n        \"catalyst\": \"Barclays Sektor-Re-Rating kombiniert mit Insider-Cluster-K\\u00e4ufen (8 Transaktionen in 14 Tagen) und m\\u00f6glichem Portfolio-Rebalancing institutioneller Anleger in hochdividendenstarke Consumer-Defensive-Titel im Zuge eines Regulatory/Tax-Umfeld-Shifts bis Ende Q3 2026.\",\n        \"bear_case\": \"Strukturell schrumpfende Zigarettenvolumina und m\\u00f6gliche regulatorische Versch\\u00e4rfungen (Menthol-Verbote, FDA-Nikotinregeln) k\\u00f6nnten das Sektor-Re-Rating-Narrativ rasch zunichte machen; zudem ist das Barclays-Upgrade als \\u00f6ffentliche Information weitgehend eingepreist.\",\n        \"macro_assessment\": \"Das expansive Makro-Umfeld (steile Kurve +0,54%, Fed Funds bei 3,64%) beg\\u00fcnstigt grunds\\u00e4tzlich Long-Positionen, jedoch profitiert MO als Consumer-Defensive-Titel prim\\u00e4r in Risk-off-Phasen. Im expansiven Regime tendieren Investoren zu Wachstumstiteln, was den Kapitalzufluss in Hochdividenden-Defensivtitel strukturell begrenzt. Der VIX-Contango spricht gegen Long-Vol-Strategien \\u2014 ein Bull-Call-Spread w\\u00e4re sinnvoller als ein nackter Long-Call.\",\n        \"data_confidence\": \"medium\",\n        \"macro_regime\": \"expansive\",\n        \"macro_context\": {\n          \"yield_curve\": 0.54,\n          \"regime\": \"expansive\"\n        },\n        \"mc_hit_rate\": 0.0,\n        \"is_mega_cap\": false,\n        \"market_cap\": 123488452608,\n        \"direction_conflict\": false\n      },\n      \"tve\": {\n        \"roi_per_day_pct\": 0.252,\n        \"annualized_roi\": 1.2336,\n        \"dte\": 120\n      },\n      \"outcome\": null\n    }\n  ],\n  \"closed_trades\": [],\n  \"model_weights\": {\n    \"impact\": 0.35,\n    \"mismatch\": 0.45,\n    \"eps_drift\": 0.2\n  },\n  \"sentiment_history\": {\n    \"TECH\": [\n      {\n        \"date\": \"2026-04-13\",\n        \"score\": 0.0,\n        \"headline_count\": 1\n      },\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": 0.0374,\n        \"headline_count\": 2\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": 0.2099,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.3703,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-24\",\n        \"score\": -0.2773,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": -0.4529,\n        \"headline_count\": 2\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": -0.2309,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": 0.1442,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-08\",\n        \"score\": 0.0816,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": 0.0324,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": 0.2347,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.1481,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": -0.0385,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.3715,\n        \"headline_count\": 2\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": 0.1162,\n        \"headline_count\": 2\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": -0.3188,\n        \"headline_count\": 2\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": -0.1816,\n        \"headline_count\": 3\n      }\n    ],\n    \"GEN\": [\n      {\n        \"date\": \"2026-04-13\",\n        \"score\": 0.0,\n        \"headline_count\": 1\n      }\n    ],\n    \"HAS\": [\n      {\n        \"date\": \"2026-04-13\",\n        \"score\": 0.0,\n        \"headline_count\": 1\n      },\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.516,\n        \"headline_count\": 3\n      }\n    ],\n    \"WELL\": [\n      {\n        \"date\": \"2026-04-13\",\n        \"score\": 0.0,\n        \"headline_count\": 1\n      }\n    ],\n    \"AKAM\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": -0.1032,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": -0.2381,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": -0.0255,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.3316,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": -0.0193,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.3096,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": 0.3096,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": -0.1371,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-08\",\n        \"score\": -0.2303,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": 0.0674,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.2342,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": -0.1949,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.2714,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.0659,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": -0.3374,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": -0.1985,\n        \"headline_count\": 5\n      }\n    ],\n    \"AMZN\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": 0.1508,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": -0.0455,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": -0.1854,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": 0.0609,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.4929,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-24\",\n        \"score\": -0.0176,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-27\",\n        \"score\": -0.2582,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.071,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.0972,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": -0.0315,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-01\",\n        \"score\": 0.2547,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-04\",\n        \"score\": -0.0765,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.3143,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": -0.0605,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": -0.002,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": 0.391,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": -0.1475,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": 0.2123,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.0585,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": 0.1971,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.1331,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": -0.0665,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.0907,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": -0.2031,\n        \"headline_count\": 5\n      }\n    ],\n    \"AXON\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": 0.416,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.2216,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.0028,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": -0.1073,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.2483,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.1048,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": -0.2036,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.503,\n        \"headline_count\": 2\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": 0.3589,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": 0.5549,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-08\",\n        \"score\": 0.0505,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": -0.2432,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": -0.3812,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.1219,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": 0.2047,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.4296,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": -0.0036,\n        \"headline_count\": 5\n      }\n    ],\n    \"KMX\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": -0.3688,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.3419,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": 0.3548,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": 0.3548,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.2529,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.8772,\n        \"headline_count\": 1\n      }\n    ],\n    \"DAL\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": -0.181,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.0512,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": -0.0364,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": -0.2023,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.1644,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": -0.4105,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-04\",\n        \"score\": -0.4954,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": 0.4085,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": -0.0794,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.0584,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.1548,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": -0.1352,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": -0.4897,\n        \"headline_count\": 5\n      }\n    ],\n    \"HOLX\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": 0.2944,\n        \"headline_count\": 2\n      },\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.2304,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": -0.2448,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": -0.9084,\n        \"headline_count\": 1\n      }\n    ],\n    \"INTC\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": 0.1729,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": -0.1639,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": -0.1943,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": 0.0297,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-20\",\n        \"score\": 0.1561,\n        \"headline_count\": 5\n      }\n    ],\n    \"MU\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": 0.0974,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": -0.1631,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": -0.0845,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-20\",\n        \"score\": -0.3497,\n        \"headline_count\": 5\n      }\n    ],\n    \"ORCL\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": 0.2105,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.1556,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": -0.386,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": 0.1974,\n        \"headline_count\": 5\n      }\n    ],\n    \"USB\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": 0.2666,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": -0.0732,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": 0.2684,\n        \"headline_count\": 5\n      }\n    ],\n    \"UAL\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": -0.1683,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": -0.2229,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": 0.2167,\n        \"headline_count\": 5\n      }\n    ],\n    \"WFC\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": 0.1505,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": -0.2787,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": 0.2238,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": 0.0456,\n        \"headline_count\": 5\n      }\n    ],\n    \"HOOD\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": 0.045,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.1942,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": -0.3009,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": 0.0428,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-20\",\n        \"score\": 0.1605,\n        \"headline_count\": 5\n      }\n    ],\n    \"CPB\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": 0.3558,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": -0.0173,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.007,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": 0.1315,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.091,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-24\",\n        \"score\": -0.0413,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-27\",\n        \"score\": -0.4541,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": -0.2242,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": -0.1352,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.1036,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": -0.1209,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": -0.0761,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.0358,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.1625,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.0609,\n        \"headline_count\": 5\n      }\n    ],\n    \"FSLR\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": -0.3317,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": -0.4035,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": -0.4636,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": -0.0551,\n        \"headline_count\": 5\n      }\n    ],\n    \"ADBE\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": 0.1076,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.3407,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-20\",\n        \"score\": 0.1378,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.2868,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": 0.2602,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.7131,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-24\",\n        \"score\": -0.0092,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-27\",\n        \"score\": -0.0569,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.5267,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-01\",\n        \"score\": 0.0052,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-04\",\n        \"score\": 0.1342,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": -0.0491,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": 0.4365,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-08\",\n        \"score\": 0.497,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": -0.0836,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.289,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": 0.4656,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.1145,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": 0.1558,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.0565,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": -0.0017,\n        \"headline_count\": 5\n      }\n    ],\n    \"META\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": 0.0851,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": -0.0718,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": -0.0939,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": -0.1449,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.1451,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-24\",\n        \"score\": 0.1542,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-27\",\n        \"score\": -0.5024,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": -0.0572,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.0437,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": -0.0398,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-01\",\n        \"score\": 0.0325,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-04\",\n        \"score\": 0.2229,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.2016,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": 0.0811,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": -0.1337,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": 0.19,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.4935,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": -0.2199,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.2569,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": 0.1656,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.0831,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": 0.2255,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": -0.1744,\n        \"headline_count\": 5\n      }\n    ],\n    \"APA\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": -0.4026,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": -0.3394,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": -0.8012,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.2103,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": 0.1152,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.1234,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.024,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.179,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.1909,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": 0.1909,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": 0.3839,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-08\",\n        \"score\": -0.2094,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.1707,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.2443,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": 0.2213,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.2475,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.3445,\n        \"headline_count\": 5\n      }\n    ],\n    \"BIIB\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": 0.256,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.5262,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-20\",\n        \"score\": 0.1948,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.2854,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": 0.2542,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.2256,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.292,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.4988,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": -0.0237,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": 0.2243,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.2071,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": -0.0721,\n        \"headline_count\": 5\n      }\n    ],\n    \"BX\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": -0.152,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.3261,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.3625,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": 0.1249,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.4869,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-24\",\n        \"score\": 0.6908,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.0589,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": 0.2352,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": -0.0539,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.008,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.0959,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": 0.038,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.2282,\n        \"headline_count\": 5\n      }\n    ],\n    \"CHTR\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": 0.1657,\n        \"headline_count\": 2\n      },\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.0732,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": 0.1406,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-20\",\n        \"score\": -0.2453,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.0157,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.2484,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-27\",\n        \"score\": 0.0838,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.111,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": -0.2186,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": 0.0675,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-01\",\n        \"score\": 0.0016,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-04\",\n        \"score\": -0.2467,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": -0.0798,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": -0.089,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": -0.1955,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": -0.0854,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": -0.0662,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": 0.0173,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": -0.0123,\n        \"headline_count\": 2\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": 0.0626,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.0394,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": -0.1717,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": -0.1928,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.1373,\n        \"headline_count\": 5\n      }\n    ],\n    \"C\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": 0.2992,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.2211,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.2667,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.1656,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": 0.242,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-08\",\n        \"score\": 0.0427,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": -0.3201,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": -0.0323,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.0203,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.015,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": -0.5069,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.1095,\n        \"headline_count\": 5\n      }\n    ],\n    \"CAG\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": 0.12,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.1128,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": 0.1128,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": -0.0487,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.3611,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-04-27\",\n        \"score\": -0.2138,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.1432,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.6897,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": 0.3331,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": -0.0367,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.0413,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": -0.0231,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.0135,\n        \"headline_count\": 1\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": 0.4227,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.8933,\n        \"headline_count\": 1\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": 0.2278,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.1314,\n        \"headline_count\": 5\n      }\n    ],\n    \"DRI\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": -0.3836,\n        \"headline_count\": 2\n      },\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.0408,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.1132,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.0899,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": 0.0899,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": -0.3359,\n        \"headline_count\": 2\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.1567,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": -0.3182,\n        \"headline_count\": 5\n      }\n    ],\n    \"FANG\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": 0.2435,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.132,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": -0.2458,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.3212,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.0393,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.0042,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.1801,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": -0.1074,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.0121,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.1542,\n        \"headline_count\": 5\n      }\n    ],\n    \"DOW\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": -0.3928,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": -0.4942,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": -0.8087,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.1245,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": -0.3233,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": 0.0967,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": 0.0587,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": -0.1971,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.2543,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": 0.3207,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": -0.214,\n        \"headline_count\": 5\n      }\n    ],\n    \"EW\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": -0.0139,\n        \"headline_count\": 1\n      },\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": -0.1129,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": -0.035,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-20\",\n        \"score\": -0.207,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.1844,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.0476,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": -0.1619,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": -0.1085,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": 0.0306,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": -0.2035,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": -0.2418,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": -0.2023,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.2135,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": 0.4251,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.1198,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.0229,\n        \"headline_count\": 5\n      }\n    ],\n    \"FAST\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": 0.3927,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": -0.1028,\n        \"headline_count\": 5\n      }\n    ],\n    \"GDDY\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": 0.2105,\n        \"headline_count\": 2\n      }\n    ],\n    \"GS\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": 0.1512,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.1174,\n        \"headline_count\": 5\n      }\n    ],\n    \"HSY\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": 0.1114,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.0425,\n        \"headline_count\": 5\n      }\n    ],\n    \"HST\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": 0.2428,\n        \"headline_count\": 2\n      },\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.4378,\n        \"headline_count\": 3\n      }\n    ],\n    \"JPM\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": 0.4201,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.3177,\n        \"headline_count\": 5\n      }\n    ],\n    \"LULU\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": -0.2416,\n        \"headline_count\": 5\n      }\n    ],\n    \"MAS\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": 0.3081,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.238,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-20\",\n        \"score\": -0.2356,\n        \"headline_count\": 5\n      }\n    ],\n    \"MGM\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": -0.4329,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": -0.5049,\n        \"headline_count\": 5\n      }\n    ],\n    \"MSFT\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": -0.0216,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.413,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": 0.0547,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": -0.2482,\n        \"headline_count\": 5\n      }\n    ],\n    \"MS\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": 0.1938,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": -0.4883,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": 0.7698,\n        \"headline_count\": 5\n      }\n    ],\n    \"MOS\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": 0.3758,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.1704,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": 0.0293,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": -0.3566,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-20\",\n        \"score\": 0.0234,\n        \"headline_count\": 4\n      }\n    ],\n    \"NKE\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": -0.0209,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.1211,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": 0.2921,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": -0.2803,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-20\",\n        \"score\": 0.3465,\n        \"headline_count\": 5\n      }\n    ],\n    \"NVDA\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": 0.276,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.3012,\n        \"headline_count\": 5\n      }\n    ],\n    \"OXY\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": -0.1445,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": -0.8052,\n        \"headline_count\": 5\n      }\n    ],\n    \"PCG\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": -0.169,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.1705,\n        \"headline_count\": 5\n      }\n    ],\n    \"RSG\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": -0.8938,\n        \"headline_count\": 1\n      }\n    ],\n    \"NOW\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": 0.081,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.1284,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": 0.1569,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-20\",\n        \"score\": 0.2521,\n        \"headline_count\": 5\n      }\n    ],\n    \"SYK\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": 0.2637,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.1286,\n        \"headline_count\": 5\n      }\n    ],\n    \"SYY\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": -0.3501,\n        \"headline_count\": 2\n      },\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": -0.2092,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": 0.2075,\n        \"headline_count\": 5\n      }\n    ],\n    \"TSLA\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": 0.0518,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": -0.0138,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": 0.1788,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": 0.2156,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-20\",\n        \"score\": 0.2801,\n        \"headline_count\": 5\n      }\n    ],\n    \"TMO\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": 0.2828,\n        \"headline_count\": 5\n      }\n    ],\n    \"XEL\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": 0.6451,\n        \"headline_count\": 1\n      }\n    ],\n    \"ZBH\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": -0.055,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": -0.0466,\n        \"headline_count\": 4\n      }\n    ],\n    \"ARES\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": -0.0081,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.0189,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.2345,\n        \"headline_count\": 4\n      }\n    ],\n    \"CVNA\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": -0.4198,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": 0.0491,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.0956,\n        \"headline_count\": 4\n      }\n    ],\n    \"PLTR\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": -0.0276,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.323,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": 0.338,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": 0.4118,\n        \"headline_count\": 5\n      }\n    ],\n    \"ARM\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": 0.2506,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": -0.072,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-20\",\n        \"score\": 0.255,\n        \"headline_count\": 4\n      }\n    ],\n    \"ASML\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": -0.2953,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": -0.0892,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": -0.1879,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": 0.1818,\n        \"headline_count\": 5\n      }\n    ],\n    \"PDD\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": 0.2313,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": 0.095,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": 0.083,\n        \"headline_count\": 4\n      }\n    ],\n    \"ZS\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": 0.0477,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": -0.011,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": -0.2163,\n        \"headline_count\": 4\n      }\n    ],\n    \"T\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": 0.3345,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.0436,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.0847,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": -0.0044,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.1591,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.0809,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.2681,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": -0.0441,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": 0.3687,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.1336,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": 0.1364,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.644,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.1017,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": 0.0945,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.3092,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.0632,\n        \"headline_count\": 5\n      }\n    ],\n    \"BDX\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": 0.0221,\n        \"headline_count\": 2\n      },\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.0221,\n        \"headline_count\": 2\n      },\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": 0.2466,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.2347,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": 0.0526,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.3277,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.3456,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": -0.0104,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.2596,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": 0.4572,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": 0.3388,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-08\",\n        \"score\": -0.0154,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": 0.3081,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.4617,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": 0.3749,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.0238,\n        \"headline_count\": 2\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.6395,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": -0.2888,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": -0.2125,\n        \"headline_count\": 5\n      }\n    ],\n    \"CE\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": 0.6461,\n        \"headline_count\": 1\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": -0.5876,\n        \"headline_count\": 1\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.1243,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.2901,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.1005,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.0282,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": 0.0532,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": 0.1766,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": 0.0461,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.1045,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": -0.1313,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.0366,\n        \"headline_count\": 5\n      }\n    ],\n    \"COP\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": -0.0584,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": -0.506,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": -0.1374,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.0683,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-27\",\n        \"score\": 0.0184,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": -0.3541,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": -0.0287,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": 0.0018,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": -0.1719,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": -0.1061,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.0255,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": -0.0034,\n        \"headline_count\": 5\n      }\n    ],\n    \"CSGP\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": -0.2808,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.1392,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.2621,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.3517,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": 0.0343,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-04\",\n        \"score\": -0.0153,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": -0.3279,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": -0.1019,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": 0.1635,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": -0.2812,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": -0.1795,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.0298,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": -0.1691,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": -0.0563,\n        \"headline_count\": 5\n      }\n    ],\n    \"HRL\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": 0.2122,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.3424,\n        \"headline_count\": 2\n      }\n    ],\n    \"CRH\": [\n      {\n        \"date\": \"2026-04-14\",\n        \"score\": -0.0007,\n        \"headline_count\": 2\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.0732,\n        \"headline_count\": 1\n      }\n    ],\n    \"ABT\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.3434,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": -0.3657,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": 0.3494,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": -0.0451,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": 0.3249,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.2766,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-24\",\n        \"score\": 0.1231,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-27\",\n        \"score\": 0.3936,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.2664,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.3757,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": 0.3778,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-01\",\n        \"score\": 0.5204,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.0718,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": 0.3578,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": -0.3927,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": -0.1003,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": 0.1347,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": -0.1258,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": -0.313,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.0301,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": 0.0264,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": -0.0283,\n        \"headline_count\": 5\n      }\n    ],\n    \"AOS\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": -0.3844,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.1889,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-24\",\n        \"score\": -0.1731,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": -0.0116,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": -0.3826,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-01\",\n        \"score\": -0.2003,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": -0.2263,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": 0.1749,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": -0.1853,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.1312,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.1312,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.4795,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": -0.5182,\n        \"headline_count\": 4\n      }\n    ],\n    \"AIG\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": -0.3749,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": -0.1618,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.128,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-27\",\n        \"score\": 0.0238,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.3627,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.1757,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": -0.0068,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-01\",\n        \"score\": -0.0167,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-04\",\n        \"score\": 0.3563,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.3682,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": -0.95,\n        \"headline_count\": 1\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.0953,\n        \"headline_count\": 2\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.1671,\n        \"headline_count\": 4\n      }\n    ],\n    \"AWK\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.0363,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": 0.523,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.3067,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": 0.374,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.4296,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-24\",\n        \"score\": 0.2634,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.2092,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.1216,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": -0.175,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-04\",\n        \"score\": 0.2242,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.212,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.1141,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": 0.3145,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.3093,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": 0.3612,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.8267,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": 0.5782,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.4676,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.3412,\n        \"headline_count\": 5\n      }\n    ],\n    \"AAPL\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.1652,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": 0.1122,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.1056,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": -0.0747,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.1752,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-24\",\n        \"score\": 0.3264,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-27\",\n        \"score\": -0.29,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": -0.0337,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": -0.0826,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": 0.2464,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-01\",\n        \"score\": 0.408,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-04\",\n        \"score\": 0.1761,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.6034,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": -0.4311,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": -0.0583,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-08\",\n        \"score\": -0.13,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": 0.16,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.0036,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": 0.2127,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.2445,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": 0.1588,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.1924,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": 0.2002,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": -0.3631,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.1367,\n        \"headline_count\": 5\n      }\n    ],\n    \"BAC\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": -0.0677,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.0792,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": 0.3899,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.283,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-24\",\n        \"score\": 0.0225,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.293,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.1258,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-04\",\n        \"score\": -0.2939,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": -0.1231,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.1491,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": -0.1748,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.3594,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": -0.1361,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.0959,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": -0.1168,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": -0.2127,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": -0.067,\n        \"headline_count\": 5\n      }\n    ],\n    \"BK\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.1416,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": -0.0217,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": 0.3871,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.3038,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": 0.3038,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.1655,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-24\",\n        \"score\": 0.1303,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-27\",\n        \"score\": -0.4541,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.0085,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.0154,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.1563,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": 0.2306,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": 0.3832,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": -0.1227,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.1513,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": 0.2604,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.0082,\n        \"headline_count\": 1\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": 0.0589,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.0358,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.0397,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.23,\n        \"headline_count\": 4\n      }\n    ],\n    \"AVGO\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.2059,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.1074,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": 0.5332,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.0296,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-24\",\n        \"score\": 0.3341,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": -0.2819,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": -0.0368,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": 0.3581,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.285,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": -0.0933,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": 0.0734,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": 0.1156,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": -0.1249,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": 0.2854,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.1261,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": -0.2766,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.129,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": 0.0616,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": -0.3499,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.223,\n        \"headline_count\": 5\n      }\n    ],\n    \"BRK-B\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": -0.128,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": 0.1468,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-20\",\n        \"score\": 0.0594,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": -0.3116,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.4136,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-27\",\n        \"score\": -0.2403,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.1921,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.2097,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": 0.1015,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-04\",\n        \"score\": 0.0343,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": -0.0238,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": 0.0136,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": 0.1061,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": 0.0888,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.1653,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": -0.0797,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": -0.0483,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": -0.2755,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.1222,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": -0.1185,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": -0.5792,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": -0.2448,\n        \"headline_count\": 4\n      }\n    ],\n    \"CARR\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": -0.4658,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": -0.1027,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.2019,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.165,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-24\",\n        \"score\": 0.4619,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": -0.44,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": 0.0533,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.0617,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.0321,\n        \"headline_count\": 2\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": -0.1092,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.3701,\n        \"headline_count\": 5\n      }\n    ],\n    \"CAT\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.0526,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.0514,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.0454,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": -0.1385,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.0505,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": 0.0466,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-04\",\n        \"score\": 0.0525,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": -0.0707,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": 0.2144,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": -0.2252,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": 0.4299,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": -0.0225,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.2466,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": -0.0772,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.0073,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": 0.0574,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.0195,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.2729,\n        \"headline_count\": 5\n      }\n    ],\n    \"BF-B\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.0557,\n        \"headline_count\": 1\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.0298,\n        \"headline_count\": 2\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": -0.5128,\n        \"headline_count\": 5\n      }\n    ],\n    \"LLY\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.5093,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.1072,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.2671,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": -0.0243,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.0464,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": 0.2111,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.0695,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": -0.0618,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.1693,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": -0.0474,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": -0.1418,\n        \"headline_count\": 5\n      }\n    ],\n    \"FE\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.657,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": 0.0105,\n        \"headline_count\": 1\n      }\n    ],\n    \"ITW\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": -0.2985,\n        \"headline_count\": 3\n      }\n    ],\n    \"IR\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": -0.2044,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": -0.4092,\n        \"headline_count\": 4\n      }\n    ],\n    \"KLAC\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": -0.1751,\n        \"headline_count\": 5\n      }\n    ],\n    \"KEY\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.5088,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": 0.2257,\n        \"headline_count\": 5\n      }\n    ],\n    \"LRCX\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": -0.1445,\n        \"headline_count\": 5\n      }\n    ],\n    \"LYV\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": -0.2705,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": -0.4498,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": -0.4433,\n        \"headline_count\": 5\n      }\n    ],\n    \"MTB\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.3531,\n        \"headline_count\": 5\n      }\n    ],\n    \"MDT\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.1127,\n        \"headline_count\": 5\n      }\n    ],\n    \"MOH\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.4665,\n        \"headline_count\": 1\n      }\n    ],\n    \"NEM\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": -0.1348,\n        \"headline_count\": 2\n      }\n    ],\n    \"NI\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.1357,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": 0.1271,\n        \"headline_count\": 5\n      }\n    ],\n    \"NSC\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.3275,\n        \"headline_count\": 5\n      }\n    ],\n    \"NRG\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.0306,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": 0.0399,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-04-20\",\n        \"score\": -0.6185,\n        \"headline_count\": 4\n      }\n    ],\n    \"PNC\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.3378,\n        \"headline_count\": 5\n      }\n    ],\n    \"PTC\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.2256,\n        \"headline_count\": 4\n      }\n    ],\n    \"SBAC\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.3699,\n        \"headline_count\": 5\n      }\n    ],\n    \"PGR\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.3378,\n        \"headline_count\": 5\n      }\n    ],\n    \"STX\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.1496,\n        \"headline_count\": 5\n      }\n    ],\n    \"SWK\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": -0.0544,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": -0.3527,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": 0.0744,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-20\",\n        \"score\": -0.0133,\n        \"headline_count\": 5\n      }\n    ],\n    \"UBER\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": -0.0788,\n        \"headline_count\": 5\n      }\n    ],\n    \"XYL\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.0266,\n        \"headline_count\": 1\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": 0.3055,\n        \"headline_count\": 2\n      }\n    ],\n    \"APP\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.1004,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.3401,\n        \"headline_count\": 5\n      }\n    ],\n    \"IBKR\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": -0.0914,\n        \"headline_count\": 5\n      }\n    ],\n    \"TEAM\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.0344,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": -0.1394,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": -0.1584,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-20\",\n        \"score\": -0.2197,\n        \"headline_count\": 5\n      }\n    ],\n    \"ADP\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.1409,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": -0.3167,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": -0.2573,\n        \"headline_count\": 5\n      }\n    ],\n    \"DDOG\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.1379,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": 0.2589,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.2279,\n        \"headline_count\": 5\n      }\n    ],\n    \"MDB\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.1479,\n        \"headline_count\": 5\n      }\n    ],\n    \"CCL\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.1535,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": 0.0442,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": -0.2064,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.1676,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.0264,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-24\",\n        \"score\": 0.0748,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.1542,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": -0.7244,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": 0.0528,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-01\",\n        \"score\": 0.0896,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-04\",\n        \"score\": -0.2526,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": -0.1848,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": 0.054,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": 0.1343,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": 0.1868,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": -0.0119,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": -0.5173,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": -0.43,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.6746,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": 0.013,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": -0.1777,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": -0.2155,\n        \"headline_count\": 5\n      }\n    ],\n    \"CVS\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.3033,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": 0.1495,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.0299,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": -0.028,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.2361,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": 0.1774,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": -0.2386,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": 0.3479,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-08\",\n        \"score\": 0.0344,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": -0.2379,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.2572,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": 0.4835,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.0105,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": 0.1289,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.1956,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": -0.4298,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.2325,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.0259,\n        \"headline_count\": 5\n      }\n    ],\n    \"DXCM\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": -0.2883,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": -0.2092,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.1048,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": -0.4958,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-01\",\n        \"score\": 0.0667,\n        \"headline_count\": 1\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": -0.3174,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.4343,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": 0.4731,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.2951,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": 0.3302,\n        \"headline_count\": 2\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.7655,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": -0.2205,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.1394,\n        \"headline_count\": 2\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.0022,\n        \"headline_count\": 4\n      }\n    ],\n    \"D\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": -0.0969,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": -0.1405,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.2681,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": -0.3177,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": -0.2333,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": 0.1536,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.0439,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": 0.0956,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": -0.3128,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": -0.1897,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.0938,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": -0.0534,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": -0.183,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.0089,\n        \"headline_count\": 5\n      }\n    ],\n    \"ETR\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.5059,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.1663,\n        \"headline_count\": 1\n      },\n      {\n        \"date\": \"2026-05-08\",\n        \"score\": -0.02,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": 0.3022,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.1712,\n        \"headline_count\": 2\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.191,\n        \"headline_count\": 5\n      }\n    ],\n    \"EQR\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": -0.043,\n        \"headline_count\": 2\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.1601,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": -0.6384,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": -0.3812,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.3308,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": -0.2599,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.5343,\n        \"headline_count\": 5\n      }\n    ],\n    \"ISRG\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.3261,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": -0.0131,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-20\",\n        \"score\": 0.2261,\n        \"headline_count\": 5\n      }\n    ],\n    \"MAR\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.413,\n        \"headline_count\": 5\n      }\n    ],\n    \"MET\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": -0.0407,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": -0.1725,\n        \"headline_count\": 4\n      }\n    ],\n    \"RMD\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.0593,\n        \"headline_count\": 3\n      }\n    ],\n    \"TT\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": -0.141,\n        \"headline_count\": 5\n      }\n    ],\n    \"UNP\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": -0.1263,\n        \"headline_count\": 5\n      }\n    ],\n    \"TSCO\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": -0.2694,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": -0.0496,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": -0.6709,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-20\",\n        \"score\": 0.0079,\n        \"headline_count\": 1\n      }\n    ],\n    \"A\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.1631,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": 0.1515,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.1515,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.0302,\n        \"headline_count\": 1\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.0112,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": -0.002,\n        \"headline_count\": 2\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": -0.4164,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": -0.0031,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": -0.4601,\n        \"headline_count\": 2\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.382,\n        \"headline_count\": 2\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.2842,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.2906,\n        \"headline_count\": 5\n      }\n    ],\n    \"CDNS\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.7066,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.3377,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": 0.3919,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.1535,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-24\",\n        \"score\": -0.001,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-27\",\n        \"score\": 0.1282,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.3655,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.2605,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": 0.2309,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": 0.0503,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.1857,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.0228,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.061,\n        \"headline_count\": 5\n      }\n    ],\n    \"STZ\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.1608,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.0452,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.2581,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": 0.222,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.1936,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": -0.0538,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.1804,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.0244,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": 0.1726,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.2368,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": -0.1268,\n        \"headline_count\": 5\n      }\n    ],\n    \"DE\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": -0.0452,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.0245,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": 0.243,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.1096,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.2356,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.0066,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.1444,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": -0.1065,\n        \"headline_count\": 5\n      }\n    ],\n    \"EMN\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.0035,\n        \"headline_count\": 2\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.171,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.256,\n        \"headline_count\": 5\n      }\n    ],\n    \"FISV\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.5682,\n        \"headline_count\": 3\n      }\n    ],\n    \"GPC\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.2294,\n        \"headline_count\": 2\n      }\n    ],\n    \"ARE\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.9096,\n        \"headline_count\": 1\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": 0.0188,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.3583,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": -0.2005,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": -0.1383,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": -0.3839,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": 0.3261,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.1053,\n        \"headline_count\": 5\n      }\n    ],\n    \"APTV\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": -0.0832,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": 0.0532,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": 0.1465,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": -0.2193,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": -0.2193,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": -0.4287,\n        \"headline_count\": 2\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": -0.3794,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": -0.3794,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.1698,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": 0.2739,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-08\",\n        \"score\": 0.4214,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.1562,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": 0.2539,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.0861,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": 0.0612,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.0454,\n        \"headline_count\": 1\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.4336,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.4336,\n        \"headline_count\": 4\n      }\n    ],\n    \"BALL\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": -0.0156,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": 0.2925,\n        \"headline_count\": 2\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": 0.1931,\n        \"headline_count\": 1\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.5583,\n        \"headline_count\": 2\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": 0.1212,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": -0.0147,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": 0.0003,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": -0.1753,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.2466,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.2426,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.3548,\n        \"headline_count\": 4\n      }\n    ],\n    \"BLDR\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": -0.1793,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": -0.3356,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-20\",\n        \"score\": -0.0141,\n        \"headline_count\": 1\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.0213,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": -0.1623,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.1943,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.3539,\n        \"headline_count\": 2\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.2503,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": 0.1465,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.0457,\n        \"headline_count\": 1\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": 0.0199,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": -0.0726,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.1286,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.212,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.1939,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": -0.3105,\n        \"headline_count\": 5\n      }\n    ],\n    \"BG\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.0892,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": 0.5183,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.2065,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": -0.0206,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.0451,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.1601,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.016,\n        \"headline_count\": 1\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.0199,\n        \"headline_count\": 5\n      }\n    ],\n    \"SCHW\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.1426,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": -0.3644,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": 0.3643,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": -0.3874,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": -0.0982,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.1216,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": 0.1759,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": 0.0388,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.1036,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": 0.0142,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.0632,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": 0.0846,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.0358,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": 0.1211,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.2075,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.0609,\n        \"headline_count\": 5\n      }\n    ],\n    \"CTAS\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": -0.2456,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.0213,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.142,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": 0.182,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.1293,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.1902,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": 0.0489,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.0628,\n        \"headline_count\": 2\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.1025,\n        \"headline_count\": 5\n      }\n    ],\n    \"CB\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": -0.4237,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.1045,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.0029,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.1071,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": -0.0598,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": 0.0282,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": -0.1436,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": -0.1443,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": -0.1086,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": 0.0453,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.0617,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.1761,\n        \"headline_count\": 5\n      }\n    ],\n    \"CFG\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.4295,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": 0.0587,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": 0.3007,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.2167,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.2129,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": -0.0526,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": -0.0344,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": -0.1314,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": -0.1157,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.2406,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.2203,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": -0.2187,\n        \"headline_count\": 5\n      }\n    ],\n    \"CMS\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.4467,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": -0.0927,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.1595,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.153,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": -0.0332,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": -0.1249,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.0527,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.2045,\n        \"headline_count\": 5\n      }\n    ],\n    \"KO\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": -0.0,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": -0.3874,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.1216,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": -0.0116,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": -0.1352,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": 0.0483,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": -0.4164,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": 0.2297,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.1036,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": 0.0142,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.0632,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": 0.0846,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.0358,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": 0.1211,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.0944,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.0609,\n        \"headline_count\": 5\n      }\n    ],\n    \"GLW\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": -0.1239,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": -0.3367,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.0073,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.2877,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.1522,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": 0.2312,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-04\",\n        \"score\": -0.0781,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": -0.2037,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": 0.0351,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": 0.3523,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-08\",\n        \"score\": 0.2524,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": 0.0123,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.2678,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": 0.5236,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.2296,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": 0.4453,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.1337,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": 0.1854,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.2707,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.2671,\n        \"headline_count\": 5\n      }\n    ],\n    \"COST\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.1148,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.2686,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.0142,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.2658,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": -0.213,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": -0.0691,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": -0.09,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": 0.0674,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": -0.1268,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": 0.072,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.0111,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": 0.174,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": -0.1006,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.1029,\n        \"headline_count\": 5\n      }\n    ],\n    \"DVA\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.1976,\n        \"headline_count\": 1\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.4188,\n        \"headline_count\": 4\n      }\n    ],\n    \"DLTR\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.1082,\n        \"headline_count\": 1\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": -0.0659,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.0118,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.2345,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.0558,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.0227,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": -0.3244,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": 0.0248,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": -0.0397,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.0881,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.1439,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.5092,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": -0.1621,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": -0.15,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.1567,\n        \"headline_count\": 5\n      }\n    ],\n    \"ETN\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.3838,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.0371,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.2017,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": -0.1464,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.0318,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": -0.0067,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": -0.0132,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": 0.1265,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.1641,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": 0.0024,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.1395,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": 0.1988,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.1439,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.4114,\n        \"headline_count\": 5\n      }\n    ],\n    \"EXR\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.2004,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.4974,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": -0.0318,\n        \"headline_count\": 4\n      }\n    ],\n    \"LNT\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.867,\n        \"headline_count\": 1\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.2492,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-04-24\",\n        \"score\": 0.1869,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": -0.9092,\n        \"headline_count\": 1\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.9111,\n        \"headline_count\": 1\n      }\n    ],\n    \"AMD\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.4201,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": 0.1332,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": 0.4153,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-20\",\n        \"score\": 0.0065,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.1239,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": 0.2325,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.269,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-24\",\n        \"score\": 0.3059,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-27\",\n        \"score\": 0.055,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": -0.545,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": -0.2171,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": 0.4478,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-01\",\n        \"score\": -0.141,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-04\",\n        \"score\": -0.0682,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.2869,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": -0.1769,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": -0.0046,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-08\",\n        \"score\": 0.4241,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": 0.1595,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": -0.4162,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": -0.1767,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.3079,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": 0.1076,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.1001,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": -0.0701,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": -0.0202,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.4031,\n        \"headline_count\": 5\n      }\n    ],\n    \"GOOG\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.4008,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": -0.0507,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": -0.2895,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.1135,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-24\",\n        \"score\": -0.0418,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-27\",\n        \"score\": 0.0493,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": -0.1402,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": -0.1088,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": -0.0398,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-01\",\n        \"score\": 0.105,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-04\",\n        \"score\": -0.0112,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.1948,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": -0.1088,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": 0.0948,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": 0.4193,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.2661,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": 0.1857,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.0909,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": 0.2127,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.4242,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": -0.1788,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": -0.1175,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": -0.307,\n        \"headline_count\": 5\n      }\n    ],\n    \"AES\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.4639,\n        \"headline_count\": 2\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.2502,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": 0.3502,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.2056,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-24\",\n        \"score\": 0.428,\n        \"headline_count\": 2\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.14,\n        \"headline_count\": 2\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.4841,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.0952,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.0358,\n        \"headline_count\": 5\n      }\n    ],\n    \"AEP\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.336,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.2385,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": 0.034,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.034,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": -0.1414,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.1419,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": 0.3231,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": 0.0533,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": -0.0412,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": -0.0986,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.0394,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.4171,\n        \"headline_count\": 4\n      }\n    ],\n    \"ABBV\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.319,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": -0.0968,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": 0.2526,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.0088,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-24\",\n        \"score\": 0.008,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-27\",\n        \"score\": -0.0511,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.5131,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.5092,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": -0.0664,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.3052,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.4438,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": -0.3419,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.0573,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.1011,\n        \"headline_count\": 5\n      }\n    ],\n    \"GOOGL\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.4008,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": -0.1039,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": -0.2895,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.1531,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-27\",\n        \"score\": -0.2095,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": -0.1402,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": -0.3127,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": -0.0398,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-01\",\n        \"score\": 0.1538,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-04\",\n        \"score\": -0.2226,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.3124,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": 0.6987,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": 0.0931,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": 0.3251,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.2661,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": 0.1857,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.0909,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": -0.5562,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.0446,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": 0.236,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": -0.0041,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": -0.307,\n        \"headline_count\": 5\n      }\n    ],\n    \"AMGN\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.2871,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.2893,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": 0.1534,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.0747,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": -0.1151,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.2334,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": -0.0471,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-01\",\n        \"score\": -0.1576,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-04\",\n        \"score\": 0.5196,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.2916,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.1625,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.0421,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.0818,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": -0.4572,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": -0.5363,\n        \"headline_count\": 5\n      }\n    ],\n    \"ADI\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.1465,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-20\",\n        \"score\": 0.1015,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.2953,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": 0.1052,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.3374,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-24\",\n        \"score\": 0.3086,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.1252,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": -0.1311,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.4517,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": 0.0784,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.1319,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": -0.0889,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.4442,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": 0.2011,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.3716,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": -0.3952,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.2975,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": -0.3636,\n        \"headline_count\": 5\n      }\n    ],\n    \"AMAT\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": -0.0001,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.3155,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": 0.163,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.279,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-24\",\n        \"score\": 0.1659,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-27\",\n        \"score\": -0.3372,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": -0.3693,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": -0.2086,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-04\",\n        \"score\": 0.5062,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.2086,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": 0.4276,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": 0.1771,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.4579,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": 0.1666,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.4254,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": -0.3927,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.1799,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": -0.4024,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": -0.4494,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.4545,\n        \"headline_count\": 5\n      }\n    ],\n    \"ADM\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": -0.2128,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.1125,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": 0.3603,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.1385,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.1385,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.2886,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": 0.2762,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": 0.1511,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.4258,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": 0.3787,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.3829,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.4316,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": 0.4024,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.0916,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.2086,\n        \"headline_count\": 5\n      }\n    ],\n    \"ACGL\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.1027,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.2232,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": 0.3056,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.1216,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.1693,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.3336,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": -0.2145,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.0457,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": 0.2197,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": -0.1381,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.5591,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.1404,\n        \"headline_count\": 1\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.4269,\n        \"headline_count\": 2\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": -0.0835,\n        \"headline_count\": 5\n      }\n    ],\n    \"ANET\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.2537,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.3776,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": 0.3792,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.7318,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-24\",\n        \"score\": 0.5275,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-27\",\n        \"score\": 0.1204,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.5528,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": -0.0102,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-04\",\n        \"score\": -0.2559,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.1227,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": -0.4754,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": -0.549,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-08\",\n        \"score\": 0.2311,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": 0.1097,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.241,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": -0.1002,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.1814,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": 0.3259,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.7626,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": 0.0615,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.038,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.0929,\n        \"headline_count\": 5\n      }\n    ],\n    \"ADSK\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.3453,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.0634,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": 0.1834,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.242,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.3927,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": 0.2642,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.2084,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.3813,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.0467,\n        \"headline_count\": 1\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": 0.0537,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.0826,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.2456,\n        \"headline_count\": 5\n      }\n    ],\n    \"BKR\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.1888,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": -0.3997,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": 0.4434,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.1657,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-27\",\n        \"score\": 0.0788,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.7191,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.9024,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": -0.0913,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": -0.0913,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": 0.2883,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": 0.0524,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": -0.1414,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.1521,\n        \"headline_count\": 4\n      }\n    ],\n    \"BBWI\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.636,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": -0.2218,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.0204,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": 0.0204,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.1732,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.2217,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": -0.021,\n        \"headline_count\": 1\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.1555,\n        \"headline_count\": 5\n      }\n    ],\n    \"BA\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.1781,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": -0.1318,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": 0.3185,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.1701,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": 0.2431,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.2206,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-24\",\n        \"score\": 0.0304,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": -0.06,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.5024,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.2895,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": -0.3824,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": -0.282,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-08\",\n        \"score\": 0.1734,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": -0.1227,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.1513,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": 0.0971,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.1972,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": 0.1024,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.5081,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": 0.0707,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": -0.0079,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.0609,\n        \"headline_count\": 5\n      }\n    ],\n    \"CPT\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": -0.0418,\n        \"headline_count\": 1\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.1889,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.2546,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": -0.0169,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-01\",\n        \"score\": 0.1638,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.0411,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": 0.0394,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.8214,\n        \"headline_count\": 1\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.0777,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": -0.0286,\n        \"headline_count\": 3\n      }\n    ],\n    \"CAH\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.2406,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.1175,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": 0.0741,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.3081,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-24\",\n        \"score\": 0.5937,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-27\",\n        \"score\": -0.0185,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.1355,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": -0.1779,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": -0.0222,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-04\",\n        \"score\": -0.2019,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": 0.1448,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": -0.0429,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-08\",\n        \"score\": 0.1612,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": 0.341,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.341,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": -0.3471,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.2282,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": 0.0406,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.0866,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": -0.0511,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.4014,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.1282,\n        \"headline_count\": 5\n      }\n    ],\n    \"CL\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": -0.1817,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.1759,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.0295,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": -0.0907,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-01\",\n        \"score\": 0.1149,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": -0.0094,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.044,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.05,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": 0.066,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.234,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": 0.0304,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": -0.1761,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.1539,\n        \"headline_count\": 4\n      }\n    ],\n    \"CME\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.1971,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": -0.3772,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": -0.3684,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": 0.148,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.1377,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.352,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": -0.3756,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": -0.0163,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": -0.5736,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.4538,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": 0.3282,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.7429,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": 0.1562,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": -0.2102,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": -0.029,\n        \"headline_count\": 5\n      }\n    ],\n    \"APD\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.2345,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": -0.3028,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": 0.0577,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.0814,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.229,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.5331,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": 0.1521,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.0026,\n        \"headline_count\": 1\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.1047,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": -0.034,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.3302,\n        \"headline_count\": 4\n      }\n    ],\n    \"ABNB\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.3208,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": -0.3548,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": 0.1749,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.1687,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": -0.2377,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": -0.4808,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": -0.0393,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": 0.027,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-08\",\n        \"score\": 0.0431,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": -0.278,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.3533,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.0587,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.0537,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": 0.0221,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": -0.1925,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": -0.1085,\n        \"headline_count\": 5\n      }\n    ],\n    \"CTSH\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": -0.1416,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.2089,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.1667,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": -0.2232,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.4497,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": 0.066,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": -0.0937,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": -0.3683,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": -0.4255,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": -0.264,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": -0.1163,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": 0.0476,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.1205,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": 0.155,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.1282,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": -0.4394,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.4506,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.3299,\n        \"headline_count\": 5\n      }\n    ],\n    \"CTVA\": [\n      {\n        \"date\": \"2026-04-15\",\n        \"score\": 0.1598,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.3157,\n        \"headline_count\": 5\n      }\n    ],\n    \"ALB\": [\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": 0.1245,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": -0.3752,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": -0.1335,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": 0.1506,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.2821,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-24\",\n        \"score\": 0.3394,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": -0.0087,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": 0.1676,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.2101,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": 0.1324,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": 0.1092,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-08\",\n        \"score\": -0.1585,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": 0.0234,\n        \"headline_count\": 2\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": -0.1346,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": -0.2224,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": -0.2562,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": 0.1908,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.0283,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": -0.0958,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": -0.2465,\n        \"headline_count\": 5\n      }\n    ],\n    \"GE\": [\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": 0.0172,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": -0.0425,\n        \"headline_count\": 5\n      }\n    ],\n    \"IVZ\": [\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": 0.1199,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": -0.0133,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-20\",\n        \"score\": 0.3896,\n        \"headline_count\": 5\n      }\n    ],\n    \"ON\": [\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": 0.0656,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": 0.0568,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-20\",\n        \"score\": -0.113,\n        \"headline_count\": 5\n      }\n    ],\n    \"PEP\": [\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": -0.1677,\n        \"headline_count\": 5\n      }\n    ],\n    \"PPG\": [\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": 0.0391,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": 0.1408,\n        \"headline_count\": 5\n      }\n    ],\n    \"PLD\": [\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": 0.1979,\n        \"headline_count\": 5\n      }\n    ],\n    \"RCL\": [\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": 0.3656,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": 0.2623,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-20\",\n        \"score\": -0.2899,\n        \"headline_count\": 5\n      }\n    ],\n    \"STT\": [\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": 0.7404,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": -0.2935,\n        \"headline_count\": 5\n      }\n    ],\n    \"GFS\": [\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": 0.825,\n        \"headline_count\": 1\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": 0.2462,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-20\",\n        \"score\": -0.0153,\n        \"headline_count\": 2\n      }\n    ],\n    \"TTD\": [\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": -0.1939,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-20\",\n        \"score\": -0.1144,\n        \"headline_count\": 5\n      }\n    ],\n    \"COO\": [\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": 0.1159,\n        \"headline_count\": 1\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": 0.1159,\n        \"headline_count\": 1\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": -0.3874,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.1216,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": -0.0865,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.0112,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": 0.0483,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": -0.4164,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": 0.2297,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.1036,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.0632,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.0358,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": 0.1211,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.2075,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.0609,\n        \"headline_count\": 5\n      }\n    ],\n    \"DG\": [\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": 0.4266,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": -0.5959,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.0118,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.2345,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.0558,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.0227,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": 0.0248,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": -0.0397,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.0881,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": -0.1219,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.1439,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.5092,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": -0.1621,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": -0.15,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.1567,\n        \"headline_count\": 5\n      }\n    ],\n    \"PPL\": [\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": 0.6073,\n        \"headline_count\": 3\n      }\n    ],\n    \"RF\": [\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": 0.2281,\n        \"headline_count\": 4\n      }\n    ],\n    \"CRM\": [\n      {\n        \"date\": \"2026-04-16\",\n        \"score\": 0.2078,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": -0.0515,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-20\",\n        \"score\": -0.1559,\n        \"headline_count\": 5\n      }\n    ],\n    \"CF\": [\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": -0.2281,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.1356,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.1307,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.0966,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": 0.1676,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": 0.1687,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": -0.1734,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.0733,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": -0.0057,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.0786,\n        \"headline_count\": 5\n      }\n    ],\n    \"CVX\": [\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": -0.6947,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": -0.268,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.0461,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.4905,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.5316,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": -0.0105,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": -0.1311,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.0008,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": -0.0972,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.3909,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": 0.1369,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.0979,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.5068,\n        \"headline_count\": 5\n      }\n    ],\n    \"DVN\": [\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": -0.1961,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": -0.0731,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": -0.1445,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.039,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": -0.1416,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": -0.2072,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-04\",\n        \"score\": -0.1595,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": -0.1288,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": 0.0091,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": -0.0902,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-08\",\n        \"score\": 0.0417,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": 0.0981,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.1783,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": -0.3414,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": -0.1057,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.0959,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": 0.0413,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.22,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": -0.0516,\n        \"headline_count\": 5\n      }\n    ],\n    \"EXC\": [\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": 0.2107,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.0391,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": 0.0168,\n        \"headline_count\": 4\n      }\n    ],\n    \"LYB\": [\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": -0.4753,\n        \"headline_count\": 5\n      }\n    ],\n    \"NFLX\": [\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": -0.398,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-20\",\n        \"score\": -0.1454,\n        \"headline_count\": 5\n      }\n    ],\n    \"VLO\": [\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": 0.0534,\n        \"headline_count\": 5\n      }\n    ],\n    \"AMT\": [\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": 0.3446,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.2086,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-24\",\n        \"score\": -0.1681,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.0605,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": -0.0722,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.0221,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.0429,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": 0.0429,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.4063,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": 0.0908,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.0855,\n        \"headline_count\": 1\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.1248,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.0324,\n        \"headline_count\": 5\n      }\n    ],\n    \"CLX\": [\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": -0.0086,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-20\",\n        \"score\": 0.0115,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": -0.3874,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.1216,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-27\",\n        \"score\": -0.4541,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": -0.1352,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": 0.0483,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-01\",\n        \"score\": -0.1364,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-04\",\n        \"score\": -0.067,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.1378,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": -0.4164,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": 0.2297,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-08\",\n        \"score\": -0.2048,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": -0.1227,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.1036,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": 0.0142,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.0632,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.0358,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": 0.1211,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.0944,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.0609,\n        \"headline_count\": 5\n      }\n    ],\n    \"EOG\": [\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": -0.0115,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.2823,\n        \"headline_count\": 3\n      }\n    ],\n    \"XOM\": [\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": -0.5973,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.1246,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.4178,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.3102,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": -0.1181,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": 0.2715,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.0674,\n        \"headline_count\": 4\n      }\n    ],\n    \"FCX\": [\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": 0.1417,\n        \"headline_count\": 5\n      }\n    ],\n    \"GPN\": [\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": -0.0315,\n        \"headline_count\": 2\n      }\n    ],\n    \"HD\": [\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": 0.0389,\n        \"headline_count\": 5\n      }\n    ],\n    \"LEN\": [\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": 0.1651,\n        \"headline_count\": 4\n      }\n    ],\n    \"LOW\": [\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": 0.0649,\n        \"headline_count\": 5\n      }\n    ],\n    \"MPC\": [\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": 0.0685,\n        \"headline_count\": 5\n      }\n    ],\n    \"NXPI\": [\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": 0.1894,\n        \"headline_count\": 5\n      }\n    ],\n    \"NCLH\": [\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": -0.2003,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-20\",\n        \"score\": -0.4863,\n        \"headline_count\": 5\n      }\n    ],\n    \"RJF\": [\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": -0.0206,\n        \"headline_count\": 5\n      }\n    ],\n    \"SLB\": [\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": -0.2889,\n        \"headline_count\": 3\n      }\n    ],\n    \"SHW\": [\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": -0.0681,\n        \"headline_count\": 5\n      }\n    ],\n    \"LUV\": [\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": -0.2941,\n        \"headline_count\": 5\n      }\n    ],\n    \"SYF\": [\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": 0.1316,\n        \"headline_count\": 5\n      }\n    ],\n    \"TFC\": [\n      {\n        \"date\": \"2026-04-17\",\n        \"score\": 0.046,\n        \"headline_count\": 5\n      }\n    ],\n    \"HAL\": [\n      {\n        \"date\": \"2026-04-20\",\n        \"score\": -0.0307,\n        \"headline_count\": 5\n      }\n    ],\n    \"HPE\": [\n      {\n        \"date\": \"2026-04-20\",\n        \"score\": -0.0974,\n        \"headline_count\": 3\n      }\n    ],\n    \"STLD\": [\n      {\n        \"date\": \"2026-04-20\",\n        \"score\": -0.1626,\n        \"headline_count\": 5\n      }\n    ],\n    \"VTRS\": [\n      {\n        \"date\": \"2026-04-20\",\n        \"score\": 0.0698,\n        \"headline_count\": 1\n      }\n    ],\n    \"EFX\": [\n      {\n        \"date\": \"2026-04-20\",\n        \"score\": 0.2222,\n        \"headline_count\": 2\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.0254,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.0245,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.133,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": -0.192,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": -0.1369,\n        \"headline_count\": 4\n      }\n    ],\n    \"LMT\": [\n      {\n        \"date\": \"2026-04-20\",\n        \"score\": 0.1574,\n        \"headline_count\": 5\n      }\n    ],\n    \"MMM\": [\n      {\n        \"date\": \"2026-04-20\",\n        \"score\": 0.0122,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.0985,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": 0.4122,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.6568,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-24\",\n        \"score\": 0.6274,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.3229,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.3239,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": -0.6396,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": 0.1064,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": 0.3483,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.2768,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": -0.3157,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.4057,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": 0.2078,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": -0.022,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.1026,\n        \"headline_count\": 5\n      }\n    ],\n    \"EQT\": [\n      {\n        \"date\": \"2026-04-20\",\n        \"score\": -0.5385,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.2688,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": -0.0238,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.0396,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.3748,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.1416,\n        \"headline_count\": 5\n      }\n    ],\n    \"MKC\": [\n      {\n        \"date\": \"2026-04-20\",\n        \"score\": 0.5795,\n        \"headline_count\": 3\n      }\n    ],\n    \"DHI\": [\n      {\n        \"date\": \"2026-04-20\",\n        \"score\": 0.0091,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": -0.0009,\n        \"headline_count\": 2\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.1624,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.1323,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": -0.0523,\n        \"headline_count\": 1\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.9031,\n        \"headline_count\": 1\n      }\n    ],\n    \"MCHP\": [\n      {\n        \"date\": \"2026-04-20\",\n        \"score\": 0.4683,\n        \"headline_count\": 3\n      }\n    ],\n    \"NTRS\": [\n      {\n        \"date\": \"2026-04-20\",\n        \"score\": -0.0327,\n        \"headline_count\": 2\n      }\n    ],\n    \"ALGN\": [\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.314,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": -0.0166,\n        \"headline_count\": 1\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": -0.0183,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": 0.148,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.2128,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": 0.0049,\n        \"headline_count\": 5\n      }\n    ],\n    \"ALL\": [\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.1396,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": 0.1515,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.0186,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-24\",\n        \"score\": 0.1325,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.0329,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.2136,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": 0.4632,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.2825,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": 0.1737,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": 0.1063,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.2272,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": 0.0247,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.0113,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.3571,\n        \"headline_count\": 2\n      }\n    ],\n    \"ACN\": [\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.6603,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": 0.3735,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.2303,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.5242,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.0957,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-04\",\n        \"score\": 0.427,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.2209,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": 0.5007,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": 0.1695,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.101,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": -0.1361,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.1056,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.1507,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": 0.0752,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.3185,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.3335,\n        \"headline_count\": 5\n      }\n    ],\n    \"AXP\": [\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.4809,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": 0.216,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.0298,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-24\",\n        \"score\": 0.499,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-27\",\n        \"score\": 0.3797,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": -0.125,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.3044,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": 0.5933,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.4925,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": 0.2452,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": -0.0115,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": -0.0357,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": 0.18,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.0048,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.1898,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.0408,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.1841,\n        \"headline_count\": 5\n      }\n    ],\n    \"BMY\": [\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.076,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": 0.0021,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-27\",\n        \"score\": 0.3718,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.4574,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.2756,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": 0.6624,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-01\",\n        \"score\": 0.0175,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.2716,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.8183,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.2013,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.3142,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.4154,\n        \"headline_count\": 5\n      }\n    ],\n    \"BBY\": [\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.1964,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": -0.4382,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.0407,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.2983,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.2609,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.2742,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": 0.1816,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.1791,\n        \"headline_count\": 1\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": 0.1687,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.3016,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": -0.2141,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.2567,\n        \"headline_count\": 5\n      }\n    ],\n    \"BR\": [\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.4331,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": 0.4523,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.287,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.11,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": -0.2108,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-04\",\n        \"score\": 0.38,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": 0.6491,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": -0.1199,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": 0.0471,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.3345,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": 0.072,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.0739,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": -0.4618,\n        \"headline_count\": 2\n      }\n    ],\n    \"CBRE\": [\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.1311,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": -0.219,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.6383,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.2931,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.4097,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": 0.0509,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.1031,\n        \"headline_count\": 1\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": -0.1003,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.2921,\n        \"headline_count\": 5\n      }\n    ],\n    \"COF\": [\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.084,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": 0.0378,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.0873,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-24\",\n        \"score\": 0.0615,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.0005,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": -0.3004,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": 0.0774,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": -0.5342,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": -0.3176,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": 0.1111,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": -0.0162,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.0412,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": 0.2073,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": -0.3173,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.0325,\n        \"headline_count\": 4\n      }\n    ],\n    \"COR\": [\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.1511,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": 0.1057,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.2439,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": 0.0827,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": 0.0483,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": -0.0151,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-08\",\n        \"score\": -0.0099,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": 0.0185,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.1134,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": 0.1422,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.1078,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": -0.1475,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.0364,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": 0.0151,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.0272,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.2589,\n        \"headline_count\": 5\n      }\n    ],\n    \"CMG\": [\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.1156,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": 0.2311,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.0784,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": -0.0367,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.07,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": -0.0931,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-04\",\n        \"score\": 0.0257,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.4473,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": -0.0457,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": 0.2372,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": 0.0683,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": -0.1177,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.0588,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": 0.2574,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.0646,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": 0.0783,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": -0.156,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": -0.0094,\n        \"headline_count\": 5\n      }\n    ],\n    \"CHD\": [\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": -0.08,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.4178,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": -0.2049,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": -0.0601,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-01\",\n        \"score\": -0.1835,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.166,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.1874,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": 0.0006,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": -0.0343,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.2208,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": -0.1765,\n        \"headline_count\": 5\n      }\n    ],\n    \"CI\": [\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": -0.3874,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.1216,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": -0.0116,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": -0.1352,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": 0.1759,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": -0.4164,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": -0.1227,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.1036,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": 0.0142,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.0632,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": 0.0846,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.0358,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": 0.1211,\n        \"headline_count\": 5\n      }\n    ],\n    \"CSCO\": [\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.0146,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.1469,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": -0.3994,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": 0.3932,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-08\",\n        \"score\": 0.175,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": -0.0067,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": -0.1099,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": 0.098,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.2173,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": 0.4734,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.1881,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": -0.0074,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.0062,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": -0.0129,\n        \"headline_count\": 5\n      }\n    ],\n    \"CEG\": [\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": -0.1461,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": 0.0201,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.0452,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-04\",\n        \"score\": -0.015,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": 0.1237,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": -0.1823,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": 0.222,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.1936,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": -0.0538,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.1804,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": -0.0869,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.0244,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": 0.1726,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.2368,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": -0.1268,\n        \"headline_count\": 5\n      }\n    ],\n    \"CMCSA\": [\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.1562,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.0798,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-04-27\",\n        \"score\": 0.0828,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.212,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.0241,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": 0.0051,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": -0.1262,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": -0.1915,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": -0.2481,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.0656,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": 0.5282,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.1587,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": -0.1741,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": -0.0122,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.2049,\n        \"headline_count\": 5\n      }\n    ],\n    \"DHR\": [\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.1996,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": 0.287,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.3289,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.4506,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": 0.1775,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": 0.5658,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": 0.9092,\n        \"headline_count\": 1\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.199,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": 0.1602,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.5003,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.1094,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.408,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.2259,\n        \"headline_count\": 5\n      }\n    ],\n    \"DOV\": [\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": -0.3224,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.0738,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": -0.207,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.087,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.1002,\n        \"headline_count\": 5\n      }\n    ],\n    \"DUK\": [\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.4828,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.0499,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": -0.1773,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.0751,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.028,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": -0.058,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.0493,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": -0.1828,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": -0.3093,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.2299,\n        \"headline_count\": 5\n      }\n    ],\n    \"EBAY\": [\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.2355,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.0637,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": -0.0078,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.0854,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.1629,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": -0.4363,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.0869,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.0026,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.0123,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": -0.0201,\n        \"headline_count\": 5\n      }\n    ],\n    \"DD\": [\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": 0.0543,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.1293,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": -0.0249,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": 0.0518,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": -0.0996,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": 0.0932,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.237,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.0647,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": 0.0208,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.0161,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.0458,\n        \"headline_count\": 5\n      }\n    ],\n    \"EIX\": [\n      {\n        \"date\": \"2026-04-21\",\n        \"score\": -0.0148,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.3315,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.3479,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.2028,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": -0.074,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.2435,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.1042,\n        \"headline_count\": 5\n      }\n    ],\n    \"AME\": [\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": 0.2165,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.3068,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.112,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.1269,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": 0.4823,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.3324,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": 0.3146,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.0873,\n        \"headline_count\": 2\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.2424,\n        \"headline_count\": 3\n      }\n    ],\n    \"APH\": [\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": -0.0976,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.0407,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.0894,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.7367,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": 0.3703,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.0432,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": -0.1083,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-08\",\n        \"score\": 0.7842,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": 0.3744,\n        \"headline_count\": 2\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.0767,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": 0.409,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.2273,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.1984,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.1298,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.1298,\n        \"headline_count\": 5\n      }\n    ],\n    \"AEE\": [\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": 0.4786,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.246,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.0519,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": 0.1233,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": -0.2378,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.0087,\n        \"headline_count\": 1\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.0121,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.1754,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": -0.0317,\n        \"headline_count\": 5\n      }\n    ],\n    \"AMCR\": [\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": -0.2118,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.2118,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.1277,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.1085,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.0678,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": 0.2876,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.9309,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.0188,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.017,\n        \"headline_count\": 1\n      }\n    ],\n    \"AVB\": [\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": 0.1729,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.1729,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.3419,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.3081,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-08\",\n        \"score\": -0.1444,\n        \"headline_count\": 2\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.019,\n        \"headline_count\": 1\n      }\n    ],\n    \"BRO\": [\n      {\n        \"date\": \"2026-04-22\",\n        \"score\": 0.2673,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.0732,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": -0.1985,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.0782,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": -0.0241,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": -0.3736,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": 0.0205,\n        \"headline_count\": 2\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": -0.1359,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": 0.0062,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": -0.0455,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.0686,\n        \"headline_count\": 2\n      }\n    ],\n    \"CCI\": [\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.0841,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": -0.0291,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": 0.1626,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": -0.1128,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": 0.1793,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.2223,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": 0.2515,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.1342,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": -0.0962,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": -0.0013,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": -0.0176,\n        \"headline_count\": 5\n      }\n    ],\n    \"CSX\": [\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.134,\n        \"headline_count\": 3\n      }\n    ],\n    \"DLR\": [\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.0659,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.3163,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.2621,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": 0.238,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.1013,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": -0.1591,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": -0.3133,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": -0.227,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.2261,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": -0.0448,\n        \"headline_count\": 5\n      }\n    ],\n    \"ATO\": [\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.2367,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.2529,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": 0.3114,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.1535,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.2643,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": -0.1028,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.0258,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.0254,\n        \"headline_count\": 5\n      }\n    ],\n    \"CDW\": [\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.8579,\n        \"headline_count\": 1\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.1761,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.4468,\n        \"headline_count\": 1\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.2974,\n        \"headline_count\": 2\n      }\n    ],\n    \"CNC\": [\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.2407,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-27\",\n        \"score\": 0.0445,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.0669,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.2564,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": 0.3394,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": 0.1482,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": -0.0982,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.2586,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": 0.3194,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.3064,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.169,\n        \"headline_count\": 5\n      }\n    ],\n    \"CNX\": [\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.0762,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": 0.0319,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": 0.118,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.1753,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.0895,\n        \"headline_count\": 4\n      }\n    ],\n    \"ED\": [\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.0013,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": -0.1555,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-08\",\n        \"score\": 0.2051,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": -0.2495,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": 0.0163,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.0391,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": -0.4813,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.026,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": -0.0714,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.3594,\n        \"headline_count\": 5\n      }\n    ],\n    \"DECK\": [\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.1346,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": -0.014,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.1866,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": -0.003,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": 0.1205,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-08\",\n        \"score\": -0.3389,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": 0.282,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.1372,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": -0.1217,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.0769,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": -0.0032,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": -0.3788,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": -0.1033,\n        \"headline_count\": 5\n      }\n    ],\n    \"ECL\": [\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.2052,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": -0.1517,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": -0.0173,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-08\",\n        \"score\": 0.3888,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.2437,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": 0.1227,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.4689,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": 0.3896,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.3147,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": -0.0408,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.2148,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.167,\n        \"headline_count\": 5\n      }\n    ],\n    \"EA\": [\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.0569,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.1953,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": 0.2818,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.01,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.2014,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": -0.2523,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.1986,\n        \"headline_count\": 5\n      }\n    ],\n    \"ELV\": [\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.0448,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.5405,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": 0.0611,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": -0.0605,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.0036,\n        \"headline_count\": 1\n      }\n    ],\n    \"EMR\": [\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.1196,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": -0.0738,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.2466,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": 0.073,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.1427,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": 0.1462,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.2126,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.2545,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": -0.0084,\n        \"headline_count\": 5\n      }\n    ],\n    \"EL\": [\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": -0.1216,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": -0.0865,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.0112,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": -0.1227,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.1154,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.0358,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.0594,\n        \"headline_count\": 5\n      }\n    ],\n    \"ETSY\": [\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.4252,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": -0.061,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": -0.1246,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": -0.1341,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.051,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": -0.0042,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.0847,\n        \"headline_count\": 3\n      }\n    ],\n    \"EXPE\": [\n      {\n        \"date\": \"2026-04-23\",\n        \"score\": 0.3434,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.2197,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": 0.0865,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.2433,\n        \"headline_count\": 5\n      }\n    ],\n    \"AFL\": [\n      {\n        \"date\": \"2026-04-24\",\n        \"score\": 0.1612,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.0802,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.0658,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": -0.0851,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": -0.0315,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": -0.2825,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": -0.2858,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.0367,\n        \"headline_count\": 2\n      }\n    ],\n    \"DPZ\": [\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": -0.9586,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": 0.146,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": 0.2386,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-06\",\n        \"score\": 0.2863,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-11\",\n        \"score\": 0.0332,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": -0.1085,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.1479,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.0528,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-18\",\n        \"score\": -0.0443,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.1577,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.43,\n        \"headline_count\": 5\n      }\n    ],\n    \"AON\": [\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.4197,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": 0.04,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.3047,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.5412,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": 0.0267,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.0536,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.0762,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": -0.0926,\n        \"headline_count\": 5\n      }\n    ],\n    \"AJG\": [\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": 0.1918,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": -0.0139,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": 0.3178,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": 0.0256,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.2596,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.5686,\n        \"headline_count\": 2\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.5281,\n        \"headline_count\": 3\n      }\n    ],\n    \"BAX\": [\n      {\n        \"date\": \"2026-04-28\",\n        \"score\": -0.3401,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-04-29\",\n        \"score\": -0.2089,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-04-30\",\n        \"score\": 0.2895,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-05\",\n        \"score\": 0.2503,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.0644,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": 0.0313,\n        \"headline_count\": 4\n      }\n    ],\n    \"CRL\": [\n      {\n        \"date\": \"2026-05-07\",\n        \"score\": -0.0842,\n        \"headline_count\": 5\n      }\n    ],\n    \"CTRA\": [\n      {\n        \"date\": \"2026-05-08\",\n        \"score\": 0.4346,\n        \"headline_count\": 2\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.8141,\n        \"headline_count\": 2\n      }\n    ],\n    \"EPAM\": [\n      {\n        \"date\": \"2026-05-08\",\n        \"score\": 0.2856,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.0498,\n        \"headline_count\": 1\n      }\n    ],\n    \"ALLE\": [\n      {\n        \"date\": \"2026-05-12\",\n        \"score\": -0.0355,\n        \"headline_count\": 3\n      },\n      {\n        \"date\": \"2026-05-13\",\n        \"score\": 0.2405,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": -0.9095,\n        \"headline_count\": 1\n      },\n      {\n        \"date\": \"2026-05-15\",\n        \"score\": -0.0959,\n        \"headline_count\": 5\n      }\n    ],\n    \"ES\": [\n      {\n        \"date\": \"2026-05-14\",\n        \"score\": 0.0448,\n        \"headline_count\": 4\n      },\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.1748,\n        \"headline_count\": 4\n      }\n    ],\n    \"CPRT\": [\n      {\n        \"date\": \"2026-05-17\",\n        \"score\": -0.0081,\n        \"headline_count\": 1\n      }\n    ],\n    \"MO\": [\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.1888,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.4089,\n        \"headline_count\": 5\n      }\n    ],\n    \"APO\": [\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": -0.0606,\n        \"headline_count\": 5\n      }\n    ],\n    \"XYZ\": [\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": -0.113,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": -0.0604,\n        \"headline_count\": 5\n      }\n    ],\n    \"BSX\": [\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.2924,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.0744,\n        \"headline_count\": 5\n      }\n    ],\n    \"BKNG\": [\n      {\n        \"date\": \"2026-05-19\",\n        \"score\": 0.2253,\n        \"headline_count\": 5\n      },\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.0039,\n        \"headline_count\": 4\n      }\n    ],\n    \"CHRW\": [\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": -0.0211,\n        \"headline_count\": 1\n      }\n    ],\n    \"CNP\": [\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": -0.311,\n        \"headline_count\": 3\n      }\n    ],\n    \"COIN\": [\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.1992,\n        \"headline_count\": 5\n      }\n    ],\n    \"COHR\": [\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": -0.1809,\n        \"headline_count\": 5\n      }\n    ],\n    \"CRWD\": [\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": -0.0526,\n        \"headline_count\": 5\n      }\n    ],\n    \"DELL\": [\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": -0.5461,\n        \"headline_count\": 5\n      }\n    ],\n    \"DASH\": [\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": -0.1213,\n        \"headline_count\": 5\n      }\n    ],\n    \"SATS\": [\n      {\n        \"date\": \"2026-05-20\",\n        \"score\": 0.1118,\n        \"headline_count\": 5\n      }\n    ]\n  }\n}"
  },
  {
    "path": "outputs/models/.gitkeep",
    "content": "\n"
  },
  {
    "path": "pipeline.py",
    "content": "\"\"\"\npipeline.py v8.3 – Early Sector-Momentum-Check\n\nv8.3 Änderungen:\n  - NEU Stufe 2c: Sector-Momentum-Check VOR ROI Pre-Check und Deep Analysis\n    Vorher: Sektor-Gate lief in Stufe 10 (Options Design) → nach teurem Sonnet-Call\n    Jetzt:  Sektor-Gate läuft direkt nach Prescreening → spart Sonnet-Calls\n    Beispiel: AMAT heute → verworfen NACH Sonnet (Impact=6, teuer)\n              AMAT morgen → verworfen VOR Sonnet (billig, ~0.5s yfinance)\n    Direction-Default: BULLISH (vor Deep Analysis noch unbekannt)\n    Konservativer Ansatz: Sektor muss zumindest nicht deutlich underperformen.\n    Der Gate in OptionsDesigner (Stufe 10) bleibt als Sicherheitsnetz erhalten.\n\nv8.2 Änderungen:\n  - NEU Stufe 3b: Pre-Deep-Analysis MC Gate (1k Pfade, sigma-only)\n    Filtert hoffnungslose Kandidaten VOR dem teuren Sonnet-Call.\n    Spart ~30-50% der Deep-Analysis-Kosten.\n  - NEU Stufe 10b: Korrelations-Check\n    Verhindert Sektor-Konzentration (z.B. 3× Halbleiter am selben Tag).\n    Entfernt das schwächere Signal bei Korrelation > 0.75.\n\nReihenfolge v8.3:\n  1.  Hard-Filter\n  1b. FinBERT + Sentiment-Drift\n  2.  Prescreening (Haiku)\n  2b. Alpha Sources + Data Validation\n  2c. Sector-Momentum-Check                                    ← NEU\n  3.  ROI Pre-Check (Fail Fast)\n  3b. Pre-MC Gate (1k Pfade, sigma-only)\n  4.  Deep Analysis (Sonnet + Red Team) — jetzt auf weniger Kandidaten\n  5.  Mismatch-Score\n  6.  Quick MC (3k, 30d, mit Mismatch-Alpha)\n  7.  Intraday-Delta\n  8.  Final MC (10k, adaptive DTE)\n  9.  RL-Scoring\n 10.  Options Design + ROI-Gate\n 10b. Korrelations-Check\n\"\"\"\n\nimport json\nimport math\nimport logging\nimport sys\nfrom datetime import datetime\nfrom pathlib import Path\n\nimport numpy as np\nimport yfinance as yf\n\nfrom modules.data_ingestion      import DataIngestion\nfrom modules.prescreener         import Prescreener\nfrom modules.deep_analysis       import DeepAnalysis\nfrom modules.mismatch_scorer     import MismatchScorer\nfrom modules.mirofish_simulation import MirofishSimulation, compute_time_value_efficiency\nfrom modules.trade_scorer        import rank_proposals\nfrom modules.rl_agent            import RLScorer\nfrom modules.options_designer    import OptionsDesigner\nfrom modules.reporter            import Reporter\nfrom modules.risk_gates          import RiskGates\nfrom modules.email_reporter      import send_status_email\nfrom modules.finbert_sentiment   import score_candidate\nfrom modules.intraday_delta      import filter_by_intraday_delta, get_intraday_move\nfrom modules.alpha_sources       import enrich_with_alpha_sources\nfrom modules.data_validator      import validate_candidate_data, compute_option_roi\nfrom modules.premium_signals     import enrich_top_candidates\nfrom modules.sentiment_tracker   import enrich_with_sentiment_drift\nfrom modules.macro_context       import get_macro_context\nfrom modules.config              import cfg\n\nlogging.basicConfig(\n    level=logging.INFO,\n    format=\"%(asctime)s [%(levelname)s] %(message)s\",\n    handlers=[logging.StreamHandler(sys.stdout)],\n)\nlog = logging.getLogger(__name__)\n\nHISTORY_PATH = Path(\"outputs/history.json\")\nREPORTS_DIR  = Path(\"outputs/daily_reports\")\n\nQUICK_MC_PATHS    = 3_000\nQUICK_MC_DAYS     = 30\nFINAL_MC_PATHS    = 10_000\n\nPRE_MC_PATHS      = 1_000\nPRE_MC_DAYS       = 45    # 30→45: konsistent mit Quick-MC, rettet Low-Vol mit Zeitpuffer\nPRE_MC_THRESHOLD  = 0.40  # 0.25→0.40 (wird als min_hit_rate an mirofish übergeben)\n\n\ndef get_mc_threshold(vix) -> float:\n    \"\"\"VIX-abhängige MC-Schwelle. Robust gegen None/negative Werte.\"\"\"\n    try:\n        vix = float(vix)\n    except (TypeError, ValueError):\n        return 0.45\n    if vix < 0:\n        return 0.45\n    if vix < 20:\n        return 0.48\n    elif vix > 30:\n        return 0.42\n    else:\n        return 0.45\n\n\n# ── Reject Tracking ──────────────────────────────────────────────────────────\n\nreject_stats: dict = {}\n\ndef reject(reason: str, ticker: str | None = None) -> None:\n    if reason not in reject_stats:\n        reject_stats[reason] = {\"count\": 0, \"tickers\": []}\n    reject_stats[reason][\"count\"] += 1\n    if ticker:\n        reject_stats[reason][\"tickers\"].append(ticker)\n        log.info(f\"  [{ticker}] REJECT → {reason}\")\n    else:\n        log.info(f\"  REJECT → {reason}\")\n\n\n# ── Validation Layer ──────────────────────────────────────────────────────────\n\ndef validate_strict(c: dict):\n    if not isinstance(c, dict):\n        return None\n    ticker = c.get(\"ticker\")\n    if not isinstance(ticker, str) or not ticker.strip():\n        return None\n    features = c.get(\"features\")\n    if not isinstance(features, dict):\n        c[\"features\"] = {}\n        features = c[\"features\"]\n    for key in [\"sentiment_score\", \"mismatch\"]:\n        val = features.get(key)\n        if val is None:\n            features[key] = 0.0\n        elif not isinstance(val, (int, float)):\n            return None\n    return c\n\n\ndef validate_for_simulation(c: dict):\n    if not isinstance(c, dict):\n        return None\n    features = c.get(\"features\", {})\n    mismatch = features.get(\"mismatch\")\n    if not isinstance(mismatch, (int, float)):\n        return None\n    if abs(mismatch) > 10:\n        return None\n    return c\n\n\ndef validate_mc_result(result: dict):\n    if not result or \"simulation\" not in result:\n        return None\n    hit_rate = result[\"simulation\"].get(\"hit_rate\")\n    if not isinstance(hit_rate, (int, float)):\n        return None\n    if not (0.0 <= float(hit_rate) <= 1.0):\n        return None\n    return float(hit_rate)\n\n\n# ── v8.2: Korrelations-Check ────────────────────────────────────────────────\n\ndef filter_correlated_proposals(\n    proposals: list[dict],\n    max_corr: float = 0.75,\n) -> list[dict]:\n    \"\"\"\n    Entfernt das schwächere Signal wenn zwei Proposals > max_corr korreliert sind.\n    \"\"\"\n    if len(proposals) <= 1:\n        return proposals\n\n    tickers = [p[\"ticker\"] for p in proposals]\n\n    try:\n        data = yf.download(tickers, period=\"35d\", progress=False, auto_adjust=True)\n        if data.empty:\n            return proposals\n\n        close = data[\"Close\"]\n        if hasattr(close, \"columns\") and len(close.columns) < 2:\n            return proposals\n\n        returns     = close.pct_change().dropna()\n        corr_matrix = returns.corr()\n\n        to_remove = set()\n        for i in range(len(tickers)):\n            if i in to_remove:\n                continue\n            for j in range(i + 1, len(tickers)):\n                if j in to_remove:\n                    continue\n                try:\n                    corr = float(corr_matrix.loc[tickers[i], tickers[j]])\n                except (KeyError, TypeError):\n                    continue\n\n                if corr > max_corr:\n                    score_i = proposals[i].get(\"trade_score\", {}).get(\"total\", 0)\n                    score_j = proposals[j].get(\"trade_score\", {}).get(\"total\", 0)\n                    weaker  = j if score_i >= score_j else i\n                    to_remove.add(weaker)\n                    log.info(\n                        f\"  KORRELATION: {tickers[i]}↔{tickers[j]} = {corr:.2f} \"\n                        f\"→ {tickers[weaker]} entfernt \"\n                        f\"(Score {proposals[weaker].get('trade_score',{}).get('total',0)})\"\n                    )\n\n        if to_remove:\n            log.info(f\"  Korrelations-Check: {len(to_remove)} redundante(r) Trade(s) entfernt\")\n\n        return [p for idx, p in enumerate(proposals) if idx not in to_remove]\n\n    except Exception as e:\n        log.debug(f\"Korrelations-Check Fehler: {e} → alle behalten\")\n        return proposals\n\n\ndef load_history() -> dict:\n    if HISTORY_PATH.exists():\n        try:\n            with open(HISTORY_PATH) as f:\n                data = json.load(f)\n            if not isinstance(data, dict):\n                raise ValueError(\"history.json ist kein dict\")\n            return data\n        except (json.JSONDecodeError, ValueError) as e:\n            log.warning(f\"history.json beschädigt ({e}) → Reset auf Default\")\n    return {\n        \"feature_stats\": {}, \"active_trades\": [], \"closed_trades\": [],\n        \"model_weights\": {\"impact\": 0.35, \"mismatch\": 0.45, \"eps_drift\": 0.20},\n        \"sentiment_history\": {},\n    }\n\n\ndef save_history(history: dict) -> None:\n    HISTORY_PATH.parent.mkdir(parents=True, exist_ok=True)\n    with open(HISTORY_PATH, \"w\") as f:\n        json.dump(history, f, indent=2, default=str)\n\n\ndef main() -> None:\n    log.info(\"=== Adaptive Asymmetry-Scanner v8.3 gestartet ===\")\n    today   = datetime.utcnow().strftime(\"%Y-%m-%d\")\n    history = load_history()\n\n    reject_stats.clear()\n\n    stats = {\n        \"vix\": None, \"universe\": 0, \"candidates\": 0, \"prescreened\": 0,\n        \"sector_ok\": 0, \"pre_mc\": 0, \"roi_precheck\": 0, \"analyzed\": 0,\n        \"mismatch_ok\": 0, \"quick_mc\": 0, \"intraday_ok\": 0, \"final_mc\": 0,\n        \"rl_scored\": 0, \"roi_ok\": 0, \"trades\": 0, \"stop_reason\": \"\",\n    }\n\n    _proposals_ref = []\n\n    def send_email():\n        try:\n            proposals = _proposals_ref[0] if len(_proposals_ref) > 0 else []\n            if proposals:\n                from modules.email_reporter import send_email as _send_trade_email\n                _send_trade_email(proposals, today, stats)\n            else:\n                send_status_email(stats, today)\n        except Exception as e:\n            log.error(f\"Email-Fehler: {e}\")\n\n    # ── STUFE 0: Risk Gates ──────────────────────────────────────────────────\n    gates = RiskGates()\n    if not gates.global_ok():\n        stats[\"stop_reason\"] = (\n            f\"VIX-Gate (VIX={gates.last_vix:.1f})\"\n            if gates.last_vix is not None else \"VIX-Gate (VIX nicht abrufbar)\"\n        )\n        stats[\"vix\"] = gates.last_vix\n        send_email(); return\n    stats[\"vix\"] = gates.last_vix\n\n    macro = get_macro_context()\n    log.info(f\"Makro: {macro.get('macro_regime')} | YC={macro.get('yield_curve_desc','n/a')}\")\n\n    # OptionsDesigner einmal instanziieren — wird in Stufe 2c + Stufe 3 + Stufe 10 genutzt\n    designer = OptionsDesigner(gates=gates)\n\n    # ── STUFE 1: Hard-Filter ─────────────────────────────────────────────────\n    log.info(\"Stufe 1: Hard-Filter (Cap>2B, Vol>1M, RV>0.6)\")\n    ingestion  = DataIngestion(history=history)\n    candidates = ingestion.run()\n    stats[\"universe\"] = (\n        getattr(ingestion, \"universe_size\", None)\n        or getattr(ingestion, \"n_universe\", None)\n        or getattr(ingestion, \"universe_count\", None)\n        or len(candidates)\n    )\n    stats[\"candidates\"] = len(candidates)\n    if not candidates:\n        stats[\"stop_reason\"] = \"Keine Kandidaten nach Hard-Filter.\"\n        send_email(); return\n\n    # ── STUFE 1b: FinBERT + Sentiment-Drift ─────────────────────────────────\n    log.info(\"Stufe 1b: FinBERT + Sentiment-Drift\")\n    enriched = []\n    for c in candidates:\n        try:\n            sentiment = score_candidate(c)\n            c.setdefault(\"features\", {}).update(sentiment)\n        except Exception:\n            c.setdefault(\"features\", {}).update({\"sentiment_score\": 0.0})\n        c = enrich_with_sentiment_drift(c, history)\n        enriched.append(c)\n    candidates = enriched\n\n    # ── STUFE 1c: Sector-Momentum-Check (VOR Haiku — spart ~35% LLM-Calls) ───\n    # Billiger yfinance-Check (~0.5s/Ticker) wird vorgezogen um teure Haiku-Calls\n    # auf Ticker zu sparen die durch Sektor-Schwäche ohnehin blockiert würden.\n    log.info(\"Stufe 1c: Sector-Momentum-Check (vor LLM-Prescreening)\")\n    sector_pre = []\n    for c in candidates:\n        ticker = c[\"ticker\"]\n        c_for_sector = {**c, \"deep_analysis\": {\"direction\": \"BULLISH\"}}\n        try:\n            if designer._sector_momentum_ok(c_for_sector):\n                sector_pre.append(c)\n            else:\n                reject(\"sector_momentum_weak\", ticker)\n                log.info(f\"  [{ticker}] REJECT → sector_momentum_weak\")\n        except Exception as e:\n            log.debug(f\"  [{ticker}] Sector-Check Fehler: {e} → durchgelassen\")\n            sector_pre.append(c)\n    candidates = sector_pre\n    stats[\"sector_ok\"] = len(candidates)\n    log.info(f\"  → {len(candidates)} nach Sector-Momentum-Check\")\n    if not candidates:\n        stats[\"stop_reason\"] = \"Alle Kandidaten durch Sector-Momentum-Check verworfen.\"\n        send_email(); return\n\n    # ── STUFE 2: Prescreening (Haiku) ────────────────────────────────────────\n    log.info(\"Stufe 2: Prescreening (Claude Haiku)\")\n    shortlist = Prescreener().run(candidates)\n    stats[\"prescreened\"] = len(shortlist)\n    log.info(f\"  → {len(shortlist)} nach Prescreening\")\n    if not shortlist:\n        stats[\"stop_reason\"] = f\"Alle {len(candidates)} im Prescreening als kein Signal bewertet.\"\n        send_email(); return\n\n    # ── STUFE 2b: Alpha Sources + Data Validation ────────────────────────────\n    enriched_with_alpha = []\n    for c in shortlist:\n        c = enrich_with_alpha_sources(c)\n        if c.get(\"has_near_earnings\"):\n            earnings_date = c.get(\"alpha_signals\", {}).get(\"earnings_date\", \"?\")\n            log.info(f\"  [{c['ticker']}] EARNINGS-GATE: Earnings in 7d ({earnings_date}) → Hard-Block.\")\n            continue\n        enriched_with_alpha.append(c)\n    shortlist = enriched_with_alpha\n    shortlist = [validate_candidate_data(c) for c in shortlist]\n\n    # ── Ingress Validation Gate ───────────────────────────────────────────────\n    shortlist_raw = shortlist[:]\n    shortlist = []\n    for c in shortlist_raw:\n        valid = validate_strict(c)\n        if valid is None:\n            reject(\"ingress_invalid_data\", c.get(\"ticker\") if isinstance(c, dict) else None)\n        else:\n            shortlist.append(valid)\n\n    # ── Schema-Check ─────────────────────────────────────────────────────────\n    valid_shortlist = []\n    for c in shortlist:\n        if not isinstance(c.get(\"ticker\"), str) or not c.get(\"ticker\", \"\").strip():\n            reject(\"no_ticker\")\n            continue\n        valid_shortlist.append(c)\n    shortlist = valid_shortlist\n\n    # ── STUFE 3: ROI Pre-Check (Fail Fast) ───────────────────────────────────\n    log.info(\"Stufe 3: ROI Pre-Check (Fail Fast)\")\n    roi_viable = []\n    for c in shortlist:\n        ticker = c[\"ticker\"]\n        try:\n            _, current, _ = MirofishSimulation()._get_market_params(ticker)\n            if current <= 0:\n                roi_viable.append(c); continue\n            iv_rank  = designer._get_iv_rank(ticker)\n            strategy = designer._select_strategy(ticker, \"BULLISH\", iv_rank)\n            option   = designer._find_option_for_dte(ticker, strategy, current, 21, 45)\n            if option:\n                sim_fake = {\"current_price\": current, \"target_price\": current * 1.08, \"iv_rank\": iv_rank}\n                roi      = designer._compute_roi(\n                    option, sim_fake, iv_rank,\n                    {\"label\": \"Short-Term\", \"dte_min\": 21, \"dte_max\": 45, \"min_roi\": 0.15}\n                )\n                if roi[\"roi_net\"] < -0.30:\n                    log.info(f\"  [{ticker}] ROI-PRECHECK: {roi['roi_net']:.1%} → hoffnungslos\")\n                    continue\n            roi_viable.append(c)\n            log.info(f\"  [{ticker}] ROI-PRECHECK: viable\")\n        except Exception:\n            reject(\"roi_error\", c.get(\"ticker\"))\n            continue\n\n    stats[\"roi_precheck\"] = len(roi_viable)\n    log.info(f\"  → {len(roi_viable)} nach ROI Pre-Check\")\n    if not roi_viable:\n        stats[\"stop_reason\"] = \"Alle Optionsketten hoffnungslos (ROI Pre-Check).\"\n        send_email(); return\n\n    # ── STUFE 3b: Pre-MC Gate (sigma-only, vor Deep Analysis) ────────────────\n    log.info(f\"Stufe 3b: Pre-MC Gate ({PRE_MC_PATHS} Pfade, {PRE_MC_DAYS}d, sigma-only)\")\n    pre_mc_sim = MirofishSimulation()\n    pre_mc_viable = []\n    for c in roi_viable:\n        ticker = c[\"ticker\"]\n        c_temp = {**c, \"deep_analysis\": {\"impact\": 5, \"surprise\": 5,\n                  \"time_to_materialization\": \"2-3 Monate\"}}\n        result = pre_mc_sim.run_for_dte(c_temp, days_to_expiry=PRE_MC_DAYS, min_hit_rate=PRE_MC_THRESHOLD)\n        if result and result.get(\"simulation\", {}).get(\"hit_rate\", 0) >= PRE_MC_THRESHOLD:\n            pre_mc_viable.append(c)\n            log.info(\n                f\"  [{ticker}] Pre-MC: {result['simulation']['hit_rate']:.1%} \"\n                f\"≥ {PRE_MC_THRESHOLD:.0%} ✅\"\n            )\n        else:\n            hr = result[\"simulation\"][\"hit_rate\"] if result and \"simulation\" in result else 0\n            reject(\"pre_mc_sigma_too_low\", ticker)\n            log.info(\n                f\"  [{ticker}] Pre-MC: {hr:.1%} < {PRE_MC_THRESHOLD:.0%} \"\n                f\"→ zu wenig Vola für Options\"\n            )\n\n    stats[\"pre_mc\"] = len(pre_mc_viable)\n    log.info(f\"  → {len(pre_mc_viable)} nach Pre-MC Gate (eingespart: {len(roi_viable)-len(pre_mc_viable)} Sonnet-Calls)\")\n    if not pre_mc_viable:\n        stats[\"stop_reason\"] = \"Alle unter Pre-MC-Schwelle (zu wenig Volatilität).\"\n        save_history(history); send_email(); return\n\n    # ── STUFE 4: Deep Analysis (Sonnet) ──────────────────────────────────────\n    log.info(\"Stufe 4: Deep Analysis (Claude Sonnet + Red Team)\")\n    analyses = DeepAnalysis().run(pre_mc_viable)\n    stats[\"analyzed\"] = len(analyses)\n    log.info(f\"  → {len(analyses)} nach Deep Analysis\")\n    if not analyses:\n        stats[\"stop_reason\"] = \"Alle Signale im Red-Team-Check verworfen.\"\n        send_email(); return\n\n    # ── STUFE 5: Mismatch-Score ───────────────────────────────────────────────\n    log.info(\"Stufe 5: Mismatch-Score\")\n    scored = MismatchScorer().run(analyses)\n    before_da = len(scored)\n    scored = [validate_for_simulation(s) for s in scored]\n    scored = [s for s in scored if s is not None]\n    for _ in range(before_da - len(scored)):\n        reject(\"post_deep_analysis_invalid\")\n    stats[\"mismatch_ok\"] = len(scored)\n    log.info(f\"  → {len(scored)} nach Mismatch-Score\")\n    if not scored:\n        stats[\"stop_reason\"] = \"Kein Signal hat Mismatch-Filter bestanden.\"\n        save_history(history); send_email(); return\n\n    # ── STUFE 6: Quick MC ────────────────────────────────────────────────────\n    before_sim = len(scored)\n    scored = [validate_for_simulation(s) for s in scored]\n    scored = [s for s in scored if s is not None]\n    for _ in range(before_sim - len(scored)):\n        reject(\"pre_mc_invalid_mismatch\")\n\n    log.info(f\"Stufe 6: Quick MC (n={QUICK_MC_PATHS}, {QUICK_MC_DAYS}d) — mit Mismatch-Alpha\")\n    sim       = MirofishSimulation()\n    mc_viable = []\n    for s in scored:\n        ticker   = s[\"ticker\"]\n        mismatch = s.get(\"features\", {}).get(\"mismatch\", 0)\n        log.info(f\"  [{ticker}] Mismatch={mismatch:.2f} → Quick MC startet\")\n\n        mc_threshold = get_mc_threshold(gates.last_vix or 20.0)\n        result   = sim.run_for_dte(s, days_to_expiry=QUICK_MC_DAYS)\n        hit_rate = validate_mc_result(result)\n        if hit_rate is None:\n            if not result or \"simulation\" not in result:\n                reject(\"mc_no_result\", ticker)\n            else:\n                reject(\"mc_invalid_hit_rate\", ticker)\n            continue\n\n        if hit_rate < mc_threshold:\n            log.info(f\"  [{ticker}] Quick MC: {hit_rate:.1%} < {mc_threshold:.0%} → verworfen\")\n            reject(\"mc_below_threshold\", ticker)\n            continue\n\n        s[\"quick_mc\"] = {\"hit_rate\": hit_rate, \"n_paths\": QUICK_MC_PATHS, \"n_days\": QUICK_MC_DAYS}\n        s[\"features\"][\"quick_mc_hit_rate\"] = hit_rate\n        mc_viable.append(s)\n        log.info(f\"  [{ticker}] Quick MC: {hit_rate:.1%} ✅ PASS\")\n\n    stats[\"quick_mc\"] = len(mc_viable)\n    log.info(f\"  → {len(mc_viable)} nach Quick MC\")\n    if not mc_viable:\n        stats[\"stop_reason\"] = f\"Alle unter Quick-MC-Schwelle ({get_mc_threshold(gates.last_vix or 20.0):.0%}).\"\n        save_history(history); send_email(); return\n\n    # ── STUFE 7: Intraday-Delta ───────────────────────────────────────────────\n    log.info(\"Stufe 7: Intraday-Delta-Filter\")\n    base_move = getattr(getattr(cfg, \"pipeline\", None), \"max_intraday_move\", 0.07)\n\n    before_intraday = {s[\"ticker\"]: s for s in mc_viable}\n    mc_viable_dynamic = []\n    for s in mc_viable:\n        ticker   = s[\"ticker\"]\n        mismatch = s.get(\"features\", {}).get(\"mismatch\", 0)\n\n        if mismatch >= 7:\n            current_max = max(base_move, 0.12)\n        elif mismatch >= 5:\n            current_max = max(base_move, 0.09)\n        else:\n            current_max = base_move\n\n        if \"intraday_delta\" not in s:\n            s[\"intraday_delta\"] = get_intraday_move(ticker)\n        delta_info = s.get(\"intraday_delta\", {})\n        move = abs(float(delta_info.get(\"move_pct\", 0) or 0))\n\n        if move <= current_max:\n            mc_viable_dynamic.append(s)\n            log.info(\n                f\"  [{ticker}] Intraday-Move={move:+.2%} → \"\n                f\"noch Asymmetrie vorhanden (Limit={current_max:.0%}, Mismatch={mismatch:.1f}).\"\n            )\n        else:\n            reject(\"intraday_too_late\", ticker)\n            log.info(\n                f\"  [{ticker}] REJECT: Move={move:.1%} > Limit={current_max:.0%} \"\n                f\"(Mismatch={mismatch:.1f})\"\n            )\n\n    mc_viable = mc_viable_dynamic\n    stats[\"intraday_ok\"] = len(mc_viable)\n    log.info(\n        f\"Intraday-Delta-Filter: {len(before_intraday)} → {len(mc_viable)} Signale \"\n        f\"({len(before_intraday) - len(mc_viable)} zu spät)\"\n    )\n    log.info(f\"  → {len(mc_viable)} nach Intraday-Filter\")\n    if not mc_viable:\n        stats[\"stop_reason\"] = \"Alle durch Intraday-Delta-Filter verworfen (>7% Bewegung).\"\n        save_history(history); send_email(); return\n\n    # ── STUFE 8: Final MC (10k, adaptive DTE) ────────────────────────────────\n    log.info(f\"Stufe 8: Final MC (n={FINAL_MC_PATHS}, adaptive DTE)\")\n    sim_final  = MirofishSimulation()\n    final_sims = []\n    for s in mc_viable:\n        ticker = s[\"ticker\"]\n        quick_mc_days = s.get(\"quick_mc\", {}).get(\"n_days\", 30)\n        final_dte = 45 if quick_mc_days <= 30 else 120\n        result   = sim_final.run_for_dte(s, days_to_expiry=final_dte)\n        hit_rate = validate_mc_result(result)\n        if hit_rate is None:\n            reject(\"final_mc_invalid\", ticker)\n            continue\n        if hit_rate < 0.01:\n            reject(\"final_mc_zero_prob\", ticker)\n            continue\n        if hit_rate:\n            result[\"simulation\"][\"n_paths\"] = FINAL_MC_PATHS\n            final_sims.append(result)\n            log.info(f\"  [{ticker}] Final MC: {result['simulation']['hit_rate']:.1%} ✅\")\n        else:\n            log.info(f\"  [{ticker}] Final MC: FAIL\")\n\n    stats[\"final_mc\"] = len(final_sims)\n    log.info(f\"  → {len(final_sims)} nach Final MC\")\n    if not final_sims:\n        stats[\"stop_reason\"] = \"Kein Kandidat besteht Final MC (120d).\"\n        save_history(history); send_email(); return\n\n    # ── STUFE 9: RL-Scoring ──────────────────────────────────────────────────\n    log.info(\"Stufe 9: RL-Scoring\")\n    final_signals = RLScorer(history=history).run(final_sims)\n    stats[\"rl_scored\"] = len(final_signals)\n    log.info(f\"  → {len(final_signals)} nach RL-Scoring\")\n    if not final_signals:\n        stats[\"stop_reason\"] = \"RL-Agent: alle als SKIP klassifiziert.\"\n        save_history(history); send_email(); return\n\n    final_signals = enrich_top_candidates(final_signals, top_n=2)\n\n    # ── STUFE 10: Options Design + ROI-Gate ──────────────────────────────────\n    log.info(\"Stufe 10: Options Design + adaptiver Laufzeit-Loop\")\n    # Nutzt dieselbe designer-Instanz von oben (Tradier-Status bereits geloggt)\n    try:\n        trade_proposals = designer.run(final_signals)\n    except Exception as e:\n        log.error(f\"Options Design Fehler: {e} → Email wird trotzdem gesendet\")\n        stats[\"stop_reason\"] = f\"Options Design Fehler: {type(e).__name__}: {e}\"\n        save_history(history)\n        send_email()\n        raise\n\n    for p in trade_proposals:\n        roi = p.get(\"roi_analysis\", {})\n        dte = p.get(\"option\", {}).get(\"dte\", 90)\n        p[\"time_value_efficiency\"] = compute_time_value_efficiency(\n            roi.get(\"roi_net\", 0), dte\n        )\n\n    if trade_proposals:\n        trade_proposals = rank_proposals(trade_proposals)\n        before = len(trade_proposals)\n        trade_proposals = [p for p in trade_proposals\n                           if p.get(\"trade_score\", {}).get(\"total\", 0) >= 45]\n        if len(trade_proposals) < before:\n            log.info(f\"  {before - len(trade_proposals)} AVOID-Trade(s) herausgefiltert (Score < 45)\")\n\n        # ── STUFE 10b: Korrelations-Check ────────────────────────────────────\n        if len(trade_proposals) > 1:\n            log.info(\"Stufe 10b: Korrelations-Check\")\n            before_corr    = len(trade_proposals)\n            trade_proposals = filter_correlated_proposals(trade_proposals)\n            if len(trade_proposals) < before_corr:\n                log.info(\n                    f\"  Korrelations-Check: {before_corr} → {len(trade_proposals)} \"\n                    f\"({before_corr - len(trade_proposals)} korrelierte entfernt)\"\n                )\n\n        log.info(f\"Trade-Ranking:\")\n        for p in trade_proposals:\n            ts = p.get(\"trade_score\", {})\n            log.info(\n                f\"  #{p.get('trade_rank','-')} [{p['ticker']}] \"\n                f\"{ts.get('total',0)}/100 — {ts.get('grade','?')}\"\n            )\n\n    stats[\"roi_ok\"] = len(trade_proposals)\n    stats[\"trades\"] = len(trade_proposals)\n    if not trade_proposals:\n        stats[\"stop_reason\"] = \"Alle Options-Kontrakte scheitern am ROI-Gate.\"\n\n    if trade_proposals:\n        _proposals_ref.append(trade_proposals)\n\n    existing = {(t[\"ticker\"], t.get(\"entry_date\",\"\")) for t in history[\"active_trades\"]}\n    for p in trade_proposals:\n        key = (p[\"ticker\"], today)\n        if key not in existing:\n            history[\"active_trades\"].append({\n                \"ticker\":        p[\"ticker\"], \"entry_date\": today,\n                \"features\":      p.get(\"features\", {}),\n                \"strategy\":      p.get(\"strategy\", \"\"),\n                \"option\":        p.get(\"option\"),\n                \"simulation\":    p.get(\"simulation\"),\n                \"deep_analysis\": p.get(\"deep_analysis\"),\n                \"tve\":           p.get(\"time_value_efficiency\"),\n                \"outcome\":       None,\n            })\n\n    Reporter(reports_dir=REPORTS_DIR).save(\n        today=today, proposals=trade_proposals, history=history\n    )\n    save_history(history)\n    send_email()\n\n    if reject_stats:\n        log.info(\"=== Reject Summary ===\")\n        for reason, data in sorted(reject_stats.items(), key=lambda x: -x[1][\"count\"]):\n            tickers = \", \".join(data[\"tickers\"][:5]) if data[\"tickers\"] else \"-\"\n            log.info(f\"  {reason}: {data['count']}x → [{tickers}]\")\n    stats[\"rejects\"] = {k: v[\"count\"] for k, v in reject_stats.items()}\n\n    log.info(f\"=== Pipeline v8.3 beendet. {len(trade_proposals)} Trade-Vorschläge. ===\")\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "requirements.txt",
    "content": "anthropic>=0.28.0\nyfinance>=0.2.40\npandas>=2.2.0\nnumpy>=1.26.0\nscikit-learn>=1.4.0\nscipy>=1.13.0\nrequests>=2.31.0\nfeedparser>=6.0.11\n# CPU-only torch: 200MB statt 2.5GB (GitHub Actions hat keine GPU)\n--extra-index-url https://download.pytorch.org/whl/cpu\ntorch>=2.0.0\nstable-baselines3>=2.0.0\ngymnasium>=1.0.0\ntransformers>=4.40.0\npython-box>=7.0.0\npraw>=7.7.0\nlxml>=5.0.0\n"
  },
  {
    "path": "tests/test_pipeline.py",
    "content": "\"\"\"\nTests für den Adaptive Asymmetry-Scanner\nAusführen: pytest tests/ -v\n\nv8.2: Mismatch-Scorer-Tests aktualisiert:\n  - _compute_48h_move wird gemockt (statt price_move_48h als Feld)\n  - data_validation.eps_cross_check.deviation_pct (statt eps_drift.drift)\n  - sample_analysis Fixture angepasst\n\"\"\"\n\nimport json\nimport pytest\nfrom unittest.mock import MagicMock, patch\nfrom pathlib import Path\n\n\n# ── Fixtures ──────────────────────────────────────────────────────────────────\n\n@pytest.fixture\ndef empty_history():\n    return {\n        \"feature_stats\": {\n            \"impact\":    {\"low\": {\"count\": 0, \"avg_return\": 0.0}, \"mid\": {\"count\": 0, \"avg_return\": 0.0}, \"high\": {\"count\": 0, \"avg_return\": 0.0}},\n            \"mismatch\":  {\"weak\": {\"count\": 0, \"avg_return\": 0.0}, \"good\": {\"count\": 0, \"avg_return\": 0.0}, \"strong\": {\"count\": 0, \"avg_return\": 0.0}},\n            \"eps_drift\": {\"noise\": {\"count\": 0, \"avg_return\": 0.0}, \"relevant\": {\"count\": 0, \"avg_return\": 0.0}, \"massive\": {\"count\": 0, \"avg_return\": 0.0}},\n        },\n        \"active_trades\": [],\n        \"closed_trades\": [],\n        \"model_weights\": {\"impact\": 0.35, \"mismatch\": 0.45, \"eps_drift\": 0.20},\n    }\n\n\n@pytest.fixture\ndef sample_candidate():\n    return {\n        \"ticker\": \"AAPL\",\n        \"info\": {\n            \"marketCap\": 3_000_000_000_000,\n            \"averageVolume10days\": 50_000_000,\n            \"forwardEps\": 7.5,\n            \"recommendationMean\": 1.8,\n            \"sector\": \"Technology\",\n        },\n        # v8.2: EPS-Drift jetzt über data_validation (korrekter Pfad)\n        \"data_validation\": {\n            \"eps_cross_check\": {\n                \"sec_eps\": 6.7,\n                \"yf_eps\": 7.5,\n                \"deviation_pct\": 0.1067,\n                \"consistent\": False,\n                \"confidence\": \"low\",\n                \"source\": \"SEC_EDGAR\",\n                \"data_anomaly\": False,\n            }\n        },\n        \"news\": [\"Apple announces revolutionary AI chip\", \"iPhone sales beat estimates by 15%\"],\n        \"prescreen_reason\": \"Technologischer Durchbruch – neue Produktkategorie\",\n    }\n\n\n@pytest.fixture\ndef sample_analysis(sample_candidate):\n    return {\n        **sample_candidate,\n        # v8.2: price_move_48h entfernt — wird jetzt intern vom Scorer berechnet\n        \"deep_analysis\": {\n            \"ticker\":                  \"AAPL\",\n            \"impact\":                  8,\n            \"surprise\":                7,\n            \"mispricing_logic\":        \"Markt unterschätzt langfristige Margenwirkung des AI-Chips.\",\n            \"catalyst\":                \"Earnings Q2 2026 – 14. August\",\n            \"time_to_materialization\": \"2-3 Monate\",\n            \"bear_case\":               \"Makro-Abschwung könnte Consumer-Spending drücken.\",\n            \"bear_case_severity\":      4,\n            \"direction\":               \"BULLISH\",\n        },\n    }\n\n\n# ── Mismatch Scorer ───────────────────────────────────────────────────────────\n\nclass TestMismatchScorer:\n    def test_high_impact_low_move_gives_high_mismatch(self):\n        \"\"\"Impact=9, 48h-Move=1% bei σ=2% → Z=0.5 → Mismatch=9-2.5=6.5 (strong)\"\"\"\n        from modules.mismatch_scorer import MismatchScorer\n        scorer = MismatchScorer()\n\n        candidate = {\n            \"ticker\": \"AAPL\",\n            \"info\": {},\n            \"data_validation\": {\n                \"eps_cross_check\": {\"deviation_pct\": 0.12}\n            },\n            \"news\": [],\n            \"deep_analysis\": {\"impact\": 9, \"surprise\": 8, \"direction\": \"BULLISH\"},\n        }\n\n        with patch.object(scorer, \"_compute_sigma\", return_value=0.02), \\\n             patch.object(scorer, \"_compute_48h_move\", return_value=0.01):\n            result = scorer._score(candidate)\n\n        assert result is not None\n        mismatch = result[\"features\"][\"mismatch\"]\n        assert mismatch > 3, f\"Erwartetes hohes Mismatch, aber: {mismatch}\"\n        assert result[\"features\"][\"bin_mismatch\"] in (\"good\", \"strong\")\n        # v8.2: EPS-Drift wird jetzt korrekt gelesen\n        assert result[\"features\"][\"eps_drift\"] == 0.12\n\n    def test_low_impact_high_move_gives_negative_mismatch_filtered(self):\n        \"\"\"Impact=3, 48h-Move=8% bei σ=2% → Z=4.0 → Mismatch=3-20=-17 → gefiltert (None)\"\"\"\n        from modules.mismatch_scorer import MismatchScorer\n        scorer = MismatchScorer()\n\n        candidate = {\n            \"ticker\": \"MSFT\",\n            \"info\": {},\n            \"data_validation\": {\n                \"eps_cross_check\": {\"deviation_pct\": 0.01}\n            },\n            \"news\": [],\n            \"deep_analysis\": {\"impact\": 3, \"surprise\": 2, \"direction\": \"BULLISH\"},\n        }\n\n        with patch.object(scorer, \"_compute_sigma\", return_value=0.02), \\\n             patch.object(scorer, \"_compute_48h_move\", return_value=0.08):\n            result = scorer._score(candidate)\n\n        # v8.2: Negativer Mismatch → H-03 Filter → None\n        assert result is None\n\n    def test_moderate_impact_moderate_move(self):\n        \"\"\"Impact=5, 48h-Move=2% bei σ=2% → Z=1.0 → Mismatch=5-5=0 → gefiltert\"\"\"\n        from modules.mismatch_scorer import MismatchScorer\n        scorer = MismatchScorer()\n\n        candidate = {\n            \"ticker\": \"GOOG\",\n            \"info\": {},\n            \"data_validation\": {\n                \"eps_cross_check\": {\"deviation_pct\": 0.03}\n            },\n            \"news\": [],\n            \"deep_analysis\": {\"impact\": 5, \"surprise\": 4, \"direction\": \"BULLISH\"},\n        }\n\n        with patch.object(scorer, \"_compute_sigma\", return_value=0.02), \\\n             patch.object(scorer, \"_compute_48h_move\", return_value=0.02):\n            result = scorer._score(candidate)\n\n        # Mismatch=5-(1.0*5)=0 → ≤0 → gefiltert\n        assert result is None\n\n    def test_high_impact_tiny_move_passes(self):\n        \"\"\"Impact=8, 48h-Move=0.2% bei σ=2% → Z=0.1 → Mismatch=8-0.5=7.5 (strong)\"\"\"\n        from modules.mismatch_scorer import MismatchScorer\n        scorer = MismatchScorer()\n\n        candidate = {\n            \"ticker\": \"NVDA\",\n            \"info\": {},\n            \"data_validation\": {\n                \"eps_cross_check\": {\"deviation_pct\": 0.15}\n            },\n            \"news\": [],\n            \"deep_analysis\": {\"impact\": 8, \"surprise\": 7, \"direction\": \"BULLISH\"},\n        }\n\n        with patch.object(scorer, \"_compute_sigma\", return_value=0.02), \\\n             patch.object(scorer, \"_compute_48h_move\", return_value=0.002):\n            result = scorer._score(candidate)\n\n        assert result is not None\n        mismatch = result[\"features\"][\"mismatch\"]\n        assert mismatch > 6, f\"Erwartetes starkes Mismatch, aber: {mismatch}\"\n        assert result[\"features\"][\"bin_mismatch\"] == \"strong\"\n        assert result[\"features\"][\"eps_drift\"] == 0.15\n\n    def test_zero_sigma_returns_none(self):\n        from modules.mismatch_scorer import MismatchScorer\n        scorer = MismatchScorer()\n\n        candidate = {\n            \"ticker\": \"X\",\n            \"deep_analysis\": {\"impact\": 5},\n            \"data_validation\": {\"eps_cross_check\": {\"deviation_pct\": 0.0}},\n            \"info\": {},\n            \"news\": [],\n        }\n\n        with patch.object(scorer, \"_compute_sigma\", return_value=0.0), \\\n             patch.object(scorer, \"_compute_48h_move\", return_value=0.0):\n            result = scorer._score(candidate)\n        assert result is None\n\n    def test_missing_data_validation_defaults_to_zero(self):\n        \"\"\"Wenn data_validation fehlt, soll eps_drift=0.0 sein (nicht crashen).\"\"\"\n        from modules.mismatch_scorer import MismatchScorer\n        scorer = MismatchScorer()\n\n        candidate = {\n            \"ticker\": \"TSLA\",\n            \"info\": {},\n            \"news\": [],\n            \"deep_analysis\": {\"impact\": 7, \"surprise\": 6, \"direction\": \"BULLISH\"},\n            # Kein data_validation Feld → soll graceful 0.0 liefern\n        }\n\n        with patch.object(scorer, \"_compute_sigma\", return_value=0.02), \\\n             patch.object(scorer, \"_compute_48h_move\", return_value=0.005):\n            result = scorer._score(candidate)\n\n        assert result is not None\n        assert result[\"features\"][\"eps_drift\"] == 0.0\n\n\n# ── Quasi-ML ─────────────────────────────────────────────────────────────────\n\nclass TestQuasiML:\n    def test_fallback_scoring_without_history(self, empty_history):\n        from modules.quasi_ml import QuasiML\n        qml = QuasiML(history=empty_history)\n\n        signal = {\n            \"ticker\": \"NVDA\",\n            \"features\": {\n                \"impact\": 9, \"surprise\": 8,\n                \"mismatch\": 7.0, \"z_score\": 0.4, \"sigma_30d\": 0.02, \"eps_drift\": 0.15,\n                \"bin_impact\": \"high\", \"bin_mismatch\": \"strong\", \"bin_eps_drift\": \"massive\",\n            },\n            \"deep_analysis\": {\"direction\": \"BULLISH\"},\n            \"simulation\": {\"hit_rate\": 0.82},\n        }\n        result = qml.run([signal])\n        assert len(result) == 1\n        assert result[0][\"final_score\"] > 0\n\n    def test_signals_sorted_by_score(self, empty_history):\n        from modules.quasi_ml import QuasiML\n        qml = QuasiML(history=empty_history)\n\n        low = {\"ticker\": \"A\", \"features\": {\"impact\": 2, \"mismatch\": 1, \"eps_drift\": 0, \"bin_impact\": \"low\", \"bin_mismatch\": \"weak\", \"bin_eps_drift\": \"noise\"}, \"deep_analysis\": {}, \"simulation\": {}}\n        high = {\"ticker\": \"B\", \"features\": {\"impact\": 9, \"mismatch\": 8, \"eps_drift\": 0.15, \"bin_impact\": \"high\", \"bin_mismatch\": \"strong\", \"bin_eps_drift\": \"massive\"}, \"deep_analysis\": {}, \"simulation\": {}}\n\n        result = qml.run([low, high])\n        assert result[0][\"ticker\"] == \"B\"\n\n\n# ── Risk Gates ────────────────────────────────────────────────────────────────\n\nclass TestRiskGates:\n    def test_vix_below_threshold_passes(self):\n        from modules.risk_gates import RiskGates\n        gates = RiskGates()\n        with patch.object(gates, \"_fetch_vix\", return_value=20.0):\n            assert gates.global_ok() is True\n\n    def test_vix_above_threshold_blocks(self):\n        from modules.risk_gates import RiskGates\n        gates = RiskGates()\n        with patch.object(gates, \"_fetch_vix\", return_value=40.0):\n            assert gates.global_ok() is False\n\n\n# ── Mirofish Simulation ───────────────────────────────────────────────────────\n\nclass TestMirofishSimulation:\n    def test_strong_signal_passes_gate(self):\n        from modules.mirofish_simulation import MirofishSimulation\n        sim = MirofishSimulation()\n\n        candidate = {\n            \"ticker\": \"NVDA\",\n            \"features\": {\"mismatch\": 8.0, \"impact\": 9},\n            \"deep_analysis\": {\n                \"direction\": \"BULLISH\",\n                \"time_to_materialization\": \"2-3 Monate\",\n            },\n        }\n        with patch.object(sim, \"_get_market_params\", return_value=(0.02, 500.0, \"Technology\")):\n            result = sim._simulate(candidate)\n\n        # Mit hohem Mismatch-Drift sollte die Simulation passieren\n        assert result is not None\n        assert result[\"simulation\"][\"hit_rate\"] >= 0.70\n\n    def test_zero_price_returns_none(self):\n        from modules.mirofish_simulation import MirofishSimulation\n        sim = MirofishSimulation()\n\n        candidate = {\n            \"ticker\": \"BROKEN\",\n            \"features\": {\"mismatch\": 5.0, \"impact\": 5},\n            \"deep_analysis\": {\"direction\": \"BULLISH\", \"time_to_materialization\": \"2-3 Monate\"},\n        }\n        with patch.object(sim, \"_get_market_params\", return_value=(0.02, 0.0, \"default\")):\n            result = sim._simulate(candidate)\n        assert result is None\n\n\n# ── Feedback Loop ─────────────────────────────────────────────────────────────\n\nclass TestFeedbackLoop:\n    def test_bin_update_running_average(self):\n        import feedback\n        stats = {}\n        feedback.update_bin(stats, \"impact\", \"high\", 0.20)\n        feedback.update_bin(stats, \"impact\", \"high\", 0.10)\n        assert stats[\"impact\"][\"high\"][\"count\"] == 2\n        assert abs(stats[\"impact\"][\"high\"][\"avg_return\"] - 0.15) < 1e-6\n\n    def test_bin_to_num_mapping(self):\n        import feedback\n        assert feedback._bin_to_num(\"impact\",   \"high\")     == 1.0\n        assert feedback._bin_to_num(\"mismatch\", \"weak\")     == 0.0\n        assert feedback._bin_to_num(\"eps_drift\",\"relevant\") == 0.5\n"
  }
]